From 61541e520f5c070c33664f6d70a264454901afbb Mon Sep 17 00:00:00 2001 From: sba72 <142266608+sba72@users.noreply.github.com> Date: Tue, 15 Sep 2026 09:13:28 +0000 Subject: [PATCH] =?UTF-8?q?Sync=20mit=20Upstream-=C3=84nderungen=20(3.14)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- c-api/abstract.po | 7 +- c-api/allocation.po | 83 +- c-api/apiabiversion.po | 68 +- c-api/arg.po | 220 +- c-api/bool.po | 15 +- c-api/buffer.po | 149 +- c-api/bytearray.po | 38 +- c-api/bytes.po | 151 +- c-api/call.po | 119 +- c-api/capsule.po | 46 +- c-api/cell.po | 17 +- c-api/code.po | 109 +- c-api/codec.po | 42 +- c-api/complex.po | 39 +- c-api/concrete.po | 24 +- c-api/contextvars.po | 42 +- c-api/conversion.po | 177 +- c-api/coro.po | 10 +- c-api/datetime.po | 122 +- c-api/descriptor.po | 214 +- c-api/dict.po | 310 +- c-api/exceptions.po | 477 +- c-api/extension-modules.po | 54 +- c-api/file.po | 87 +- c-api/float.po | 161 +- c-api/frame.po | 153 +- c-api/function.po | 58 +- c-api/gcsupport.po | 79 +- c-api/gen.po | 72 +- c-api/hash.po | 103 +- c-api/import.po | 77 +- c-api/index.po | 8 +- c-api/init.po | 2792 +-- c-api/init_config.po | 771 +- c-api/intro.po | 630 +- c-api/iter.po | 16 +- c-api/iterator.po | 86 +- c-api/lifecycle.po | 49 +- c-api/list.po | 87 +- c-api/long.po | 249 +- c-api/mapping.po | 38 +- c-api/marshal.po | 24 +- c-api/memory.po | 352 +- c-api/memoryview.po | 24 +- c-api/method.po | 24 +- c-api/module.po | 189 +- c-api/monitoring.po | 64 +- c-api/none.po | 11 +- c-api/number.po | 54 +- c-api/object.po | 177 +- c-api/objimpl.po | 6 +- c-api/perfmaps.po | 83 +- c-api/refcounting.po | 58 +- c-api/reflection.po | 21 +- c-api/sequence.po | 44 +- c-api/set.po | 80 +- c-api/slice.po | 29 +- c-api/stable.po | 49 +- c-api/structures.po | 319 +- c-api/sys.po | 112 +- c-api/time.po | 31 +- c-api/tuple.po | 67 +- c-api/type.po | 216 +- c-api/typehints.po | 15 +- c-api/typeobj.po | 1038 +- c-api/unicode.po | 474 +- c-api/utilities.po | 6 +- c-api/veryhigh.po | 334 +- c-api/weakref.po | 49 +- cpython-src | 1 + extending/index.po | 29 +- glossary.po | 752 +- howto/annotations.po | 4 +- howto/curses.po | 4 +- howto/functional.po | 268 +- howto/ipaddress.po | 4 +- howto/isolating-extensions.po | 4 +- howto/logging-cookbook.po | 4 +- howto/mro.po | 8 +- howto/regex.po | 4 +- howto/sockets.po | 4 +- howto/urllib2.po | 6 +- library/argparse.po | 509 +- library/asyncio-task.po | 4 +- library/asyncio.po | 4 +- library/codecs.po | 8 +- library/collections.po | 8 +- library/colorsys.po | 8 +- library/datetime.po | 60 +- library/dialog.po | 16 +- library/dis.po | 6 +- library/enum.po | 6 +- library/http.client.po | 4 +- library/importlib.metadata.po | 219 +- library/index.po | 34 +- library/intro.po | 132 +- library/itertools.po | 33 +- library/json.po | 274 +- library/logging.config.po | 8 +- library/logging.handlers.po | 6 +- library/logging.po | 6 +- library/multiprocessing.po | 4 +- library/os.po | 6 +- library/pdb.po | 4 +- library/sys.monitoring.po | 217 +- library/tkinter.font.po | 26 +- library/turtle.po | 1357 +- library/unittest.mock.po | 14 +- library/warnings.po | 320 +- library/xml.etree.elementtree.po | 556 +- library/xml.sax.handler.po | 26 +- reference/compound_stmts.po | 8 +- reference/datamodel.po | 28 +- reference/executionmodel.po | 18 +- reference/index.po | 29 +- sphinx.po | 102 +- tutorial/controlflow.po | 9 +- tutorial/index.po | 12 +- tutorial/whatnow.po | 54 +- using/configure.po | 6 +- using/windows.po | 826 +- whatsnew/3.11.po | 56 +- whatsnew/3.14.po | 829 +- whatsnew/3.7.po | 4 +- whatsnew/changelog.po | 29500 +++++++++++++++-------------- 125 files changed, 27120 insertions(+), 21327 deletions(-) create mode 160000 cpython-src diff --git a/c-api/abstract.po b/c-api/abstract.po index 6d17b29..901af3f 100644 --- a/c-api/abstract.po +++ b/c-api/abstract.po @@ -11,19 +11,21 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ../../c-api/abstract.rst:7 msgid "Abstract Objects Layer" msgstr "Abstrakte Objekte Schicht" +#: ../../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, " @@ -36,6 +38,7 @@ msgstr "" "verwendet werden, für die sie nicht gelten, lösen sie eine Python-Ausnahme " "aus." +#: ../../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:" diff --git a/c-api/allocation.po b/c-api/allocation.po index 6afff28..c1b7d12 100644 --- a/c-api/allocation.po +++ b/c-api/allocation.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -msgid "Allocating Objects on the Heap" +#: ../../c-api/allocation.rst:6 +msgid "Allocating objects on the heap" msgstr "" +#: ../../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 " @@ -29,6 +31,7 @@ msgid "" "__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:`!" @@ -36,21 +39,25 @@ msgid "" "`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 "" +#: ../../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:" @@ -59,38 +66,45 @@ msgid "" "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:" @@ -98,33 +112,44 @@ msgid "" "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 +#: ../../c-api/allocation.rst:184 ../../c-api/allocation.rst:186 +#: ../../c-api/allocation.rst:188 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 " @@ -132,34 +157,80 @@ msgid "" "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 "" -msgid "Same as :c:func:`PyObject_Free`." -msgstr "" - +#: ../../c-api/allocation.rst:145 msgid "" "Object which is visible in Python as ``None``. This should only be accessed " "using the :c:macro:`Py_None` macro, which evaluates to a pointer to this " "object." msgstr "" +#: ../../c-api/allocation.rst:152 msgid ":ref:`moduleobjects`" msgstr "" +#: ../../c-api/allocation.rst:153 msgid "To allocate and create extension modules." msgstr "" + +#: ../../c-api/allocation.rst:157 +msgid "Soft-deprecated aliases" +msgstr "" + +#: ../../c-api/allocation.rst:161 +msgid "" +"These are aliases to existing functions and macros. They exist solely for " +"backwards compatibility." +msgstr "" + +#: ../../c-api/allocation.rst:169 +msgid "Soft-deprecated alias" +msgstr "" + +#: ../../c-api/allocation.rst:170 +msgid "Function" +msgstr "" + +#: ../../c-api/allocation.rst:172 +msgid ":c:macro:`PyObject_New`" +msgstr "" + +#: ../../c-api/allocation.rst:174 +msgid ":c:macro:`PyObject_NewVar`" +msgstr "" + +#: ../../c-api/allocation.rst:176 +msgid ":c:func:`PyObject_Init`" +msgstr "" + +#: ../../c-api/allocation.rst:178 +msgid ":c:func:`PyObject_InitVar`" +msgstr "" + +#: ../../c-api/allocation.rst:180 +msgid ":c:func:`PyObject_Malloc`" +msgstr "" + +#: ../../c-api/allocation.rst:182 +msgid ":c:func:`PyObject_Realloc`" +msgstr "" diff --git a/c-api/apiabiversion.po b/c-api/apiabiversion.po index 2daec01..95790db 100644 --- a/c-api/apiabiversion.po +++ b/c-api/apiabiversion.po @@ -11,201 +11,263 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ../../c-api/apiabiversion.rst:7 msgid "API and ABI Versioning" msgstr "" +#: ../../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 "" +#: ../../c-api/apiabiversion.rst:21 msgid "The ``3`` in ``3.4.1a2``." msgstr "" +#: ../../c-api/apiabiversion.rst:25 msgid "The ``4`` in ``3.4.1a2``." msgstr "" +#: ../../c-api/apiabiversion.rst:29 msgid "The ``1`` in ``3.4.1a2``." msgstr "" +#: ../../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 "" +#: ../../c-api/apiabiversion.rst:39 msgid "The ``2`` in ``3.4.1a2``. Zero for final releases." msgstr "" +#: ../../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:49 +msgid "These macros are defined in :source:`Include/patchlevel.h`." +msgstr "" + +#: ../../c-api/apiabiversion.rst:53 msgid "Run-time version" msgstr "" +#: ../../c-api/apiabiversion.rst:57 msgid "" "The Python runtime version number encoded in a single constant integer. See :" "c:func:`Py_PACK_FULL_VERSION` for the encoding details. This contains the " "Python version used at run time." msgstr "" +#: ../../c-api/apiabiversion.rst:61 msgid "" "Use this for numeric comparisons, for example, ``if (Py_Version >= ...)``." msgstr "" +#: ../../c-api/apiabiversion.rst:67 msgid "Bit-packing macros" msgstr "" +#: ../../c-api/apiabiversion.rst:71 msgid "" "Return the given version, encoded as a single 32-bit integer with the " "following structure:" msgstr "" +#: ../../c-api/apiabiversion.rst:77 msgid "Argument" msgstr "" +#: ../../c-api/apiabiversion.rst:75 msgid "No. of bits" msgstr "" +#: ../../c-api/apiabiversion.rst:77 msgid "Bit mask" msgstr "" +#: ../../c-api/apiabiversion.rst:77 msgid "Bit shift" msgstr "" +#: ../../c-api/apiabiversion.rst:75 msgid "Example values" msgstr "" +#: ../../c-api/apiabiversion.rst:77 ../../c-api/apiabiversion.rst:95 msgid "``3.4.1a2``" msgstr "" +#: ../../c-api/apiabiversion.rst:77 ../../c-api/apiabiversion.rst:97 msgid "``3.10.0``" msgstr "" +#: ../../c-api/apiabiversion.rst:79 msgid "*major*" msgstr "" +#: ../../c-api/apiabiversion.rst:79 ../../c-api/apiabiversion.rst:81 +#: ../../c-api/apiabiversion.rst:83 msgid "8" msgstr "" +#: ../../c-api/apiabiversion.rst:79 msgid "``0xFF000000``" msgstr "" +#: ../../c-api/apiabiversion.rst:79 msgid "24" msgstr "" +#: ../../c-api/apiabiversion.rst:79 msgid "``0x03``" msgstr "``0x03``" +#: ../../c-api/apiabiversion.rst:81 msgid "*minor*" msgstr "" +#: ../../c-api/apiabiversion.rst:81 msgid "``0x00FF0000``" msgstr "" +#: ../../c-api/apiabiversion.rst:81 msgid "16" msgstr "" +#: ../../c-api/apiabiversion.rst:81 msgid "``0x04``" msgstr "``0x04``" +#: ../../c-api/apiabiversion.rst:81 msgid "``0x0A``" msgstr "" +#: ../../c-api/apiabiversion.rst:83 msgid "*micro*" msgstr "" +#: ../../c-api/apiabiversion.rst:83 msgid "``0x0000FF00``" msgstr "" +#: ../../c-api/apiabiversion.rst:83 msgid "``0x01``" msgstr "``0x01``" +#: ../../c-api/apiabiversion.rst:83 msgid "``0x00``" msgstr "" +#: ../../c-api/apiabiversion.rst:85 msgid "*release_level*" msgstr "" +#: ../../c-api/apiabiversion.rst:85 ../../c-api/apiabiversion.rst:87 msgid "4" msgstr "" +#: ../../c-api/apiabiversion.rst:85 msgid "``0x000000F0``" msgstr "" +#: ../../c-api/apiabiversion.rst:85 msgid "``0xA``" msgstr "``0xA``" +#: ../../c-api/apiabiversion.rst:85 msgid "``0xF``" msgstr "" +#: ../../c-api/apiabiversion.rst:87 msgid "*release_serial*" msgstr "" +#: ../../c-api/apiabiversion.rst:87 msgid "``0x0000000F``" msgstr "" +#: ../../c-api/apiabiversion.rst:87 msgid "0" msgstr "" +#: ../../c-api/apiabiversion.rst:87 msgid "``0x2``" msgstr "``0x2``" +#: ../../c-api/apiabiversion.rst:87 msgid "``0x0``" msgstr "" +#: ../../c-api/apiabiversion.rst:90 msgid "For example:" msgstr "Zum Beispiel:" +#: ../../c-api/apiabiversion.rst:93 msgid "Version" msgstr "" +#: ../../c-api/apiabiversion.rst:93 msgid "``Py_PACK_FULL_VERSION`` arguments" msgstr "" +#: ../../c-api/apiabiversion.rst:93 msgid "Encoded version" msgstr "" +#: ../../c-api/apiabiversion.rst:95 msgid "``(3, 4, 1, 0xA, 2)``" msgstr "" +#: ../../c-api/apiabiversion.rst:95 msgid "``0x030401a2``" msgstr "" +#: ../../c-api/apiabiversion.rst:97 msgid "``(3, 10, 0, 0xF, 0)``" msgstr "" +#: ../../c-api/apiabiversion.rst:97 msgid "``0x030a00f0``" msgstr "" +#: ../../c-api/apiabiversion.rst:100 msgid "" "Out-of range bits in the arguments are ignored. That is, the macro can be " "defined as:" msgstr "" +#: ../../c-api/apiabiversion.rst:103 msgid "" "#ifndef Py_PACK_FULL_VERSION\n" "#define Py_PACK_FULL_VERSION(X, Y, Z, LEVEL, SERIAL) ( \\\n" @@ -217,11 +279,13 @@ msgid "" "#endif" msgstr "" +#: ../../c-api/apiabiversion.rst:114 msgid "" "``Py_PACK_FULL_VERSION`` is primarily a macro, intended for use in ``#if`` " "directives, but it is also available as an exported function." msgstr "" +#: ../../c-api/apiabiversion.rst:121 msgid "" "Equivalent to ``Py_PACK_FULL_VERSION(major, minor, 0, 0, 0)``. The result " "does not correspond to any Python release, but is useful in numeric " diff --git a/c-api/arg.po b/c-api/arg.po index c9e7e23..bbb0e23 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -12,25 +12,28 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: Dennis Betz, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ../../c-api/arg.rst:6 msgid "Parsing arguments and building values" msgstr "" +#: ../../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 " @@ -39,9 +42,11 @@ msgid "" "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 " @@ -53,9 +58,11 @@ msgid "" "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 " @@ -63,17 +70,21 @@ msgid "" "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 "So lange nicht anders festgelegt, sind Buffer nicht NUL-terminiert." +#: ../../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 " @@ -83,12 +94,14 @@ msgid "" "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 " @@ -97,6 +110,7 @@ msgid "" "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 " @@ -104,15 +118,18 @@ msgid "" "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 " @@ -122,6 +139,7 @@ msgid "" "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 " @@ -129,14 +147,17 @@ msgid "" "`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 " @@ -144,11 +165,13 @@ msgid "" "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 " @@ -157,36 +180,44 @@ msgid "" "encoding." msgstr "" +#: ../../c-api/arg.rst:113 ../../c-api/arg.rst:619 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 " @@ -194,41 +225,50 @@ msgid "" "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 "" +#: ../../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 "" +#: ../../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 "" +#: ../../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 :" @@ -236,18 +276,22 @@ msgid "" "`PyObject*`." msgstr "" +#: ../../c-api/arg.rst:155 msgid "``U`` (:class:`str`) [PyObject \\*]" msgstr "" +#: ../../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. " @@ -255,14 +299,17 @@ msgid "" "`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 " @@ -273,6 +320,7 @@ msgid "" "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 " @@ -280,28 +328,33 @@ msgid "" "`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-" @@ -314,9 +367,11 @@ msgid "" "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 " @@ -325,6 +380,7 @@ msgid "" "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 " @@ -333,30 +389,36 @@ msgid "" "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 "" +#: ../../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:" @@ -365,6 +427,7 @@ msgid "" "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 " @@ -372,130 +435,167 @@ msgid "" "receiving field is too small to receive the value." msgstr "" +#: ../../c-api/arg.rst:244 msgid "``b`` (:class:`int`) [unsigned char]" msgstr "" +#: ../../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:653 msgid "``B`` (:class:`int`) [unsigned char]" msgstr "" +#: ../../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:647 msgid "``h`` (:class:`int`) [short int]" msgstr "" +#: ../../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:656 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:641 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:659 msgid "``I`` (:class:`int`) [unsigned int]" msgstr "" +#: ../../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:650 msgid "``l`` (:class:`int`) [long int]" msgstr "" +#: ../../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:662 msgid "``k`` (:class:`int`) [unsigned long]" msgstr "" +#: ../../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:665 msgid "``L`` (:class:`int`) [long long]" msgstr "" +#: ../../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:670 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:673 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:691 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:698 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:695 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:704 msgid "``O`` (object) [PyObject \\*]" msgstr "" +#: ../../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:" @@ -503,9 +603,11 @@ msgid "" "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 " @@ -514,9 +616,11 @@ msgid "" "required type, :exc:`TypeError` is raised." msgstr "" +#: ../../c-api/arg.rst:328 msgid "``O&`` (object) [*converter*, *address*]" msgstr "" +#: ../../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 " @@ -524,9 +628,11 @@ msgid "" "*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 " @@ -536,6 +642,7 @@ msgid "" "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 " @@ -544,17 +651,21 @@ msgid "" "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:676 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 " @@ -563,9 +674,11 @@ msgid "" "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 " @@ -573,6 +686,7 @@ msgid "" "*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 :" @@ -581,65 +695,81 @@ msgid "" "*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)." +"corresponding C variable(s). For example, the format string ``\"OO|OO\"`` " +"corresponds to the Python signature ``f(a, b, c=None, d=None)``." msgstr "" +#: ../../c-api/arg.rst:398 msgid "``$``" msgstr "``$``" +#: ../../c-api/arg.rst:399 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` only: Indicates that the remaining " -"arguments in the Python argument list are keyword-only. Currently, all " -"keyword-only arguments must also be optional arguments, so ``|`` must always " -"be specified before ``$`` in the format string." +"arguments in the Python argument list are keyword-only. They are optional if " +"``|`` was specified before ``$``, and required otherwise. ``|`` cannot be " +"specified after ``$``. For example, the format string ``\"O|O$O\"`` " +"corresponds to the Python signature ``f(a, b=None, *, c=None)``, and the " +"format string ``\"OO$OO\"`` corresponds to ``f(a, b, *, c, d)``." 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 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:415 msgid "``;``" msgstr "``;``" +#: ../../c-api/arg.rst:416 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:420 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:424 msgid "" "Additional arguments passed to these functions must be addresses of " "variables whose type is determined by the format string; these are used to " @@ -649,6 +779,7 @@ msgid "" "unit in that case." msgstr "" +#: ../../c-api/arg.rst:430 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 " @@ -658,20 +789,24 @@ msgid "" "the following format units are left untouched." msgstr "" +#: ../../c-api/arg.rst:439 msgid "API Functions" msgstr "" +#: ../../c-api/arg.rst:443 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:450 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:456 msgid "" "Parse the parameters of a function that takes both positional and keyword " "parameters into local variables. The *keywords* argument is a ``NULL``-" @@ -681,43 +816,51 @@ msgid "" "failure, it returns false and raises the appropriate exception." msgstr "" +#: ../../c-api/arg.rst:467 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:471 msgid "" "Added support for :ref:`positional-only parameters `." msgstr "" +#: ../../c-api/arg.rst:475 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:484 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:490 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:499 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:503 msgid "Example::" msgstr "" +#: ../../c-api/arg.rst:505 msgid "" "// Function using METH_O calling convention\n" "static PyObject*\n" @@ -731,6 +874,7 @@ msgid "" "}" msgstr "" +#: ../../c-api/arg.rst:519 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 " @@ -748,11 +892,13 @@ msgid "" "if there was a failure." msgstr "" +#: ../../c-api/arg.rst:534 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:537 msgid "" "static PyObject *\n" "weakref_ref(PyObject *self, PyObject *args)\n" @@ -768,14 +914,17 @@ msgid "" "}" msgstr "" +#: ../../c-api/arg.rst:550 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:553 msgid "PyArg_ParseTuple(args, \"O|O:ref\", &object, &callback)" msgstr "" +#: ../../c-api/arg.rst:557 msgid "" "The value to be inserted, if any, before :c:expr:`char * const *` in the " "*keywords* parameter declaration of :c:func:`PyArg_ParseTupleAndKeywords` " @@ -784,9 +933,11 @@ msgid "" "to the desired value before including :file:`Python.h`." msgstr "" +#: ../../c-api/arg.rst:571 msgid "Building values" msgstr "" +#: ../../c-api/arg.rst:575 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 " @@ -794,6 +945,7 @@ msgid "" "``NULL`` is returned." msgstr "" +#: ../../c-api/arg.rst:580 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 " @@ -802,6 +954,7 @@ msgid "" "it to return a tuple of size 0 or one, parenthesize the format string." msgstr "" +#: ../../c-api/arg.rst:586 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. " @@ -812,6 +965,7 @@ msgid "" "`Py_BuildValue` returns." msgstr "" +#: ../../c-api/arg.rst:594 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 " @@ -819,120 +973,152 @@ msgid "" "be passed." msgstr "" +#: ../../c-api/arg.rst:598 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:602 msgid "``s`` (:class:`str` or ``None``) [const char \\*]" msgstr "" +#: ../../c-api/arg.rst:603 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:606 msgid "" "``s#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" +#: ../../c-api/arg.rst:607 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:611 msgid "``y`` (:class:`bytes`) [const char \\*]" msgstr "" +#: ../../c-api/arg.rst:612 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:615 msgid "``y#`` (:class:`bytes`) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" +#: ../../c-api/arg.rst:616 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:620 ../../c-api/arg.rst:636 msgid "Same as ``s``." msgstr "" +#: ../../c-api/arg.rst:622 msgid "" "``z#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" +#: ../../c-api/arg.rst:623 ../../c-api/arg.rst:639 msgid "Same as ``s#``." msgstr "" +#: ../../c-api/arg.rst:625 msgid "``u`` (:class:`str`) [const wchar_t \\*]" msgstr "" +#: ../../c-api/arg.rst:626 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:630 msgid "``u#`` (:class:`str`) [const wchar_t \\*, :c:type:`Py_ssize_t`]" msgstr "" +#: ../../c-api/arg.rst:631 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:635 msgid "``U`` (:class:`str` or ``None``) [const char \\*]" msgstr "" +#: ../../c-api/arg.rst:638 msgid "" "``U#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" +#: ../../c-api/arg.rst:642 msgid "Convert a plain C :c:expr:`int` to a Python integer object." msgstr "" +#: ../../c-api/arg.rst:644 msgid "``b`` (:class:`int`) [char]" msgstr "" +#: ../../c-api/arg.rst:645 msgid "Convert a plain C :c:expr:`char` to a Python integer object." msgstr "" +#: ../../c-api/arg.rst:648 msgid "Convert a plain C :c:expr:`short int` to a Python integer object." msgstr "" +#: ../../c-api/arg.rst:651 msgid "Convert a C :c:expr:`long int` to a Python integer object." msgstr "" +#: ../../c-api/arg.rst:654 msgid "Convert a C :c:expr:`unsigned char` to a Python integer object." msgstr "" +#: ../../c-api/arg.rst:657 msgid "Convert a C :c:expr:`unsigned short int` to a Python integer object." msgstr "" +#: ../../c-api/arg.rst:660 msgid "Convert a C :c:expr:`unsigned int` to a Python integer object." msgstr "" +#: ../../c-api/arg.rst:663 msgid "Convert a C :c:expr:`unsigned long` to a Python integer object." msgstr "" +#: ../../c-api/arg.rst:666 msgid "Convert a C :c:expr:`long long` to a Python integer object." msgstr "" +#: ../../c-api/arg.rst:671 msgid "Convert a C :c:expr:`unsigned long long` to a Python integer object." msgstr "" +#: ../../c-api/arg.rst:674 msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer." msgstr "" +#: ../../c-api/arg.rst:677 msgid "Convert a C :c:expr:`int` to a Python :class:`bool` object." msgstr "" +#: ../../c-api/arg.rst:679 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 " @@ -940,31 +1126,39 @@ msgid "" "float) to a suitable ``int`` value using ``(x) ? 1 : 0`` or ``!!x``." msgstr "" +#: ../../c-api/arg.rst:687 msgid "``c`` (:class:`bytes` of length 1) [char]" msgstr "" +#: ../../c-api/arg.rst:688 msgid "" "Convert a C :c:expr:`int` representing a byte to a Python :class:`bytes` " "object of length 1." msgstr "" +#: ../../c-api/arg.rst:692 msgid "" "Convert a C :c:expr:`int` representing a character to Python :class:`str` " "object of length 1." msgstr "" +#: ../../c-api/arg.rst:696 msgid "Convert a C :c:expr:`double` to a Python floating-point number." msgstr "" +#: ../../c-api/arg.rst:699 msgid "Convert a C :c:expr:`float` to a Python floating-point number." msgstr "" +#: ../../c-api/arg.rst:701 msgid "``D`` (:class:`complex`) [Py_complex \\*]" msgstr "" +#: ../../c-api/arg.rst:702 msgid "Convert a C :c:type:`Py_complex` structure to a Python complex number." msgstr "" +#: ../../c-api/arg.rst:705 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 " @@ -974,24 +1168,30 @@ msgid "" "no exception has been raised yet, :exc:`SystemError` is set." msgstr "" +#: ../../c-api/arg.rst:714 msgid "``S`` (object) [PyObject \\*]" msgstr "" +#: ../../c-api/arg.rst:715 msgid "Same as ``O``." msgstr "" +#: ../../c-api/arg.rst:717 msgid "``N`` (object) [PyObject \\*]" msgstr "" +#: ../../c-api/arg.rst:718 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:722 msgid "``O&`` (object) [*converter*, *anything*]" msgstr "" +#: ../../c-api/arg.rst:723 msgid "" "Convert *anything* to a Python object through a *converter* function. The " "function is called with *anything* (which should be compatible with :c:expr:" @@ -999,36 +1199,44 @@ msgid "" "``NULL`` if an error occurred." msgstr "" +#: ../../c-api/arg.rst:728 msgid "``(items)`` (:class:`tuple`) [*matching-items*]" msgstr "" +#: ../../c-api/arg.rst:729 msgid "" "Convert a sequence of C values to a Python tuple with the same number of " "items." msgstr "" +#: ../../c-api/arg.rst:731 msgid "``[items]`` (:class:`list`) [*matching-items*]" msgstr "" +#: ../../c-api/arg.rst:732 msgid "" "Convert a sequence of C values to a Python list with the same number of " "items." msgstr "" +#: ../../c-api/arg.rst:734 msgid "``{items}`` (:class:`dict`) [*matching-items*]" msgstr "" +#: ../../c-api/arg.rst:735 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:739 msgid "" "If there is an error in the format string, the :exc:`SystemError` exception " "is set and ``NULL`` returned." msgstr "" +#: ../../c-api/arg.rst:744 msgid "" "Identical to :c:func:`Py_BuildValue`, except that it accepts a va_list " "rather than a variable number of arguments." diff --git a/c-api/bool.po b/c-api/bool.po index f587e5b..79b90d8 100644 --- a/c-api/bool.po +++ b/c-api/bool.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -27,38 +29,47 @@ msgid "" "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*." diff --git a/c-api/buffer.po b/c-api/buffer.po index 418057c..7b302bd 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -11,19 +11,21 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 :" @@ -32,6 +34,7 @@ msgid "" "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 " @@ -39,11 +42,13 @@ msgid "" "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. " @@ -51,12 +56,14 @@ msgid "" "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 " @@ -64,6 +71,7 @@ msgid "" "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 " @@ -75,33 +83,40 @@ msgid "" "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 " @@ -113,6 +128,7 @@ msgid "" "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 " @@ -121,12 +137,14 @@ msgid "" "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 " @@ -134,11 +152,13 @@ msgid "" "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 " @@ -146,12 +166,14 @@ msgid "" "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 " @@ -159,6 +181,7 @@ msgid "" "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 " @@ -166,16 +189,19 @@ msgid "" "`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 " @@ -183,27 +209,32 @@ msgid "" "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 " @@ -212,6 +243,7 @@ msgid "" "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 " @@ -219,28 +251,34 @@ msgid "" "`~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 " @@ -249,20 +287,24 @@ msgid "" "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 " @@ -270,18 +312,22 @@ msgid "" "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 " @@ -289,13 +335,16 @@ msgid "" "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:" @@ -303,9 +352,11 @@ msgid "" "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 " @@ -314,11 +365,17 @@ msgid "" "PyBUF_WRITABLE` can be used to request a simple writable buffer." msgstr "" +#: ../../c-api/buffer.rst:266 +msgid "This is an alias to :c:macro:`PyBUF_WRITABLE`." +msgstr "" + +#: ../../c-api/buffer.rst:272 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:276 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:" @@ -326,107 +383,159 @@ msgid "" "writable buffer." msgstr "" +#: ../../c-api/buffer.rst:280 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:286 msgid "shape, strides, suboffsets" msgstr "" +#: ../../c-api/buffer.rst:288 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:295 ../../c-api/buffer.rst:319 +#: ../../c-api/buffer.rst:344 msgid "Request" msgstr "" +#: ../../c-api/buffer.rst:295 ../../c-api/buffer.rst:319 +#: ../../c-api/buffer.rst:344 msgid "shape" msgstr "" +#: ../../c-api/buffer.rst:295 ../../c-api/buffer.rst:319 +#: ../../c-api/buffer.rst:344 msgid "strides" msgstr "" +#: ../../c-api/buffer.rst:295 ../../c-api/buffer.rst:319 +#: ../../c-api/buffer.rst:344 msgid "suboffsets" msgstr "" +#: ../../c-api/buffer.rst:297 ../../c-api/buffer.rst:299 +#: ../../c-api/buffer.rst:301 ../../c-api/buffer.rst:321 +#: ../../c-api/buffer.rst:323 ../../c-api/buffer.rst:325 +#: ../../c-api/buffer.rst:327 ../../c-api/buffer.rst:346 +#: ../../c-api/buffer.rst:348 ../../c-api/buffer.rst:350 +#: ../../c-api/buffer.rst:352 ../../c-api/buffer.rst:354 +#: ../../c-api/buffer.rst:356 ../../c-api/buffer.rst:358 +#: ../../c-api/buffer.rst:360 msgid "yes" msgstr "ja" +#: ../../c-api/buffer.rst:297 ../../c-api/buffer.rst:346 +#: ../../c-api/buffer.rst:348 msgid "if needed" msgstr "" +#: ../../c-api/buffer.rst:299 ../../c-api/buffer.rst:301 +#: ../../c-api/buffer.rst:303 ../../c-api/buffer.rst:321 +#: ../../c-api/buffer.rst:323 ../../c-api/buffer.rst:325 +#: ../../c-api/buffer.rst:327 ../../c-api/buffer.rst:350 +#: ../../c-api/buffer.rst:352 ../../c-api/buffer.rst:354 +#: ../../c-api/buffer.rst:356 ../../c-api/buffer.rst:358 +#: ../../c-api/buffer.rst:360 msgid "NULL" msgstr "" +#: ../../c-api/buffer.rst:310 msgid "contiguity requests" msgstr "" +#: ../../c-api/buffer.rst:312 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:319 ../../c-api/buffer.rst:344 msgid "contig" msgstr "" +#: ../../c-api/buffer.rst:321 ../../c-api/buffer.rst:327 +#: ../../c-api/buffer.rst:358 ../../c-api/buffer.rst:360 msgid "C" msgstr "" +#: ../../c-api/buffer.rst:323 msgid "F" msgstr "" +#: ../../c-api/buffer.rst:325 msgid "C or F" msgstr "" +#: ../../c-api/buffer.rst:327 msgid ":c:macro:`PyBUF_ND`" msgstr "" +#: ../../c-api/buffer.rst:332 msgid "compound requests" msgstr "" +#: ../../c-api/buffer.rst:334 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:338 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:344 msgid "readonly" msgstr "" +#: ../../c-api/buffer.rst:344 msgid "format" msgstr "" +#: ../../c-api/buffer.rst:346 ../../c-api/buffer.rst:348 +#: ../../c-api/buffer.rst:350 ../../c-api/buffer.rst:352 +#: ../../c-api/buffer.rst:354 ../../c-api/buffer.rst:356 msgid "U" msgstr "" +#: ../../c-api/buffer.rst:346 ../../c-api/buffer.rst:350 +#: ../../c-api/buffer.rst:354 ../../c-api/buffer.rst:358 msgid "0" msgstr "" +#: ../../c-api/buffer.rst:348 ../../c-api/buffer.rst:352 +#: ../../c-api/buffer.rst:356 ../../c-api/buffer.rst:360 msgid "1 or 0" msgstr "" +#: ../../c-api/buffer.rst:365 msgid "Complex arrays" msgstr "" +#: ../../c-api/buffer.rst:368 msgid "NumPy-style: shape and strides" msgstr "" +#: ../../c-api/buffer.rst:370 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:373 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 " @@ -434,24 +543,28 @@ msgid "" "strides` are ``NULL``." msgstr "" +#: ../../c-api/buffer.rst:377 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:381 msgid "" "ptr = (char *)buf + indices[0] * strides[0] + ... + indices[n-1] * " "strides[n-1];\n" "item = *((typeof(item) *)ptr);" msgstr "" +#: ../../c-api/buffer.rst:387 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:391 msgid "" "def verify_structure(memlen, itemsize, ndim, shape, strides, offset):\n" " \"\"\"Verify that the parameters represent a valid array within\n" @@ -480,9 +593,11 @@ msgid "" " return 0 <= offset+imin and offset+imax+itemsize <= memlen" msgstr "" +#: ../../c-api/buffer.rst:421 msgid "PIL-style: shape, strides and suboffsets" msgstr "" +#: ../../c-api/buffer.rst:423 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 " @@ -493,12 +608,14 @@ msgid "" "x[2][3]`` arrays that can be located anywhere in memory." msgstr "" +#: ../../c-api/buffer.rst:432 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:436 msgid "" "void *get_item_pointer(int ndim, void *buf, Py_ssize_t *strides,\n" " Py_ssize_t *suboffsets, Py_ssize_t *indices) {\n" @@ -514,21 +631,25 @@ msgid "" "}" msgstr "" +#: ../../c-api/buffer.rst:451 msgid "Buffer-related functions" msgstr "" +#: ../../c-api/buffer.rst:455 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:462 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:467 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 " @@ -536,6 +657,7 @@ msgid "" "instead of *exporter* (See :ref:`Buffer Object Structures `)." msgstr "" +#: ../../c-api/buffer.rst:472 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:" @@ -543,6 +665,7 @@ msgid "" "`PyBuffer_Release` must be called exactly once." msgstr "" +#: ../../c-api/buffer.rst:480 msgid "" "Release the buffer *view* and release the :term:`strong reference` (i.e. " "decrement the reference count) to the view's supporting object, ``view-" @@ -550,16 +673,19 @@ msgid "" "used, otherwise reference leaks may occur." msgstr "" +#: ../../c-api/buffer.rst:485 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:491 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:499 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 " @@ -567,84 +693,103 @@ msgid "" "succeeds." msgstr "" +#: ../../c-api/buffer.rst:506 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:512 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:519 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:523 msgid "This function fails if *len* != *src->len*." msgstr "" +#: ../../c-api/buffer.rst:528 msgid "" "Copy data from *src* to *dest* buffer. Can convert between C-style and or " "Fortran-style buffers." msgstr "" +#: ../../c-api/buffer.rst:531 msgid "``0`` is returned on success, ``-1`` on error." msgstr "" +#: ../../c-api/buffer.rst:535 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:542 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:546 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:550 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:554 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:307 msgid "contiguous" msgstr "" +#: ../../c-api/buffer.rst:307 msgid "C-contiguous" msgstr "" +#: ../../c-api/buffer.rst:307 msgid "Fortran contiguous" msgstr "" diff --git a/c-api/bytearray.po b/c-api/bytearray.po index 0426955..b2b9880 100644 --- a/c-api/bytearray.po +++ b/c-api/bytearray.po @@ -8,89 +8,123 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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:56 +#: ../../c-api/bytearray.rst:63 msgid "On failure, return ``NULL`` with an exception set." msgstr "" +#: ../../c-api/bytearray.rst:48 ../../c-api/bytearray.rst:66 +msgid "" +"If the object implements the buffer protocol, then the buffer must not be " +"mutated while the bytearray object is being created." +msgstr "" + +#: ../../c-api/bytearray.rst:54 msgid "Create a new bytearray object from *string* and its length, *len*." msgstr "" +#: ../../c-api/bytearray.rst:61 msgid "" "Concat bytearrays *a* and *b* and return a new bytearray with the result." msgstr "" +#: ../../c-api/bytearray.rst:72 msgid "Return the size of *bytearray* after checking for a ``NULL`` pointer." msgstr "" +#: ../../c-api/bytearray.rst:77 msgid "" "Return the contents of *bytearray* as a char array after checking for a " "``NULL`` pointer. The returned array always has an extra null byte appended." msgstr "" +#: ../../c-api/bytearray.rst:82 ../../c-api/bytearray.rst:104 +msgid "" +"It is not thread-safe to mutate the bytearray object while using the " +"returned char array." +msgstr "" + +#: ../../c-api/bytearray.rst:87 msgid "" "Resize the internal buffer of *bytearray* to *len*. Failure is a ``-1`` " "return with an exception set." msgstr "" +#: ../../c-api/bytearray.rst:90 msgid "" "A negative *len* will now result in an exception being set and -1 returned." msgstr "" +#: ../../c-api/bytearray.rst:95 msgid "Macros" msgstr "" +#: ../../c-api/bytearray.rst:97 msgid "These macros trade safety for speed and they don't check pointers." msgstr "" +#: ../../c-api/bytearray.rst:101 msgid "Similar to :c:func:`PyByteArray_AsString`, but without error checking." msgstr "" +#: ../../c-api/bytearray.rst:109 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 index d139c88..cfe4bfd 100644 --- a/c-api/bytes.po +++ b/c-api/bytes.po @@ -8,53 +8,62 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -64,143 +73,193 @@ msgid "" "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-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 "" +#: ../../c-api/bytes.rst:72 msgid "Equivalent to ``printf(\"%d\")``. [1]_" msgstr "" +#: ../../c-api/bytes.rst:75 msgid "``%u``" msgstr "" +#: ../../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 "" +#: ../../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 "" +#: ../../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 "" -msgid ":c:type:`\\ Py_ssize_t`" +#: ../../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 "" +#: ../../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 "" +#: ../../c-api/bytes.rst:90 msgid "Equivalent to ``printf(\"%i\")``. [1]_" msgstr "" +#: ../../c-api/bytes.rst:93 msgid "``%x``" msgstr "" +#: ../../c-api/bytes.rst:93 msgid "Equivalent to ``printf(\"%x\")``. [1]_" msgstr "" +#: ../../c-api/bytes.rst:96 msgid "``%s``" msgstr "" +#: ../../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 "" +#: ../../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:127 +msgid "" +"If the object implements the buffer protocol, then the buffer must not be " +"mutated while the bytes object is being created." +msgstr "" + +#: ../../c-api/bytes.rst:133 msgid "Return the length of the bytes in bytes object *o*." msgstr "" +#: ../../c-api/bytes.rst:138 msgid "Similar to :c:func:`PyBytes_Size`, but without error checking." msgstr "" +#: ../../c-api/bytes.rst:143 msgid "" "Return a pointer to the contents of *o*. The pointer refers to the internal " "buffer of *o*, which consists of ``len(o) + 1`` bytes. The last byte in the " @@ -211,20 +270,24 @@ msgid "" "`PyBytes_AsString` returns ``NULL`` and raises :exc:`TypeError`." msgstr "" +#: ../../c-api/bytes.rst:155 msgid "Similar to :c:func:`PyBytes_AsString`, but without error checking." msgstr "" +#: ../../c-api/bytes.rst:160 msgid "" "Return the null-terminated contents of the object *obj* through the output " "variables *buffer* and *length*. Returns ``0`` on success." msgstr "" +#: ../../c-api/bytes.rst:164 msgid "" "If *length* is ``NULL``, the bytes object may not contain embedded null " "bytes; if it does, the function returns ``-1`` and a :exc:`ValueError` is " "raised." msgstr "" +#: ../../c-api/bytes.rst:168 msgid "" "The buffer refers to an internal buffer of *obj*, which includes an " "additional null byte at the end (not counted in *length*). The data must " @@ -234,44 +297,65 @@ msgid "" "returns ``-1`` and raises :exc:`TypeError`." msgstr "" +#: ../../c-api/bytes.rst:175 msgid "" "Previously, :exc:`TypeError` was raised when embedded null bytes were " "encountered in the bytes object." msgstr "" +#: ../../c-api/bytes.rst:182 msgid "" "Create a new bytes object in *\\*bytes* containing the contents of *newpart* " -"appended to *bytes*; the caller will own the new reference. The reference " -"to the old value of *bytes* will be stolen. If the new object cannot be " -"created, the old reference to *bytes* will still be discarded and the value " -"of *\\*bytes* will be set to ``NULL``; the appropriate exception will be set." +"appended to *bytes*; the caller will own the new reference. The reference to " +"the old value of *bytes* will be \":term:`stolen `\". If the new " +"object cannot be created, the old reference to *bytes* will still be " +"\"stolen\", the value of *\\*bytes* will be set to ``NULL``, and the " +"appropriate exception will be set." msgstr "" +#: ../../c-api/bytes.rst:190 ../../c-api/bytes.rst:200 +msgid "" +"If *newpart* implements the buffer protocol, then the buffer must not be " +"mutated while the new bytes object is being created." +msgstr "" + +#: ../../c-api/bytes.rst:195 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:206 msgid "Similar to ``sep.join(iterable)`` in Python." msgstr "" +#: ../../c-api/bytes.rst:208 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:213 msgid "" "*iterable* must be an iterable object yielding objects that implement the :" "ref:`buffer protocol `." msgstr "" +#: ../../c-api/bytes.rst:216 msgid "" "On success, return a new :class:`bytes` object. On error, set an exception " "and return ``NULL``." msgstr "" +#: ../../c-api/bytes.rst:222 +msgid "" +"If *iterable* objects implement the buffer protocol, then the buffers must " +"not be mutated while the new bytes object is being created." +msgstr "" + +#: ../../c-api/bytes.rst:227 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 " @@ -283,8 +367,61 @@ msgid "" "``NULL``, :exc:`MemoryError` is set, and ``-1`` is returned." msgstr "" +#: ../../c-api/bytes.rst:241 +msgid "" +"Get the string representation of *bytes*. This function is currently used to " +"implement :meth:`!bytes.__repr__` in Python." +msgstr "" + +#: ../../c-api/bytes.rst:244 +msgid "" +"This function does not do type checking; it is undefined behavior to pass " +"*bytes* as a non-bytes object or ``NULL``." +msgstr "" + +#: ../../c-api/bytes.rst:247 +msgid "" +"If *smartquotes* is true, the representation will use a double-quoted string " +"instead of single-quoted string when single-quotes are present in *bytes*. " +"For example, the byte string ``'Python'`` would be represented as " +"``b\"'Python'\"`` when *smartquotes* is true, or ``b'\\'Python\\''`` when it " +"is false." +msgstr "" + +#: ../../c-api/bytes.rst:253 +msgid "" +"On success, this function returns a :term:`strong reference` to a :class:" +"`str` object containing the representation. On failure, this returns " +"``NULL`` with an exception set." +msgstr "" + +#: ../../c-api/bytes.rst:260 +msgid "" +"Unescape a backslash-escaped string *s*. *s* must not be ``NULL``. *len* " +"must be the size of *s*." +msgstr "" + +#: ../../c-api/bytes.rst:263 +msgid "" +"*errors* must be one of ``\"strict\"``, ``\"replace\"``, or ``\"ignore\"``. " +"If *errors* is ``NULL``, then ``\"strict\"`` is used by default." +msgstr "" + +#: ../../c-api/bytes.rst:266 +msgid "" +"On success, this function returns a :term:`strong reference` to a Python :" +"class:`bytes` object containing the unescaped string. On failure, this " +"function returns ``NULL`` with an exception set." +msgstr "" + +#: ../../c-api/bytes.rst:270 +msgid "*unicode* and *recode_encoding* are now unused." +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 index 3babca1..fa138e4 100644 --- a/c-api/call.po +++ b/c-api/call.po @@ -11,35 +11,41 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -47,24 +53,29 @@ msgid "" "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, " @@ -76,11 +87,13 @@ msgid "" "`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 " @@ -90,6 +103,7 @@ msgid "" "` 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 " @@ -97,6 +111,7 @@ msgid "" "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." @@ -105,35 +120,43 @@ msgid "" "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 " @@ -141,11 +164,13 @@ msgid "" "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 " @@ -153,43 +178,52 @@ msgid "" "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*. " @@ -197,16 +231,19 @@ msgid "" "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``. " @@ -214,9 +251,11 @@ msgid "" "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 " @@ -224,136 +263,182 @@ msgid "" "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 "" +#: ../../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 "" +#: ../../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:func:`PyObject_Vectorcall`" +#: ../../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:func:`PyObject_VectorcallMethod`" +#: ../../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:360 ../../c-api/call.rst:399 msgid "" "Return the result of the call on success, or raise an exception and return " "*NULL* on failure." msgstr "" +#: ../../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` " @@ -361,47 +446,57 @@ msgid "" "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 " @@ -409,29 +504,45 @@ msgid "" "variable number of parameters followed by *NULL*." msgstr "" +#: ../../c-api/call.rst:330 msgid "" "Call a method of the Python object *obj* without arguments, where the name " "of the method is given as a Python string object in *name*." msgstr "" +#: ../../c-api/call.rst:341 msgid "" "Call a method of the Python object *obj* with a single positional argument " "*arg*, where the name of the method is given as a Python string object in " "*name*." msgstr "" +#: ../../c-api/call.rst:355 msgid "" "Call a callable Python object *callable*. The arguments are the same as for :" "c:type:`vectorcallfunc`. If *callable* supports vectorcall_, this directly " "calls the vectorcall function stored in *callable*." msgstr "" +#: ../../c-api/call.rst:363 +#, fuzzy +msgid "as ``_PyObject_Vectorcall``" +msgstr ":c:func:`PyObject_Vectorcall`" + +#: ../../c-api/call.rst:367 +msgid "" +"Renamed to the current name, without the leading underscore. The old " +"provisional name is :term:`soft deprecated`." +msgstr "" + +#: ../../c-api/call.rst:372 msgid "" "Call *callable* with positional arguments passed exactly as in the " "vectorcall_ protocol, but with keyword arguments passed as a dictionary " "*kwdict*. The *args* array contains only the positional arguments." msgstr "" +#: ../../c-api/call.rst:376 msgid "" "Regardless of which protocol is used internally, a conversion of arguments " "needs to be done. Therefore, this function should only be used if the caller " @@ -439,6 +550,7 @@ msgid "" "tuple for the positional arguments." msgstr "" +#: ../../c-api/call.rst:386 msgid "" "Call a method using the vectorcall calling convention. The name of the " "method is given as a Python string *name*. The object whose method is called " @@ -450,14 +562,17 @@ msgid "" "`PyObject_Vectorcall`." msgstr "" +#: ../../c-api/call.rst:395 msgid "" "If the object has the :c:macro:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this " "will call the unbound method object with the full *args* vector as arguments." msgstr "" +#: ../../c-api/call.rst:406 msgid "Call Support API" msgstr "" +#: ../../c-api/call.rst:410 msgid "" "Determine if the object *o* is callable. Return ``1`` if the object is " "callable and ``0`` otherwise. This function always succeeds." diff --git a/c-api/capsule.po b/c-api/capsule.po index 5edce93..7489c13 100644 --- a/c-api/capsule.po +++ b/c-api/capsule.po @@ -8,22 +8,25 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 which need to pass an opaque value (as a :c:expr:`void*` " @@ -33,52 +36,69 @@ msgid "" "loaded modules." msgstr "" +#: ../../c-api/capsule.rst:27 +msgid "" +"The type object corresponding to capsule objects. This is the same object " +"as :class:`types.CapsuleType` in the Python layer." +msgstr "" + +#: ../../c-api/capsule.rst:33 msgid "The type of a destructor callback for a capsule. Defined as::" msgstr "" +#: ../../c-api/capsule.rst:35 msgid "typedef void (*PyCapsule_Destructor)(PyObject *);" msgstr "" +#: ../../c-api/capsule.rst:37 msgid "" "See :c:func:`PyCapsule_New` for the semantics of PyCapsule_Destructor " "callbacks." msgstr "" +#: ../../c-api/capsule.rst:43 msgid "" "Return true if its argument is a :c:type:`PyCapsule`. This function always " "succeeds." msgstr "" +#: ../../c-api/capsule.rst:49 msgid "" "Create a :c:type:`PyCapsule` encapsulating the *pointer*. The *pointer* " "argument may not be ``NULL``." msgstr "" +#: ../../c-api/capsule.rst:52 msgid "On failure, set an exception and return ``NULL``." msgstr "" +#: ../../c-api/capsule.rst:54 msgid "" "The *name* string may either be ``NULL`` or a pointer to a valid C string. " "If non-``NULL``, this string must outlive the capsule. (Though it is " "permitted to free it inside the *destructor*.)" msgstr "" +#: ../../c-api/capsule.rst:58 msgid "" "If the *destructor* argument is not ``NULL``, it will be called with the " "capsule as its argument when it is destroyed." msgstr "" +#: ../../c-api/capsule.rst:61 msgid "" "If this capsule will be stored as an attribute of a module, the *name* " "should be specified as ``modulename.attributename``. This will enable other " "modules to import the capsule using :c:func:`PyCapsule_Import`." msgstr "" +#: ../../c-api/capsule.rst:68 msgid "" "Retrieve the *pointer* stored in the capsule. On failure, set an exception " "and return ``NULL``." msgstr "" +#: ../../c-api/capsule.rst:71 msgid "" "The *name* parameter must compare exactly to the name stored in the capsule. " "If the name stored in the capsule is ``NULL``, the *name* passed in must " @@ -86,39 +106,46 @@ msgid "" "capsule names." msgstr "" +#: ../../c-api/capsule.rst:79 msgid "" "Return the current destructor stored in the capsule. On failure, set an " "exception and return ``NULL``." msgstr "" +#: ../../c-api/capsule.rst:82 msgid "" "It is legal for a capsule to have a ``NULL`` destructor. This makes a " "``NULL`` return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :" "c:func:`PyErr_Occurred` to disambiguate." msgstr "" +#: ../../c-api/capsule.rst:89 msgid "" "Return the current context stored in the capsule. On failure, set an " "exception and return ``NULL``." msgstr "" +#: ../../c-api/capsule.rst:92 msgid "" "It is legal for a capsule to have a ``NULL`` context. This makes a ``NULL`` " "return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" "`PyErr_Occurred` to disambiguate." msgstr "" +#: ../../c-api/capsule.rst:99 msgid "" "Return the current name stored in the capsule. On failure, set an exception " "and return ``NULL``." msgstr "" +#: ../../c-api/capsule.rst:102 msgid "" "It is legal for a capsule to have a ``NULL`` name. This makes a ``NULL`` " "return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" "`PyErr_Occurred` to disambiguate." msgstr "" +#: ../../c-api/capsule.rst:109 msgid "" "Import a pointer to a C object from a capsule attribute in a module. The " "*name* parameter should specify the full name to the attribute, as in " @@ -126,16 +153,19 @@ msgid "" "string exactly." msgstr "" +#: ../../c-api/capsule.rst:114 msgid "" "This function splits *name* on the ``.`` character, and imports the first " "element. It then processes further elements using attribute lookups." msgstr "" +#: ../../c-api/capsule.rst:117 msgid "" "Return the capsule's internal *pointer* on success. On failure, set an " "exception and return ``NULL``." msgstr "" +#: ../../c-api/capsule.rst:122 msgid "" "If *name* points to an attribute of some submodule or subpackage, this " "submodule or subpackage must be previously imported using other means (for " @@ -143,9 +173,11 @@ msgid "" "to succeed." msgstr "" +#: ../../c-api/capsule.rst:127 msgid "*no_block* has no effect anymore." msgstr "" +#: ../../c-api/capsule.rst:133 msgid "" "Determines whether or not *capsule* is a valid capsule. A valid capsule is " "non-``NULL``, passes :c:func:`PyCapsule_CheckExact`, has a non-``NULL`` " @@ -154,40 +186,50 @@ msgid "" "compared.)" msgstr "" +#: ../../c-api/capsule.rst:139 msgid "" "In other words, if :c:func:`PyCapsule_IsValid` returns a true value, calls " "to any of the accessors (any function starting with ``PyCapsule_Get``) are " "guaranteed to succeed." msgstr "" +#: ../../c-api/capsule.rst:143 msgid "" "Return a nonzero value if the object is valid and matches the name passed " "in. Return ``0`` otherwise. This function will not fail." msgstr "" +#: ../../c-api/capsule.rst:149 msgid "Set the context pointer inside *capsule* to *context*." msgstr "" +#: ../../c-api/capsule.rst:151 ../../c-api/capsule.rst:158 +#: ../../c-api/capsule.rst:167 ../../c-api/capsule.rst:175 msgid "" "Return ``0`` on success. Return nonzero and set an exception on failure." msgstr "" +#: ../../c-api/capsule.rst:156 msgid "Set the destructor inside *capsule* to *destructor*." msgstr "" +#: ../../c-api/capsule.rst:163 msgid "" "Set the name inside *capsule* to *name*. If non-``NULL``, the name must " "outlive the capsule. If the previous *name* stored in the capsule was not " "``NULL``, no attempt is made to free it." msgstr "" +#: ../../c-api/capsule.rst:172 msgid "" "Set the void pointer inside *capsule* to *pointer*. The pointer may not be " "``NULL``." msgstr "" +#: ../../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 index 737e5b9..e69f964 100644 --- a/c-api/cell.po +++ b/c-api/cell.po @@ -8,22 +8,24 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " +"the local variables of each stack frame that references the value contain a " "reference to the cells from outer scopes which also use that variable. When " "the value is accessed, the value contained in the cell is used instead of " "the cell object itself. This de-referencing of the cell object requires " @@ -31,43 +33,52 @@ msgid "" "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`` " diff --git a/c-api/code.po b/c-api/code.po index 5f5267d..6f858aa 100644 --- a/c-api/code.po +++ b/c-api/code.po @@ -8,140 +8,166 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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:77 msgid "" "Similar to :c:func:`PyUnstable_Code_New`, but with an extra " "\"posonlyargcount\" for positional-only arguments. The same caveats that " "apply to ``PyUnstable_Code_New`` also apply to this function." msgstr "" +#: ../../c-api/code.rst:80 msgid "as ``PyCode_NewWithPosOnlyArgs``" msgstr "" +#: ../../c-api/code.rst:82 msgid "Added ``qualname`` and ``exceptiontable`` parameters." msgstr "" +#: ../../c-api/code.rst:87 msgid "" "Renamed to ``PyUnstable_Code_NewWithPosOnlyArgs``. The old name is " "deprecated, but will remain available until the signature changes again." msgstr "" +#: ../../c-api/code.rst:93 msgid "" "Return a new empty code object with the specified filename, function name, " "and first line number. The resulting code object will raise an ``Exception`` " "if executed." msgstr "" +#: ../../c-api/code.rst:99 msgid "" "Return the line number of the instruction that occurs on or before " "``byte_offset`` and ends after it. If you just need the line number of a " "frame, use :c:func:`PyFrame_GetLineNumber` instead." msgstr "" +#: ../../c-api/code.rst:102 msgid "" "For efficiently iterating over the line numbers in a code object, use :pep:" "`the API described in PEP 626 <0626#out-of-process-debuggers-and-profilers>`." msgstr "" +#: ../../c-api/code.rst:107 msgid "" "Sets the passed ``int`` pointers to the source code line and column numbers " "for the instruction at ``byte_offset``. Sets the value to ``0`` when " "information is not available for any particular element." msgstr "" +#: ../../c-api/code.rst:111 msgid "Returns ``1`` if the function succeeds and 0 otherwise." msgstr "" +#: ../../c-api/code.rst:117 msgid "" "Equivalent to the Python code ``getattr(co, 'co_code')``. Returns a strong " "reference to a :c:type:`PyBytesObject` representing the bytecode in a code " "object. On error, ``NULL`` is returned and an exception is raised." msgstr "" +#: ../../c-api/code.rst:122 msgid "" "This ``PyBytesObject`` may be created on-demand by the interpreter and does " "not necessarily represent the bytecode actually executed by CPython. The " "primary use case for this function is debuggers and profilers." msgstr "" +#: ../../c-api/code.rst:130 msgid "" "Equivalent to the Python code ``getattr(co, 'co_varnames')``. Returns a new " "reference to a :c:type:`PyTupleObject` containing the names of the local " "variables. On error, ``NULL`` is returned and an exception is raised." msgstr "" +#: ../../c-api/code.rst:139 msgid "" "Equivalent to the Python code ``getattr(co, 'co_cellvars')``. Returns a new " "reference to a :c:type:`PyTupleObject` containing the names of the local " @@ -149,6 +175,7 @@ msgid "" "returned and an exception is raised." msgstr "" +#: ../../c-api/code.rst:148 msgid "" "Equivalent to the Python code ``getattr(co, 'co_freevars')``. Returns a new " "reference to a :c:type:`PyTupleObject` containing the names of the :term:" @@ -156,6 +183,7 @@ msgid "" "returned and an exception is raised." msgstr "" +#: ../../c-api/code.rst:157 msgid "" "Register *callback* as a code object watcher for the current interpreter. " "Return an ID which may be passed to :c:func:`PyCode_ClearWatcher`. In case " @@ -163,6 +191,7 @@ msgid "" "exception." msgstr "" +#: ../../c-api/code.rst:166 msgid "" "Clear watcher identified by *watcher_id* previously returned from :c:func:" "`PyCode_AddWatcher` for the current interpreter. Return ``0`` on success, or " @@ -170,14 +199,17 @@ msgid "" "never registered.)" msgstr "" +#: ../../c-api/code.rst:175 msgid "" "Enumeration of possible code object watcher events: - " "``PY_CODE_EVENT_CREATE`` - ``PY_CODE_EVENT_DESTROY``" msgstr "" +#: ../../c-api/code.rst:183 msgid "Type of a code object watcher callback function." msgstr "" +#: ../../c-api/code.rst:185 msgid "" "If *event* is ``PY_CODE_EVENT_CREATE``, then the callback is invoked after " "*co* has been fully initialized. Otherwise, the callback is invoked before " @@ -185,6 +217,7 @@ msgid "" "inspected." msgstr "" +#: ../../c-api/code.rst:190 msgid "" "If *event* is ``PY_CODE_EVENT_DESTROY``, taking a reference in the callback " "to the about-to-be-destroyed code object will resurrect it and prevent it " @@ -192,6 +225,7 @@ msgid "" "later, any watcher callbacks active at that time will be called again." msgstr "" +#: ../../c-api/code.rst:195 msgid "" "Users of this API should not rely on internal runtime implementation " "details. Such details may include, but are not limited to, the exact order " @@ -201,12 +235,14 @@ msgid "" "the Python code being executed." msgstr "" +#: ../../c-api/code.rst:202 msgid "" "If the callback sets an exception, it must return ``-1``; this exception " "will be printed as an unraisable exception using :c:func:" "`PyErr_WriteUnraisable`. Otherwise it should return ``0``." msgstr "" +#: ../../c-api/code.rst:206 msgid "" "There may already be a pending exception set on entry to the callback. In " "this case, the callback should return ``0`` with the same exception still " @@ -215,9 +251,25 @@ msgid "" "it before returning." msgstr "" +#: ../../c-api/code.rst:217 +msgid "This is a function that does nothing." +msgstr "" + +#: ../../c-api/code.rst:219 +msgid "" +"Prior to Python 3.10, this function would perform basic optimizations to a " +"code object." +msgstr "" + +#: ../../c-api/code.rst:222 +msgid "This function now does nothing." +msgstr "" + +#: ../../c-api/code.rst:231 msgid "Code Object Flags" msgstr "" +#: ../../c-api/code.rst:233 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:" @@ -225,6 +277,7 @@ msgid "" "`PyUnstable_Code_New` and similar functions." msgstr "" +#: ../../c-api/code.rst:238 msgid "" "Flags whose names start with ``CO_FUTURE_`` correspond to features normally " "selectable by :ref:`future statements `. These flags can be used in :" @@ -232,160 +285,188 @@ msgid "" "mandatory in current versions of Python, and setting them has no effect." msgstr "" +#: ../../c-api/code.rst:244 msgid "" "The following flags are available. For their meaning, see the linked " "documentation of their Python equivalents." msgstr "" +#: ../../c-api/code.rst:252 msgid "Flag" msgstr "" +#: ../../c-api/code.rst:253 msgid "Meaning" msgstr "" +#: ../../c-api/code.rst:255 msgid ":py:data:`inspect.CO_OPTIMIZED`" msgstr "" +#: ../../c-api/code.rst:257 msgid ":py:data:`inspect.CO_NEWLOCALS`" msgstr "" +#: ../../c-api/code.rst:259 msgid ":py:data:`inspect.CO_VARARGS`" msgstr "" +#: ../../c-api/code.rst:261 msgid ":py:data:`inspect.CO_VARKEYWORDS`" msgstr "" +#: ../../c-api/code.rst:263 msgid ":py:data:`inspect.CO_NESTED`" msgstr "" +#: ../../c-api/code.rst:265 msgid ":py:data:`inspect.CO_GENERATOR`" msgstr "" +#: ../../c-api/code.rst:267 msgid ":py:data:`inspect.CO_COROUTINE`" msgstr "" +#: ../../c-api/code.rst:269 msgid ":py:data:`inspect.CO_ITERABLE_COROUTINE`" msgstr "" +#: ../../c-api/code.rst:271 msgid ":py:data:`inspect.CO_ASYNC_GENERATOR`" msgstr "" +#: ../../c-api/code.rst:273 msgid ":py:data:`inspect.CO_HAS_DOCSTRING`" msgstr "" +#: ../../c-api/code.rst:275 msgid ":py:data:`inspect.CO_METHOD`" msgstr "" +#: ../../c-api/code.rst:278 msgid "no effect (:py:data:`__future__.division`)" msgstr "" +#: ../../c-api/code.rst:280 msgid "no effect (:py:data:`__future__.absolute_import`)" msgstr "" +#: ../../c-api/code.rst:282 msgid "no effect (:py:data:`__future__.with_statement`)" msgstr "" +#: ../../c-api/code.rst:284 msgid "no effect (:py:data:`__future__.print_function`)" msgstr "" +#: ../../c-api/code.rst:286 msgid "no effect (:py:data:`__future__.unicode_literals`)" msgstr "" +#: ../../c-api/code.rst:288 msgid "no effect (:py:data:`__future__.generator_stop`)" msgstr "" +#: ../../c-api/code.rst:290 msgid ":py:data:`__future__.annotations`" msgstr "" +#: ../../c-api/code.rst:294 msgid "Extra information" msgstr "" +#: ../../c-api/code.rst:296 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:300 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:309 msgid "Return a new opaque index value used to adding data to code objects." msgstr "" +#: ../../c-api/code.rst:311 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:315 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:319 msgid "as ``_PyEval_RequestCodeExtraIndex``" msgstr "" +#: ../../c-api/code.rst:323 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:332 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:335 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:338 msgid "as ``_PyCode_GetExtra``" msgstr "" +#: ../../c-api/code.rst:342 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:351 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:354 msgid "as ``_PyCode_SetExtra``" msgstr "" +#: ../../c-api/code.rst:358 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 "" - -msgid "PyCode_NewWithPosOnlyArgs (C function)" -msgstr "" - -msgid "_PyEval_RequestCodeExtraIndex (C function)" -msgstr "" - -msgid "_PyCode_GetExtra (C function)" -msgstr "" - -msgid "_PyCode_SetExtra (C function)" -msgstr "" diff --git a/c-api/codec.po b/c-api/codec.po index f90d7bd..180ae06 100644 --- a/c-api/codec.po +++ b/c-api/codec.po @@ -8,41 +8,48 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 a side effect, this tries to load the :mod:`!encodings` package, if not " "yet done, to make sure that it is always first in the list of search " "functions." msgstr "" +#: ../../c-api/codec.rst:15 msgid "" "Unregister a codec search function and clear the registry's cache. If the " "search function is not registered, do nothing. Return 0 on success. Raise an " "exception and return -1 on error." msgstr "" +#: ../../c-api/codec.rst:23 msgid "" "Return ``1`` or ``0`` depending on whether there is a registered codec for " "the given *encoding*. This function always succeeds." msgstr "" +#: ../../c-api/codec.rst:28 msgid "Generic codec based encoding API." msgstr "" +#: ../../c-api/codec.rst:30 msgid "" "*object* is passed through the encoder function found for the given " "*encoding* using the error handling method defined by *errors*. *errors* " @@ -50,9 +57,11 @@ msgid "" "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* " @@ -60,9 +69,11 @@ msgid "" "exc:`LookupError` if no decoder can be found." msgstr "" +#: ../../c-api/codec.rst:46 msgid "Codec lookup API" msgstr "" +#: ../../c-api/codec.rst:48 msgid "" "In the following functions, the *encoding* string is looked up converted to " "all lower-case characters, which makes encodings looked up through this " @@ -70,33 +81,41 @@ msgid "" "`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 " @@ -104,6 +123,7 @@ msgid "" "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:" @@ -116,31 +136,49 @@ msgid "" "should be resumed." msgstr "" +#: ../../c-api/codec.rst:98 msgid "Return ``0`` on success, ``-1`` on error." msgstr "" +#: ../../c-api/codec.rst:102 msgid "" "Lookup the error handling callback function registered under *name*. As a " "special case ``NULL`` can be passed, in which case the error handling " "callback for \"strict\" will be returned." msgstr "" +#: ../../c-api/codec.rst:108 msgid "Raise *exc* as an exception." msgstr "" +#: ../../c-api/codec.rst:112 msgid "Ignore the unicode error, skipping the faulty input." msgstr "" +#: ../../c-api/codec.rst:116 msgid "Replace the unicode encode error with ``?`` or ``U+FFFD``." msgstr "" +#: ../../c-api/codec.rst:120 msgid "Replace the unicode encode error with XML character references." msgstr "" +#: ../../c-api/codec.rst:124 msgid "" "Replace the unicode encode error with backslash escapes (``\\x``, ``\\u`` " "and ``\\U``)." msgstr "" +#: ../../c-api/codec.rst:129 msgid "Replace the unicode encode error with ``\\N{...}`` escapes." msgstr "" + +#: ../../c-api/codec.rst:135 +msgid "Codec utility variables" +msgstr "" + +#: ../../c-api/codec.rst:139 +msgid "" +"A string constant containing the lowercase hexadecimal digits: " +"``\"0123456789abcdef\"``." +msgstr "" diff --git a/c-api/complex.po b/c-api/complex.po index 50929e8..759771e 100644 --- a/c-api/complex.po +++ b/c-api/complex.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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, " @@ -27,15 +29,18 @@ msgid "" "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 " @@ -43,9 +48,11 @@ msgid "" "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" @@ -53,84 +60,102 @@ msgid "" "} 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 " @@ -138,17 +163,21 @@ msgid "" "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 " @@ -157,9 +186,11 @@ msgid "" "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 " @@ -168,17 +199,21 @@ msgid "" "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 index e97bbf2..b3b7c54 100644 --- a/c-api/concrete.po +++ b/c-api/concrete.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -29,6 +31,7 @@ msgid "" "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`` " @@ -37,42 +40,59 @@ msgid "" "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:123 +msgid "C API for extension modules" +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 index 3ae0620..fd760b3 100644 --- a/c-api/contextvars.po +++ b/c-api/contextvars.po @@ -8,24 +8,27 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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" @@ -34,80 +37,99 @@ msgid "" "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 " @@ -115,6 +137,7 @@ msgid "" "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, " @@ -122,9 +145,11 @@ msgid "" "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-" @@ -132,17 +157,20 @@ msgid "" "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 " @@ -151,9 +179,11 @@ msgid "" "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 " @@ -161,34 +191,42 @@ msgid "" "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 "" +#: ../../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 " diff --git a/c-api/conversion.po b/c-api/conversion.po index 1b8fe9f..80bb9f8 100644 --- a/c-api/conversion.po +++ b/c-api/conversion.po @@ -8,33 +8,38 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -42,6 +47,7 @@ msgid "" "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'``) " @@ -51,39 +57,46 @@ msgid "" "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." +"When ``rv < 0``, the output conversion failed and ``str[size-1]`` is " +"``'\\0'`` in this case too, but the rest of *str* is undefined. The exact " +"cause of the error depends on the underlying platform." msgstr "" +#: ../../c-api/conversion.rst:49 msgid "" "The following functions provide locale-independent string to number " "conversions." msgstr "" +#: ../../c-api/conversion.rst:53 msgid "" "Convert the initial part of the string in ``str`` to an :c:expr:`unsigned " "long` value according to the given ``base``, which must be between ``2`` and " "``36`` inclusive, or be the special value ``0``." msgstr "" +#: ../../c-api/conversion.rst:57 msgid "" "Leading white space and case of characters are ignored. If ``base`` is zero " "it looks for a leading ``0b``, ``0o`` or ``0x`` to tell which base. If " @@ -92,6 +105,7 @@ msgid "" "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:" @@ -99,23 +113,28 @@ msgid "" "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 " @@ -124,12 +143,14 @@ msgid "" "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 " @@ -138,6 +159,7 @@ msgid "" "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 " @@ -148,61 +170,172 @@ msgid "" "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 "" -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:" +#: ../../c-api/conversion.rst:131 +msgid "*flags* can be zero or more of the following values or-ed together:" msgstr "" +#: ../../c-api/conversion.rst:137 msgid "" -"``Py_DTSF_SIGN`` means to always precede the returned string with a sign " -"character, even if *val* is non-negative." +"Always precede the returned string with a sign character, even if *val* is " +"non-negative." msgstr "" -msgid "" -"``Py_DTSF_ADD_DOT_0`` means to ensure that the returned string will not look " -"like an integer." +#: ../../c-api/conversion.rst:142 +msgid "Ensure that the returned string will not look like an integer." msgstr "" +#: ../../c-api/conversion.rst:146 msgid "" -"``Py_DTSF_ALT`` means to apply \"alternate\" formatting rules. See the " -"documentation for the :c:func:`PyOS_snprintf` ``'#'`` specifier for details." +"Apply \"alternate\" formatting rules. See the documentation for the :c:func:" +"`PyOS_snprintf` ``'#'`` specifier for details." msgstr "" +#: ../../c-api/conversion.rst:152 +msgid "Negative zero is converted to positive zero." +msgstr "" + +#: ../../c-api/conversion.rst:156 msgid "" "If *ptype* is non-``NULL``, then the value it points to will be set to one " -"of ``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." +"of the following constants depending on the type of *val*:" +msgstr "" + +#: ../../c-api/conversion.rst:163 +msgid "*\\*ptype*" +msgstr "" + +#: ../../c-api/conversion.rst:164 +msgid "type of *val*" +msgstr "" + +#: ../../c-api/conversion.rst:166 +msgid "finite number" +msgstr "" + +#: ../../c-api/conversion.rst:168 +msgid "infinite number" msgstr "" +#: ../../c-api/conversion.rst:170 +msgid "not a number" +msgstr "" + +#: ../../c-api/conversion.rst:172 msgid "" "The return value is a pointer to *buffer* with the converted string or " "``NULL`` if the conversion failed. The caller is responsible for freeing the " "returned string by calling :c:func:`PyMem_Free`." msgstr "" +#: ../../c-api/conversion.rst:182 +msgid "" +"Case insensitive comparison of strings. These functions work almost " +"identically to :c:func:`!strcmp` and :c:func:`!strncmp` (respectively), " +"except that they ignore the case of ASCII characters." +msgstr "" + +#: ../../c-api/conversion.rst:186 +msgid "" +"Return ``0`` if the strings are equal, a negative value if *str1* sorts " +"lexicographically before *str2*, or a positive value if it sorts after." +msgstr "" + +#: ../../c-api/conversion.rst:189 +msgid "" +"In the *str1* or *str2* arguments, a NUL byte marks the end of the string. " +"For :c:func:`!PyOS_mystrnicmp`, the *size* argument gives the maximum size " +"of the string, as if NUL was present at the index given by *size*." +msgstr "" + +#: ../../c-api/conversion.rst:193 +msgid "These functions do not use the locale." +msgstr "" + +#: ../../c-api/conversion.rst:199 +msgid "Case insensitive comparison of strings." +msgstr "" + +#: ../../c-api/conversion.rst:201 +msgid "" +"On Windows, these are aliases of :c:func:`!stricmp` and :c:func:`!strnicmp`, " +"respectively." +msgstr "" + +#: ../../c-api/conversion.rst:204 msgid "" -"Case insensitive comparison of strings. The function works almost " -"identically to :c:func:`!strcmp` except that it ignores the case." +"On other platforms, they are aliases of :c:func:`PyOS_mystricmp` and :c:func:" +"`PyOS_mystrnicmp`, respectively." +msgstr "" + +#: ../../c-api/conversion.rst:209 +msgid "Character classification and conversion" msgstr "" +#: ../../c-api/conversion.rst:211 msgid "" -"Case insensitive comparison of strings. The function works almost " -"identically to :c:func:`!strncmp` except that it ignores the case." +"The following macros provide locale-independent (unlike the C standard " +"library ``ctype.h``) character classification and conversion. The argument " +"must be a signed or unsigned :c:expr:`char`." +msgstr "" + +#: ../../c-api/conversion.rst:218 +msgid "Return true if the character *c* is an alphanumeric character." +msgstr "" + +#: ../../c-api/conversion.rst:223 +msgid "" +"Return true if the character *c* is an alphabetic character (``a-z`` and ``A-" +"Z``)." +msgstr "" + +#: ../../c-api/conversion.rst:228 +msgid "Return true if the character *c* is a decimal digit (``0-9``)." +msgstr "" + +#: ../../c-api/conversion.rst:233 +msgid "Return true if the character *c* is a lowercase ASCII letter (``a-z``)." +msgstr "" + +#: ../../c-api/conversion.rst:238 +msgid "" +"Return true if the character *c* is an uppercase ASCII letter (``A-Z``)." +msgstr "" + +#: ../../c-api/conversion.rst:243 +msgid "" +"Return true if the character *c* is a whitespace character (space, tab, " +"carriage return, newline, vertical tab, or form feed)." +msgstr "" + +#: ../../c-api/conversion.rst:249 +msgid "" +"Return true if the character *c* is a hexadecimal digit (``0-9``, ``a-f``, " +"and ``A-F``)." +msgstr "" + +#: ../../c-api/conversion.rst:255 +msgid "Return the lowercase equivalent of the character *c*." +msgstr "" + +#: ../../c-api/conversion.rst:260 +msgid "Return the uppercase equivalent of the character *c*." msgstr "" diff --git a/c-api/coro.po b/c-api/coro.po index e36302a..2375834 100644 --- a/c-api/coro.po +++ b/c-api/coro.po @@ -8,34 +8,40 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " diff --git a/c-api/datetime.po b/c-api/datetime.po index da62cc2..12400b1 100644 --- a/c-api/datetime.po +++ b/c-api/datetime.po @@ -8,162 +8,235 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " +"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 " +"structure into a static variable, :c:data:`PyDateTimeAPI`, that is used by " "the following macros." msgstr "" +#: ../../c-api/datetime.rst:18 +msgid "Import the datetime C API." +msgstr "" + +#: ../../c-api/datetime.rst:20 +msgid "" +"On success, populate the :c:var:`PyDateTimeAPI` pointer. On failure, set :c:" +"var:`PyDateTimeAPI` to ``NULL`` and set an exception. The caller must check " +"if an error occurred via :c:func:`PyErr_Occurred`:" +msgstr "" + +#: ../../c-api/datetime.rst:24 +msgid "" +"PyDateTime_IMPORT;\n" +"if (PyErr_Occurred()) { /* cleanup */ }" +msgstr "" + +#: ../../c-api/datetime.rst:31 +msgid "This is not compatible with subinterpreters." +msgstr "" + +#: ../../c-api/datetime.rst:35 +msgid "Structure containing the fields for the datetime C API." +msgstr "" + +#: ../../c-api/datetime.rst:37 +msgid "The fields of this structure are private and subject to change." +msgstr "" + +#: ../../c-api/datetime.rst:39 +msgid "Do not use this directly; prefer ``PyDateTime_*`` APIs instead." +msgstr "" + +#: ../../c-api/datetime.rst:43 +msgid "Dynamically allocated object containing the datetime C API." +msgstr "" + +#: ../../c-api/datetime.rst:45 +msgid "" +"This variable is only available once :c:macro:`PyDateTime_IMPORT` succeeds." +msgstr "" + +#: ../../c-api/datetime.rst:49 msgid "This subtype of :c:type:`PyObject` represents a Python date object." msgstr "" +#: ../../c-api/datetime.rst:53 msgid "This subtype of :c:type:`PyObject` represents a Python datetime object." msgstr "" +#: ../../c-api/datetime.rst:57 msgid "This subtype of :c:type:`PyObject` represents a Python time object." msgstr "" +#: ../../c-api/datetime.rst:61 msgid "" "This subtype of :c:type:`PyObject` represents the difference between two " "datetime values." msgstr "" +#: ../../c-api/datetime.rst:65 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python date type; it " "is the same object as :class:`datetime.date` in the Python layer." msgstr "" +#: ../../c-api/datetime.rst:70 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python datetime type; " "it is the same object as :class:`datetime.datetime` in the Python layer." msgstr "" +#: ../../c-api/datetime.rst:75 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python time type; it " "is the same object as :class:`datetime.time` in the Python layer." msgstr "" +#: ../../c-api/datetime.rst:80 msgid "" -"This instance of :c:type:`PyTypeObject` represents Python type for the " +"This instance of :c:type:`PyTypeObject` represents the Python type for the " "difference between two datetime values; it is the same object as :class:" "`datetime.timedelta` in the Python layer." msgstr "" +#: ../../c-api/datetime.rst:86 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python time zone info " "type; it is the same object as :class:`datetime.tzinfo` in the Python layer." msgstr "" +#: ../../c-api/datetime.rst:90 msgid "Macro for access to the UTC singleton:" msgstr "" +#: ../../c-api/datetime.rst:94 msgid "" "Returns the time zone singleton representing UTC, the same object as :attr:" "`datetime.timezone.utc`." msgstr "" +#: ../../c-api/datetime.rst:100 msgid "Type-check macros:" msgstr "" +#: ../../c-api/datetime.rst:104 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType` or a subtype " "of :c:data:`!PyDateTime_DateType`. *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" +#: ../../c-api/datetime.rst:111 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not " "be ``NULL``. This function always succeeds." msgstr "" +#: ../../c-api/datetime.rst:117 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType` or a " "subtype of :c:data:`!PyDateTime_DateTimeType`. *ob* must not be ``NULL``. " "This function always succeeds." msgstr "" +#: ../../c-api/datetime.rst:124 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " "not be ``NULL``. This function always succeeds." msgstr "" +#: ../../c-api/datetime.rst:130 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType` or a subtype " "of :c:data:`!PyDateTime_TimeType`. *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" +#: ../../c-api/datetime.rst:137 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " "be ``NULL``. This function always succeeds." msgstr "" +#: ../../c-api/datetime.rst:143 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType` or a subtype " "of :c:data:`!PyDateTime_DeltaType`. *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" +#: ../../c-api/datetime.rst:150 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not " "be ``NULL``. This function always succeeds." msgstr "" +#: ../../c-api/datetime.rst:156 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType` or a subtype " "of :c:data:`!PyDateTime_TZInfoType`. *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" +#: ../../c-api/datetime.rst:163 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must " "not be ``NULL``. This function always succeeds." msgstr "" +#: ../../c-api/datetime.rst:167 msgid "Macros to create objects:" msgstr "" +#: ../../c-api/datetime.rst:171 msgid "" "Return a :class:`datetime.date` object with the specified year, month and " "day." msgstr "" +#: ../../c-api/datetime.rst:176 msgid "" "Return a :class:`datetime.datetime` object with the specified year, month, " "day, hour, minute, second and microsecond." msgstr "" +#: ../../c-api/datetime.rst:182 msgid "" "Return a :class:`datetime.datetime` object with the specified year, month, " "day, hour, minute, second, microsecond and fold." msgstr "" +#: ../../c-api/datetime.rst:190 msgid "" "Return a :class:`datetime.time` object with the specified hour, minute, " "second and microsecond." msgstr "" +#: ../../c-api/datetime.rst:196 msgid "" "Return a :class:`datetime.time` object with the specified hour, minute, " "second, microsecond and fold." msgstr "" +#: ../../c-api/datetime.rst:204 msgid "" "Return a :class:`datetime.timedelta` object representing the given number of " "days, seconds and microseconds. Normalization is performed so that the " @@ -171,16 +244,19 @@ msgid "" "for :class:`datetime.timedelta` objects." msgstr "" +#: ../../c-api/datetime.rst:212 msgid "" "Return a :class:`datetime.timezone` object with an unnamed fixed offset " "represented by the *offset* argument." msgstr "" +#: ../../c-api/datetime.rst:220 msgid "" "Return a :class:`datetime.timezone` object with a fixed offset represented " "by the *offset* argument and with tzname *name*." msgstr "" +#: ../../c-api/datetime.rst:226 msgid "" "Macros to extract fields from date objects. The argument must be an " "instance of :c:type:`PyDateTime_Date`, including subclasses (such as :c:type:" @@ -188,69 +264,105 @@ msgid "" "not checked:" msgstr "" +#: ../../c-api/datetime.rst:233 msgid "Return the year, as a positive int." msgstr "" +#: ../../c-api/datetime.rst:238 msgid "Return the month, as an int from 1 through 12." msgstr "" +#: ../../c-api/datetime.rst:243 msgid "Return the day, as an int from 1 through 31." msgstr "" +#: ../../c-api/datetime.rst:246 msgid "" "Macros to extract fields from datetime objects. The argument must be an " "instance of :c:type:`PyDateTime_DateTime`, including subclasses. The " "argument must not be ``NULL``, and the type is not checked:" msgstr "" +#: ../../c-api/datetime.rst:252 ../../c-api/datetime.rst:290 msgid "Return the hour, as an int from 0 through 23." msgstr "" +#: ../../c-api/datetime.rst:257 ../../c-api/datetime.rst:295 msgid "Return the minute, as an int from 0 through 59." msgstr "" +#: ../../c-api/datetime.rst:262 ../../c-api/datetime.rst:300 msgid "Return the second, as an int from 0 through 59." msgstr "" +#: ../../c-api/datetime.rst:267 ../../c-api/datetime.rst:305 msgid "Return the microsecond, as an int from 0 through 999999." msgstr "" +#: ../../c-api/datetime.rst:272 ../../c-api/datetime.rst:310 msgid "Return the fold, as an int from 0 through 1." msgstr "" +#: ../../c-api/datetime.rst:279 ../../c-api/datetime.rst:317 msgid "Return the tzinfo (which may be ``None``)." msgstr "" +#: ../../c-api/datetime.rst:284 msgid "" "Macros to extract fields from time objects. The argument must be an " "instance of :c:type:`PyDateTime_Time`, including subclasses. The argument " "must not be ``NULL``, and the type is not checked:" msgstr "" +#: ../../c-api/datetime.rst:322 msgid "" "Macros to extract fields from time delta objects. The argument must be an " "instance of :c:type:`PyDateTime_Delta`, including subclasses. The argument " "must not be ``NULL``, and the type is not checked:" msgstr "" +#: ../../c-api/datetime.rst:328 msgid "Return the number of days, as an int from -999999999 to 999999999." msgstr "" +#: ../../c-api/datetime.rst:335 msgid "Return the number of seconds, as an int from 0 through 86399." msgstr "" +#: ../../c-api/datetime.rst:342 msgid "Return the number of microseconds, as an int from 0 through 999999." msgstr "" +#: ../../c-api/datetime.rst:347 msgid "Macros for the convenience of modules implementing the DB API:" msgstr "" +#: ../../c-api/datetime.rst:351 msgid "" "Create and return a new :class:`datetime.datetime` object given an argument " "tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp`." msgstr "" +#: ../../c-api/datetime.rst:357 msgid "" "Create and return a new :class:`datetime.date` object given an argument " "tuple suitable for passing to :meth:`datetime.date.fromtimestamp`." msgstr "" + +#: ../../c-api/datetime.rst:362 +msgid "Internal data" +msgstr "" + +#: ../../c-api/datetime.rst:364 +msgid "" +"The following symbols are exposed by the C API but should be considered " +"internal-only." +msgstr "" + +#: ../../c-api/datetime.rst:369 +msgid "Name of the datetime capsule to pass to :c:func:`PyCapsule_Import`." +msgstr "" + +#: ../../c-api/datetime.rst:371 +msgid "Internal usage only. Use :c:macro:`PyDateTime_IMPORT` instead." +msgstr "" diff --git a/c-api/descriptor.po b/c-api/descriptor.po index 49ffdf4..3c09236 100644 --- a/c-api/descriptor.po +++ b/c-api/descriptor.po @@ -8,28 +8,232 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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:13 msgid "The type object for the built-in descriptor types." msgstr "" +#: ../../c-api/descriptor.rst:18 +msgid "" +"Create a new get-set descriptor for extension type *type* from the :c:type:" +"`PyGetSetDef` structure *getset*." +msgstr "" + +#: ../../c-api/descriptor.rst:21 +msgid "" +"Get-set descriptors expose attributes implemented by C getter and setter " +"functions rather than stored directly in the instance. This is the same kind " +"of descriptor created for entries in :c:member:`~PyTypeObject.tp_getset`, " +"and it appears in Python as a :class:`types.GetSetDescriptorType` object." +msgstr "" + +#: ../../c-api/descriptor.rst:26 ../../c-api/descriptor.rst:39 +#: ../../c-api/descriptor.rst:70 ../../c-api/descriptor.rst:101 +#: ../../c-api/descriptor.rst:123 +msgid "" +"On success, return a :term:`strong reference` to the descriptor. Return " +"``NULL`` with an exception set on failure." +msgstr "" + +#: ../../c-api/descriptor.rst:31 +msgid "" +"Create a new member descriptor for extension type *type* from the :c:type:" +"`PyMemberDef` structure *member*." +msgstr "" + +#: ../../c-api/descriptor.rst:34 +msgid "" +"Member descriptors expose fields in the type's C struct as Python " +"attributes. This is the same kind of descriptor created for entries in :c:" +"member:`~PyTypeObject.tp_members`, and it appears in Python as a :class:" +"`types.MemberDescriptorType` object." +msgstr "" + +#: ../../c-api/descriptor.rst:44 +msgid "" +"The type object for member descriptor objects created from :c:type:" +"`PyMemberDef` structures. These descriptors expose fields of a C struct as " +"attributes on a type, and correspond to :class:`types.MemberDescriptorType` " +"objects in Python." +msgstr "" + +#: ../../c-api/descriptor.rst:53 +msgid "" +"The type object for get/set descriptor objects created from :c:type:" +"`PyGetSetDef` structures. These descriptors implement attributes whose value " +"is computed by C getter and setter functions, and are used for many built-in " +"type attributes. They correspond to :class:`types.GetSetDescriptorType` " +"objects in Python." +msgstr "" + +#: ../../c-api/descriptor.rst:62 +msgid "" +"Create a new method descriptor for extension type *type* from the :c:type:" +"`PyMethodDef` structure *meth*." +msgstr "" + +#: ../../c-api/descriptor.rst:65 +msgid "" +"Method descriptors expose C functions as methods on a type. This is the same " +"kind of descriptor created for entries in :c:member:`~PyTypeObject." +"tp_methods`, and it appears in Python as a :class:`types." +"MethodDescriptorType` object." +msgstr "" + +#: ../../c-api/descriptor.rst:75 +msgid "" +"The type object for method descriptor objects created from :c:type:" +"`PyMethodDef` structures. These descriptors expose C functions as methods on " +"a type, and correspond to :class:`types.MethodDescriptorType` objects in " +"Python." +msgstr "" + +#: ../../c-api/descriptor.rst:83 +msgid "Describes a slot wrapper used by :c:func:`PyDescr_NewWrapper`." +msgstr "" + +#: ../../c-api/descriptor.rst:85 +msgid "" +"Each ``wrapperbase`` record stores the Python-visible name and metadata for " +"a special method implemented by a type slot, together with the wrapper " +"function used to adapt that slot to Python's calling convention." +msgstr "" + +#: ../../c-api/descriptor.rst:91 +msgid "" +"Create a new wrapper descriptor for extension type *type* from the :c:struct:" +"`wrapperbase` structure *base* and the wrapped slot function pointer " +"*wrapped*." +msgstr "" + +#: ../../c-api/descriptor.rst:96 +msgid "" +"Wrapper descriptors expose special methods implemented by type slots. This " +"is the same kind of descriptor that CPython creates for slot-based special " +"methods such as ``__repr__`` or ``__add__``, and it appears in Python as a :" +"class:`types.WrapperDescriptorType` object." +msgstr "" + +#: ../../c-api/descriptor.rst:106 +msgid "" +"The type object for wrapper descriptor objects created by :c:func:" +"`PyDescr_NewWrapper` and :c:func:`PyWrapper_New`. Wrapper descriptors are " +"used internally to expose special methods implemented via wrapper " +"structures, and appear in Python as :class:`types.WrapperDescriptorType` " +"objects." +msgstr "" + +#: ../../c-api/descriptor.rst:115 +msgid "" +"Create a new class method descriptor for extension type *type* from the :c:" +"type:`PyMethodDef` structure *method*." +msgstr "" + +#: ../../c-api/descriptor.rst:118 +msgid "" +"Class method descriptors expose C methods that receive the class rather than " +"an instance when accessed. This is the same kind of descriptor created for " +"``METH_CLASS`` entries in :c:member:`~PyTypeObject.tp_methods`, and it " +"appears in Python as a :class:`types.ClassMethodDescriptorType` object." +msgstr "" + +#: ../../c-api/descriptor.rst:128 +msgid "" +"Return non-zero if the descriptor object *descr* describes a data attribute, " +"or ``0`` if it describes a method. *descr* must be a descriptor object; " +"there is no error checking." +msgstr "" + +#: ../../c-api/descriptor.rst:135 +msgid "" +"Create a new bound wrapper object from the wrapper descriptor *d* and the " +"instance *self*." +msgstr "" + +#: ../../c-api/descriptor.rst:138 +msgid "" +"This is the bound form of a wrapper descriptor created by :c:func:" +"`PyDescr_NewWrapper`. CPython creates these objects when a slot wrapper is " +"accessed through an instance, and they appear in Python as :class:`types." +"MethodWrapperType` objects." +msgstr "" + +#: ../../c-api/descriptor.rst:143 +msgid "" +"On success, return a :term:`strong reference` to the wrapper object. Return " +"``NULL`` with an exception set on failure." +msgstr "" + +#: ../../c-api/descriptor.rst:147 +msgid "Built-in descriptors" +msgstr "" + +#: ../../c-api/descriptor.rst:151 +msgid "" +"The type object for super objects. This is the same object as :class:`super` " +"in the Python layer." +msgstr "" + +#: ../../c-api/descriptor.rst:157 +msgid "" +"The type of class method objects. This is the same object as :class:" +"`classmethod` in the Python layer." +msgstr "" + +#: ../../c-api/descriptor.rst:163 +msgid "" +"The type object for C-level class method descriptor objects. This is the " +"type of the descriptors created for :func:`classmethod` defined in C " +"extension types, and corresponds to :class:`types.ClassMethodDescriptorType` " +"objects in Python." +msgstr "" + +#: ../../c-api/descriptor.rst:171 +msgid "" +"Create a new :class:`classmethod` object wrapping *callable*. *callable* " +"must be a callable object and must not be ``NULL``." +msgstr "" + +#: ../../c-api/descriptor.rst:174 +msgid "" +"On success, this function returns a :term:`strong reference` to a new class " +"method descriptor. On failure, this function returns ``NULL`` with an " +"exception set." +msgstr "" + +#: ../../c-api/descriptor.rst:181 +msgid "" +"The type of static method objects. This is the same object as :class:" +"`staticmethod` in the Python layer." +msgstr "" + +#: ../../c-api/descriptor.rst:187 +msgid "" +"Create a new :class:`staticmethod` object wrapping *callable*. *callable* " +"must be a callable object and must not be ``NULL``." +msgstr "" + +#: ../../c-api/descriptor.rst:190 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." +"On success, this function returns a :term:`strong reference` to a new static " +"method descriptor. On failure, this function returns ``NULL`` with an " +"exception set." msgstr "" diff --git a/c-api/dict.po b/c-api/dict.po index 8595354..1aab058 100644 --- a/c-api/dict.po +++ b/c-api/dict.po @@ -11,78 +11,110 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 "" +"The type object for mapping proxy objects created by :c:func:" +"`PyDictProxy_New` and for the read-only ``__dict__`` attribute of many built-" +"in types. A :c:type:`PyDictProxy_Type` instance provides a dynamic, read-" +"only view of an underlying dictionary: changes to the underlying dictionary " +"are reflected in the proxy, but the proxy itself does not support mutation " +"operations. This corresponds to :class:`types.MappingProxyType` in Python." +msgstr "" + +#: ../../c-api/dict.rst:59 msgid "Empty an existing dictionary of all key-value pairs." msgstr "" +#: ../../c-api/dict.rst:64 msgid "" -"Determine if dictionary *p* contains *key*. If an item in *p* is matches " +"Determine if dictionary *p* contains *key*. If an item in *p* matches " "*key*, return ``1``, otherwise return ``0``. On error, return ``-1``. This " "is equivalent to the Python expression ``key in p``." msgstr "" +#: ../../c-api/dict.rst:70 ../../c-api/dict.rst:97 ../../c-api/dict.rst:117 +#: ../../c-api/dict.rst:140 ../../c-api/dict.rst:257 ../../c-api/dict.rst:279 +msgid "" +"The operation is atomic on :term:`free threading ` when " +"*key* is :class:`str`, :class:`int`, :class:`float`, :class:`bool` or :class:" +"`bytes`." +msgstr "" + +#: ../../c-api/dict.rst:76 msgid "" "This is the same as :c:func:`PyDict_Contains`, but *key* is specified as a :" "c:expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" "`PyObject*`." msgstr "" +#: ../../c-api/dict.rst:85 msgid "Return a new dictionary that contains the same key-value pairs as *p*." msgstr "" +#: ../../c-api/dict.rst:90 msgid "" "Insert *val* into the dictionary *p* with a key of *key*. *key* must be :" "term:`hashable`; if it isn't, :exc:`TypeError` will be raised. Return ``0`` " -"on success or ``-1`` on failure. This function *does not* steal a reference " -"to *val*." +"on success or ``-1`` on failure. This function *does not* \":term:`steal`\" " +"a reference to *val*." msgstr "" +#: ../../c-api/dict.rst:103 msgid "" "This is the same as :c:func:`PyDict_SetItem`, but *key* is specified as a :c:" "expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" "`PyObject*`." msgstr "" +#: ../../c-api/dict.rst:110 msgid "" "Remove the entry in dictionary *p* with key *key*. *key* must be :term:" "`hashable`; if it isn't, :exc:`TypeError` is raised. If *key* is not in the " @@ -90,60 +122,80 @@ msgid "" "failure." msgstr "" +#: ../../c-api/dict.rst:123 msgid "" "This is the same as :c:func:`PyDict_DelItem`, but *key* is specified as a :c:" "expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" "`PyObject*`." msgstr "" +#: ../../c-api/dict.rst:130 msgid "" "Return a new :term:`strong reference` to the object from dictionary *p* " "which has a key *key*:" msgstr "" +#: ../../c-api/dict.rst:133 msgid "" "If the key is present, set *\\*result* to a new :term:`strong reference` to " "the value and return ``1``." msgstr "" +#: ../../c-api/dict.rst:135 msgid "If the key is missing, set *\\*result* to ``NULL`` and return ``0``." msgstr "" -msgid "On error, raise an exception and return ``-1``." +#: ../../c-api/dict.rst:136 +msgid "" +"On error, raise an exception, set *\\*result* to ``NULL`` and return ``-1``." msgstr "" +#: ../../c-api/dict.rst:145 msgid "See also the :c:func:`PyObject_GetItem` function." msgstr "" +#: ../../c-api/dict.rst:150 msgid "" "Return a :term:`borrowed reference` to the object from dictionary *p* which " "has a key *key*. Return ``NULL`` if the key *key* is missing *without* " "setting an exception." msgstr "" +#: ../../c-api/dict.rst:156 msgid "" "Exceptions that occur while this calls :meth:`~object.__hash__` and :meth:" "`~object.__eq__` methods are silently ignored. Prefer the :c:func:" "`PyDict_GetItemWithError` function instead." msgstr "" +#: ../../c-api/dict.rst:162 ../../c-api/dict.rst:181 +msgid "" +"In the :term:`free-threaded build`, the returned :term:`borrowed reference` " +"may become invalid if another thread modifies the dictionary concurrently. " +"Prefer :c:func:`PyDict_GetItemRef`, which returns a :term:`strong reference`." +msgstr "" + +#: ../../c-api/dict.rst:167 msgid "" "Calling this API without an :term:`attached thread state` had been allowed " "for historical reason. It is no longer allowed." msgstr "" +#: ../../c-api/dict.rst:174 msgid "" "Variant of :c:func:`PyDict_GetItem` that does not suppress exceptions. " "Return ``NULL`` **with** an exception set if an exception occurred. Return " "``NULL`` **without** an exception set if the key wasn't present." msgstr "" +#: ../../c-api/dict.rst:189 msgid "" "This is the same as :c:func:`PyDict_GetItem`, but *key* is specified as a :c:" "expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" "`PyObject*`." msgstr "" +#: ../../c-api/dict.rst:195 msgid "" "Exceptions that occur while this calls :meth:`~object.__hash__` and :meth:" "`~object.__eq__` methods or while creating the temporary :class:`str` object " @@ -151,11 +203,21 @@ msgid "" "function with your own :c:func:`PyUnicode_FromString` *key* instead." msgstr "" +#: ../../c-api/dict.rst:203 +msgid "" +"In the :term:`free-threaded build`, the returned :term:`borrowed reference` " +"may become invalid if another thread modifies the dictionary concurrently. " +"Prefer :c:func:`PyDict_GetItemStringRef`, which returns a :term:`strong " +"reference`." +msgstr "" + +#: ../../c-api/dict.rst:211 msgid "" "Similar to :c:func:`PyDict_GetItemRef`, but *key* is specified as a :c:expr:" "`const char*` UTF-8 encoded bytes string, rather than a :c:expr:`PyObject*`." msgstr "" +#: ../../c-api/dict.rst:220 msgid "" "This is the same as the Python-level :meth:`dict.setdefault`. If present, " "it returns the value corresponding to *key* from the dictionary *p*. If the " @@ -165,6 +227,15 @@ msgid "" "the insertion." msgstr "" +#: ../../c-api/dict.rst:230 +msgid "" +"In the :term:`free-threaded build`, the returned :term:`borrowed reference` " +"may become invalid if another thread modifies the dictionary concurrently. " +"Prefer :c:func:`PyDict_SetDefaultRef`, which returns a :term:`strong " +"reference`." +msgstr "" + +#: ../../c-api/dict.rst:239 msgid "" "Inserts *default_value* into the dictionary *p* with a key of *key* if the " "key is not already present in the dictionary. If *result* is not ``NULL``, " @@ -176,6 +247,7 @@ msgid "" "exception, and sets ``*result`` to ``NULL``." msgstr "" +#: ../../c-api/dict.rst:249 msgid "" "For clarity: if you have a strong reference to *default_value* before " "calling this function, then after it returns, you hold a strong reference to " @@ -183,49 +255,67 @@ msgid "" "to the same object: in that case you hold two separate references to it." msgstr "" +#: ../../c-api/dict.rst:265 msgid "" "Remove *key* from dictionary *p* and optionally return the removed value. Do " -"not raise :exc:`KeyError` if the key missing." +"not raise :exc:`KeyError` if the key is missing." msgstr "" +#: ../../c-api/dict.rst:268 msgid "" "If the key is present, set *\\*result* to a new reference to the removed " "value if *result* is not ``NULL``, and return ``1``." msgstr "" +#: ../../c-api/dict.rst:270 msgid "" "If the key is missing, set *\\*result* to ``NULL`` if *result* is not " "``NULL``, and return ``0``." msgstr "" +#: ../../c-api/dict.rst:272 +msgid "On error, raise an exception and return ``-1``." +msgstr "" + +#: ../../c-api/dict.rst:274 msgid "" "Similar to :meth:`dict.pop`, but without the default value and not raising :" -"exc:`KeyError` if the key missing." +"exc:`KeyError` if the key is missing." msgstr "" +#: ../../c-api/dict.rst:287 msgid "" "Similar to :c:func:`PyDict_Pop`, but *key* is specified as a :c:expr:`const " "char*` UTF-8 encoded bytes string, rather than a :c:expr:`PyObject*`." msgstr "" +#: ../../c-api/dict.rst:296 msgid "" "Return a :c:type:`PyListObject` containing all the items from the dictionary." msgstr "" +#: ../../c-api/dict.rst:301 msgid "" "Return a :c:type:`PyListObject` containing all the keys from the dictionary." msgstr "" +#: ../../c-api/dict.rst:306 msgid "" "Return a :c:type:`PyListObject` containing all the values from the " "dictionary *p*." msgstr "" +#: ../../c-api/dict.rst:314 msgid "" "Return the number of items in the dictionary. This is equivalent to " "``len(p)`` on a dictionary." msgstr "" +#: ../../c-api/dict.rst:320 +msgid "Similar to :c:func:`PyDict_Size`, but without error checking." +msgstr "" + +#: ../../c-api/dict.rst:325 msgid "" "Iterate over all key-value pairs in the dictionary *p*. The :c:type:" "`Py_ssize_t` referred to by *ppos* must be initialized to ``0`` prior to the " @@ -239,9 +329,11 @@ msgid "" "structure is sparse, the offsets are not consecutive." msgstr "" +#: ../../c-api/dict.rst:336 msgid "For example::" msgstr "Zum Beispiel::" +#: ../../c-api/dict.rst:338 msgid "" "PyObject *key, *value;\n" "Py_ssize_t pos = 0;\n" @@ -252,12 +344,14 @@ msgid "" "}" msgstr "" +#: ../../c-api/dict.rst:346 msgid "" "The dictionary *p* should not be mutated during iteration. It is safe to " "modify the values of the keys as you iterate over the dictionary, but only " "so long as the set of keys does not change. For example::" msgstr "" +#: ../../c-api/dict.rst:350 msgid "" "PyObject *key, *value;\n" "Py_ssize_t pos = 0;\n" @@ -278,12 +372,14 @@ msgid "" "}" msgstr "" +#: ../../c-api/dict.rst:368 msgid "" "The function is not thread-safe in the :term:`free-threaded ` build without external synchronization. You can use :c:macro:" "`Py_BEGIN_CRITICAL_SECTION` to lock the dictionary while iterating over it::" msgstr "" +#: ../../c-api/dict.rst:373 msgid "" "Py_BEGIN_CRITICAL_SECTION(self->dict);\n" "while (PyDict_Next(self->dict, &pos, &key, &value)) {\n" @@ -292,6 +388,7 @@ msgid "" "Py_END_CRITICAL_SECTION();" msgstr "" +#: ../../c-api/dict.rst:381 msgid "" "On the free-threaded build, this function can be used safely inside a " "critical section. However, the references returned for *pkey* and *pvalue* " @@ -302,6 +399,7 @@ msgid "" "`Py_NewRef`)." msgstr "" +#: ../../c-api/dict.rst:391 msgid "" "Iterate over mapping object *b* adding key-value pairs to dictionary *a*. " "*b* may be a dictionary, or any object supporting :c:func:`PyMapping_Keys` " @@ -311,6 +409,15 @@ msgid "" "or ``-1`` if an exception was raised." msgstr "" +#: ../../c-api/dict.rst:400 ../../c-api/dict.rst:416 +msgid "" +"In the :term:`free-threaded build`, when *b* is a :class:`dict` (with the " +"standard iterator), both *a* and *b* are locked for the duration of the " +"operation. When *b* is a non-dict mapping, only *a* is locked; *b* may be " +"concurrently modified by another thread." +msgstr "" + +#: ../../c-api/dict.rst:408 msgid "" "This is the same as ``PyDict_Merge(a, b, 1)`` in C, and is similar to ``a." "update(b)`` in Python except that :c:func:`PyDict_Update` doesn't fall back " @@ -319,6 +426,7 @@ msgid "" "exception was raised." msgstr "" +#: ../../c-api/dict.rst:424 msgid "" "Update or merge into dictionary *a*, from the key-value pairs in *seq2*. " "*seq2* must be an iterable object producing iterable objects of length 2, " @@ -327,6 +435,7 @@ msgid "" "if an exception was raised. Equivalent Python (except for the return value)::" msgstr "" +#: ../../c-api/dict.rst:431 msgid "" "def PyDict_MergeFromSeq2(a, seq2, override):\n" " for key, value in seq2:\n" @@ -334,6 +443,14 @@ msgid "" " a[key] = value" msgstr "" +#: ../../c-api/dict.rst:438 +msgid "" +"In the :term:`free-threaded ` build, only *a* is locked. The " +"iteration over *seq2* is not synchronized; *seq2* may be concurrently " +"modified by another thread." +msgstr "" + +#: ../../c-api/dict.rst:445 msgid "" "Register *callback* as a dictionary watcher. Return a non-negative integer " "id which must be passed to future calls to :c:func:`PyDict_Watch`. In case " @@ -341,18 +458,28 @@ msgid "" "exception." msgstr "" +#: ../../c-api/dict.rst:452 ../../c-api/dict.rst:467 +msgid "" +"This function is not internally synchronized. In the :term:`free-threaded " +"` build, callers should ensure no concurrent calls to :c:" +"func:`PyDict_AddWatcher` or :c:func:`PyDict_ClearWatcher` are in progress." +msgstr "" + +#: ../../c-api/dict.rst:461 msgid "" "Clear watcher identified by *watcher_id* previously returned from :c:func:" "`PyDict_AddWatcher`. Return ``0`` on success, ``-1`` on error (e.g. if the " "given *watcher_id* was never registered.)" msgstr "" +#: ../../c-api/dict.rst:476 msgid "" "Mark dictionary *dict* as watched. The callback granted *watcher_id* by :c:" "func:`PyDict_AddWatcher` will be called when *dict* is modified or " "deallocated. Return ``0`` on success or ``-1`` on error." msgstr "" +#: ../../c-api/dict.rst:484 msgid "" "Mark dictionary *dict* as no longer watched. The callback granted " "*watcher_id* by :c:func:`PyDict_AddWatcher` will no longer be called when " @@ -360,6 +487,7 @@ msgid "" "watched by this watcher. Return ``0`` on success or ``-1`` on error." msgstr "" +#: ../../c-api/dict.rst:493 msgid "" "Enumeration of possible dictionary watcher events: ``PyDict_EVENT_ADDED``, " "``PyDict_EVENT_MODIFIED``, ``PyDict_EVENT_DELETED``, " @@ -367,9 +495,11 @@ msgid "" "``PyDict_EVENT_DEALLOCATED``." msgstr "" +#: ../../c-api/dict.rst:501 msgid "Type of a dict watcher callback function." msgstr "" +#: ../../c-api/dict.rst:503 msgid "" "If *event* is ``PyDict_EVENT_CLEARED`` or ``PyDict_EVENT_DEALLOCATED``, both " "*key* and *new_value* will be ``NULL``. If *event* is ``PyDict_EVENT_ADDED`` " @@ -378,6 +508,7 @@ msgid "" "dictionary and *new_value* will be ``NULL``." msgstr "" +#: ../../c-api/dict.rst:509 msgid "" "``PyDict_EVENT_CLONED`` occurs when *dict* was previously empty and another " "dict is merged into it. To maintain efficiency of this operation, per-key " @@ -385,12 +516,14 @@ msgid "" "``PyDict_EVENT_CLONED`` is issued, and *key* will be the source dictionary." msgstr "" +#: ../../c-api/dict.rst:515 msgid "" "The callback may inspect but must not modify *dict*; doing so could have " "unpredictable effects, including infinite recursion. Do not trigger Python " "code execution in the callback, as it could modify the dict as a side effect." msgstr "" +#: ../../c-api/dict.rst:519 msgid "" "If *event* is ``PyDict_EVENT_DEALLOCATED``, taking a new reference in the " "callback to the about-to-be-destroyed dictionary will resurrect it and " @@ -399,17 +532,20 @@ msgid "" "again." msgstr "" +#: ../../c-api/dict.rst:525 msgid "" "Callbacks occur before the notified modification to *dict* takes place, so " "the prior state of *dict* can be inspected." msgstr "" +#: ../../c-api/dict.rst:528 msgid "" "If the callback sets an exception, it must return ``-1``; this exception " "will be printed as an unraisable exception using :c:func:" "`PyErr_WriteUnraisable`. Otherwise it should return ``0``." msgstr "" +#: ../../c-api/dict.rst:532 msgid "" "There may already be a pending exception set on entry to the callback. In " "this case, the callback should return ``0`` with the same exception still " @@ -418,14 +554,172 @@ msgid "" "it before returning." msgstr "" +#: ../../c-api/dict.rst:542 +msgid "Dictionary View Objects" +msgstr "" + +#: ../../c-api/dict.rst:546 +msgid "" +"Return true if *op* is a view of a set inside a dictionary. This is " +"currently equivalent to :c:expr:`PyDictKeys_Check(op) || " +"PyDictItems_Check(op)`. This function always succeeds." +msgstr "" + +#: ../../c-api/dict.rst:553 +msgid "" +"Type object for a view of dictionary keys. In Python, this is the type of " +"the object returned by :meth:`dict.keys`." +msgstr "" + +#: ../../c-api/dict.rst:559 +msgid "" +"Return true if *op* is an instance of a dictionary keys view. This function " +"always succeeds." +msgstr "" + +#: ../../c-api/dict.rst:565 +msgid "" +"Type object for a view of dictionary values. In Python, this is the type of " +"the object returned by :meth:`dict.values`." +msgstr "" + +#: ../../c-api/dict.rst:571 +msgid "" +"Return true if *op* is an instance of a dictionary values view. This " +"function always succeeds." +msgstr "" + +#: ../../c-api/dict.rst:577 +msgid "" +"Type object for a view of dictionary items. In Python, this is the type of " +"the object returned by :meth:`dict.items`." +msgstr "" + +#: ../../c-api/dict.rst:583 +msgid "" +"Return true if *op* is an instance of a dictionary items view. This function " +"always succeeds." +msgstr "" + +#: ../../c-api/dict.rst:588 +msgid "Ordered Dictionaries" +msgstr "" + +#: ../../c-api/dict.rst:590 +msgid "" +"Python's C API provides interface for :class:`collections.OrderedDict` from " +"C. Since Python 3.7, dictionaries are ordered by default, so there is " +"usually little need for these functions; prefer ``PyDict*`` where possible." +msgstr "" + +#: ../../c-api/dict.rst:597 +msgid "" +"Type object for ordered dictionaries. This is the same object as :class:" +"`collections.OrderedDict` in the Python layer." +msgstr "" + +#: ../../c-api/dict.rst:603 +msgid "" +"Return true if *od* is an ordered dictionary object or an instance of a " +"subtype of the :class:`~collections.OrderedDict` type. This function always " +"succeeds." +msgstr "" + +#: ../../c-api/dict.rst:610 +msgid "" +"Return true if *od* is an ordered dictionary object, but not an instance of " +"a subtype of the :class:`~collections.OrderedDict` type. This function " +"always succeeds." +msgstr "" + +#: ../../c-api/dict.rst:617 +msgid "Analogous to :c:type:`PyDictKeys_Type` for ordered dictionaries." +msgstr "" + +#: ../../c-api/dict.rst:622 +msgid "Analogous to :c:type:`PyDictValues_Type` for ordered dictionaries." +msgstr "" + +#: ../../c-api/dict.rst:627 +msgid "Analogous to :c:type:`PyDictItems_Type` for ordered dictionaries." +msgstr "" + +#: ../../c-api/dict.rst:632 +msgid "Return a new empty ordered dictionary, or ``NULL`` on failure." +msgstr "" + +#: ../../c-api/dict.rst:634 +msgid "This is analogous to :c:func:`PyDict_New`." +msgstr "" + +#: ../../c-api/dict.rst:639 +msgid "" +"Insert *value* into the ordered dictionary *od* with a key of *key*. Return " +"``0`` on success or ``-1`` with an exception set on failure." +msgstr "" + +#: ../../c-api/dict.rst:642 +msgid "This is analogous to :c:func:`PyDict_SetItem`." +msgstr "" + +#: ../../c-api/dict.rst:647 +msgid "" +"Remove the entry in the ordered dictionary *od* with key *key*. Return ``0`` " +"on success or ``-1`` with an exception set on failure." +msgstr "" + +#: ../../c-api/dict.rst:650 +msgid "This is analogous to :c:func:`PyDict_DelItem`." +msgstr "" + +#: ../../c-api/dict.rst:653 +msgid "These are :term:`soft deprecated` aliases to ``PyDict`` APIs:" +msgstr "" + +#: ../../c-api/dict.rst:660 +msgid "``PyODict``" +msgstr "" + +#: ../../c-api/dict.rst:661 +msgid "``PyDict``" +msgstr "" + +#: ../../c-api/dict.rst:663 +msgid ":c:func:`PyDict_GetItem`" +msgstr "" + +#: ../../c-api/dict.rst:665 +msgid ":c:func:`PyDict_GetItemWithError`" +msgstr "" + +#: ../../c-api/dict.rst:667 +msgid ":c:func:`PyDict_GetItemString`" +msgstr "" + +#: ../../c-api/dict.rst:669 +msgid ":c:func:`PyDict_Contains`" +msgstr "" + +#: ../../c-api/dict.rst:671 +msgid ":c:func:`PyDict_Size`" +msgstr "" + +#: ../../c-api/dict.rst:673 +msgid ":c:func:`PyDict_GET_SIZE`" +msgstr "" + +#: ../../c-api/dict.rst:8 msgid "object" msgstr "" +#: ../../c-api/dict.rst:8 msgid "dictionary" msgstr "" +#: ../../c-api/dict.rst:312 msgid "built-in function" msgstr "" +#: ../../c-api/dict.rst:312 msgid "len" msgstr "" diff --git a/c-api/exceptions.po b/c-api/exceptions.po index 7cb4819..8af1e61 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -11,19 +11,21 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -36,6 +38,7 @@ msgid "" "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 " @@ -44,6 +47,7 @@ msgid "" "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 " @@ -56,6 +60,7 @@ msgid "" "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 " @@ -63,14 +68,17 @@ msgid "" "(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 " @@ -78,11 +86,13 @@ msgid "" "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 " @@ -91,17 +101,21 @@ msgid "" "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 " @@ -109,6 +123,7 @@ msgid "" "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 " @@ -116,15 +131,19 @@ msgid "" "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 " @@ -133,20 +152,45 @@ msgid "" "%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:124 +msgid "Legacy variant of :c:func:`PyErr_DisplayException`." +msgstr "" + +#: ../../c-api/exceptions.rst:126 +msgid "" +"Print the exception *value* with its traceback to :data:`sys.stderr`. If " +"*value* has no traceback set, *tb* is used as its traceback. The first " +"argument is ignored." +msgstr "" + +#: ../../c-api/exceptions.rst:130 +msgid "" +"If :data:`sys.stderr` is ``None``, nothing is printed. If :data:`sys.stderr` " +"is not set, the exception is dumped to the C ``stderr`` stream instead." +msgstr "" + +#: ../../c-api/exceptions.rst:134 +msgid "Use :c:func:`PyErr_DisplayException` instead." +msgstr "" + +#: ../../c-api/exceptions.rst:138 msgid "Raising exceptions" msgstr "" +#: ../../c-api/exceptions.rst:140 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:147 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, " @@ -155,11 +199,13 @@ msgid "" "error message; it is decoded from ``'utf-8'``." msgstr "" +#: ../../c-api/exceptions.rst:156 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:162 msgid "" "This function sets the error indicator and returns ``NULL``. *exception* " "should be a Python exception class. The *format* and subsequent parameters " @@ -167,26 +213,31 @@ msgid "" "c:func:`PyUnicode_FromFormat`. *format* is an ASCII-encoded string." msgstr "" +#: ../../c-api/exceptions.rst:171 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:179 msgid "This is a shorthand for ``PyErr_SetObject(type, Py_None)``." msgstr "" +#: ../../c-api/exceptions.rst:184 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:191 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:200 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 " @@ -200,6 +251,7 @@ msgid "" "``return PyErr_SetFromErrno(type);`` when the system call returns an error." msgstr "" +#: ../../c-api/exceptions.rst:214 msgid "" "Similar to :c:func:`PyErr_SetFromErrno`, with the additional behavior that " "if *filenameObject* is not ``NULL``, it is passed to the constructor of " @@ -207,18 +259,21 @@ msgid "" "is used to define the :attr:`!filename` attribute of the exception instance." msgstr "" +#: ../../c-api/exceptions.rst:223 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:232 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:239 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:`!" @@ -232,14 +287,19 @@ msgid "" "``NULL``." msgstr "" +#: ../../c-api/exceptions.rst:249 ../../c-api/exceptions.rst:257 +#: ../../c-api/exceptions.rst:268 ../../c-api/exceptions.rst:278 +#: ../../c-api/exceptions.rst:286 ../../c-api/exceptions.rst:296 msgid "Availability" msgstr "" +#: ../../c-api/exceptions.rst:254 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErr`, with an additional parameter " "specifying the exception type to be raised." msgstr "" +#: ../../c-api/exceptions.rst:262 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErr`, with the additional behavior " "that if *filename* is not ``NULL``, it is decoded from the filesystem " @@ -248,6 +308,7 @@ msgid "" "attribute of the exception instance." msgstr "" +#: ../../c-api/exceptions.rst:273 msgid "" "Similar to :c:func:`PyErr_SetExcFromWindowsErr`, with the additional " "behavior that if *filename* is not ``NULL``, it is passed to the constructor " @@ -255,16 +316,19 @@ msgid "" "filename` attribute of the exception instance." msgstr "" +#: ../../c-api/exceptions.rst:283 msgid "" "Similar to :c:func:`PyErr_SetExcFromWindowsErrWithFilenameObject`, but " "accepts a second filename object." msgstr "" +#: ../../c-api/exceptions.rst:293 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErrWithFilename`, with an additional " "parameter specifying the exception type to be raised." msgstr "" +#: ../../c-api/exceptions.rst:301 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 " @@ -272,11 +336,13 @@ msgid "" "``path`` attributes." msgstr "" +#: ../../c-api/exceptions.rst:311 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:319 msgid "" "Set file, line, and offset information for the current exception. If the " "current exception is not a :exc:`SyntaxError`, then it sets additional " @@ -284,16 +350,25 @@ msgid "" "is a :exc:`SyntaxError`." msgstr "" +#: ../../c-api/exceptions.rst:329 +msgid "" +"Similar to :c:func:`PyErr_SyntaxLocationObject`, but also sets the " +"*end_lineno* and *end_col_offset* information for the current exception." +msgstr "" + +#: ../../c-api/exceptions.rst:337 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:345 msgid "" "Like :c:func:`PyErr_SyntaxLocationEx`, but the *col_offset* parameter is " "omitted." msgstr "" +#: ../../c-api/exceptions.rst:351 msgid "" "This is a shorthand for ``PyErr_SetString(PyExc_SystemError, message)``, " "where *message* indicates that an internal operation (e.g. a Python/C API " @@ -301,9 +376,30 @@ msgid "" "use." msgstr "" +#: ../../c-api/exceptions.rst:359 +msgid "" +"Get the source line in *filename* at line *lineno*. *filename* should be a " +"Python :class:`str` object." +msgstr "" + +#: ../../c-api/exceptions.rst:362 +msgid "" +"On success, this function returns a Python string object with the found " +"line. On failure, this function returns ``NULL`` without an exception set." +msgstr "" + +#: ../../c-api/exceptions.rst:368 +msgid "" +"Similar to :c:func:`PyErr_ProgramTextObject`, but *filename* is a :c:expr:" +"`const char *`, which is decoded with the :term:`filesystem encoding and " +"error handler`, instead of a Python object reference." +msgstr "" + +#: ../../c-api/exceptions.rst:375 msgid "Issuing warnings" msgstr "" +#: ../../c-api/exceptions.rst:377 msgid "" "Use these functions to issue warnings from C code. They mirror similar " "functions exported by the Python :mod:`warnings` module. They normally " @@ -319,6 +415,7 @@ msgid "" "return an error value)." msgstr "" +#: ../../c-api/exceptions.rst:392 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. " @@ -328,6 +425,7 @@ msgid "" "`PyErr_WarnEx`, 2 is the function above that, and so forth." msgstr "" +#: ../../c-api/exceptions.rst:399 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 " @@ -336,12 +434,14 @@ msgid "" "enumerated at :ref:`standardwarningcategories`." msgstr "" +#: ../../c-api/exceptions.rst:405 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:412 msgid "" "Issue a warning message with explicit control over all warning attributes. " "This is a straightforward wrapper around the Python function :func:`warnings." @@ -349,27 +449,39 @@ msgid "" "arguments may be set to ``NULL`` to get the default effect described there." msgstr "" +#: ../../c-api/exceptions.rst:423 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:430 msgid "" -"Function similar to :c:func:`PyErr_WarnEx`, but use :c:func:" +"Function similar to :c:func:`PyErr_WarnEx`, but uses :c:func:" "`PyUnicode_FromFormat` to format the warning message. *format* is an ASCII-" "encoded string." msgstr "" +#: ../../c-api/exceptions.rst:439 +msgid "" +"Similar to :c:func:`PyErr_WarnExplicit`, but uses :c:func:" +"`PyUnicode_FromFormat` to format the warning message. *format* is an ASCII-" +"encoded string." +msgstr "" + +#: ../../c-api/exceptions.rst:448 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:455 msgid "Querying the error indicator" msgstr "" +#: ../../c-api/exceptions.rst:459 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*`` " @@ -378,9 +490,11 @@ msgid "" "`Py_DECREF` it." msgstr "" +#: ../../c-api/exceptions.rst:465 msgid "The caller must have an :term:`attached thread state`." msgstr "" +#: ../../c-api/exceptions.rst:469 msgid "" "Do not compare the return value to a specific exception; use :c:func:" "`PyErr_ExceptionMatches` instead, shown below. (The comparison could easily " @@ -388,12 +502,14 @@ msgid "" "of a class exception, or it may be a subclass of the expected exception.)" msgstr "" +#: ../../c-api/exceptions.rst:477 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:484 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 " @@ -401,19 +517,23 @@ msgid "" "tuple (and recursively in subtuples) are searched for a match." msgstr "" +#: ../../c-api/exceptions.rst:492 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:495 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:498 ../../c-api/exceptions.rst:543 msgid "For example::" msgstr "Zum Beispiel::" +#: ../../c-api/exceptions.rst:500 msgid "" "{\n" " PyObject *exc = PyErr_GetRaisedException();\n" @@ -424,22 +544,32 @@ msgid "" "}" msgstr "" +#: ../../c-api/exceptions.rst:508 msgid "" ":c:func:`PyErr_GetHandledException`, to save the exception currently being " "handled." msgstr "" +#: ../../c-api/exceptions.rst:516 msgid "" "Set *exc* as the exception currently being raised, clearing the existing " -"exception if one is set." +"exception if one is set. If *exc* is ``NULL``, just clear the existing " +"exception." msgstr "" -msgid "This call steals a reference to *exc*, which must be a valid exception." +#: ../../c-api/exceptions.rst:520 +msgid "*exc* must be a valid exception or ``NULL``." msgstr "" +#: ../../c-api/exceptions.rst:522 +msgid "This call \":term:`steals `\" a reference to *exc*." +msgstr "" + +#: ../../c-api/exceptions.rst:531 msgid "Use :c:func:`PyErr_GetRaisedException` instead." msgstr "" +#: ../../c-api/exceptions.rst:533 msgid "" "Retrieve the error indicator into three variables whose addresses are " "passed. If the error indicator is not set, set all three variables to " @@ -448,11 +578,13 @@ msgid "" "the type object is not." msgstr "" +#: ../../c-api/exceptions.rst:540 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:545 msgid "" "{\n" " PyObject *type, *value, *traceback;\n" @@ -464,9 +596,11 @@ msgid "" "}" msgstr "" +#: ../../c-api/exceptions.rst:559 msgid "Use :c:func:`PyErr_SetRaisedException` instead." msgstr "" +#: ../../c-api/exceptions.rst:561 msgid "" "Set the error indicator from the three objects, *type*, *value*, and " "*traceback*, clearing the existing exception if one is set. If the objects " @@ -479,17 +613,20 @@ msgid "" "don't use this function. I warned you.)" msgstr "" +#: ../../c-api/exceptions.rst:575 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:584 msgid "" "Use :c:func:`PyErr_GetRaisedException` instead, to avoid any possible de-" "normalization." msgstr "" +#: ../../c-api/exceptions.rst:587 msgid "" "Under certain circumstances, the values returned by :c:func:`PyErr_Fetch` " "below can be \"unnormalized\", meaning that ``*exc`` is a class object but " @@ -499,18 +636,21 @@ msgid "" "improve performance." msgstr "" +#: ../../c-api/exceptions.rst:595 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:600 msgid "" "if (tb != NULL) {\n" " PyException_SetTraceback(val, tb);\n" "}" msgstr "" +#: ../../c-api/exceptions.rst:607 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 " @@ -518,6 +658,7 @@ msgid "" "or ``NULL``. Does not modify the interpreter's exception state." msgstr "" +#: ../../c-api/exceptions.rst:614 msgid "" "This function is not normally used by code that wants to handle exceptions. " "Rather, it can be used when code needs to save and restore the exception " @@ -525,12 +666,14 @@ msgid "" "clear the exception state." msgstr "" +#: ../../c-api/exceptions.rst:623 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:630 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 " @@ -538,6 +681,7 @@ msgid "" "exception state." msgstr "" +#: ../../c-api/exceptions.rst:639 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*, " @@ -547,6 +691,7 @@ msgid "" "using :c:func:`PyErr_GetHandledException`." msgstr "" +#: ../../c-api/exceptions.rst:648 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 " @@ -554,15 +699,17 @@ msgid "" "exception state." msgstr "" +#: ../../c-api/exceptions.rst:658 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`." +"raised. This function \":term:`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:668 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 " @@ -570,64 +717,111 @@ msgid "" "state." msgstr "" +#: ../../c-api/exceptions.rst:675 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." +"argument). The function still \":term:`steals `\" references of all " +"three arguments." msgstr "" +#: ../../c-api/exceptions.rst:683 msgid "Signal Handling" msgstr "" -msgid "This function interacts with Python's signal handling." +#: ../../c-api/exceptions.rst:693 +msgid "" +"Handle external interruptions, such as signals or activating a debugger, " +"whose processing has been delayed until it is safe to run Python code and/or " +"raise exceptions." msgstr "" +#: ../../c-api/exceptions.rst:697 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." +"For example, pressing :kbd:`Ctrl-C` causes a terminal to send the :py:data:" +"`signal.SIGINT` signal. This function executes the corresponding Python " +"signal handler, which, by default, raises the :exc:`KeyboardInterrupt` " +"exception." msgstr "" +#: ../../c-api/exceptions.rst:702 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)." +":c:func:`!PyErr_CheckSignals` should be called by long-running C code " +"frequently enough so that the response appears immediate to humans." +msgstr "" + +#: ../../c-api/exceptions.rst:705 +msgid "Handlers invoked by this function currently include:" msgstr "" +#: ../../c-api/exceptions.rst:707 msgid "" -"If the function is called from a non-main thread, or under a non-main Python " -"interpreter, it does nothing and returns ``0``." +"Signal handlers, including Python functions registered using the :mod:" +"`signal` module." msgstr "" +#: ../../c-api/exceptions.rst:710 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)." +"Signal handlers are only run in the main thread of the main interpreter." msgstr "" +#: ../../c-api/exceptions.rst:712 msgid "" -"The default Python signal handler for :c:macro:`!SIGINT` raises the :exc:" -"`KeyboardInterrupt` exception." +"(This is where the function got the name: originally, signals were the only " +"way to interrupt the interpreter.)" msgstr "" +#: ../../c-api/exceptions.rst:715 +msgid "Running the garbage collector, if necessary." +msgstr "" + +#: ../../c-api/exceptions.rst:717 +msgid "Executing a pending :ref:`remote debugger ` script." +msgstr "" + +#: ../../c-api/exceptions.rst:719 +msgid "" +"If any handler raises an exception, immediately return ``-1`` with that " +"exception set. Any remaining interruptions are left to be processed on the " +"next :c:func:`PyErr_CheckSignals()` invocation, if appropriate." +msgstr "" + +#: ../../c-api/exceptions.rst:724 +msgid "" +"If all handlers finish successfully, or there are no handlers to run, return " +"``0``." +msgstr "" + +#: ../../c-api/exceptions.rst:727 +msgid "This function may now invoke the garbage collector." +msgstr "" + +#: ../../c-api/exceptions.rst:730 +msgid "" +"This function may now execute a remote debugger script, if remote debugging " +"is enabled." +msgstr "" + +#: ../../c-api/exceptions.rst:742 msgid "" "Simulate the effect of a :c:macro:`!SIGINT` signal arriving. This is " "equivalent to ``PyErr_SetInterruptEx(SIGINT)``." msgstr "" +#: ../../c-api/exceptions.rst:746 ../../c-api/exceptions.rst:773 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:756 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:760 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 " @@ -635,23 +829,27 @@ msgid "" "interrupt an operation)." msgstr "" +#: ../../c-api/exceptions.rst:765 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:768 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:781 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:785 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 " @@ -659,12 +857,15 @@ msgid "" "be called from the main thread." msgstr "" +#: ../../c-api/exceptions.rst:790 msgid "On Windows, the function now also supports socket handles." msgstr "" +#: ../../c-api/exceptions.rst:795 msgid "Exception Classes" msgstr "" +#: ../../c-api/exceptions.rst:799 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 " @@ -673,6 +874,7 @@ msgid "" "(accessible in C as :c:data:`PyExc_Exception`)." msgstr "" +#: ../../c-api/exceptions.rst:805 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 " @@ -682,34 +884,51 @@ msgid "" "variables and methods." msgstr "" +#: ../../c-api/exceptions.rst:814 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:823 msgid "" "Return non-zero if *ob* is an exception class, zero otherwise. This function " "always succeeds." msgstr "" +#: ../../c-api/exceptions.rst:828 msgid "Return :c:member:`~PyTypeObject.tp_name` of the exception class *ob*." msgstr "" +#: ../../c-api/exceptions.rst:832 msgid "Exception Objects" msgstr "" +#: ../../c-api/exceptions.rst:836 +msgid "" +"Return true if *op* is an instance of :class:`BaseException`, false " +"otherwise. This function always succeeds." +msgstr "" + +#: ../../c-api/exceptions.rst:842 +msgid "Equivalent to :c:func:`Py_TYPE(op) `." +msgstr "" + +#: ../../c-api/exceptions.rst:847 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:855 msgid "" "Set the traceback associated with the exception to *tb*. Use ``Py_None`` to " "clear it." msgstr "" +#: ../../c-api/exceptions.rst:861 msgid "" "Return the context (another exception instance during whose handling *ex* " "was raised) associated with the exception as a new reference, as accessible " @@ -717,12 +936,14 @@ msgid "" "there is no context associated, this returns ``NULL``." msgstr "" +#: ../../c-api/exceptions.rst:869 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*." +"instance. This \":term:`steals `\" a reference to *ctx*." msgstr "" +#: ../../c-api/exceptions.rst:876 msgid "" "Return the cause (either an exception instance, or ``None``, set by " "``raise ... from ...``) associated with the exception as a new reference, as " @@ -730,23 +951,29 @@ msgid "" "attribute." msgstr "" +#: ../../c-api/exceptions.rst:884 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*." +"exception instance or ``None``. This \":term:`steals `\" a reference " +"to *cause*." msgstr "" +#: ../../c-api/exceptions.rst:889 msgid "" "The :attr:`~BaseException.__suppress_context__` attribute is implicitly set " "to ``True`` by this function." msgstr "" +#: ../../c-api/exceptions.rst:895 msgid "Return :attr:`~BaseException.args` of exception *ex*." msgstr "" +#: ../../c-api/exceptions.rst:900 msgid "Set :attr:`~BaseException.args` of exception *ex* to *args*." msgstr "" +#: ../../c-api/exceptions.rst:904 msgid "" "Implement part of the interpreter's implementation of :keyword:`!except*`. " "*orig* is the original exception that was caught, and *excs* is the list of " @@ -758,80 +985,98 @@ msgid "" "if there is nothing to reraise." msgstr "" +#: ../../c-api/exceptions.rst:918 msgid "Unicode Exception Objects" msgstr "" +#: ../../c-api/exceptions.rst:920 msgid "" "The following functions are used to create and modify Unicode exceptions " "from C." msgstr "" +#: ../../c-api/exceptions.rst:924 msgid "" "Create a :class:`UnicodeDecodeError` object with the attributes *encoding*, " "*object*, *length*, *start*, *end* and *reason*. *encoding* and *reason* are " "UTF-8 encoded strings." msgstr "" +#: ../../c-api/exceptions.rst:931 msgid "Return the *encoding* attribute of the given exception object." msgstr "" +#: ../../c-api/exceptions.rst:937 msgid "Return the *object* attribute of the given exception object." msgstr "" +#: ../../c-api/exceptions.rst:943 msgid "" "Get the *start* attribute of the given exception object and place it into " "*\\*start*. *start* must not be ``NULL``. Return ``0`` on success, ``-1`` " "on failure." msgstr "" +#: ../../c-api/exceptions.rst:947 msgid "" "If the :attr:`UnicodeError.object` is an empty sequence, the resulting " "*start* is ``0``. Otherwise, it is clipped to ``[0, len(object) - 1]``." msgstr "" +#: ../../c-api/exceptions.rst:950 msgid ":attr:`UnicodeError.start`" msgstr "" +#: ../../c-api/exceptions.rst:956 msgid "" "Set the *start* attribute of the given exception object to *start*. Return " "``0`` on success, ``-1`` on failure." msgstr "" +#: ../../c-api/exceptions.rst:961 msgid "" "While passing a negative *start* does not raise an exception, the " "corresponding getters will not consider it as a relative offset." msgstr "" +#: ../../c-api/exceptions.rst:969 msgid "" "Get the *end* attribute of the given exception object and place it into " "*\\*end*. *end* must not be ``NULL``. Return ``0`` on success, ``-1`` on " "failure." msgstr "" +#: ../../c-api/exceptions.rst:973 msgid "" "If the :attr:`UnicodeError.object` is an empty sequence, the resulting *end* " "is ``0``. Otherwise, it is clipped to ``[1, len(object)]``." msgstr "" +#: ../../c-api/exceptions.rst:980 msgid "" "Set the *end* attribute of the given exception object to *end*. Return " "``0`` on success, ``-1`` on failure." msgstr "" +#: ../../c-api/exceptions.rst:983 msgid ":attr:`UnicodeError.end`" msgstr "" +#: ../../c-api/exceptions.rst:989 msgid "Return the *reason* attribute of the given exception object." msgstr "" +#: ../../c-api/exceptions.rst:995 msgid "" "Set the *reason* attribute of the given exception object to *reason*. " "Return ``0`` on success, ``-1`` on failure." msgstr "" +#: ../../c-api/exceptions.rst:1002 msgid "Recursion Control" msgstr "" +#: ../../c-api/exceptions.rst:1004 msgid "" "These two functions provide a way to perform safe recursive calls at the C " "level, both in the core and in extension modules. They are needed if the " @@ -841,44 +1086,56 @@ msgid "" "recursion handling." msgstr "" +#: ../../c-api/exceptions.rst:1013 msgid "Marks a point where a recursive C-level call is about to be performed." msgstr "" +#: ../../c-api/exceptions.rst:1015 msgid "" "The function then checks if the stack limit is reached. If this is the " "case, a :exc:`RecursionError` is set and a nonzero value is returned. " "Otherwise, zero is returned." msgstr "" +#: ../../c-api/exceptions.rst:1019 msgid "" "*where* should be a UTF-8 encoded string such as ``\" in instance check\"`` " "to be concatenated to the :exc:`RecursionError` message caused by the " "recursion depth limit." msgstr "" +#: ../../c-api/exceptions.rst:1024 +msgid "The :c:func:`PyUnstable_ThreadState_SetStackProtection` function." +msgstr "" + +#: ../../c-api/exceptions.rst:1026 ../../c-api/exceptions.rst:1034 msgid "" "This function is now also available in the :ref:`limited API `." msgstr "" +#: ../../c-api/exceptions.rst:1031 msgid "" "Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each " "*successful* invocation of :c:func:`Py_EnterRecursiveCall`." msgstr "" +#: ../../c-api/exceptions.rst:1037 msgid "" "Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types " "requires special recursion handling. In addition to protecting the stack, :" "c:member:`~PyTypeObject.tp_repr` also needs to track objects to prevent " "cycles. The following two functions facilitate this functionality. " -"Effectively, these are the C equivalent to :func:`reprlib.recursive_repr`." +"Effectively, these are the C equivalent to :deco:`reprlib.recursive_repr`." msgstr "" +#: ../../c-api/exceptions.rst:1045 msgid "" "Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` " "implementation to detect cycles." msgstr "" +#: ../../c-api/exceptions.rst:1048 msgid "" "If the object has already been processed, the function returns a positive " "integer. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " @@ -886,208 +1143,301 @@ msgid "" "`dict` objects return ``{...}`` and :class:`list` objects return ``[...]``." msgstr "" +#: ../../c-api/exceptions.rst:1054 msgid "" "The function will return a negative integer if the recursion limit is " "reached. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " "should typically return ``NULL``." msgstr "" +#: ../../c-api/exceptions.rst:1058 msgid "" "Otherwise, the function returns zero and the :c:member:`~PyTypeObject." "tp_repr` implementation can continue normally." msgstr "" +#: ../../c-api/exceptions.rst:1063 msgid "" "Ends a :c:func:`Py_ReprEnter`. Must be called once for each invocation of :" "c:func:`Py_ReprEnter` that returns zero." msgstr "" +#: ../../c-api/exceptions.rst:1068 +msgid "" +"Get the recursion limit for the current interpreter. It can be set with :c:" +"func:`Py_SetRecursionLimit`. The recursion limit prevents the Python " +"interpreter stack from growing infinitely." +msgstr "" + +#: ../../c-api/exceptions.rst:1072 ../../c-api/exceptions.rst:1082 +msgid "" +"This function cannot fail, and the caller must hold an :term:`attached " +"thread state`." +msgstr "" + +#: ../../c-api/exceptions.rst:1076 +msgid ":py:func:`sys.getrecursionlimit`" +msgstr "" + +#: ../../c-api/exceptions.rst:1080 +msgid "Set the recursion limit for the current interpreter." +msgstr "" + +#: ../../c-api/exceptions.rst:1086 +msgid ":py:func:`sys.setrecursionlimit`" +msgstr "" + +#: ../../c-api/exceptions.rst:1091 msgid "Exception and warning types" msgstr "" +#: ../../c-api/exceptions.rst:1093 msgid "" "All standard Python exceptions and warning categories are available as " "global variables whose names are ``PyExc_`` followed by the Python exception " "name. These have the type :c:expr:`PyObject*`; they are all class objects." msgstr "" +#: ../../c-api/exceptions.rst:1097 msgid "For completeness, here are all the variables:" msgstr "" +#: ../../c-api/exceptions.rst:1100 msgid "Exception types" msgstr "" +#: ../../c-api/exceptions.rst:1107 ../../c-api/exceptions.rst:1253 +#: ../../c-api/exceptions.rst:1283 msgid "C name" msgstr "" +#: ../../c-api/exceptions.rst:1108 ../../c-api/exceptions.rst:1254 +#: ../../c-api/exceptions.rst:1284 msgid "Python name" msgstr "" +#: ../../c-api/exceptions.rst:1110 msgid ":exc:`BaseException`" msgstr "" +#: ../../c-api/exceptions.rst:1112 msgid ":exc:`BaseExceptionGroup`" msgstr "" +#: ../../c-api/exceptions.rst:1114 msgid ":exc:`Exception`" msgstr "" +#: ../../c-api/exceptions.rst:1116 msgid ":exc:`ArithmeticError`" msgstr "" +#: ../../c-api/exceptions.rst:1118 msgid ":exc:`AssertionError`" msgstr "" +#: ../../c-api/exceptions.rst:1120 msgid ":exc:`AttributeError`" msgstr "" +#: ../../c-api/exceptions.rst:1122 msgid ":exc:`BlockingIOError`" msgstr "" +#: ../../c-api/exceptions.rst:1124 msgid ":exc:`BrokenPipeError`" msgstr "" +#: ../../c-api/exceptions.rst:1126 msgid ":exc:`BufferError`" msgstr "" +#: ../../c-api/exceptions.rst:1128 msgid ":exc:`ChildProcessError`" msgstr "" +#: ../../c-api/exceptions.rst:1130 msgid ":exc:`ConnectionAbortedError`" msgstr "" +#: ../../c-api/exceptions.rst:1132 msgid ":exc:`ConnectionError`" msgstr "" +#: ../../c-api/exceptions.rst:1134 msgid ":exc:`ConnectionRefusedError`" msgstr "" +#: ../../c-api/exceptions.rst:1136 msgid ":exc:`ConnectionResetError`" msgstr "" +#: ../../c-api/exceptions.rst:1138 msgid ":exc:`EOFError`" msgstr "" +#: ../../c-api/exceptions.rst:1140 msgid ":exc:`FileExistsError`" msgstr "" +#: ../../c-api/exceptions.rst:1142 msgid ":exc:`FileNotFoundError`" msgstr "" +#: ../../c-api/exceptions.rst:1144 msgid ":exc:`FloatingPointError`" msgstr "" +#: ../../c-api/exceptions.rst:1146 msgid ":exc:`GeneratorExit`" msgstr "" +#: ../../c-api/exceptions.rst:1148 msgid ":exc:`ImportError`" msgstr "" +#: ../../c-api/exceptions.rst:1150 msgid ":exc:`IndentationError`" msgstr "" +#: ../../c-api/exceptions.rst:1152 msgid ":exc:`IndexError`" msgstr "" +#: ../../c-api/exceptions.rst:1154 msgid ":exc:`InterruptedError`" msgstr "" +#: ../../c-api/exceptions.rst:1156 msgid ":exc:`IsADirectoryError`" msgstr "" +#: ../../c-api/exceptions.rst:1158 msgid ":exc:`KeyError`" msgstr "" +#: ../../c-api/exceptions.rst:1160 msgid ":exc:`KeyboardInterrupt`" msgstr "" +#: ../../c-api/exceptions.rst:1162 msgid ":exc:`LookupError`" msgstr "" +#: ../../c-api/exceptions.rst:1164 msgid ":exc:`MemoryError`" msgstr "" +#: ../../c-api/exceptions.rst:1166 msgid ":exc:`ModuleNotFoundError`" msgstr "" +#: ../../c-api/exceptions.rst:1168 msgid ":exc:`NameError`" msgstr "" +#: ../../c-api/exceptions.rst:1170 msgid ":exc:`NotADirectoryError`" msgstr "" +#: ../../c-api/exceptions.rst:1172 msgid ":exc:`NotImplementedError`" msgstr "" +#: ../../c-api/exceptions.rst:1174 ../../c-api/exceptions.rst:1257 +#: ../../c-api/exceptions.rst:1260 ../../c-api/exceptions.rst:1263 msgid ":exc:`OSError`" msgstr "" +#: ../../c-api/exceptions.rst:1176 msgid ":exc:`OverflowError`" msgstr "" +#: ../../c-api/exceptions.rst:1178 msgid ":exc:`PermissionError`" msgstr "" +#: ../../c-api/exceptions.rst:1180 msgid ":exc:`ProcessLookupError`" msgstr "" +#: ../../c-api/exceptions.rst:1182 msgid ":exc:`PythonFinalizationError`" msgstr "" +#: ../../c-api/exceptions.rst:1184 msgid ":exc:`RecursionError`" msgstr "" +#: ../../c-api/exceptions.rst:1186 msgid ":exc:`ReferenceError`" msgstr "" +#: ../../c-api/exceptions.rst:1188 msgid ":exc:`RuntimeError`" msgstr "" +#: ../../c-api/exceptions.rst:1190 msgid ":exc:`StopAsyncIteration`" msgstr "" +#: ../../c-api/exceptions.rst:1192 msgid ":exc:`StopIteration`" msgstr "" +#: ../../c-api/exceptions.rst:1194 msgid ":exc:`SyntaxError`" msgstr "" +#: ../../c-api/exceptions.rst:1196 msgid ":exc:`SystemError`" msgstr "" +#: ../../c-api/exceptions.rst:1198 msgid ":exc:`SystemExit`" msgstr "" +#: ../../c-api/exceptions.rst:1200 msgid ":exc:`TabError`" msgstr "" +#: ../../c-api/exceptions.rst:1202 msgid ":exc:`TimeoutError`" msgstr "" +#: ../../c-api/exceptions.rst:1204 msgid ":exc:`TypeError`" msgstr "" +#: ../../c-api/exceptions.rst:1206 msgid ":exc:`UnboundLocalError`" msgstr "" +#: ../../c-api/exceptions.rst:1208 msgid ":exc:`UnicodeDecodeError`" msgstr "" +#: ../../c-api/exceptions.rst:1210 msgid ":exc:`UnicodeEncodeError`" msgstr "" +#: ../../c-api/exceptions.rst:1212 msgid ":exc:`UnicodeError`" msgstr "" +#: ../../c-api/exceptions.rst:1214 msgid ":exc:`UnicodeTranslateError`" msgstr "" +#: ../../c-api/exceptions.rst:1216 msgid ":exc:`ValueError`" msgstr "" +#: ../../c-api/exceptions.rst:1218 msgid ":exc:`ZeroDivisionError`" msgstr "" +#: ../../c-api/exceptions.rst:1220 msgid "" ":c:data:`PyExc_BlockingIOError`, :c:data:`PyExc_BrokenPipeError`, :c:data:" "`PyExc_ChildProcessError`, :c:data:`PyExc_ConnectionError`, :c:data:" @@ -1099,94 +1449,163 @@ msgid "" "`PyExc_TimeoutError` were introduced following :pep:`3151`." msgstr "" +#: ../../c-api/exceptions.rst:1230 msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." msgstr "" +#: ../../c-api/exceptions.rst:1233 msgid ":c:data:`PyExc_ModuleNotFoundError`." msgstr "" +#: ../../c-api/exceptions.rst:1236 msgid ":c:data:`PyExc_BaseExceptionGroup`." msgstr "" +#: ../../c-api/exceptions.rst:1241 msgid "OSError aliases" msgstr "" +#: ../../c-api/exceptions.rst:1243 msgid "The following are a compatibility aliases to :c:data:`PyExc_OSError`." msgstr "" +#: ../../c-api/exceptions.rst:1245 msgid "These aliases used to be separate exception types." msgstr "" +#: ../../c-api/exceptions.rst:1255 msgid "Notes" msgstr "" +#: ../../c-api/exceptions.rst:1264 msgid "[win]_" msgstr "" +#: ../../c-api/exceptions.rst:1266 msgid "Notes:" msgstr "" +#: ../../c-api/exceptions.rst:1269 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:1276 msgid "Warning types" msgstr "" +#: ../../c-api/exceptions.rst:1286 msgid ":exc:`Warning`" msgstr "" +#: ../../c-api/exceptions.rst:1288 msgid ":exc:`BytesWarning`" msgstr "" +#: ../../c-api/exceptions.rst:1290 msgid ":exc:`DeprecationWarning`" msgstr "" +#: ../../c-api/exceptions.rst:1292 msgid ":exc:`EncodingWarning`" msgstr "" +#: ../../c-api/exceptions.rst:1294 msgid ":exc:`FutureWarning`" msgstr "" +#: ../../c-api/exceptions.rst:1296 msgid ":exc:`ImportWarning`" msgstr "" +#: ../../c-api/exceptions.rst:1298 msgid ":exc:`PendingDeprecationWarning`" msgstr "" +#: ../../c-api/exceptions.rst:1300 msgid ":exc:`ResourceWarning`" msgstr "" +#: ../../c-api/exceptions.rst:1302 msgid ":exc:`RuntimeWarning`" msgstr "" +#: ../../c-api/exceptions.rst:1304 msgid ":exc:`SyntaxWarning`" msgstr "" +#: ../../c-api/exceptions.rst:1306 msgid ":exc:`UnicodeWarning`" msgstr "" +#: ../../c-api/exceptions.rst:1308 msgid ":exc:`UserWarning`" msgstr "" +#: ../../c-api/exceptions.rst:1310 msgid ":c:data:`PyExc_ResourceWarning`." msgstr "" +#: ../../c-api/exceptions.rst:1313 msgid ":c:data:`PyExc_EncodingWarning`." msgstr "" +#: ../../c-api/exceptions.rst:1318 +msgid "Tracebacks" +msgstr "" + +#: ../../c-api/exceptions.rst:1322 +msgid "" +"Type object for traceback objects. This is available as :class:`types." +"TracebackType` in the Python layer." +msgstr "" + +#: ../../c-api/exceptions.rst:1328 +msgid "" +"Return true if *op* is a traceback object, false otherwise. This function " +"does not account for subtypes." +msgstr "" + +#: ../../c-api/exceptions.rst:1334 +msgid "" +"Replace the :attr:`~BaseException.__traceback__` attribute on the current " +"exception with a new traceback prepending *f* to the existing chain." +msgstr "" + +#: ../../c-api/exceptions.rst:1337 +msgid "Calling this function without an exception set is undefined behavior." +msgstr "" + +#: ../../c-api/exceptions.rst:1339 ../../c-api/exceptions.rst:1347 +msgid "" +"This function returns ``0`` on success, and returns ``-1`` with an exception " +"set on failure." +msgstr "" + +#: ../../c-api/exceptions.rst:1345 +msgid "Write the traceback *tb* into the file *f*." +msgstr "" + +#: ../../c-api/exceptions.rst:198 msgid "strerror (C function)" msgstr "" +#: ../../c-api/exceptions.rst:688 ../../c-api/exceptions.rst:737 +#: ../../c-api/exceptions.rst:752 msgid "module" msgstr "" +#: ../../c-api/exceptions.rst:688 ../../c-api/exceptions.rst:737 +#: ../../c-api/exceptions.rst:752 msgid "signal" msgstr "" +#: ../../c-api/exceptions.rst:688 ../../c-api/exceptions.rst:737 msgid "SIGINT (C macro)" msgstr "" +#: ../../c-api/exceptions.rst:688 ../../c-api/exceptions.rst:737 +#: ../../c-api/exceptions.rst:752 msgid "KeyboardInterrupt (built-in exception)" msgstr "" diff --git a/c-api/extension-modules.po b/c-api/extension-modules.po index 1e424b4..16b04ee 100644 --- a/c-api/extension-modules.po +++ b/c-api/extension-modules.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -27,6 +29,7 @@ msgid "" "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." @@ -34,6 +37,7 @@ msgid "" "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 " @@ -41,29 +45,34 @@ msgid "" "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 " @@ -72,12 +81,15 @@ msgid "" "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 " @@ -86,6 +98,7 @@ msgid "" "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:" @@ -94,6 +107,7 @@ msgid "" "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, " @@ -102,11 +116,13 @@ msgid "" "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 " @@ -115,19 +131,23 @@ msgid "" "`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 " @@ -137,6 +157,7 @@ msgid "" "replaced by underscores. In Python:" msgstr "" +#: ../../c-api/extension-modules.rst:106 msgid "" "def initfunc_name(name):\n" " try:\n" @@ -146,25 +167,32 @@ msgid "" " 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" @@ -179,6 +207,7 @@ msgid "" "}" 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 " @@ -188,14 +217,17 @@ msgid "" "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-" @@ -203,34 +235,41 @@ msgid "" "``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 " @@ -238,19 +277,23 @@ msgid "" "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 " @@ -259,6 +302,7 @@ msgid "" "an exception class ``error``:" msgstr "" +#: ../../c-api/extension-modules.rst:214 msgid "" ">>> import sys\n" ">>> import _testsinglephase as one\n" @@ -274,10 +318,12 @@ msgid "" "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 " @@ -286,19 +332,23 @@ msgid "" "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." diff --git a/c-api/file.po b/c-api/file.po index f0ae088..7d54858 100644 --- a/c-api/file.po +++ b/c-api/file.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -msgid "File Objects" +#: ../../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 " @@ -31,6 +33,7 @@ msgid "" "`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 " @@ -40,15 +43,18 @@ msgid "" "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:" @@ -57,6 +63,7 @@ msgid "" "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." @@ -69,65 +76,135 @@ msgid "" "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:98 +msgid "" +"Open *path* with the mode ``'rb'``. *path* must be a Python :class:`str` " +"object. The behavior of this function may be overridden by :c:func:" +"`PyFile_SetOpenCodeHook` to allow for some preprocessing of the text." +msgstr "" + +#: ../../c-api/file.rst:103 +msgid "This is analogous to :func:`io.open_code` in Python." +msgstr "" + +#: ../../c-api/file.rst:105 +msgid "" +"On success, this function returns a :term:`strong reference` to a Python " +"file object. On failure, this function returns ``NULL`` with an exception " +"set." +msgstr "" + +#: ../../c-api/file.rst:114 +msgid "" +"Similar to :c:func:`PyFile_OpenCodeObject`, but *path* is a UTF-8 encoded :c:" +"expr:`const char*`." +msgstr "" + +#: ../../c-api/file.rst:124 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." +"written instead of the :func:`repr`." +msgstr "" + +#: ../../c-api/file.rst:128 +msgid "If *obj* is ``NULL``, write the string ``\"\"``." +msgstr "" + +#: ../../c-api/file.rst:130 +msgid "" +"Return ``0`` on success or ``-1`` on failure; the appropriate exception will " +"be set." msgstr "" +#: ../../c-api/file.rst:135 msgid "" "Write string *s* to file object *p*. Return ``0`` on success or ``-1`` on " "failure; the appropriate exception will be set." msgstr "" +#: ../../c-api/file.rst:140 +msgid "Soft-deprecated API" +msgstr "" + +#: ../../c-api/file.rst:144 +msgid "" +"These are APIs that were included in Python's C API by mistake. They are " +"documented solely for completeness; use other ``PyFile*`` APIs instead." +msgstr "" + +#: ../../c-api/file.rst:150 +msgid "" +"Use :c:func:`PyFile_FromFd` with defaults (``fd, NULL, \"w\", -1, NULL, " +"NULL, NULL, 0``) instead." +msgstr "" + +#: ../../c-api/file.rst:154 +msgid "" +"Type of file-like objects used internally at Python startup when :py:mod:" +"`io` is not yet available. Use Python :py:func:`open` or :c:func:" +"`PyFile_FromFd` to create file objects instead." +msgstr "" + +#: ../../c-api/file.rst:8 msgid "object" msgstr "" +#: ../../c-api/file.rst:8 msgid "file" msgstr "" +#: ../../c-api/file.rst:50 msgid "EOFError (built-in exception)" msgstr "" +#: ../../c-api/file.rst:122 msgid "Py_PRINT_RAW (C macro)" msgstr "" diff --git a/c-api/float.po b/c-api/float.po index c34a330..7f206f1 100644 --- a/c-api/float.po +++ b/c-api/float.po @@ -8,46 +8,54 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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." @@ -57,32 +65,152 @@ msgid "" "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:83 +msgid "" +"This macro expands to a constant expression of type :c:expr:`double`, that " +"represents the positive infinity." +msgstr "" + +#: ../../c-api/float.rst:86 +msgid "" +"On most platforms, this is equivalent to the :c:macro:`!INFINITY` macro from " +"the C11 standard ```` header." +msgstr "" + +#: ../../c-api/float.rst:92 +msgid "" +"This macro expands to a constant expression of type :c:expr:`double`, that " +"represents a quiet not-a-number (qNaN) value." +msgstr "" + +#: ../../c-api/float.rst:95 +msgid "" +"On most platforms, this is equivalent to the :c:macro:`!NAN` macro from the " +"C11 standard ```` header." +msgstr "" + +#: ../../c-api/float.rst:101 +msgid "Equivalent to :c:macro:`!INFINITY`." +msgstr "" + +#: ../../c-api/float.rst:103 +msgid "The macro is :term:`soft deprecated`." +msgstr "" + +#: ../../c-api/float.rst:109 +msgid "" +"The definition (accurate for a :c:expr:`double` type) of the :data:`math.e` " +"constant." +msgstr "" + +#: ../../c-api/float.rst:114 +msgid "High precision (long double) definition of :data:`~math.e` constant." +msgstr "" + +#: ../../c-api/float.rst:119 +msgid "" +"The definition (accurate for a :c:expr:`double` type) of the :data:`math.pi` " +"constant." +msgstr "" + +#: ../../c-api/float.rst:124 +msgid "High precision (long double) definition of :data:`~math.pi` constant." +msgstr "" + +#: ../../c-api/float.rst:129 +msgid "" +"The definition (accurate for a :c:expr:`double` type) of the :data:`math." +"tau` constant." +msgstr "" + +#: ../../c-api/float.rst:136 +msgid "Return :data:`math.nan` from a function." +msgstr "" + +#: ../../c-api/float.rst:138 +msgid "" +"On most platforms, this is equivalent to ``return PyFloat_FromDouble(NAN)``." +msgstr "" + +#: ../../c-api/float.rst:143 +msgid "" +"Return :data:`math.inf` or :data:`-math.inf ` from a function, " +"depending on the sign of *sign*." +msgstr "" + +#: ../../c-api/float.rst:146 +msgid "On most platforms, this is equivalent to the following::" +msgstr "" + +#: ../../c-api/float.rst:148 +msgid "return PyFloat_FromDouble(copysign(INFINITY, sign));" +msgstr "" + +#: ../../c-api/float.rst:153 +msgid "" +"Return ``1`` if the given floating-point number *X* is finite, that is, it " +"is normal, subnormal or zero, but not infinite or NaN. Return ``0`` " +"otherwise." +msgstr "" + +#: ../../c-api/float.rst:157 +msgid "" +"The macro is :term:`soft deprecated`. Use :c:macro:`!isfinite` instead." +msgstr "" + +#: ../../c-api/float.rst:163 +msgid "" +"Return ``1`` if the given floating-point number *X* is positive or negative " +"infinity. Return ``0`` otherwise." +msgstr "" + +#: ../../c-api/float.rst:166 +msgid "The macro is :term:`soft deprecated`. Use :c:macro:`!isinf` instead." +msgstr "" + +#: ../../c-api/float.rst:172 +msgid "" +"Return ``1`` if the given floating-point number *X* is a not-a-number (NaN) " +"value. Return ``0`` otherwise." +msgstr "" + +#: ../../c-api/float.rst:175 +msgid "The macro is :term:`soft deprecated`. Use :c:macro:`!isnan` instead." +msgstr "" + +#: ../../c-api/float.rst:180 msgid "Pack and Unpack functions" msgstr "" +#: ../../c-api/float.rst:182 msgid "" "The pack and unpack functions provide an efficient platform-independent way " "to store floating-point values as byte strings. The Pack routines produce a " @@ -91,6 +219,7 @@ msgid "" "the number of bytes in the bytes string." msgstr "" +#: ../../c-api/float.rst:188 msgid "" "On platforms that appear to use IEEE 754 formats these functions work by " "copying bits. On other platforms, the 2-byte format is identical to the IEEE " @@ -102,11 +231,13 @@ msgid "" "an exception." msgstr "" +#: ../../c-api/float.rst:197 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." +"Note that NaN type may not be preserved on IEEE platforms (signaling NaNs " +"become quiet NaNs), for example on x86 systems in 32-bit mode." msgstr "" +#: ../../c-api/float.rst:200 msgid "" "On non-IEEE platforms with more precision, or larger dynamic range, than " "IEEE 754 supports, not all values can be packed; on non-IEEE platforms with " @@ -114,44 +245,55 @@ msgid "" "What happens in such cases is partly accidental (alas)." msgstr "" +#: ../../c-api/float.rst:208 msgid "Pack functions" msgstr "" +#: ../../c-api/float.rst:210 msgid "" "The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:" "`int` argument, non-zero if you want the bytes string in little-endian " -"format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` ``p+7``), zero if you " -"want big-endian format (exponent first, at *p*). The :c:macro:" +"format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` and ``p+7``), zero if " +"you want big-endian format (exponent first, at *p*). The :c:macro:" "`PY_BIG_ENDIAN` constant can be used to use the native endian: it is equal " "to ``1`` on big endian processor, or ``0`` on little endian processor." msgstr "" +#: ../../c-api/float.rst:217 msgid "" "Return value: ``0`` if all is OK, ``-1`` if error (and an exception is set, " "most likely :exc:`OverflowError`)." msgstr "" +#: ../../c-api/float.rst:220 msgid "There are two problems on non-IEEE platforms:" msgstr "" +#: ../../c-api/float.rst:222 msgid "What this does is undefined if *x* is a NaN or infinity." msgstr "" +#: ../../c-api/float.rst:223 msgid "``-0.0`` and ``+0.0`` produce the same bytes string." msgstr "" +#: ../../c-api/float.rst:227 msgid "Pack a C double as the IEEE 754 binary16 half-precision format." msgstr "" +#: ../../c-api/float.rst:231 msgid "Pack a C double as the IEEE 754 binary32 single precision format." msgstr "" +#: ../../c-api/float.rst:235 msgid "Pack a C double as the IEEE 754 binary64 double precision format." msgstr "" +#: ../../c-api/float.rst:239 msgid "Unpack functions" msgstr "" +#: ../../c-api/float.rst:241 msgid "" "The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is an :c:" "expr:`int` argument, non-zero if the bytes string is in little-endian format " @@ -161,28 +303,35 @@ msgid "" "processor, or ``0`` on little endian processor." msgstr "" +#: ../../c-api/float.rst:248 msgid "" "Return value: The unpacked double. On error, this is ``-1.0`` and :c:func:" "`PyErr_Occurred` is true (and an exception is set, most likely :exc:" "`OverflowError`)." msgstr "" +#: ../../c-api/float.rst:252 msgid "" "Note that on a non-IEEE platform this will refuse to unpack a bytes string " "that represents a NaN or infinity." msgstr "" +#: ../../c-api/float.rst:257 msgid "Unpack the IEEE 754 binary16 half-precision format as a C double." msgstr "" +#: ../../c-api/float.rst:261 msgid "Unpack the IEEE 754 binary32 single precision format as a C double." msgstr "" +#: ../../c-api/float.rst:265 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 index 0d29daf..d539d58 100644 --- a/c-api/frame.po +++ b/c-api/frame.po @@ -8,115 +8,152 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -msgid "Frame Objects" +#: ../../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 "" +"Create a new frame object. This function returns a :term:`strong reference` " +"to the new frame object on success, and returns ``NULL`` with an exception " +"set on failure." +msgstr "" + +#: ../../c-api/frame.rst:40 msgid "Return non-zero if *obj* is a frame object." msgstr "" +#: ../../c-api/frame.rst:44 msgid "" "Previously, this function was only available after including ````." msgstr "" +#: ../../c-api/frame.rst:49 msgid "Get the *frame* next outer frame." msgstr "" +#: ../../c-api/frame.rst:51 msgid "" -"Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer frame." +"Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer " +"frame. This raises no exceptions." msgstr "" +#: ../../c-api/frame.rst:60 msgid "Get the *frame*'s :attr:`~frame.f_builtins` attribute." msgstr "" +#: ../../c-api/frame.rst:62 ../../c-api/frame.rst:93 msgid "Return a :term:`strong reference`. The result cannot be ``NULL``." msgstr "" +#: ../../c-api/frame.rst:69 msgid "Get the *frame* code." msgstr "" +#: ../../c-api/frame.rst:71 ../../c-api/frame.rst:137 msgid "Return a :term:`strong reference`." msgstr "" +#: ../../c-api/frame.rst:73 msgid "The result (frame code) cannot be ``NULL``." msgstr "" +#: ../../c-api/frame.rst:80 msgid "" "Get the generator, coroutine, or async generator that owns this frame, or " "``NULL`` if this frame is not owned by a generator. Does not raise an " "exception, even if the return value is ``NULL``." msgstr "" +#: ../../c-api/frame.rst:84 msgid "Return a :term:`strong reference`, or ``NULL``." msgstr "" +#: ../../c-api/frame.rst:91 msgid "Get the *frame*'s :attr:`~frame.f_globals` attribute." msgstr "" +#: ../../c-api/frame.rst:100 msgid "Get the *frame*'s :attr:`~frame.f_lasti` attribute." msgstr "" +#: ../../c-api/frame.rst:102 msgid "Returns -1 if ``frame.f_lasti`` is ``None``." msgstr "" +#: ../../c-api/frame.rst:109 msgid "Get the variable *name* of *frame*." msgstr "" +#: ../../c-api/frame.rst:111 msgid "Return a :term:`strong reference` to the variable value on success." msgstr "" +#: ../../c-api/frame.rst:112 msgid "" "Raise :exc:`NameError` and return ``NULL`` if the variable does not exist." msgstr "" +#: ../../c-api/frame.rst:113 msgid "Raise an exception and return ``NULL`` on error." msgstr "" +#: ../../c-api/frame.rst:115 msgid "*name* type must be a :class:`str`." msgstr "" +#: ../../c-api/frame.rst:122 msgid "" "Similar to :c:func:`PyFrame_GetVar`, but the variable name is a C string " "encoded in UTF-8." msgstr "" +#: ../../c-api/frame.rst:130 msgid "" "Get the *frame*'s :attr:`~frame.f_locals` attribute. If the frame refers to " "an :term:`optimized scope`, this returns a write-through proxy object that " @@ -125,17 +162,21 @@ msgid "" "directly (as described for :func:`locals`)." msgstr "" +#: ../../c-api/frame.rst:141 msgid "" "As part of :pep:`667`, return an instance of :c:var:" "`PyFrameLocalsProxy_Type`." msgstr "" +#: ../../c-api/frame.rst:147 msgid "Return the line number that *frame* is currently executing." msgstr "" -msgid "Frame Locals Proxies" +#: ../../c-api/frame.rst:151 +msgid "Frame locals proxies" msgstr "" +#: ../../c-api/frame.rst:155 msgid "" "The :attr:`~frame.f_locals` attribute on a :ref:`frame object ` is an instance of a \"frame-locals proxy\". The proxy object " @@ -144,30 +185,130 @@ msgid "" "to date with the live local variables in the frame itself." msgstr "" +#: ../../c-api/frame.rst:161 msgid "See :pep:`667` for more information." msgstr "" +#: ../../c-api/frame.rst:165 msgid "The type of frame :func:`locals` proxy objects." msgstr "" +#: ../../c-api/frame.rst:169 msgid "Return non-zero if *obj* is a frame :func:`locals` proxy." msgstr "" -msgid "Internal Frames" +#: ../../c-api/frame.rst:173 +msgid "Legacy local variable APIs" +msgstr "" + +#: ../../c-api/frame.rst:175 +msgid "" +"These APIs are :term:`soft deprecated`. As of Python 3.13, they do nothing. " +"They exist solely for backwards compatibility." +msgstr "" + +#: ../../c-api/frame.rst:181 +msgid "" +"Prior to Python 3.13, this function would copy the :attr:`~frame.f_locals` " +"attribute of *f* to the internal \"fast\" array of local variables, allowing " +"changes in frame objects to be visible to the interpreter. If *clear* was " +"true, this function would process variables that were unset in the locals " +"dictionary." +msgstr "" + +#: ../../c-api/frame.rst:187 ../../c-api/frame.rst:198 +#: ../../c-api/frame.rst:208 +msgid "This function now does nothing." +msgstr "" + +#: ../../c-api/frame.rst:193 +msgid "" +"Prior to Python 3.13, this function would copy the internal \"fast\" array " +"of local variables (which is used by the interpreter) to the :attr:`~frame." +"f_locals` attribute of *f*, allowing changes in local variables to be " +"visible to frame objects." +msgstr "" + +#: ../../c-api/frame.rst:204 +msgid "" +"Prior to Python 3.13, this function was similar to :c:func:" +"`PyFrame_FastToLocals`, but would return ``0`` on success, and ``-1`` with " +"an exception set on failure." +msgstr "" + +#: ../../c-api/frame.rst:213 +msgid ":pep:`667`" msgstr "" +#: ../../c-api/frame.rst:217 +msgid "Internal frames" +msgstr "" + +#: ../../c-api/frame.rst:219 msgid "Unless using :pep:`523`, you will not need this." msgstr "" +#: ../../c-api/frame.rst:223 msgid "The interpreter's internal frame representation." msgstr "" +#: ../../c-api/frame.rst:229 msgid "Return a :term:`strong reference` to the code object for the frame." msgstr "" +#: ../../c-api/frame.rst:236 msgid "Return the byte offset into the last executed instruction." msgstr "" +#: ../../c-api/frame.rst:243 msgid "" "Return the currently executing line number, or -1 if there is no line number." msgstr "" + +#: ../../c-api/frame.rst:250 +msgid "" +"An array of executable kinds (executor types) for frames, used for internal " +"debugging and tracing." +msgstr "" + +#: ../../c-api/frame.rst:253 +msgid "" +"Tools like debuggers and profilers can use this to identify the type of " +"execution context associated with a frame (such as to filter out internal " +"frames). The entries are indexed by the following constants:" +msgstr "" + +#: ../../c-api/frame.rst:261 +msgid "Constant" +msgstr "" + +#: ../../c-api/frame.rst:262 +msgid "Description" +msgstr "" + +#: ../../c-api/frame.rst:264 +msgid "" +"The frame is internal (For example: inlined) and should be skipped by tools." +msgstr "" + +#: ../../c-api/frame.rst:266 +msgid "The frame corresponds to a standard Python function." +msgstr "" + +#: ../../c-api/frame.rst:268 +msgid "The frame corresponds to a function defined in native code." +msgstr "" + +#: ../../c-api/frame.rst:270 +msgid "The frame corresponds to a method on a class instance." +msgstr "" + +#: ../../c-api/frame.rst:272 +msgid "" +"Note that reading the executable kind from a frame is currently only " +"possible with undocumented internal APIs." +msgstr "" + +#: ../../c-api/frame.rst:280 +msgid "The number of entries in :c:data:`PyUnstable_ExecutableKinds`." +msgstr "" diff --git a/c-api/function.po b/c-api/function.po index 5aeaf59..080d80a 100644 --- a/c-api/function.po +++ b/c-api/function.po @@ -8,42 +8,49 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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, " @@ -52,6 +59,7 @@ msgid "" "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 " @@ -59,75 +67,104 @@ msgid "" "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:125 +#: ../../c-api/function.rst:139 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 "" +"Set the keyword-only argument default values of the function object *op*. " +"*defaults* must be a dictionary of keyword-only arguments or ``Py_None``." +msgstr "" + +#: ../../c-api/function.rst:110 +msgid "" +"This function returns ``0`` on success, and returns ``-1`` with an exception " +"set on failure." +msgstr "" + +#: ../../c-api/function.rst:116 msgid "" "Return the closure associated with the function object *op*. This can be " "``NULL`` or a tuple of cell objects." msgstr "" +#: ../../c-api/function.rst:122 msgid "" "Set the closure associated with the function object *op*. *closure* must be " "``Py_None`` or a tuple of cell objects." msgstr "" +#: ../../c-api/function.rst:130 msgid "" "Return the annotations of the function object *op*. This can be a mutable " "dictionary or ``NULL``." msgstr "" +#: ../../c-api/function.rst:136 msgid "" "Set the annotations for the function object *op*. *annotations* must be a " "dictionary or ``Py_None``." msgstr "" +#: ../../c-api/function.rst:150 msgid "" "These functions are similar to their ``PyFunction_Get*`` counterparts, but " "do not do type checking. Passing anything other than an instance of :c:data:" "`PyFunction_Type` is undefined behavior." msgstr "" +#: ../../c-api/function.rst:157 msgid "" "Register *callback* as a function watcher for the current interpreter. " "Return an ID which may be passed to :c:func:`PyFunction_ClearWatcher`. In " @@ -135,6 +172,7 @@ msgid "" "exception." msgstr "" +#: ../../c-api/function.rst:167 msgid "" "Clear watcher identified by *watcher_id* previously returned from :c:func:" "`PyFunction_AddWatcher` for the current interpreter. Return ``0`` on " @@ -142,27 +180,35 @@ msgid "" "*watcher_id* was never registered.)" msgstr "" +#: ../../c-api/function.rst:177 msgid "Enumeration of possible function watcher events:" msgstr "" +#: ../../c-api/function.rst:179 msgid "``PyFunction_EVENT_CREATE``" msgstr "" +#: ../../c-api/function.rst:180 msgid "``PyFunction_EVENT_DESTROY``" msgstr "" +#: ../../c-api/function.rst:181 msgid "``PyFunction_EVENT_MODIFY_CODE``" msgstr "" +#: ../../c-api/function.rst:182 msgid "``PyFunction_EVENT_MODIFY_DEFAULTS``" msgstr "" +#: ../../c-api/function.rst:183 msgid "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" msgstr "" +#: ../../c-api/function.rst:190 msgid "Type of a function watcher callback function." msgstr "" +#: ../../c-api/function.rst:192 msgid "" "If *event* is ``PyFunction_EVENT_CREATE`` or ``PyFunction_EVENT_DESTROY`` " "then *new_value* will be ``NULL``. Otherwise, *new_value* will hold a :term:" @@ -170,11 +216,13 @@ msgid "" "for the attribute that is being modified." msgstr "" +#: ../../c-api/function.rst:197 msgid "" "The callback may inspect but must not modify *func*; doing so could have " "unpredictable effects, including infinite recursion." msgstr "" +#: ../../c-api/function.rst:200 msgid "" "If *event* is ``PyFunction_EVENT_CREATE``, then the callback is invoked " "after *func* has been fully initialized. Otherwise, the callback is invoked " @@ -186,6 +234,7 @@ msgid "" "semantics of the Python code being executed." msgstr "" +#: ../../c-api/function.rst:209 msgid "" "If *event* is ``PyFunction_EVENT_DESTROY``, Taking a reference in the " "callback to the about-to-be-destroyed function will resurrect it, preventing " @@ -193,12 +242,14 @@ msgid "" "later, any watcher callbacks active at that time will be called again." msgstr "" +#: ../../c-api/function.rst:214 msgid "" "If the callback sets an exception, it must return ``-1``; this exception " "will be printed as an unraisable exception using :c:func:" "`PyErr_WriteUnraisable`. Otherwise it should return ``0``." msgstr "" +#: ../../c-api/function.rst:218 msgid "" "There may already be a pending exception set on entry to the callback. In " "this case, the callback should return ``0`` with the same exception still " @@ -207,11 +258,14 @@ msgid "" "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 index 4c8bc9f..2c8ecba 100644 --- a/c-api/gcsupport.po +++ b/c-api/gcsupport.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -29,6 +31,7 @@ msgid "" "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 " @@ -37,48 +40,58 @@ msgid "" "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 " @@ -89,47 +102,59 @@ msgid "" "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`). " @@ -137,17 +162,20 @@ msgid "" "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 " @@ -155,17 +183,20 @@ msgid "" "`~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 " @@ -174,60 +205,74 @@ msgid "" "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 " @@ -237,16 +282,19 @@ msgid "" "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 " @@ -256,11 +304,13 @@ msgid "" "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 " @@ -270,6 +320,14 @@ msgid "" "returned immediately." msgstr "" +#: ../../c-api/gcsupport.rst:235 +msgid "" +"The traversal function must not have any side effects. Implementations may " +"not modify the reference counts of any Python objects nor create or destroy " +"any Python objects." +msgstr "" + +#: ../../c-api/gcsupport.rst:239 msgid "" "To simplify writing :c:member:`~PyTypeObject.tp_traverse` handlers, a :c:" "func:`Py_VISIT` macro is provided. In order to use this macro, the :c:" @@ -277,6 +335,7 @@ msgid "" "exactly *visit* and *arg*:" msgstr "" +#: ../../c-api/gcsupport.rst:246 msgid "" "If the :c:expr:`PyObject *` *o* is not ``NULL``, call the *visit* callback, " "with arguments *o* and *arg*. If *visit* returns a non-zero value, then " @@ -284,6 +343,7 @@ msgid "" "look like::" msgstr "" +#: ../../c-api/gcsupport.rst:251 msgid "" "static int\n" "my_traverse(Noddy *self, visitproc visit, void *arg)\n" @@ -294,11 +354,13 @@ msgid "" "}" msgstr "" +#: ../../c-api/gcsupport.rst:259 msgid "" "The :c:member:`~PyTypeObject.tp_clear` handler must be of the :c:type:" "`inquiry` type, or ``NULL`` if the object is immutable." msgstr "" +#: ../../c-api/gcsupport.rst:265 msgid "" "Drop references that may have created reference cycles. Immutable objects " "do not have to define this method since they can never directly create " @@ -308,19 +370,23 @@ msgid "" "in a reference cycle." msgstr "" +#: ../../c-api/gcsupport.rst:274 msgid "Controlling the Garbage Collector State" msgstr "" +#: ../../c-api/gcsupport.rst:276 msgid "" "The C-API provides the following functions for controlling garbage " "collection runs." msgstr "" +#: ../../c-api/gcsupport.rst:281 msgid "" "Perform a full garbage collection, if the garbage collector is enabled. " "(Note that :func:`gc.collect` runs it unconditionally.)" msgstr "" +#: ../../c-api/gcsupport.rst:284 msgid "" "Returns the number of collected + unreachable objects which cannot be " "collected. If the garbage collector is disabled or already collecting, " @@ -328,45 +394,54 @@ msgid "" "data:`sys.unraisablehook`. This function does not raise exceptions." msgstr "" +#: ../../c-api/gcsupport.rst:294 msgid "" "Enable the garbage collector: similar to :func:`gc.enable`. Returns the " "previous state, 0 for disabled and 1 for enabled." msgstr "" +#: ../../c-api/gcsupport.rst:302 msgid "" "Disable the garbage collector: similar to :func:`gc.disable`. Returns the " "previous state, 0 for disabled and 1 for enabled." msgstr "" +#: ../../c-api/gcsupport.rst:310 msgid "" "Query the state of the garbage collector: similar to :func:`gc.isenabled`. " "Returns the current state, 0 for disabled and 1 for enabled." msgstr "" +#: ../../c-api/gcsupport.rst:317 msgid "Querying Garbage Collector State" msgstr "" +#: ../../c-api/gcsupport.rst:319 msgid "" "The C-API provides the following interface for querying information about " "the garbage collector." msgstr "" +#: ../../c-api/gcsupport.rst:324 msgid "" "Run supplied *callback* on all live GC-capable objects. *arg* is passed " "through to all invocations of *callback*." msgstr "" +#: ../../c-api/gcsupport.rst:328 msgid "" "If new objects are (de)allocated by the callback it is undefined if they " "will be visited." msgstr "" +#: ../../c-api/gcsupport.rst:331 msgid "" "Garbage collection is disabled during operation. Explicitly running a " "collection in the callback may lead to undefined behaviour e.g. visiting the " "same objects multiple times or not at all." msgstr "" +#: ../../c-api/gcsupport.rst:339 msgid "" "Type of the visitor function to be passed to :c:func:" "`PyUnstable_GC_VisitObjects`. *arg* is the same as the *arg* passed to " diff --git a/c-api/gen.po b/c-api/gen.po index f7b22f9..0417048 100644 --- a/c-api/gen.po +++ b/c-api/gen.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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, " @@ -27,31 +29,89 @@ msgid "" "`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``." +"reference to *frame* is \":term:`stolen `\" by this function (even on " +"error). 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``." +"to *frame* is \":term:`stolen `\" by this function (even on error). " +"The *frame* argument must not be ``NULL``." +msgstr "" + +#: ../../c-api/gen.rst:51 +msgid "" +"Return a new :term:`strong reference` to the code object wrapped by *gen*. " +"This function always succeeds." +msgstr "" + +#: ../../c-api/gen.rst:56 +msgid "Asynchronous Generator Objects" +msgstr "" + +#: ../../c-api/gen.rst:59 +msgid ":pep:`525`" +msgstr "" + +#: ../../c-api/gen.rst:63 +msgid "" +"The type object corresponding to asynchronous generator objects. This is " +"available as :class:`types.AsyncGeneratorType` in the Python layer." +msgstr "" + +#: ../../c-api/gen.rst:70 +msgid "" +"Create a new asynchronous generator wrapping *frame*, with ``__name__`` and " +"``__qualname__`` set to *name* and *qualname*. *frame* is \":term:`stolen " +"`\" by this function (even on error) and must not be ``NULL``." +msgstr "" + +#: ../../c-api/gen.rst:75 +msgid "" +"On success, this function returns a :term:`strong reference` to the new " +"asynchronous generator. On failure, this function returns ``NULL`` with an " +"exception set." +msgstr "" + +#: ../../c-api/gen.rst:83 +msgid "" +"Return true if *op* is an asynchronous generator object, false otherwise. " +"This function always succeeds." +msgstr "" + +#: ../../c-api/gen.rst:90 +msgid "Deprecated API" +msgstr "" + +#: ../../c-api/gen.rst:94 +msgid "This is an API that was included in Python's C API by mistake." +msgstr "" + +#: ../../c-api/gen.rst:97 +msgid "It is solely here for completeness; do not use this API." msgstr "" diff --git a/c-api/hash.po b/c-api/hash.po index 9f1a2f7..00f3997 100644 --- a/c-api/hash.po +++ b/c-api/hash.po @@ -8,74 +8,168 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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:17 msgid "Hash value type: unsigned integer." msgstr "" +#: ../../c-api/hash.rst:24 +msgid "" +"A numerical value indicating the algorithm for hashing of :class:`str`, :" +"class:`bytes`, and :class:`memoryview`." +msgstr "" + +#: ../../c-api/hash.rst:27 +msgid "The algorithm name is exposed by :data:`sys.hash_info.algorithm`." +msgstr "" + +#: ../../c-api/hash.rst:36 +msgid "" +"Numerical values to compare to :c:macro:`Py_HASH_ALGORITHM` to determine " +"which algorithm is used for hashing. The hash algorithm can be configured " +"via the configure :option:`--with-hash-algorithm` option." +msgstr "" + +#: ../../c-api/hash.rst:40 +msgid "Add :c:macro:`!Py_HASH_FNV` and :c:macro:`!Py_HASH_SIPHASH24`." +msgstr "" + +#: ../../c-api/hash.rst:43 +msgid "Add :c:macro:`!Py_HASH_SIPHASH13`." +msgstr "" + +#: ../../c-api/hash.rst:49 +msgid "" +"Buffers of length in range ``[1, Py_HASH_CUTOFF)`` are hashed using DJBX33A " +"instead of the algorithm described by :c:macro:`Py_HASH_ALGORITHM`." +msgstr "" + +#: ../../c-api/hash.rst:52 +msgid "A :c:macro:`!Py_HASH_CUTOFF` of 0 disables the optimization." +msgstr "" + +#: ../../c-api/hash.rst:53 +msgid "" +":c:macro:`!Py_HASH_CUTOFF` must be non-negative and less or equal than 7." +msgstr "" + +#: ../../c-api/hash.rst:55 +msgid "" +"32-bit platforms should use a cutoff smaller than 64-bit platforms because " +"it is easier to create colliding strings. A cutoff of 7 on 64-bit platforms " +"and 5 on 32-bit platforms should provide a decent safety margin." +msgstr "" + +#: ../../c-api/hash.rst:59 +msgid "This corresponds to the :data:`sys.hash_info.cutoff` constant." +msgstr "" + +#: ../../c-api/hash.rst:66 msgid "" "The `Mersenne prime `_ ``P = " "2**n -1``, used for numeric hash scheme." msgstr "" +#: ../../c-api/hash.rst:69 +msgid "This corresponds to the :data:`sys.hash_info.modulus` constant." +msgstr "" + +#: ../../c-api/hash.rst:76 msgid "The exponent ``n`` of ``P`` in :c:macro:`PyHASH_MODULUS`." msgstr "" +#: ../../c-api/hash.rst:83 msgid "Prime multiplier used in string and various other hashes." msgstr "" +#: ../../c-api/hash.rst:90 msgid "The hash value returned for a positive infinity." msgstr "" +#: ../../c-api/hash.rst:92 +msgid "This corresponds to the :data:`sys.hash_info.inf` constant." +msgstr "" + +#: ../../c-api/hash.rst:99 msgid "The multiplier used for the imaginary part of a complex number." msgstr "" +#: ../../c-api/hash.rst:101 +msgid "This corresponds to the :data:`sys.hash_info.imag` constant." +msgstr "" + +#: ../../c-api/hash.rst:108 msgid "Hash function definition used by :c:func:`PyHash_GetFuncDef`." msgstr "" +#: ../../c-api/hash.rst:112 msgid "Hash function." msgstr "" +#: ../../c-api/hash.rst:116 msgid "Hash function name (UTF-8 encoded string)." msgstr "" +#: ../../c-api/hash.rst:118 +msgid "This corresponds to the :data:`sys.hash_info.algorithm` constant." +msgstr "" + +#: ../../c-api/hash.rst:122 msgid "Internal size of the hash value in bits." msgstr "" +#: ../../c-api/hash.rst:124 +msgid "This corresponds to the :data:`sys.hash_info.hash_bits` constant." +msgstr "" + +#: ../../c-api/hash.rst:128 msgid "Size of seed input in bits." msgstr "" +#: ../../c-api/hash.rst:130 +msgid "This corresponds to the :data:`sys.hash_info.seed_bits` constant." +msgstr "" + +#: ../../c-api/hash.rst:137 msgid "Get the hash function definition." msgstr "" +#: ../../c-api/hash.rst:140 msgid ":pep:`456` \"Secure and interchangeable hash algorithm\"." msgstr "" +#: ../../c-api/hash.rst:147 msgid "" "Hash a pointer value: process the pointer value as an integer (cast it to " "``uintptr_t`` internally). The pointer is not dereferenced." msgstr "" +#: ../../c-api/hash.rst:150 msgid "The function cannot fail: it cannot return ``-1``." msgstr "" +#: ../../c-api/hash.rst:157 msgid "" "Compute and return the hash value of a buffer of *len* bytes starting at " "address *ptr*. The hash is guaranteed to match that of :class:`bytes`, :" @@ -83,21 +177,26 @@ msgid "" "`buffer protocol `." msgstr "" +#: ../../c-api/hash.rst:162 msgid "" "Use this function to implement hashing for immutable objects whose :c:member:" "`~PyTypeObject.tp_richcompare` function compares to another object's buffer." msgstr "" +#: ../../c-api/hash.rst:166 msgid "*len* must be greater than or equal to ``0``." msgstr "" +#: ../../c-api/hash.rst:168 msgid "This function always succeeds." msgstr "" +#: ../../c-api/hash.rst:175 msgid "" "Generic hashing function that is meant to be put into a type object's " "``tp_hash`` slot. Its result only depends on the object's identity." msgstr "" +#: ../../c-api/hash.rst:180 msgid "In CPython, it is equivalent to :c:func:`Py_HashPointer`." msgstr "" diff --git a/c-api/import.po b/c-api/import.po index 0adcef7..234e7c6 100644 --- a/c-api/import.po +++ b/c-api/import.po @@ -8,26 +8,30 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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-" @@ -35,14 +39,17 @@ msgid "" "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:" @@ -50,25 +57,30 @@ msgid "" "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 " @@ -77,31 +89,38 @@ msgid "" "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:" @@ -110,16 +129,19 @@ msgid "" "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 " @@ -133,6 +155,7 @@ msgid "" "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 " @@ -140,51 +163,61 @@ msgid "" "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 " @@ -192,40 +225,48 @@ msgid "" "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` " @@ -236,6 +277,7 @@ msgid "" "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 " @@ -244,14 +286,17 @@ msgid "" "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 " @@ -259,6 +304,7 @@ msgid "" "h`, is::" msgstr "" +#: ../../c-api/import.rst:270 msgid "" "struct _frozen {\n" " const char *name;\n" @@ -268,11 +314,13 @@ msgid "" "};" 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 " @@ -281,6 +329,7 @@ msgid "" "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 " @@ -290,6 +339,7 @@ msgid "" "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 " @@ -297,12 +347,15 @@ msgid "" "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:" @@ -313,18 +366,29 @@ msgid "" "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 "" +"The table of built-in modules used by Python initialization. Do not use this " +"directly; use :c:func:`PyImport_AppendInittab` and :c:func:" +"`PyImport_ExtendInittab` instead." +msgstr "" + +#: ../../c-api/import.rst:339 msgid "Import the module *mod_name* and get its attribute *attr_name*." msgstr "" +#: ../../c-api/import.rst:341 msgid "Names must be Python :class:`str` objects." msgstr "" +#: ../../c-api/import.rst:343 msgid "" "Helper function combining :c:func:`PyImport_Import` and :c:func:" "`PyObject_GetAttr`. For example, it can raise :exc:`ImportError` if the " @@ -332,31 +396,40 @@ msgid "" "exist." msgstr "" +#: ../../c-api/import.rst:352 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 index 7596304..feb88f3 100644 --- a/c-api/index.po +++ b/c-api/index.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -msgid "Python/C API Reference Manual" +#: ../../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:" diff --git a/c-api/init.po b/c-api/init.po index 002d528..56a2b9b 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -11,2799 +11,47 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -msgid "Initialization, Finalization, and Threads" -msgstr "" - -msgid "" -"See :ref:`Python Initialization Configuration ` for details on " -"how to configure the interpreter prior to initialization." -msgstr "" - -msgid "Before Python Initialization" -msgstr "" - -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 "" - -msgid "" -"The following functions can be safely called before Python is initialized:" -msgstr "" - -msgid "Functions that initialize the interpreter:" -msgstr "" - -msgid ":c:func:`Py_Initialize`" -msgstr "" - -msgid ":c:func:`Py_InitializeEx`" -msgstr "" - -msgid ":c:func:`Py_InitializeFromConfig`" -msgstr "" - -msgid ":c:func:`Py_BytesMain`" -msgstr "" - -msgid ":c:func:`Py_Main`" -msgstr "" - -msgid "the runtime pre-initialization functions covered in :ref:`init-config`" -msgstr "" - -msgid "Configuration functions:" -msgstr "" - -msgid ":c:func:`PyImport_AppendInittab`" -msgstr "" - -msgid ":c:func:`PyImport_ExtendInittab`" -msgstr "" - -msgid ":c:func:`!PyInitFrozenExtensions`" -msgstr "" - -msgid ":c:func:`PyMem_SetAllocator`" -msgstr "" - -msgid ":c:func:`PyMem_SetupDebugHooks`" -msgstr "" - -msgid ":c:func:`PyObject_SetArenaAllocator`" -msgstr "" - -msgid ":c:func:`Py_SetProgramName`" -msgstr "" - -msgid ":c:func:`Py_SetPythonHome`" -msgstr "" - -msgid ":c:func:`PySys_ResetWarnOptions`" -msgstr "" - -msgid "the configuration functions covered in :ref:`init-config`" -msgstr "" - -msgid "Informative functions:" -msgstr "" - -msgid ":c:func:`Py_IsInitialized`" -msgstr "" - -msgid ":c:func:`PyMem_GetAllocator`" -msgstr "" - -msgid ":c:func:`PyObject_GetArenaAllocator`" -msgstr "" - -msgid ":c:func:`Py_GetBuildInfo`" -msgstr "" - -msgid ":c:func:`Py_GetCompiler`" -msgstr "" - -msgid ":c:func:`Py_GetCopyright`" -msgstr "" - -msgid ":c:func:`Py_GetPlatform`" -msgstr "" - -msgid ":c:func:`Py_GetVersion`" -msgstr "" - -msgid "Utilities:" -msgstr "" - -msgid ":c:func:`Py_DecodeLocale`" -msgstr "" - -msgid "" -"the status reporting and utility functions covered in :ref:`init-config`" -msgstr "" - -msgid "Memory allocators:" -msgstr "" - -msgid ":c:func:`PyMem_RawMalloc`" -msgstr "" - -msgid ":c:func:`PyMem_RawRealloc`" -msgstr "" - -msgid ":c:func:`PyMem_RawCalloc`" -msgstr "" - -msgid ":c:func:`PyMem_RawFree`" -msgstr "" - -msgid "Synchronization:" -msgstr "" - -msgid ":c:func:`PyMutex_Lock`" -msgstr "" - -msgid ":c:func:`PyMutex_Unlock`" -msgstr "" - -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 "" - -msgid "Global configuration variables" -msgstr "" - -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 "" - -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 "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"bytes_warning` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -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 "" - -msgid "Set by the :option:`-b` option." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"parser_debug` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -msgid "" -"Turn on parser debugging output (for expert only, depending on compilation " -"options)." -msgstr "" - -msgid "" -"Set by the :option:`-d` option and the :envvar:`PYTHONDEBUG` environment " -"variable." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"write_bytecode` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -msgid "" -"If set to non-zero, Python won't try to write ``.pyc`` files on the import " -"of source modules." -msgstr "" - -msgid "" -"Set by the :option:`-B` option and the :envvar:`PYTHONDONTWRITEBYTECODE` " -"environment variable." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"pathconfig_warnings` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -msgid "" -"Suppress error messages when calculating the module search path in :c:func:" -"`Py_GetPath`." -msgstr "" - -msgid "Private flag used by ``_freeze_module`` and ``frozenmain`` programs." -msgstr "" - -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 "" - -msgid "" -"Set to ``1`` if the :envvar:`PYTHONHASHSEED` environment variable is set to " -"a non-empty string." -msgstr "" - -msgid "" -"If the flag is non-zero, read the :envvar:`PYTHONHASHSEED` environment " -"variable to initialize the secret hash seed." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"use_environment` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -msgid "" -"Ignore all :envvar:`!PYTHON*` environment variables, e.g. :envvar:" -"`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." -msgstr "" - -msgid "Set by the :option:`-E` and :option:`-I` options." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"inspect` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -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 "" - -msgid "" -"Set by the :option:`-i` option and the :envvar:`PYTHONINSPECT` environment " -"variable." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"interactive` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -msgid "Set by the :option:`-i` option." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"isolated` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -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 "" - -msgid "Set by the :option:`-I` option." -msgstr "" - -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 "" - -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 "" - -msgid "" -"Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " -"variable is set to a non-empty string." -msgstr "" - -msgid "See :pep:`529` for more details." -msgstr "" - -msgid "Availability" -msgstr "" - -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 "" - -msgid "" -"If the flag is non-zero, use :class:`io.FileIO` instead of :class:`!io." -"_WindowsConsoleIO` for :mod:`sys` standard streams." -msgstr "" - -msgid "" -"Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " -"is set to a non-empty string." -msgstr "" - -msgid "See :pep:`528` for more details." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"site_import` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -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 "" - -msgid "Set by the :option:`-S` option." -msgstr "" - -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 "" - -msgid "" -"Don't add the :data:`user site-packages directory ` to :data:" -"`sys.path`." -msgstr "" - -msgid "" -"Set by the :option:`-s` and :option:`-I` options, and the :envvar:" -"`PYTHONNOUSERSITE` environment variable." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"optimization_level` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -msgid "" -"Set by the :option:`-O` option and the :envvar:`PYTHONOPTIMIZE` environment " -"variable." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"quiet` should be used instead, see :ref:`Python Initialization Configuration " -"`." +#: ../../c-api/init.rst:4 +msgid "Initialization, finalization, and threads" msgstr "" -msgid "" -"Don't display the copyright and version messages even in interactive mode." -msgstr "" - -msgid "Set by the :option:`-q` option." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"buffered_stdio` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -msgid "Force the stdout and stderr streams to be unbuffered." -msgstr "" - -msgid "" -"Set by the :option:`-u` option and the :envvar:`PYTHONUNBUFFERED` " -"environment variable." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"verbose` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -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 "" - -msgid "" -"Set by the :option:`-v` option and the :envvar:`PYTHONVERBOSE` environment " -"variable." -msgstr "" - -msgid "Initializing and finalizing the interpreter" -msgstr "" - -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." +#: ../../c-api/init.rst:6 +msgid "This page has been split up into the following:" msgstr "" -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." +#: ../../c-api/init.rst:8 +msgid ":ref:`initialization`" msgstr "" -msgid "" -"Use :c:func:`Py_InitializeFromConfig` to customize the :ref:`Python " -"Initialization Configuration `." +#: ../../c-api/init.rst:9 +msgid ":ref:`threads`" msgstr "" -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." +#: ../../c-api/init.rst:10 +msgid ":ref:`synchronization`" msgstr "" -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." +#: ../../c-api/init.rst:11 +msgid ":ref:`thread-local-storage`" msgstr "" -msgid "" -"Initialize Python from *config* configuration, as described in :ref:`init-" -"from-config`." +#: ../../c-api/init.rst:12 +msgid ":ref:`sub-interpreter-support`" msgstr "" -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." +#: ../../c-api/init.rst:13 +msgid ":ref:`profiling`" msgstr "" -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 "" - -msgid "" -"Return true (non-zero) if the main Python interpreter is :term:`shutting " -"down `. Return false (zero) otherwise." -msgstr "" - -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 "" - -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 "" - -msgid "" -"Normally the return value is ``0``. If there were errors during finalization " -"(flushing buffered data), ``-1`` is returned." -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "" -"Raises an :ref:`auditing event ` ``cpython." -"_PySys_ClearAuditHooks`` with no arguments." -msgstr "" - -msgid "" -"This is a backwards-compatible version of :c:func:`Py_FinalizeEx` that " -"disregards the return value." -msgstr "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -msgid "Executes the main module in a fully configured CPython runtime." -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "" -"This function always finalizes the Python interpreter before it returns." -msgstr "" - -msgid "" -"See :ref:`Python Configuration ` for an example of a " -"customized Python that always runs in isolated mode using :c:func:" -"`Py_RunMain`." -msgstr "" - -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 "" - -msgid "There must be an :term:`attached thread state` for *interp*." -msgstr "" - -msgid "Process-wide parameters" -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"program_name` should be used instead, see :ref:`Python Initialization " -"Configuration `." -msgstr "" - -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 "" - -msgid "" -"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:expr:" -"`wchar_t*` string." -msgstr "" - -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 "" - -msgid "" -"This function should not be called before :c:func:`Py_Initialize`, otherwise " -"it returns ``NULL``." -msgstr "" - -msgid "It now returns ``NULL`` if called before :c:func:`Py_Initialize`." -msgstr "" - -msgid "" -"Use :c:func:`PyConfig_Get(\"executable\") ` (:data:`sys." -"executable`) instead." -msgstr "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -msgid "" -"Use :c:func:`PyConfig_Get(\"module_search_paths\") ` (:data:" -"`sys.path`) instead." -msgstr "" - -msgid "" -"Return the version of this Python interpreter. This is a string that looks " -"something like ::" -msgstr "" - -msgid "\"3.0a5+ (py3k:63103M, May 12 2008, 00:53:55) \\n[GCC 4.2.3]\"" -msgstr "" - -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 "" - -msgid "See also the :c:var:`Py_Version` constant." -msgstr "" - -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 "" - -msgid "" -"Return the official copyright string for the current Python version, for " -"example" -msgstr "" - -msgid "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" -msgstr "" - -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 "" - -msgid "" -"Return an indication of the compiler used to build the current Python " -"version, in square brackets, for example::" -msgstr "" - -msgid "\"[GCC 2.7.2.2]\"" -msgstr "" - -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 "" - -msgid "" -"Return information about the sequence number and build date and time of the " -"current Python interpreter instance, for example ::" -msgstr "" - -msgid "\"#67, Aug 1 1997, 22:34:28\"" -msgstr "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -msgid "" -"See also :c:member:`PyConfig.orig_argv` and :c:member:`PyConfig.argv` " -"members of the :ref:`Python Initialization Configuration `." -msgstr "" - -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 "" - -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 "" - -msgid "PyRun_SimpleString(\"import sys; sys.path.pop(0)\\n\");" -msgstr "" - -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 "" - -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 "" - -msgid "The *updatepath* value depends on :option:`-I`." -msgstr "" - -msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"home` should be used instead, see :ref:`Python Initialization Configuration " -"`." -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "" -"Use :c:func:`PyConfig_Get(\"home\") ` or the :envvar:" -"`PYTHONHOME` environment variable instead." -msgstr "" - -msgid "Thread State and the Global Interpreter Lock" -msgstr "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -msgid "Detaching the thread state from extension code" -msgstr "" - -msgid "" -"Most extension code manipulating the :term:`thread state` has the following " -"simple structure::" -msgstr "" - -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 "" - -msgid "This is so common that a pair of macros exists to simplify it::" -msgstr "" - -msgid "" -"Py_BEGIN_ALLOW_THREADS\n" -"... Do some blocking I/O operation ...\n" -"Py_END_ALLOW_THREADS" -msgstr "" - -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 "" - -msgid "The block above expands to the following code::" -msgstr "" - -msgid "" -"PyThreadState *_save;\n" -"\n" -"_save = PyEval_SaveThread();\n" -"... Do some blocking I/O operation ...\n" -"PyEval_RestoreThread(_save);" -msgstr "" - -msgid "Here is how these functions work:" -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "Non-Python created threads" -msgstr "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -msgid "Supporting subinterpreters in non-Python threads" -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "Cautions about fork()" -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "Cautions regarding runtime finalization" -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "High-level API" -msgstr "" - -msgid "" -"These are the most commonly used types and functions when writing C " -"extension code, or when embedding the Python interpreter:" -msgstr "" - -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 "" - -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 "" - -msgid "" -":pep:`684` introduced the possibility of a :ref:`per-interpreter GIL `. See :c:func:`Py_NewInterpreterFromConfig`." -msgstr "" - -msgid "" -"This data structure represents the state of a single thread. The only " -"public data member is:" -msgstr "" - -msgid "This thread's interpreter state." -msgstr "" - -msgid "Deprecated function which does nothing." -msgstr "" - -msgid "" -"In Python 3.6 and older, this function created the GIL if it didn't exist." -msgstr "" - -msgid "The function now does nothing." -msgstr "" - -msgid "" -"This function is now called by :c:func:`Py_Initialize()`, so you don't have " -"to call it yourself anymore." -msgstr "" - -msgid "" -"This function cannot be called before :c:func:`Py_Initialize()` anymore." -msgstr "" - -msgid "" -"Detach the :term:`attached thread state` and return it. The thread will have " -"no :term:`thread state` upon returning." -msgstr "" - -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 "" - -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 "" - -msgid "" -"Hangs the current thread, rather than terminating it, if called while the " -"interpreter is finalizing." -msgstr "" - -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 "" - -msgid "See also :c:func:`PyThreadState_GetUnchecked`." -msgstr "" - -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 "" - -msgid "" -"In Python 3.5 to 3.12, the function was private and known as " -"``_PyThreadState_UncheckedGet()``." -msgstr "" - -msgid "" -"Set the :term:`attached thread state` to *tstate*, and return the :term:" -"`thread state` that was attached prior to calling." -msgstr "" - -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 "" - -msgid ":c:func:`PyEval_ReleaseThread`" -msgstr "" - -msgid "" -"Similar to :c:func:`PyGILState_Ensure`, this function will hang the thread " -"if the runtime is finalizing." -msgstr "" - -msgid "" -"The following functions use thread-local storage, and are not compatible " -"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`. " -"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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -msgid "" -"Every call to :c:func:`PyGILState_Ensure` must be matched by a call to :c:" -"func:`PyGILState_Release` on the same thread." -msgstr "" - -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 "" - -msgid "" -"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 " -"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 "" - -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 "" - -msgid "" -"The following macros are normally used without a trailing semicolon; look " -"for example usage in the Python source distribution." -msgstr "" - -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 "" - -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 "" - -msgid "" -"This macro expands to ``PyEval_RestoreThread(_save);``: it is equivalent to :" -"c:macro:`Py_END_ALLOW_THREADS` without the closing brace." -msgstr "" - -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 "" - -msgid "Low-level API" -msgstr "" - -msgid "" -"All of the following functions must be called after :c:func:`Py_Initialize`." -msgstr "" - -msgid "" -":c:func:`Py_Initialize()` now initializes the :term:`GIL` and sets an :term:" -"`attached thread state`." -msgstr "" - -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 "" - -msgid "" -"Raises an :ref:`auditing event ` ``cpython." -"PyInterpreterState_New`` with no arguments." -msgstr "" - -msgid "" -"Reset all information in an interpreter state object. There must be an :" -"term:`attached thread state` for the interpreter." -msgstr "" - -msgid "" -"Raises an :ref:`auditing event ` ``cpython." -"PyInterpreterState_Clear`` with no arguments." -msgstr "" - -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 "" - -msgid "" -"Create a new thread state object belonging to the given interpreter object. " -"An :term:`attached thread state` is not needed." -msgstr "" - -msgid "" -"Reset all information in a :term:`thread state` object. *tstate* must be :" -"term:`attached `" -msgstr "" - -msgid "" -"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." -msgstr "" - -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 "" - -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 "" - -msgid "" -"No :term:`thread state` will be :term:`attached ` " -"upon returning." -msgstr "" - -msgid "Get the current frame of the Python thread state *tstate*." -msgstr "" - -msgid "" -"Return a :term:`strong reference`. Return ``NULL`` if no frame is currently " -"executing." -msgstr "" - -msgid "See also :c:func:`PyEval_GetFrame`." -msgstr "" - -msgid "" -"*tstate* must not be ``NULL``, and must be :term:`attached `." -msgstr "" - -msgid "" -"Get the unique :term:`thread state` identifier of the Python thread state " -"*tstate*." -msgstr "" - -msgid "Get the interpreter of the Python thread state *tstate*." -msgstr "" - -msgid "Suspend tracing and profiling in the Python thread state *tstate*." -msgstr "" - -msgid "Resume them using the :c:func:`PyThreadState_LeaveTracing` function." -msgstr "" - -msgid "" -"Resume tracing and profiling in the Python thread state *tstate* suspended " -"by the :c:func:`PyThreadState_EnterTracing` function." -msgstr "" - -msgid "" -"See also :c:func:`PyEval_SetTrace` and :c:func:`PyEval_SetProfile` functions." -msgstr "" - -msgid "Get the current interpreter." -msgstr "" - -msgid "" -"Issue a fatal error if there no :term:`attached thread state`. It cannot " -"return NULL." -msgstr "" - -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 "" - -msgid "The caller must have an :term:`attached thread state`." -msgstr "" - -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 "" - -msgid "" -"This is not a replacement for :c:func:`PyModule_GetState()`, which " -"extensions should use to store interpreter-specific state information." -msgstr "" - -msgid "" -"The returned dictionary is borrowed from the interpreter and is valid until " -"interpreter shutdown." -msgstr "" - -msgid "Type of a frame evaluation function." -msgstr "" - -msgid "" -"The *throwflag* parameter is used by the ``throw()`` method of generators: " -"if non-zero, handle the current exception." -msgstr "" - -msgid "The function now takes a *tstate* parameter." -msgstr "" - -msgid "" -"The *frame* parameter changed from ``PyFrameObject*`` to " -"``_PyInterpreterFrame*``." -msgstr "" - -msgid "Get the frame evaluation function." -msgstr "" - -msgid "See the :pep:`523` \"Adding a frame evaluation API to CPython\"." -msgstr "" - -msgid "Set the frame evaluation function." -msgstr "" - -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 "" - -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 "" - -msgid "" -"The type of the *id* parameter changed from :c:expr:`long` to :c:expr:" -"`unsigned long`." -msgstr "" - -msgid "" -":term:`Attach ` *tstate* to the current thread, which " -"must not be ``NULL`` or already :term:`attached `." -msgstr "" - -msgid "" -"The calling thread must not already have an :term:`attached thread state`." -msgstr "" - -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 "" - -msgid "" -":c:func:`PyEval_RestoreThread` is a higher-level function which is always " -"available (even when threads have not been initialized)." -msgstr "" - -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 "" - -msgid "" -":c:func:`PyEval_SaveThread` is a higher-level function which is always " -"available (even when threads have not been initialized)." -msgstr "" - -msgid "Sub-interpreter support" -msgstr "" - -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 "" - -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 "" - -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 "" - -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 "" - -msgid "Structure fields:" -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "" -"Note that the :mod:`subprocess` module still works when fork is disallowed." -msgstr "" - -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 "" - -msgid "" -"Note that the :mod:`subprocess` module still works when exec is disallowed." -msgstr "" - -msgid "" -"If this is ``0`` then the sub-interpreter's :mod:`threading` module won't " -"create threads. Otherwise threads are allowed." -msgstr "" - -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 "" - -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 "" - -msgid "" -"This must be ``1`` (non-zero) if :c:member:`~PyInterpreterConfig." -"use_main_obmalloc` is ``0``." -msgstr "" - -msgid "" -"This determines the operation of the GIL for the sub-interpreter. It may be " -"one of the following:" -msgstr "" - -msgid "Use the default selection (:c:macro:`PyInterpreterConfig_SHARED_GIL`)." -msgstr "" - -msgid "Use (share) the main interpreter's GIL." -msgstr "" - -msgid "Use the sub-interpreter's own GIL." -msgstr "" - -msgid "" -"If this is :c:macro:`PyInterpreterConfig_OWN_GIL` then :c:member:" -"`PyInterpreterConfig.use_main_obmalloc` must be ``0``." -msgstr "" - -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 "" - -msgid "" -"The given *config* controls the options with which the interpreter is " -"initialized." -msgstr "" - -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 "" - -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 "" - -msgid "" -"Sub-interpreters are most effective when isolated from each other, with " -"certain functionality restricted::" -msgstr "" - -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 "" - -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 "" - -msgid "Extension modules are shared between (sub-)interpreters as follows:" -msgstr "" - -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 "" - -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 "" - -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 "" - -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 "" - -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 "" - -msgid "" -":c:func:`Py_FinalizeEx` will destroy all sub-interpreters that haven't been " -"explicitly destroyed at that point." -msgstr "" - -msgid "A Per-Interpreter GIL" -msgstr "" - -msgid "" -"Using :c:func:`Py_NewInterpreterFromConfig` you can create a sub-interpreter " -"that is completely isolated from other interpreters, including having its " -"own GIL. The most important benefit of this isolation is that such an " -"interpreter can execute Python code without being blocked by other " -"interpreters or blocking any others. Thus a single Python process can truly " -"take advantage of multiple CPU cores when running Python code. The " -"isolation also encourages a different approach to concurrency than that of " -"just using threads. (See :pep:`554` and :pep:`684`.)" -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "Bugs and caveats" -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "Asynchronous Notifications" -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "on a :term:`bytecode` boundary;" -msgstr "" - -msgid "" -"with the main thread holding an :term:`attached thread state` (*func* can " -"therefore use the full C API)." -msgstr "" - -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 "" - -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 "" - -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 "" - -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 "" - -msgid "" -"This function now always schedules *func* to be run in the main interpreter." -msgstr "" - -msgid "Profiling and Tracing" -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "Value of *what*" -msgstr "" - -msgid "Meaning of *arg*" -msgstr "" - -msgid ":c:data:`PyTrace_CALL`" -msgstr "" - -msgid "Always :c:data:`Py_None`." -msgstr "" - -msgid ":c:data:`PyTrace_EXCEPTION`" -msgstr "" - -msgid "Exception information as returned by :func:`sys.exc_info`." -msgstr "" - -msgid ":c:data:`PyTrace_LINE`" -msgstr "" - -msgid ":c:data:`PyTrace_RETURN`" -msgstr "" - -msgid "" -"Value being returned to the caller, or ``NULL`` if caused by an exception." -msgstr "" - -msgid ":c:data:`PyTrace_C_CALL`" -msgstr "" - -msgid "Function object being called." -msgstr "" - -msgid ":c:data:`PyTrace_C_EXCEPTION`" -msgstr "" - -msgid ":c:data:`PyTrace_C_RETURN`" -msgstr "" - -msgid ":c:data:`PyTrace_OPCODE`" -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "" -"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " -"a call is about to return." -msgstr "" - -msgid "" -"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " -"a C function is about to be called." -msgstr "" - -msgid "" -"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " -"a C function has raised an exception." -msgstr "" - -msgid "" -"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " -"a C function has returned." -msgstr "" - -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 "" - -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 "" - -msgid "See also the :func:`sys.setprofile` function." -msgstr "" - -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 "" - -msgid "" -"As :c:func:`PyEval_SetProfile`, this function ignores any exceptions raised " -"while setting the profile functions in all threads." -msgstr "" - -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 "" - -msgid "See also the :func:`sys.settrace` function." -msgstr "" - -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 "" - -msgid "" -"As :c:func:`PyEval_SetTrace`, this function ignores any exceptions raised " -"while setting the trace functions in all threads." -msgstr "" - -msgid "Reference tracing" -msgstr "" - -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 "" - -msgid "" -"The value for the *event* parameter to :c:type:`PyRefTracer` functions when " -"a Python object has been created." -msgstr "" - -msgid "" -"The value for the *event* parameter to :c:type:`PyRefTracer` functions when " -"a Python object has been destroyed." -msgstr "" - -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 "" - -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 "" - -msgid "" -"There must be an :term:`attached thread state` when calling this function." -msgstr "" - -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 "" - -msgid "Advanced Debugger Support" -msgstr "" - -msgid "" -"These functions are only intended to be used by advanced debugging tools." -msgstr "" - -msgid "" -"Return the interpreter state object at the head of the list of all such " -"objects." -msgstr "" - -msgid "Return the main interpreter state object." -msgstr "" - -msgid "" -"Return the next interpreter state object after *interp* from the list of all " -"such objects." -msgstr "" - -msgid "" -"Return the pointer to the first :c:type:`PyThreadState` object in the list " -"of threads associated with the interpreter *interp*." -msgstr "" - -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 "" - -msgid "Thread Local Storage Support" -msgstr "" - -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 "" - -msgid "" -"A :term:`thread state` does *not* need to be :term:`attached ` when calling these functions; they suppl their own locking." -msgstr "" - -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 "" - -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 "" - -msgid "Thread Specific Storage (TSS) API" -msgstr "" - -msgid "" -"TSS API is introduced to supersede the use of the existing TLS API within " -"the CPython interpreter. This API uses a new type :c:type:`Py_tss_t` " -"instead of :c:expr:`int` to represent thread keys." -msgstr "" - -msgid "\"A New C-API for Thread-Local Storage in CPython\" (:pep:`539`)" -msgstr "" - -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 "" - -msgid "" -"When :ref:`Py_LIMITED_API ` is not defined, static allocation of " -"this type by :c:macro:`Py_tss_NEEDS_INIT` is allowed." -msgstr "" - -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 "" - -msgid "Dynamic Allocation" -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "" -"A freed key becomes a dangling pointer. You should reset the key to ``NULL``." -msgstr "" - -msgid "Methods" -msgstr "" - -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 "" - -msgid "" -"Return a non-zero value if the given :c:type:`Py_tss_t` has been initialized " -"by :c:func:`PyThread_tss_create`." -msgstr "" - -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 "" - -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 "" - -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 "" - -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 "" - -msgid "Thread Local Storage (TLS) API" -msgstr "" - -msgid "" -"This API is superseded by :ref:`Thread Specific Storage (TSS) API `." -msgstr "" - -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 "" - -msgid "" -"Due to the compatibility problem noted above, this version of the API should " -"not be used in new code." -msgstr "" - -msgid "Synchronization Primitives" -msgstr "" - -msgid "The C-API provides a basic mutual exclusion lock." -msgstr "" - -msgid "" -"A mutual exclusion lock. The :c:type:`!PyMutex` should be initialized to " -"zero to represent the unlocked state. For example::" -msgstr "" - -msgid "PyMutex mutex = {0};" -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "" -"Unlock mutex *m*. The mutex must be locked --- otherwise, the function will " -"issue a fatal error." -msgstr "" - -msgid "Returns non-zero if the mutex *m* is currently locked, zero otherwise." -msgstr "" - -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 "" - -msgid "Python Critical Section API" -msgstr "" - -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 "" - -msgid "" -"Critical sections are intended to be used for custom types implemented in C-" -"API extensions. They should generally not be used with built-in types like :" -"class:`list` and :class:`dict` because their public C-APIs already use " -"critical sections internally, with the notable exception of :c:func:" -"`PyDict_Next`, which requires critical section to be acquired externally." -msgstr "" - -msgid "" -"Critical sections avoid deadlocks by implicitly suspending active critical " -"sections, hence, they do not provide exclusive access such as provided by " -"traditional locks like :c:type:`PyMutex`. When a critical section is " -"started, the per-object lock for the object is acquired. If the code " -"executed inside the critical section calls C-API functions then it can " -"suspend the critical section thereby releasing the per-object lock, so other " -"threads can acquire the per-object lock for the same object." -msgstr "" - -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 "" - -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 "" - -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 "" - -msgid "Example usage::" -msgstr "" - -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 "" - -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 "" - -msgid "" -"Acquires the per-object lock for the object *op* and begins a critical " -"section." -msgstr "" - -msgid "In the free-threaded build, this macro expands to::" -msgstr "" - -msgid "" -"{\n" -" PyCriticalSection _py_cs;\n" -" PyCriticalSection_Begin(&_py_cs, (PyObject*)(op))" -msgstr "" - -msgid "In the default build, this macro expands to ``{``." -msgstr "" - -msgid "Locks the mutex *m* and begins a critical section." -msgstr "" - -msgid "" -"{\n" -" PyCriticalSection _py_cs;\n" -" PyCriticalSection_BeginMutex(&_py_cs, m)" -msgstr "" - -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 "" - -msgid "On the default build, this macro expands to ``{``." -msgstr "" - -msgid "Ends the critical section and releases the per-object lock." -msgstr "" - -msgid "" -" PyCriticalSection_End(&_py_cs);\n" -"}" -msgstr "" - -msgid "In the default build, this macro expands to ``}``." -msgstr "" - -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 "" - -msgid "" -"{\n" -" PyCriticalSection2 _py_cs2;\n" -" PyCriticalSection2_Begin(&_py_cs2, (PyObject*)(a), (PyObject*)(b))" -msgstr "" - -msgid "Locks the mutexes *m1* and *m2* and begins a critical section." -msgstr "" - -msgid "" -"{\n" -" PyCriticalSection2 _py_cs2;\n" -" PyCriticalSection2_BeginMutex(&_py_cs2, m1, m2)" -msgstr "" - -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 "" - -msgid "Ends the critical section and releases the per-object locks." -msgstr "" - -msgid "" -" PyCriticalSection2_End(&_py_cs2);\n" -"}" -msgstr "" - -msgid "PyEval_InitThreads()" -msgstr "" - -msgid "modules (in module sys)" -msgstr "" - -msgid "path (in module sys)" -msgstr "" - -msgid "module" -msgstr "" - -msgid "builtins" -msgstr "" - -msgid "__main__" -msgstr "" - -msgid "sys" -msgstr "sys" - -msgid "search" -msgstr "" - -msgid "path" -msgstr "" - -msgid "Py_FinalizeEx (C function)" -msgstr "" - -msgid "Py_Initialize()" -msgstr "" - -msgid "main()" -msgstr "" - -msgid "Py_GetPath()" -msgstr "" - -msgid "executable (in module sys)" -msgstr "" - -msgid "version (in module sys)" -msgstr "" - -msgid "platform (in module sys)" -msgstr "" - -msgid "copyright (in module sys)" -msgstr "" - -msgid "Py_FatalError()" -msgstr "" - -msgid "argv (in module sys)" -msgstr "" - -msgid "global interpreter lock" -msgstr "" - -msgid "interpreter lock" -msgstr "" - -msgid "lock, interpreter" -msgstr "" - -msgid "setswitchinterval (in module sys)" -msgstr "" - -msgid "PyThreadState (C type)" -msgstr "" - -msgid "Py_BEGIN_ALLOW_THREADS (C macro)" -msgstr "" - -msgid "Py_END_ALLOW_THREADS (C macro)" -msgstr "" - -msgid "PyEval_RestoreThread (C function)" -msgstr "" - -msgid "PyEval_SaveThread (C function)" -msgstr "" - -msgid "PyEval_AcquireThread()" -msgstr "" - -msgid "PyEval_ReleaseThread()" -msgstr "" - -msgid "PyEval_SaveThread()" -msgstr "" - -msgid "PyEval_RestoreThread()" -msgstr "" - -msgid "_thread" -msgstr "" - -msgid "stdout (in module sys)" -msgstr "" - -msgid "stderr (in module sys)" -msgstr "" - -msgid "stdin (in module sys)" -msgstr "" - -msgid "Py_Initialize (C function)" -msgstr "" - -msgid "close (in module os)" -msgstr "" +#~ msgid "sys" +#~ msgstr "sys" diff --git a/c-api/init_config.po b/c-api/init_config.po index 5b37d1f..f6e3c21 100644 --- a/c-api/init_config.po +++ b/c-api/init_config.po @@ -8,44 +8,53 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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:654 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:657 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:664 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" @@ -82,128 +91,167 @@ msgid "" "}" 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 "" -msgid "An error message is an UTF-8 encoded string." +#: ../../c-api/init_config.rst:105 +msgid "An error message is a UTF-8 encoded string." msgstr "" +#: ../../c-api/init_config.rst:107 msgid "If *config* has an exit code, format the exit code as an error message." msgstr "" +#: ../../c-api/init_config.rst:110 msgid "" "The error message remains valid until another ``PyInitConfig`` function is " "called with *config*. The caller doesn't have to free the error message." msgstr "" +#: ../../c-api/init_config.rst:117 msgid "Get the *config* exit code." msgstr "" +#: ../../c-api/init_config.rst:119 msgid "Set *\\*exitcode* and return ``1`` if *config* has an exit code set." msgstr "" +#: ../../c-api/init_config.rst:120 msgid "Return ``0`` if *config* has no exit code set." msgstr "" +#: ../../c-api/init_config.rst:122 msgid "" "Only the ``Py_InitializeFromInitConfig()`` function can set an exit code if " "the ``parse_argv`` option is non-zero." msgstr "" +#: ../../c-api/init_config.rst:125 msgid "" "An exit code can be set when parsing the command line failed (exit code " "``2``) or when a command line option asks to display the command line help " "(exit code ``0``)." msgstr "" +#: ../../c-api/init_config.rst:131 msgid "Get Options" msgstr "" +#: ../../c-api/init_config.rst: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 " @@ -211,591 +259,853 @@ msgid "" "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 "" +#: ../../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 "" +#: ../../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 "" +#: ../../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 "" +#: ../../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 "" +#: ../../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 "" +#: ../../c-api/init_config.rst:280 msgid "``\"base_executable\"``" msgstr "" +#: ../../c-api/init_config.rst:281 msgid ":c:member:`base_executable `" msgstr "" +#: ../../c-api/init_config.rst:284 msgid "``\"base_prefix\"``" msgstr "" +#: ../../c-api/init_config.rst:285 msgid ":c:member:`base_prefix `" msgstr "" +#: ../../c-api/init_config.rst:288 msgid "``\"buffered_stdio\"``" msgstr "" +#: ../../c-api/init_config.rst:289 msgid ":c:member:`buffered_stdio `" msgstr "" +#: ../../c-api/init_config.rst: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 "" +#: ../../c-api/init_config.rst:292 msgid "``\"bytes_warning\"``" msgstr "" +#: ../../c-api/init_config.rst:293 msgid ":c:member:`bytes_warning `" msgstr "" +#: ../../c-api/init_config.rst:296 msgid "``\"check_hash_pycs_mode\"``" msgstr "" +#: ../../c-api/init_config.rst:297 msgid ":c:member:`check_hash_pycs_mode `" msgstr "" +#: ../../c-api/init_config.rst:300 msgid "``\"code_debug_ranges\"``" msgstr "" +#: ../../c-api/init_config.rst:301 msgid ":c:member:`code_debug_ranges `" msgstr "" +#: ../../c-api/init_config.rst:304 msgid "``\"coerce_c_locale\"``" msgstr "" +#: ../../c-api/init_config.rst:305 msgid ":c:member:`coerce_c_locale `" msgstr "" +#: ../../c-api/init_config.rst:308 msgid "``\"coerce_c_locale_warn\"``" msgstr "" +#: ../../c-api/init_config.rst:309 msgid ":c:member:`coerce_c_locale_warn `" msgstr "" +#: ../../c-api/init_config.rst:312 msgid "``\"configure_c_stdio\"``" msgstr "" +#: ../../c-api/init_config.rst:313 msgid ":c:member:`configure_c_stdio `" msgstr "" +#: ../../c-api/init_config.rst:316 msgid "``\"configure_locale\"``" msgstr "" +#: ../../c-api/init_config.rst:317 msgid ":c:member:`configure_locale `" msgstr "" +#: ../../c-api/init_config.rst:320 msgid "``\"cpu_count\"``" msgstr "" +#: ../../c-api/init_config.rst:321 msgid ":c:member:`cpu_count `" msgstr "" +#: ../../c-api/init_config.rst:324 msgid "``\"dev_mode\"``" msgstr "" +#: ../../c-api/init_config.rst:325 msgid ":c:member:`dev_mode `" msgstr "" +#: ../../c-api/init_config.rst:328 msgid "``\"dump_refs\"``" msgstr "" +#: ../../c-api/init_config.rst:329 msgid ":c:member:`dump_refs `" msgstr "" +#: ../../c-api/init_config.rst:332 msgid "``\"dump_refs_file\"``" msgstr "" +#: ../../c-api/init_config.rst:333 msgid ":c:member:`dump_refs_file `" msgstr "" +#: ../../c-api/init_config.rst:336 msgid "``\"exec_prefix\"``" msgstr "" +#: ../../c-api/init_config.rst:337 msgid ":c:member:`exec_prefix `" msgstr "" +#: ../../c-api/init_config.rst:340 msgid "``\"executable\"``" msgstr "" +#: ../../c-api/init_config.rst:341 msgid ":c:member:`executable `" msgstr "" +#: ../../c-api/init_config.rst:344 msgid "``\"faulthandler\"``" msgstr "" +#: ../../c-api/init_config.rst:345 msgid ":c:member:`faulthandler `" msgstr "" +#: ../../c-api/init_config.rst:348 msgid "``\"filesystem_encoding\"``" msgstr "" +#: ../../c-api/init_config.rst:349 msgid ":c:member:`filesystem_encoding `" msgstr "" +#: ../../c-api/init_config.rst:352 msgid "``\"filesystem_errors\"``" msgstr "" +#: ../../c-api/init_config.rst:353 msgid ":c:member:`filesystem_errors `" msgstr "" +#: ../../c-api/init_config.rst:356 msgid "``\"hash_seed\"``" msgstr "" +#: ../../c-api/init_config.rst:357 msgid ":c:member:`hash_seed `" msgstr "" +#: ../../c-api/init_config.rst:360 msgid "``\"home\"``" msgstr "" +#: ../../c-api/init_config.rst:361 msgid ":c:member:`home `" msgstr "" +#: ../../c-api/init_config.rst:364 msgid "``\"import_time\"``" msgstr "" +#: ../../c-api/init_config.rst:365 msgid ":c:member:`import_time `" msgstr "" +#: ../../c-api/init_config.rst:368 msgid "``\"inspect\"``" msgstr "" +#: ../../c-api/init_config.rst:369 msgid ":c:member:`inspect `" msgstr "" +#: ../../c-api/init_config.rst:372 msgid "``\"install_signal_handlers\"``" msgstr "" +#: ../../c-api/init_config.rst:373 msgid ":c:member:`install_signal_handlers `" msgstr "" +#: ../../c-api/init_config.rst:376 msgid "``\"int_max_str_digits\"``" msgstr "" +#: ../../c-api/init_config.rst:377 msgid ":c:member:`int_max_str_digits `" msgstr "" +#: ../../c-api/init_config.rst:380 msgid "``\"interactive\"``" msgstr "" +#: ../../c-api/init_config.rst:381 msgid ":c:member:`interactive `" msgstr "" +#: ../../c-api/init_config.rst:384 msgid "``\"isolated\"``" msgstr "" +#: ../../c-api/init_config.rst:385 msgid ":c:member:`isolated `" msgstr "" +#: ../../c-api/init_config.rst:388 msgid "``\"legacy_windows_fs_encoding\"``" msgstr "" +#: ../../c-api/init_config.rst:389 msgid "" ":c:member:`legacy_windows_fs_encoding `" msgstr "" +#: ../../c-api/init_config.rst:392 msgid "``\"legacy_windows_stdio\"``" msgstr "" +#: ../../c-api/init_config.rst:393 msgid ":c:member:`legacy_windows_stdio `" msgstr "" +#: ../../c-api/init_config.rst:396 msgid "``\"malloc_stats\"``" msgstr "" +#: ../../c-api/init_config.rst:397 msgid ":c:member:`malloc_stats `" msgstr "" +#: ../../c-api/init_config.rst:400 msgid "``\"module_search_paths\"``" msgstr "" +#: ../../c-api/init_config.rst:401 msgid ":c:member:`module_search_paths `" msgstr "" +#: ../../c-api/init_config.rst:404 msgid "``\"optimization_level\"``" msgstr "" +#: ../../c-api/init_config.rst:405 msgid ":c:member:`optimization_level `" msgstr "" +#: ../../c-api/init_config.rst:408 msgid "``\"orig_argv\"``" msgstr "" +#: ../../c-api/init_config.rst:409 msgid ":c:member:`orig_argv `" msgstr "" +#: ../../c-api/init_config.rst:412 msgid "``\"parse_argv\"``" msgstr "" +#: ../../c-api/init_config.rst:413 msgid ":c:member:`parse_argv `" msgstr "" +#: ../../c-api/init_config.rst:416 msgid "``\"parser_debug\"``" msgstr "" +#: ../../c-api/init_config.rst:417 msgid ":c:member:`parser_debug `" msgstr "" +#: ../../c-api/init_config.rst:420 msgid "``\"pathconfig_warnings\"``" msgstr "" +#: ../../c-api/init_config.rst:421 msgid ":c:member:`pathconfig_warnings `" msgstr "" +#: ../../c-api/init_config.rst:424 msgid "``\"perf_profiling\"``" msgstr "" +#: ../../c-api/init_config.rst:425 msgid ":c:member:`perf_profiling `" msgstr "" +#: ../../c-api/init_config.rst:428 msgid "``\"platlibdir\"``" msgstr "" +#: ../../c-api/init_config.rst:429 msgid ":c:member:`platlibdir `" msgstr "" +#: ../../c-api/init_config.rst:432 msgid "``\"prefix\"``" msgstr "" +#: ../../c-api/init_config.rst:433 msgid ":c:member:`prefix `" msgstr "" +#: ../../c-api/init_config.rst:436 msgid "``\"program_name\"``" msgstr "" +#: ../../c-api/init_config.rst:437 msgid ":c:member:`program_name `" msgstr "" +#: ../../c-api/init_config.rst:440 msgid "``\"pycache_prefix\"``" msgstr "" +#: ../../c-api/init_config.rst:441 msgid ":c:member:`pycache_prefix `" msgstr "" +#: ../../c-api/init_config.rst:444 msgid "``\"quiet\"``" msgstr "" +#: ../../c-api/init_config.rst:445 msgid ":c:member:`quiet `" msgstr "" +#: ../../c-api/init_config.rst:448 msgid "``\"run_command\"``" msgstr "" +#: ../../c-api/init_config.rst:449 msgid ":c:member:`run_command `" msgstr "" +#: ../../c-api/init_config.rst:452 msgid "``\"run_filename\"``" msgstr "" +#: ../../c-api/init_config.rst:453 msgid ":c:member:`run_filename `" msgstr "" +#: ../../c-api/init_config.rst:456 msgid "``\"run_module\"``" msgstr "" +#: ../../c-api/init_config.rst:457 msgid ":c:member:`run_module `" msgstr "" +#: ../../c-api/init_config.rst:460 msgid "``\"run_presite\"``" msgstr "" +#: ../../c-api/init_config.rst:461 msgid ":c:member:`run_presite `" msgstr "" +#: ../../c-api/init_config.rst:464 msgid "``\"safe_path\"``" msgstr "" +#: ../../c-api/init_config.rst:465 msgid ":c:member:`safe_path `" msgstr "" +#: ../../c-api/init_config.rst:468 msgid "``\"show_ref_count\"``" msgstr "" +#: ../../c-api/init_config.rst:469 msgid ":c:member:`show_ref_count `" msgstr "" +#: ../../c-api/init_config.rst:472 msgid "``\"site_import\"``" msgstr "" +#: ../../c-api/init_config.rst:473 msgid ":c:member:`site_import `" msgstr "" +#: ../../c-api/init_config.rst:476 msgid "``\"skip_source_first_line\"``" msgstr "" +#: ../../c-api/init_config.rst:477 msgid ":c:member:`skip_source_first_line `" msgstr "" +#: ../../c-api/init_config.rst:480 msgid "``\"stdio_encoding\"``" msgstr "" +#: ../../c-api/init_config.rst:481 msgid ":c:member:`stdio_encoding `" msgstr "" +#: ../../c-api/init_config.rst:484 msgid "``\"stdio_errors\"``" msgstr "" +#: ../../c-api/init_config.rst:485 msgid ":c:member:`stdio_errors `" msgstr "" +#: ../../c-api/init_config.rst:488 msgid "``\"stdlib_dir\"``" msgstr "" +#: ../../c-api/init_config.rst:489 msgid ":c:member:`stdlib_dir `" msgstr "" +#: ../../c-api/init_config.rst:492 msgid "``\"tracemalloc\"``" msgstr "" +#: ../../c-api/init_config.rst:493 msgid ":c:member:`tracemalloc `" msgstr "" +#: ../../c-api/init_config.rst:496 msgid "``\"use_environment\"``" msgstr "" +#: ../../c-api/init_config.rst:497 msgid ":c:member:`use_environment `" msgstr "" +#: ../../c-api/init_config.rst:500 msgid "``\"use_frozen_modules\"``" msgstr "" +#: ../../c-api/init_config.rst:501 msgid ":c:member:`use_frozen_modules `" msgstr "" +#: ../../c-api/init_config.rst:504 msgid "``\"use_hash_seed\"``" msgstr "" +#: ../../c-api/init_config.rst:505 msgid ":c:member:`use_hash_seed `" msgstr "" +#: ../../c-api/init_config.rst:508 msgid "``\"use_system_logger\"``" msgstr "" +#: ../../c-api/init_config.rst:509 msgid ":c:member:`use_system_logger `" msgstr "" +#: ../../c-api/init_config.rst:512 msgid "``\"user_site_directory\"``" msgstr "" +#: ../../c-api/init_config.rst:513 msgid ":c:member:`user_site_directory `" msgstr "" +#: ../../c-api/init_config.rst:516 msgid "``\"utf8_mode\"``" msgstr "" +#: ../../c-api/init_config.rst:517 msgid ":c:member:`utf8_mode `" msgstr "" +#: ../../c-api/init_config.rst:520 msgid "``\"verbose\"``" msgstr "" +#: ../../c-api/init_config.rst:521 msgid ":c:member:`verbose `" msgstr "" +#: ../../c-api/init_config.rst:524 msgid "``\"warn_default_encoding\"``" msgstr "" +#: ../../c-api/init_config.rst:525 msgid ":c:member:`warn_default_encoding `" msgstr "" +#: ../../c-api/init_config.rst:528 msgid "``\"warnoptions\"``" msgstr "" +#: ../../c-api/init_config.rst:529 msgid ":c:member:`warnoptions `" msgstr "" +#: ../../c-api/init_config.rst:532 msgid "``\"write_bytecode\"``" msgstr "" +#: ../../c-api/init_config.rst:533 msgid ":c:member:`write_bytecode `" msgstr "" +#: ../../c-api/init_config.rst:536 msgid "``\"xoptions\"``" msgstr "" +#: ../../c-api/init_config.rst:537 msgid ":c:member:`xoptions `" msgstr "" +#: ../../c-api/init_config.rst:538 ../../c-api/init_config.rst:579 msgid "``dict[str, str]``" msgstr "" +#: ../../c-api/init_config.rst:540 msgid "``\"_pystats\"``" msgstr "" +#: ../../c-api/init_config.rst:541 msgid ":c:member:`_pystats `" msgstr "" +#: ../../c-api/init_config.rst:545 msgid "Visibility:" msgstr "" +#: ../../c-api/init_config.rst:547 msgid "" -"Public: Can by get by :c:func:`PyConfig_Get` and set by :c:func:" +"Public: Can be retrieved by :c:func:`PyConfig_Get` and set by :c:func:" "`PyConfig_Set`." msgstr "" +#: ../../c-api/init_config.rst:549 msgid "" -"Read-only: Can by get by :c:func:`PyConfig_Get`, but cannot be set by :c:" -"func:`PyConfig_Set`." +"Read-only: Can be retrieved by :c:func:`PyConfig_Get`, but cannot be set by :" +"c:func:`PyConfig_Set`." msgstr "" +#: ../../c-api/init_config.rst:554 msgid "Runtime Python configuration API" msgstr "" +#: ../../c-api/init_config.rst:556 msgid "" "At runtime, it's possible to get and set configuration options using :c:func:" "`PyConfig_Get` and :c:func:`PyConfig_Set` functions." msgstr "" +#: ../../c-api/init_config.rst:562 msgid "" "Some options are read from the :mod:`sys` attributes. For example, the " "option ``\"argv\"`` is read from :data:`sys.argv`." msgstr "" +#: ../../c-api/init_config.rst:568 msgid "" "Get the current runtime value of a configuration option as a Python object." msgstr "" +#: ../../c-api/init_config.rst: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:626 +msgid "" +"The function now replaces :data:`sys.flags` (create a new object), instead " +"of modifying :data:`sys.flags` in-place." +msgstr "" + +#: ../../c-api/init_config.rst:634 msgid "PyConfig C API" msgstr "" +#: ../../c-api/init_config.rst:638 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:642 msgid "There are two kinds of configuration:" msgstr "" +#: ../../c-api/init_config.rst:644 msgid "" "The :ref:`Python Configuration ` can be used to build a " "customized Python which behaves as the regular Python. For example, " @@ -803,6 +1113,7 @@ msgid "" "Python." msgstr "" +#: ../../c-api/init_config.rst:649 msgid "" "The :ref:`Isolated Configuration ` can be used to embed " "Python into an application. It isolates Python from the system. For example, " @@ -810,12 +1121,15 @@ msgid "" "no signal handler is registered." msgstr "" +#: ../../c-api/init_config.rst:660 msgid ":pep:`587` \"Python Initialization Configuration\"." msgstr "" +#: ../../c-api/init_config.rst:666 msgid "Example of customized Python always running in isolated mode::" msgstr "" +#: ../../c-api/init_config.rst:668 msgid "" "int main(int argc, char **argv)\n" "{\n" @@ -851,111 +1165,144 @@ msgid "" "}" msgstr "" +#: ../../c-api/init_config.rst:703 msgid "PyWideStringList" msgstr "" +#: ../../c-api/init_config.rst:707 msgid "List of ``wchar_t*`` strings." msgstr "" +#: ../../c-api/init_config.rst:709 msgid "" "If *length* is non-zero, *items* must be non-``NULL`` and all strings must " "be non-``NULL``." msgstr "" +#: ../../c-api/init_config.rst:714 msgid "Methods:" msgstr "" +#: ../../c-api/init_config.rst:718 msgid "Append *item* to *list*." msgstr "" +#: ../../c-api/init_config.rst:720 ../../c-api/init_config.rst:731 msgid "Python must be preinitialized to call this function." msgstr "" +#: ../../c-api/init_config.rst:724 msgid "Insert *item* into *list* at *index*." msgstr "" +#: ../../c-api/init_config.rst:726 msgid "" "If *index* is greater than or equal to *list* length, append *item* to " "*list*." msgstr "" +#: ../../c-api/init_config.rst:729 msgid "*index* must be greater than or equal to ``0``." msgstr "" +#: ../../c-api/init_config.rst:735 ../../c-api/init_config.rst:755 +#: ../../c-api/init_config.rst:862 ../../c-api/init_config.rst:1181 msgid "Structure fields:" msgstr "" +#: ../../c-api/init_config.rst:739 msgid "List length." msgstr "" +#: ../../c-api/init_config.rst:743 msgid "List items." msgstr "" +#: ../../c-api/init_config.rst:746 msgid "PyStatus" msgstr "" +#: ../../c-api/init_config.rst:750 msgid "" "Structure to store an initialization function status: success, error or exit." msgstr "" +#: ../../c-api/init_config.rst:753 msgid "For an error, it can store the C function name which created the error." msgstr "" +#: ../../c-api/init_config.rst:759 msgid "Exit code. Argument passed to ``exit()``." msgstr "" +#: ../../c-api/init_config.rst:763 msgid "Error message." msgstr "" +#: ../../c-api/init_config.rst:767 msgid "Name of the function which created an error, can be ``NULL``." msgstr "" +#: ../../c-api/init_config.rst:771 msgid "Functions to create a status:" msgstr "" +#: ../../c-api/init_config.rst:775 msgid "Success." msgstr "" +#: ../../c-api/init_config.rst:779 msgid "Initialization error with a message." msgstr "" +#: ../../c-api/init_config.rst:781 msgid "*err_msg* must not be ``NULL``." msgstr "" +#: ../../c-api/init_config.rst:785 msgid "Memory allocation failure (out of memory)." msgstr "" +#: ../../c-api/init_config.rst:789 msgid "Exit Python with the specified exit code." msgstr "" +#: ../../c-api/init_config.rst:791 msgid "Functions to handle a status:" msgstr "" +#: ../../c-api/init_config.rst:795 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:800 msgid "Is the result an error?" msgstr "" +#: ../../c-api/init_config.rst:804 msgid "Is the result an exit?" msgstr "" +#: ../../c-api/init_config.rst:808 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:813 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:816 msgid "Example::" msgstr "" +#: ../../c-api/init_config.rst:818 msgid "" "PyStatus alloc(void **ptr, size_t size)\n" "{\n" @@ -978,155 +1325,203 @@ msgid "" "}" msgstr "" +#: ../../c-api/init_config.rst:840 msgid "PyPreConfig" msgstr "" +#: ../../c-api/init_config.rst:844 msgid "Structure used to preinitialize Python." msgstr "" +#: ../../c-api/init_config.rst:848 msgid "Function to initialize a preconfiguration:" msgstr "" +#: ../../c-api/init_config.rst:852 msgid "" "Initialize the preconfiguration with :ref:`Python Configuration `." msgstr "" +#: ../../c-api/init_config.rst:857 msgid "" "Initialize the preconfiguration with :ref:`Isolated Configuration `." msgstr "" +#: ../../c-api/init_config.rst:866 msgid "Name of the Python memory allocators:" msgstr "" +#: ../../c-api/init_config.rst:868 msgid "" "``PYMEM_ALLOCATOR_NOT_SET`` (``0``): don't change memory allocators (use " "defaults)." msgstr "" +#: ../../c-api/init_config.rst:870 msgid "" "``PYMEM_ALLOCATOR_DEFAULT`` (``1``): :ref:`default memory allocators " "`." msgstr "" +#: ../../c-api/init_config.rst:872 msgid "" "``PYMEM_ALLOCATOR_DEBUG`` (``2``): :ref:`default memory allocators ` with :ref:`debug hooks `." msgstr "" +#: ../../c-api/init_config.rst:875 msgid "``PYMEM_ALLOCATOR_MALLOC`` (``3``): use ``malloc()`` of the C library." msgstr "" +#: ../../c-api/init_config.rst:876 msgid "" "``PYMEM_ALLOCATOR_MALLOC_DEBUG`` (``4``): force usage of ``malloc()`` with :" "ref:`debug hooks `." msgstr "" +#: ../../c-api/init_config.rst:878 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC`` (``5``): :ref:`Python pymalloc memory allocator " "`." msgstr "" +#: ../../c-api/init_config.rst:880 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` (``6``): :ref:`Python pymalloc memory " "allocator ` with :ref:`debug hooks `." msgstr "" +#: ../../c-api/init_config.rst:883 msgid "" "``PYMEM_ALLOCATOR_MIMALLOC`` (``6``): use ``mimalloc``, a fast malloc " "replacement." msgstr "" +#: ../../c-api/init_config.rst:885 msgid "" "``PYMEM_ALLOCATOR_MIMALLOC_DEBUG`` (``7``): use ``mimalloc``, a fast malloc " "replacement with :ref:`debug hooks `." msgstr "" +#: ../../c-api/init_config.rst:889 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:893 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:898 msgid "See :ref:`Memory Management `." msgstr "" +#: ../../c-api/init_config.rst:900 msgid "Default: ``PYMEM_ALLOCATOR_NOT_SET``." msgstr "" +#: ../../c-api/init_config.rst:904 msgid "Set the LC_CTYPE locale to the user preferred locale." msgstr "" +#: ../../c-api/init_config.rst:906 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:909 ../../c-api/init_config.rst:920 msgid "See the :term:`locale encoding`." msgstr "" +#: ../../c-api/init_config.rst:911 ../../c-api/init_config.rst:966 +#: ../../c-api/init_config.rst:1337 msgid "Default: ``1`` in Python config, ``0`` in isolated config." msgstr "" +#: ../../c-api/init_config.rst:915 msgid "If equals to ``2``, coerce the C locale." msgstr "" +#: ../../c-api/init_config.rst:917 msgid "" "If equals to ``1``, read the LC_CTYPE locale to decide if it should be " "coerced." msgstr "" +#: ../../c-api/init_config.rst:922 ../../c-api/init_config.rst:928 msgid "Default: ``-1`` in Python config, ``0`` in isolated config." msgstr "" +#: ../../c-api/init_config.rst:926 msgid "If non-zero, emit a warning if the C locale is coerced." msgstr "" +#: ../../c-api/init_config.rst:932 msgid "" ":ref:`Python Development Mode `: see :c:member:`PyConfig.dev_mode`." msgstr "" +#: ../../c-api/init_config.rst:935 ../../c-api/init_config.rst:1346 +#: ../../c-api/init_config.rst:1402 ../../c-api/init_config.rst:1896 msgid "Default: ``-1`` in Python mode, ``0`` in isolated mode." msgstr "" +#: ../../c-api/init_config.rst:939 msgid "Isolated mode: see :c:member:`PyConfig.isolated`." msgstr "" +#: ../../c-api/init_config.rst:941 ../../c-api/init_config.rst:1573 msgid "Default: ``0`` in Python mode, ``1`` in isolated mode." msgstr "" +#: ../../c-api/init_config.rst:945 msgid "If non-zero:" msgstr "" +#: ../../c-api/init_config.rst:947 msgid "Set :c:member:`PyPreConfig.utf8_mode` to ``0``," msgstr "" +#: ../../c-api/init_config.rst:948 msgid "Set :c:member:`PyConfig.filesystem_encoding` to ``\"mbcs\"``," msgstr "" +#: ../../c-api/init_config.rst:949 msgid "Set :c:member:`PyConfig.filesystem_errors` to ``\"replace\"``." msgstr "" +#: ../../c-api/init_config.rst:951 msgid "" "Initialized from the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " "variable value." msgstr "" +#: ../../c-api/init_config.rst:954 ../../c-api/init_config.rst:1587 msgid "" "Only available on Windows. ``#ifdef MS_WINDOWS`` macro can be used for " "Windows specific code." msgstr "" +#: ../../c-api/init_config.rst:957 ../../c-api/init_config.rst:1285 +#: ../../c-api/init_config.rst:1292 ../../c-api/init_config.rst:1359 +#: ../../c-api/init_config.rst:1491 ../../c-api/init_config.rst:1509 +#: ../../c-api/init_config.rst:1523 ../../c-api/init_config.rst:1590 +#: ../../c-api/init_config.rst:1604 ../../c-api/init_config.rst:1664 +#: ../../c-api/init_config.rst:1716 ../../c-api/init_config.rst:1778 +#: ../../c-api/init_config.rst:1832 ../../c-api/init_config.rst:1861 +#: ../../c-api/init_config.rst:1975 ../../c-api/init_config.rst:2021 msgid "Default: ``0``." msgstr "" +#: ../../c-api/init_config.rst:961 msgid "" "If non-zero, :c:func:`Py_PreInitializeFromArgs` and :c:func:" "`Py_PreInitializeFromBytesArgs` parse their ``argv`` argument the same way " @@ -1134,74 +1529,95 @@ msgid "" "Arguments `." msgstr "" +#: ../../c-api/init_config.rst:970 msgid "" "Use :ref:`environment variables `? See :c:member:`PyConfig." "use_environment`." msgstr "" +#: ../../c-api/init_config.rst:973 ../../c-api/init_config.rst:1937 msgid "Default: ``1`` in Python config and ``0`` in isolated config." msgstr "" +#: ../../c-api/init_config.rst:977 msgid "If non-zero, enable the :ref:`Python UTF-8 Mode `." msgstr "" +#: ../../c-api/init_config.rst:979 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:982 msgid "Also set to ``1`` if the ``LC_CTYPE`` locale is ``C`` or ``POSIX``." msgstr "" +#: ../../c-api/init_config.rst:984 msgid "Default: ``-1`` in Python config and ``0`` in isolated config." msgstr "" +#: ../../c-api/init_config.rst:990 msgid "Preinitialize Python with PyPreConfig" msgstr "" +#: ../../c-api/init_config.rst:992 msgid "The preinitialization of Python:" msgstr "" +#: ../../c-api/init_config.rst:994 msgid "Set the Python memory allocators (:c:member:`PyPreConfig.allocator`)" msgstr "" +#: ../../c-api/init_config.rst:995 msgid "Configure the LC_CTYPE locale (:term:`locale encoding`)" msgstr "" +#: ../../c-api/init_config.rst:996 msgid "" "Set the :ref:`Python UTF-8 Mode ` (:c:member:`PyPreConfig." "utf8_mode`)" msgstr "" +#: ../../c-api/init_config.rst:999 msgid "" "The current preconfiguration (``PyPreConfig`` type) is stored in " "``_PyRuntime.preconfig``." msgstr "" +#: ../../c-api/init_config.rst:1002 msgid "Functions to preinitialize Python:" msgstr "" +#: ../../c-api/init_config.rst:1006 ../../c-api/init_config.rst:1012 +#: ../../c-api/init_config.rst:1021 msgid "Preinitialize Python from *preconfig* preconfiguration." msgstr "" +#: ../../c-api/init_config.rst:1008 ../../c-api/init_config.rst:1017 +#: ../../c-api/init_config.rst:1026 msgid "*preconfig* must not be ``NULL``." msgstr "" +#: ../../c-api/init_config.rst:1014 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:1023 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:1028 ../../c-api/init_config.rst:2044 msgid "" "The caller is responsible to handle exceptions (error or exit) using :c:func:" "`PyStatus_Exception` and :c:func:`Py_ExitStatusException`." msgstr "" +#: ../../c-api/init_config.rst:1031 msgid "" "For :ref:`Python Configuration ` (:c:func:" "`PyPreConfig_InitPythonConfig`), if Python is initialized with command line " @@ -1211,6 +1627,7 @@ msgid "" "`Python UTF-8 Mode `." msgstr "" +#: ../../c-api/init_config.rst:1038 msgid "" "``PyMem_SetAllocator()`` can be called after :c:func:`Py_PreInitialize` and " "before :c:func:`Py_InitializeFromConfig` to install a custom memory " @@ -1218,6 +1635,7 @@ msgid "" "`PyPreConfig.allocator` is set to ``PYMEM_ALLOCATOR_NOT_SET``." msgstr "" +#: ../../c-api/init_config.rst:1043 msgid "" "Python memory allocation functions like :c:func:`PyMem_RawMalloc` must not " "be used before the Python preinitialization, whereas calling directly " @@ -1225,11 +1643,13 @@ msgid "" "not be called before the Python preinitialization." msgstr "" +#: ../../c-api/init_config.rst:1048 msgid "" "Example using the preinitialization to enable the :ref:`Python UTF-8 Mode " "`::" msgstr "" +#: ../../c-api/init_config.rst:1051 msgid "" "PyStatus status;\n" "PyPreConfig preconfig;\n" @@ -1249,66 +1669,84 @@ msgid "" "Py_Finalize();" msgstr "" +#: ../../c-api/init_config.rst:1070 msgid "PyConfig" msgstr "" +#: ../../c-api/init_config.rst:1074 msgid "Structure containing most parameters to configure Python." msgstr "" +#: ../../c-api/init_config.rst:1076 msgid "" "When done, the :c:func:`PyConfig_Clear` function must be used to release the " "configuration memory." msgstr "" +#: ../../c-api/init_config.rst:1081 msgid "Structure methods:" msgstr "" +#: ../../c-api/init_config.rst:1085 msgid "" "Initialize configuration with the :ref:`Python Configuration `." msgstr "" +#: ../../c-api/init_config.rst:1090 msgid "" "Initialize configuration with the :ref:`Isolated Configuration `." msgstr "" +#: ../../c-api/init_config.rst:1095 msgid "Copy the wide character string *str* into ``*config_str``." msgstr "" +#: ../../c-api/init_config.rst:1097 ../../c-api/init_config.rst:1104 +#: ../../c-api/init_config.rst:1111 ../../c-api/init_config.rst:1119 +#: ../../c-api/init_config.rst:1125 ../../c-api/init_config.rst:1142 msgid ":ref:`Preinitialize Python ` if needed." msgstr "" +#: ../../c-api/init_config.rst:1101 msgid "" "Decode *str* using :c:func:`Py_DecodeLocale` and set the result into " "``*config_str``." msgstr "" +#: ../../c-api/init_config.rst:1108 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:1115 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:1123 msgid "Set the list of wide strings *list* to *length* and *items*." msgstr "" +#: ../../c-api/init_config.rst:1129 msgid "Read all Python configuration." msgstr "" +#: ../../c-api/init_config.rst:1131 msgid "Fields which are already initialized are left unchanged." msgstr "" +#: ../../c-api/init_config.rst:1133 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:1136 ../../c-api/init_config.rst:1693 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 " @@ -1317,41 +1755,50 @@ msgid "" "as Python options." msgstr "" +#: ../../c-api/init_config.rst:1144 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:1150 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:1158 msgid "Release configuration memory." msgstr "" +#: ../../c-api/init_config.rst:1160 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 " +"`PyPreConfig`) is based on the :c:type:`PyConfig`. If configuration fields " "which are in common with :c:type:`PyPreConfig` are tuned, they must be set " "before calling a :c:type:`PyConfig` method:" msgstr "" +#: ../../c-api/init_config.rst:1166 msgid ":c:member:`PyConfig.dev_mode`" msgstr "" +#: ../../c-api/init_config.rst:1167 msgid ":c:member:`PyConfig.isolated`" msgstr "" +#: ../../c-api/init_config.rst:1168 msgid ":c:member:`PyConfig.parse_argv`" msgstr "" +#: ../../c-api/init_config.rst:1169 msgid ":c:member:`PyConfig.use_environment`" msgstr "" +#: ../../c-api/init_config.rst:1171 msgid "" "Moreover, if :c:func:`PyConfig_SetArgv` or :c:func:`PyConfig_SetBytesArgv` " "is used, this method must be called before other methods, since the " @@ -1359,11 +1806,13 @@ msgid "" "member:`~PyConfig.parse_argv` is non-zero)." msgstr "" +#: ../../c-api/init_config.rst:1176 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:1189 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:" @@ -1373,346 +1822,448 @@ msgid "" "entry in :c:member:`~PyConfig.argv` can be an empty string." msgstr "" +#: ../../c-api/init_config.rst:1197 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:1202 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:1205 ../../c-api/init_config.rst:1232 +#: ../../c-api/init_config.rst:1246 ../../c-api/init_config.rst:1256 +#: ../../c-api/init_config.rst:1367 ../../c-api/init_config.rst:1376 +#: ../../c-api/init_config.rst:1387 ../../c-api/init_config.rst:1478 +#: ../../c-api/init_config.rst:1634 ../../c-api/init_config.rst:1735 +#: ../../c-api/init_config.rst:1754 ../../c-api/init_config.rst:1769 +#: ../../c-api/init_config.rst:1786 ../../c-api/init_config.rst:1799 +#: ../../c-api/init_config.rst:1807 ../../c-api/init_config.rst:1821 +#: ../../c-api/init_config.rst:1924 msgid "Default: ``NULL``." msgstr "" +#: ../../c-api/init_config.rst:1207 msgid "See also the :c:member:`~PyConfig.orig_argv` member." msgstr "" +#: ../../c-api/init_config.rst:1211 msgid "" "If equals to zero, ``Py_RunMain()`` prepends a potentially unsafe path to :" "data:`sys.path` at startup:" msgstr "" +#: ../../c-api/init_config.rst:1214 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:1216 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:1218 msgid "" "Otherwise (``python -c code`` and ``python``), prepend an empty string, " "which means the current working directory." msgstr "" +#: ../../c-api/init_config.rst:1221 msgid "" "Set to ``1`` by the :option:`-P` command line option and the :envvar:" "`PYTHONSAFEPATH` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1224 msgid "Default: ``0`` in Python config, ``1`` in isolated config." msgstr "" +#: ../../c-api/init_config.rst:1230 msgid ":data:`sys.base_exec_prefix`." msgstr "" +#: ../../c-api/init_config.rst:1234 ../../c-api/init_config.rst:1248 +#: ../../c-api/init_config.rst:1258 ../../c-api/init_config.rst:1378 +#: ../../c-api/init_config.rst:1389 ../../c-api/init_config.rst:1651 +#: ../../c-api/init_config.rst:1737 msgid "Part of the :ref:`Python Path Configuration ` output." msgstr "" +#: ../../c-api/init_config.rst:1236 msgid "See also :c:member:`PyConfig.exec_prefix`." msgstr "" -msgid "Python base executable: :data:`sys._base_executable`." +#: ../../c-api/init_config.rst:1240 +msgid "Python base executable: ``sys._base_executable``." msgstr "" -msgid "Set by the :envvar:`__PYVENV_LAUNCHER__` environment variable." +#: ../../c-api/init_config.rst:1242 +msgid "Set by the ``__PYVENV_LAUNCHER__`` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1244 msgid "Set from :c:member:`PyConfig.executable` if ``NULL``." msgstr "" +#: ../../c-api/init_config.rst:1250 msgid "See also :c:member:`PyConfig.executable`." msgstr "" +#: ../../c-api/init_config.rst:1254 msgid ":data:`sys.base_prefix`." msgstr "" +#: ../../c-api/init_config.rst:1260 msgid "See also :c:member:`PyConfig.prefix`." msgstr "" +#: ../../c-api/init_config.rst:1264 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:1267 msgid "" "Set to ``0`` by the :option:`-u` command line option and the :envvar:" "`PYTHONUNBUFFERED` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1270 msgid "stdin is always opened in buffered mode." msgstr "" +#: ../../c-api/init_config.rst:1272 ../../c-api/init_config.rst:1305 +#: ../../c-api/init_config.rst:1849 ../../c-api/init_config.rst:2006 msgid "Default: ``1``." msgstr "" +#: ../../c-api/init_config.rst:1276 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:1280 msgid "" "If equal or greater to ``2``, raise a :exc:`BytesWarning` exception in these " "cases." msgstr "" +#: ../../c-api/init_config.rst:1283 msgid "Incremented by the :option:`-b` command line option." msgstr "" +#: ../../c-api/init_config.rst:1289 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:1298 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:1302 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:1311 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:1314 msgid "Valid values:" msgstr "" +#: ../../c-api/init_config.rst:1316 msgid "" "``L\"always\"``: Hash the source file for invalidation regardless of value " "of the 'check_source' flag." msgstr "" +#: ../../c-api/init_config.rst:1318 msgid "``L\"never\"``: Assume that hash-based pycs always are valid." msgstr "" +#: ../../c-api/init_config.rst:1319 msgid "" "``L\"default\"``: The 'check_source' flag in hash-based pycs determines " "invalidation." msgstr "" +#: ../../c-api/init_config.rst:1322 msgid "Default: ``L\"default\"``." msgstr "" +#: ../../c-api/init_config.rst:1324 msgid "See also :pep:`552` \"Deterministic pycs\"." msgstr "" +#: ../../c-api/init_config.rst:1328 msgid "If non-zero, configure C standard streams:" msgstr "" +#: ../../c-api/init_config.rst:1330 msgid "" "On Windows, set the binary mode (``O_BINARY``) on stdin, stdout and stderr." msgstr "" +#: ../../c-api/init_config.rst:1332 msgid "" "If :c:member:`~PyConfig.buffered_stdio` equals zero, disable buffering of " "stdin, stdout and stderr streams." msgstr "" +#: ../../c-api/init_config.rst:1334 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:1341 msgid "If non-zero, enable the :ref:`Python Development Mode `." msgstr "" +#: ../../c-api/init_config.rst:1343 msgid "" "Set to ``1`` by the :option:`-X dev <-X>` option and the :envvar:" "`PYTHONDEVMODE` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1350 msgid "Dump Python references?" msgstr "" +#: ../../c-api/init_config.rst:1352 msgid "If non-zero, dump all objects which are still alive at exit." msgstr "" +#: ../../c-api/init_config.rst:1354 msgid "Set to ``1`` by the :envvar:`PYTHONDUMPREFS` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1356 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:1363 msgid "Filename where to dump Python references." msgstr "" +#: ../../c-api/init_config.rst:1365 msgid "Set by the :envvar:`PYTHONDUMPREFSFILE` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1373 msgid "" "The site-specific directory prefix where the platform-dependent Python files " "are installed: :data:`sys.exec_prefix`." msgstr "" +#: ../../c-api/init_config.rst:1380 msgid "See also :c:member:`PyConfig.base_exec_prefix`." msgstr "" +#: ../../c-api/init_config.rst:1384 msgid "" "The absolute path of the executable binary for the Python interpreter: :data:" "`sys.executable`." msgstr "" +#: ../../c-api/init_config.rst:1391 msgid "See also :c:member:`PyConfig.base_executable`." msgstr "" +#: ../../c-api/init_config.rst:1395 msgid "Enable faulthandler?" msgstr "" +#: ../../c-api/init_config.rst:1397 msgid "If non-zero, call :func:`faulthandler.enable` at startup." msgstr "" +#: ../../c-api/init_config.rst:1399 msgid "" "Set to ``1`` by :option:`-X faulthandler <-X>` and the :envvar:" "`PYTHONFAULTHANDLER` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1406 msgid "" ":term:`Filesystem encoding `: :func:" "`sys.getfilesystemencoding`." msgstr "" +#: ../../c-api/init_config.rst:1409 msgid "On macOS, Android and VxWorks: use ``\"utf-8\"`` by default." msgstr "" +#: ../../c-api/init_config.rst:1411 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:1415 msgid "Default encoding on other platforms:" msgstr "" +#: ../../c-api/init_config.rst:1417 msgid "``\"utf-8\"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero." msgstr "" +#: ../../c-api/init_config.rst:1418 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:1421 msgid "``\"utf-8\"`` if ``nl_langinfo(CODESET)`` returns an empty string." msgstr "" +#: ../../c-api/init_config.rst:1422 msgid "" "Otherwise, use the :term:`locale encoding`: ``nl_langinfo(CODESET)`` result." msgstr "" +#: ../../c-api/init_config.rst:1425 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:1428 msgid "See also the :c:member:`~PyConfig.filesystem_errors` member." msgstr "" +#: ../../c-api/init_config.rst:1432 msgid "" ":term:`Filesystem error handler `: :" "func:`sys.getfilesystemencodeerrors`." msgstr "" +#: ../../c-api/init_config.rst:1435 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:1439 msgid "On other platforms: use ``\"surrogateescape\"`` by default." msgstr "" +#: ../../c-api/init_config.rst:1441 msgid "Supported error handlers:" msgstr "" +#: ../../c-api/init_config.rst:1443 msgid "``\"strict\"``" msgstr "" +#: ../../c-api/init_config.rst:1444 msgid "``\"surrogateescape\"``" msgstr "" +#: ../../c-api/init_config.rst:1445 msgid "``\"surrogatepass\"`` (only supported with the UTF-8 encoding)" msgstr "" +#: ../../c-api/init_config.rst:1447 msgid "See also the :c:member:`~PyConfig.filesystem_encoding` member." msgstr "" +#: ../../c-api/init_config.rst:1451 msgid "If non-zero, use frozen modules." msgstr "" +#: ../../c-api/init_config.rst:1453 msgid "Set by the :envvar:`PYTHON_FROZEN_MODULES` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1455 msgid "" "Default: ``1`` in a release build, or ``0`` in a :ref:`debug build `." msgstr "" +#: ../../c-api/init_config.rst:1461 msgid "Randomized hash function seed." msgstr "" +#: ../../c-api/init_config.rst:1463 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:1466 msgid "Set by the :envvar:`PYTHONHASHSEED` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1468 msgid "" "Default *use_hash_seed* value: ``-1`` in Python mode, ``0`` in isolated mode." msgstr "" +#: ../../c-api/init_config.rst:1473 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:1476 msgid "Set by the :envvar:`PYTHONHOME` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1480 ../../c-api/init_config.rst:1616 +#: ../../c-api/init_config.rst:1636 ../../c-api/init_config.rst:1725 +#: ../../c-api/init_config.rst:1756 msgid "Part of the :ref:`Python Path Configuration ` input." msgstr "" +#: ../../c-api/init_config.rst:1484 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:1488 msgid "" "Set by the :option:`-X importtime <-X>` option and the :envvar:" "`PYTHONPROFILEIMPORTTIME` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1495 msgid "Added support for ``import_time = 2``" msgstr "" +#: ../../c-api/init_config.rst:1499 msgid "Enter interactive mode after executing a script or a command." msgstr "" +#: ../../c-api/init_config.rst:1501 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 " @@ -1720,23 +2271,30 @@ msgid "" "a terminal." msgstr "" +#: ../../c-api/init_config.rst:1506 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:1513 msgid "Install Python signal handlers?" msgstr "" +#: ../../c-api/init_config.rst:1515 ../../c-api/init_config.rst:1699 +#: ../../c-api/init_config.rst:1723 ../../c-api/init_config.rst:1959 msgid "Default: ``1`` in Python mode, ``0`` in isolated mode." msgstr "" +#: ../../c-api/init_config.rst:1519 msgid "If greater than ``0``, enable the interactive mode (REPL)." msgstr "" +#: ../../c-api/init_config.rst:1521 msgid "Incremented by the :option:`-i` command line option." msgstr "" +#: ../../c-api/init_config.rst:1527 msgid "" "Configures the :ref:`integer string conversion length limitation " "`. An initial value of ``-1`` means the value will be " @@ -1746,101 +2304,123 @@ msgid "" "str_digits_check_threshold`) are unsupported and will produce an error." msgstr "" +#: ../../c-api/init_config.rst:1535 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:1538 msgid "" "Default: ``-1`` in Python mode. 4300 (:data:`sys.int_info." "default_max_str_digits`) in isolated mode." msgstr "" +#: ../../c-api/init_config.rst:1545 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:1549 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:1552 ../../c-api/init_config.rst:1913 msgid "Default: ``-1``." msgstr "" +#: ../../c-api/init_config.rst:1558 msgid "If greater than ``0``, enable isolated mode:" msgstr "" +#: ../../c-api/init_config.rst:1560 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:1564 msgid "" "Set :c:member:`~PyConfig.use_environment` to ``0``: ignore ``PYTHON`` " "environment variables." msgstr "" +#: ../../c-api/init_config.rst:1566 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:1568 msgid "" "Python REPL doesn't import :mod:`readline` nor enable default readline " "configuration on interactive prompts." msgstr "" +#: ../../c-api/init_config.rst:1571 msgid "Set to ``1`` by the :option:`-I` command line option." msgstr "" +#: ../../c-api/init_config.rst:1575 msgid "" "See also the :ref:`Isolated Configuration ` and :c:" "member:`PyPreConfig.isolated`." msgstr "" +#: ../../c-api/init_config.rst:1580 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:1584 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " "is set to a non-empty string." msgstr "" +#: ../../c-api/init_config.rst:1592 msgid "See also the :pep:`528` (Change Windows console encoding to UTF-8)." msgstr "" +#: ../../c-api/init_config.rst:1596 msgid "" "If non-zero, dump statistics on :ref:`Python pymalloc memory allocator " "` at exit." msgstr "" +#: ../../c-api/init_config.rst:1599 msgid "Set to ``1`` by the :envvar:`PYTHONMALLOCSTATS` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1601 msgid "" "The option is ignored if Python is :option:`configured using the --without-" "pymalloc option <--without-pymalloc>`." msgstr "" +#: ../../c-api/init_config.rst:1608 msgid "Platform library directory name: :data:`sys.platlibdir`." msgstr "" +#: ../../c-api/init_config.rst:1610 msgid "Set by the :envvar:`PYTHONPLATLIBDIR` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1612 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:1620 msgid "" "This macro is now used on Windows to locate the standard library extension " "modules, typically under ``DLLs``. However, for compatibility, note that " @@ -1848,17 +2428,21 @@ msgid "" "and virtual environments." msgstr "" +#: ../../c-api/init_config.rst:1629 msgid "" "Module search paths (:data:`sys.path`) as a string separated by ``DELIM`` (:" "data:`os.pathsep`)." msgstr "" +#: ../../c-api/init_config.rst:1632 msgid "Set by the :envvar:`PYTHONPATH` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1641 msgid "Module search paths: :data:`sys.path`." msgstr "" +#: ../../c-api/init_config.rst:1643 msgid "" "If :c:member:`~PyConfig.module_search_paths_set` is equal to ``0``, :c:func:" "`Py_InitializeFromConfig` will replace :c:member:`~PyConfig." @@ -1866,33 +2450,41 @@ msgid "" "to ``1``." msgstr "" +#: ../../c-api/init_config.rst:1648 msgid "" "Default: empty list (``module_search_paths``) and ``0`` " "(``module_search_paths_set``)." msgstr "" +#: ../../c-api/init_config.rst:1655 msgid "Compilation optimization level:" msgstr "" +#: ../../c-api/init_config.rst:1657 msgid "``0``: Peephole optimizer, set ``__debug__`` to ``True``." msgstr "" +#: ../../c-api/init_config.rst:1658 msgid "``1``: Level 0, remove assertions, set ``__debug__`` to ``False``." msgstr "" +#: ../../c-api/init_config.rst:1659 msgid "``2``: Level 1, strip docstrings." msgstr "" +#: ../../c-api/init_config.rst:1661 msgid "" "Incremented by the :option:`-O` command line option. Set to the :envvar:" "`PYTHONOPTIMIZE` environment variable value." msgstr "" +#: ../../c-api/init_config.rst:1668 msgid "" "The list of the original command line arguments passed to the Python " "executable: :data:`sys.orig_argv`." msgstr "" +#: ../../c-api/init_config.rst:1671 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` " @@ -1901,354 +2493,440 @@ msgid "" "parse_argv` is non-zero)." msgstr "" +#: ../../c-api/init_config.rst:1678 msgid "" "See also the :c:member:`~PyConfig.argv` member and the :c:func:" "`Py_GetArgcArgv` function." msgstr "" +#: ../../c-api/init_config.rst:1681 ../../c-api/init_config.rst:1993 +#: ../../c-api/init_config.rst:2012 msgid "Default: empty list." msgstr "" +#: ../../c-api/init_config.rst:1687 msgid "Parse command line arguments?" msgstr "" +#: ../../c-api/init_config.rst:1689 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:1701 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:1707 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:1710 msgid "" "Incremented by the :option:`-d` command line option. Set to the :envvar:" "`PYTHONDEBUG` environment variable value." msgstr "" +#: ../../c-api/init_config.rst:1713 ../../c-api/init_config.rst:1818 msgid "" "Needs a :ref:`debug build of Python ` (the ``Py_DEBUG`` macro " "must be defined)." msgstr "" +#: ../../c-api/init_config.rst:1720 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:1727 msgid "Now also applies on Windows." msgstr "" +#: ../../c-api/init_config.rst:1732 msgid "" "The site-specific directory prefix where the platform independent Python " "files are installed: :data:`sys.prefix`." msgstr "" +#: ../../c-api/init_config.rst:1739 msgid "See also :c:member:`PyConfig.base_prefix`." msgstr "" +#: ../../c-api/init_config.rst:1743 msgid "" "Program name used to initialize :c:member:`~PyConfig.executable` and in " "early error messages during Python initialization." msgstr "" +#: ../../c-api/init_config.rst:1746 msgid "On macOS, use :envvar:`PYTHONEXECUTABLE` environment variable if set." msgstr "" +#: ../../c-api/init_config.rst:1747 msgid "" -"If the ``WITH_NEXT_FRAMEWORK`` macro is defined, use :envvar:" -"`__PYVENV_LAUNCHER__` environment variable if set." +"If the ``WITH_NEXT_FRAMEWORK`` macro is defined, use ``__PYVENV_LAUNCHER__`` " +"environment variable if set." msgstr "" +#: ../../c-api/init_config.rst:1749 msgid "" "Use ``argv[0]`` of :c:member:`~PyConfig.argv` if available and non-empty." msgstr "" +#: ../../c-api/init_config.rst:1751 msgid "" "Otherwise, use ``L\"python\"`` on Windows, or ``L\"python3\"`` on other " "platforms." msgstr "" +#: ../../c-api/init_config.rst:1760 msgid "" "Directory where cached ``.pyc`` files are written: :data:`sys." "pycache_prefix`." msgstr "" +#: ../../c-api/init_config.rst:1763 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:1767 msgid "If ``NULL``, :data:`sys.pycache_prefix` is set to ``None``." msgstr "" +#: ../../c-api/init_config.rst:1773 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:1776 msgid "Incremented by the :option:`-q` command line option." msgstr "" +#: ../../c-api/init_config.rst:1782 msgid "Value of the :option:`-c` command line option." msgstr "" +#: ../../c-api/init_config.rst:1784 ../../c-api/init_config.rst:1805 msgid "Used by :c:func:`Py_RunMain`." msgstr "" +#: ../../c-api/init_config.rst:1790 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:1794 msgid "" "For example, it is set to ``script.py`` by the ``python3 script.py arg`` " "command line." msgstr "" +#: ../../c-api/init_config.rst:1797 msgid "See also the :c:member:`PyConfig.skip_source_first_line` option." msgstr "" +#: ../../c-api/init_config.rst:1803 msgid "Value of the :option:`-m` command line option." msgstr "" +#: ../../c-api/init_config.rst:1811 msgid "" "``package.module`` path to module that should be imported before ``site.py`` " "is run." msgstr "" +#: ../../c-api/init_config.rst:1814 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:1825 msgid "" "Show total reference count at exit (excluding :term:`immortal` objects)?" msgstr "" +#: ../../c-api/init_config.rst:1827 msgid "Set to ``1`` by :option:`-X showrefcount <-X>` command line option." msgstr "" +#: ../../c-api/init_config.rst:1829 msgid "" "Needs a :ref:`debug build of Python ` (the ``Py_REF_DEBUG`` " "macro must be defined)." msgstr "" +#: ../../c-api/init_config.rst:1836 msgid "Import the :mod:`site` module at startup?" msgstr "" +#: ../../c-api/init_config.rst:1838 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:1841 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:1844 msgid "Set to ``0`` by the :option:`-S` command line option." msgstr "" +#: ../../c-api/init_config.rst:1846 msgid "" ":data:`sys.flags.no_site ` is set to the inverted value of :c:" "member:`~PyConfig.site_import`." msgstr "" +#: ../../c-api/init_config.rst:1853 msgid "" "If non-zero, skip the first line of the :c:member:`PyConfig.run_filename` " "source." msgstr "" +#: ../../c-api/init_config.rst:1856 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:1859 msgid "Set to ``1`` by the :option:`-x` command line option." msgstr "" +#: ../../c-api/init_config.rst:1866 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:1870 msgid "" "Use the :envvar:`PYTHONIOENCODING` environment variable if it is non-empty." msgstr "" +#: ../../c-api/init_config.rst:1873 msgid "Default encoding:" msgstr "" +#: ../../c-api/init_config.rst:1875 msgid "``\"UTF-8\"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero." msgstr "" +#: ../../c-api/init_config.rst:1876 msgid "Otherwise, use the :term:`locale encoding`." msgstr "" +#: ../../c-api/init_config.rst:1878 msgid "Default error handler:" msgstr "" +#: ../../c-api/init_config.rst:1880 msgid "On Windows: use ``\"surrogateescape\"``." msgstr "" +#: ../../c-api/init_config.rst:1881 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:1883 msgid "``\"strict\"`` otherwise." msgstr "" +#: ../../c-api/init_config.rst:1885 msgid "See also :c:member:`PyConfig.legacy_windows_stdio`." msgstr "" +#: ../../c-api/init_config.rst:1889 msgid "Enable tracemalloc?" msgstr "" +#: ../../c-api/init_config.rst:1891 msgid "If non-zero, call :func:`tracemalloc.start` at startup." msgstr "" +#: ../../c-api/init_config.rst:1893 msgid "" "Set by :option:`-X tracemalloc=N <-X>` command line option and by the :" "envvar:`PYTHONTRACEMALLOC` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1900 msgid "Enable the Linux ``perf`` profiler support?" msgstr "" +#: ../../c-api/init_config.rst:1902 msgid "If equals to ``1``, enable support for the Linux ``perf`` profiler." msgstr "" +#: ../../c-api/init_config.rst:1904 msgid "" "If equals to ``2``, enable support for the Linux ``perf`` profiler with " "DWARF JIT support." msgstr "" +#: ../../c-api/init_config.rst:1907 msgid "" "Set to ``1`` by :option:`-X perf <-X>` command-line option and the :envvar:" "`PYTHONPERFSUPPORT` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1910 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:1916 msgid "See :ref:`perf_profiling` for more information." msgstr "" +#: ../../c-api/init_config.rst:1922 msgid "Directory of the Python standard library." msgstr "" +#: ../../c-api/init_config.rst:1930 msgid "Use :ref:`environment variables `?" msgstr "" +#: ../../c-api/init_config.rst:1932 msgid "" "If equals to zero, ignore the :ref:`environment variables `." msgstr "" +#: ../../c-api/init_config.rst:1935 msgid "Set to ``0`` by the :option:`-E` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1941 msgid "" "If non-zero, ``stdout`` and ``stderr`` will be redirected to the system log." msgstr "" +#: ../../c-api/init_config.rst:1944 msgid "Only available on macOS 10.12 and later, and on iOS." msgstr "" +#: ../../c-api/init_config.rst:1946 msgid "" "Default: ``0`` (don't use the system log) on macOS; ``1`` on iOS (use the " "system log)." msgstr "" +#: ../../c-api/init_config.rst:1953 msgid "If non-zero, add the user site directory to :data:`sys.path`." msgstr "" +#: ../../c-api/init_config.rst:1955 msgid "Set to ``0`` by the :option:`-s` and :option:`-I` command line options." msgstr "" +#: ../../c-api/init_config.rst:1957 msgid "Set to ``0`` by the :envvar:`PYTHONNOUSERSITE` environment variable." msgstr "" +#: ../../c-api/init_config.rst:1963 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:1967 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:1971 msgid "Incremented by the :option:`-v` command line option." msgstr "" +#: ../../c-api/init_config.rst:1973 msgid "Set by the :envvar:`PYTHONVERBOSE` environment variable value." msgstr "" +#: ../../c-api/init_config.rst:1979 msgid "" "Options of the :mod:`warnings` module to build warnings filters, lowest to " "highest priority: :data:`sys.warnoptions`." msgstr "" +#: ../../c-api/init_config.rst:1982 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)." +"of ``warnings.filters`` which is checked first (highest priority)." msgstr "" +#: ../../c-api/init_config.rst:1986 msgid "" "The :option:`-W` command line options adds its value to :c:member:`~PyConfig." "warnoptions`, it can be used multiple times." msgstr "" +#: ../../c-api/init_config.rst:1989 msgid "" "The :envvar:`PYTHONWARNINGS` environment variable can also be used to add " "warning options. Multiple options can be specified, separated by commas (``," "``)." msgstr "" +#: ../../c-api/init_config.rst:1997 msgid "" "If equal to ``0``, Python won't try to write ``.pyc`` files on the import of " "source modules." msgstr "" +#: ../../c-api/init_config.rst:2000 msgid "" "Set to ``0`` by the :option:`-B` command line option and the :envvar:" "`PYTHONDONTWRITEBYTECODE` environment variable." msgstr "" +#: ../../c-api/init_config.rst:2003 msgid "" ":data:`sys.dont_write_bytecode` is initialized to the inverted value of :c:" "member:`~PyConfig.write_bytecode`." msgstr "" +#: ../../c-api/init_config.rst:2010 msgid "Values of the :option:`-X` command line options: :data:`sys._xoptions`." msgstr "" +#: ../../c-api/init_config.rst:2016 msgid "If non-zero, write performance statistics at Python exit." msgstr "" +#: ../../c-api/init_config.rst:2018 msgid "" "Need a special build with the ``Py_STATS`` macro: see :option:`--enable-" "pystats`." msgstr "" +#: ../../c-api/init_config.rst:2023 msgid "" "If :c:member:`~PyConfig.parse_argv` is non-zero, :c:member:`~PyConfig.argv` " "arguments are parsed the same way the regular Python parses :ref:`command " @@ -2256,22 +2934,27 @@ msgid "" "c:member:`~PyConfig.argv`." msgstr "" +#: ../../c-api/init_config.rst:2028 msgid "" "The :c:member:`~PyConfig.xoptions` options are parsed to set other options: " "see the :option:`-X` command line option." msgstr "" +#: ../../c-api/init_config.rst:2033 msgid "The ``show_alloc_count`` field has been removed." msgstr "" +#: ../../c-api/init_config.rst:2039 msgid "Initialization with PyConfig" msgstr "" +#: ../../c-api/init_config.rst:2041 msgid "" "Initializing the interpreter from a populated configuration struct is " "handled by calling :c:func:`Py_InitializeFromConfig`." msgstr "" +#: ../../c-api/init_config.rst:2047 msgid "" "If :c:func:`PyImport_FrozenModules`, :c:func:`PyImport_AppendInittab` or :c:" "func:`PyImport_ExtendInittab` are used, they must be set or called after " @@ -2280,14 +2963,17 @@ msgid "" "`PyImport_ExtendInittab` must be called before each Python initialization." msgstr "" +#: ../../c-api/init_config.rst:2054 msgid "" "The current configuration (``PyConfig`` type) is stored in " "``PyInterpreterState.config``." msgstr "" +#: ../../c-api/init_config.rst:2057 msgid "Example setting the program name::" msgstr "" +#: ../../c-api/init_config.rst:2059 msgid "" "void init_python(void)\n" "{\n" @@ -2316,6 +3002,7 @@ msgid "" "}" msgstr "" +#: ../../c-api/init_config.rst:2085 msgid "" "More complete example modifying the default configuration, read the " "configuration, and then override some parameters. Note that since 3.11, many " @@ -2324,6 +3011,7 @@ msgid "" "called will be left unchanged by initialization::" msgstr "" +#: ../../c-api/init_config.rst:2092 msgid "" "PyStatus init_python(const char *program_name)\n" "{\n" @@ -2378,15 +3066,18 @@ msgid "" "}" msgstr "" +#: ../../c-api/init_config.rst:2148 msgid "Isolated Configuration" msgstr "" +#: ../../c-api/init_config.rst:2150 msgid "" ":c:func:`PyPreConfig_InitIsolatedConfig` and :c:func:" "`PyConfig_InitIsolatedConfig` functions create a configuration to isolate " "Python from the system. For example, to embed Python into an application." msgstr "" +#: ../../c-api/init_config.rst:2155 msgid "" "This configuration ignores global configuration variables, environment " "variables, command line arguments (:c:member:`PyConfig.argv` is not parsed) " @@ -2394,99 +3085,125 @@ msgid "" "LC_CTYPE locale are left unchanged. Signal handlers are not installed." msgstr "" +#: ../../c-api/init_config.rst:2160 msgid "" "Configuration files are still used with this configuration to determine " "paths that are unspecified. Ensure :c:member:`PyConfig.home` is specified to " "avoid computing the default path configuration." msgstr "" +#: ../../c-api/init_config.rst:2168 msgid "Python Configuration" msgstr "" +#: ../../c-api/init_config.rst:2170 msgid "" ":c:func:`PyPreConfig_InitPythonConfig` and :c:func:" "`PyConfig_InitPythonConfig` functions create a configuration to build a " "customized Python which behaves as the regular Python." msgstr "" +#: ../../c-api/init_config.rst:2174 msgid "" "Environments variables and command line arguments are used to configure " "Python, whereas global configuration variables are ignored." msgstr "" +#: ../../c-api/init_config.rst:2177 msgid "" "This function enables C locale coercion (:pep:`538`) and :ref:`Python UTF-8 " "Mode ` (:pep:`540`) depending on the LC_CTYPE locale, :envvar:" "`PYTHONUTF8` and :envvar:`PYTHONCOERCECLOCALE` environment variables." msgstr "" +#: ../../c-api/init_config.rst:2186 msgid "Python Path Configuration" msgstr "" +#: ../../c-api/init_config.rst:2188 msgid ":c:type:`PyConfig` contains multiple fields for the path configuration:" msgstr "" +#: ../../c-api/init_config.rst:2190 msgid "Path configuration inputs:" msgstr "" +#: ../../c-api/init_config.rst:2192 msgid ":c:member:`PyConfig.home`" msgstr "" +#: ../../c-api/init_config.rst:2193 msgid ":c:member:`PyConfig.platlibdir`" msgstr "" +#: ../../c-api/init_config.rst:2194 msgid ":c:member:`PyConfig.pathconfig_warnings`" msgstr "" +#: ../../c-api/init_config.rst:2195 msgid ":c:member:`PyConfig.program_name`" msgstr "" +#: ../../c-api/init_config.rst:2196 msgid ":c:member:`PyConfig.pythonpath_env`" msgstr "" +#: ../../c-api/init_config.rst:2197 msgid "current working directory: to get absolute paths" msgstr "" +#: ../../c-api/init_config.rst:2198 msgid "" "``PATH`` environment variable to get the program full path (from :c:member:" "`PyConfig.program_name`)" msgstr "" +#: ../../c-api/init_config.rst:2200 msgid "``__PYVENV_LAUNCHER__`` environment variable" msgstr "" +#: ../../c-api/init_config.rst:2201 msgid "" "(Windows only) Application paths in the registry under " "\"Software\\Python\\PythonCore\\X.Y\\PythonPath\" of HKEY_CURRENT_USER and " "HKEY_LOCAL_MACHINE (where X.Y is the Python version)." msgstr "" +#: ../../c-api/init_config.rst:2205 msgid "Path configuration output fields:" msgstr "" +#: ../../c-api/init_config.rst:2207 msgid ":c:member:`PyConfig.base_exec_prefix`" msgstr "" +#: ../../c-api/init_config.rst:2208 msgid ":c:member:`PyConfig.base_executable`" msgstr "" +#: ../../c-api/init_config.rst:2209 msgid ":c:member:`PyConfig.base_prefix`" msgstr "" +#: ../../c-api/init_config.rst:2210 msgid ":c:member:`PyConfig.exec_prefix`" msgstr "" +#: ../../c-api/init_config.rst:2211 msgid ":c:member:`PyConfig.executable`" msgstr "" +#: ../../c-api/init_config.rst:2212 msgid "" ":c:member:`PyConfig.module_search_paths_set`, :c:member:`PyConfig." "module_search_paths`" msgstr "" +#: ../../c-api/init_config.rst:2214 msgid ":c:member:`PyConfig.prefix`" msgstr "" +#: ../../c-api/init_config.rst:2216 msgid "" "If at least one \"output field\" is not set, Python calculates the path " "configuration to fill unset fields. If :c:member:`~PyConfig." @@ -2495,6 +3212,7 @@ msgid "" "module_search_paths_set` is set to ``1``." msgstr "" +#: ../../c-api/init_config.rst:2222 msgid "" "It is possible to completely ignore the function calculating the default " "path configuration by setting explicitly all path configuration output " @@ -2504,43 +3222,52 @@ msgid "" "modification." msgstr "" +#: ../../c-api/init_config.rst:2229 msgid "" "Set :c:member:`~PyConfig.pathconfig_warnings` to ``0`` to suppress warnings " "when calculating the path configuration (Unix only, Windows does not log any " "warning)." msgstr "" +#: ../../c-api/init_config.rst:2232 msgid "" "If :c:member:`~PyConfig.base_prefix` or :c:member:`~PyConfig." "base_exec_prefix` fields are not set, they inherit their value from :c:" "member:`~PyConfig.prefix` and :c:member:`~PyConfig.exec_prefix` respectively." msgstr "" +#: ../../c-api/init_config.rst:2236 msgid ":c:func:`Py_RunMain` and :c:func:`Py_Main` modify :data:`sys.path`:" msgstr "" +#: ../../c-api/init_config.rst:2238 msgid "" "If :c:member:`~PyConfig.run_filename` is set and is a directory which " "contains a ``__main__.py`` script, prepend :c:member:`~PyConfig." "run_filename` to :data:`sys.path`." msgstr "" +#: ../../c-api/init_config.rst:2241 msgid "If :c:member:`~PyConfig.isolated` is zero:" msgstr "" +#: ../../c-api/init_config.rst:2243 msgid "" "If :c:member:`~PyConfig.run_module` is set, prepend the current directory " "to :data:`sys.path`. Do nothing if the current directory cannot be read." msgstr "" +#: ../../c-api/init_config.rst:2245 msgid "" "If :c:member:`~PyConfig.run_filename` is set, prepend the directory of the " "filename to :data:`sys.path`." msgstr "" +#: ../../c-api/init_config.rst:2247 msgid "Otherwise, prepend an empty string to :data:`sys.path`." msgstr "" +#: ../../c-api/init_config.rst:2249 msgid "" "If :c:member:`~PyConfig.site_import` is non-zero, :data:`sys.path` can be " "modified by the :mod:`site` module. If :c:member:`~PyConfig." @@ -2549,33 +3276,43 @@ msgid "" "data:`sys.path`." msgstr "" +#: ../../c-api/init_config.rst:2255 msgid "The following configuration files are used by the path configuration:" msgstr "" +#: ../../c-api/init_config.rst:2257 msgid "``pyvenv.cfg``" msgstr "" +#: ../../c-api/init_config.rst:2258 msgid "``._pth`` file (ex: ``python._pth``)" msgstr "" +#: ../../c-api/init_config.rst:2259 msgid "``pybuilddir.txt`` (Unix only)" msgstr "" +#: ../../c-api/init_config.rst:2261 msgid "If a ``._pth`` file is present:" msgstr "" +#: ../../c-api/init_config.rst:2263 msgid "Set :c:member:`~PyConfig.isolated` to ``1``." msgstr "" +#: ../../c-api/init_config.rst:2264 msgid "Set :c:member:`~PyConfig.use_environment` to ``0``." msgstr "" +#: ../../c-api/init_config.rst:2265 msgid "Set :c:member:`~PyConfig.site_import` to ``0``." msgstr "" +#: ../../c-api/init_config.rst:2266 msgid "Set :c:member:`~PyConfig.safe_path` to ``1``." msgstr "" +#: ../../c-api/init_config.rst:2268 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 " @@ -2586,34 +3323,42 @@ msgid "" "more information." msgstr "" +#: ../../c-api/init_config.rst:2276 msgid "" "The ``__PYVENV_LAUNCHER__`` environment variable is used to set :c:member:" "`PyConfig.base_executable`." msgstr "" +#: ../../c-api/init_config.rst:2281 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:2287 msgid "Py_GetArgcArgv()" msgstr "" +#: ../../c-api/init_config.rst:2291 msgid "Get the original command line arguments, before Python modified them." msgstr "" +#: ../../c-api/init_config.rst:2293 msgid "See also :c:member:`PyConfig.orig_argv` member." msgstr "" +#: ../../c-api/init_config.rst:2296 msgid "Delaying main module execution" msgstr "" +#: ../../c-api/init_config.rst:2298 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:2301 msgid "" "This separation can be achieved by setting ``PyConfig.run_command`` to the " "empty string during initialization (to prevent the interpreter from dropping " @@ -2621,8 +3366,10 @@ msgid "" "main module code using ``__main__.__dict__`` as the global namespace." msgstr "" +#: ../../c-api/init_config.rst:1185 msgid "main()" msgstr "" +#: ../../c-api/init_config.rst:1185 msgid "argv (in module sys)" msgstr "" diff --git a/c-api/intro.po b/c-api/intro.po index beb72d6..dc470ef 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -11,19 +11,21 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ../../c-api/intro.rst:8 msgid "Introduction" msgstr "Einführung" +#: ../../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 " @@ -36,6 +38,7 @@ msgid "" "`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 " @@ -44,6 +47,7 @@ msgid "" "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 " @@ -52,20 +56,25 @@ msgid "" "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 " @@ -74,36 +83,43 @@ msgid "" "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``. " @@ -112,6 +128,7 @@ msgid "" "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 " @@ -119,6 +136,7 @@ msgid "" "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:" @@ -130,6 +148,7 @@ msgid "" "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 " @@ -139,15 +158,18 @@ msgid "" "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:" @@ -155,87 +177,197 @@ msgid "" "utility are defined here. This is not necessarily a complete listing." msgstr "" -msgid "Return the absolute value of ``x``." +#: ../../c-api/intro.rst:121 +msgid "" +"If this macro is defined, then the current system is able to start threads." msgstr "" +#: ../../c-api/intro.rst:123 msgid "" -"Ask the compiler to always inline a static inline function. The compiler can " -"ignore it and decide to not inline the function." +"Currently, all systems supported by CPython (per :pep:`11`), with the " +"exception of some WebAssembly platforms, support starting threads." msgstr "" +#: ../../c-api/intro.rst:130 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." +"Like :samp:`getenv({s})`, but returns ``NULL`` if :option:`-E` was passed on " +"the command line (see :c:member:`PyConfig.use_environment`)." +msgstr "" + +#: ../../c-api/intro.rst:135 +msgid "Docstring macros" msgstr "" +#: ../../c-api/intro.rst:139 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." +"Creates a variable with name *name* that can be used in docstrings. If " +"Python is built without docstrings (:option:`--without-doc-strings`), the " +"value will be an empty string." msgstr "" +#: ../../c-api/intro.rst:143 ../../c-api/intro.rst:160 +#: ../../c-api/intro.rst:428 +msgid "Example::" +msgstr "" + +#: ../../c-api/intro.rst:145 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." +"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 "" -msgid "It must be specified before the function return type. Usage::" +#: ../../c-api/intro.rst:153 +msgid "Expands to :samp:`PyDoc_VAR({name}) = PyDoc_STR({str})`." msgstr "" -msgid "static inline Py_ALWAYS_INLINE int random(void) { return 4; }" +#: ../../c-api/intro.rst:157 +msgid "" +"Expands to the given input string, or an empty string if docstrings are " +"disabled (:option:`--without-doc-strings`)." msgstr "" +#: ../../c-api/intro.rst:162 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``." +"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:170 msgid "" -"Use this for deprecated declarations. The macro must be placed before the " -"symbol name." +"Declares a static character array variable with the given *name*. Expands " +"to :samp:`static const char {name}[]`" msgstr "" -msgid "Example::" +#: ../../c-api/intro.rst:173 ../../c-api/intro.rst:314 +#: ../../c-api/intro.rst:325 +msgid "For example::" msgstr "" -msgid "Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);" +#: ../../c-api/intro.rst:175 +msgid "" +"PyDoc_VAR(python_doc) = PyDoc_STR(\n" +" \"A genus of constricting snakes in the Pythonidae family native \"\n" +" \"to the tropics and subtropics of the Eastern Hemisphere.\");" msgstr "" -msgid "MSVC support was added." +#: ../../c-api/intro.rst:181 +msgid "General utility macros" +msgstr "" + +#: ../../c-api/intro.rst:183 +msgid "The following macros are for common tasks not specific to Python." +msgstr "" + +#: ../../c-api/intro.rst:187 +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:194 msgid "" -"Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the " -"command line (see :c:member:`PyConfig.use_environment`)." +"Use a GCC attribute *name*, hiding it from compilers that don't support GCC " +"attributes (such as MSVC)." msgstr "" -msgid "Return the maximum value between ``x`` and ``y``." +#: ../../c-api/intro.rst:197 +msgid "" +"This expands to :samp:`__attribute__(({name)})` on a GCC compiler, and " +"expands to nothing on compilers that don't support GCC attributes." msgstr "" -msgid "Return the size of a structure (``type``) ``member`` in bytes." +#: ../../c-api/intro.rst:202 +msgid "Numeric utilities" msgstr "" -msgid "Return the minimum value between ``x`` and ``y``." +#: ../../c-api/intro.rst:206 +msgid "Return the absolute value of ``x``." msgstr "" +#: ../../c-api/intro.rst:208 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`)." +"The argument may be evaluated more than once. Consequently, do not pass an " +"expression with side-effects directly to this macro." msgstr "" -msgid "Usage::" +#: ../../c-api/intro.rst:212 +msgid "" +"If the result cannot be represented (for example, if ``x`` has :c:macro:`!" +"INT_MIN` value for :c:expr:`int` type), the behavior is undefined." msgstr "" -msgid "Py_NO_INLINE static int random(void) { return 4; }" +#: ../../c-api/intro.rst:216 +msgid "Corresponds roughly to :samp:`(({x}) < 0 ? -({x}) : ({x}))`" +msgstr "" + +#: ../../c-api/intro.rst:223 +msgid "Return the larger or smaller of the arguments, respectively." +msgstr "" + +#: ../../c-api/intro.rst:225 +msgid "" +"Any arguments may be evaluated more than once. Consequently, do not pass an " +"expression with side-effects directly to this macro." msgstr "" +#: ../../c-api/intro.rst:229 msgid "" -"Convert ``x`` to a C string. E.g. ``Py_STRINGIFY(123)`` returns ``\"123\"``." +":c:macro:`!Py_MAX` corresponds roughly to :samp:`((({x}) > ({y})) ? ({x}) : " +"({y}))`." msgstr "" +#: ../../c-api/intro.rst:236 +msgid "" +"Similar to :samp:`{integer} >> {positions}`, but forces sign extension, as " +"the C standard does not define whether a right-shift of a signed integer " +"will perform sign extension or a zero-fill." +msgstr "" + +#: ../../c-api/intro.rst:240 +msgid "" +"*integer* should be any signed integer type. *positions* is the number of " +"positions to shift to the right." +msgstr "" + +#: ../../c-api/intro.rst:243 +msgid "" +"Both *integer* and *positions* can be evaluated more than once; " +"consequently, avoid directly passing a function call or some other operation " +"with side-effects to this macro. Instead, store the result as a variable and " +"then pass it." +msgstr "" + +#: ../../c-api/intro.rst:248 +msgid "" +"*type* is unused and only kept for backwards compatibility. Historically, " +"*type* was used to cast *integer*." +msgstr "" + +#: ../../c-api/intro.rst:253 +msgid "" +"This macro is now valid for all signed integer types, not just those for " +"which ``unsigned type`` is legal. As a result, *type* is no longer used." +msgstr "" + +#: ../../c-api/intro.rst:259 +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:264 +msgid "Assertion utilities" +msgstr "" + +#: ../../c-api/intro.rst:268 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 " @@ -243,17 +375,26 @@ msgid "" "where you might be tempted to put an ``assert(0)`` or ``abort()`` call." msgstr "" +#: ../../c-api/intro.rst:273 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:277 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`." +"In debug mode, and on unsupported compilers, the macro expands to a call to :" +"c:func:`Py_FatalError`." msgstr "" +#: ../../c-api/intro.rst:280 +msgid "" +"A use for ``Py_UNREACHABLE()`` is following a call to a function that never " +"returns but that is not declared ``_Noreturn``." +msgstr "" + +#: ../../c-api/intro.rst:283 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 " @@ -262,52 +403,312 @@ msgid "" "reported to caller, :c:func:`Py_FatalError` can be used." msgstr "" +#: ../../c-api/intro.rst:293 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; }``." +"Cast *value* to type *smaller* from type *larger*, validating that no " +"information was lost." msgstr "" +#: ../../c-api/intro.rst:296 msgid "" -"Creates a variable with name ``name`` that can be used in docstrings. If " -"Python is built without docstrings, the value will be empty." +"On release builds of Python, this is roughly equivalent to :samp:" +"`(({smaller}) {value})` (in C++, :samp:`static_cast<{smaller}>({value})` " +"will be used instead)." msgstr "" +#: ../../c-api/intro.rst:300 msgid "" -"Use :c:macro:`PyDoc_STRVAR` for docstrings to support building Python " -"without docstrings, as specified in :pep:`7`." +"On debug builds (implying that :c:macro:`Py_DEBUG` is defined), this asserts " +"that no information was lost with the cast from *larger* to *smaller*." msgstr "" +#: ../../c-api/intro.rst:303 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" -"}" +"*value*, *larger*, and *smaller* may all be evaluated more than once in the " +"expression; consequently, do not pass an expression with side-effects " +"directly to this macro." msgstr "" +#: ../../c-api/intro.rst:309 msgid "" -"Creates a docstring for the given input string or an empty string if " -"docstrings are disabled." +"Asserts a compile-time condition *cond*, as a statement. The build will fail " +"if the condition is false or cannot be evaluated at compile time." +msgstr "" + +#: ../../c-api/intro.rst:312 +msgid "Corresponds roughly to :samp:`static_assert({cond})` on C23 and above." +msgstr "" + +#: ../../c-api/intro.rst:316 +msgid "Py_BUILD_ASSERT(sizeof(PyTime_t) == sizeof(int64_t));" msgstr "" +#: ../../c-api/intro.rst:322 msgid "" -"Use :c:macro:`PyDoc_STR` in specifying docstrings to support building Python " -"without docstrings, as specified in :pep:`7`." +"Asserts a compile-time condition *cond*, as an expression that evaluates to " +"``0``. The build will fail if the condition is false or cannot be evaluated " +"at compile time." msgstr "" +#: ../../c-api/intro.rst:327 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" -"};" +"#define foo_to_char(foo) \\\n" +" ((char *)(foo) + Py_BUILD_ASSERT_EXPR(offsetof(struct foo, string) == 0))" +msgstr "" + +#: ../../c-api/intro.rst:334 +msgid "Type size utilities" +msgstr "" + +#: ../../c-api/intro.rst:338 +msgid "Compute the length of a statically allocated C array at compile time." +msgstr "" + +#: ../../c-api/intro.rst:340 +msgid "" +"The *array* argument must be a C array with a size known at compile time. " +"Passing an array with an unknown size, such as a heap-allocated array, will " +"result in a compilation error on some compilers, or otherwise produce " +"incorrect results." +msgstr "" + +#: ../../c-api/intro.rst:345 +msgid "This is roughly equivalent to::" +msgstr "" + +#: ../../c-api/intro.rst:347 +msgid "sizeof(array) / sizeof((array)[0])" msgstr "" +#: ../../c-api/intro.rst:351 +msgid "Return the size of a structure (*type*) *member* in bytes." +msgstr "" + +#: ../../c-api/intro.rst:353 +msgid "Corresponds roughly to :samp:`sizeof((({type} *)NULL)->{member})`." +msgstr "" + +#: ../../c-api/intro.rst:359 +msgid "Macro definition utilities" +msgstr "" + +#: ../../c-api/intro.rst:363 +msgid "" +"This is equivalent to :samp:`{X}`, which is useful for token-pasting in " +"macros, as macro expansions in *X* are forcefully evaluated by the " +"preprocessor." +msgstr "" + +#: ../../c-api/intro.rst:369 +msgid "" +"Convert ``x`` to a C string. For example, ``Py_STRINGIFY(123)`` returns " +"``\"123\"``." +msgstr "" + +#: ../../c-api/intro.rst:376 +msgid "Declaration utilities" +msgstr "" + +#: ../../c-api/intro.rst:378 +msgid "" +"The following macros can be used in declarations. They are most useful for " +"defining the C API itself, and have limited use for extension authors. Most " +"of them expand to compiler-specific spellings of common extensions to the C " +"language." +msgstr "" + +#: ../../c-api/intro.rst:386 +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:389 +msgid "" +"Corresponds to ``always_inline`` attribute in GCC and ``__forceinline`` in " +"MSVC." +msgstr "" + +#: ../../c-api/intro.rst:392 +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:396 +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:400 +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:403 +msgid "It must be specified before the function return type. Usage::" +msgstr "" + +#: ../../c-api/intro.rst:405 +msgid "static inline Py_ALWAYS_INLINE int random(void) { return 4; }" +msgstr "" + +#: ../../c-api/intro.rst:411 +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:415 +msgid "" +"Corresponds to the ``noinline`` attribute/specification on GCC and MSVC." +msgstr "" + +#: ../../c-api/intro.rst:417 +msgid "Usage::" +msgstr "" + +#: ../../c-api/intro.rst:419 +msgid "Py_NO_INLINE static int random(void) { return 4; }" +msgstr "" + +#: ../../c-api/intro.rst:425 +msgid "" +"Use this to declare APIs that were deprecated in a specific CPython version. " +"The macro must be placed before the symbol name." +msgstr "" + +#: ../../c-api/intro.rst:430 +msgid "Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);" +msgstr "" + +#: ../../c-api/intro.rst:432 +msgid "MSVC support was added." +msgstr "" + +#: ../../c-api/intro.rst:437 +msgid "" +"Declare a function returning the specified *type* using a fast-calling " +"qualifier for functions that are local to the current file. Semantically, " +"this is equivalent to :samp:`static {type}`." +msgstr "" + +#: ../../c-api/intro.rst:443 +msgid "" +"Equivalent to :c:macro:`Py_LOCAL` but additionally requests the function be " +"inlined." +msgstr "" + +#: ../../c-api/intro.rst:448 +msgid "" +"Macro used to declare a symbol as local to the shared library (hidden). On " +"supported platforms, it ensures the symbol is not exported." +msgstr "" + +#: ../../c-api/intro.rst:451 +msgid "" +"On compatible versions of GCC/Clang, it expands to " +"``__attribute__((visibility(\"hidden\")))``." +msgstr "" + +#: ../../c-api/intro.rst:456 +msgid "" +"Macro used to declare a symbol (function or data) as exported. On Windows, " +"this expands to ``__declspec(dllexport)``. On compatible versions of GCC/" +"Clang, it expands to ``__attribute__((visibility(\"default\")))``. This " +"macro is for defining the C API itself; extension modules should not use it." +msgstr "" + +#: ../../c-api/intro.rst:465 +msgid "" +"Macro used to declare a symbol as imported. On Windows, this expands to " +"``__declspec(dllimport)``. This macro is for defining the C API itself; " +"extension modules should not use it." +msgstr "" + +#: ../../c-api/intro.rst:472 +msgid "" +"Macro used by CPython to declare a function as part of the C API. Its " +"expansion depends on the platform and build configuration. This macro is " +"intended for defining CPython's C API itself; extension modules should not " +"use it for their own symbols." +msgstr "" + +#: ../../c-api/intro.rst:480 +msgid "" +"Macro used by CPython to declare a public global variable as part of the C " +"API. Its expansion depends on the platform and build configuration. This " +"macro is intended for defining CPython's C API itself; extension modules " +"should not use it for their own symbols." +msgstr "" + +#: ../../c-api/intro.rst:487 +msgid "Outdated macros" +msgstr "" + +#: ../../c-api/intro.rst:489 +msgid "" +"The following macros have been used to features that have been standardized " +"in C11." +msgstr "" + +#: ../../c-api/intro.rst:494 +msgid "Specify alignment to *num* bytes on compilers that support it." +msgstr "" + +#: ../../c-api/intro.rst:496 +msgid "Consider using the C11 standard ``_Alignas`` specifier over this macro." +msgstr "" + +#: ../../c-api/intro.rst:501 +msgid "" +"Use *number* as a ``long long`` or ``unsigned long long`` integer literal, " +"respectively." +msgstr "" + +#: ../../c-api/intro.rst:504 +msgid "" +"Expands to *number* followed by ``LL`` or ``LLU``, respectively, but will " +"expand to some compiler-specific suffixes on some older compilers." +msgstr "" + +#: ../../c-api/intro.rst:507 +msgid "Consider using the C99 standard suffixes ``LL`` and ``LLU`` directly." +msgstr "" + +#: ../../c-api/intro.rst:511 +msgid "This is an alias to :c:func:`!memcpy`." +msgstr "" + +#: ../../c-api/intro.rst:513 +msgid "Use :c:func:`!memcpy` directly instead." +msgstr "" + +#: ../../c-api/intro.rst:518 +msgid "This is an alias to the C99-standard ``va_copy`` function." +msgstr "" + +#: ../../c-api/intro.rst:520 +msgid "" +"Historically, this would use a compiler-specific method to copy a " +"``va_list``." +msgstr "" + +#: ../../c-api/intro.rst:522 +msgid "This is now an alias to ``va_copy``." +msgstr "" + +#: ../../c-api/intro.rst:531 msgid "Objects, Types and Reference Counts" msgstr "" +#: ../../c-api/intro.rst:535 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 " @@ -322,6 +723,7 @@ msgid "" "objects." msgstr "" +#: ../../c-api/intro.rst:546 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." @@ -332,9 +734,11 @@ msgid "" "a Python list." msgstr "" +#: ../../c-api/intro.rst:557 msgid "Reference Counts" msgstr "" +#: ../../c-api/intro.rst:559 msgid "" "The reference count is important because today's computers have a finite " "(and often severely limited) memory size; it counts how many different " @@ -349,6 +753,7 @@ msgid "" "that.\")" msgstr "" +#: ../../c-api/intro.rst:576 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. " @@ -367,6 +772,7 @@ msgid "" "increment is a simple operation." msgstr "" +#: ../../c-api/intro.rst:592 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 " @@ -384,6 +790,7 @@ msgid "" "reference to every argument for the duration of the call." msgstr "" +#: ../../c-api/intro.rst:608 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 " @@ -394,6 +801,7 @@ msgid "" "`Py_DECREF`, so almost any operation is potentially dangerous." msgstr "" +#: ../../c-api/intro.rst:616 msgid "" "A safe approach is to always use the generic operations (functions whose " "name begins with ``PyObject_``, ``PyNumber_``, ``PySequence_`` or " @@ -403,9 +811,11 @@ msgid "" "when they are done with the result; this soon becomes second nature." msgstr "" +#: ../../c-api/intro.rst:627 msgid "Reference Count Details" msgstr "" +#: ../../c-api/intro.rst:629 msgid "" "The reference count behavior of functions in the Python/C API is best " "explained in terms of *ownership of references*. Ownership pertains to " @@ -422,14 +832,22 @@ msgid "" "`borrowed reference`." msgstr "" +#: ../../c-api/intro.rst:642 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." +"object, or it does not." +msgstr "" + +#: ../../c-api/intro.rst:646 +msgid "" +"*Stealing a reference* means that when you pass a reference to a function, " +"that function assumes that it now owns that reference. Since the new owner " +"can use :c:func:`!Py_DECREF` at its discretion, you (the caller) must not " +"use that reference after the call." msgstr "" +#: ../../c-api/intro.rst:655 msgid "" "Few functions steal references; the two notable exceptions are :c:func:" "`PyList_SetItem` and :c:func:`PyTuple_SetItem`, which steal a reference to " @@ -441,6 +859,7 @@ msgid "" "below)::" msgstr "" +#: ../../c-api/intro.rst:663 msgid "" "PyObject *t;\n" "\n" @@ -450,6 +869,7 @@ msgid "" "PyTuple_SetItem(t, 2, PyUnicode_FromString(\"three\"));" msgstr "" +#: ../../c-api/intro.rst:670 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 " @@ -457,6 +877,7 @@ msgid "" "another reference before calling the reference-stealing function." msgstr "" +#: ../../c-api/intro.rst:675 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 " @@ -464,11 +885,13 @@ msgid "" "func:`PyTuple_SetItem` for tuples that you are creating yourself." msgstr "" +#: ../../c-api/intro.rst:680 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:683 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:" @@ -477,6 +900,7 @@ msgid "" "be replaced by the following (which also takes care of the error checking)::" msgstr "" +#: ../../c-api/intro.rst:689 msgid "" "PyObject *tuple, *list;\n" "\n" @@ -484,6 +908,7 @@ msgid "" "list = Py_BuildValue(\"[iis]\", 1, 2, \"three\");" msgstr "" +#: ../../c-api/intro.rst:694 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 " @@ -494,6 +919,7 @@ msgid "" "sequence) to a given item::" msgstr "" +#: ../../c-api/intro.rst:701 msgid "" "int\n" "set_all(PyObject *target, PyObject *item)\n" @@ -517,6 +943,7 @@ msgid "" "}" msgstr "" +#: ../../c-api/intro.rst:724 msgid "" "The situation is slightly different for function return values. While " "passing a reference to most functions does not change your ownership " @@ -529,6 +956,7 @@ msgid "" "becomes the owner of the reference)." msgstr "" +#: ../../c-api/intro.rst:733 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 " @@ -539,12 +967,14 @@ msgid "" "the same arguments), you do own a reference to the returned object." msgstr "" +#: ../../c-api/intro.rst:745 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:749 msgid "" "long\n" "sum_list(PyObject *list)\n" @@ -569,6 +999,7 @@ msgid "" "}" msgstr "" +#: ../../c-api/intro.rst:775 msgid "" "long\n" "sum_sequence(PyObject *sequence)\n" @@ -599,9 +1030,11 @@ msgid "" "}" msgstr "" +#: ../../c-api/intro.rst:809 msgid "Types" msgstr "" +#: ../../c-api/intro.rst:811 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:" @@ -612,6 +1045,7 @@ msgid "" "that use them." msgstr "" +#: ../../c-api/intro.rst:821 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 " @@ -619,9 +1053,11 @@ msgid "" "positive value of type :c:type:`Py_ssize_t`." msgstr "" +#: ../../c-api/intro.rst:830 msgid "Exceptions" msgstr "Ausnahmen" +#: ../../c-api/intro.rst:832 msgid "" "The Python programmer only needs to deal with exceptions if specific error " "handling is required; unhandled exceptions are automatically propagated to " @@ -630,6 +1066,7 @@ msgid "" "stack traceback." msgstr "" +#: ../../c-api/intro.rst:840 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 " @@ -644,6 +1081,7 @@ msgid "" "explicitly documented." msgstr "" +#: ../../c-api/intro.rst:855 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 " @@ -656,6 +1094,7 @@ msgid "" "clears the exception state." msgstr "" +#: ../../c-api/intro.rst:865 msgid "" "The full exception state consists of three objects (all of which can be " "``NULL``): the exception type, the corresponding exception value, and the " @@ -668,6 +1107,7 @@ msgid "" "``sys.exc_info()`` and friends." msgstr "" +#: ../../c-api/intro.rst:877 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." @@ -681,6 +1121,7 @@ msgid "" "referenced by the stack frames in the traceback." msgstr "" +#: ../../c-api/intro.rst:888 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 " @@ -691,6 +1132,7 @@ msgid "" "of the error." msgstr "" +#: ../../c-api/intro.rst:897 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 " @@ -699,6 +1141,7 @@ msgid "" "why you like Python, we show the equivalent Python code::" msgstr "" +#: ../../c-api/intro.rst:903 msgid "" "def incr_item(dict, key):\n" " try:\n" @@ -708,9 +1151,11 @@ msgid "" " dict[key] = item + 1" msgstr "" +#: ../../c-api/intro.rst:912 msgid "Here is the corresponding C code, in all its glory::" msgstr "" +#: ../../c-api/intro.rst:914 msgid "" "int\n" "incr_item(PyObject *dict, PyObject *key)\n" @@ -756,6 +1201,7 @@ msgid "" "}" msgstr "" +#: ../../c-api/intro.rst:964 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:" @@ -768,9 +1214,11 @@ msgid "" "success after the final call made is successful." msgstr "" +#: ../../c-api/intro.rst:978 msgid "Embedding Python" msgstr "" +#: ../../c-api/intro.rst:980 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 " @@ -778,6 +1226,7 @@ msgid "" "the interpreter can only be used after the interpreter has been initialized." msgstr "" +#: ../../c-api/intro.rst:993 msgid "" "The basic initialization function is :c:func:`Py_Initialize`. This " "initializes the table of loaded modules, and creates the fundamental " @@ -785,6 +1234,7 @@ msgid "" "initializes the module search path (``sys.path``)." msgstr "" +#: ../../c-api/intro.rst:998 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 " @@ -792,6 +1242,7 @@ msgid "" "must be set: see :ref:`Python Initialization Configuration `." msgstr "" +#: ../../c-api/intro.rst:1003 msgid "" "On most systems (in particular, on Unix and Windows, although the details " "are slightly different), :c:func:`Py_Initialize` calculates the module " @@ -803,6 +1254,7 @@ msgid "" "on the shell command search path (the environment variable :envvar:`PATH`)." msgstr "" +#: ../../c-api/intro.rst:1012 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/" @@ -813,6 +1265,7 @@ msgid "" "in front of the standard path by setting :envvar:`PYTHONPATH`." msgstr "" +#: ../../c-api/intro.rst:1026 msgid "" "The embedding application can steer the search by setting :c:member:" "`PyConfig.program_name` *before* calling :c:func:`Py_InitializeFromConfig`. " @@ -823,6 +1276,7 @@ msgid "" "func:`Py_GetProgramFullPath` (all defined in :file:`Modules/getpath.c`)." msgstr "" +#: ../../c-api/intro.rst:1037 msgid "" "Sometimes, it is desirable to \"uninitialize\" Python. For instance, the " "application may want to start over (make another call to :c:func:" @@ -836,15 +1290,18 @@ msgid "" "released." msgstr "" +#: ../../c-api/intro.rst:1051 msgid "Debugging Builds" msgstr "" +#: ../../c-api/intro.rst:1053 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:1057 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 " @@ -854,6 +1311,7 @@ msgid "" "section." msgstr "" +#: ../../c-api/intro.rst:1065 msgid "" "Compiling the interpreter with the :c:macro:`!Py_DEBUG` macro defined " "produces what is generally meant by :ref:`a debug build of Python `." msgstr "" +#: ../../c-api/intro.rst:1076 msgid "" -"Defining :c:macro:`Py_TRACE_REFS` enables reference tracing (see the :option:" +"Defining ``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 " @@ -878,43 +1338,55 @@ msgid "" "this happens after every statement run by the interpreter.)" msgstr "" +#: ../../c-api/intro.rst:1083 msgid "" "Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source " "distribution for more detailed information." msgstr "" +#: ../../c-api/intro.rst:1090 msgid "Recommended third party tools" msgstr "" +#: ../../c-api/intro.rst:1092 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:1095 msgid "`Cython `_" msgstr "" +#: ../../c-api/intro.rst:1096 msgid "`cffi `_" msgstr "" +#: ../../c-api/intro.rst:1097 msgid "`HPy `_" msgstr "" +#: ../../c-api/intro.rst:1098 msgid "`nanobind `_ (C++)" msgstr "" +#: ../../c-api/intro.rst:1099 msgid "`Numba `_" msgstr "" +#: ../../c-api/intro.rst:1100 msgid "`pybind11 `_ (C++)" msgstr "" +#: ../../c-api/intro.rst:1101 msgid "`PyO3 `_ (Rust)" msgstr "" +#: ../../c-api/intro.rst:1102 msgid "`SWIG `_" msgstr "" +#: ../../c-api/intro.rst:1104 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 " @@ -925,6 +1397,7 @@ msgid "" "sources." msgstr "" +#: ../../c-api/intro.rst:1111 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 " @@ -932,106 +1405,139 @@ msgid "" "outdated." msgstr "" +#: ../../c-api/intro.rst:1118 msgid "" "`Python Packaging User Guide: Binary Extensions `_" msgstr "" +#: ../../c-api/intro.rst:1119 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:533 msgid "object" msgstr "" +#: ../../c-api/intro.rst:533 msgid "type" msgstr "Typ" +#: ../../c-api/intro.rst:572 msgid "Py_INCREF (C function)" msgstr "" +#: ../../c-api/intro.rst:572 msgid "Py_DECREF (C function)" msgstr "" +#: ../../c-api/intro.rst:651 msgid "PyList_SetItem (C function)" msgstr "" +#: ../../c-api/intro.rst:651 msgid "PyTuple_SetItem (C function)" msgstr "" +#: ../../c-api/intro.rst:722 msgid "set_all()" msgstr "" +#: ../../c-api/intro.rst:741 msgid "PyList_GetItem (C function)" msgstr "" +#: ../../c-api/intro.rst:741 msgid "PySequence_GetItem (C function)" msgstr "" +#: ../../c-api/intro.rst:771 msgid "sum_list()" msgstr "" +#: ../../c-api/intro.rst:803 ../../c-api/intro.rst:895 msgid "sum_sequence()" msgstr "" +#: ../../c-api/intro.rst:838 msgid "PyErr_Occurred (C function)" msgstr "" +#: ../../c-api/intro.rst:851 msgid "PyErr_SetString (C function)" msgstr "" +#: ../../c-api/intro.rst:851 ../../c-api/intro.rst:959 msgid "PyErr_Clear (C function)" msgstr "" +#: ../../c-api/intro.rst:875 msgid "exc_info (in module sys)" msgstr "" +#: ../../c-api/intro.rst:910 ../../c-api/intro.rst:957 msgid "incr_item()" msgstr "" +#: ../../c-api/intro.rst:959 msgid "PyErr_ExceptionMatches (C function)" msgstr "" +#: ../../c-api/intro.rst:959 msgid "Py_XDECREF (C function)" msgstr "" +#: ../../c-api/intro.rst:985 msgid "Py_Initialize (C function)" msgstr "" +#: ../../c-api/intro.rst:985 msgid "module" msgstr "" +#: ../../c-api/intro.rst:985 msgid "builtins" msgstr "" +#: ../../c-api/intro.rst:985 msgid "__main__" msgstr "" +#: ../../c-api/intro.rst:985 msgid "sys" msgstr "sys" +#: ../../c-api/intro.rst:985 msgid "search" msgstr "" +#: ../../c-api/intro.rst:985 msgid "path" msgstr "" +#: ../../c-api/intro.rst:985 msgid "path (in module sys)" msgstr "" +#: ../../c-api/intro.rst:1020 msgid "Py_GetPath (C function)" msgstr "" +#: ../../c-api/intro.rst:1020 msgid "Py_GetPrefix (C function)" msgstr "" +#: ../../c-api/intro.rst:1020 msgid "Py_GetExecPrefix (C function)" msgstr "" +#: ../../c-api/intro.rst:1020 msgid "Py_GetProgramFullPath (C function)" msgstr "" +#: ../../c-api/intro.rst:1035 msgid "Py_IsInitialized (C function)" msgstr "" diff --git a/c-api/iter.po b/c-api/iter.po index 1bf80cb..980dec0 100644 --- a/c-api/iter.po +++ b/c-api/iter.po @@ -8,31 +8,36 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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`` " @@ -40,11 +45,13 @@ msgid "" "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). " @@ -53,21 +60,26 @@ msgid "" "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``." diff --git a/c-api/iterator.po b/c-api/iterator.po index df2c155..d97e99c 100644 --- a/c-api/iterator.po +++ b/c-api/iterator.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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." @@ -28,36 +30,116 @@ msgid "" "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 "" + +#: ../../c-api/iterator.rst:56 +msgid "Range Objects" +msgstr "" + +#: ../../c-api/iterator.rst:60 +msgid "The type object for :class:`range` objects." +msgstr "" + +#: ../../c-api/iterator.rst:65 +msgid "" +"Return true if the object *o* is an instance of a :class:`range` object. " +"This function always succeeds." +msgstr "" + +#: ../../c-api/iterator.rst:70 +msgid "Builtin Iterator Types" +msgstr "" + +#: ../../c-api/iterator.rst:72 +msgid "" +"These are built-in iteration types that are included in Python's C API, but " +"provide no additional functions. They are here for completeness." +msgstr "" + +#: ../../c-api/iterator.rst:80 +msgid "C type" +msgstr "" + +#: ../../c-api/iterator.rst:81 +msgid "Python type" +msgstr "" + +#: ../../c-api/iterator.rst:83 +msgid ":py:class:`enumerate`" +msgstr "" + +#: ../../c-api/iterator.rst:85 +msgid ":py:class:`filter`" +msgstr "" + +#: ../../c-api/iterator.rst:87 +msgid ":py:class:`map`" +msgstr "" + +#: ../../c-api/iterator.rst:89 +msgid ":py:class:`reversed`" +msgstr "" + +#: ../../c-api/iterator.rst:91 +msgid ":py:class:`zip`" +msgstr "" + +#: ../../c-api/iterator.rst:95 +msgid "Other Iterator Objects" +msgstr "" + +#: ../../c-api/iterator.rst:113 +msgid "Type objects for iterators of various built-in objects." +msgstr "" + +#: ../../c-api/iterator.rst:115 +msgid "" +"Do not create instances of these directly; prefer calling :c:func:" +"`PyObject_GetIter` instead." +msgstr "" + +#: ../../c-api/iterator.rst:118 +msgid "" +"Note that there is no guarantee that a given built-in type uses a given " +"iterator type. For example, iterating over :class:`range` will use one of " +"two iterator types depending on the size of the range. Other types may start " +"using a similar scheme in the future, without warning." +msgstr "" diff --git a/c-api/lifecycle.po b/c-api/lifecycle.po index 6e5526b..67b44ab 100644 --- a/c-api/lifecycle.po +++ b/c-api/lifecycle.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -27,9 +29,11 @@ msgid "" "`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 " @@ -37,23 +41,29 @@ msgid "" "condition that must be true for *B* to occur after *A*." msgstr "" +#: ../../c-api/lifecycle.rst:55 msgid "Diagram showing events in an object's life. Explained in detail below." msgstr "" +#: ../../c-api/lifecycle.rst:63 msgid "Explanation:" msgstr "" +#: ../../c-api/lifecycle.rst:65 msgid "When a new object is constructed by calling its type:" msgstr "" +#: ../../c-api/lifecycle.rst:67 msgid ":c:member:`~PyTypeObject.tp_new` is called to create a new object." msgstr "" +#: ../../c-api/lifecycle.rst:68 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:71 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 " @@ -61,12 +71,15 @@ msgid "" "example by Python code calling :py:meth:`~object.__new__`." msgstr "" +#: ../../c-api/lifecycle.rst:76 msgid "After :c:member:`!tp_init` completes, the object is ready to use." msgstr "" +#: ../../c-api/lifecycle.rst:77 msgid "Some time after the last reference to an object is removed:" msgstr "" +#: ../../c-api/lifecycle.rst:79 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` " @@ -75,18 +88,21 @@ msgid "" "that :c:member:`~PyTypeObject.tp_finalize` is always called." msgstr "" +#: ../../c-api/lifecycle.rst:85 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:89 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:93 msgid "" "When :c:member:`~PyTypeObject.tp_dealloc` finishes object destruction, it " "directly calls :c:member:`~PyTypeObject.tp_free` (usually set to :c:func:" @@ -94,6 +110,7 @@ msgid "" "for the type) to deallocate the memory." msgstr "" +#: ../../c-api/lifecycle.rst:98 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 " @@ -108,6 +125,7 @@ msgid "" "both of these behaviors may change in the future." msgstr "" +#: ../../c-api/lifecycle.rst:111 msgid "" ":c:member:`~PyTypeObject.tp_dealloc` can optionally call :c:member:" "`~PyTypeObject.tp_finalize` via :c:func:`PyObject_CallFinalizerFromDealloc` " @@ -117,6 +135,7 @@ msgid "" "documentation for example code." msgstr "" +#: ../../c-api/lifecycle.rst:118 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 " @@ -126,17 +145,20 @@ msgid "" "\"leak\"). See :data:`gc.garbage`." msgstr "" +#: ../../c-api/lifecycle.rst:125 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:129 msgid "" "The garbage collector occasionally calls :c:member:`~PyTypeObject." "tp_traverse` to identify :term:`cyclic isolates `." msgstr "" +#: ../../c-api/lifecycle.rst:132 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 " @@ -145,6 +167,7 @@ msgid "" "been finalized." msgstr "" +#: ../../c-api/lifecycle.rst:137 msgid "" ":c:member:`~PyTypeObject.tp_finalize` is permitted to resurrect the object " "by adding a reference from outside the :term:`cyclic isolate`. The new " @@ -153,6 +176,7 @@ msgid "" "longer isolated)." msgstr "" +#: ../../c-api/lifecycle.rst:142 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 " @@ -162,9 +186,11 @@ msgid "" "all of the objects have been cleared." msgstr "" +#: ../../c-api/lifecycle.rst:151 msgid "Cyclic Isolate Destruction" msgstr "" +#: ../../c-api/lifecycle.rst:153 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. " @@ -175,12 +201,14 @@ msgid "" "(see :c:member:`~PyTypeObject.tp_finalize`)." msgstr "" +#: ../../c-api/lifecycle.rst:161 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:164 msgid "" "**Unreachable but consistent:** The final reference from outside the cyclic " "group of objects has been removed, causing the objects to become isolated " @@ -190,6 +218,7 @@ msgid "" "because the next run might not scan every object)." msgstr "" +#: ../../c-api/lifecycle.rst:170 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 " @@ -200,11 +229,13 @@ msgid "" "an arbitrary subset of its referents." msgstr "" +#: ../../c-api/lifecycle.rst:177 msgid "" "**All finalized:** All objects in a cyclic isolate are finalized before any " "of them are cleared." msgstr "" +#: ../../c-api/lifecycle.rst:179 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 " @@ -212,6 +243,7 @@ msgid "" "a subset of its referents. :pep:`442` calls this stage \"cyclic trash\"." msgstr "" +#: ../../c-api/lifecycle.rst:183 msgid "" "**Leaked:** If a cyclic isolate still exists after all objects in the group " "have been finalized and cleared, then the objects remain indefinitely " @@ -221,6 +253,7 @@ msgid "" "required." msgstr "" +#: ../../c-api/lifecycle.rst:190 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 " @@ -232,6 +265,7 @@ msgid "" "`~PyTypeObject.tp_dealloc` is called to complete the destruction." msgstr "" +#: ../../c-api/lifecycle.rst:199 msgid "" "Unlike clearing, finalization is not a phase of destruction. A finalized " "object must still behave properly by continuing to fulfill its design " @@ -243,6 +277,7 @@ msgid "" "`~PyTypeObject.tp_dealloc`." msgstr "" +#: ../../c-api/lifecycle.rst:207 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 " @@ -254,24 +289,29 @@ msgid "" "only non-cleared (but potentially finalized) objects." msgstr "" +#: ../../c-api/lifecycle.rst:216 msgid "To summarize the possible interactions:" msgstr "" +#: ../../c-api/lifecycle.rst:218 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:220 msgid "" "A finalized object might have references to or from non-finalized, " "finalized, and cleared objects." msgstr "" +#: ../../c-api/lifecycle.rst:222 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:225 msgid "" "Without any reference cycles, an object can be simply destroyed once its " "last reference is deleted; the finalization and clearing steps are not " @@ -285,12 +325,15 @@ msgid "" "change in a future version." msgstr "" +#: ../../c-api/lifecycle.rst:237 msgid "Functions" msgstr "" +#: ../../c-api/lifecycle.rst:239 msgid "To allocate and free memory, see :ref:`allocating-objects`." msgstr "" +#: ../../c-api/lifecycle.rst:244 msgid "" "Finalizes the object as described in :c:member:`~PyTypeObject.tp_finalize`. " "Call this function (or :c:func:`PyObject_CallFinalizerFromDealloc`) instead " @@ -301,6 +344,7 @@ msgid "" "change in the future." msgstr "" +#: ../../c-api/lifecycle.rst:257 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`). " @@ -310,5 +354,6 @@ msgid "" "continue normally." msgstr "" +#: ../../c-api/lifecycle.rst:268 msgid ":c:member:`~PyTypeObject.tp_dealloc` for example code." msgstr "" diff --git a/c-api/list.po b/c-api/list.po index ff92ad9..9a8a07c 100644 --- a/c-api/list.po +++ b/c-api/list.po @@ -8,39 +8,46 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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:" @@ -51,14 +58,17 @@ msgid "" "`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 " @@ -66,53 +76,79 @@ msgid "" "``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:79 ../../c-api/list.rst:91 +msgid "" +"In the :term:`free-threaded build`, the returned :term:`borrowed reference` " +"may become invalid if another thread modifies the list concurrently. Prefer :" +"c:func:`PyList_GetItemRef`, which returns a :term:`strong reference`." +msgstr "" + +#: ../../c-api/list.rst:87 msgid "Similar to :c:func:`PyList_GetItem`, but without error checking." msgstr "" +#: ../../c-api/list.rst:99 msgid "" "Set the item at index *index* in list to *item*. Return ``0`` on success. " "If *index* is out of bounds, return ``-1`` and set an :exc:`IndexError` " "exception." msgstr "" +#: ../../c-api/list.rst:105 msgid "" -"This function \"steals\" a reference to *item* and discards a reference to " -"an item already in the list at the affected position." +"This function \":term:`steals `\" a reference to *item*, even on " +"error. On success, it discards a reference to an item already in the list at " +"the affected position (unless it was ``NULL``)." msgstr "" +#: ../../c-api/list.rst:113 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:116 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:122 msgid "" -"This macro \"steals\" a reference to *item*, and, unlike :c:func:" -"`PyList_SetItem`, does *not* discard a reference to any item that is being " -"replaced; any reference in *list* at position *i* will be leaked." +"This macro \":term:`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:129 +msgid "" +"In the :term:`free-threaded build`, this macro has no internal " +"synchronization. It is normally only used to fill in new lists where no " +"other thread has a reference to the list. If the list may be shared, use :c:" +"func:`PyList_SetItem` instead, which uses a :term:`per-object lock`." +msgstr "" + +#: ../../c-api/list.rst:138 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:145 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:152 msgid "" "Return a list of the objects in *list* containing the objects *between* " "*low* and *high*. Return ``NULL`` and set an exception if unsuccessful. " @@ -120,6 +156,7 @@ msgid "" "supported." msgstr "" +#: ../../c-api/list.rst:159 msgid "" "Set the slice of *list* between *low* and *high* to the contents of " "*itemlist*. Analogous to ``list[low:high] = itemlist``. The *itemlist* may " @@ -128,54 +165,90 @@ msgid "" "list is not supported." msgstr "" +#: ../../c-api/list.rst:167 +msgid "" +"In the :term:`free-threaded build`, when *itemlist* is a :class:`list`, both " +"*list* and *itemlist* are locked for the duration of the operation. For " +"other iterables (or ``NULL``), only *list* is locked." +msgstr "" + +#: ../../c-api/list.rst:174 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:178 msgid "" "Raise an exception and return ``-1`` if *list* is not a :class:`list` " "object. Return 0 on success." msgstr "" +#: ../../c-api/list.rst:185 +msgid "" +"In the :term:`free-threaded build`, when *iterable* is a :class:`list`, :" +"class:`set`, :class:`dict`, or dict view, both *list* and *iterable* (or its " +"underlying dict) are locked for the duration of the operation. For other " +"iterables, only *list* is locked; *iterable* may be concurrently modified by " +"another thread." +msgstr "" + +#: ../../c-api/list.rst:194 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:198 msgid "" "Raise an exception and return ``-1`` if *list* is not a :class:`list` " "object. Return 0 on success." msgstr "" +#: ../../c-api/list.rst:206 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:211 +msgid "" +"In the :term:`free-threaded build`, element comparison via :meth:`~object." +"__lt__` can execute arbitrary Python code, during which the :term:`per-" +"object lock` may be temporarily released. For built-in types (:class:`str`, :" +"class:`int`, :class:`float`), the lock is not released during comparison." +msgstr "" + +#: ../../c-api/list.rst:220 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:228 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:226 msgid "built-in function" msgstr "" +#: ../../c-api/list.rst:51 msgid "len" msgstr "" +#: ../../c-api/list.rst:226 msgid "tuple" msgstr "" diff --git a/c-api/long.po b/c-api/long.po index d5d1e6d..a603e82 100644 --- a/c-api/long.po +++ b/c-api/long.po @@ -8,97 +8,115 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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:45 msgid "" "CPython 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:52 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long`, " "or ``NULL`` on failure." msgstr "" +#: ../../c-api/long.rst:58 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:type:`Py_ssize_t`, or " "``NULL`` on failure." msgstr "" +#: ../../c-api/long.rst:64 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:type:`size_t`, or " "``NULL`` on failure." msgstr "" +#: ../../c-api/long.rst:70 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:expr:`long long`, or " "``NULL`` on failure." msgstr "" +#: ../../c-api/long.rst:76 msgid "" -"Return a new :c:type:`PyLongObject` object from a signed C :c:expr:`int32_t` " -"or :c:expr:`int64_t`, or ``NULL`` with an exception set on failure." +"Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long " +"long`, or ``NULL`` on failure." msgstr "" +#: ../../c-api/long.rst:83 msgid "" -"Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long " -"long`, or ``NULL`` on failure." +"Return a new :c:type:`PyLongObject` object from a signed C :c:expr:`int32_t` " +"or :c:expr:`int64_t`, or ``NULL`` with an exception set on failure." msgstr "" +#: ../../c-api/long.rst:93 msgid "" "Return a new :c:type:`PyLongObject` object from an unsigned C :c:expr:" "`uint32_t` or :c:expr:`uint64_t`, or ``NULL`` with an exception set on " "failure." msgstr "" +#: ../../c-api/long.rst:102 msgid "" "Return a new :c:type:`PyLongObject` object from the integer part of *v*, or " "``NULL`` on failure." msgstr "" +#: ../../c-api/long.rst:108 msgid "" "Return a new :c:type:`PyLongObject` based on the string value in *str*, " "which is interpreted according to the radix in *base*, or ``NULL`` on " @@ -113,27 +131,32 @@ msgid "" "whitespace, :exc:`ValueError` will be raised." msgstr "" +#: ../../c-api/long.rst:119 msgid "" ":c:func:`PyLong_AsNativeBytes()` and :c:func:`PyLong_FromNativeBytes()` " "functions can be used to convert a :c:type:`PyLongObject` to/from an array " "of bytes in base ``256``." msgstr "" +#: ../../c-api/long.rst:126 msgid "" "Convert a sequence of Unicode digits in the string *u* to a Python integer " "value." msgstr "" +#: ../../c-api/long.rst:134 msgid "" "Create a Python integer from the pointer *p*. The pointer value can be " "retrieved from the resulting value using :c:func:`PyLong_AsVoidPtr`." msgstr "" +#: ../../c-api/long.rst:140 msgid "" "Create a Python integer from the value contained in the first *n_bytes* of " "*buffer*, interpreted as a two's-complement signed number." msgstr "" +#: ../../c-api/long.rst:143 msgid "" "*flags* are as for :c:func:`PyLong_AsNativeBytes`. Passing ``-1`` will " "select the native endian that CPython was compiled with and assume that the " @@ -142,51 +165,70 @@ msgid "" "calling :c:func:`PyLong_FromUnsignedNativeBytes`. Other flags are ignored." msgstr "" +#: ../../c-api/long.rst:154 msgid "" "Create a Python integer from the value contained in the first *n_bytes* of " "*buffer*, interpreted as an unsigned number." msgstr "" +#: ../../c-api/long.rst:157 msgid "" "*flags* are as for :c:func:`PyLong_AsNativeBytes`. Passing ``-1`` will " "select the native endian that CPython was compiled with and assume that the " "most-significant bit is not a sign bit. Flags other than endian are ignored." msgstr "" +#: ../../c-api/long.rst:166 +msgid "Macro for creating a Python integer from a process identifier." +msgstr "" + +#: ../../c-api/long.rst:168 +msgid "" +"This can be defined as an alias to :c:func:`PyLong_FromLong` or :c:func:" +"`PyLong_FromLongLong`, depending on the size of the system's PID type." +msgstr "" + +#: ../../c-api/long.rst:181 ../../c-api/long.rst:215 msgid "" "Return a C :c:expr:`long` representation of *obj*. If *obj* is not an " "instance of :c:type:`PyLongObject`, first call its :meth:`~object.__index__` " "method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" +#: ../../c-api/long.rst:185 msgid "" "Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" "expr:`long`." msgstr "" +#: ../../c-api/long.rst:188 ../../c-api/long.rst:224 ../../c-api/long.rst:245 +#: ../../c-api/long.rst:265 ../../c-api/long.rst:288 msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" +#: ../../c-api/long.rst:190 ../../c-api/long.rst:226 ../../c-api/long.rst:247 +#: ../../c-api/long.rst:269 ../../c-api/long.rst:353 ../../c-api/long.rst:373 msgid "Use :meth:`~object.__index__` if available." msgstr "" +#: ../../c-api/long.rst:193 ../../c-api/long.rst:229 ../../c-api/long.rst:250 +#: ../../c-api/long.rst:272 ../../c-api/long.rst:356 ../../c-api/long.rst:376 msgid "This function will no longer use :meth:`~object.__int__`." msgstr "" +#: ../../c-api/long.rst:200 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 "" - -msgid "The function is soft deprecated." +"Exactly equivalent to the preferred ``PyLong_AsLong``. In particular, it can " +"fail with :exc:`OverflowError` or another exception." msgstr "" +#: ../../c-api/long.rst:207 msgid "" "Similar to :c:func:`PyLong_AsLong`, but store the result in a C :c:expr:" "`int` instead of a C :c:expr:`long`." msgstr "" +#: ../../c-api/long.rst:219 msgid "" "If the value of *obj* is greater than :c:macro:`LONG_MAX` or less than :c:" "macro:`LONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and " @@ -194,17 +236,20 @@ msgid "" "exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" +#: ../../c-api/long.rst:238 ../../c-api/long.rst:256 msgid "" "Return a C :c:expr:`long long` representation of *obj*. If *obj* is not an " "instance of :c:type:`PyLongObject`, first call its :meth:`~object.__index__` " "method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" +#: ../../c-api/long.rst:242 msgid "" "Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" "expr:`long long`." msgstr "" +#: ../../c-api/long.rst:260 msgid "" "If the value of *obj* is greater than :c:macro:`LLONG_MAX` or less than :c:" "macro:`LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and " @@ -212,141 +257,170 @@ msgid "" "exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" +#: ../../c-api/long.rst:282 msgid "" "Return a C :c:type:`Py_ssize_t` representation of *pylong*. *pylong* must " "be an instance of :c:type:`PyLongObject`." msgstr "" +#: ../../c-api/long.rst:285 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`Py_ssize_t`." msgstr "" +#: ../../c-api/long.rst:297 msgid "" "Return a C :c:expr:`unsigned long` representation of *pylong*. *pylong* " "must be an instance of :c:type:`PyLongObject`." msgstr "" +#: ../../c-api/long.rst:300 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "expr:`unsigned long`." msgstr "" +#: ../../c-api/long.rst:303 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" +#: ../../c-api/long.rst:313 msgid "" "Return a C :c:type:`size_t` representation of *pylong*. *pylong* must be an " "instance of :c:type:`PyLongObject`." msgstr "" +#: ../../c-api/long.rst:316 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`size_t`." msgstr "" +#: ../../c-api/long.rst:319 msgid "" "Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" +#: ../../c-api/long.rst:328 msgid "" "Return a C :c:expr:`unsigned long long` representation of *pylong*. " "*pylong* must be an instance of :c:type:`PyLongObject`." msgstr "" +#: ../../c-api/long.rst:331 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for an :" "c:expr:`unsigned long long`." msgstr "" +#: ../../c-api/long.rst:334 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" +#: ../../c-api/long.rst:337 msgid "" "A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`." msgstr "" +#: ../../c-api/long.rst:343 msgid "" "Return a C :c:expr:`unsigned long` representation of *obj*. If *obj* is not " "an instance of :c:type:`PyLongObject`, first call its :meth:`~object." "__index__` method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" +#: ../../c-api/long.rst:347 msgid "" "If the value of *obj* is out of range for an :c:expr:`unsigned long`, return " "the reduction of that value modulo ``ULONG_MAX + 1``." msgstr "" +#: ../../c-api/long.rst:350 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" +#: ../../c-api/long.rst:362 msgid "" "Return a C :c:expr:`unsigned long long` representation of *obj*. If *obj* " "is not an instance of :c:type:`PyLongObject`, first call its :meth:`~object." "__index__` method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" +#: ../../c-api/long.rst:367 msgid "" "If the value of *obj* is out of range for an :c:expr:`unsigned long long`, " "return the reduction of that value modulo ``ULLONG_MAX + 1``." msgstr "" +#: ../../c-api/long.rst:370 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` " "to disambiguate." msgstr "" +#: ../../c-api/long.rst:383 msgid "" "Set *\\*value* to a signed C :c:expr:`int32_t` or :c:expr:`int64_t` " "representation of *obj*." msgstr "" +#: ../../c-api/long.rst:386 ../../c-api/long.rst:406 msgid "" "If *obj* is not an instance of :c:type:`PyLongObject`, first call its :meth:" "`~object.__index__` method (if present) to convert it to a :c:type:" "`PyLongObject`." msgstr "" +#: ../../c-api/long.rst:390 ../../c-api/long.rst:411 msgid "If the *obj* value is out of range, raise an :exc:`OverflowError`." msgstr "" +#: ../../c-api/long.rst:392 ../../c-api/long.rst:413 msgid "" "Set *\\*value* and return ``0`` on success. Set an exception and return " "``-1`` on error." msgstr "" +#: ../../c-api/long.rst:395 ../../c-api/long.rst:416 msgid "*value* must not be ``NULL``." msgstr "" +#: ../../c-api/long.rst:403 msgid "" "Set *\\*value* to an unsigned C :c:expr:`uint32_t` or :c:expr:`uint64_t` " "representation of *obj*." msgstr "" +#: ../../c-api/long.rst:410 msgid "If *obj* is negative, raise a :exc:`ValueError`." msgstr "" +#: ../../c-api/long.rst:423 msgid "" "Return a C :c:expr:`double` representation of *pylong*. *pylong* must be an " "instance of :c:type:`PyLongObject`." msgstr "" +#: ../../c-api/long.rst:426 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "expr:`double`." msgstr "" +#: ../../c-api/long.rst:429 msgid "" "Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" +#: ../../c-api/long.rst:434 msgid "" "Convert a Python integer *pylong* to a C :c:expr:`void` pointer. If *pylong* " "cannot be converted, an :exc:`OverflowError` will be raised. This is only " @@ -354,28 +428,34 @@ msgid "" "c:func:`PyLong_FromVoidPtr`." msgstr "" +#: ../../c-api/long.rst:439 msgid "" "Returns ``NULL`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" +#: ../../c-api/long.rst:444 msgid "" "Copy the Python integer value *pylong* to a native *buffer* of size " "*n_bytes*. The *flags* can be set to ``-1`` to behave similarly to a C cast, " "or to values documented below to control the behavior." msgstr "" +#: ../../c-api/long.rst:448 msgid "" "Returns ``-1`` with an exception raised on error. This may happen if " "*pylong* cannot be interpreted as an integer, or if *pylong* was negative " "and the ``Py_ASNATIVEBYTES_REJECT_NEGATIVE`` flag was set." msgstr "" +#: ../../c-api/long.rst:452 msgid "" "Otherwise, returns the number of bytes required to store the value. If this " "is equal to or less than *n_bytes*, the entire value was copied. All " -"*n_bytes* of the buffer are written: large buffers are padded with zeroes." +"*n_bytes* of the buffer are written: remaining bytes filled by copies of the " +"sign bit." msgstr "" +#: ../../c-api/long.rst:457 msgid "" "If the returned value is greater than *n_bytes*, the value was truncated: as " "many of the lowest bits of the value as could fit are written, and the " @@ -383,20 +463,25 @@ msgid "" "downcast." msgstr "" +#: ../../c-api/long.rst:464 msgid "" "Overflow is not considered an error. If the returned value is larger than " "*n_bytes*, most significant bits were discarded." msgstr "" +#: ../../c-api/long.rst:467 msgid "``0`` will never be returned." msgstr "" +#: ../../c-api/long.rst:469 msgid "Values are always copied as two's-complement." msgstr "" +#: ../../c-api/long.rst:471 msgid "Usage example::" msgstr "" +#: ../../c-api/long.rst:473 msgid "" "int32_t value;\n" "Py_ssize_t bytes = PyLong_AsNativeBytes(pylong, &value, sizeof(value), -1);\n" @@ -413,22 +498,26 @@ msgid "" "}" msgstr "" +#: ../../c-api/long.rst:487 msgid "" "Passing zero to *n_bytes* will return the size of a buffer that would be " "large enough to hold the value. This may be larger than technically " "necessary, but not unreasonably so. If *n_bytes=0*, *buffer* may be ``NULL``." msgstr "" +#: ../../c-api/long.rst:494 msgid "" "Passing *n_bytes=0* to this function is not an accurate way to determine the " "bit length of the value." msgstr "" +#: ../../c-api/long.rst:497 msgid "" "To get at the entire Python value of an unknown size, the function can be " "called twice: first to determine the buffer size, then to fill it::" msgstr "" +#: ../../c-api/long.rst:500 msgid "" "// Ask how much space we need.\n" "Py_ssize_t expected = PyLong_AsNativeBytes(pylong, NULL, 0, -1);\n" @@ -459,55 +548,69 @@ msgid "" "free(bignum);" msgstr "" +#: ../../c-api/long.rst:528 msgid "" "*flags* is either ``-1`` (``Py_ASNATIVEBYTES_DEFAULTS``) to select defaults " "that behave most like a C cast, or a combination of the other flags in the " "table below. Note that ``-1`` cannot be combined with other flags." msgstr "" +#: ../../c-api/long.rst:533 msgid "" "Currently, ``-1`` corresponds to ``Py_ASNATIVEBYTES_NATIVE_ENDIAN | " "Py_ASNATIVEBYTES_UNSIGNED_BUFFER``." msgstr "" +#: ../../c-api/long.rst:539 msgid "Flag" msgstr "" +#: ../../c-api/long.rst:539 msgid "Value" msgstr "" +#: ../../c-api/long.rst:541 msgid "``-1``" msgstr "" +#: ../../c-api/long.rst:542 msgid "``0``" msgstr "" +#: ../../c-api/long.rst:543 msgid "``1``" msgstr "" +#: ../../c-api/long.rst:544 msgid "``3``" msgstr "" +#: ../../c-api/long.rst:545 msgid "``4``" msgstr "" +#: ../../c-api/long.rst:546 msgid "``8``" msgstr "" +#: ../../c-api/long.rst:547 msgid "``16``" msgstr "" +#: ../../c-api/long.rst:550 msgid "" "Specifying ``Py_ASNATIVEBYTES_NATIVE_ENDIAN`` will override any other endian " "flags. Passing ``2`` is reserved." msgstr "" +#: ../../c-api/long.rst:553 msgid "" "By default, sufficient buffer will be requested to include a sign bit. For " "example, when converting 128 with *n_bytes=1*, the function will return 2 " "(or more) in order to store a zero sign bit." msgstr "" +#: ../../c-api/long.rst:557 msgid "" "If ``Py_ASNATIVEBYTES_UNSIGNED_BUFFER`` is specified, a zero sign bit will " "be omitted from size calculations. This allows, for example, 128 to fit in a " @@ -517,6 +620,7 @@ msgid "" "requested." msgstr "" +#: ../../c-api/long.rst:564 msgid "" "Specifying ``Py_ASNATIVEBYTES_REJECT_NEGATIVE`` causes an exception to be " "set if *pylong* is negative. Without this flag, negative values will be " @@ -524,6 +628,7 @@ msgid "" "of whether ``Py_ASNATIVEBYTES_UNSIGNED_BUFFER`` was specified." msgstr "" +#: ../../c-api/long.rst:569 msgid "" "If ``Py_ASNATIVEBYTES_ALLOW_INDEX`` is specified and a non-integer value is " "passed, its :meth:`~object.__index__` method will be called first. This may " @@ -533,6 +638,7 @@ msgid "" "`TypeError`." msgstr "" +#: ../../c-api/long.rst:578 msgid "" "With the default *flags* (``-1``, or *UNSIGNED_BUFFER* without " "*REJECT_NEGATIVE*), multiple Python integers can map to a single value " @@ -540,58 +646,82 @@ msgid "" "buffer and set all its bits. This matches typical C cast behavior." msgstr "" +#: ../../c-api/long.rst:589 +msgid "Macro for converting a Python integer into a process identifier." +msgstr "" + +#: ../../c-api/long.rst:591 +msgid "" +"This can be defined as an alias to :c:func:`PyLong_AsLong`, :c:func:" +"`PyLong_FromLongLong`, or :c:func:`PyLong_AsInt`, depending on the size of " +"the system's PID type." +msgstr "" + +#: ../../c-api/long.rst:600 msgid "Get the sign of the integer object *obj*." msgstr "" +#: ../../c-api/long.rst:602 msgid "" "On success, set *\\*sign* to the integer sign (0, -1 or +1 for zero, " "negative or positive integer, respectively) and return 0." msgstr "" +#: ../../c-api/long.rst:605 msgid "" "On failure, return -1 with an exception set. This function always succeeds " "if *obj* is a :c:type:`PyLongObject` or its subtype." msgstr "" +#: ../../c-api/long.rst:613 msgid "Check if the integer object *obj* is positive (``obj > 0``)." msgstr "" +#: ../../c-api/long.rst:615 msgid "" "If *obj* is an instance of :c:type:`PyLongObject` or its subtype, return " "``1`` when it's positive and ``0`` otherwise. Else set an exception and " "return ``-1``." msgstr "" +#: ../../c-api/long.rst:624 msgid "Check if the integer object *obj* is negative (``obj < 0``)." msgstr "" +#: ../../c-api/long.rst:626 msgid "" "If *obj* is an instance of :c:type:`PyLongObject` or its subtype, return " "``1`` when it's negative and ``0`` otherwise. Else set an exception and " "return ``-1``." msgstr "" +#: ../../c-api/long.rst:635 msgid "Check if the integer object *obj* is zero." msgstr "" +#: ../../c-api/long.rst:637 msgid "" "If *obj* is an instance of :c:type:`PyLongObject` or its subtype, return " "``1`` when it's zero and ``0`` otherwise. Else set an exception and return " "``-1``." msgstr "" +#: ../../c-api/long.rst:646 msgid "" "On success, return a read only :term:`named tuple`, that holds information " "about Python's internal representation of integers. See :data:`sys.int_info` " "for description of individual fields." msgstr "" +#: ../../c-api/long.rst:650 msgid "On failure, return ``NULL`` with an exception set." msgstr "" +#: ../../c-api/long.rst:657 msgid "Return 1 if *op* is compact, 0 otherwise." msgstr "" +#: ../../c-api/long.rst:659 msgid "" "This function makes it possible for performance-critical code to implement a " "“fast path” for small integers. For compact values use :c:func:" @@ -599,74 +729,93 @@ msgid "" "`PyLong_As* ` function or :c:func:`PyLong_AsNativeBytes`." msgstr "" +#: ../../c-api/long.rst:665 msgid "The speedup is expected to be negligible for most users." msgstr "" +#: ../../c-api/long.rst:667 msgid "" "Exactly what values are considered compact is an implementation detail and " "is subject to change." msgstr "" +#: ../../c-api/long.rst:675 msgid "" "If *op* is compact, as determined by :c:func:`PyUnstable_Long_IsCompact`, " "return its value." msgstr "" +#: ../../c-api/long.rst:678 msgid "Otherwise, the return value is undefined." msgstr "" +#: ../../c-api/long.rst:684 msgid "Export API" msgstr "" +#: ../../c-api/long.rst:690 msgid "" "Layout of an array of \"digits\" (\"limbs\" in the GMP terminology), used to " "represent absolute value for arbitrary precision integers." msgstr "" +#: ../../c-api/long.rst:693 msgid "" "Use :c:func:`PyLong_GetNativeLayout` to get the native layout of Python :" "class:`int` objects, used internally for integers with \"big enough\" " "absolute value." msgstr "" +#: ../../c-api/long.rst:697 msgid "" "See also :data:`sys.int_info` which exposes similar information in Python." msgstr "" +#: ../../c-api/long.rst:701 msgid "" "Bits per digit. For example, a 15 bit digit means that bits 0-14 contain " "meaningful information." msgstr "" +#: ../../c-api/long.rst:706 msgid "" "Digit size in bytes. For example, a 15 bit digit will require at least 2 " "bytes." msgstr "" +#: ../../c-api/long.rst:711 msgid "Digits order:" msgstr "" +#: ../../c-api/long.rst:713 msgid "``1`` for most significant digit first" msgstr "" +#: ../../c-api/long.rst:714 msgid "``-1`` for least significant digit first" msgstr "" +#: ../../c-api/long.rst:718 msgid "Digit endianness:" msgstr "" +#: ../../c-api/long.rst:720 msgid "``1`` for most significant byte first (big endian)" msgstr "" +#: ../../c-api/long.rst:721 msgid "``-1`` for least significant byte first (little endian)" msgstr "" +#: ../../c-api/long.rst:726 msgid "Get the native layout of Python :class:`int` objects." msgstr "" +#: ../../c-api/long.rst:728 msgid "See the :c:struct:`PyLongLayout` structure." msgstr "" +#: ../../c-api/long.rst:730 msgid "" "The function must not be called before Python initialization nor after " "Python finalization. The returned layout is valid until Python is finalized. " @@ -674,103 +823,128 @@ msgid "" "it can be cached." msgstr "" +#: ../../c-api/long.rst:738 msgid "Export of a Python :class:`int` object." msgstr "" +#: ../../c-api/long.rst:740 msgid "There are two cases:" msgstr "" +#: ../../c-api/long.rst:742 msgid "" "If :c:member:`digits` is ``NULL``, only use the :c:member:`value` member." msgstr "" +#: ../../c-api/long.rst:743 msgid "" "If :c:member:`digits` is not ``NULL``, use :c:member:`negative`, :c:member:" "`ndigits` and :c:member:`digits` members." msgstr "" +#: ../../c-api/long.rst:748 msgid "" "The native integer value of the exported :class:`int` object. Only valid if :" "c:member:`digits` is ``NULL``." msgstr "" +#: ../../c-api/long.rst:753 msgid "" "``1`` if the number is negative, ``0`` otherwise. Only valid if :c:member:" "`digits` is not ``NULL``." msgstr "" +#: ../../c-api/long.rst:758 msgid "" "Number of digits in :c:member:`digits` array. Only valid if :c:member:" "`digits` is not ``NULL``." msgstr "" +#: ../../c-api/long.rst:763 msgid "Read-only array of unsigned digits. Can be ``NULL``." msgstr "" +#: ../../c-api/long.rst:768 msgid "Export a Python :class:`int` object." msgstr "" +#: ../../c-api/long.rst:770 msgid "" "*export_long* must point to a :c:struct:`PyLongExport` structure allocated " "by the caller. It must not be ``NULL``." msgstr "" +#: ../../c-api/long.rst:773 msgid "" "On success, fill in *\\*export_long* and return ``0``. On error, set an " "exception and return ``-1``." msgstr "" +#: ../../c-api/long.rst:776 msgid "" ":c:func:`PyLong_FreeExport` must be called when the export is no longer " "needed." msgstr "" +#: ../../c-api/long.rst:780 msgid "" "This function always succeeds if *obj* is a Python :class:`int` object or a " "subclass." msgstr "" +#: ../../c-api/long.rst:786 msgid "Release the export *export_long* created by :c:func:`PyLong_Export`." msgstr "" +#: ../../c-api/long.rst:789 msgid "" "Calling :c:func:`PyLong_FreeExport` is optional if *export_long->digits* is " "``NULL``." msgstr "" +#: ../../c-api/long.rst:794 msgid "PyLongWriter API" msgstr "" +#: ../../c-api/long.rst:796 msgid "The :c:type:`PyLongWriter` API can be used to import an integer." msgstr "" +#: ../../c-api/long.rst:802 msgid "A Python :class:`int` writer instance." msgstr "" +#: ../../c-api/long.rst:804 msgid "" "The instance must be destroyed by :c:func:`PyLongWriter_Finish` or :c:func:" "`PyLongWriter_Discard`." msgstr "" +#: ../../c-api/long.rst:810 msgid "Create a :c:type:`PyLongWriter`." msgstr "" +#: ../../c-api/long.rst:812 msgid "" "On success, allocate *\\*digits* and return a writer. On error, set an " "exception and return ``NULL``." msgstr "" +#: ../../c-api/long.rst:815 msgid "*negative* is ``1`` if the number is negative, or ``0`` otherwise." msgstr "" +#: ../../c-api/long.rst:817 msgid "" "*ndigits* is the number of digits in the *digits* array. It must be greater " "than 0." msgstr "" +#: ../../c-api/long.rst:820 msgid "*digits* must not be NULL." msgstr "" +#: ../../c-api/long.rst:822 msgid "" "After a successful call to this function, the caller should fill in the " "array of digits *digits* and then call :c:func:`PyLongWriter_Finish` to get " @@ -778,61 +952,110 @@ msgid "" "`PyLong_GetNativeLayout`." msgstr "" +#: ../../c-api/long.rst:827 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:832 msgid "" "Alternately, call :c:func:`PyLongWriter_Discard` to destroy the writer " "instance without creating an :class:`~int` object." msgstr "" +#: ../../c-api/long.rst:838 msgid "" "Finish a :c:type:`PyLongWriter` created by :c:func:`PyLongWriter_Create`." msgstr "" +#: ../../c-api/long.rst:840 msgid "" "On success, return a Python :class:`int` object. On error, set an exception " "and return ``NULL``." msgstr "" +#: ../../c-api/long.rst:843 msgid "" "The function takes care of normalizing the digits and converts the object to " "a compact integer if needed." msgstr "" +#: ../../c-api/long.rst:846 ../../c-api/long.rst:855 msgid "The writer instance and the *digits* array are invalid after the call." msgstr "" +#: ../../c-api/long.rst:851 msgid "" "Discard a :c:type:`PyLongWriter` created by :c:func:`PyLongWriter_Create`." msgstr "" +#: ../../c-api/long.rst:853 msgid "If *writer* is ``NULL``, no operation is performed." msgstr "" +#: ../../c-api/long.rst:859 +msgid "Deprecated API" +msgstr "" + +#: ../../c-api/long.rst:861 +msgid "" +"These macros are :term:`soft deprecated`. They describe parameters of the " +"internal representation of :c:type:`PyLongObject` instances." +msgstr "" + +#: ../../c-api/long.rst:864 +msgid "" +"Use :c:func:`PyLong_GetNativeLayout` instead, along with :c:func:" +"`PyLong_Export` to read integer data or :c:type:`PyLongWriter` to write it. " +"These currently use the same layout, but are designed to continue working " +"correctly even if CPython's internal integer representation changes." +msgstr "" + +#: ../../c-api/long.rst:872 +msgid "" +"This is equivalent to :c:member:`~PyLongLayout.bits_per_digit` in the output " +"of :c:func:`PyLong_GetNativeLayout`." +msgstr "" + +#: ../../c-api/long.rst:878 +msgid "This is currently equivalent to :c:expr:`1 << PyLong_SHIFT`." +msgstr "" + +#: ../../c-api/long.rst:883 +msgid "This is currently equivalent to :c:expr:`(1 << PyLong_SHIFT) - 1`" +msgstr "" + +#: ../../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:177 msgid "LONG_MAX (C macro)" msgstr "" +#: ../../c-api/long.rst:177 ../../c-api/long.rst:235 ../../c-api/long.rst:278 +#: ../../c-api/long.rst:293 ../../c-api/long.rst:309 ../../c-api/long.rst:325 msgid "OverflowError (built-in exception)" msgstr "" +#: ../../c-api/long.rst:278 msgid "PY_SSIZE_T_MAX (C macro)" msgstr "" +#: ../../c-api/long.rst:293 msgid "ULONG_MAX (C macro)" msgstr "" +#: ../../c-api/long.rst:309 msgid "SIZE_MAX (C macro)" msgstr "" diff --git a/c-api/mapping.po b/c-api/mapping.po index ca3aecc..d2ea670 100644 --- a/c-api/mapping.po +++ b/c-api/mapping.po @@ -8,23 +8,26 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -33,22 +36,26 @@ msgid "" "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`` " @@ -57,86 +64,103 @@ msgid "" "*\\*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:" +"Exceptions which occur when this calls the :meth:`~object.__getitem__` " +"method are silently ignored. For proper error handling, use :c:func:" "`PyMapping_HasKeyWithError`, :c:func:`PyMapping_GetOptionalItem` or :c:func:" "`PyObject_GetItem()` instead." msgstr "" +#: ../../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:" +"Exceptions that occur when this calls the :meth:`~object.__getitem__` method " +"or while creating the temporary :class:`str` object are silently ignored. " +"For proper error handling, use :c:func:`PyMapping_HasKeyStringWithError`, :c:" "func:`PyMapping_GetOptionalItemString` or :c:func:`PyMapping_GetItemString` " "instead." msgstr "" +#: ../../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 index b7ba202..44e30b9 100644 --- a/c-api/marshal.po +++ b/c-api/marshal.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -28,78 +30,94 @@ msgid "" "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 " +"file. Only use this variant if you are certain that you won't be reading " "anything else from the file." msgstr "" +#: ../../c-api/marshal.rst:94 msgid "" "Return a Python object from the data stream in a byte buffer containing " "*len* bytes pointed to by *data*." diff --git a/c-api/memory.po b/c-api/memory.po index 7d179a4..2dbb488 100644 --- a/c-api/memory.po +++ b/c-api/memory.po @@ -11,22 +11,25 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -35,6 +38,7 @@ msgid "" "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 " @@ -48,6 +52,7 @@ msgid "" "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 " @@ -57,6 +62,7 @@ msgid "" "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:" @@ -68,6 +74,7 @@ msgid "" "in the following example::" msgstr "" +#: ../../c-api/memory.rst:58 msgid "" "PyObject *res;\n" "char *buf = (char *) malloc(BUFSIZ); /* for I/O */\n" @@ -80,12 +87,14 @@ msgid "" "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 " @@ -99,39 +108,45 @@ msgid "" "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." +"in the previous example, the allocated memory for the I/O buffer completely " +"escapes 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 " +"purposes a simplified table can be found at :ref:`default-memory-" +"allocators`. The APIs used to allocate and free a block of memory must be " "from the same domain. For example, :c:func:`PyMem_Free` must be used to free " "memory allocated using :c:func:`PyMem_Malloc`." msgstr "" +#: ../../c-api/memory.rst: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 " @@ -140,6 +155,7 @@ msgid "" "memoryinterface>`." 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 " @@ -147,12 +163,14 @@ msgid "" "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 " @@ -160,24 +178,29 @@ msgid "" "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` " @@ -185,51 +208,63 @@ msgid "" "requesting zero bytes." msgstr "" +#: ../../c-api/memory.rst:154 ../../c-api/memory.rst:232 +#: ../../c-api/memory.rst:365 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:242 +#: ../../c-api/memory.rst:375 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." +"Allocates *nelem* elements each of size *elsize* bytes 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:255 +#: ../../c-api/memory.rst:388 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:" @@ -237,59 +272,80 @@ msgid "" "called before, undefined behavior occurs." msgstr "" +#: ../../c-api/memory.rst:199 ../../c-api/memory.rst:276 +#: ../../c-api/memory.rst:409 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:344 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 `." +"In the GIL-enabled build (default build) the :ref:`default memory allocator " +"` uses the :ref:`pymalloc memory allocator " +"`, whereas in the :term:`free-threaded build`, the default is the :" +"ref:`mimalloc memory allocator ` instead." msgstr "" +#: ../../c-api/memory.rst:219 ../../c-api/memory.rst:361 msgid "" "There must be an :term:`attached thread state` when using these functions." msgstr "" +#: ../../c-api/memory.rst:223 msgid "" "The default allocator is now pymalloc instead of system :c:func:`malloc`." msgstr "" +#: ../../c-api/memory.rst:227 +msgid "" +"In the :term:`free-threaded ` build, the default allocator " +"is now :ref:`mimalloc `." +msgstr "" + +#: ../../c-api/memory.rst:235 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:246 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:258 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:262 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:265 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:271 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:" @@ -297,17 +353,20 @@ msgid "" "undefined behavior occurs." msgstr "" +#: ../../c-api/memory.rst:278 msgid "" "The following type-oriented macros are provided for convenience. Note that " "*TYPE* refers to any C type." msgstr "" +#: ../../c-api/memory.rst:284 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:291 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* " @@ -315,42 +374,67 @@ msgid "" "failure." msgstr "" +#: ../../c-api/memory.rst:296 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:302 msgid "Same as :c:func:`PyMem_Free`." msgstr "" +#: ../../c-api/memory.rst:306 +msgid "Deprecated aliases" +msgstr "" + +#: ../../c-api/memory.rst:308 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." +"These are :term:`soft deprecated` aliases to existing functions and macros. " +"They exist solely for backwards compatibility." +msgstr "" + +#: ../../c-api/memory.rst:315 +msgid "Deprecated alias" +msgstr "" + +#: ../../c-api/memory.rst:316 +msgid "Corresponding function or macro" msgstr "" -msgid "``PyMem_MALLOC(size)``" +#: ../../c-api/memory.rst:318 +msgid ":c:func:`PyMem_Malloc`" msgstr "" -msgid "``PyMem_NEW(type, size)``" +#: ../../c-api/memory.rst:320 +msgid ":c:macro:`PyMem_New`" msgstr "" -msgid "``PyMem_REALLOC(ptr, size)``" +#: ../../c-api/memory.rst:322 ../../c-api/memory.rst:511 +msgid ":c:func:`PyMem_Realloc`" msgstr "" -msgid "``PyMem_RESIZE(ptr, type, size)``" +#: ../../c-api/memory.rst:324 +msgid ":c:macro:`PyMem_Resize`" msgstr "" -msgid "``PyMem_FREE(ptr)``" +#: ../../c-api/memory.rst:326 ../../c-api/memory.rst:328 +#: ../../c-api/memory.rst:513 +msgid ":c:func:`PyMem_Free`" msgstr "" -msgid "``PyMem_DEL(ptr)``" -msgstr "``PyMem_DEL(ptr)``" +#: ../../c-api/memory.rst:332 +msgid "" +"The macros are now aliases of the corresponding functions and macros. " +"Previously, their behavior was the same, but their use did not necessarily " +"preserve binary compatibility across Python versions." +msgstr "" +#: ../../c-api/memory.rst:342 msgid "Object allocators" msgstr "" +#: ../../c-api/memory.rst:349 msgid "" "There is no guarantee that the memory returned by these allocators can be " "successfully cast to a Python object when intercepting the allocating " @@ -358,40 +442,49 @@ msgid "" "Memory Allocators ` section." msgstr "" +#: ../../c-api/memory.rst:354 msgid "" "The :ref:`default object allocator ` uses the :" -"ref:`pymalloc memory allocator `." +"ref:`pymalloc memory allocator `. In the :term:`free-threaded " +"` build, the default is the :ref:`mimalloc memory allocator " +"` instead." msgstr "" +#: ../../c-api/memory.rst:368 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:379 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:391 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:395 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:398 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:404 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:" @@ -399,245 +492,331 @@ msgid "" "called before, undefined behavior occurs." msgstr "" +#: ../../c-api/memory.rst:411 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:414 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:419 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:421 ../../c-api/memory.rst:519 msgid ":c:func:`PyObject_Malloc`" msgstr "" +#: ../../c-api/memory.rst:422 ../../c-api/memory.rst:520 msgid ":c:func:`PyObject_Realloc`" msgstr "" +#: ../../c-api/memory.rst:423 ../../c-api/memory.rst:521 msgid ":c:func:`PyObject_Calloc`" msgstr "" +#: ../../c-api/memory.rst:424 msgid ":c:macro:`PyObject_New`" msgstr "" +#: ../../c-api/memory.rst:425 msgid ":c:macro:`PyObject_NewVar`" msgstr "" +#: ../../c-api/memory.rst:426 msgid ":c:func:`PyType_GenericAlloc`" msgstr "" +#: ../../c-api/memory.rst:427 msgid ":c:member:`~PyTypeObject.tp_free`" msgstr "" +#: ../../c-api/memory.rst:433 msgid "Default Memory Allocators" msgstr "" +#: ../../c-api/memory.rst:435 msgid "Default memory allocators:" msgstr "" +#: ../../c-api/memory.rst:438 msgid "Configuration" msgstr "" +#: ../../c-api/memory.rst:438 msgid "Name" msgstr "Name" +#: ../../c-api/memory.rst:438 msgid "PyMem_RawMalloc" msgstr "" +#: ../../c-api/memory.rst:438 msgid "PyMem_Malloc" msgstr "" +#: ../../c-api/memory.rst:438 msgid "PyObject_Malloc" msgstr "" +#: ../../c-api/memory.rst:440 msgid "Release build" msgstr "" +#: ../../c-api/memory.rst:440 msgid "``\"pymalloc\"``" msgstr "" +#: ../../c-api/memory.rst:440 ../../c-api/memory.rst:442 msgid "``malloc``" msgstr "" +#: ../../c-api/memory.rst:440 msgid "``pymalloc``" msgstr "" +#: ../../c-api/memory.rst:441 msgid "Debug build" msgstr "" +#: ../../c-api/memory.rst:441 msgid "``\"pymalloc_debug\"``" msgstr "" +#: ../../c-api/memory.rst:441 ../../c-api/memory.rst:443 msgid "``malloc`` + debug" msgstr "" +#: ../../c-api/memory.rst:441 msgid "``pymalloc`` + debug" msgstr "" +#: ../../c-api/memory.rst:442 msgid "Release build, without pymalloc" msgstr "" +#: ../../c-api/memory.rst:442 msgid "``\"malloc\"``" msgstr "" +#: ../../c-api/memory.rst:443 msgid "Debug build, without pymalloc" msgstr "" +#: ../../c-api/memory.rst:443 msgid "``\"malloc_debug\"``" msgstr "" +#: ../../c-api/memory.rst:444 +msgid "Free-threaded build" +msgstr "" + +#: ../../c-api/memory.rst:444 +msgid "``\"mimalloc\"``" +msgstr "" + +#: ../../c-api/memory.rst:444 +msgid "``mimalloc``" +msgstr "" + +#: ../../c-api/memory.rst:445 +msgid "Free-threaded debug build" +msgstr "" + +#: ../../c-api/memory.rst:445 +msgid "``\"mimalloc_debug\"``" +msgstr "" + +#: ../../c-api/memory.rst:445 +msgid "``mimalloc`` + debug" +msgstr "" + +#: ../../c-api/memory.rst:448 msgid "Legend:" msgstr "" +#: ../../c-api/memory.rst:450 msgid "Name: value for :envvar:`PYTHONMALLOC` environment variable." msgstr "" +#: ../../c-api/memory.rst:451 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:453 msgid "``pymalloc``: :ref:`pymalloc memory allocator `." msgstr "" -msgid "" -"``mimalloc``: :ref:`mimalloc memory allocator `. The pymalloc " -"allocator will be used if mimalloc support isn't available." +#: ../../c-api/memory.rst:454 +msgid "``mimalloc``: :ref:`mimalloc memory allocator `." msgstr "" +#: ../../c-api/memory.rst:455 msgid "" "\"+ debug\": with :ref:`debug hooks on the Python memory allocators `." msgstr "" +#: ../../c-api/memory.rst:457 msgid "\"Debug build\": :ref:`Python build in debug mode `." msgstr "" +#: ../../c-api/memory.rst:462 msgid "Customize Memory Allocators" msgstr "" +#: ../../c-api/memory.rst:468 msgid "" "Structure used to describe a memory block allocator. The structure has the " "following fields:" msgstr "" +#: ../../c-api/memory.rst:472 ../../c-api/memory.rst:723 msgid "Field" msgstr "" +#: ../../c-api/memory.rst:472 ../../c-api/memory.rst:723 msgid "Meaning" msgstr "" +#: ../../c-api/memory.rst:474 ../../c-api/memory.rst:725 msgid "``void *ctx``" msgstr "" +#: ../../c-api/memory.rst:474 ../../c-api/memory.rst:725 msgid "user context passed as first argument" msgstr "" +#: ../../c-api/memory.rst:476 msgid "``void* malloc(void *ctx, size_t size)``" msgstr "" +#: ../../c-api/memory.rst:476 msgid "allocate a memory block" msgstr "" +#: ../../c-api/memory.rst:478 msgid "``void* calloc(void *ctx, size_t nelem, size_t elsize)``" msgstr "" +#: ../../c-api/memory.rst:478 msgid "allocate a memory block initialized with zeros" msgstr "" +#: ../../c-api/memory.rst:481 msgid "``void* realloc(void *ctx, void *ptr, size_t new_size)``" msgstr "" +#: ../../c-api/memory.rst:481 msgid "allocate or resize a memory block" msgstr "" +#: ../../c-api/memory.rst:483 msgid "``void free(void *ctx, void *ptr)``" msgstr "" +#: ../../c-api/memory.rst:483 msgid "free a memory block" msgstr "" +#: ../../c-api/memory.rst:486 msgid "" "The :c:type:`!PyMemAllocator` structure was renamed to :c:type:" "`PyMemAllocatorEx` and a new ``calloc`` field was added." msgstr "" +#: ../../c-api/memory.rst:493 msgid "Enum used to identify an allocator domain. Domains:" msgstr "" +#: ../../c-api/memory.rst:499 ../../c-api/memory.rst:508 +#: ../../c-api/memory.rst:517 msgid "Functions:" msgstr "" +#: ../../c-api/memory.rst:501 msgid ":c:func:`PyMem_RawMalloc`" msgstr "" +#: ../../c-api/memory.rst:502 msgid ":c:func:`PyMem_RawRealloc`" msgstr "" +#: ../../c-api/memory.rst:503 msgid ":c:func:`PyMem_RawCalloc`" msgstr "" +#: ../../c-api/memory.rst:504 msgid ":c:func:`PyMem_RawFree`" msgstr "" +#: ../../c-api/memory.rst:510 msgid ":c:func:`PyMem_Malloc`," msgstr "" -msgid ":c:func:`PyMem_Realloc`" -msgstr "" - +#: ../../c-api/memory.rst:512 msgid ":c:func:`PyMem_Calloc`" msgstr "" -msgid ":c:func:`PyMem_Free`" -msgstr "" - +#: ../../c-api/memory.rst:522 msgid ":c:func:`PyObject_Free`" msgstr "" +#: ../../c-api/memory.rst:526 msgid "Get the memory block allocator of the specified domain." msgstr "" +#: ../../c-api/memory.rst:531 msgid "Set the memory block allocator of the specified domain." msgstr "" +#: ../../c-api/memory.rst:533 msgid "" "The new allocator must return a distinct non-``NULL`` pointer when " "requesting zero bytes." msgstr "" +#: ../../c-api/memory.rst:536 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:540 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:544 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:548 msgid "" "See also :c:member:`PyPreConfig.allocator` and :ref:`Preinitialize Python " "with PyPreConfig `." msgstr "" +#: ../../c-api/memory.rst:553 msgid ":c:func:`PyMem_SetAllocator` does have the following contract:" msgstr "" +#: ../../c-api/memory.rst:555 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 " @@ -647,6 +826,7 @@ msgid "" "allocator domains ` for more information." msgstr "" +#: ../../c-api/memory.rst:563 msgid "" "If called after Python has finish initializing (after :c:func:" "`Py_InitializeFromConfig` has been called) the allocator **must** wrap the " @@ -654,17 +834,21 @@ msgid "" "arbitrary one is **not supported**." msgstr "" +#: ../../c-api/memory.rst:568 msgid "All allocators must be thread-safe." msgstr "" +#: ../../c-api/memory.rst:574 msgid "" "Setup :ref:`debug hooks in the Python memory allocators ` " "to detect memory errors." msgstr "" +#: ../../c-api/memory.rst:581 msgid "Debug hooks on the Python memory allocators" msgstr "" +#: ../../c-api/memory.rst:583 msgid "" "When :ref:`Python is built in debug mode `, the :c:func:" "`PyMem_SetupDebugHooks` function is called at the :ref:`Python " @@ -672,16 +856,19 @@ msgid "" "allocators to detect memory errors." msgstr "" +#: ../../c-api/memory.rst:588 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:591 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:594 msgid "" "These debug hooks fill dynamically allocated memory blocks with special, " "recognizable bit patterns. Newly allocated memory is filled with the byte " @@ -691,20 +878,25 @@ msgid "" "these bytes are unlikely to be valid addresses, floats, or ASCII strings." msgstr "" +#: ../../c-api/memory.rst:601 msgid "Runtime checks:" msgstr "" +#: ../../c-api/memory.rst:603 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:605 msgid "Detect write before the start of the buffer (buffer underflow)." msgstr "" +#: ../../c-api/memory.rst:606 msgid "Detect write after the end of the buffer (buffer overflow)." msgstr "" +#: ../../c-api/memory.rst:607 msgid "" "Check that there is an :term:`attached thread state` when allocator " "functions of :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) " @@ -712,6 +904,7 @@ msgid "" "called." msgstr "" +#: ../../c-api/memory.rst:612 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 " @@ -719,6 +912,7 @@ msgid "" "memory block was traced." msgstr "" +#: ../../c-api/memory.rst:617 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 " @@ -728,38 +922,49 @@ msgid "" "from a Python slice):" msgstr "" +#: ../../c-api/memory.rst:623 msgid "``p[-2*S:-S]``" msgstr "``p[-2*S:-S]``" +#: ../../c-api/memory.rst:624 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:626 msgid "``p[-S]``" msgstr "``p[-S]``" +#: ../../c-api/memory.rst:627 msgid "API identifier (ASCII character):" msgstr "" +#: ../../c-api/memory.rst:629 msgid "``'r'`` for :c:macro:`PYMEM_DOMAIN_RAW`." msgstr "" +#: ../../c-api/memory.rst:630 msgid "``'m'`` for :c:macro:`PYMEM_DOMAIN_MEM`." msgstr "" +#: ../../c-api/memory.rst:631 msgid "``'o'`` for :c:macro:`PYMEM_DOMAIN_OBJ`." msgstr "" +#: ../../c-api/memory.rst:633 msgid "``p[-S+1:0]``" msgstr "``p[-S+1:0]``" +#: ../../c-api/memory.rst:634 msgid "Copies of PYMEM_FORBIDDENBYTE. Used to catch under- writes and reads." msgstr "" +#: ../../c-api/memory.rst:636 msgid "``p[0:N]``" msgstr "" +#: ../../c-api/memory.rst:637 msgid "" "The requested memory, filled with copies of PYMEM_CLEANBYTE, used to catch " "reference to uninitialized memory. When a realloc-like function is called " @@ -770,20 +975,25 @@ msgid "" "bytes are also filled with PYMEM_DEADBYTE." msgstr "" +#: ../../c-api/memory.rst:645 msgid "``p[N:N+S]``" msgstr "" +#: ../../c-api/memory.rst:646 msgid "Copies of PYMEM_FORBIDDENBYTE. Used to catch over- writes and reads." msgstr "" +#: ../../c-api/memory.rst:648 msgid "``p[N+S:N+2*S]``" msgstr "``p[N+S:N+2*S]``" +#: ../../c-api/memory.rst:649 msgid "" "Only used if the ``PYMEM_DEBUG_SERIALNO`` macro is defined (not defined by " "default)." msgstr "" +#: ../../c-api/memory.rst:652 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 " @@ -793,6 +1003,7 @@ msgid "" "number is incremented, and exists so you can set such a breakpoint easily." msgstr "" +#: ../../c-api/memory.rst:659 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, " @@ -805,6 +1016,7 @@ msgid "" "getting used)." msgstr "" +#: ../../c-api/memory.rst:668 msgid "" "The :c:func:`PyMem_SetupDebugHooks` function now also works on Python " "compiled in release mode. On error, the debug hooks now use :mod:" @@ -814,6 +1026,7 @@ msgid "" "domains are called." msgstr "" +#: ../../c-api/memory.rst:676 msgid "" "Byte patterns ``0xCB`` (``PYMEM_CLEANBYTE``), ``0xDB`` (``PYMEM_DEADBYTE``) " "and ``0xFB`` (``PYMEM_FORBIDDENBYTE``) have been replaced with ``0xCD``, " @@ -821,9 +1034,11 @@ msgid "" "``malloc()`` and ``free()``." msgstr "" +#: ../../c-api/memory.rst:686 msgid "The pymalloc allocator" msgstr "" +#: ../../c-api/memory.rst:688 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 " @@ -832,103 +1047,155 @@ msgid "" "`PyMem_RawRealloc` for allocations larger than 512 bytes." msgstr "" +#: ../../c-api/memory.rst:694 msgid "" "*pymalloc* is the :ref:`default allocator ` of " "the :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) and :c:macro:" "`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) domains." msgstr "" +#: ../../c-api/memory.rst:698 msgid "The arena allocator uses the following functions:" msgstr "" +#: ../../c-api/memory.rst:700 msgid ":c:func:`!VirtualAlloc` and :c:func:`!VirtualFree` on Windows," msgstr "" +#: ../../c-api/memory.rst:701 msgid ":c:func:`!mmap` and :c:func:`!munmap` if available," msgstr "" +#: ../../c-api/memory.rst:702 msgid ":c:func:`malloc` and :c:func:`free` otherwise." msgstr "" +#: ../../c-api/memory.rst:704 msgid "" "This allocator is disabled if Python is configured with the :option:`--" "without-pymalloc` option. It can also be disabled at runtime using the :" "envvar:`PYTHONMALLOC` environment variable (ex: ``PYTHONMALLOC=malloc``)." msgstr "" +#: ../../c-api/memory.rst:708 msgid "" "Typically, it makes sense to disable the pymalloc allocator when building " "Python with AddressSanitizer (:option:`--with-address-sanitizer`) which " "helps uncover low level bugs within the C code." msgstr "" +#: ../../c-api/memory.rst:713 msgid "Customize pymalloc Arena Allocator" msgstr "" +#: ../../c-api/memory.rst:719 msgid "" "Structure used to describe an arena allocator. The structure has three " "fields:" msgstr "" +#: ../../c-api/memory.rst:727 msgid "``void* alloc(void *ctx, size_t size)``" msgstr "" +#: ../../c-api/memory.rst:727 msgid "allocate an arena of size bytes" msgstr "" +#: ../../c-api/memory.rst:729 msgid "``void free(void *ctx, void *ptr, size_t size)``" msgstr "" +#: ../../c-api/memory.rst:729 msgid "free an arena" msgstr "" +#: ../../c-api/memory.rst:734 msgid "Get the arena allocator." msgstr "" +#: ../../c-api/memory.rst:738 msgid "Set the arena allocator." msgstr "" +#: ../../c-api/memory.rst:743 msgid "The mimalloc allocator" msgstr "" +#: ../../c-api/memory.rst:747 +msgid "" +"Python supports the `mimalloc `__ " +"allocator when the underlying platform support is available. mimalloc is a " +"general purpose allocator with excellent performance characteristics, " +"initially developed by Daan Leijen for the runtime systems of the Koka and " +"Lean languages." +msgstr "" + +#: ../../c-api/memory.rst:753 msgid "" -"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.\"" +"Unlike :ref:`pymalloc `, which is optimized for small objects (512 " +"bytes or fewer), mimalloc handles allocations of any size." msgstr "" +#: ../../c-api/memory.rst:756 +msgid "" +"In the :term:`free-threaded ` build, mimalloc is the default " +"and **required** allocator for the :c:macro:`PYMEM_DOMAIN_MEM` and :c:macro:" +"`PYMEM_DOMAIN_OBJ` domains. It cannot be disabled in free-threaded builds. " +"The free-threaded build uses per-thread mimalloc heaps, which allows " +"allocation and deallocation to proceed without locking in most cases." +msgstr "" + +#: ../../c-api/memory.rst:762 +msgid "" +"In the default (non-free-threaded) build, mimalloc is available but not the " +"default allocator. It can be selected at runtime using :envvar:" +"`PYTHONMALLOC`\\ ``=mimalloc`` (or ``mimalloc_debug`` to include :ref:`debug " +"hooks `). It can be disabled at build time using the :" +"option:`--without-mimalloc` configure option, but this option cannot be " +"combined with :option:`--disable-gil`." +msgstr "" + +#: ../../c-api/memory.rst:770 msgid "tracemalloc C API" msgstr "" +#: ../../c-api/memory.rst:776 msgid "Track an allocated memory block in the :mod:`tracemalloc` module." msgstr "" +#: ../../c-api/memory.rst:778 msgid "" "Return ``0`` on success, return ``-1`` on error (failed to allocate memory " "to store the trace). Return ``-2`` if tracemalloc is disabled." msgstr "" +#: ../../c-api/memory.rst:781 msgid "If memory block is already tracked, update the existing trace." msgstr "" +#: ../../c-api/memory.rst:785 msgid "" "Untrack an allocated memory block in the :mod:`tracemalloc` module. Do " "nothing if the block was not tracked." msgstr "" +#: ../../c-api/memory.rst:788 msgid "Return ``-2`` if tracemalloc is disabled, otherwise return ``0``." msgstr "" +#: ../../c-api/memory.rst:794 msgid "Examples" msgstr "" +#: ../../c-api/memory.rst:796 msgid "" "Here is the example from section :ref:`memoryoverview`, rewritten so that " "the I/O buffer is allocated from the Python heap by using the first function " "set::" msgstr "" +#: ../../c-api/memory.rst:799 msgid "" "PyObject *res;\n" "char *buf = (char *) PyMem_Malloc(BUFSIZ); /* for I/O */\n" @@ -941,9 +1208,11 @@ msgid "" "return res;" msgstr "" +#: ../../c-api/memory.rst:809 msgid "The same code using the type-oriented function set::" msgstr "" +#: ../../c-api/memory.rst:811 msgid "" "PyObject *res;\n" "char *buf = PyMem_New(char, BUFSIZ); /* for I/O */\n" @@ -956,6 +1225,7 @@ msgid "" "return res;" msgstr "" +#: ../../c-api/memory.rst:821 msgid "" "Note that in the two examples above, the buffer is always manipulated via " "functions belonging to the same set. Indeed, it is required to use the same " @@ -965,6 +1235,7 @@ msgid "" "different allocators operating on different heaps. ::" msgstr "" +#: ../../c-api/memory.rst:828 msgid "" "char *buf1 = PyMem_New(char, BUFSIZ);\n" "char *buf2 = (char *) malloc(BUFSIZ);\n" @@ -975,25 +1246,34 @@ msgid "" "free(buf1); /* Fatal -- should be PyMem_Free() */" msgstr "" +#: ../../c-api/memory.rst:836 msgid "" "In addition to the functions aimed at handling raw memory blocks from the " "Python heap, objects in Python are allocated and released with :c:macro:" "`PyObject_New`, :c:macro:`PyObject_NewVar` and :c:func:`PyObject_Free`." msgstr "" +#: ../../c-api/memory.rst:840 msgid "" "These will be explained in the next chapter on defining and implementing new " "object types in C." msgstr "" +#: ../../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 "" + +#~ msgid "``PyMem_DEL(ptr)``" +#~ msgstr "``PyMem_DEL(ptr)``" diff --git a/c-api/memoryview.po b/c-api/memoryview.po index a0c3f4f..70fb32e 100644 --- a/c-api/memoryview.po +++ b/c-api/memoryview.po @@ -8,24 +8,33 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 "" +"This instance of :c:type:`PyTypeObject` represents the Python memoryview " +"type. This is the same object as :class:`memoryview` in the Python layer." +msgstr "" + +#: ../../c-api/memoryview.rst:24 msgid "" "Create a memoryview object from an object that provides the buffer " "interface. If *obj* supports writable buffer exports, the memoryview object " @@ -33,23 +42,28 @@ msgid "" "the discretion of the exporter." msgstr "" +#: ../../c-api/memoryview.rst:32 msgid "Flag to request a readonly buffer." msgstr "" +#: ../../c-api/memoryview.rst:37 msgid "Flag to request a writable buffer." msgstr "" +#: ../../c-api/memoryview.rst:42 msgid "" "Create a memoryview object using *mem* as the underlying buffer. *flags* can " "be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." msgstr "" +#: ../../c-api/memoryview.rst:49 msgid "" "Create a memoryview object wrapping the given buffer structure *view*. For " "simple byte buffers, :c:func:`PyMemoryView_FromMemory` is the preferred " "function." msgstr "" +#: ../../c-api/memoryview.rst:55 msgid "" "Create a memoryview object to a :term:`contiguous` chunk of memory (in " "either 'C' or 'F'ortran *order*) from an object that defines the buffer " @@ -58,22 +72,26 @@ msgid "" "new bytes object." msgstr "" +#: ../../c-api/memoryview.rst:61 msgid "" "*buffertype* can be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." msgstr "" +#: ../../c-api/memoryview.rst:66 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:73 msgid "" "Return a pointer to the memoryview's private copy of the exporter's buffer. " "*mview* **must** be a memoryview instance; this macro doesn't check its " "type, you must do it yourself or you will risk crashes." msgstr "" +#: ../../c-api/memoryview.rst:79 msgid "" "Return either a pointer to the exporting object that the memoryview is based " "on or ``NULL`` if the memoryview has been created by one of the functions :c:" @@ -81,8 +99,10 @@ msgid "" "**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 index b0c344d..c09ba21 100644 --- a/c-api/method.po +++ b/c-api/method.po @@ -8,95 +8,115 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 "" +#: ../../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 index d96341c..2c525a7 100644 --- a/c-api/module.po +++ b/c-api/module.po @@ -8,33 +8,38 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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``." +"This is exposed to Python programs as :py:class:`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." @@ -43,19 +48,24 @@ msgid "" "setting a :attr:`~module.__file__` attribute." msgstr "" +#: ../../c-api/module.rst:46 ../../c-api/module.rst:439 +#: ../../c-api/module.rst:466 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 " @@ -63,40 +73,60 @@ msgid "" "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:74 +msgid "" +"The returned reference is borrowed from the module; it is valid until the " +"module is destroyed." +msgstr "" + +#: ../../c-api/module.rst:84 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:93 msgid "" "Similar to :c:func:`PyModule_GetNameObject` but return the name encoded to " "``'utf-8'``." msgstr "" +#: ../../c-api/module.rst:96 +msgid "" +"The returned buffer is only valid until the module is renamed or destroyed. " +"Note that Python code may rename a module by setting its :py:attr:`~module." +"__name__` attribute." +msgstr "" + +#: ../../c-api/module.rst:102 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:109 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 "" "On error, return ``NULL`` with an exception set. Use :c:func:" -"`PyErr_Occurred` to tell this case apart from a mising :c:type:`!" +"`PyErr_Occurred` to tell this case apart from a missing :c:type:`!" "PyModuleDef`." msgstr "" +#: ../../c-api/module.rst:123 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 " @@ -104,36 +134,49 @@ msgid "" "reference to a Unicode object." msgstr "" +#: ../../c-api/module.rst:133 msgid "" "Similar to :c:func:`PyModule_GetFilenameObject` but return the filename " "encoded to 'utf-8'." msgstr "" +#: ../../c-api/module.rst:136 +msgid "" +"The returned buffer is only valid until the module's :py:attr:`~module." +"__file__` attribute is reassigned or the module is destroyed." +msgstr "" + +#: ../../c-api/module.rst:139 msgid "" ":c:func:`PyModule_GetFilename` raises :exc:`UnicodeEncodeError` on " "unencodable filenames, use :c:func:`PyModule_GetFilenameObject` instead." msgstr "" +#: ../../c-api/module.rst:147 msgid "Module definitions" msgstr "" +#: ../../c-api/module.rst:149 msgid "" "The functions in the previous section work on any module object, including " "modules imported from Python code." msgstr "" +#: ../../c-api/module.rst:152 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:156 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:161 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 " @@ -141,6 +184,7 @@ msgid "" "replace or delete data stored in module state." msgstr "" +#: ../../c-api/module.rst:169 msgid "" "The module definition struct, which holds all information needed to create a " "module object. This structure must be statically allocated (or be otherwise " @@ -148,35 +192,42 @@ msgid "" "there is only one variable of this type for each extension module." msgstr "" +#: ../../c-api/module.rst:177 msgid "Always initialize this member to :c:macro:`PyModuleDef_HEAD_INIT`." msgstr "" +#: ../../c-api/module.rst:181 msgid "Name for the new module." msgstr "" +#: ../../c-api/module.rst:185 msgid "" "Docstring for the module; usually a docstring variable created with :c:macro:" "`PyDoc_STRVAR` is used." msgstr "" +#: ../../c-api/module.rst:190 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:194 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:198 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:202 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 " @@ -185,30 +236,37 @@ msgid "" "dynamic>`." msgstr "" +#: ../../c-api/module.rst:208 msgid "See :PEP:`3121` for more details." msgstr "" +#: ../../c-api/module.rst:212 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:217 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:223 msgid "" "Prior to version 3.5, this member was always set to ``NULL``, and was " "defined as:" msgstr "" +#: ../../c-api/module.rst:230 msgid "" "A traversal function to call during GC traversal of the module object, or " "``NULL`` if not needed." msgstr "" +#: ../../c-api/module.rst:233 ../../c-api/module.rst:248 +#: ../../c-api/module.rst:269 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 " @@ -218,14 +276,18 @@ msgid "" "`PyModule_GetState`) is ``NULL``." msgstr "" +#: ../../c-api/module.rst:240 ../../c-api/module.rst:261 +#: ../../c-api/module.rst:276 msgid "No longer called before the module state is allocated." msgstr "" +#: ../../c-api/module.rst:245 msgid "" "A clear function to call during GC clearing of the module object, or " "``NULL`` if not needed." msgstr "" +#: ../../c-api/module.rst:255 msgid "" "Like :c:member:`PyTypeObject.tp_clear`, this function is not *always* called " "before a module is deallocated. For example, when reference counting is " @@ -234,45 +296,59 @@ msgid "" "directly." msgstr "" +#: ../../c-api/module.rst:266 msgid "" "A function to call during deallocation of the module object, or ``NULL`` if " "not needed." msgstr "" +#: ../../c-api/module.rst:282 +msgid "The type of ``PyModuleDef`` objects." +msgstr "" + +#: ../../c-api/module.rst:286 msgid "Module slots" msgstr "" +#: ../../c-api/module.rst:292 msgid "A slot ID, chosen from the available values explained below." msgstr "" +#: ../../c-api/module.rst:296 msgid "Value of the slot, whose meaning depends on the slot ID." msgstr "" +#: ../../c-api/module.rst:300 msgid "The available slot types are:" msgstr "" +#: ../../c-api/module.rst:304 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:311 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:316 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:320 msgid "" "Multiple ``Py_mod_create`` slots may not be specified in one module " "definition." msgstr "" +#: ../../c-api/module.rst:323 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 " @@ -281,6 +357,7 @@ msgid "" "through symlinks, all while sharing a single module definition." msgstr "" +#: ../../c-api/module.rst:329 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 " @@ -290,6 +367,7 @@ msgid "" "``Py_mod_create``." msgstr "" +#: ../../c-api/module.rst:340 msgid "" "Specifies a function that is called to *execute* the module. This is " "equivalent to executing the code of a Python module: typically, this " @@ -297,50 +375,61 @@ msgid "" "function is:" msgstr "" +#: ../../c-api/module.rst:349 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:356 ../../c-api/module.rst:389 msgid "Specifies one of the following values:" msgstr "" +#: ../../c-api/module.rst:362 msgid "The module does not support being imported in subinterpreters." msgstr "" +#: ../../c-api/module.rst:366 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:372 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:376 msgid "" "This slot determines whether or not importing this module in a " "subinterpreter will fail." msgstr "" +#: ../../c-api/module.rst:379 msgid "" "Multiple ``Py_mod_multiple_interpreters`` slots may not be specified in one " "module definition." msgstr "" +#: ../../c-api/module.rst:382 msgid "" "If ``Py_mod_multiple_interpreters`` is not specified, the import machinery " "defaults to ``Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED``." msgstr "" +#: ../../c-api/module.rst:395 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:400 msgid "The module is safe to run without an active GIL." msgstr "" +#: ../../c-api/module.rst:402 msgid "" "This slot is ignored by Python builds not configured with :option:`--disable-" "gil`. Otherwise, it determines whether or not importing this module will " @@ -348,18 +437,22 @@ msgid "" "threaded-cpython` for more detail." msgstr "" +#: ../../c-api/module.rst:407 msgid "" "Multiple ``Py_mod_gil`` slots may not be specified in one module definition." msgstr "" +#: ../../c-api/module.rst:409 msgid "" "If ``Py_mod_gil`` is not specified, the import machinery defaults to " "``Py_MOD_GIL_USED``." msgstr "" +#: ../../c-api/module.rst:418 msgid "Creating extension modules dynamically" msgstr "" +#: ../../c-api/module.rst:420 msgid "" "The following functions may be used to create a module outside of an " "extension's :ref:`initialization function `. They are " @@ -367,6 +460,7 @@ msgid "" "initialization>`." msgstr "" +#: ../../c-api/module.rst:427 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:" @@ -374,28 +468,33 @@ msgid "" "the :ref:`limited API `." msgstr "" +#: ../../c-api/module.rst:435 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:441 msgid "" "This function does not support slots. The :c:member:`~PyModuleDef.m_slots` " "member of *def* must be ``NULL``." msgstr "" +#: ../../c-api/module.rst:447 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:452 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:461 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 " @@ -403,34 +502,42 @@ msgid "" "emitted." msgstr "" +#: ../../c-api/module.rst:468 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:474 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:481 msgid "Process any execution slots (:c:data:`Py_mod_exec`) given in *def*." msgstr "" +#: ../../c-api/module.rst:487 msgid "The C API version. Defined for backwards compatibility." msgstr "" +#: ../../c-api/module.rst:489 ../../c-api/module.rst:496 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:494 msgid "Defined as ``3`` for backwards compatibility." msgstr "" +#: ../../c-api/module.rst:501 msgid "Support functions" msgstr "" +#: ../../c-api/module.rst:503 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 " @@ -438,18 +545,23 @@ msgid "" "phase-initialization>`, or code that creates modules dynamically." msgstr "" +#: ../../c-api/module.rst:511 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:514 msgid "" "On success, return ``0``. On error, raise an exception and return ``-1``." msgstr "" +#: ../../c-api/module.rst:516 ../../c-api/module.rst:567 +#: ../../c-api/module.rst:594 msgid "Example usage::" msgstr "" +#: ../../c-api/module.rst:518 msgid "" "static int\n" "add_spam(PyObject *module, int value)\n" @@ -464,17 +576,20 @@ msgid "" " }" msgstr "" +#: ../../c-api/module.rst:530 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:534 msgid "" "The example can also be written without checking explicitly if *obj* is " "``NULL``::" msgstr "" +#: ../../c-api/module.rst:537 msgid "" "static int\n" "add_spam(PyObject *module, int value)\n" @@ -486,11 +601,13 @@ msgid "" " }" msgstr "" +#: ../../c-api/module.rst:546 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:549 msgid "" "The number of different *name* strings passed to this function should be " "kept small, usually by only using statically allocated strings as *name*. " @@ -500,40 +617,47 @@ msgid "" "internally to create a key object." msgstr "" +#: ../../c-api/module.rst:562 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." +"Similar to :c:func:`PyModule_AddObjectRef`, but \":term:`steals `\" a " +"reference to *value* (even on error). 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:569 msgid "" "if (PyModule_Add(module, \"spam\", PyBytes_FromString(value)) < 0) {\n" " goto error;\n" "}" msgstr "" +#: ../../c-api/module.rst:578 msgid "" -"Similar to :c:func:`PyModule_AddObjectRef`, but steals a reference to " -"*value* on success (if it returns ``0``)." +"Similar to :c:func:`PyModule_AddObjectRef`, but :term:`steals ` a " +"reference to *value* on success (if it returns ``0``)." msgstr "" +#: ../../c-api/module.rst:581 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:588 msgid "" "Unlike other functions that steal references, ``PyModule_AddObject()`` only " "releases the reference to *value* **on success**." msgstr "" +#: ../../c-api/module.rst:591 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:596 msgid "" "PyObject *obj = PyBytes_FromString(value);\n" "if (PyModule_AddObject(module, \"spam\", obj) < 0) {\n" @@ -547,20 +671,20 @@ msgid "" "// Py_XDECREF(obj) is not needed here." msgstr "" -msgid ":c:func:`PyModule_AddObject` is :term:`soft deprecated`." -msgstr "" - +#: ../../c-api/module.rst:612 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:616 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:622 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 " @@ -568,12 +692,14 @@ msgid "" "on success." msgstr "" +#: ../../c-api/module.rst:627 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:634 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 " @@ -581,9 +707,11 @@ msgid "" "with an exception set on error, ``0`` on success." msgstr "" +#: ../../c-api/module.rst:642 msgid "Add a string constant to *module*." msgstr "" +#: ../../c-api/module.rst:646 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 " @@ -591,6 +719,7 @@ msgid "" "``-1`` with an exception set on error, ``0`` on success." msgstr "" +#: ../../c-api/module.rst:656 msgid "" "Add the functions from the ``NULL`` terminated *functions* array to " "*module*. Refer to the :c:type:`PyMethodDef` documentation for details on " @@ -599,6 +728,7 @@ msgid "" "first parameter, making them similar to instance methods on Python classes)." msgstr "" +#: ../../c-api/module.rst:662 msgid "" "This function is called automatically when creating a module from " "``PyModuleDef`` (such as when using :ref:`multi-phase-initialization`, " @@ -607,6 +737,13 @@ msgid "" "that case they should call this function directly." msgstr "" +#: ../../c-api/module.rst:669 +msgid "" +"The *functions* array must be statically allocated (or otherwise guaranteed " +"to outlive the module object)." +msgstr "" + +#: ../../c-api/module.rst:676 msgid "" "Set the docstring for *module* to *docstring*. This function is called " "automatically when creating a module from ``PyModuleDef`` (such as when " @@ -614,6 +751,11 @@ msgid "" "``PyModule_FromDefAndSpec``)." msgstr "" +#: ../../c-api/module.rst:681 +msgid "Return ``0`` on success. Return ``-1`` with an exception set on error." +msgstr "" + +#: ../../c-api/module.rst:688 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`. " @@ -625,9 +767,11 @@ msgid "" "on error, ``0`` on success." msgstr "" +#: ../../c-api/module.rst:702 msgid "Module lookup (single-phase initialization)" msgstr "" +#: ../../c-api/module.rst:704 msgid "" "The legacy :ref:`single-phase initialization ` " "initialization scheme creates singleton modules that can be looked up in the " @@ -635,12 +779,14 @@ msgid "" "retrieved later with only a reference to the module definition." msgstr "" +#: ../../c-api/module.rst:709 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:714 msgid "" "Returns the module object that was created from *def* for the current " "interpreter. This method requires that the module object has been attached " @@ -649,15 +795,18 @@ msgid "" "to the interpreter state yet, it returns ``NULL``." msgstr "" +#: ../../c-api/module.rst:721 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:724 msgid "Only effective on modules created using single-phase initialization." msgstr "" +#: ../../c-api/module.rst:726 msgid "" "Python calls ``PyState_AddModule`` automatically after importing a module " "that uses :ref:`single-phase initialization `, " @@ -669,48 +818,62 @@ msgid "" "state updates)." msgstr "" +#: ../../c-api/module.rst:735 msgid "" "If a module was attached previously using the same *def*, it is replaced by " "the new *module*." msgstr "" +#: ../../c-api/module.rst:738 ../../c-api/module.rst:749 msgid "The caller must have an :term:`attached thread state`." msgstr "" +#: ../../c-api/module.rst:740 msgid "Return ``-1`` with an exception set on error, ``0`` on success." msgstr "" +#: ../../c-api/module.rst:746 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:80 msgid "__name__ (module attribute)" msgstr "" +#: ../../c-api/module.rst:33 msgid "__doc__ (module attribute)" msgstr "" +#: ../../c-api/module.rst:33 ../../c-api/module.rst:119 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:80 ../../c-api/module.rst:119 msgid "SystemError (built-in exception)" msgstr "" diff --git a/c-api/monitoring.po b/c-api/monitoring.po index 86e322f..26f49a2 100644 --- a/c-api/monitoring.po +++ b/c-api/monitoring.po @@ -8,30 +8,35 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -44,104 +49,129 @@ msgid "" "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." +"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 " @@ -154,6 +184,7 @@ msgid "" "``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 " @@ -162,6 +193,7 @@ msgid "" "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 " @@ -171,77 +203,97 @@ msgid "" "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 "" - -msgid "This function is :term:`soft deprecated`." -msgstr "" diff --git a/c-api/none.po b/c-api/none.po index 6bf4e00..84cf6ff 100644 --- a/c-api/none.po +++ b/c-api/none.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -27,19 +29,24 @@ msgid "" "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 index ff821a3..66b9cae 100644 --- a/c-api/number.po +++ b/c-api/number.po @@ -8,51 +8,60 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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\" " @@ -62,16 +71,19 @@ msgid "" "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 " @@ -79,81 +91,96 @@ msgid "" "(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\" " @@ -164,12 +191,14 @@ msgid "" "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 " @@ -179,56 +208,66 @@ msgid "" "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 " @@ -237,12 +276,14 @@ msgid "" "`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* " @@ -252,26 +293,35 @@ msgid "" "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 index fb4d3e8..d70b6d3 100644 --- a/c-api/object.po +++ b/c-api/object.po @@ -11,130 +11,164 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 "" +#: ../../c-api/object.rst:22 msgid ":py:data:`None`" msgstr "" +#: ../../c-api/object.rst:23 ../../c-api/object.rst:28 msgid "``1``" msgstr "" +#: ../../c-api/object.rst:23 msgid ":py:data:`False`" msgstr "" +#: ../../c-api/object.rst:24 msgid "``2``" msgstr "" +#: ../../c-api/object.rst:24 msgid ":py:data:`True`" msgstr "" +#: ../../c-api/object.rst:25 msgid "``3``" msgstr "" +#: ../../c-api/object.rst:25 msgid ":py:data:`Ellipsis`" msgstr "" +#: ../../c-api/object.rst:26 msgid "``4``" msgstr "" +#: ../../c-api/object.rst:26 msgid ":py:data:`NotImplemented`" msgstr "" +#: ../../c-api/object.rst:27 msgid "``5``" msgstr "" +#: ../../c-api/object.rst:28 msgid "``6``" msgstr "" +#: ../../c-api/object.rst:29 msgid "``7``" msgstr "" +#: ../../c-api/object.rst:29 msgid "``''``" msgstr "" +#: ../../c-api/object.rst:30 msgid "``8``" msgstr "" +#: ../../c-api/object.rst:30 msgid "``b''``" msgstr "" +#: ../../c-api/object.rst:31 msgid "``9``" msgstr "" +#: ../../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`." +"functions 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 " @@ -142,23 +176,27 @@ msgid "" "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 :" @@ -167,12 +205,14 @@ msgid "" "`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:" @@ -181,33 +221,39 @@ msgid "" "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 " @@ -216,12 +262,14 @@ msgid "" "``-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 " @@ -231,29 +279,34 @@ msgid "" "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*. " @@ -263,6 +316,7 @@ msgid "" "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 " @@ -274,17 +328,20 @@ msgid "" "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*. " @@ -294,11 +351,13 @@ msgid "" "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 " @@ -307,25 +366,30 @@ msgid "" "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`, :" @@ -336,28 +400,33 @@ msgid "" "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 " @@ -365,11 +434,18 @@ msgid "" "function." msgstr "" +#: ../../c-api/object.rst:322 ../../c-api/object.rst:338 +#: ../../c-api/object.rst:350 +msgid "If argument is ``NULL``, return the string ``''``." +msgstr "" + +#: ../../c-api/object.rst:324 ../../c-api/object.rst:352 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:332 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:" @@ -378,6 +454,7 @@ msgid "" "Called by the :func:`ascii` built-in function." msgstr "" +#: ../../c-api/object.rst:345 msgid "" "Compute a string representation of object *o*. Returns the string " "representation on success, ``NULL`` on failure. This is the equivalent of " @@ -385,6 +462,7 @@ msgid "" "function and, therefore, by the :func:`print` function." msgstr "" +#: ../../c-api/object.rst:361 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 " @@ -393,17 +471,25 @@ msgid "" "bytes object." msgstr "" +#: ../../c-api/object.rst:367 +msgid "" +"If argument is ``NULL``, return the :class:`bytes` object ``b''``." +msgstr "" + +#: ../../c-api/object.rst:372 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:375 ../../c-api/object.rst:394 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:379 msgid "" "If *cls* has a :meth:`~type.__subclasscheck__` method, it will be called to " "determine the subclass status as described in :pep:`3119`. Otherwise, " @@ -411,44 +497,52 @@ msgid "" "e. contained in :attr:`cls.__mro__ `." msgstr "" +#: ../../c-api/object.rst:384 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:391 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:398 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:402 msgid "" "An instance *inst* can override what is considered its class by having a :" "attr:`~object.__class__` attribute." msgstr "" +#: ../../c-api/object.rst:405 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:414 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:417 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:424 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 " @@ -456,18 +550,21 @@ msgid "" "that it is not hashable." msgstr "" +#: ../../c-api/object.rst:432 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:439 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:448 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 " @@ -478,11 +575,13 @@ msgid "" "when a new :term:`strong reference` is needed." msgstr "" +#: ../../c-api/object.rst:460 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:469 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, " @@ -490,6 +589,7 @@ msgid "" "``len(o)``." msgstr "" +#: ../../c-api/object.rst:476 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 " @@ -498,28 +598,33 @@ msgid "" "defaultvalue)``." msgstr "" +#: ../../c-api/object.rst:486 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:492 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:500 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:506 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:513 msgid "" "This is equivalent to the Python expression ``dir(o)``, returning a " "(possibly empty) list of strings appropriate for the object argument, or " @@ -529,6 +634,7 @@ msgid "" "`PyErr_Occurred` will return false." msgstr "" +#: ../../c-api/object.rst:522 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 " @@ -536,12 +642,14 @@ msgid "" "object cannot be iterated." msgstr "" +#: ../../c-api/object.rst:530 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:536 msgid "" "This is the equivalent to the Python expression ``aiter(o)``. Takes an :" "class:`AsyncIterable` object and returns an :class:`AsyncIterator` for it. " @@ -550,63 +658,77 @@ msgid "" "``NULL`` if the object cannot be iterated." msgstr "" +#: ../../c-api/object.rst:546 msgid "Get a pointer to subclass-specific data reserved for *cls*." msgstr "" +#: ../../c-api/object.rst:548 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:552 msgid "On error, set an exception and return ``NULL``." msgstr "" +#: ../../c-api/object.rst:558 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:561 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:564 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:568 msgid "On error, set an exception and return a negative value." msgstr "" +#: ../../c-api/object.rst:574 msgid "" "Get a pointer to per-item data for a class with :c:macro:" "`Py_TPFLAGS_ITEMS_AT_END`." msgstr "" +#: ../../c-api/object.rst:577 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:585 msgid "Visit the managed dictionary of *obj*." msgstr "" +#: ../../c-api/object.rst:587 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:594 msgid "Clear the managed dictionary of *obj*." msgstr "" +#: ../../c-api/object.rst:596 msgid "" "This function must only be called in a clear function of the type which has " "the :c:macro:`Py_TPFLAGS_MANAGED_DICT` flag set." msgstr "" +#: ../../c-api/object.rst:603 msgid "" "Enable `deferred reference counting `_ on *obj*, if supported by the runtime. In " @@ -617,6 +739,7 @@ msgid "" "no longer has any references to it." msgstr "" +#: ../../c-api/object.rst:610 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 " @@ -625,6 +748,7 @@ msgid "" "cannot fail." msgstr "" +#: ../../c-api/object.rst:615 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 " @@ -632,12 +756,14 @@ msgid "" "and :c:func:`PyObject_GC_IsTracked`)." msgstr "" +#: ../../c-api/object.rst:620 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:628 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 " @@ -645,6 +771,7 @@ msgid "" "if *obj* is a unique temporary object." msgstr "" +#: ../../c-api/object.rst:634 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 " @@ -656,54 +783,65 @@ msgid "" "argument uniquely referenced." msgstr "" +#: ../../c-api/object.rst:643 msgid "" "In the example below, ``my_func`` is called with a unique temporary object " "as its argument::" msgstr "" +#: ../../c-api/object.rst:646 msgid "my_func([1, 2, 3])" msgstr "" +#: ../../c-api/object.rst:648 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:651 msgid "" "my_list = [1, 2, 3]\n" "my_func(my_list)" msgstr "" +#: ../../c-api/object.rst:654 msgid "See also the function :c:func:`Py_REFCNT`." msgstr "" +#: ../../c-api/object.rst:660 msgid "" "This function returns non-zero if *obj* is :term:`immortal`, and zero " "otherwise. This function cannot fail." msgstr "" +#: ../../c-api/object.rst:665 msgid "" "Objects that are immortal in one CPython version are not guaranteed to be " "immortal in another." msgstr "" +#: ../../c-api/object.rst:672 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:676 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." +"or this function may spuriously return ``0`` in the :term:`free-threaded " +"build`." msgstr "" +#: ../../c-api/object.rst:680 msgid "" "This function is logically equivalent to the following C code, except that " -"it behaves atomically in the :term:`free threading` build::" +"it behaves atomically in the :term:`free-threaded build`::" msgstr "" +#: ../../c-api/object.rst:683 msgid "" "if (Py_REFCNT(op) > 0) {\n" " Py_INCREF(op);\n" @@ -712,11 +850,13 @@ msgid "" "return 0;" msgstr "" +#: ../../c-api/object.rst:689 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:692 msgid "" "Typically, correct use of this function requires support from *obj*'s " "deallocator (:c:member:`~PyTypeObject.tp_dealloc`). For example, the " @@ -724,6 +864,7 @@ msgid "" "a :py:class:`~weakref.WeakValueDictionary` for a specific type:" msgstr "" +#: ../../c-api/object.rst:698 msgid "" "PyMutex mutex;\n" "\n" @@ -768,55 +909,71 @@ msgid "" "}" msgstr "" +#: ../../c-api/object.rst:746 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:753 msgid "Determine if *op* only has one reference." msgstr "" +#: ../../c-api/object.rst:755 msgid "" "On GIL-enabled builds, this function is equivalent to :c:expr:`Py_REFCNT(op) " "== 1`." msgstr "" +#: ../../c-api/object.rst:758 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." +"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:763 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:330 +#: ../../c-api/object.rst:359 ../../c-api/object.rst:412 +#: ../../c-api/object.rst:446 ../../c-api/object.rst:467 msgid "built-in function" msgstr "" +#: ../../c-api/object.rst:316 msgid "repr" msgstr "" +#: ../../c-api/object.rst:330 msgid "ascii" msgstr "" +#: ../../c-api/object.rst:340 msgid "string" msgstr "" +#: ../../c-api/object.rst:340 msgid "PyObject_Str (C function)" msgstr "" +#: ../../c-api/object.rst:359 msgid "bytes" msgstr "" +#: ../../c-api/object.rst:412 msgid "hash" msgstr "" +#: ../../c-api/object.rst:446 msgid "type" msgstr "Typ" +#: ../../c-api/object.rst:467 msgid "len" msgstr "" diff --git a/c-api/objimpl.po b/c-api/objimpl.po index 3ea267e..c2615fc 100644 --- a/c-api/objimpl.po +++ b/c-api/objimpl.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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." diff --git a/c-api/perfmaps.po b/c-api/perfmaps.po index c9b69d4..4d87df9 100644 --- a/c-api/perfmaps.po +++ b/c-api/perfmaps.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -31,16 +33,19 @@ msgid "" "git/tree/tools/perf/Documentation/jit-interface.txt>`_." 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 " @@ -50,31 +55,105 @@ msgid "" "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 "" + +#: ../../c-api/perfmaps.rst:54 +msgid "" +"Open the ``/tmp/perf-$pid.map`` file and append the content of " +"*parent_filename* to it." +msgstr "" + +#: ../../c-api/perfmaps.rst:57 +msgid "" +"This function is available on all platforms but only generates output on " +"platforms that support perf maps (currently only Linux). On other platforms, " +"it does nothing." +msgstr "" + +#: ../../c-api/perfmaps.rst:64 +msgid "Compile the given code object using the current perf trampoline." +msgstr "" + +#: ../../c-api/perfmaps.rst:66 +msgid "" +"The \"current\" trampoline is the one set by the runtime or the most recent :" +"c:func:`PyUnstable_PerfTrampoline_SetPersistAfterFork` call." +msgstr "" + +#: ../../c-api/perfmaps.rst:69 +msgid "" +"If no trampoline is set, falls back to normal compilation (no perf map " +"entry)." +msgstr "" + +#: ../../c-api/perfmaps.rst:0 +msgid "Parameters" +msgstr "" + +#: ../../c-api/perfmaps.rst:71 +msgid "The code object to compile." +msgstr "" + +#: ../../c-api/perfmaps.rst:0 +msgid "Returns" +msgstr "" + +#: ../../c-api/perfmaps.rst:72 ../../c-api/perfmaps.rst:88 +msgid "0 on success, -1 on failure." +msgstr "" + +#: ../../c-api/perfmaps.rst:78 +msgid "Set whether the perf trampoline should persist after a fork." +msgstr "" + +#: ../../c-api/perfmaps.rst:80 +msgid "" +"If ``enable`` is true (non-zero): perf map file remains open/valid post-" +"fork. Child process inherits all existing perf map entries." +msgstr "" + +#: ../../c-api/perfmaps.rst:82 +msgid "" +"If ``enable`` is false (zero): perf map closes post-fork. Child process gets " +"empty perf map." +msgstr "" + +#: ../../c-api/perfmaps.rst:85 +msgid "Default: false (clears on fork)." +msgstr "" + +#: ../../c-api/perfmaps.rst:87 +msgid "1 to enable, 0 to disable." +msgstr "" diff --git a/c-api/refcounting.po b/c-api/refcounting.po index a374c94..64af74d 100644 --- a/c-api/refcounting.po +++ b/c-api/refcounting.po @@ -11,27 +11,31 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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:" @@ -40,138 +44,172 @@ msgid "" "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 " +"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 "Zum Beispiel::" +#: ../../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 " @@ -184,12 +222,14 @@ msgid "" "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 " @@ -199,57 +239,69 @@ msgid "" "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`." diff --git a/c-api/reflection.po b/c-api/reflection.po index 51151f8..2782150 100644 --- a/c-api/reflection.po +++ b/c-api/reflection.po @@ -8,26 +8,30 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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:" @@ -35,16 +39,19 @@ msgid "" "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 " @@ -55,6 +62,7 @@ msgid "" "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 " @@ -62,45 +70,54 @@ msgid "" "semantics>` 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\", " diff --git a/c-api/sequence.po b/c-api/sequence.po index fc79844..54f19e0 100644 --- a/c-api/sequence.po +++ b/c-api/sequence.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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:" @@ -28,102 +30,119 @@ msgid "" "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*." +"of the Python statement ``o[i] = v``. This function *does not* \":term:" +"`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 "" -msgid "" -"The function is :term:`soft deprecated` and should no longer be used to " -"write new code." +#: ../../c-api/sequence.rst:112 +msgid "The function should no longer be used to write new code." msgstr "" +#: ../../c-api/sequence.rst:118 msgid "" "Return the first index *i* for which ``o[i] == value``. On error, return " "``-1``. This is equivalent to the Python expression ``o.index(value)``." msgstr "" +#: ../../c-api/sequence.rst:124 msgid "" "Return a list object with the same contents as the sequence or iterable *o*, " "or ``NULL`` on failure. The returned list is guaranteed to be new. This is " "equivalent to the Python expression ``list(o)``." msgstr "" +#: ../../c-api/sequence.rst:133 msgid "" "Return a tuple object with the same contents as the sequence or iterable " "*o*, or ``NULL`` on failure. If *o* is a tuple, a new reference will be " @@ -131,6 +150,7 @@ msgid "" "contents. This is equivalent to the Python expression ``tuple(o)``." msgstr "" +#: ../../c-api/sequence.rst:141 msgid "" "Return the sequence or iterable *o* as an object usable by the other " "``PySequence_Fast*`` family of functions. If the object is not a sequence or " @@ -138,17 +158,20 @@ msgid "" "``NULL`` on failure." msgstr "" +#: ../../c-api/sequence.rst:146 msgid "" "The ``PySequence_Fast*`` functions are thus named because they assume *o* is " "a :c:type:`PyTupleObject` or a :c:type:`PyListObject` and access the data " "fields of *o* directly." msgstr "" +#: ../../c-api/sequence.rst:150 msgid "" "As a CPython implementation detail, if *o* is already a sequence or list, it " "will be returned." msgstr "" +#: ../../c-api/sequence.rst:156 msgid "" "Returns the length of *o*, assuming that *o* was returned by :c:func:" "`PySequence_Fast` and that *o* is not ``NULL``. The size can also be " @@ -157,22 +180,26 @@ msgid "" "tuple." msgstr "" +#: ../../c-api/sequence.rst:165 msgid "" "Return the *i*\\ th element of *o*, assuming that *o* was returned by :c:" "func:`PySequence_Fast`, *o* is not ``NULL``, and that *i* is within bounds." msgstr "" +#: ../../c-api/sequence.rst:171 msgid "" "Return the underlying array of PyObject pointers. Assumes that *o* was " "returned by :c:func:`PySequence_Fast` and *o* is not ``NULL``." msgstr "" +#: ../../c-api/sequence.rst:174 msgid "" "Note, if a list gets resized, the reallocation may relocate the items array. " "So, only use the underlying array pointer in contexts where the sequence " "cannot change." msgstr "" +#: ../../c-api/sequence.rst:181 msgid "" "Return the *i*\\ th element of *o* or ``NULL`` on failure. Faster form of :c:" "func:`PySequence_GetItem` but without checking that :c:func:" @@ -180,11 +207,14 @@ msgid "" "indices." msgstr "" +#: ../../c-api/sequence.rst:21 ../../c-api/sequence.rst:131 msgid "built-in function" msgstr "" +#: ../../c-api/sequence.rst:21 msgid "len" msgstr "" +#: ../../c-api/sequence.rst:131 msgid "tuple" msgstr "" diff --git a/c-api/set.po b/c-api/set.po index 279b8dc..f1f4587 100644 --- a/c-api/set.po +++ b/c-api/set.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -33,6 +35,7 @@ msgid "" "`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:" @@ -44,51 +47,61 @@ msgid "" "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 " @@ -97,6 +110,13 @@ msgid "" "(``c=set(s)``)." msgstr "" +#: ../../c-api/set.rst:97 ../../c-api/set.rst:110 +msgid "" +"The operation is atomic on :term:`free threading ` when " +"*iterable* is a :class:`set`, :class:`frozenset` or :class:`dict`." +msgstr "" + +#: ../../c-api/set.rst:103 msgid "" "Return a new :class:`frozenset` containing objects returned by the " "*iterable*. The *iterable* may be ``NULL`` to create a new empty frozenset. " @@ -104,20 +124,24 @@ msgid "" "`TypeError` if *iterable* is not actually iterable." msgstr "" +#: ../../c-api/set.rst:114 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:122 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:129 msgid "Macro form of :c:func:`PySet_Size` without error checking." msgstr "" +#: ../../c-api/set.rst:134 msgid "" "Return ``1`` if found, ``0`` if not found, and ``-1`` if an error is " "encountered. Unlike the Python :meth:`~object.__contains__` method, this " @@ -127,6 +151,14 @@ msgid "" "instance of a subtype." msgstr "" +#: ../../c-api/set.rst:142 ../../c-api/set.rst:157 ../../c-api/set.rst:177 +msgid "" +"The operation is atomic on :term:`free threading ` when " +"*key* is :class:`str`, :class:`int`, :class:`float`, :class:`bool` or :class:" +"`bytes`." +msgstr "" + +#: ../../c-api/set.rst:147 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 " @@ -137,20 +169,23 @@ msgid "" "`set` or its subtype." msgstr "" +#: ../../c-api/set.rst:162 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:168 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." +"the Python :meth:`~set.discard` method, this function does not automatically " +"convert unhashable sets into temporary frozensets. Raise :exc:`SystemError` " +"if *set* is not an instance of :class:`set` or its subtype." msgstr "" +#: ../../c-api/set.rst:183 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` " @@ -158,23 +193,58 @@ msgid "" "of :class:`set` or its subtype." msgstr "" +#: ../../c-api/set.rst:191 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:197 +msgid "" +"In the :term:`free-threaded build`, the set is emptied before its entries " +"are cleared, so other threads will observe an empty set rather than " +"intermediate states." +msgstr "" + +#: ../../c-api/set.rst:203 +msgid "Deprecated API" +msgstr "" + +#: ../../c-api/set.rst:207 +msgid "" +"A constant representing the size of an internal preallocated table inside :c:" +"type:`PySetObject` instances." +msgstr "" + +#: ../../c-api/set.rst:210 +msgid "" +"This is documented solely for completeness, as there are no guarantees that " +"a given version of CPython uses preallocated tables with a fixed size. In " +"code that does not deal with unstable set internals, :c:macro:`!" +"PySet_MINSIZE` can be replaced with a small constant like ``8``." +msgstr "" + +#: ../../c-api/set.rst:216 +msgid "If looking for the size of a set, use :c:func:`PySet_Size` instead." +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:120 msgid "built-in function" msgstr "" +#: ../../c-api/set.rst:120 msgid "len" msgstr "" diff --git a/c-api/slice.po b/c-api/slice.po index cc0c01f..335a864 100644 --- a/c-api/slice.po +++ b/c-api/slice.po @@ -8,28 +8,32 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -37,30 +41,36 @@ msgid "" "``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 " @@ -69,15 +79,18 @@ msgid "" "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" @@ -85,9 +98,11 @@ msgid "" "}" 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" @@ -95,6 +110,7 @@ msgid "" "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:`!" @@ -103,12 +119,14 @@ msgid "" "*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 " @@ -117,32 +135,39 @@ msgid "" "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 index 1c4f5b9..b837d76 100644 --- a/c-api/stable.po +++ b/c-api/stable.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -27,6 +29,7 @@ msgid "" "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 :" @@ -35,23 +38,28 @@ msgid "" "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 " @@ -60,9 +68,11 @@ msgid "" "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) " @@ -70,27 +80,33 @@ msgid "" "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 " @@ -98,11 +114,13 @@ msgid "" "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 " @@ -110,25 +128,30 @@ msgid "" "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 " @@ -137,18 +160,21 @@ msgid "" "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 " @@ -157,26 +183,31 @@ msgid "" "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, " @@ -184,6 +215,7 @@ msgid "" "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 " @@ -193,9 +225,11 @@ msgid "" "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:" @@ -203,6 +237,7 @@ msgid "" "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 " @@ -212,16 +247,19 @@ msgid "" "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 " @@ -229,6 +267,7 @@ msgid "" "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 " @@ -237,9 +276,11 @@ msgid "" "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:" @@ -247,6 +288,7 @@ msgid "" "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 " @@ -254,13 +296,16 @@ msgid "" "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 index 73186d9..b0191bf 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -8,27 +8,31 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -39,6 +43,7 @@ msgid "" "`." 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. " @@ -48,47 +53,56 @@ msgid "" "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, " @@ -96,131 +110,160 @@ msgid "" "`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 " @@ -230,43 +273,51 @@ msgid "" "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" @@ -274,12 +325,14 @@ msgid "" " 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" @@ -288,23 +341,29 @@ msgid "" " 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 " @@ -314,15 +373,18 @@ msgid "" "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 " @@ -332,6 +394,7 @@ msgid "" "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:" @@ -340,9 +403,11 @@ msgid "" "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 " @@ -351,6 +416,7 @@ msgid "" "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 " @@ -359,12 +425,15 @@ msgid "" "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 " @@ -376,14 +445,17 @@ msgid "" "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 " @@ -391,12 +463,14 @@ msgid "" "``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 " @@ -405,11 +479,13 @@ msgid "" "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 " @@ -418,30 +494,35 @@ msgid "" "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 " +"binding when used with methods of classes. These may not be used for " "functions defined for modules. At most one of these flags may be set for " "any given method." msgstr "" +#: ../../c-api/structures.rst: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." +"what is created when using the :deco:`classmethod` built-in decorator." 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." +"what is created when using the :deco:`staticmethod` built-in decorator." 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 " @@ -454,17 +535,38 @@ msgid "" "wrapper object calls." msgstr "" +#: ../../c-api/structures.rst:453 +msgid "" +"The type object corresponding to Python C method objects. This is available " +"as :class:`types.BuiltinMethodType` in the Python layer." +msgstr "" + +#: ../../c-api/structures.rst:459 +msgid "" +"Return true if *op* is an instance of the :c:type:`PyCMethod_Type` type or a " +"subtype of it. This function always succeeds." +msgstr "" + +#: ../../c-api/structures.rst:465 +msgid "" +"This is the same as :c:func:`PyCMethod_Check`, but does not account for " +"subtypes." +msgstr "" + +#: ../../c-api/structures.rst:471 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:475 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:479 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 " @@ -472,57 +574,152 @@ msgid "" "can be set to :const:`None` or ``NULL``." msgstr "" +#: ../../c-api/structures.rst:485 msgid ":attr:`function.__module__`" msgstr "" +#: ../../c-api/structures.rst:487 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:496 +msgid "" +"The type object corresponding to Python C function objects. This is " +"available as :class:`types.BuiltinFunctionType` in the Python layer." +msgstr "" + +#: ../../c-api/structures.rst:502 +msgid "" +"Return true if *op* is an instance of the :c:type:`PyCFunction_Type` type or " +"a subtype of it. This function always succeeds." +msgstr "" + +#: ../../c-api/structures.rst:508 +msgid "" +"This is the same as :c:func:`PyCFunction_Check`, but does not account for " +"subtypes." +msgstr "" + +#: ../../c-api/structures.rst:514 msgid "Equivalent to ``PyCMethod_New(ml, self, module, NULL)``." msgstr "" +#: ../../c-api/structures.rst:519 msgid "Equivalent to ``PyCMethod_New(ml, self, NULL, NULL)``." msgstr "" +#: ../../c-api/structures.rst:524 +msgid "" +"Get the function's flags on *func* as they were passed to :c:member:" +"`~PyMethodDef.ml_flags`." +msgstr "" + +#: ../../c-api/structures.rst:527 ../../c-api/structures.rst:545 +#: ../../c-api/structures.rst:565 +msgid "" +"If *func* is not a C function object, this fails with an exception. *func* " +"must not be ``NULL``." +msgstr "" + +#: ../../c-api/structures.rst:530 +msgid "" +"This function returns the function's flags on success, and ``-1`` with an " +"exception set on failure." +msgstr "" + +#: ../../c-api/structures.rst:536 +msgid "" +"This is the same as :c:func:`PyCFunction_GetFlags`, but without error or " +"type checking." +msgstr "" + +#: ../../c-api/structures.rst:542 +msgid "" +"Get the function pointer on *func* as it was passed to :c:member:" +"`~PyMethodDef.ml_meth`." +msgstr "" + +#: ../../c-api/structures.rst:548 +msgid "" +"This function returns the function pointer on success, and ``NULL`` with an " +"exception set on failure." +msgstr "" + +#: ../../c-api/structures.rst:554 +msgid "" +"This is the same as :c:func:`PyCFunction_GetFunction`, but without error or " +"type checking." +msgstr "" + +#: ../../c-api/structures.rst:560 +msgid "" +"Get the \"self\" object on *func*. This is the object that would be passed " +"to the first argument of a :c:type:`PyCFunction`. For C function objects " +"created through a :c:type:`PyMethodDef` on a :c:type:`PyModuleDef`, this is " +"the resulting module object." +msgstr "" + +#: ../../c-api/structures.rst:568 +msgid "" +"This function returns a :term:`borrowed reference` to the \"self\" object on " +"success, and ``NULL`` with an exception set on failure." +msgstr "" + +#: ../../c-api/structures.rst:574 +msgid "" +"This is the same as :c:func:`PyCFunction_GetSelf`, but without error or type " +"checking." +msgstr "" + +#: ../../c-api/structures.rst:579 msgid "Accessing attributes of extension types" msgstr "" +#: ../../c-api/structures.rst:583 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:588 msgid "Its fields are, in order:" msgstr "" +#: ../../c-api/structures.rst:592 msgid "" "Name of the member. A NULL value marks the end of a ``PyMemberDef[]`` array." msgstr "" +#: ../../c-api/structures.rst:595 msgid "The string should be static, no copy is made of it." msgstr "" +#: ../../c-api/structures.rst:599 msgid "" "The type of the member in the C struct. See :ref:`PyMemberDef-types` for the " "possible values." msgstr "" +#: ../../c-api/structures.rst:604 msgid "" "The offset in bytes that the member is located on the type’s object struct." msgstr "" +#: ../../c-api/structures.rst:608 msgid "" "Zero or more of the :ref:`PyMemberDef-flags`, combined using bitwise OR." msgstr "" +#: ../../c-api/structures.rst:612 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:616 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-" @@ -531,6 +728,7 @@ msgid "" "`T_OBJECT`) members can be deleted." msgstr "" +#: ../../c-api/structures.rst:625 msgid "" "For heap-allocated types (created using :c:func:`PyType_FromSpec` or " "similar), ``PyMemberDef`` may contain a definition for the special member " @@ -540,6 +738,7 @@ msgid "" "Py_RELATIVE_OFFSET``. For example::" msgstr "" +#: ../../c-api/structures.rst:632 msgid "" "static PyMemberDef spam_type_members[] = {\n" " {\"__vectorcalloffset__\", Py_T_PYSSIZET,\n" @@ -548,9 +747,11 @@ msgid "" "};" msgstr "" +#: ../../c-api/structures.rst:638 msgid "(You may need to ``#include `` for :c:func:`!offsetof`.)" msgstr "" +#: ../../c-api/structures.rst:640 msgid "" "The legacy offsets :c:member:`~PyTypeObject.tp_dictoffset` and :c:member:" "`~PyTypeObject.tp_weaklistoffset` can be defined similarly using " @@ -559,70 +760,80 @@ msgid "" "and :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` instead." msgstr "" +#: ../../c-api/structures.rst:648 msgid "" "``PyMemberDef`` is always available. Previously, it required including " "``\"structmember.h\"``." msgstr "" +#: ../../c-api/structures.rst:653 msgid "" ":c:macro:`Py_RELATIVE_OFFSET` is now allowed for " "``\"__vectorcalloffset__\"``, ``\"__dictoffset__\"`` and " "``\"__weaklistoffset__\"``." msgstr "" +#: ../../c-api/structures.rst:659 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:665 msgid "" "``PyMember_GetOne`` is always available. Previously, it required including " "``\"structmember.h\"``." msgstr "" +#: ../../c-api/structures.rst:670 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:676 msgid "" "``PyMember_SetOne`` is always available. Previously, it required including " "``\"structmember.h\"``." msgstr "" +#: ../../c-api/structures.rst:682 msgid "Member flags" msgstr "" +#: ../../c-api/structures.rst:684 msgid "The following flags can be used with :c:member:`PyMemberDef.flags`:" msgstr "" +#: ../../c-api/structures.rst:688 msgid "Not writable." msgstr "" +#: ../../c-api/structures.rst:692 msgid "" "Emit an ``object.__getattr__`` :ref:`audit event ` before " "reading." msgstr "" +#: ../../c-api/structures.rst:697 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:701 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 "" - -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." +"Can only be used as part of the :c:data:`Py_tp_members` :c:type:`slot " +"` when creating a class using negative :c:member:`~PyType_Spec." +"basicsize`. It is mandatory in that case. When setting :c:member:" +"`~PyTypeObject.tp_members` from the slot during class creation, Python " +"clears the flag and sets :c:member:`PyMemberDef.offset` to the offset from " +"the ``PyObject`` struct." msgstr "" +#: ../../c-api/structures.rst:716 msgid "" "The :c:macro:`!RESTRICTED`, :c:macro:`!READ_RESTRICTED` and :c:macro:`!" "WRITE_RESTRICTED` macros available with ``#include \"structmember.h\"`` are " @@ -631,6 +842,7 @@ msgid "" "nothing." msgstr "" +#: ../../c-api/structures.rst:727 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 " @@ -639,9 +851,11 @@ msgid "" "names." msgstr "" +#: ../../c-api/structures.rst:736 msgid "Member types" msgstr "" +#: ../../c-api/structures.rst:738 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 " @@ -650,109 +864,147 @@ msgid "" "exception such as :exc:`TypeError` or :exc:`ValueError` is raised." msgstr "" +#: ../../c-api/structures.rst:746 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:750 msgid "Macro name" msgstr "" +#: ../../c-api/structures.rst:750 msgid "C type" msgstr "" +#: ../../c-api/structures.rst:750 msgid "Python type" msgstr "" +#: ../../c-api/structures.rst:752 msgid ":c:expr:`char`" msgstr "" +#: ../../c-api/structures.rst:752 ../../c-api/structures.rst:753 +#: ../../c-api/structures.rst:754 ../../c-api/structures.rst:755 +#: ../../c-api/structures.rst:756 ../../c-api/structures.rst:757 +#: ../../c-api/structures.rst:758 ../../c-api/structures.rst:759 +#: ../../c-api/structures.rst:760 ../../c-api/structures.rst:761 +#: ../../c-api/structures.rst:762 msgid ":py:class:`int`" msgstr "" +#: ../../c-api/structures.rst:753 msgid ":c:expr:`short`" msgstr "" +#: ../../c-api/structures.rst:754 msgid ":c:expr:`int`" msgstr "" +#: ../../c-api/structures.rst:755 msgid ":c:expr:`long`" msgstr "" +#: ../../c-api/structures.rst:756 msgid ":c:expr:`long long`" msgstr "" +#: ../../c-api/structures.rst:757 msgid ":c:expr:`unsigned char`" msgstr "" +#: ../../c-api/structures.rst:758 msgid ":c:expr:`unsigned int`" msgstr "" +#: ../../c-api/structures.rst:759 msgid ":c:expr:`unsigned short`" msgstr "" +#: ../../c-api/structures.rst:760 msgid ":c:expr:`unsigned long`" msgstr "" +#: ../../c-api/structures.rst:761 msgid ":c:expr:`unsigned long long`" msgstr "" +#: ../../c-api/structures.rst:762 msgid ":c:expr:`Py_ssize_t`" msgstr "" +#: ../../c-api/structures.rst:763 msgid ":c:expr:`float`" msgstr "" +#: ../../c-api/structures.rst:763 ../../c-api/structures.rst:764 msgid ":py:class:`float`" msgstr "" +#: ../../c-api/structures.rst:764 msgid ":c:expr:`double`" msgstr "" +#: ../../c-api/structures.rst:765 msgid ":c:expr:`char` (written as 0 or 1)" msgstr "" +#: ../../c-api/structures.rst:765 msgid ":py:class:`bool`" msgstr "" +#: ../../c-api/structures.rst:767 msgid ":c:expr:`const char *` (*)" msgstr "" +#: ../../c-api/structures.rst:767 ../../c-api/structures.rst:768 msgid ":py:class:`str` (RO)" msgstr "" +#: ../../c-api/structures.rst:768 msgid ":c:expr:`const char[]` (*)" msgstr "" +#: ../../c-api/structures.rst:769 msgid ":c:expr:`char` (0-127)" msgstr "" +#: ../../c-api/structures.rst:769 msgid ":py:class:`str` (**)" msgstr "" +#: ../../c-api/structures.rst:770 msgid ":c:expr:`PyObject *`" msgstr "" +#: ../../c-api/structures.rst:770 msgid ":py:class:`object` (D)" msgstr "" +#: ../../c-api/structures.rst:773 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:778 msgid "(**): String of length 1. Only ASCII is accepted." msgstr "" +#: ../../c-api/structures.rst:780 msgid "(RO): Implies :c:macro:`Py_READONLY`." msgstr "" +#: ../../c-api/structures.rst:782 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:808 msgid "" "In previous versions, the macros were only available with ``#include " "\"structmember.h\"`` and were named without the ``Py_`` prefix (e.g. as " @@ -760,135 +1012,174 @@ msgid "" "with the following deprecated types:" msgstr "" +#: ../../c-api/structures.rst:816 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:822 msgid "Always ``None``. Must be used with :c:macro:`Py_READONLY`." msgstr "" +#: ../../c-api/structures.rst:825 msgid "Defining Getters and Setters" msgstr "" +#: ../../c-api/structures.rst:829 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:834 msgid "attribute name" msgstr "" +#: ../../c-api/structures.rst:838 msgid "C function to get the attribute." msgstr "" +#: ../../c-api/structures.rst:842 msgid "" "Optional C function to set or delete the attribute. If ``NULL``, the " "attribute is read-only." msgstr "" +#: ../../c-api/structures.rst:847 msgid "optional docstring" msgstr "" +#: ../../c-api/structures.rst:851 msgid "" "Optional user data pointer, providing additional data for getter and setter." msgstr "" +#: ../../c-api/structures.rst:855 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:858 msgid "" "It should return a new reference on success or ``NULL`` with a set exception " "on failure." msgstr "" +#: ../../c-api/structures.rst:863 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:866 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:709 msgid "READ_RESTRICTED (C macro)" msgstr "" +#: ../../c-api/structures.rst:709 msgid "WRITE_RESTRICTED (C macro)" msgstr "" +#: ../../c-api/structures.rst:709 msgid "RESTRICTED (C macro)" msgstr "" +#: ../../c-api/structures.rst:722 msgid "READONLY (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_BYTE (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_SHORT (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_INT (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_LONG (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_LONGLONG (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_UBYTE (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_USHORT (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_UINT (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_ULONG (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_ULONGULONG (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_PYSSIZET (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_FLOAT (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_DOUBLE (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_BOOL (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_CHAR (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_STRING (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_STRING_INPLACE (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "T_OBJECT_EX (C macro)" msgstr "" +#: ../../c-api/structures.rst:785 msgid "structmember.h" msgstr "" diff --git a/c-api/sys.po b/c-api/sys.po index 5f3960f..1318f7b 100644 --- a/c-api/sys.po +++ b/c-api/sys.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -29,6 +31,7 @@ msgid "" "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 " @@ -38,9 +41,11 @@ msgid "" "``'???'``." 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 " @@ -48,12 +53,14 @@ msgid "" "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 " @@ -62,12 +69,14 @@ msgid "" "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 " @@ -76,18 +85,21 @@ msgid "" "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 " @@ -95,9 +107,11 @@ msgid "" "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 " @@ -106,30 +120,60 @@ msgid "" "should never change the definition in your own code." msgstr "" +#: ../../c-api/sys.rst:115 msgid "" "Return the current signal handler for signal *i*. This is a thin wrapper " "around either :c:func:`!sigaction` or :c:func:`!signal`. Do not call those " "functions directly!" msgstr "" +#: ../../c-api/sys.rst:122 msgid "" "Set the signal handler for signal *i* to be *h*; return the old signal " "handler. This is a thin wrapper around either :c:func:`!sigaction` or :c:" "func:`!signal`. Do not call those functions directly!" msgstr "" +#: ../../c-api/sys.rst:129 +msgid "Check if a :c:macro:`!SIGINT` signal has been received." +msgstr "" + +#: ../../c-api/sys.rst:131 +msgid "" +"Returns ``1`` if a :c:macro:`!SIGINT` has occurred and clears the signal " +"flag, or ``0`` otherwise." +msgstr "" + +#: ../../c-api/sys.rst:134 +msgid "" +"In most cases, you should prefer :c:func:`PyErr_CheckSignals` over this " +"function. :c:func:`!PyErr_CheckSignals` invokes the appropriate signal " +"handlers for all pending signals, allowing Python code to handle the signal " +"properly. This function only detects :c:macro:`!SIGINT` and does not invoke " +"any Python signal handlers." +msgstr "" + +#: ../../c-api/sys.rst:140 +msgid "" +"This function is async-signal-safe and this function cannot fail. The caller " +"must hold an :term:`attached thread state`." +msgstr "" + +#: ../../c-api/sys.rst:147 msgid "" "This function should not be called directly: use the :c:type:`PyConfig` API " "with the :c:func:`PyConfig_SetBytesString` function which ensures that :ref:" "`Python is preinitialized `." msgstr "" +#: ../../c-api/sys.rst:151 ../../c-api/sys.rst:218 msgid "" "This function must not be called before :ref:`Python is preinitialized ` and so that the LC_CTYPE locale is properly configured: see the :c:" "func:`Py_PreInitialize` function." msgstr "" +#: ../../c-api/sys.rst:155 msgid "" "Decode a byte string from the :term:`filesystem encoding and error handler`. " "If the error handler is :ref:`surrogateescape error handler " @@ -139,48 +183,57 @@ msgid "" "instead of decoding them." msgstr "" +#: ../../c-api/sys.rst:162 msgid "" "Return a pointer to a newly allocated wide character string, use :c:func:" "`PyMem_RawFree` to free the memory. If size is not ``NULL``, write the " "number of wide characters excluding the null character into ``*size``" msgstr "" +#: ../../c-api/sys.rst:166 msgid "" "Return ``NULL`` on decoding error or memory allocation error. If *size* is " "not ``NULL``, ``*size`` is set to ``(size_t)-1`` on memory error or set to " "``(size_t)-2`` on decoding error." msgstr "" +#: ../../c-api/sys.rst:170 ../../c-api/sys.rst:210 msgid "" "The :term:`filesystem encoding and error handler` are selected by :c:func:" "`PyConfig_Read`: see :c:member:`~PyConfig.filesystem_encoding` and :c:member:" "`~PyConfig.filesystem_errors` members of :c:type:`PyConfig`." msgstr "" +#: ../../c-api/sys.rst:174 msgid "" "Decoding errors should never happen, unless there is a bug in the C library." msgstr "" +#: ../../c-api/sys.rst:177 msgid "" "Use the :c:func:`Py_EncodeLocale` function to encode the character string " "back to a byte string." msgstr "" +#: ../../c-api/sys.rst:182 msgid "" "The :c:func:`PyUnicode_DecodeFSDefaultAndSize` and :c:func:" "`PyUnicode_DecodeLocaleAndSize` functions." msgstr "" +#: ../../c-api/sys.rst:187 ../../c-api/sys.rst:229 msgid "" "The function now uses the UTF-8 encoding in the :ref:`Python UTF-8 Mode " "`." msgstr "" +#: ../../c-api/sys.rst:191 msgid "" "The function now uses the UTF-8 encoding on Windows if :c:member:" "`PyPreConfig.legacy_windows_fs_encoding` is zero;" msgstr "" +#: ../../c-api/sys.rst:198 msgid "" "Encode a wide character string to the :term:`filesystem encoding and error " "handler`. If the error handler is :ref:`surrogateescape error handler " @@ -188,70 +241,85 @@ msgid "" "converted to bytes 0x80..0xFF." msgstr "" +#: ../../c-api/sys.rst:203 msgid "" "Return a pointer to a newly allocated byte string, use :c:func:`PyMem_Free` " "to free the memory. Return ``NULL`` on encoding error or memory allocation " "error." msgstr "" +#: ../../c-api/sys.rst:207 msgid "" "If error_pos is not ``NULL``, ``*error_pos`` is set to ``(size_t)-1`` on " "success, or set to the index of the invalid character on encoding error." msgstr "" +#: ../../c-api/sys.rst:214 msgid "" "Use the :c:func:`Py_DecodeLocale` function to decode the bytes string back " "to a wide character string." msgstr "" +#: ../../c-api/sys.rst:224 msgid "" "The :c:func:`PyUnicode_EncodeFSDefault` and :c:func:`PyUnicode_EncodeLocale` " "functions." msgstr "" +#: ../../c-api/sys.rst:233 msgid "" "The function now uses the UTF-8 encoding on Windows if :c:member:" "`PyPreConfig.legacy_windows_fs_encoding` is zero." msgstr "" +#: ../../c-api/sys.rst:239 msgid "" "Similar to :c:func:`!fopen`, but *path* is a Python object and an exception " "is set on error." msgstr "" +#: ../../c-api/sys.rst:242 msgid "" "*path* must be a :class:`str` object, a :class:`bytes` object, or a :term:" "`path-like object`." msgstr "" +#: ../../c-api/sys.rst:245 msgid "" "On success, return the new file pointer. On error, set an exception and " "return ``NULL``." msgstr "" +#: ../../c-api/sys.rst:248 msgid "" "The file must be closed by :c:func:`Py_fclose` rather than calling directly :" "c:func:`!fclose`." msgstr "" +#: ../../c-api/sys.rst:251 msgid "The file descriptor is created non-inheritable (:pep:`446`)." msgstr "" +#: ../../c-api/sys.rst:253 msgid "The caller must have an :term:`attached thread state`." msgstr "" +#: ../../c-api/sys.rst:260 msgid "Close a file that was opened by :c:func:`Py_fopen`." msgstr "" +#: ../../c-api/sys.rst:262 msgid "" "On success, return ``0``. On error, return ``EOF`` and ``errno`` is set to " "indicate the error. In either case, any further access (including another " "call to :c:func:`Py_fclose`) to the stream results in undefined behavior." msgstr "" +#: ../../c-api/sys.rst:273 msgid "System Functions" msgstr "" +#: ../../c-api/sys.rst:275 msgid "" "These are utility functions that make functionality from the :mod:`sys` " "module accessible to C code. They all work with the current interpreter " @@ -259,30 +327,36 @@ msgid "" "state structure." msgstr "" +#: ../../c-api/sys.rst:281 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:286 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:292 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:295 msgid "Clear :data:`sys.warnoptions` and :data:`!warnings.filters` instead." msgstr "" +#: ../../c-api/sys.rst:300 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:303 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 " @@ -293,40 +367,48 @@ msgid "" "of digits for very large numbers." msgstr "" +#: ../../c-api/sys.rst:311 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:316 msgid "" "As :c:func:`PySys_WriteStdout`, but write to :data:`sys.stderr` or *stderr* " "instead." msgstr "" +#: ../../c-api/sys.rst:321 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:329 msgid "" "As :c:func:`PySys_FormatStdout`, but write to :data:`sys.stderr` or *stderr* " "instead." msgstr "" +#: ../../c-api/sys.rst:336 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:345 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:348 msgid "The *event* string argument must not be *NULL*." msgstr "" +#: ../../c-api/sys.rst:350 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 " @@ -334,33 +416,40 @@ msgid "" "tuple, it will be added into a single-element tuple." msgstr "" +#: ../../c-api/sys.rst:355 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:359 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:362 msgid ":func:`sys.audit` performs the same function from Python code." msgstr "" +#: ../../c-api/sys.rst:364 msgid "See also :c:func:`PySys_AuditTuple`." msgstr "" +#: ../../c-api/sys.rst:370 msgid "" "Require :c:type:`Py_ssize_t` for ``#`` format characters. Previously, an " "unavoidable deprecation warning was raised." msgstr "" +#: ../../c-api/sys.rst:376 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:384 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, " @@ -368,12 +457,14 @@ msgid "" "all interpreters created by the runtime." msgstr "" +#: ../../c-api/sys.rst:390 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:394 msgid "" "This function is safe to call before :c:func:`Py_Initialize`. When called " "after runtime initialization, existing audit hooks are notified and may " @@ -381,17 +472,20 @@ msgid "" "`Exception` (other errors will not be silenced)." msgstr "" +#: ../../c-api/sys.rst:399 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:402 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:407 ../../c-api/sys.rst:409 msgid "" "If the interpreter is initialized, this function raises an auditing event " "``sys.addaudithook`` with no arguments. If any existing hooks raise an " @@ -400,6 +494,7 @@ msgid "" "hook has been added unless they control all existing hooks." msgstr "" +#: ../../c-api/sys.rst:418 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 " @@ -407,9 +502,11 @@ msgid "" "PySys_AddAuditHook()." msgstr "" +#: ../../c-api/sys.rst:430 msgid "Process Control" msgstr "" +#: ../../c-api/sys.rst:437 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 " @@ -419,24 +516,29 @@ msgid "" "file:`core` file." msgstr "" +#: ../../c-api/sys.rst:444 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:448 msgid "Log the function name automatically." msgstr "" +#: ../../c-api/sys.rst:458 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:462 msgid "Errors from finalization no longer ignored." msgstr "" +#: ../../c-api/sys.rst:472 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 " @@ -448,20 +550,26 @@ msgid "" "should be called by *func*." msgstr "" +#: ../../c-api/sys.rst:482 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:435 msgid "abort (C function)" msgstr "" +#: ../../c-api/sys.rst:454 ../../c-api/sys.rst:468 msgid "Py_FinalizeEx (C function)" msgstr "" +#: ../../c-api/sys.rst:454 msgid "exit (C function)" msgstr "" +#: ../../c-api/sys.rst:468 msgid "cleanup functions" msgstr "" diff --git a/c-api/time.po b/c-api/time.po index 1d2dab4..e29ffbf 100644 --- a/c-api/time.po +++ b/c-api/time.po @@ -8,66 +8,79 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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]`` " @@ -75,37 +88,45 @@ msgid "" "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 reference to *o* and discards a " +"reference to an item already in the tuple at the affected position (unless " +"it was NULL)." msgstr "" +#: ../../c-api/tuple.rst:100 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:103 ../../c-api/tuple.rst:225 +#: ../../c-api/tuple.rst:243 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:108 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." +"This function \":term:`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:115 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:122 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 " @@ -131,9 +154,11 @@ msgid "" "`SystemError`." msgstr "" +#: ../../c-api/tuple.rst:137 msgid "Struct Sequence Objects" msgstr "" +#: ../../c-api/tuple.rst:139 msgid "" "Struct sequence objects are the C equivalent of :func:`~collections." "namedtuple` objects, i.e. a sequence whose items can also be accessed " @@ -141,40 +166,50 @@ msgid "" "specific struct sequence type." msgstr "" +#: ../../c-api/tuple.rst:146 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:149 ../../c-api/tuple.rst:218 msgid "Return ``NULL`` with an exception set on failure." msgstr "" +#: ../../c-api/tuple.rst:154 msgid "Initializes a struct sequence type *type* from *desc* in place." msgstr "" +#: ../../c-api/tuple.rst:159 msgid "" "Like :c:func:`PyStructSequence_InitType`, but returns ``0`` on success and " "``-1`` with an exception set on failure." msgstr "" +#: ../../c-api/tuple.rst:167 msgid "Contains the meta information of a struct sequence type to create." msgstr "" +#: ../../c-api/tuple.rst:171 msgid "" "Fully qualified name of the type; null-terminated UTF-8 encoded. The name " "must contain the module name." msgstr "" +#: ../../c-api/tuple.rst:176 msgid "Pointer to docstring for the type or ``NULL`` to omit." msgstr "" +#: ../../c-api/tuple.rst:180 msgid "Pointer to ``NULL``-terminated array with field names of the new type." msgstr "" +#: ../../c-api/tuple.rst:184 msgid "Number of fields visible to the Python side (if used as tuple)." msgstr "" +#: ../../c-api/tuple.rst:189 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:" @@ -183,52 +218,66 @@ msgid "" "described." msgstr "" +#: ../../c-api/tuple.rst:197 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:202 msgid "Field docstring or ``NULL`` to omit." msgstr "" +#: ../../c-api/tuple.rst:207 msgid "Special value for a field name to leave it unnamed." msgstr "" +#: ../../c-api/tuple.rst:209 msgid "The type was changed from ``char *``." msgstr "" +#: ../../c-api/tuple.rst:215 msgid "" "Creates an instance of *type*, which must have been created with :c:func:" "`PyStructSequence_NewType`." msgstr "" +#: ../../c-api/tuple.rst:223 msgid "" "Return the object at position *pos* in the struct sequence pointed to by *p*." msgstr "" +#: ../../c-api/tuple.rst:231 msgid "Alias to :c:func:`PyStructSequence_GetItem`." msgstr "" +#: ../../c-api/tuple.rst:233 msgid "Now implemented as an alias to :c:func:`PyStructSequence_GetItem`." msgstr "" +#: ../../c-api/tuple.rst:239 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 "" -msgid "This function \"steals\" a reference to *o*." +#: ../../c-api/tuple.rst:248 +msgid "This function \":term:`steals `\" a reference to *o*." msgstr "" +#: ../../c-api/tuple.rst:253 msgid "Alias to :c:func:`PyStructSequence_SetItem`." msgstr "" +#: ../../c-api/tuple.rst:255 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 index 5fcb76e..ee1b536 100644 --- a/c-api/type.po +++ b/c-api/type.po @@ -11,42 +11,49 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -55,9 +62,11 @@ msgid "" "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 " @@ -65,23 +74,27 @@ msgid "" "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 " @@ -89,23 +102,27 @@ msgid "" "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` " @@ -115,39 +132,79 @@ msgid "" "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 "" +"Mark *type* as not watched. This undoes a previous call to :c:func:" +"`PyType_Watch`. *type* must not be ``NULL``." +msgstr "" + +#: ../../c-api/type.rst:124 +msgid "" +"An extension should never call this function with a *watcher_id* that was " +"not returned to it by a previous call to :c:func:`PyType_AddWatcher`." +msgstr "" + +#: ../../c-api/type.rst:127 +msgid "" +"On success, this function returns ``0``. On failure, this function returns " +"``-1`` with an exception set." +msgstr "" + +#: ../../c-api/type.rst:135 msgid "Type of a type-watcher callback function." msgstr "" +#: ../../c-api/type.rst:137 msgid "" "The callback must not modify *type* or cause :c:func:`PyType_Modified` to be " "called on *type* or any type in its MRO; violating this rule could cause " "infinite recursion." msgstr "" +#: ../../c-api/type.rst:146 msgid "" "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:152 +msgid "" +"Return non-zero if the type object *type* sets the subclass flag *flag*. " +"Subclass flags are denoted by :c:macro:`Py_TPFLAGS_*_SUBCLASS " +"`. This function is used by many ``_Check`` " +"functions for common types." +msgstr "" + +#: ../../c-api/type.rst:158 +msgid "" +":c:func:`PyObject_TypeCheck`, which is used as a slower alternative in " +"``_Check`` functions for types that don't come with subclass flags." +msgstr "" + +#: ../../c-api/type.rst:164 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:170 msgid "Return true if *a* is a subtype of *b*." msgstr "" +#: ../../c-api/type.rst:172 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:180 msgid "" "Generic handler for the :c:member:`~PyTypeObject.tp_alloc` slot of a type " "object. Uses Python's default memory allocation mechanism to allocate " @@ -155,11 +212,13 @@ msgid "" "if by calling :c:func:`PyObject_Init` or :c:func:`PyObject_InitVar`." msgstr "" +#: ../../c-api/type.rst:185 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:188 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:" @@ -171,12 +230,14 @@ msgid "" "paired with :c:func:`PyObject_Free` in :c:member:`~PyTypeObject.tp_free`." msgstr "" +#: ../../c-api/type.rst:201 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:208 msgid "" "Finalize a type object. This should be called on all type objects to finish " "their initialization. This function is responsible for adding inherited " @@ -184,6 +245,7 @@ msgid "" "and sets an exception on error." msgstr "" +#: ../../c-api/type.rst:214 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 " @@ -194,27 +256,32 @@ msgid "" "handle." msgstr "" +#: ../../c-api/type.rst:225 msgid "" "Return the type's name. Equivalent to getting the type's :attr:`~type." "__name__` attribute." msgstr "" +#: ../../c-api/type.rst:233 msgid "" "Return the type's qualified name. Equivalent to getting the type's :attr:" "`~type.__qualname__` attribute." msgstr "" +#: ../../c-api/type.rst:240 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:249 msgid "" "Return the type's module name. Equivalent to getting the :attr:`type." "__module__` attribute." msgstr "" +#: ../../c-api/type.rst:257 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 " @@ -222,25 +289,37 @@ msgid "" "result pointer into the appropriate function type." msgstr "" +#: ../../c-api/type.rst:263 msgid "" "See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument." msgstr "" +#: ../../c-api/type.rst:267 msgid "" ":c:func:`PyType_GetSlot` can now accept all types. Previously, it was " "limited to :ref:`heap types `." msgstr "" +#: ../../c-api/type.rst:274 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:277 ../../c-api/type.rst:324 +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:281 ../../c-api/type.rst:302 msgid "" "If no module is associated with the given type, sets :py:class:`TypeError` " "and returns ``NULL``." msgstr "" +#: ../../c-api/type.rst:284 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 " @@ -251,26 +330,31 @@ msgid "" "type:`!PyCMethod` cannot be used." msgstr "" +#: ../../c-api/type.rst:298 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:305 msgid "" "If the *type* has an associated module but its state is ``NULL``, returns " "``NULL`` without setting an exception." msgstr "" +#: ../../c-api/type.rst:313 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:316 msgid "" "If no module is found, raises a :py:class:`TypeError` and returns ``NULL``." msgstr "" +#: ../../c-api/type.rst:318 msgid "" "This function is intended to be used together with :c:func:" "`PyModule_GetState()` to get module state from slot methods (such as :c:" @@ -279,78 +363,101 @@ msgid "" "type:`PyCMethod` calling convention." msgstr "" -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:333 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:336 msgid "" "If found, set *\\*result* to a new :term:`strong reference` to it and return " "``1``." msgstr "" +#: ../../c-api/type.rst:338 msgid "If not found, set *\\*result* to ``NULL`` and return ``0``." msgstr "" +#: ../../c-api/type.rst:339 msgid "" "On error, set *\\*result* to ``NULL`` and return ``-1`` with an exception " "set." msgstr "" +#: ../../c-api/type.rst:342 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:345 msgid "The *token* argument may not be ``NULL``." msgstr "" +#: ../../c-api/type.rst:352 msgid "Attempt to assign a version tag to the given type." msgstr "" +#: ../../c-api/type.rst:354 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:362 +msgid "" +"Return true if instances of *type* support creating weak references, false " +"otherwise. This function always succeeds. *type* must not be ``NULL``." +msgstr "" + +#: ../../c-api/type.rst:366 +msgid ":ref:`weakrefobjects`" +msgstr "" + +#: ../../c-api/type.rst:367 +msgid ":py:mod:`weakref`" +msgstr "" + +#: ../../c-api/type.rst:371 msgid "Creating Heap-Allocated Types" msgstr "" +#: ../../c-api/type.rst:373 msgid "" "The following functions and structs are used to create :ref:`heap types " "`." msgstr "" +#: ../../c-api/type.rst:378 msgid "" "Create and return a :ref:`heap type ` from the *spec* (see :c:" "macro:`Py_TPFLAGS_HEAPTYPE`)." msgstr "" +#: ../../c-api/type.rst:381 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:385 msgid "" "Metaclasses that override :c:member:`~PyTypeObject.tp_new` are not " "supported, except if ``tp_new`` is ``NULL``." msgstr "" +#: ../../c-api/type.rst:388 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 " +"only one class or a tuple of classes. If *bases* is ``NULL``, the :c:data:" +"`Py_tp_bases` slot is used instead. If that also is ``NULL``, the :c:data:" +"`Py_tp_base` slot is used instead. If that also is ``NULL``, the new type " "derives from :class:`object`." msgstr "" +#: ../../c-api/type.rst:394 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``, " @@ -359,9 +466,11 @@ msgid "" "subclasses; it must be specified for each class individually." msgstr "" +#: ../../c-api/type.rst:401 msgid "This function calls :c:func:`PyType_Ready` on the new type." msgstr "" +#: ../../c-api/type.rst:403 msgid "" "Note that this function does *not* fully match the behavior of calling :py:" "class:`type() ` or using the :keyword:`class` statement. With user-" @@ -370,87 +479,108 @@ msgid "" "Specifically:" msgstr "" +#: ../../c-api/type.rst:410 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:412 msgid ":py:meth:`~object.__init__` is not called on the new class." msgstr "" +#: ../../c-api/type.rst:413 msgid ":py:meth:`~object.__init_subclass__` is not called on any bases." msgstr "" +#: ../../c-api/type.rst:414 msgid ":py:meth:`~object.__set_name__` is not called on new descriptors." msgstr "" +#: ../../c-api/type.rst:421 msgid "Equivalent to ``PyType_FromMetaclass(NULL, module, spec, bases)``." msgstr "" +#: ../../c-api/type.rst:427 msgid "" "The function now accepts a single class as the *bases* argument and ``NULL`` " "as the ``tp_doc`` slot." msgstr "" +#: ../../c-api/type.rst:432 ../../c-api/type.rst:454 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:435 ../../c-api/type.rst:457 ../../c-api/type.rst:478 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:442 ../../c-api/type.rst:464 ../../c-api/type.rst:485 msgid "" "Creating classes whose metaclass overrides :c:member:`~PyTypeObject.tp_new` " "is no longer allowed." msgstr "" +#: ../../c-api/type.rst:448 msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, bases)``." msgstr "" +#: ../../c-api/type.rst:470 msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, NULL)``." msgstr "" +#: ../../c-api/type.rst:474 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:491 msgid "" "Make a type immutable: set the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag." msgstr "" +#: ../../c-api/type.rst:493 msgid "All base classes of *type* must be immutable." msgstr "" +#: ../../c-api/type.rst:495 msgid "On success, return ``0``. On error, set an exception and return ``-1``." msgstr "" +#: ../../c-api/type.rst:498 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:514 msgid "Structure defining a type's behavior." msgstr "" +#: ../../c-api/type.rst:518 msgid "Name of the type, used to set :c:member:`PyTypeObject.tp_name`." msgstr "" +#: ../../c-api/type.rst:522 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:525 msgid "" "If zero, specifies that :c:member:`~PyTypeObject.tp_basicsize` should be " "inherited." msgstr "" +#: ../../c-api/type.rst:528 msgid "" "If negative, the absolute value specifies how much space instances of the " "class need *in addition* to the superclass. Use :c:func:" @@ -460,14 +590,17 @@ msgid "" "requirements." msgstr "" +#: ../../c-api/type.rst:538 msgid "Previously, this field could not be negative." msgstr "" +#: ../../c-api/type.rst:542 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:546 msgid "" "If zero, :c:member:`~PyTypeObject.tp_itemsize` is inherited. Extending " "arbitrary variable-sized classes is dangerous, since some types use a fixed " @@ -476,47 +609,59 @@ msgid "" "only possible in the following situations:" msgstr "" +#: ../../c-api/type.rst:553 msgid "" -"The base is not variable-sized (its :c:member:`~PyTypeObject.tp_itemsize`)." +"The base is not variable-sized (its :c:member:`~PyTypeObject.tp_itemsize` is " +"zero)." msgstr "" +#: ../../c-api/type.rst:555 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:557 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:560 msgid "With the :c:macro:`Py_TPFLAGS_ITEMS_AT_END` flag." msgstr "" +#: ../../c-api/type.rst:564 msgid "Type flags, used to set :c:member:`PyTypeObject.tp_flags`." msgstr "" +#: ../../c-api/type.rst:566 msgid "" "If the ``Py_TPFLAGS_HEAPTYPE`` flag is not set, :c:func:" "`PyType_FromSpecWithBases` sets it automatically." msgstr "" +#: ../../c-api/type.rst:571 msgid "" "Array of :c:type:`PyType_Slot` structures. Terminated by the special slot " "value ``{0, NULL}``." msgstr "" +#: ../../c-api/type.rst:574 msgid "Each slot ID should be specified at most once." msgstr "" +#: ../../c-api/type.rst:584 msgid "" "Structure defining optional functionality of a type, containing a slot ID " "and a value pointer." msgstr "" +#: ../../c-api/type.rst:589 msgid "A slot ID." msgstr "" +#: ../../c-api/type.rst:591 msgid "" "Slot IDs are named like the field names of the structures :c:type:" "`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, :c:" @@ -524,140 +669,171 @@ msgid "" "prefix. For example, use:" msgstr "" -msgid "``Py_tp_dealloc`` to set :c:member:`PyTypeObject.tp_dealloc`" +#: ../../c-api/type.rst:597 +msgid ":c:data:`Py_tp_dealloc` to set :c:member:`PyTypeObject.tp_dealloc`" msgstr "" -msgid "``Py_nb_add`` to set :c:member:`PyNumberMethods.nb_add`" +#: ../../c-api/type.rst:598 +msgid ":c:data:`Py_nb_add` to set :c:member:`PyNumberMethods.nb_add`" msgstr "" -msgid "``Py_sq_length`` to set :c:member:`PySequenceMethods.sq_length`" +#: ../../c-api/type.rst:599 +msgid ":c:data:`Py_sq_length` to set :c:member:`PySequenceMethods.sq_length`" msgstr "" +#: ../../c-api/type.rst:601 msgid "" "An additional slot is supported that does not correspond to a :c:type:`!" "PyTypeObject` struct field:" msgstr "" +#: ../../c-api/type.rst:604 msgid ":c:data:`Py_tp_token`" msgstr "" +#: ../../c-api/type.rst:606 msgid "" "The following “offset” fields cannot be set using :c:type:`PyType_Slot`:" msgstr "" +#: ../../c-api/type.rst:608 msgid "" ":c:member:`~PyTypeObject.tp_weaklistoffset` (use :c:macro:" "`Py_TPFLAGS_MANAGED_WEAKREF` instead if possible)" msgstr "" +#: ../../c-api/type.rst:610 msgid "" ":c:member:`~PyTypeObject.tp_dictoffset` (use :c:macro:" "`Py_TPFLAGS_MANAGED_DICT` instead if possible)" msgstr "" +#: ../../c-api/type.rst:612 msgid "" ":c:member:`~PyTypeObject.tp_vectorcall_offset` (use " "``\"__vectorcalloffset__\"`` in :ref:`PyMemberDef `)" msgstr "" +#: ../../c-api/type.rst:616 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." +"data:`Py_tp_members`. See :ref:`PyMemberDef documentation ` for details." msgstr "" +#: ../../c-api/type.rst:622 msgid "" "The following internal fields cannot be set at all when creating a heap type:" msgstr "" +#: ../../c-api/type.rst:625 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:631 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:636 msgid "Slots in :c:type:`PyBufferProcs` may be set in the unlimited API." msgstr "" +#: ../../c-api/type.rst:639 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:644 msgid "" -"The field :c:member:`~PyTypeObject.tp_vectorcall` can now set using " -"``Py_tp_vectorcall``. See the field's documentation for details." +"The field :c:member:`~PyTypeObject.tp_vectorcall` can now be set using :c:" +"data:`Py_tp_vectorcall`. See the field's documentation for details." msgstr "" +#: ../../c-api/type.rst:651 msgid "" "The desired value of the slot. In most cases, this is a pointer to a " "function." msgstr "" +#: ../../c-api/type.rst:654 msgid "*pfunc* values may not be ``NULL``, except for the following slots:" msgstr "" -msgid "``Py_tp_doc``" +#: ../../c-api/type.rst:656 +msgid ":c:data:`Py_tp_doc`" msgstr "" +#: ../../c-api/type.rst:657 msgid "" ":c:data:`Py_tp_token` (for clarity, prefer :c:data:`Py_TP_USE_SPEC` rather " "than ``NULL``)" msgstr "" +#: ../../c-api/type.rst:663 msgid "" "A :c:member:`~PyType_Slot.slot` that records a static memory layout ID for a " "class." msgstr "" +#: ../../c-api/type.rst:666 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:670 msgid "" "static PyType_Slot foo_slots[] = {\n" " {Py_tp_token, Py_TP_USE_SPEC}," msgstr "" +#: ../../c-api/type.rst:675 msgid "It can also be set to an arbitrary pointer, but you must ensure that:" msgstr "" +#: ../../c-api/type.rst:677 msgid "" "The pointer outlives the class, so it's not reused for something else while " "the class exists." msgstr "" +#: ../../c-api/type.rst:679 msgid "" "It \"belongs\" to the extension module where the class lives, so it will not " "clash with other extensions." msgstr "" +#: ../../c-api/type.rst:682 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:685 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:694 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 "Typ" diff --git a/c-api/typehints.po b/c-api/typehints.po index 4a9d17c..98435d2 100644 --- a/c-api/typehints.po +++ b/c-api/typehints.po @@ -8,24 +8,27 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -40,23 +43,27 @@ msgid "" "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" +" {\"__class_getitem__\", Py_GenericAlias, METH_O|METH_CLASS, \"my_obj is " +"generic over its contained type\"}\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." diff --git a/c-api/typeobj.po b/c-api/typeobj.po index 0376b33..3e41043 100644 --- a/c-api/typeobj.po +++ b/c-api/typeobj.po @@ -11,19 +11,21 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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` " @@ -34,6 +36,7 @@ msgid "" "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 " @@ -43,406 +46,599 @@ msgid "" "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:44 ../../c-api/typeobj.rst:86 +#: ../../c-api/typeobj.rst:372 ../../c-api/typeobj.rst:377 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: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:343 +#: ../../c-api/typeobj.rst:417 ../../c-api/typeobj.rst:448 +#: ../../c-api/typeobj.rst:453 msgid ":c:type:`Py_ssize_t`" msgstr "" +#: ../../c-api/typeobj.rst:48 msgid ":c:member:`~PyTypeObject.tp_itemsize`" msgstr "" +#: ../../c-api/typeobj.rst:50 msgid ":c:member:`~PyTypeObject.tp_dealloc`" msgstr "" +#: ../../c-api/typeobj.rst: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:111 ../../c-api/typeobj.rst:342 +#: ../../c-api/typeobj.rst:357 msgid ":c:type:`PyTypeObject` *" msgstr "" +#: ../../c-api/typeobj.rst:111 msgid "__base__" msgstr "" +#: ../../c-api/typeobj.rst:113 msgid ":c:member:`~PyTypeObject.tp_dict`" msgstr "" +#: ../../c-api/typeobj.rst: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:351 +#: ../../c-api/typeobj.rst:357 ../../c-api/typeobj.rst:358 +#: ../../c-api/typeobj.rst:359 ../../c-api/typeobj.rst:363 +#: ../../c-api/typeobj.rst:364 ../../c-api/typeobj.rst:365 +#: ../../c-api/typeobj.rst:369 ../../c-api/typeobj.rst:371 +#: ../../c-api/typeobj.rst:376 ../../c-api/typeobj.rst:378 +#: ../../c-api/typeobj.rst:382 ../../c-api/typeobj.rst:383 +#: ../../c-api/typeobj.rst:387 ../../c-api/typeobj.rst:388 +#: ../../c-api/typeobj.rst:389 ../../c-api/typeobj.rst:393 +#: ../../c-api/typeobj.rst:394 ../../c-api/typeobj.rst:395 +#: ../../c-api/typeobj.rst:399 ../../c-api/typeobj.rst:400 +#: ../../c-api/typeobj.rst:401 ../../c-api/typeobj.rst:405 +#: ../../c-api/typeobj.rst:407 ../../c-api/typeobj.rst:408 +#: ../../c-api/typeobj.rst:413 ../../c-api/typeobj.rst:415 +#: ../../c-api/typeobj.rst:417 ../../c-api/typeobj.rst:419 +#: ../../c-api/typeobj.rst:425 ../../c-api/typeobj.rst:430 +#: ../../c-api/typeobj.rst:432 ../../c-api/typeobj.rst:436 +#: ../../c-api/typeobj.rst:437 ../../c-api/typeobj.rst:441 +#: ../../c-api/typeobj.rst:442 ../../c-api/typeobj.rst:443 +#: ../../c-api/typeobj.rst:447 ../../c-api/typeobj.rst:452 +#: ../../c-api/typeobj.rst:454 ../../c-api/typeobj.rst:458 +#: ../../c-api/typeobj.rst:459 ../../c-api/typeobj.rst:463 +#: ../../c-api/typeobj.rst:464 ../../c-api/typeobj.rst:465 msgid ":c:type:`PyObject` *" msgstr "" +#: ../../c-api/typeobj.rst:113 msgid "__dict__" msgstr "" +#: ../../c-api/typeobj.rst:115 msgid ":c:member:`~PyTypeObject.tp_descr_get`" msgstr "" +#: ../../c-api/typeobj.rst: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:138 ../../c-api/typeobj.rst:279 +#: ../../c-api/typeobj.rst:349 ../../c-api/typeobj.rst:353 msgid "void *" msgstr "" +#: ../../c-api/typeobj.rst:138 msgid "__subclasses__" msgstr "" +#: ../../c-api/typeobj.rst:140 msgid "[:c:member:`~PyTypeObject.tp_weaklist`]" msgstr "" +#: ../../c-api/typeobj.rst:142 msgid "(:c:member:`~PyTypeObject.tp_del`)" msgstr "" +#: ../../c-api/typeobj.rst:144 msgid "[:c:member:`~PyTypeObject.tp_version_tag`]" msgstr "" +#: ../../c-api/typeobj.rst:144 msgid "unsigned int" msgstr "" +#: ../../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:type:`vectorcallfunc`" +#: ../../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" @@ -451,9 +647,11 @@ msgid "" "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" @@ -463,395 +661,551 @@ msgid "" "? - 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 "" -msgid "__release_\\ buffer\\__" +#: ../../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:352 msgid ":c:type:`visitproc`" msgstr "" +#: ../../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:409 +#: ../../c-api/typeobj.rst:419 ../../c-api/typeobj.rst:421 +#: ../../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:420 ../../c-api/typeobj.rst:426 msgid ":c:type:`Py_buffer` *" msgstr "" +#: ../../c-api/typeobj.rst:425 msgid ":c:type:`releasebufferproc`" msgstr "" +#: ../../c-api/typeobj.rst:470 msgid "See :ref:`slot-typedefs` below for more detail." msgstr "" +#: ../../c-api/typeobj.rst:474 msgid "PyTypeObject Definition" msgstr "" +#: ../../c-api/typeobj.rst:476 msgid "" "The structure definition for :c:type:`PyTypeObject` can be found in :file:" "`Include/cpython/object.h`. For convenience of reference, this repeats the " "definition found there:" msgstr "" +#: ../../c-api/typeobj.rst:482 msgid "" "typedef struct _typeobject {\n" " PyObject_VAR_HEAD\n" @@ -950,9 +1304,11 @@ msgid "" "} 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 :" @@ -962,9 +1318,11 @@ msgid "" "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 " @@ -974,15 +1332,52 @@ msgid "" "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:809 +#: ../../c-api/typeobj.rst:854 ../../c-api/typeobj.rst:873 +#: ../../c-api/typeobj.rst:892 ../../c-api/typeobj.rst:910 +#: ../../c-api/typeobj.rst:936 ../../c-api/typeobj.rst:953 +#: ../../c-api/typeobj.rst:965 ../../c-api/typeobj.rst:977 +#: ../../c-api/typeobj.rst:1012 ../../c-api/typeobj.rst:1036 +#: ../../c-api/typeobj.rst:1058 ../../c-api/typeobj.rst:1081 +#: ../../c-api/typeobj.rst:1109 ../../c-api/typeobj.rst:1128 +#: ../../c-api/typeobj.rst:1144 ../../c-api/typeobj.rst:1184 +#: ../../c-api/typeobj.rst:1195 ../../c-api/typeobj.rst:1205 +#: ../../c-api/typeobj.rst:1215 ../../c-api/typeobj.rst:1229 +#: ../../c-api/typeobj.rst:1247 ../../c-api/typeobj.rst:1270 +#: ../../c-api/typeobj.rst:1288 ../../c-api/typeobj.rst:1301 +#: ../../c-api/typeobj.rst:1323 ../../c-api/typeobj.rst:1370 +#: ../../c-api/typeobj.rst:1396 ../../c-api/typeobj.rst:1415 +#: ../../c-api/typeobj.rst:1445 ../../c-api/typeobj.rst:1467 +#: ../../c-api/typeobj.rst:1505 ../../c-api/typeobj.rst:1517 +#: ../../c-api/typeobj.rst:1543 ../../c-api/typeobj.rst:1641 +#: ../../c-api/typeobj.rst:1787 ../../c-api/typeobj.rst:1854 +#: ../../c-api/typeobj.rst:1890 ../../c-api/typeobj.rst:1917 +#: ../../c-api/typeobj.rst:1943 ../../c-api/typeobj.rst:1958 +#: ../../c-api/typeobj.rst:1975 ../../c-api/typeobj.rst:1991 +#: ../../c-api/typeobj.rst:2023 ../../c-api/typeobj.rst:2055 +#: ../../c-api/typeobj.rst:2083 ../../c-api/typeobj.rst:2103 +#: ../../c-api/typeobj.rst:2132 ../../c-api/typeobj.rst:2178 +#: ../../c-api/typeobj.rst:2197 ../../c-api/typeobj.rst:2239 +#: ../../c-api/typeobj.rst:2264 ../../c-api/typeobj.rst:2304 +#: ../../c-api/typeobj.rst:2334 ../../c-api/typeobj.rst:2347 +#: ../../c-api/typeobj.rst:2357 ../../c-api/typeobj.rst:2374 +#: ../../c-api/typeobj.rst:2391 ../../c-api/typeobj.rst:2407 +#: ../../c-api/typeobj.rst:2551 ../../c-api/typeobj.rst:2611 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 " @@ -994,9 +1389,11 @@ msgid "" "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 " @@ -1004,27 +1401,39 @@ msgid "" "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:811 +#: ../../c-api/typeobj.rst:938 ../../c-api/typeobj.rst:1038 +#: ../../c-api/typeobj.rst:1060 ../../c-api/typeobj.rst:1919 +#: ../../c-api/typeobj.rst:1945 ../../c-api/typeobj.rst:2085 +#: ../../c-api/typeobj.rst:2105 ../../c-api/typeobj.rst:2180 +#: ../../c-api/typeobj.rst:2306 ../../c-api/typeobj.rst:2553 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 " @@ -1032,6 +1441,7 @@ msgid "" "`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 " @@ -1043,12 +1453,14 @@ msgid "" "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 " @@ -1056,6 +1468,7 @@ msgid "" "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:" @@ -1065,16 +1478,19 @@ msgid "" "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 " @@ -1084,6 +1500,7 @@ msgid "" "`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:`!" @@ -1091,6 +1508,7 @@ msgid "" "\"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` " @@ -1101,11 +1519,13 @@ msgid "" "`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. " @@ -1115,11 +1535,13 @@ msgid "" "`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 " @@ -1128,6 +1550,7 @@ msgid "" "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:" @@ -1136,19 +1559,23 @@ msgid "" "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 " @@ -1157,6 +1584,7 @@ msgid "" "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 " @@ -1164,12 +1592,14 @@ msgid "" "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 " @@ -1177,13 +1607,16 @@ msgid "" "implementation of the base type)." msgstr "" +#: ../../c-api/typeobj.rst:681 msgid "" "A pointer to the instance destructor function. The function signature is::" msgstr "" +#: ../../c-api/typeobj.rst:683 msgid "void tp_dealloc(PyObject *self);" msgstr "" +#: ../../c-api/typeobj.rst:685 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 " @@ -1191,6 +1624,7 @@ msgid "" "free the object itself." msgstr "" +#: ../../c-api/typeobj.rst:690 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 " @@ -1198,6 +1632,7 @@ msgid "" "could have occurred while processing a different error):" msgstr "" +#: ../../c-api/typeobj.rst:695 msgid "" "static void\n" "foo_dealloc(foo_object *self)\n" @@ -1209,45 +1644,53 @@ msgid "" "}" msgstr "" +#: ../../c-api/typeobj.rst:706 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:710 msgid "No guarantees are made about when an object is destroyed, except:" msgstr "" +#: ../../c-api/typeobj.rst:712 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:716 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:720 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:724 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:728 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:732 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 " @@ -1255,6 +1698,7 @@ msgid "" "have already been called." msgstr "" +#: ../../c-api/typeobj.rst:737 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:" @@ -1262,6 +1706,7 @@ msgid "" "below.::" msgstr "" +#: ../../c-api/typeobj.rst:742 msgid "" "static void\n" "foo_dealloc(PyObject *op)\n" @@ -1273,6 +1718,7 @@ msgid "" "}" msgstr "" +#: ../../c-api/typeobj.rst:751 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 " @@ -1280,9 +1726,11 @@ msgid "" "with :c:func:`PyErr_WriteUnraisable`)." msgstr "" +#: ../../c-api/typeobj.rst:756 msgid "Example::" msgstr "" +#: ../../c-api/typeobj.rst:758 msgid "" "static void\n" "foo_dealloc(PyObject *self)\n" @@ -1324,6 +1772,7 @@ msgid "" "}" msgstr "" +#: ../../c-api/typeobj.rst:797 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 " @@ -1336,28 +1785,34 @@ msgid "" "violate any assumptions of the library." msgstr "" +#: ../../c-api/typeobj.rst:815 ../../c-api/typeobj.rst:1798 +#: ../../c-api/typeobj.rst:2566 msgid "" ":ref:`life-cycle` for details about how this slot relates to other slots." msgstr "" +#: ../../c-api/typeobj.rst:820 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:825 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:829 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:833 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 " @@ -1365,11 +1820,13 @@ msgid "" "`PyVectorcall_Call`." msgstr "" +#: ../../c-api/typeobj.rst:840 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:846 msgid "" "Before version 3.12, it was not recommended for :ref:`mutable heap types " "` to implement the vectorcall protocol. When a user sets :attr:" @@ -1379,6 +1836,7 @@ msgid "" "`Py_TPFLAGS_HAVE_VECTORCALL` flag." msgstr "" +#: ../../c-api/typeobj.rst:856 msgid "" "This field is always inherited. However, the :c:macro:" "`Py_TPFLAGS_HAVE_VECTORCALL` flag is not always inherited. If it's not set, " @@ -1386,9 +1844,11 @@ msgid "" "func:`PyVectorcall_Call` is explicitly called." msgstr "" +#: ../../c-api/typeobj.rst:867 msgid "An optional pointer to the get-attribute-string function." msgstr "" +#: ../../c-api/typeobj.rst:869 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, " @@ -1396,11 +1856,13 @@ msgid "" "attribute name." msgstr "" +#: ../../c-api/typeobj.rst:875 ../../c-api/typeobj.rst:1083 msgid "" "Group: :c:member:`~PyTypeObject.tp_getattr`, :c:member:`~PyTypeObject." "tp_getattro`" msgstr "" +#: ../../c-api/typeobj.rst:877 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_getattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " @@ -1409,10 +1871,12 @@ msgid "" "tp_getattro` are both ``NULL``." msgstr "" +#: ../../c-api/typeobj.rst:886 ../../c-api/typeobj.rst:1098 msgid "" "An optional pointer to the function for setting and deleting attributes." msgstr "" +#: ../../c-api/typeobj.rst:888 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, " @@ -1420,11 +1884,13 @@ msgid "" "attribute name." msgstr "" +#: ../../c-api/typeobj.rst:894 ../../c-api/typeobj.rst:1111 msgid "" "Group: :c:member:`~PyTypeObject.tp_setattr`, :c:member:`~PyTypeObject." "tp_setattro`" msgstr "" +#: ../../c-api/typeobj.rst:896 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_setattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " @@ -1433,31 +1899,38 @@ msgid "" "tp_setattro` are both ``NULL``." msgstr "" +#: ../../c-api/typeobj.rst:903 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:907 msgid "Formerly known as ``tp_compare`` and ``tp_reserved``." msgstr "" +#: ../../c-api/typeobj.rst:912 msgid "" "The :c:member:`~PyTypeObject.tp_as_async` field is not inherited, but the " "contained fields are inherited individually." msgstr "" +#: ../../c-api/typeobj.rst:922 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`repr`." msgstr "" +#: ../../c-api/typeobj.rst:925 msgid "The signature is the same as for :c:func:`PyObject_Repr`::" msgstr "" +#: ../../c-api/typeobj.rst:927 msgid "PyObject *tp_repr(PyObject *self);" msgstr "" +#: ../../c-api/typeobj.rst:929 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 " @@ -1466,65 +1939,85 @@ msgid "" "``'>'`` from which both the type and the value of the object can be deduced." msgstr "" +#: ../../c-api/typeobj.rst:940 ../../c-api/typeobj.rst:1021 +#: ../../c-api/typeobj.rst:1062 ../../c-api/typeobj.rst:1089 +#: ../../c-api/typeobj.rst:1117 ../../c-api/typeobj.rst:1159 +#: ../../c-api/typeobj.rst:1863 ../../c-api/typeobj.rst:1897 +#: ../../c-api/typeobj.rst:2027 ../../c-api/typeobj.rst:2060 +#: ../../c-api/typeobj.rst:2139 ../../c-api/typeobj.rst:2182 +#: ../../c-api/typeobj.rst:2204 ../../c-api/typeobj.rst:2245 +#: ../../c-api/typeobj.rst:2275 ../../c-api/typeobj.rst:2308 msgid "**Default:**" msgstr "" +#: ../../c-api/typeobj.rst:942 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:949 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:955 msgid "" "The :c:member:`~PyTypeObject.tp_as_number` field is not inherited, but the " "contained fields are inherited individually." msgstr "" +#: ../../c-api/typeobj.rst:961 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:967 msgid "" "The :c:member:`~PyTypeObject.tp_as_sequence` field is not inherited, but the " "contained fields are inherited individually." msgstr "" +#: ../../c-api/typeobj.rst:973 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:979 msgid "" "The :c:member:`~PyTypeObject.tp_as_mapping` field is not inherited, but the " "contained fields are inherited individually." msgstr "" +#: ../../c-api/typeobj.rst:989 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`hash`." msgstr "" +#: ../../c-api/typeobj.rst:992 msgid "The signature is the same as for :c:func:`PyObject_Hash`::" msgstr "" +#: ../../c-api/typeobj.rst:994 msgid "Py_hash_t tp_hash(PyObject *);" msgstr "" +#: ../../c-api/typeobj.rst:996 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:1000 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:" @@ -1532,6 +2025,7 @@ msgid "" "`PyObject_HashNotImplemented`." msgstr "" +#: ../../c-api/typeobj.rst:1004 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 " @@ -1542,11 +2036,13 @@ msgid "" "`PyObject_HashNotImplemented`." msgstr "" +#: ../../c-api/typeobj.rst:1014 ../../c-api/typeobj.rst:1856 msgid "" "Group: :c:member:`~PyTypeObject.tp_hash`, :c:member:`~PyTypeObject." "tp_richcompare`" msgstr "" +#: ../../c-api/typeobj.rst:1016 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_richcompare`: a subtype inherits both of :c:member:`~PyTypeObject." @@ -1555,18 +2051,22 @@ msgid "" "are both ``NULL``." msgstr "" +#: ../../c-api/typeobj.rst:1023 msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericHash`." msgstr "" +#: ../../c-api/typeobj.rst:1030 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:1034 msgid "PyObject *tp_call(PyObject *self, PyObject *args, PyObject *kwargs);" msgstr "" +#: ../../c-api/typeobj.rst:1045 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 " @@ -1575,12 +2075,15 @@ msgid "" "this handler.)" msgstr "" +#: ../../c-api/typeobj.rst:1050 msgid "The signature is the same as for :c:func:`PyObject_Str`::" msgstr "" +#: ../../c-api/typeobj.rst:1052 msgid "PyObject *tp_str(PyObject *self);" msgstr "" +#: ../../c-api/typeobj.rst:1054 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 " @@ -1588,26 +2091,32 @@ msgid "" "function." msgstr "" +#: ../../c-api/typeobj.rst:1064 msgid "" "When this field is not set, :c:func:`PyObject_Repr` is called to return a " "string representation." msgstr "" +#: ../../c-api/typeobj.rst:1072 msgid "An optional pointer to the get-attribute function." msgstr "" +#: ../../c-api/typeobj.rst:1074 msgid "The signature is the same as for :c:func:`PyObject_GetAttr`::" msgstr "" +#: ../../c-api/typeobj.rst:1076 msgid "PyObject *tp_getattro(PyObject *self, PyObject *attr);" msgstr "" +#: ../../c-api/typeobj.rst:1078 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:1085 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_getattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " @@ -1616,15 +2125,19 @@ msgid "" "tp_getattro` are both ``NULL``." msgstr "" +#: ../../c-api/typeobj.rst:1091 msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericGetAttr`." msgstr "" +#: ../../c-api/typeobj.rst:1100 msgid "The signature is the same as for :c:func:`PyObject_SetAttr`::" msgstr "" +#: ../../c-api/typeobj.rst:1102 msgid "int tp_setattro(PyObject *self, PyObject *attr, PyObject *value);" msgstr "" +#: ../../c-api/typeobj.rst:1104 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:" @@ -1632,6 +2145,7 @@ msgid "" "attributes." msgstr "" +#: ../../c-api/typeobj.rst:1113 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_setattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " @@ -1640,20 +2154,24 @@ msgid "" "tp_setattro` are both ``NULL``." msgstr "" +#: ../../c-api/typeobj.rst:1119 msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericSetAttr`." msgstr "" +#: ../../c-api/typeobj.rst:1124 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:1130 msgid "" "The :c:member:`~PyTypeObject.tp_as_buffer` field is not inherited, but the " "contained fields are inherited individually." msgstr "" +#: ../../c-api/typeobj.rst:1136 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 " @@ -1665,6 +2183,7 @@ msgid "" "accessed and must be considered to have a zero or ``NULL`` value instead." msgstr "" +#: ../../c-api/typeobj.rst:1146 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 " @@ -1679,14 +2198,17 @@ msgid "" "the subtype exist and have ``NULL`` values." msgstr "" +#: ../../c-api/typeobj.rst:1161 msgid "" ":c:data:`PyBaseObject_Type` uses ``Py_TPFLAGS_DEFAULT | " "Py_TPFLAGS_BASETYPE``." msgstr "" +#: ../../c-api/typeobj.rst:1164 msgid "**Bit Masks:**" msgstr "" +#: ../../c-api/typeobj.rst:1168 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." @@ -1695,6 +2217,7 @@ msgid "" "zero." msgstr "" +#: ../../c-api/typeobj.rst:1175 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 " @@ -1707,25 +2230,32 @@ msgid "" "reference cycle with their own module object." msgstr "" +#: ../../c-api/typeobj.rst:1186 ../../c-api/typeobj.rst:1197 +#: ../../c-api/typeobj.rst:1207 ../../c-api/typeobj.rst:1217 +#: ../../c-api/typeobj.rst:1249 msgid "???" msgstr "" +#: ../../c-api/typeobj.rst:1191 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:1202 msgid "" "This bit is set when the type object has been fully initialized by :c:func:" "`PyType_Ready`." msgstr "" +#: ../../c-api/typeobj.rst:1212 msgid "" "This bit is set while :c:func:`PyType_Ready` is in the process of " "initializing the type object." msgstr "" +#: ../../c-api/typeobj.rst:1222 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 " @@ -1735,11 +2265,14 @@ msgid "" "`supporting-cycle-detection`." msgstr "" +#: ../../c-api/typeobj.rst:1231 ../../c-api/typeobj.rst:1643 +#: ../../c-api/typeobj.rst:1789 msgid "" "Group: :c:macro:`Py_TPFLAGS_HAVE_GC`, :c:member:`~PyTypeObject." "tp_traverse`, :c:member:`~PyTypeObject.tp_clear`" msgstr "" +#: ../../c-api/typeobj.rst:1233 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` " @@ -1749,166 +2282,211 @@ msgid "" "values." msgstr "" +#: ../../c-api/typeobj.rst:1243 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:1254 msgid "This bit indicates that objects behave like unbound methods." msgstr "" +#: ../../c-api/typeobj.rst:1256 msgid "If this flag is set for ``type(meth)``, then:" msgstr "" +#: ../../c-api/typeobj.rst:1258 msgid "" "``meth.__get__(obj, cls)(*args, **kwds)`` (with ``obj`` not None) must be " "equivalent to ``meth(obj, *args, **kwds)``." msgstr "" +#: ../../c-api/typeobj.rst:1261 msgid "" "``meth.__get__(None, cls)(*args, **kwds)`` must be equivalent to " "``meth(*args, **kwds)``." msgstr "" +#: ../../c-api/typeobj.rst:1264 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:1272 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:1278 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:1281 msgid "If this flag is set, :c:macro:`Py_TPFLAGS_HAVE_GC` should also be set." msgstr "" +#: ../../c-api/typeobj.rst:1283 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:1290 msgid "" "This flag is inherited unless the :c:member:`~PyTypeObject.tp_dictoffset` " "field is set in a superclass." msgstr "" +#: ../../c-api/typeobj.rst:1296 msgid "" "This bit indicates that instances of the class should be weakly " "referenceable." msgstr "" +#: ../../c-api/typeobj.rst:1303 msgid "" "This flag is inherited unless the :c:member:`~PyTypeObject." "tp_weaklistoffset` field is set in a superclass." msgstr "" +#: ../../c-api/typeobj.rst:1309 msgid "" "Only usable with variable-size types, i.e. ones with non-zero :c:member:" "`~PyTypeObject.tp_itemsize`." msgstr "" +#: ../../c-api/typeobj.rst:1312 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:1317 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:1325 msgid "This flag is inherited." msgstr "" +#: ../../c-api/typeobj.rst:1339 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." +"Functions such as :c:func:`PyLong_Check` will call :c:func:" +"`PyType_FastSubclass` with one of these flags to quickly determine if a type " +"is a subclass of a built-in type; such specific checks are faster than a " +"generic check, like :c:func:`PyObject_IsInstance`. Custom types that inherit " +"from built-ins should have their :c:member:`~PyTypeObject.tp_flags` set " +"appropriately, or the code that interacts with such types will behave " +"differently depending on what kind of check is used." msgstr "" +#: ../../c-api/typeobj.rst:1350 msgid "" "This bit is set when the :c:member:`~PyTypeObject.tp_finalize` slot is " "present in the type structure." msgstr "" +#: ../../c-api/typeobj.rst:1355 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:1366 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:1372 msgid "" "This bit is inherited if :c:member:`~PyTypeObject.tp_call` is also inherited." msgstr "" +#: ../../c-api/typeobj.rst:1375 +msgid "as ``_Py_TPFLAGS_HAVE_VECTORCALL``" +msgstr "" + +#: ../../c-api/typeobj.rst:1379 +msgid "" +"Renamed to the current name, without the leading underscore. The old " +"provisional name is :term:`soft deprecated`." +msgstr "" + +#: ../../c-api/typeobj.rst:1384 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:1387 msgid "This flag can now be inherited by mutable classes." msgstr "" +#: ../../c-api/typeobj.rst:1391 msgid "" "This bit is set for type objects that are immutable: type attributes cannot " "be set nor deleted." msgstr "" +#: ../../c-api/typeobj.rst:1393 msgid "" ":c:func:`PyType_Ready` automatically applies this flag to :ref:`static types " "`." msgstr "" +#: ../../c-api/typeobj.rst:1398 ../../c-api/typeobj.rst:1507 +#: ../../c-api/typeobj.rst:1519 msgid "This flag is not inherited." msgstr "" +#: ../../c-api/typeobj.rst:1404 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:1408 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:1411 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:1417 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:1424 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:1435 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 " @@ -1916,19 +2494,23 @@ msgid "" "unset when registering :class:`collections.abc.Sequence`." msgstr "" +#: ../../c-api/typeobj.rst:1442 ../../c-api/typeobj.rst:1464 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:1447 msgid "" "This flag is inherited by types that do not already set :c:macro:" "`Py_TPFLAGS_SEQUENCE`." msgstr "" +#: ../../c-api/typeobj.rst:1450 ../../c-api/typeobj.rst:1472 msgid ":pep:`634` -- Structural Pattern Matching: Specification" msgstr "" +#: ../../c-api/typeobj.rst:1457 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 " @@ -1936,44 +2518,92 @@ msgid "" "unset when registering :class:`collections.abc.Mapping`." msgstr "" +#: ../../c-api/typeobj.rst:1469 msgid "" "This flag is inherited by types that do not already set :c:macro:" "`Py_TPFLAGS_MAPPING`." msgstr "" +#: ../../c-api/typeobj.rst:1479 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:1483 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:1489 +msgid "" +"This macro does nothing. Historically, this would indicate that the :c:" +"member:`~PyTypeObject.tp_version_tag` field was available and initialized." +msgstr "" + +#: ../../c-api/typeobj.rst:1499 +msgid "" +"This bit indicates that instances of this type will have an \"inline " +"values\" array (containing the object's attributes) placed directly after " +"the end of the object." +msgstr "" + +#: ../../c-api/typeobj.rst:1503 +msgid "This requires that :c:macro:`Py_TPFLAGS_HAVE_GC` is set." +msgstr "" + +#: ../../c-api/typeobj.rst:1514 +msgid "" +"This bit indicates that this is an abstract type and therefore cannot be " +"instantiated." +msgstr "" + +#: ../../c-api/typeobj.rst:1522 +msgid ":mod:`abc`" +msgstr "" + +#: ../../c-api/typeobj.rst:1527 +msgid "" +"Internal. Do not set or unset this flag. Historically, this was a reserved " +"flag for use in Stackless Python." +msgstr "" + +#: ../../c-api/typeobj.rst:1531 +msgid "" +"This flag is present in header files, but is not be used. This may be " +"removed in a future version of CPython." +msgstr "" + +#: ../../c-api/typeobj.rst:1539 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:1545 msgid "This field is *not* inherited by subtypes." msgstr "" +#: ../../c-api/typeobj.rst:1552 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:1555 msgid "int tp_traverse(PyObject *self, visitproc visit, void *arg);" msgstr "" +#: ../../c-api/typeobj.rst:1557 ../../c-api/typeobj.rst:1784 msgid "" "More information about Python's garbage collection scheme can be found in " "section :ref:`supporting-cycle-detection`." msgstr "" +#: ../../c-api/typeobj.rst:1560 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` pointer is used by the garbage " "collector to detect reference cycles. A typical implementation of a :c:" @@ -1983,6 +2613,7 @@ msgid "" "`!_thread` extension module::" msgstr "" +#: ../../c-api/typeobj.rst:1566 msgid "" "static int\n" "local_traverse(PyObject *op, visitproc visit, void *arg)\n" @@ -1995,6 +2626,7 @@ msgid "" "}" msgstr "" +#: ../../c-api/typeobj.rst:1576 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`` " @@ -2002,39 +2634,47 @@ msgid "" "part of a reference cycle." msgstr "" +#: ../../c-api/typeobj.rst:1580 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:1584 msgid "" "Heap types (:c:macro:`Py_TPFLAGS_HEAPTYPE`) must visit their type with::" msgstr "" +#: ../../c-api/typeobj.rst:1586 msgid "Py_VISIT(Py_TYPE(self));" msgstr "" +#: ../../c-api/typeobj.rst:1588 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:1591 msgid "" "#if PY_VERSION_HEX >= 0x03090000\n" " Py_VISIT(Py_TYPE(self));\n" "#endif" msgstr "" +#: ../../c-api/typeobj.rst:1595 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:1599 msgid "PyObject_VisitManagedDict((PyObject*)self, visit, arg);" msgstr "" +#: ../../c-api/typeobj.rst:1602 msgid "" "When implementing :c:member:`~PyTypeObject.tp_traverse`, only the members " "that the instance *owns* (by having :term:`strong references ` hold a reference to " "their type. Their traversal function must therefore either visit :c:func:" @@ -2061,17 +2710,20 @@ msgid "" "superclass). If they do not, the type object may not be garbage-collected." msgstr "" +#: ../../c-api/typeobj.rst:1631 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` function can be called from any " "thread." msgstr "" +#: ../../c-api/typeobj.rst:1636 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:1645 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:" @@ -2079,12 +2731,15 @@ msgid "" "are all inherited from the base type if they are all zero in the subtype." msgstr "" +#: ../../c-api/typeobj.rst:1655 msgid "An optional pointer to a clear function. The signature is::" msgstr "" +#: ../../c-api/typeobj.rst:1657 msgid "int tp_clear(PyObject *);" msgstr "" +#: ../../c-api/typeobj.rst:1659 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 " @@ -2092,6 +2747,7 @@ msgid "" "to satisfy design invariants held during normal use." msgstr "" +#: ../../c-api/typeobj.rst:1664 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 " @@ -2102,37 +2758,44 @@ msgid "" "func:`Py_CLEAR`.)" msgstr "" +#: ../../c-api/typeobj.rst:1672 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:1677 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:1683 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:1688 msgid "" "The :c:member:`~PyTypeObject.tp_clear` function can be called from any " "thread." msgstr "" +#: ../../c-api/typeobj.rst:1693 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:1696 msgid "" "This function differs from the destructor (:c:member:`~PyTypeObject." "tp_dealloc`) in the following ways:" msgstr "" +#: ../../c-api/typeobj.rst:1699 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, " @@ -2142,6 +2805,7 @@ msgid "" "`~PyTypeObject.tp_free`)." msgstr "" +#: ../../c-api/typeobj.rst:1705 msgid "" "When :c:member:`!tp_clear` is called, other objects might still hold " "references to the object being cleared. Because of this, :c:member:`!" @@ -2151,6 +2815,7 @@ msgid "" "object itself by deallocating it." msgstr "" +#: ../../c-api/typeobj.rst:1711 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 " @@ -2158,17 +2823,20 @@ msgid "" "object or the object is a member of a :term:`cyclic isolate`)." msgstr "" +#: ../../c-api/typeobj.rst:1716 msgid "" "No guarantees are made about when, if, or how often Python automatically " "clears an object, except:" msgstr "" +#: ../../c-api/typeobj.rst:1719 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:1722 msgid "" "Python will not automatically clear an object if it has not been " "automatically finalized (see :c:member:`~PyTypeObject.tp_finalize`). (If " @@ -2176,12 +2844,14 @@ msgid "" "automatically finalized again before it is cleared.)" msgstr "" +#: ../../c-api/typeobj.rst:1726 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:1729 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 " @@ -2189,17 +2859,20 @@ msgid "" "member:`!tp_clear` is still executing." msgstr "" +#: ../../c-api/typeobj.rst:1733 msgid "" "Python will not automatically call :c:member:`!tp_clear` multiple times " "concurrently." msgstr "" +#: ../../c-api/typeobj.rst:1736 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:1740 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 " @@ -2212,6 +2885,7 @@ msgid "" "good reason to avoid implementing :c:member:`~PyTypeObject.tp_clear`." msgstr "" +#: ../../c-api/typeobj.rst:1751 msgid "" "Implementations of :c:member:`~PyTypeObject.tp_clear` should drop the " "instance's references to those of its members that may be Python objects, " @@ -2219,6 +2893,7 @@ msgid "" "example::" msgstr "" +#: ../../c-api/typeobj.rst:1755 msgid "" "static int\n" "local_clear(PyObject *op)\n" @@ -2232,6 +2907,7 @@ msgid "" "}" msgstr "" +#: ../../c-api/typeobj.rst:1766 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 :" @@ -2246,15 +2922,18 @@ msgid "" "performs the operations in a safe order." msgstr "" +#: ../../c-api/typeobj.rst:1778 msgid "" "If the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit is set in the :c:member:" "`~PyTypeObject.tp_flags` field, the clear function must call :c:func:" "`PyObject_ClearManagedDict` like this::" msgstr "" +#: ../../c-api/typeobj.rst:1782 msgid "PyObject_ClearManagedDict((PyObject*)self);" msgstr "" +#: ../../c-api/typeobj.rst:1791 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, :" @@ -2262,18 +2941,22 @@ msgid "" "are all inherited from the base type if they are all zero in the subtype." msgstr "" +#: ../../c-api/typeobj.rst:1805 msgid "" "An optional pointer to the rich comparison function, whose signature is::" msgstr "" +#: ../../c-api/typeobj.rst:1807 msgid "PyObject *tp_richcompare(PyObject *self, PyObject *other, int op);" msgstr "" +#: ../../c-api/typeobj.rst:1809 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:1812 msgid "" "The function should return the result of the comparison (usually ``Py_True`` " "or ``Py_False``). If the comparison is undefined, it must return " @@ -2281,39 +2964,50 @@ msgid "" "set an exception condition." msgstr "" +#: ../../c-api/typeobj.rst:1817 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:1823 msgid "Constant" msgstr "" +#: ../../c-api/typeobj.rst:1823 msgid "Comparison" msgstr "" +#: ../../c-api/typeobj.rst:1825 msgid "``<``" msgstr "``<``" +#: ../../c-api/typeobj.rst:1827 msgid "``<=``" msgstr "``<=``" +#: ../../c-api/typeobj.rst:1829 msgid "``==``" msgstr "``==``" +#: ../../c-api/typeobj.rst:1831 msgid "``!=``" msgstr "``!=``" +#: ../../c-api/typeobj.rst:1833 msgid "``>``" msgstr "``>``" +#: ../../c-api/typeobj.rst:1835 msgid "``>=``" msgstr "``>=``" +#: ../../c-api/typeobj.rst:1838 msgid "" "The following macro is defined to ease writing rich comparison functions:" msgstr "" +#: ../../c-api/typeobj.rst:1842 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 " @@ -2321,12 +3015,15 @@ msgid "" "specifies the requested operation, as for :c:func:`PyObject_RichCompare`." msgstr "" +#: ../../c-api/typeobj.rst:1848 msgid "The returned value is a new :term:`strong reference`." msgstr "" +#: ../../c-api/typeobj.rst:1850 msgid "On error, sets an exception and returns ``NULL`` from the function." msgstr "" +#: ../../c-api/typeobj.rst:1858 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_hash`: a subtype inherits :c:member:`~PyTypeObject.tp_richcompare` and :c:" @@ -2334,6 +3031,7 @@ msgid "" "tp_richcompare` and :c:member:`~PyTypeObject.tp_hash` are both ``NULL``." msgstr "" +#: ../../c-api/typeobj.rst:1865 msgid "" ":c:data:`PyBaseObject_Type` provides a :c:member:`~PyTypeObject." "tp_richcompare` implementation, which may be inherited. However, if only :c:" @@ -2342,11 +3040,13 @@ msgid "" "comparisons." msgstr "" +#: ../../c-api/typeobj.rst:1874 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:1877 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 " @@ -2356,16 +3056,19 @@ msgid "" "`PyObject*` which is initialized to ``NULL``." msgstr "" +#: ../../c-api/typeobj.rst:1884 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:1887 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:1892 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 " @@ -2374,6 +3077,7 @@ msgid "" "not be a problem." msgstr "" +#: ../../c-api/typeobj.rst:1899 msgid "" "If the :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` bit is set in the :c:member:" "`~PyTypeObject.tp_flags` field, then :c:member:`~PyTypeObject." @@ -2381,89 +3085,107 @@ msgid "" "unsafe to use this field." msgstr "" +#: ../../c-api/typeobj.rst:1909 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:1913 msgid "This function has the same signature as :c:func:`PyObject_GetIter`::" msgstr "" +#: ../../c-api/typeobj.rst:1915 msgid "PyObject *tp_iter(PyObject *self);" msgstr "" +#: ../../c-api/typeobj.rst:1926 msgid "" "An optional pointer to a function that returns the next item in an :term:" "`iterator`. The signature is::" msgstr "" +#: ../../c-api/typeobj.rst:1929 msgid "PyObject *tp_iternext(PyObject *self);" msgstr "" +#: ../../c-api/typeobj.rst:1931 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." +"When the iterator is :term:`exhausted`, the ``tp_iternext`` function must " +"return ``NULL``; a :exc:`StopIteration` exception may or may not be set. " +"When another error occurs, it must return ``NULL`` too. The presence of " +"``tp_iternext`` signals that the instances of this type are iterators." msgstr "" +#: ../../c-api/typeobj.rst:1937 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:1941 msgid "This function has the same signature as :c:func:`PyIter_Next`." msgstr "" +#: ../../c-api/typeobj.rst:1952 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:1955 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:1960 msgid "" "This field is not inherited by subtypes (methods are inherited through a " "different mechanism)." msgstr "" +#: ../../c-api/typeobj.rst:1968 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:1972 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:1977 msgid "" "This field is not inherited by subtypes (members are inherited through a " "different mechanism)." msgstr "" +#: ../../c-api/typeobj.rst:1985 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:1988 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:1993 msgid "" "This field is not inherited by subtypes (computed attributes are inherited " "through a different mechanism)." msgstr "" +#: ../../c-api/typeobj.rst:2001 msgid "" "An optional pointer to a base type from which type properties are " "inherited. At this level, only single inheritance is supported; multiple " @@ -2471,6 +3193,7 @@ msgid "" "metatype." msgstr "" +#: ../../c-api/typeobj.rst:2009 msgid "" "Slot initialization is subject to the rules of initializing globals. C99 " "requires the initializers to be \"address constants\". Function designators " @@ -2478,6 +3201,7 @@ msgid "" "valid C99 address constants." msgstr "" +#: ../../c-api/typeobj.rst:2014 msgid "" "However, the unary '&' operator applied to a non-static variable like :c:" "data:`PyBaseObject_Type` is not required to produce an address constant. " @@ -2485,22 +3209,27 @@ msgid "" "strictly standard conforming in this particular behavior." msgstr "" +#: ../../c-api/typeobj.rst:2020 msgid "" "Consequently, :c:member:`~PyTypeObject.tp_base` should be set in the " "extension module's init function." msgstr "" +#: ../../c-api/typeobj.rst:2025 msgid "This field is not inherited by subtypes (obviously)." msgstr "" +#: ../../c-api/typeobj.rst:2029 msgid "" "This field defaults to ``&PyBaseObject_Type`` (which to Python programmers " "is known as the type :class:`object`)." msgstr "" +#: ../../c-api/typeobj.rst:2035 msgid "The type's dictionary is stored here by :c:func:`PyType_Ready`." msgstr "" +#: ../../c-api/typeobj.rst:2037 msgid "" "This field should normally be initialized to ``NULL`` before PyType_Ready is " "called; it may also be initialized to a dictionary containing initial " @@ -2511,57 +3240,72 @@ msgid "" "be treated as read-only." msgstr "" +#: ../../c-api/typeobj.rst:2045 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:2051 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:2057 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:2062 msgid "" "If this field is ``NULL``, :c:func:`PyType_Ready` will assign a new " "dictionary to it." msgstr "" +#: ../../c-api/typeobj.rst:2067 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:2075 msgid "An optional pointer to a \"descriptor get\" function." msgstr "" +#: ../../c-api/typeobj.rst:2077 ../../c-api/typeobj.rst:2095 +#: ../../c-api/typeobj.rst:2161 ../../c-api/typeobj.rst:2193 +#: ../../c-api/typeobj.rst:2218 msgid "The function signature is::" msgstr "" +#: ../../c-api/typeobj.rst:2079 msgid "PyObject * tp_descr_get(PyObject *self, PyObject *obj, PyObject *type);" msgstr "" +#: ../../c-api/typeobj.rst:2092 msgid "" "An optional pointer to a function for setting and deleting a descriptor's " "value." msgstr "" +#: ../../c-api/typeobj.rst:2097 msgid "int tp_descr_set(PyObject *self, PyObject *obj, PyObject *value);" msgstr "" +#: ../../c-api/typeobj.rst:2099 msgid "The *value* argument is set to ``NULL`` to delete the value." msgstr "" +#: ../../c-api/typeobj.rst:2110 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:2113 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 " @@ -2569,16 +3313,19 @@ msgid "" "func:`PyObject_GenericGetAttr`." msgstr "" +#: ../../c-api/typeobj.rst:2118 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:2121 msgid "" "The value specifies the offset of the dictionary from the start of the " "instance structure." msgstr "" +#: ../../c-api/typeobj.rst:2123 msgid "" "The :c:member:`~PyTypeObject.tp_dictoffset` should be regarded as write-" "only. To get the pointer to the dictionary call :c:func:" @@ -2587,11 +3334,13 @@ msgid "" "to call :c:func:`PyObject_GetAttr` when accessing an attribute on the object." msgstr "" +#: ../../c-api/typeobj.rst:2129 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:2134 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 " @@ -2599,21 +3348,25 @@ msgid "" "`Py_TPFLAGS_MANAGED_DICT`." msgstr "" +#: ../../c-api/typeobj.rst:2141 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:2144 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:2154 msgid "An optional pointer to an instance initialization function." msgstr "" +#: ../../c-api/typeobj.rst:2156 msgid "" "This function corresponds to the :meth:`~object.__init__` method of " "classes. Like :meth:`!__init__`, it is possible to create an instance " @@ -2621,15 +3374,18 @@ msgid "" "instance by calling its :meth:`!__init__` method again." msgstr "" +#: ../../c-api/typeobj.rst:2163 msgid "int tp_init(PyObject *self, PyObject *args, PyObject *kwds);" msgstr "" +#: ../../c-api/typeobj.rst:2165 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:2169 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 :" @@ -2641,41 +3397,52 @@ msgid "" "subtype's :c:member:`~PyTypeObject.tp_init` is called." msgstr "" +#: ../../c-api/typeobj.rst:2176 msgid "Returns ``0`` on success, ``-1`` and sets an exception on error." msgstr "" +#: ../../c-api/typeobj.rst:2184 msgid "" "For :ref:`static types ` this field does not have a default." msgstr "" +#: ../../c-api/typeobj.rst:2191 msgid "An optional pointer to an instance allocation function." msgstr "" +#: ../../c-api/typeobj.rst:2195 msgid "PyObject *tp_alloc(PyTypeObject *self, Py_ssize_t nitems);" msgstr "" +#: ../../c-api/typeobj.rst:2199 msgid "" "Static subtypes inherit this slot, which will be :c:func:" "`PyType_GenericAlloc` if inherited from :class:`object`." msgstr "" +#: ../../c-api/typeobj.rst:2202 ../../c-api/typeobj.rst:2273 msgid ":ref:`Heap subtypes ` do not inherit this slot." msgstr "" +#: ../../c-api/typeobj.rst:2206 msgid "" "For heap subtypes, this field is always set to :c:func:`PyType_GenericAlloc`." msgstr "" +#: ../../c-api/typeobj.rst:2209 ../../c-api/typeobj.rst:2281 msgid "For static subtypes, this slot is inherited (see above)." msgstr "" +#: ../../c-api/typeobj.rst:2216 msgid "An optional pointer to an instance creation function." msgstr "" +#: ../../c-api/typeobj.rst:2220 msgid "" "PyObject *tp_new(PyTypeObject *subtype, PyObject *args, PyObject *kwds);" msgstr "" +#: ../../c-api/typeobj.rst:2222 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 " @@ -2684,6 +3451,7 @@ msgid "" "that type (but not an unrelated type)." msgstr "" +#: ../../c-api/typeobj.rst:2228 msgid "" "The :c:member:`~PyTypeObject.tp_new` function should call ``subtype-" ">tp_alloc(subtype, nitems)`` to allocate space for the object, and then do " @@ -2695,17 +3463,20 @@ msgid "" "be deferred to :c:member:`~PyTypeObject.tp_init`." msgstr "" +#: ../../c-api/typeobj.rst:2236 msgid "" "Set the :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag to disallow " "creating instances of the type in Python." msgstr "" +#: ../../c-api/typeobj.rst:2241 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:2247 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 " @@ -2713,18 +3484,22 @@ msgid "" "factory function." msgstr "" +#: ../../c-api/typeobj.rst:2257 msgid "" "An optional pointer to an instance deallocation function. Its signature is::" msgstr "" +#: ../../c-api/typeobj.rst:2259 msgid "void tp_free(void *self);" msgstr "" +#: ../../c-api/typeobj.rst:2261 msgid "" "This function must free the memory allocated by :c:member:`~PyTypeObject." "tp_alloc`." msgstr "" +#: ../../c-api/typeobj.rst:2266 msgid "" "Static subtypes inherit this slot, which will be :c:func:`PyObject_Free` if " "inherited from :class:`object`. Exception: If the type supports garbage " @@ -2733,15 +3508,18 @@ msgid "" "this slot is not inherited but instead defaults to :c:func:`PyObject_GC_Del`." msgstr "" +#: ../../c-api/typeobj.rst:2277 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:2288 msgid "An optional pointer to a function called by the garbage collector." msgstr "" +#: ../../c-api/typeobj.rst:2290 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 " @@ -2753,75 +3531,93 @@ msgid "" "instance. The signature is::" msgstr "" +#: ../../c-api/typeobj.rst:2298 msgid "int tp_is_gc(PyObject *self);" msgstr "" +#: ../../c-api/typeobj.rst:2300 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:2310 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:2318 msgid "Tuple of base types." msgstr "" +#: ../../c-api/typeobj.rst:2320 ../../c-api/typeobj.rst:2344 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:2323 msgid "" -"For dynamically created classes, the ``Py_tp_bases`` :c:type:`slot " +"For dynamically created classes, the :c:data:`Py_tp_bases` :c:type:`slot " "` can be used instead of the *bases* argument of :c:func:" "`PyType_FromSpecWithBases`. The argument form is preferred." msgstr "" +#: ../../c-api/typeobj.rst:2330 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:2336 ../../c-api/typeobj.rst:2359 +#: ../../c-api/typeobj.rst:2376 ../../c-api/typeobj.rst:2393 +#: ../../c-api/typeobj.rst:2409 msgid "This field is not inherited." msgstr "" +#: ../../c-api/typeobj.rst:2341 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:2349 msgid "" "This field is not inherited; it is calculated fresh by :c:func:" "`PyType_Ready`." msgstr "" +#: ../../c-api/typeobj.rst:2355 msgid "Unused. Internal use only." msgstr "" +#: ../../c-api/typeobj.rst:2364 msgid "" "A collection of subclasses. Internal use only. May be an invalid pointer." msgstr "" +#: ../../c-api/typeobj.rst:2366 msgid "" "To get a list of subclasses, call the Python method :py:meth:`~type." "__subclasses__`." msgstr "" +#: ../../c-api/typeobj.rst:2371 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:2381 msgid "" "Weak reference list head, for weak references to this type object. Not " "inherited. Internal use only." msgstr "" +#: ../../c-api/typeobj.rst:2386 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 " @@ -2829,22 +3625,27 @@ msgid "" "``_PyObject_GET_WEAKREFS_LISTPTR()`` macro to avoid the distinction." msgstr "" +#: ../../c-api/typeobj.rst:2400 msgid "" "This field is deprecated. Use :c:member:`~PyTypeObject.tp_finalize` instead." msgstr "" +#: ../../c-api/typeobj.rst:2405 msgid "Used to index into the method cache. Internal use only." msgstr "" +#: ../../c-api/typeobj.rst:2416 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:2420 msgid "void tp_finalize(PyObject *self);" msgstr "" +#: ../../c-api/typeobj.rst:2422 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 " @@ -2852,6 +3653,7 @@ msgid "" "consistent state. The finalizer is allowed to execute arbitrary Python code." msgstr "" +#: ../../c-api/typeobj.rst:2428 msgid "" "Before Python automatically finalizes an object, some of the object's direct " "or indirect referents might have themselves been automatically finalized. " @@ -2859,12 +3661,14 @@ msgid "" "member:`~PyTypeObject.tp_clear`) yet." msgstr "" +#: ../../c-api/typeobj.rst:2433 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:2439 msgid "" "After Python automatically finalizes an object, Python might start " "automatically clearing (:c:member:`~PyTypeObject.tp_clear`) the object and " @@ -2873,6 +3677,7 @@ msgid "" "cleared referents." msgstr "" +#: ../../c-api/typeobj.rst:2447 msgid "" "An object is not guaranteed to be automatically finalized before its " "destructor (:c:member:`~PyTypeObject.tp_dealloc`) is called. It is " @@ -2881,21 +3686,25 @@ msgid "" "finalized before destruction." msgstr "" +#: ../../c-api/typeobj.rst:2455 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:2460 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:2464 msgid "" "When Python finalizes an object, it behaves like the following algorithm:" msgstr "" +#: ../../c-api/typeobj.rst:2466 msgid "" "Python might mark the object as *finalized*. Currently, Python always marks " "objects whose type supports garbage collection (i.e., the :c:macro:" @@ -2903,11 +3712,13 @@ msgid "" "never marks other types of objects; this might change in a future version." msgstr "" +#: ../../c-api/typeobj.rst:2471 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:2474 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 " @@ -2917,6 +3728,7 @@ msgid "" "make it reachable, i.e., the object is (still) a member of a cyclic isolate." msgstr "" +#: ../../c-api/typeobj.rst:2481 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. " @@ -2924,6 +3736,7 @@ msgid "" "future version." msgstr "" +#: ../../c-api/typeobj.rst:2486 msgid "" "*Automatic finalization* refers to any finalization performed by Python " "except via calls to :c:func:`PyObject_CallFinalizer` or :c:func:" @@ -2931,12 +3744,14 @@ msgid "" "or how often an object is automatically finalized, except:" msgstr "" +#: ../../c-api/typeobj.rst:2491 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:2494 msgid "" "Python will not automatically finalize an object if finalizing it would not " "mark the object as *finalized*. Currently, this applies to objects whose " @@ -2946,45 +3761,53 @@ msgid "" "`PyObject_CallFinalizerFromDealloc`." msgstr "" +#: ../../c-api/typeobj.rst:2500 msgid "" "Python will not automatically finalize any two members of a :term:`cyclic " "isolate` concurrently." msgstr "" +#: ../../c-api/typeobj.rst:2502 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:2504 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:2507 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:2510 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:2514 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:2518 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:2522 msgid "" ":c:member:`~PyTypeObject.tp_finalize` should leave the current exception " "status unchanged. The recommended way to write a non-trivial finalizer is " @@ -2995,6 +3818,7 @@ msgid "" "`PyErr_WriteUnraisable` or :c:func:`PyErr_FormatUnraisable`. For example::" msgstr "" +#: ../../c-api/typeobj.rst:2531 msgid "" "static void\n" "foo_finalize(PyObject *self)\n" @@ -3017,21 +3841,26 @@ msgid "" "}" msgstr "" +#: ../../c-api/typeobj.rst:2559 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:2565 msgid ":pep:`442`: \"Safe object finalization\"" msgstr "" +#: ../../c-api/typeobj.rst:2568 msgid ":c:func:`PyObject_CallFinalizer`" msgstr "" +#: ../../c-api/typeobj.rst:2569 msgid ":c:func:`PyObject_CallFinalizerFromDealloc`" msgstr "" +#: ../../c-api/typeobj.rst:2576 msgid "" "A :ref:`vectorcall function ` to use for calls of this type " "object (rather than instances). In other words, ``tp_vectorcall`` can be " @@ -3039,11 +3868,13 @@ msgid "" "of *type*." msgstr "" +#: ../../c-api/typeobj.rst:2581 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:2586 msgid "" "The :ref:`vectorcall protocol ` requires that the vectorcall " "function has the same behavior as the corresponding ``tp_call``. This means " @@ -3051,22 +3882,27 @@ msgid "" ">tp_call``." msgstr "" +#: ../../c-api/typeobj.rst:2591 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:2595 msgid "calls ``type->tp_new``," msgstr "" +#: ../../c-api/typeobj.rst:2597 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:2600 msgid "returns the result of ``tp_new``." msgstr "" +#: ../../c-api/typeobj.rst:2602 msgid "" "Typically, ``tp_vectorcall`` is overridden to optimize this process for " "specific :c:member:`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject." @@ -3075,53 +3911,65 @@ msgid "" "__init__`, respectively)." msgstr "" +#: ../../c-api/typeobj.rst:2613 msgid "This field is never inherited." msgstr "" +#: ../../c-api/typeobj.rst:2615 msgid "(the field exists since 3.8 but it's only used since 3.9)" msgstr "" +#: ../../c-api/typeobj.rst:2620 msgid "Internal. Do not use." msgstr "" +#: ../../c-api/typeobj.rst:2628 msgid "Static Types" msgstr "" +#: ../../c-api/typeobj.rst:2630 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:2634 msgid "" "This results in types that are limited relative to types defined in Python:" msgstr "" +#: ../../c-api/typeobj.rst:2636 msgid "" "Static types are limited to one base, i.e. they cannot use multiple " "inheritance." msgstr "" +#: ../../c-api/typeobj.rst:2638 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:2640 msgid "" "Static type objects are shared across :ref:`sub-interpreters `, so they should not include any subinterpreter-" "specific state." msgstr "" +#: ../../c-api/typeobj.rst:2644 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:2652 msgid "Heap Types" msgstr "" +#: ../../c-api/typeobj.rst:2654 msgid "" "An alternative to :ref:`static types ` is *heap-allocated " "types*, or *heap types* for short, which correspond closely to classes " @@ -3129,24 +3977,29 @@ msgid "" "`Py_TPFLAGS_HEAPTYPE` flag set." msgstr "" +#: ../../c-api/typeobj.rst:2659 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:2667 msgid "Number Object Structures" msgstr "" +#: ../../c-api/typeobj.rst:2674 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:2680 ../../c-api/typeobj.rst:3164 msgid "Here is the structure definition::" msgstr "" +#: ../../c-api/typeobj.rst:2682 msgid "" "typedef struct {\n" " binaryfunc nb_add;\n" @@ -3192,6 +4045,7 @@ msgid "" "} PyNumberMethods;" msgstr "" +#: ../../c-api/typeobj.rst:2727 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 " @@ -3201,26 +4055,31 @@ msgid "" "and set an exception." msgstr "" +#: ../../c-api/typeobj.rst:2736 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:2887 msgid "Mapping Object Structures" msgstr "" +#: ../../c-api/typeobj.rst:2894 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:2901 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:2909 msgid "" "This function is used by :c:func:`PyObject_GetItem` and :c:func:" "`PySequence_GetSlice`, and has the same signature as :c:func:`!" @@ -3228,6 +4087,7 @@ msgid "" "`PyMapping_Check` function to return ``1``, it can be ``NULL`` otherwise." msgstr "" +#: ../../c-api/typeobj.rst:2919 msgid "" "This function is used by :c:func:`PyObject_SetItem`, :c:func:" "`PyObject_DelItem`, :c:func:`PySequence_SetSlice` and :c:func:" @@ -3237,14 +4097,17 @@ msgid "" "deletion." msgstr "" +#: ../../c-api/typeobj.rst:2930 msgid "Sequence Object Structures" msgstr "" +#: ../../c-api/typeobj.rst:2937 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the sequence protocol." msgstr "" +#: ../../c-api/typeobj.rst:2944 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 " @@ -3252,18 +4115,21 @@ msgid "" "member:`~PySequenceMethods.sq_ass_item` slots." msgstr "" +#: ../../c-api/typeobj.rst:2953 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:2961 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:2969 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 " @@ -3272,6 +4138,7 @@ msgid "" "``1``, it can be ``NULL`` otherwise." msgstr "" +#: ../../c-api/typeobj.rst:2975 msgid "" "Negative indexes are handled as follows: if the :c:member:" "`~PySequenceMethods.sq_length` slot is filled, it is called and the sequence " @@ -3280,6 +4147,7 @@ msgid "" "index is passed as is to the function." msgstr "" +#: ../../c-api/typeobj.rst:2984 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:" @@ -3288,12 +4156,14 @@ msgid "" "``NULL`` if the object does not support item assignment and deletion." msgstr "" +#: ../../c-api/typeobj.rst:2995 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:3004 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 " @@ -3303,6 +4173,7 @@ msgid "" "c:member:`~PyNumberMethods.nb_inplace_add` slot." msgstr "" +#: ../../c-api/typeobj.rst:3015 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 " @@ -3312,60 +4183,110 @@ msgid "" "via the :c:member:`~PyNumberMethods.nb_inplace_multiply` slot." msgstr "" +#: ../../c-api/typeobj.rst:3026 msgid "Buffer Object Structures" msgstr "" +#: ../../c-api/typeobj.rst:3034 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:3042 ../../c-api/typeobj.rst:3111 +#: ../../c-api/typeobj.rst:3177 ../../c-api/typeobj.rst:3190 +#: ../../c-api/typeobj.rst:3204 ../../c-api/typeobj.rst:3216 msgid "The signature of this function is::" msgstr "" +#: ../../c-api/typeobj.rst:3044 msgid "int (PyObject *exporter, Py_buffer *view, int flags);" msgstr "" +#: ../../c-api/typeobj.rst:3046 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:3050 msgid "" -"Check if the request can be met. If not, raise :exc:`BufferError`, set :c:" -"expr:`view->obj` to ``NULL`` and return ``-1``." +"Check if the request can be met. If not, raise :exc:`BufferError`, set " +"``view->obj`` to ``NULL`` and return ``-1``." msgstr "" +#: ../../c-api/typeobj.rst:3053 msgid "Fill in the requested fields." msgstr "" +#: ../../c-api/typeobj.rst:3055 msgid "Increment an internal counter for the number of exports." msgstr "" -msgid "" -"Set :c:expr:`view->obj` to *exporter* and increment :c:expr:`view->obj`." +#: ../../c-api/typeobj.rst:3057 +msgid "Set ``view->obj`` to *exporter* and increment ``view->obj``." msgstr "" +#: ../../c-api/typeobj.rst:3059 msgid "Return ``0``." msgstr "" +#: ../../c-api/typeobj.rst:3061 ../../c-api/typeobj.rst:3124 +msgid "**Thread safety:**" +msgstr "" + +#: ../../c-api/typeobj.rst:3063 +msgid "In the :term:`free-threaded build`, implementations must ensure:" +msgstr "" + +#: ../../c-api/typeobj.rst:3065 +msgid "The export counter increment in step (3) is atomic." +msgstr "" + +#: ../../c-api/typeobj.rst:3067 +msgid "" +"The underlying buffer data remains valid and at a stable memory location for " +"the lifetime of all exports." +msgstr "" + +#: ../../c-api/typeobj.rst:3070 +msgid "" +"For objects that support resizing or reallocation (such as :class:" +"`bytearray`), the export counter is checked atomically before such " +"operations, and :exc:`BufferError` is raised if exports exist." +msgstr "" + +#: ../../c-api/typeobj.rst:3074 +msgid "The function is safe to call concurrently from multiple threads." +msgstr "" + +#: ../../c-api/typeobj.rst:3076 +msgid "" +"See also :ref:`thread-safety-memoryview` for the Python-level thread safety " +"guarantees of :class:`memoryview` objects." +msgstr "" + +#: ../../c-api/typeobj.rst:3079 msgid "" "If *exporter* is part of a chain or tree of buffer providers, two main " "schemes can be used:" msgstr "" +#: ../../c-api/typeobj.rst:3082 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." +"Re-export: Each member of the tree acts as the exporting object and sets " +"``view->obj`` to a new reference to itself." msgstr "" +#: ../../c-api/typeobj.rst:3085 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." +"Here, ``view->obj`` will be a new reference to the root object." msgstr "" +#: ../../c-api/typeobj.rst:3089 msgid "" "The individual fields of *view* are described in section :ref:`Buffer " "structure `, the rules how an exporter must react to " @@ -3373,6 +4294,7 @@ msgid "" "types>`." msgstr "" +#: ../../c-api/typeobj.rst:3094 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:" @@ -3381,19 +4303,23 @@ msgid "" "internal` are read-only for the consumer." msgstr "" +#: ../../c-api/typeobj.rst:3101 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:3104 msgid "" ":c:func:`PyObject_GetBuffer` is the interface for the consumer that wraps " "this function." msgstr "" +#: ../../c-api/typeobj.rst:3113 msgid "void (PyObject *exporter, Py_buffer *view);" msgstr "" +#: ../../c-api/typeobj.rst:3115 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 " @@ -3401,12 +4327,30 @@ msgid "" "these optional steps:" msgstr "" +#: ../../c-api/typeobj.rst:3120 msgid "Decrement an internal counter for the number of exports." msgstr "" +#: ../../c-api/typeobj.rst:3122 msgid "If the counter is ``0``, free all memory associated with *view*." msgstr "" +#: ../../c-api/typeobj.rst:3126 +msgid "In the :term:`free-threaded build`:" +msgstr "" + +#: ../../c-api/typeobj.rst:3128 +msgid "The export counter decrement in step (1) must be atomic." +msgstr "" + +#: ../../c-api/typeobj.rst:3130 +msgid "" +"Resource cleanup when the counter reaches zero must be done atomically, as " +"the final release may race with concurrent releases from other threads and " +"deallocation must only happen once." +msgstr "" + +#: ../../c-api/typeobj.rst:3134 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 " @@ -3414,25 +4358,30 @@ msgid "" "*view* argument." msgstr "" +#: ../../c-api/typeobj.rst:3140 msgid "" -"This function MUST NOT decrement :c:expr:`view->obj`, since that is done " +"This function MUST NOT decrement ``view->obj``, since that is done " "automatically in :c:func:`PyBuffer_Release` (this scheme is useful for " "breaking reference cycles)." msgstr "" +#: ../../c-api/typeobj.rst:3145 msgid "" ":c:func:`PyBuffer_Release` is the interface for the consumer that wraps this " "function." msgstr "" +#: ../../c-api/typeobj.rst:3153 msgid "Async Object Structures" msgstr "" +#: ../../c-api/typeobj.rst:3161 msgid "" "This structure holds pointers to the functions required to implement :term:" "`awaitable` and :term:`asynchronous iterator` objects." msgstr "" +#: ../../c-api/typeobj.rst:3166 msgid "" "typedef struct {\n" " unaryfunc am_await;\n" @@ -3442,49 +4391,61 @@ msgid "" "} PyAsyncMethods;" msgstr "" +#: ../../c-api/typeobj.rst:3179 msgid "PyObject *am_await(PyObject *self);" msgstr "" +#: ../../c-api/typeobj.rst:3181 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:3184 msgid "" "This slot may be set to ``NULL`` if an object is not an :term:`awaitable`." msgstr "" +#: ../../c-api/typeobj.rst:3192 msgid "PyObject *am_aiter(PyObject *self);" msgstr "" +#: ../../c-api/typeobj.rst:3194 msgid "" "Must return an :term:`asynchronous iterator` object. See :meth:`~object." "__anext__` for details." msgstr "" +#: ../../c-api/typeobj.rst:3197 msgid "" "This slot may be set to ``NULL`` if an object does not implement " "asynchronous iteration protocol." msgstr "" +#: ../../c-api/typeobj.rst:3206 msgid "PyObject *am_anext(PyObject *self);" msgstr "" +#: ../../c-api/typeobj.rst:3208 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:3218 msgid "PySendResult am_send(PyObject *self, PyObject *arg, PyObject **result);" msgstr "" +#: ../../c-api/typeobj.rst:3220 msgid "" "See :c:func:`PyIter_Send` for details. This slot may be set to ``NULL``." msgstr "" +#: ../../c-api/typeobj.rst:3229 msgid "Slot Type typedefs" msgstr "" +#: ../../c-api/typeobj.rst:3233 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 " @@ -3498,62 +4459,80 @@ msgid "" "length of the block should be :c:member:`~PyTypeObject.tp_basicsize`." msgstr "" +#: ../../c-api/typeobj.rst:3243 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:3250 msgid "See :c:member:`~PyTypeObject.tp_free`." msgstr "" +#: ../../c-api/typeobj.rst:3254 msgid "See :c:member:`~PyTypeObject.tp_new`." msgstr "" +#: ../../c-api/typeobj.rst:3258 msgid "See :c:member:`~PyTypeObject.tp_init`." msgstr "" +#: ../../c-api/typeobj.rst:3262 msgid "See :c:member:`~PyTypeObject.tp_repr`." msgstr "" +#: ../../c-api/typeobj.rst:3266 ../../c-api/typeobj.rst:3275 msgid "Return the value of the named attribute for the object." msgstr "" +#: ../../c-api/typeobj.rst:3270 ../../c-api/typeobj.rst:3281 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:3277 msgid "See :c:member:`~PyTypeObject.tp_getattro`." msgstr "" +#: ../../c-api/typeobj.rst:3284 msgid "See :c:member:`~PyTypeObject.tp_setattro`." msgstr "" +#: ../../c-api/typeobj.rst:3288 msgid "See :c:member:`~PyTypeObject.tp_descr_get`." msgstr "" +#: ../../c-api/typeobj.rst:3292 msgid "See :c:member:`~PyTypeObject.tp_descr_set`." msgstr "" +#: ../../c-api/typeobj.rst:3296 msgid "See :c:member:`~PyTypeObject.tp_hash`." msgstr "" +#: ../../c-api/typeobj.rst:3300 msgid "See :c:member:`~PyTypeObject.tp_richcompare`." msgstr "" +#: ../../c-api/typeobj.rst:3304 msgid "See :c:member:`~PyTypeObject.tp_iter`." msgstr "" +#: ../../c-api/typeobj.rst:3308 msgid "See :c:member:`~PyTypeObject.tp_iternext`." msgstr "" +#: ../../c-api/typeobj.rst:3322 msgid "See :c:member:`~PyAsyncMethods.am_send`." msgstr "" +#: ../../c-api/typeobj.rst:3338 msgid "Examples" msgstr "" +#: ../../c-api/typeobj.rst:3340 msgid "" "The following are simple examples of Python type definitions. They include " "common usage you may encounter. Some demonstrate tricky corner cases. For " @@ -3561,9 +4540,11 @@ msgid "" "and :ref:`new-types-topics`." msgstr "" +#: ../../c-api/typeobj.rst:3345 msgid "A basic :ref:`static type `::" msgstr "" +#: ../../c-api/typeobj.rst:3347 msgid "" "typedef struct {\n" " PyObject_HEAD\n" @@ -3581,11 +4562,13 @@ msgid "" "};" msgstr "" +#: ../../c-api/typeobj.rst:3362 msgid "" "You may also find older code (especially in the CPython code base) with a " "more verbose initializer::" msgstr "" +#: ../../c-api/typeobj.rst:3365 msgid "" "static PyTypeObject MyObject_Type = {\n" " PyVarObject_HEAD_INIT(NULL, 0)\n" @@ -3629,9 +4612,11 @@ msgid "" "};" msgstr "" +#: ../../c-api/typeobj.rst:3406 msgid "A type that supports weakrefs, instance dicts, and hashing::" msgstr "" +#: ../../c-api/typeobj.rst:3408 msgid "" "typedef struct {\n" " PyObject_HEAD\n" @@ -3657,12 +4642,14 @@ msgid "" "};" msgstr "" +#: ../../c-api/typeobj.rst:3431 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:3435 msgid "" "typedef struct {\n" " PyUnicodeObject raw;\n" @@ -3680,10 +4667,12 @@ msgid "" "};" msgstr "" +#: ../../c-api/typeobj.rst:3450 msgid "" "The simplest :ref:`static type ` with fixed-length instances::" msgstr "" +#: ../../c-api/typeobj.rst:3452 msgid "" "typedef struct {\n" " PyObject_HEAD\n" @@ -3695,11 +4684,13 @@ msgid "" "};" msgstr "" +#: ../../c-api/typeobj.rst:3461 msgid "" "The simplest :ref:`static type ` with variable-length " "instances::" msgstr "" +#: ../../c-api/typeobj.rst:3463 msgid "" "typedef struct {\n" " PyObject_VAR_HEAD\n" @@ -3714,11 +4705,14 @@ msgid "" "};" msgstr "" +#: ../../c-api/typeobj.rst:920 ../../c-api/typeobj.rst:987 msgid "built-in function" msgstr "" +#: ../../c-api/typeobj.rst:920 msgid "repr" msgstr "" +#: ../../c-api/typeobj.rst:987 msgid "hash" msgstr "" diff --git a/c-api/unicode.po b/c-api/unicode.po index c9972de..a22b556 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -11,22 +11,25 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ../../c-api/unicode.rst:6 msgid "Unicode Objects and Codecs" msgstr "Unicode Objekte und Codecs" +#: ../../c-api/unicode.rst:12 msgid "Unicode Objects" msgstr "Unicode Objekte" +#: ../../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 " @@ -42,65 +45,93 @@ msgstr "" "128, 256 oder 65536 liegen; andernfalls müssen Codepunkte unterhalb von " "1114112 sein (gesamter Unicode Bereich)." +#: ../../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 structure of a particular object can be determined using the following " +"macros. The macros cannot fail; their behavior is undefined if their " +"argument is not a Python Unicode object." +msgstr "" + +#: ../../c-api/unicode.rst:77 +msgid "True if *o* uses the :c:struct:`PyCompactUnicodeObject` structure." +msgstr "" + +#: ../../c-api/unicode.rst:84 +msgid "True if *o* uses the :c:struct:`PyASCIIObject` structure." +msgstr "" + +#: ../../c-api/unicode.rst:89 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:94 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:100 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:106 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:116 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 " @@ -108,12 +139,15 @@ msgid "" "`PyUnicode_KIND` to select the right function." msgstr "" +#: ../../c-api/unicode.rst:128 msgid "Return values of the :c:func:`PyUnicode_KIND` macro." msgstr "" +#: ../../c-api/unicode.rst:132 msgid "``PyUnicode_WCHAR_KIND`` has been removed." msgstr "" +#: ../../c-api/unicode.rst:138 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. " @@ -121,15 +155,18 @@ msgid "" "(not checked)." msgstr "" +#: ../../c-api/unicode.rst:147 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:156 msgid "" "Write the code point *value* to the given zero-based *index* in a string." msgstr "" +#: ../../c-api/unicode.rst:158 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. " @@ -138,157 +175,206 @@ msgid "" "apply." msgstr "" +#: ../../c-api/unicode.rst:164 msgid "" "The function performs no checks for any of its requirements, and is intended " "for usage in loops." msgstr "" +#: ../../c-api/unicode.rst:173 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:181 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:190 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:199 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:202 msgid "" "The function does not call :c:func:`Py_FatalError` anymore if the string is " "not ready." msgstr "" +#: ../../c-api/unicode.rst:209 msgid "" "Return true if the string only contains ASCII characters. Equivalent to :py:" "meth:`str.isascii`." msgstr "" +#: ../../c-api/unicode.rst:216 msgid "Unicode Character Properties" msgstr "" +#: ../../c-api/unicode.rst:218 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:225 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a whitespace character." msgstr "" +#: ../../c-api/unicode.rst:230 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a lowercase character." msgstr "" +#: ../../c-api/unicode.rst:235 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is an uppercase character." msgstr "" +#: ../../c-api/unicode.rst:240 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a titlecase character." msgstr "" +#: ../../c-api/unicode.rst:245 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a linebreak character." msgstr "" +#: ../../c-api/unicode.rst:250 msgid "Return ``1`` or ``0`` depending on whether *ch* is a decimal character." msgstr "" +#: ../../c-api/unicode.rst:255 msgid "Return ``1`` or ``0`` depending on whether *ch* is a digit character." msgstr "" +#: ../../c-api/unicode.rst:260 msgid "Return ``1`` or ``0`` depending on whether *ch* is a numeric character." msgstr "" +#: ../../c-api/unicode.rst:265 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is an alphabetic character." msgstr "" +#: ../../c-api/unicode.rst:270 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is an alphanumeric character." msgstr "" +#: ../../c-api/unicode.rst:275 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:279 msgid "These APIs can be used for fast direct character conversions:" msgstr "" +#: ../../c-api/unicode.rst:284 msgid "Return the character *ch* converted to lower case." msgstr "" +#: ../../c-api/unicode.rst:289 msgid "Return the character *ch* converted to upper case." msgstr "" +#: ../../c-api/unicode.rst:294 msgid "Return the character *ch* converted to title case." msgstr "" +#: ../../c-api/unicode.rst:299 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:305 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:311 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:315 msgid "These APIs can be used to work with surrogates:" msgstr "" +#: ../../c-api/unicode.rst:319 msgid "Check if *ch* is a surrogate (``0xD800 <= ch <= 0xDFFF``)." msgstr "" +#: ../../c-api/unicode.rst:323 msgid "Check if *ch* is a high surrogate (``0xD800 <= ch <= 0xDBFF``)." msgstr "" +#: ../../c-api/unicode.rst:327 msgid "Check if *ch* is a low surrogate (``0xDC00 <= ch <= 0xDFFF``)." msgstr "" +#: ../../c-api/unicode.rst:331 +msgid "" +"Return the high UTF-16 surrogate (``0xD800`` to ``0xDBFF``) for a Unicode " +"code point in the range ``[0x10000; 0x10FFFF]``." +msgstr "" + +#: ../../c-api/unicode.rst:336 +msgid "" +"Return the low UTF-16 surrogate (``0xDC00`` to ``0xDFFF``) for a Unicode " +"code point in the range ``[0x10000; 0x10FFFF]``." +msgstr "" + +#: ../../c-api/unicode.rst:341 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]." +"surrogate pair. *high* must be in the range ``[0xD800; 0xDBFF]`` and *low* " +"must be in the range ``[0xDC00; 0xDFFF]``." msgstr "" +#: ../../c-api/unicode.rst:348 msgid "Creating and accessing Unicode strings" msgstr "" +#: ../../c-api/unicode.rst:350 msgid "" "To create Unicode objects and access their basic sequence properties, use " "these APIs:" msgstr "" +#: ../../c-api/unicode.rst:355 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:359 msgid "On error, set an exception and return ``NULL``." msgstr "" +#: ../../c-api/unicode.rst:361 msgid "" "After creation, the string can be filled by :c:func:`PyUnicode_WriteChar`, :" "c:func:`PyUnicode_CopyCharacters`, :c:func:`PyUnicode_Fill`, :c:func:" @@ -297,31 +383,38 @@ msgid "" "before it's filled with its final contents, a string:" msgstr "" +#: ../../c-api/unicode.rst:368 msgid "must not be hashed," msgstr "" +#: ../../c-api/unicode.rst:369 msgid "" "must not be :c:func:`converted to UTF-8 `, or " "another non-\"canonical\" representation," msgstr "" +#: ../../c-api/unicode.rst:371 msgid "must not have its reference count changed," msgstr "" +#: ../../c-api/unicode.rst:372 msgid "must not be shared with code that might do one of the above." msgstr "" +#: ../../c-api/unicode.rst:374 msgid "" "This list is not exhaustive. Avoiding these uses is your responsibility; " "Python does not always check these requirements." msgstr "" +#: ../../c-api/unicode.rst:377 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:388 msgid "" "Create a new Unicode object with the given *kind* (possible values are :c:" "macro:`PyUnicode_1BYTE_KIND` etc., as returned by :c:func:" @@ -329,6 +422,7 @@ msgid "" "1, 2 or 4 bytes per character, as given by the kind." msgstr "" +#: ../../c-api/unicode.rst:393 msgid "" "If necessary, the input *buffer* is copied and transformed into the " "canonical representation. For example, if the *buffer* is a UCS4 string (:c:" @@ -336,6 +430,7 @@ msgid "" "range, it will be transformed into UCS1 (:c:macro:`PyUnicode_1BYTE_KIND`)." msgstr "" +#: ../../c-api/unicode.rst:404 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 " @@ -343,23 +438,29 @@ msgid "" "data is not allowed." msgstr "" +#: ../../c-api/unicode.rst:410 msgid "This function raises :exc:`SystemError` when:" msgstr "" +#: ../../c-api/unicode.rst:412 msgid "*size* < 0," msgstr "" +#: ../../c-api/unicode.rst:413 msgid "*str* is ``NULL`` and *size* > 0" msgstr "" +#: ../../c-api/unicode.rst:415 msgid "*str* == ``NULL`` with *size* > 0 is not allowed anymore." msgstr "" +#: ../../c-api/unicode.rst:421 msgid "" "Create a Unicode object from a UTF-8 encoded null-terminated char buffer " "*str*." msgstr "" +#: ../../c-api/unicode.rst:427 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 " @@ -368,19 +469,23 @@ msgid "" "*format* ASCII-encoded string." msgstr "" +#: ../../c-api/unicode.rst:433 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:436 msgid "The ``'%'`` character, which marks the start of the specifier." msgstr "" +#: ../../c-api/unicode.rst:438 msgid "" "Conversion flags (optional), which affect the result of some conversion " "types." msgstr "" +#: ../../c-api/unicode.rst:441 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:" @@ -388,6 +493,7 @@ msgid "" "optional precision." msgstr "" +#: ../../c-api/unicode.rst:446 msgid "" "Precision (optional), given as a ``'.'`` (dot) followed by the precision. If " "specified as ``'*'`` (an asterisk), the actual precision is given in the " @@ -395,240 +501,316 @@ msgid "" "comes after the precision." msgstr "" +#: ../../c-api/unicode.rst:451 msgid "Length modifier (optional)." msgstr "" +#: ../../c-api/unicode.rst:453 msgid "Conversion type." msgstr "" +#: ../../c-api/unicode.rst:455 msgid "The conversion flag characters are:" msgstr "" +#: ../../c-api/unicode.rst:460 msgid "Flag" msgstr "" +#: ../../c-api/unicode.rst:460 msgid "Meaning" msgstr "" +#: ../../c-api/unicode.rst:462 msgid "``0``" msgstr "" +#: ../../c-api/unicode.rst:462 msgid "The conversion will be zero padded for numeric values." msgstr "" +#: ../../c-api/unicode.rst:464 msgid "``-``" msgstr "" +#: ../../c-api/unicode.rst:464 msgid "" "The converted value is left adjusted (overrides the ``0`` flag if both are " "given)." msgstr "" +#: ../../c-api/unicode.rst:468 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:475 msgid "Modifier" msgstr "" +#: ../../c-api/unicode.rst:475 msgid "Types" msgstr "" +#: ../../c-api/unicode.rst:477 msgid "``l``" msgstr "" +#: ../../c-api/unicode.rst:477 msgid ":c:expr:`long` or :c:expr:`unsigned long`" msgstr "" +#: ../../c-api/unicode.rst:479 msgid "``ll``" msgstr "" +#: ../../c-api/unicode.rst:479 msgid ":c:expr:`long long` or :c:expr:`unsigned long long`" msgstr "" +#: ../../c-api/unicode.rst:481 msgid "``j``" msgstr "" +#: ../../c-api/unicode.rst:481 msgid ":c:type:`intmax_t` or :c:type:`uintmax_t`" msgstr "" +#: ../../c-api/unicode.rst:483 msgid "``z``" msgstr "" +#: ../../c-api/unicode.rst:483 msgid ":c:type:`size_t` or :c:type:`ssize_t`" msgstr "" +#: ../../c-api/unicode.rst:485 msgid "``t``" msgstr "" +#: ../../c-api/unicode.rst:485 msgid ":c:type:`ptrdiff_t`" msgstr "" +#: ../../c-api/unicode.rst:488 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:491 msgid "The conversion specifiers are:" msgstr "" +#: ../../c-api/unicode.rst:497 msgid "Conversion Specifier" msgstr "" +#: ../../c-api/unicode.rst:498 msgid "Type" msgstr "" +#: ../../c-api/unicode.rst:499 msgid "Comment" msgstr "" +#: ../../c-api/unicode.rst:501 msgid "``%``" msgstr "" +#: ../../c-api/unicode.rst:502 msgid "*n/a*" msgstr "" +#: ../../c-api/unicode.rst:503 msgid "The literal ``%`` character." msgstr "" +#: ../../c-api/unicode.rst:505 msgid "``d``, ``i``" msgstr "" +#: ../../c-api/unicode.rst:506 ../../c-api/unicode.rst:510 +#: ../../c-api/unicode.rst:514 ../../c-api/unicode.rst:518 +#: ../../c-api/unicode.rst:522 msgid "Specified by the length modifier" msgstr "" +#: ../../c-api/unicode.rst:507 msgid "The decimal representation of a signed C integer." msgstr "" +#: ../../c-api/unicode.rst:509 msgid "``u``" msgstr "" +#: ../../c-api/unicode.rst:511 msgid "The decimal representation of an unsigned C integer." msgstr "" +#: ../../c-api/unicode.rst:513 msgid "``o``" msgstr "" +#: ../../c-api/unicode.rst:515 msgid "The octal representation of an unsigned C integer." msgstr "" +#: ../../c-api/unicode.rst:517 msgid "``x``" msgstr "" +#: ../../c-api/unicode.rst:519 msgid "The hexadecimal representation of an unsigned C integer (lowercase)." msgstr "" +#: ../../c-api/unicode.rst:521 msgid "``X``" msgstr "" +#: ../../c-api/unicode.rst:523 msgid "The hexadecimal representation of an unsigned C integer (uppercase)." msgstr "" +#: ../../c-api/unicode.rst:525 msgid "``c``" msgstr "" +#: ../../c-api/unicode.rst:526 msgid ":c:expr:`int`" msgstr "" +#: ../../c-api/unicode.rst:527 msgid "A single character." msgstr "" +#: ../../c-api/unicode.rst:529 msgid "``s``" msgstr "" +#: ../../c-api/unicode.rst:530 msgid ":c:expr:`const char*` or :c:expr:`const wchar_t*`" msgstr "" +#: ../../c-api/unicode.rst:531 msgid "A null-terminated C character array." msgstr "" +#: ../../c-api/unicode.rst:533 msgid "``p``" msgstr "" +#: ../../c-api/unicode.rst:534 msgid ":c:expr:`const void*`" msgstr "" +#: ../../c-api/unicode.rst:535 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:540 msgid "``A``" msgstr "" +#: ../../c-api/unicode.rst:541 ../../c-api/unicode.rst:545 +#: ../../c-api/unicode.rst:555 ../../c-api/unicode.rst:559 +#: ../../c-api/unicode.rst:563 ../../c-api/unicode.rst:568 msgid ":c:expr:`PyObject*`" msgstr "" +#: ../../c-api/unicode.rst:542 msgid "The result of calling :func:`ascii`." msgstr "" +#: ../../c-api/unicode.rst:544 msgid "``U``" msgstr "" +#: ../../c-api/unicode.rst:546 msgid "A Unicode object." msgstr "" +#: ../../c-api/unicode.rst:548 msgid "``V``" msgstr "" +#: ../../c-api/unicode.rst:549 msgid ":c:expr:`PyObject*`, :c:expr:`const char*` or :c:expr:`const wchar_t*`" msgstr "" +#: ../../c-api/unicode.rst:550 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:554 msgid "``S``" msgstr "" +#: ../../c-api/unicode.rst:556 msgid "The result of calling :c:func:`PyObject_Str`." msgstr "" +#: ../../c-api/unicode.rst:558 msgid "``R``" msgstr "" +#: ../../c-api/unicode.rst:560 msgid "The result of calling :c:func:`PyObject_Repr`." msgstr "" +#: ../../c-api/unicode.rst:562 msgid "``T``" msgstr "" +#: ../../c-api/unicode.rst:564 msgid "" "Get the fully qualified name of an object type; call :c:func:" "`PyType_GetFullyQualifiedName`." msgstr "" +#: ../../c-api/unicode.rst:567 msgid "``#T``" msgstr "" +#: ../../c-api/unicode.rst:569 msgid "" "Similar to ``T`` format, but use a colon (``:``) as separator between the " "module name and the qualified name." msgstr "" +#: ../../c-api/unicode.rst:572 msgid "``N``" msgstr "" +#: ../../c-api/unicode.rst:573 ../../c-api/unicode.rst:578 msgid ":c:expr:`PyTypeObject*`" msgstr "" +#: ../../c-api/unicode.rst:574 msgid "" "Get the fully qualified name of a type; call :c:func:" "`PyType_GetFullyQualifiedName`." msgstr "" +#: ../../c-api/unicode.rst:577 msgid "``#N``" msgstr "" +#: ../../c-api/unicode.rst:579 msgid "" "Similar to ``N`` format, but use a colon (``:``) as separator between the " "module name and the qualified name." msgstr "" +#: ../../c-api/unicode.rst:583 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 " @@ -638,23 +820,28 @@ msgid "" "``PyObject*`` argument is not ``NULL``)." msgstr "" +#: ../../c-api/unicode.rst:591 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:595 msgid "Support for ``\"%lld\"`` and ``\"%llu\"`` added." msgstr "" +#: ../../c-api/unicode.rst:598 msgid "Support for ``\"%li\"``, ``\"%lli\"`` and ``\"%zi\"`` added." msgstr "" +#: ../../c-api/unicode.rst:601 msgid "" "Support width and precision formatter for ``\"%s\"``, ``\"%A\"``, " "``\"%U\"``, ``\"%V\"``, ``\"%S\"``, ``\"%R\"`` added." msgstr "" +#: ../../c-api/unicode.rst:605 msgid "" "Support for conversion specifiers ``o`` and ``X``. Support for length " "modifiers ``j`` and ``t``. Length modifiers are now applied to all integer " @@ -663,41 +850,50 @@ msgid "" "flag ``-``." msgstr "" +#: ../../c-api/unicode.rst:613 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:617 msgid "Support for ``%T``, ``%#T``, ``%N`` and ``%#N`` formats added." msgstr "" +#: ../../c-api/unicode.rst:623 msgid "" "Identical to :c:func:`PyUnicode_FromFormat` except that it takes exactly two " "arguments." msgstr "" +#: ../../c-api/unicode.rst:629 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:633 msgid "" "Objects other than Unicode or its subtypes will cause a :exc:`TypeError`." msgstr "" +#: ../../c-api/unicode.rst:638 msgid "Create a Unicode Object from the given Unicode code point *ordinal*." msgstr "" +#: ../../c-api/unicode.rst:640 msgid "" "The ordinal must be in ``range(0x110000)``. A :exc:`ValueError` is raised in " "the case it is not." msgstr "" +#: ../../c-api/unicode.rst:647 msgid "Decode an encoded object *obj* to a Unicode object." msgstr "" +#: ../../c-api/unicode.rst:649 msgid "" ":class:`bytes`, :class:`bytearray` and other :term:`bytes-like objects " "` are decoded according to the given *encoding* and using " @@ -705,33 +901,40 @@ msgid "" "interface use the default values (see :ref:`builtincodecs` for details)." msgstr "" +#: ../../c-api/unicode.rst:655 msgid "" "All other objects, including Unicode objects, cause a :exc:`TypeError` to be " "set." msgstr "" +#: ../../c-api/unicode.rst:658 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:664 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." +"releases (\":term:`steals `\") this reference." msgstr "" +#: ../../c-api/unicode.rst:669 msgid "On error, set *\\*p_left* to ``NULL`` and set an exception." msgstr "" +#: ../../c-api/unicode.rst:671 msgid "On success, set *\\*p_left* to a new strong reference to the result." msgstr "" +#: ../../c-api/unicode.rst:676 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:682 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 " @@ -740,22 +943,27 @@ msgid "" "return ``NULL`` on invalid input." msgstr "" +#: ../../c-api/unicode.rst:693 msgid "" "Return the name of the default string encoding, ``\"utf-8\"``. See :func:" "`sys.getdefaultencoding`." msgstr "" +#: ../../c-api/unicode.rst:696 msgid "" "The returned string does not need to be freed, and is valid until " "interpreter shutdown." msgstr "" +#: ../../c-api/unicode.rst:702 msgid "Return the length of the Unicode object, in code points." msgstr "" +#: ../../c-api/unicode.rst:704 msgid "On error, set an exception and return ``-1``." msgstr "" +#: ../../c-api/unicode.rst:715 msgid "" "Copy characters from one Unicode object into another. This function " "performs character conversion when necessary and falls back to :c:func:`!" @@ -763,51 +971,62 @@ msgid "" "otherwise returns the number of copied characters." msgstr "" +#: ../../c-api/unicode.rst:720 ../../c-api/unicode.rst:750 +#: ../../c-api/unicode.rst:770 msgid "" "The string must not have been “used” yet. See :c:func:`PyUnicode_New` for " "details." msgstr "" +#: ../../c-api/unicode.rst:728 msgid "" "Resize a Unicode object *\\*unicode* to the new *length* in code points." msgstr "" +#: ../../c-api/unicode.rst:730 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:733 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:737 msgid "" "The function doesn't check string content, the result may not be a string in " "canonical representation." msgstr "" +#: ../../c-api/unicode.rst:744 msgid "" "Fill a string with a character: write *fill_char* into ``unicode[start:" "start+length]``." msgstr "" +#: ../../c-api/unicode.rst:747 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:753 msgid "" -"Return the number of written character, or return ``-1`` and raise an " +"Return the number of written characters, or return ``-1`` and raise an " "exception on error." msgstr "" +#: ../../c-api/unicode.rst:762 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:765 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:" @@ -815,21 +1034,25 @@ msgid "" "responsibility." msgstr "" +#: ../../c-api/unicode.rst:778 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:782 msgid "Return character on success, ``-1`` on error with an exception set." msgstr "" +#: ../../c-api/unicode.rst:790 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:800 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 " @@ -837,6 +1060,7 @@ msgid "" "*unicode*). *buffer* is returned on success." msgstr "" +#: ../../c-api/unicode.rst:810 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:" @@ -844,14 +1068,17 @@ msgid "" "appended." msgstr "" +#: ../../c-api/unicode.rst:819 msgid "Locale Encoding" msgstr "" +#: ../../c-api/unicode.rst:821 msgid "" "The current locale encoding can be used to decode text from the operating " "system." msgstr "" +#: ../../c-api/unicode.rst:828 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 " @@ -860,17 +1087,21 @@ msgid "" "null character but cannot contain embedded null characters." msgstr "" +#: ../../c-api/unicode.rst:835 msgid "" "Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` to decode a string from the :" "term:`filesystem encoding and error handler`." msgstr "" +#: ../../c-api/unicode.rst:838 ../../c-api/unicode.rst:873 msgid "This function ignores the :ref:`Python UTF-8 Mode `." msgstr "" +#: ../../c-api/unicode.rst:842 ../../c-api/unicode.rst:958 msgid "The :c:func:`Py_DecodeLocale` function." msgstr "" +#: ../../c-api/unicode.rst:846 msgid "" "The function now also uses the current locale encoding for the " "``surrogateescape`` error handler, except on Android. Previously, :c:func:" @@ -878,11 +1109,13 @@ msgid "" "locale encoding was used for ``strict``." msgstr "" +#: ../../c-api/unicode.rst:855 msgid "" "Similar to :c:func:`PyUnicode_DecodeLocaleAndSize`, but compute the string " "length using :c:func:`!strlen`." msgstr "" +#: ../../c-api/unicode.rst:863 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 " @@ -891,14 +1124,17 @@ msgid "" "`bytes` object. *unicode* cannot contain embedded null characters." msgstr "" +#: ../../c-api/unicode.rst:870 msgid "" "Use :c:func:`PyUnicode_EncodeFSDefault` to encode a string to the :term:" "`filesystem encoding and error handler`." msgstr "" +#: ../../c-api/unicode.rst:877 ../../c-api/unicode.rst:989 msgid "The :c:func:`Py_EncodeLocale` function." msgstr "" +#: ../../c-api/unicode.rst:881 msgid "" "The function now also uses the current locale encoding for the " "``surrogateescape`` error handler, except on Android. Previously, :c:func:" @@ -906,20 +1142,24 @@ msgid "" "locale encoding was used for ``strict``." msgstr "" +#: ../../c-api/unicode.rst:890 msgid "File System Encoding" msgstr "" +#: ../../c-api/unicode.rst:892 msgid "" "Functions encoding to and decoding from the :term:`filesystem encoding and " "error handler` (:pep:`383` and :pep:`529`)." msgstr "" +#: ../../c-api/unicode.rst:895 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:901 msgid "" ":ref:`PyArg_Parse\\* converter `: encode :class:`str` objects " "-- obtained directly or through the :class:`os.PathLike` interface -- to :" @@ -932,20 +1172,24 @@ msgid "" "not allowed in the result. On failure, return ``0`` with an exception set." msgstr "" +#: ../../c-api/unicode.rst:913 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:918 ../../c-api/unicode.rst:945 msgid "Accepts a :term:`path-like object`." msgstr "" +#: ../../c-api/unicode.rst:921 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:927 msgid "" ":ref:`PyArg_Parse\\* converter `: decode :class:`bytes` objects " "-- obtained either directly or indirectly through the :class:`os.PathLike` " @@ -959,51 +1203,63 @@ msgid "" "result. On failure, return ``0`` with an exception set." msgstr "" +#: ../../c-api/unicode.rst:940 msgid "" "If *obj* is ``NULL``, release the strong reference to the object referred to " "by *result* and return ``1``." msgstr "" +#: ../../c-api/unicode.rst:951 msgid "Decode a string from the :term:`filesystem encoding and error handler`." msgstr "" +#: ../../c-api/unicode.rst:953 msgid "" "If you need to decode a string from the current locale encoding, use :c:func:" "`PyUnicode_DecodeLocaleAndSize`." msgstr "" +#: ../../c-api/unicode.rst:960 ../../c-api/unicode.rst:973 +#: ../../c-api/unicode.rst:993 msgid "" "The :term:`filesystem error handler ` " "is now used." msgstr "" +#: ../../c-api/unicode.rst:967 msgid "" "Decode a null-terminated string from the :term:`filesystem encoding and " "error handler`." msgstr "" +#: ../../c-api/unicode.rst:970 msgid "" "If the string length is known, use :c:func:" "`PyUnicode_DecodeFSDefaultAndSize`." msgstr "" +#: ../../c-api/unicode.rst:980 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:984 msgid "" "If you need to encode a string to the current locale encoding, use :c:func:" "`PyUnicode_EncodeLocale`." msgstr "" +#: ../../c-api/unicode.rst:998 msgid "wchar_t Support" msgstr "" +#: ../../c-api/unicode.rst:1000 msgid ":c:type:`wchar_t` support for platforms which support it:" msgstr "" +#: ../../c-api/unicode.rst:1004 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 " @@ -1011,6 +1267,7 @@ msgid "" "failure." msgstr "" +#: ../../c-api/unicode.rst:1012 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 " @@ -1018,11 +1275,13 @@ msgid "" "`wchar_t` characters copied or ``-1`` in case of an error." msgstr "" +#: ../../c-api/unicode.rst:1017 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:1020 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:" @@ -1032,6 +1291,7 @@ msgid "" "most C functions." msgstr "" +#: ../../c-api/unicode.rst:1030 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 " @@ -1042,31 +1302,37 @@ msgid "" "`wchar_t*` string contains null characters a :exc:`ValueError` is raised." msgstr "" +#: ../../c-api/unicode.rst:1038 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:1045 msgid "" "Raises a :exc:`ValueError` if *size* is ``NULL`` and the :c:expr:`wchar_t*` " "string contains null characters." msgstr "" +#: ../../c-api/unicode.rst:1053 msgid "Built-in Codecs" msgstr "" +#: ../../c-api/unicode.rst:1055 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:1058 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:1062 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 " @@ -1074,34 +1340,42 @@ msgid "" "handler` internally." msgstr "" +#: ../../c-api/unicode.rst:1067 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:1071 msgid "" "The codecs all use a similar interface. Only deviations from the following " "generic ones are documented for simplicity." msgstr "" +#: ../../c-api/unicode.rst:1076 msgid "Generic Codecs" msgstr "" +#: ../../c-api/unicode.rst:1078 msgid "The following macro is provided:" msgstr "" +#: ../../c-api/unicode.rst:1083 msgid "The Unicode code point ``U+FFFD`` (replacement character)." msgstr "" +#: ../../c-api/unicode.rst:1085 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:1089 msgid "These are the generic codec APIs:" msgstr "" +#: ../../c-api/unicode.rst:1095 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 " @@ -1110,6 +1384,7 @@ msgid "" "was raised by the codec." msgstr "" +#: ../../c-api/unicode.rst:1105 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 " @@ -1118,17 +1393,21 @@ msgid "" "was raised by the codec." msgstr "" +#: ../../c-api/unicode.rst:1113 msgid "UTF-8 Codecs" msgstr "" +#: ../../c-api/unicode.rst:1115 msgid "These are the UTF-8 codec APIs:" msgstr "" +#: ../../c-api/unicode.rst:1120 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:1127 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF8`. If " "*consumed* is not ``NULL``, trailing incomplete UTF-8 byte sequences will " @@ -1136,17 +1415,20 @@ msgid "" "of bytes that have been decoded will be stored in *consumed*." msgstr "" +#: ../../c-api/unicode.rst:1135 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:1139 ../../c-api/unicode.rst:1154 msgid "" "The function fails if the string contains surrogate code points (``U+D800`` " "- ``U+DFFF``)." msgstr "" +#: ../../c-api/unicode.rst:1145 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* " @@ -1155,11 +1437,13 @@ msgid "" "regardless of whether there are any other null code points." msgstr "" +#: ../../c-api/unicode.rst:1151 msgid "" "On error, set an exception, set *size* to ``-1`` (if it's not NULL) and " "return ``NULL``." msgstr "" +#: ../../c-api/unicode.rst:1157 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 " @@ -1168,15 +1452,19 @@ msgid "" "collected." msgstr "" -msgid "The return type is now ``const char *`` rather of ``char *``." +#: ../../c-api/unicode.rst:1164 ../../c-api/unicode.rst:1186 +msgid "The return type is now ``const char *`` rather than ``char *``." msgstr "" +#: ../../c-api/unicode.rst:1167 msgid "This function is a part of the :ref:`limited API `." msgstr "" +#: ../../c-api/unicode.rst:1173 msgid "As :c:func:`PyUnicode_AsUTF8AndSize`, but does not store the size." msgstr "" +#: ../../c-api/unicode.rst:1177 msgid "" "This function does not have any special behavior for `null characters " "`_ embedded within *unicode*. " @@ -1186,29 +1474,35 @@ msgid "" "c:func:`PyUnicode_AsUTF8AndSize` instead." msgstr "" +#: ../../c-api/unicode.rst:1191 msgid "UTF-32 Codecs" msgstr "" +#: ../../c-api/unicode.rst:1193 msgid "These are the UTF-32 codec APIs:" msgstr "" +#: ../../c-api/unicode.rst:1199 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:1203 ../../c-api/unicode.rst:1253 msgid "" "If *byteorder* is non-``NULL``, the decoder starts decoding using the given " "byte order::" msgstr "" +#: ../../c-api/unicode.rst:1206 ../../c-api/unicode.rst:1256 msgid "" "*byteorder == -1: little endian\n" "*byteorder == 0: native order\n" "*byteorder == 1: big endian" msgstr "" +#: ../../c-api/unicode.rst:1210 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 " @@ -1216,17 +1510,21 @@ msgid "" "``-1`` or ``1``, any byte order mark is copied to the output." msgstr "" +#: ../../c-api/unicode.rst:1215 msgid "" "After completion, *\\*byteorder* is set to the current byte order at the end " "of input data." msgstr "" +#: ../../c-api/unicode.rst:1218 ../../c-api/unicode.rst:1269 msgid "If *byteorder* is ``NULL``, the codec starts in native order mode." msgstr "" +#: ../../c-api/unicode.rst:1220 ../../c-api/unicode.rst:1271 msgid "Return ``NULL`` if an exception was raised by the codec." msgstr "" +#: ../../c-api/unicode.rst:1226 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF32`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF32Stateful` will not " @@ -1235,24 +1533,29 @@ msgid "" "number of bytes that have been decoded will be stored in *consumed*." msgstr "" +#: ../../c-api/unicode.rst:1235 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:1241 msgid "UTF-16 Codecs" msgstr "" +#: ../../c-api/unicode.rst:1243 msgid "These are the UTF-16 codec APIs:" msgstr "" +#: ../../c-api/unicode.rst:1249 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:1260 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 " @@ -1261,11 +1564,13 @@ msgid "" "result in either a ``\\ufeff`` or a ``\\ufffe`` character)." msgstr "" +#: ../../c-api/unicode.rst:1266 msgid "" "After completion, ``*byteorder`` is set to the current byte order at the end " "of input data." msgstr "" +#: ../../c-api/unicode.rst:1277 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF16`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF16Stateful` will not " @@ -1275,23 +1580,28 @@ msgid "" "*consumed*." msgstr "" +#: ../../c-api/unicode.rst:1286 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:1292 msgid "UTF-7 Codecs" msgstr "" +#: ../../c-api/unicode.rst:1294 msgid "These are the UTF-7 codec APIs:" msgstr "" +#: ../../c-api/unicode.rst:1299 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:1306 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF7`. If " "*consumed* is not ``NULL``, trailing incomplete UTF-7 base-64 sections will " @@ -1299,83 +1609,101 @@ msgid "" "of bytes that have been decoded will be stored in *consumed*." msgstr "" +#: ../../c-api/unicode.rst:1313 msgid "Unicode-Escape Codecs" msgstr "" +#: ../../c-api/unicode.rst:1315 msgid "These are the \"Unicode Escape\" codec APIs:" msgstr "" +#: ../../c-api/unicode.rst:1321 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:1327 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:1333 msgid "Raw-Unicode-Escape Codecs" msgstr "" +#: ../../c-api/unicode.rst:1335 msgid "These are the \"Raw Unicode Escape\" codec APIs:" msgstr "" +#: ../../c-api/unicode.rst:1341 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:1347 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:1353 msgid "Latin-1 Codecs" msgstr "" +#: ../../c-api/unicode.rst:1355 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:1361 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:1367 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:1373 msgid "ASCII Codecs" msgstr "" +#: ../../c-api/unicode.rst:1375 msgid "" "These are the ASCII codec APIs. Only 7-bit ASCII data is accepted. All " "other codes generate errors." msgstr "" +#: ../../c-api/unicode.rst:1381 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:1387 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:1393 msgid "Character Map Codecs" msgstr "" +#: ../../c-api/unicode.rst:1395 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 " @@ -1385,15 +1713,18 @@ msgid "" "sequences work well." msgstr "" +#: ../../c-api/unicode.rst:1401 msgid "These are the mapping codec APIs:" msgstr "" +#: ../../c-api/unicode.rst:1406 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:1410 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 " @@ -1403,12 +1734,14 @@ msgid "" "treated as undefined mappings and cause an error." msgstr "" +#: ../../c-api/unicode.rst:1421 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:1425 msgid "" "The *mapping* object must map Unicode ordinal integers to bytes objects, " "integers in the range from 0 to 255 or ``None``. Unmapped character " @@ -1416,34 +1749,41 @@ msgid "" "``None`` are treated as \"undefined mapping\" and cause an error." msgstr "" +#: ../../c-api/unicode.rst:1431 msgid "The following codec API is special in that maps Unicode to Unicode." msgstr "" +#: ../../c-api/unicode.rst:1435 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:1439 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:1442 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:1446 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:1451 msgid "MBCS codecs for Windows" msgstr "" +#: ../../c-api/unicode.rst:1453 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 " @@ -1451,11 +1791,13 @@ msgid "" "is defined by the user settings on the machine running the codec." msgstr "" +#: ../../c-api/unicode.rst:1460 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:1467 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeMBCS`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeMBCSStateful` will not " @@ -1463,38 +1805,46 @@ msgid "" "will be stored in *consumed*." msgstr "" +#: ../../c-api/unicode.rst:1476 msgid "" "Similar to :c:func:`PyUnicode_DecodeMBCSStateful`, except uses the code page " "specified by *code_page*." msgstr "" +#: ../../c-api/unicode.rst:1482 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:1489 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:1499 msgid "Methods and Slot Functions" msgstr "" +#: ../../c-api/unicode.rst:1501 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:1505 msgid "They all return ``NULL`` or ``-1`` if an exception occurs." msgstr "" +#: ../../c-api/unicode.rst:1510 msgid "Concat two strings giving a new Unicode string." msgstr "" +#: ../../c-api/unicode.rst:1515 msgid "" "Split a string giving a list of Unicode strings. If *sep* is ``NULL``, " "splitting will be done at all whitespace substrings. Otherwise, splits " @@ -1503,26 +1853,33 @@ msgid "" "list." msgstr "" +#: ../../c-api/unicode.rst:1520 ../../c-api/unicode.rst:1530 +#: ../../c-api/unicode.rst:1551 ../../c-api/unicode.rst:1564 msgid "On error, return ``NULL`` with an exception set." msgstr "" +#: ../../c-api/unicode.rst:1522 msgid "Equivalent to :py:meth:`str.split`." msgstr "" +#: ../../c-api/unicode.rst:1527 msgid "" "Similar to :c:func:`PyUnicode_Split`, but splitting will be done beginning " "at the end of the string." msgstr "" +#: ../../c-api/unicode.rst:1532 msgid "Equivalent to :py:meth:`str.rsplit`." msgstr "" +#: ../../c-api/unicode.rst:1537 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:1544 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 " @@ -1530,32 +1887,39 @@ msgid "" "tuple containing the string itself, followed by two empty strings." msgstr "" +#: ../../c-api/unicode.rst:1549 ../../c-api/unicode.rst:1562 msgid "*sep* must not be empty." msgstr "" +#: ../../c-api/unicode.rst:1553 msgid "Equivalent to :py:meth:`str.partition`." msgstr "" +#: ../../c-api/unicode.rst:1558 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:1566 msgid "Equivalent to :py:meth:`str.rpartition`." msgstr "" +#: ../../c-api/unicode.rst:1571 msgid "" "Join a sequence of strings using the given *separator* and return the " "resulting Unicode string." msgstr "" +#: ../../c-api/unicode.rst:1578 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:1586 msgid "" "Return the first position of *substr* in ``unicode[start:end]`` using the " "given *direction* (*direction* == ``1`` means to do a forward search, " @@ -1564,6 +1928,7 @@ msgid "" "``-2`` indicates that an error occurred and an exception has been set." msgstr "" +#: ../../c-api/unicode.rst:1596 msgid "" "Return the first position of the character *ch* in ``unicode[start:end]`` " "using the given *direction* (*direction* == ``1`` means to do a forward " @@ -1573,59 +1938,73 @@ msgid "" "set." msgstr "" +#: ../../c-api/unicode.rst:1604 msgid "" "*start* and *end* are now adjusted to behave like ``unicode[start:end]``." msgstr "" +#: ../../c-api/unicode.rst:1611 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:1618 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:1625 msgid "" "Compare two strings and return ``-1``, ``0``, ``1`` for less than, equal, " "and greater than, respectively." msgstr "" +#: ../../c-api/unicode.rst:1628 msgid "" "This function returns ``-1`` upon failure, so one should call :c:func:" "`PyErr_Occurred` to check for errors." msgstr "" +#: ../../c-api/unicode.rst:1633 msgid "The :c:func:`PyUnicode_Equal` function." msgstr "" +#: ../../c-api/unicode.rst:1638 msgid "Test if two strings are equal:" msgstr "" +#: ../../c-api/unicode.rst:1640 msgid "Return ``1`` if *a* is equal to *b*." msgstr "" +#: ../../c-api/unicode.rst:1641 msgid "Return ``0`` if *a* is not equal to *b*." msgstr "" +#: ../../c-api/unicode.rst:1642 msgid "" "Set a :exc:`TypeError` exception and return ``-1`` if *a* or *b* is not a :" "class:`str` object." msgstr "" +#: ../../c-api/unicode.rst:1645 msgid "The function always succeeds if *a* and *b* are :class:`str` objects." msgstr "" +#: ../../c-api/unicode.rst:1647 msgid "" "The function works for :class:`str` subclasses, but does not honor custom " "``__eq__()`` method." msgstr "" +#: ../../c-api/unicode.rst:1652 msgid "The :c:func:`PyUnicode_Compare` function." msgstr "" +#: ../../c-api/unicode.rst:1659 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 " @@ -1634,15 +2013,18 @@ msgid "" "is returned." msgstr "" +#: ../../c-api/unicode.rst:1666 ../../c-api/unicode.rst:1687 msgid "This function does not raise exceptions." msgstr "" +#: ../../c-api/unicode.rst:1673 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:1682 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 " @@ -1650,38 +2032,47 @@ msgid "" "string as ISO-8859-1 if it contains non-ASCII characters." msgstr "" +#: ../../c-api/unicode.rst:1692 msgid "Rich compare two Unicode strings and return one of the following:" msgstr "" +#: ../../c-api/unicode.rst:1694 msgid "``NULL`` in case an exception was raised" msgstr "" +#: ../../c-api/unicode.rst:1695 msgid ":c:data:`Py_True` or :c:data:`Py_False` for successful comparisons" msgstr "" +#: ../../c-api/unicode.rst:1696 msgid ":c:data:`Py_NotImplemented` in case the type combination is unknown" msgstr "" +#: ../../c-api/unicode.rst:1698 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:1704 msgid "" "Return a new string object from *format* and *args*; this is analogous to " "``format % args``." msgstr "" +#: ../../c-api/unicode.rst:1710 msgid "" "Check whether *substr* is contained in *unicode* and return true or false " "accordingly." msgstr "" +#: ../../c-api/unicode.rst:1713 msgid "" "*substr* has to coerce to a one element Unicode string. ``-1`` is returned " "if there was an error." msgstr "" +#: ../../c-api/unicode.rst:1719 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. " @@ -1692,6 +2083,7 @@ msgid "" "interns it." msgstr "" +#: ../../c-api/unicode.rst:1726 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; " @@ -1699,33 +2091,39 @@ msgid "" "the result.)" msgstr "" +#: ../../c-api/unicode.rst:1731 msgid "" "This function never raises an exception. On error, it leaves its argument " "unchanged without interning it." msgstr "" +#: ../../c-api/unicode.rst:1734 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:1738 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:1744 msgid "" "A combination of :c:func:`PyUnicode_FromString` and :c:func:" "`PyUnicode_InternInPlace`, meant for statically allocated strings." msgstr "" +#: ../../c-api/unicode.rst:1747 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:1751 msgid "" "Python may keep a reference to the result, or make it :term:`immortal`, " "preventing it from being garbage-collected promptly. For interning an " @@ -1734,12 +2132,14 @@ msgid "" "`PyUnicode_InternInPlace` directly." msgstr "" +#: ../../c-api/unicode.rst:1760 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:1766 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 " @@ -1747,167 +2147,227 @@ msgid "" "versions." msgstr "" +#: ../../c-api/unicode.rst:1773 msgid "PyUnicodeWriter" msgstr "" +#: ../../c-api/unicode.rst:1775 msgid "" "The :c:type:`PyUnicodeWriter` API can be used to create a Python :class:" "`str` object." msgstr "" +#: ../../c-api/unicode.rst:1782 msgid "A Unicode writer instance." msgstr "" +#: ../../c-api/unicode.rst:1784 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:1789 msgid "Create a Unicode writer instance." msgstr "" +#: ../../c-api/unicode.rst:1791 msgid "*length* must be greater than or equal to ``0``." msgstr "" +#: ../../c-api/unicode.rst:1793 msgid "" "If *length* is greater than ``0``, preallocate an internal buffer of " "*length* characters." msgstr "" +#: ../../c-api/unicode.rst:1796 ../../c-api/unicode.rst:1802 msgid "Set an exception and return ``NULL`` on error." msgstr "" +#: ../../c-api/unicode.rst:1800 msgid "" "Return the final Python :class:`str` object and destroy the writer instance." msgstr "" +#: ../../c-api/unicode.rst:1804 ../../c-api/unicode.rst:1812 msgid "The writer instance is invalid after this call." msgstr "" +#: ../../c-api/unicode.rst:1808 msgid "Discard the internal Unicode buffer and destroy the writer instance." msgstr "" +#: ../../c-api/unicode.rst:1810 msgid "If *writer* is ``NULL``, no operation is performed." msgstr "" +#: ../../c-api/unicode.rst:1816 msgid "Write the single Unicode character *ch* into *writer*." msgstr "" +#: ../../c-api/unicode.rst:1818 ../../c-api/unicode.rst:1828 +#: ../../c-api/unicode.rst:1843 ../../c-api/unicode.rst:1853 +#: ../../c-api/unicode.rst:1862 ../../c-api/unicode.rst:1869 +#: ../../c-api/unicode.rst:1882 ../../c-api/unicode.rst:1897 +#: ../../c-api/unicode.rst:1904 ../../c-api/unicode.rst:1923 msgid "" "On success, return ``0``. On error, set an exception, leave the writer " "unchanged, and return ``-1``." msgstr "" +#: ../../c-api/unicode.rst:1823 msgid "" "Decode the string *str* from UTF-8 in strict mode and write the output into " "*writer*." msgstr "" +#: ../../c-api/unicode.rst:1825 ../../c-api/unicode.rst:1837 +#: ../../c-api/unicode.rst:1912 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:1831 msgid "See also :c:func:`PyUnicodeWriter_DecodeUTF8Stateful`." msgstr "" +#: ../../c-api/unicode.rst:1835 msgid "Write the ASCII string *str* into *writer*." msgstr "" +#: ../../c-api/unicode.rst:1840 msgid "" "*str* must only contain ASCII characters. The behavior is undefined if *str* " "contains non-ASCII characters." msgstr "" +#: ../../c-api/unicode.rst:1848 msgid "Write the wide string *str* into *writer*." msgstr "" +#: ../../c-api/unicode.rst:1850 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:1858 msgid "Writer the UCS4 string *str* into *writer*." msgstr "" +#: ../../c-api/unicode.rst:1860 msgid "*size* is a number of UCS4 characters." msgstr "" +#: ../../c-api/unicode.rst:1867 msgid "" "Call :c:func:`PyObject_Str` on *obj* and write the output into *writer*." msgstr "" +#: ../../c-api/unicode.rst:1872 +msgid "" +"To write a :class:`str` subclass which overrides the :meth:`~object.__str__` " +"method, :c:func:`PyUnicode_FromObject` can be used to get the original " +"string." +msgstr "" + +#: ../../c-api/unicode.rst:1878 msgid "" "Call :c:func:`PyObject_Repr` on *obj* and write the output into *writer*." msgstr "" +#: ../../c-api/unicode.rst:1880 +msgid "If *obj* is ``NULL``, write the string ``\"\"`` into *writer*." +msgstr "" + +#: ../../c-api/unicode.rst:1887 +msgid "Added support for ``NULL``." +msgstr "" + +#: ../../c-api/unicode.rst:1891 msgid "Write the substring ``str[start:end]`` into *writer*." msgstr "" +#: ../../c-api/unicode.rst:1893 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:1902 msgid "" "Similar to :c:func:`PyUnicode_FromFormat`, but write the output directly " "into *writer*." msgstr "" +#: ../../c-api/unicode.rst:1909 msgid "" "Decode the string *str* from UTF-8 with *errors* error handler and write the " "output into *writer*." msgstr "" +#: ../../c-api/unicode.rst:1915 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:1918 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:1926 msgid "See also :c:func:`PyUnicodeWriter_WriteUTF8`." msgstr "" +#: ../../c-api/unicode.rst:1929 msgid "Deprecated API" msgstr "" +#: ../../c-api/unicode.rst:1931 msgid "The following API is deprecated." msgstr "" +#: ../../c-api/unicode.rst:1935 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:1939 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:1949 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:1955 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:1963 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:1969 msgid "" "This API does nothing since Python 3.12. Previously, this could be called to " "check if :c:func:`PyUnicode_READY` is necessary." diff --git a/c-api/utilities.po b/c-api/utilities.po index 60dac3f..0a19413 100644 --- a/c-api/utilities.po +++ b/c-api/utilities.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po index 8e27609..105a737 100644 --- a/c-api/veryhigh.po +++ b/c-api/veryhigh.po @@ -8,31 +8,36 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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." +"`Py_file_input`, :c:data:`Py_single_input`, and :c:data:" +"`Py_func_type_input`. These are described following the functions which " +"accept them as parameters." msgstr "" +#: ../../c-api/veryhigh.rst:20 msgid "" "Note also that several of these functions take :c:expr:`FILE*` parameters. " "One particular issue which needs to be handled carefully is that the :c:type:" @@ -44,21 +49,25 @@ msgid "" "runtime is using." msgstr "" +#: ../../c-api/veryhigh.rst:31 msgid "" "This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " "leaving *closeit* set to ``0`` and *flags* set to ``NULL``." msgstr "" +#: ../../c-api/veryhigh.rst:37 msgid "" "This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " "leaving the *closeit* argument set to ``0``." msgstr "" +#: ../../c-api/veryhigh.rst:43 msgid "" "This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " "leaving the *flags* argument set to ``NULL``." msgstr "" +#: ../../c-api/veryhigh.rst:49 msgid "" "If *fp* refers to a file associated with an interactive device (console or " "terminal input or Unix pseudo-terminal), return the value of :c:func:" @@ -69,11 +78,13 @@ msgid "" "before ``PyRun_SimpleFileExFlags()`` returns." msgstr "" +#: ../../c-api/veryhigh.rst:61 msgid "" "This is a simplified interface to :c:func:`PyRun_SimpleStringFlags` below, " "leaving the :c:struct:`PyCompilerFlags`\\* argument set to ``NULL``." msgstr "" +#: ../../c-api/veryhigh.rst:67 msgid "" "Executes the Python source code from *command* in the :mod:`__main__` module " "according to the *flags* argument. If :mod:`__main__` does not already " @@ -82,22 +93,26 @@ msgid "" "information. For the meaning of *flags*, see below." msgstr "" +#: ../../c-api/veryhigh.rst:73 msgid "" "Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " "function will not return ``-1``, but exit the process, as long as :c:member:" "`PyConfig.inspect` is zero." msgstr "" +#: ../../c-api/veryhigh.rst:80 msgid "" "This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " "leaving *closeit* set to ``0`` and *flags* set to ``NULL``." msgstr "" +#: ../../c-api/veryhigh.rst:86 msgid "" "This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " "leaving *flags* set to ``NULL``." msgstr "" +#: ../../c-api/veryhigh.rst:92 msgid "" "Similar to :c:func:`PyRun_SimpleStringFlags`, but the Python source code is " "read from *fp* instead of an in-memory string. *filename* should be the name " @@ -106,24 +121,22 @@ msgid "" "``PyRun_SimpleFileExFlags()`` returns." msgstr "" +#: ../../c-api/veryhigh.rst:99 msgid "" "On Windows, *fp* should be opened as binary mode (e.g. ``fopen(filename, " "\"rb\")``). Otherwise, Python may not handle script file with LF line ending " "correctly." msgstr "" -msgid "" -"This is a simplified interface to :c:func:`PyRun_InteractiveOneFlags` below, " -"leaving *flags* set to ``NULL``." -msgstr "" - +#: ../../c-api/veryhigh.rst:105 msgid "" "Read and execute a single statement from a file associated with an " "interactive device according to the *flags* argument. The user will be " -"prompted using ``sys.ps1`` and ``sys.ps2``. *filename* is decoded from the :" -"term:`filesystem encoding and error handler`." +"prompted using ``sys.ps1`` and ``sys.ps2``. *filename* must be a Python :" +"class:`str` object." msgstr "" +#: ../../c-api/veryhigh.rst:110 msgid "" "Returns ``0`` when the input was executed successfully, ``-1`` if there was " "an exception, or an error code from the :file:`errcode.h` include file " @@ -132,11 +145,26 @@ msgid "" "specifically if needed.)" msgstr "" +#: ../../c-api/veryhigh.rst:119 +msgid "" +"This is a simplified interface to :c:func:`PyRun_InteractiveOneFlags` below, " +"leaving *flags* set to ``NULL``." +msgstr "" + +#: ../../c-api/veryhigh.rst:125 +msgid "" +"Similar to :c:func:`PyRun_InteractiveOneObject`, but *filename* is a :c:expr:" +"`const char*`, which is decoded from the :term:`filesystem encoding and " +"error handler`." +msgstr "" + +#: ../../c-api/veryhigh.rst:132 msgid "" "This is a simplified interface to :c:func:`PyRun_InteractiveLoopFlags` " "below, leaving *flags* set to ``NULL``." msgstr "" +#: ../../c-api/veryhigh.rst:138 msgid "" "Read and execute statements from a file associated with an interactive " "device until EOF is reached. The user will be prompted using ``sys.ps1`` " @@ -144,20 +172,23 @@ msgid "" "and error handler`. Returns ``0`` at EOF or a negative number upon failure." msgstr "" +#: ../../c-api/veryhigh.rst:146 msgid "" "Can be set to point to a function with the prototype ``int func(void)``. " "The function will be called when Python's interpreter prompt is about to " "become idle and wait for user input from the terminal. The return value is " "ignored. Overriding this hook can be used to integrate the interpreter's " -"prompt with other event loops, as done in the :file:`Modules/_tkinter.c` in " -"the Python source code." +"prompt with other event loops, as done in :file:`Modules/_tkinter.c` in the " +"Python source code." msgstr "" +#: ../../c-api/veryhigh.rst:154 ../../c-api/veryhigh.rst:178 msgid "" "This function is only called from the :ref:`main interpreter `." msgstr "" +#: ../../c-api/veryhigh.rst:161 msgid "" "Can be set to point to a function with the prototype ``char *func(FILE " "*stdin, FILE *stdout, char *prompt)``, overriding the default function used " @@ -168,51 +199,59 @@ msgid "" "line-editing and tab-completion features." msgstr "" +#: ../../c-api/veryhigh.rst:170 msgid "" "The result must be a string allocated by :c:func:`PyMem_RawMalloc` or :c:" "func:`PyMem_RawRealloc`, or ``NULL`` if an error occurred." msgstr "" +#: ../../c-api/veryhigh.rst:173 msgid "" "The result must be allocated by :c:func:`PyMem_RawMalloc` or :c:func:" "`PyMem_RawRealloc`, instead of being allocated by :c:func:`PyMem_Malloc` or :" "c:func:`PyMem_Realloc`." msgstr "" +#: ../../c-api/veryhigh.rst:184 msgid "" "This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving " "*flags* set to ``NULL``." msgstr "" +#: ../../c-api/veryhigh.rst:190 msgid "" "Execute Python source code from *str* in the context specified by the " "objects *globals* and *locals* with the compiler flags specified by " "*flags*. *globals* must be a dictionary; *locals* can be any object that " "implements the mapping protocol. The parameter *start* specifies the start " -"symbol and must one of the following: :c:data:`Py_eval_input`, :c:data:" -"`Py_file_input`, or :c:data:`Py_single_input`." +"symbol and must be one of the :ref:`available start symbols `." msgstr "" +#: ../../c-api/veryhigh.rst:196 msgid "" "Returns the result of executing the code as a Python object, or ``NULL`` if " "an exception was raised." msgstr "" +#: ../../c-api/veryhigh.rst:202 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*closeit* set to ``0`` and *flags* set to ``NULL``." msgstr "" +#: ../../c-api/veryhigh.rst:208 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*flags* set to ``NULL``." msgstr "" +#: ../../c-api/veryhigh.rst:214 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*closeit* set to ``0``." msgstr "" +#: ../../c-api/veryhigh.rst:220 msgid "" "Similar to :c:func:`PyRun_StringFlags`, but the Python source code is read " "from *fp* instead of an in-memory string. *filename* should be the name of " @@ -221,26 +260,30 @@ msgid "" "`PyRun_FileExFlags` returns." msgstr "" +#: ../../c-api/veryhigh.rst:229 msgid "" "This is a simplified interface to :c:func:`Py_CompileStringFlags` below, " "leaving *flags* set to ``NULL``." msgstr "" +#: ../../c-api/veryhigh.rst:235 msgid "" "This is a simplified interface to :c:func:`Py_CompileStringExFlags` below, " "with *optimize* set to ``-1``." msgstr "" +#: ../../c-api/veryhigh.rst:241 msgid "" "Parse and compile the Python source code in *str*, returning the resulting " "code object. The start symbol is given by *start*; this can be used to " -"constrain the code which can be compiled and should be :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." +"constrain the code which can be compiled and should be :ref:`available start " +"symbols `. The filename specified by *filename* is used to " +"construct the code object and may appear in tracebacks or :exc:`SyntaxError` " +"exception messages. This returns ``NULL`` if the code cannot be parsed or " +"compiled." msgstr "" +#: ../../c-api/veryhigh.rst:249 msgid "" "The integer *optimize* specifies the optimization level of the compiler; a " "value of ``-1`` selects the optimization level of the interpreter as given " @@ -249,17 +292,20 @@ msgid "" "or ``2`` (docstrings are removed too)." msgstr "" +#: ../../c-api/veryhigh.rst:260 msgid "" "Like :c:func:`Py_CompileStringObject`, but *filename* is a byte string " "decoded from the :term:`filesystem encoding and error handler`." msgstr "" +#: ../../c-api/veryhigh.rst:267 msgid "" "This is a simplified interface to :c:func:`PyEval_EvalCodeEx`, with just the " "code object, and global and local variables. The other arguments are set to " "``NULL``." msgstr "" +#: ../../c-api/veryhigh.rst:274 msgid "" "Evaluate a precompiled code object, given a particular environment for its " "evaluation. This environment consists of a dictionary of global variables, " @@ -268,11 +314,13 @@ msgid "" "only_parameter>` arguments and a closure tuple of cells." msgstr "" +#: ../../c-api/veryhigh.rst:283 msgid "" "Evaluate an execution frame. This is a simplified interface to :c:func:" "`PyEval_EvalFrameEx`, for backward compatibility." msgstr "" +#: ../../c-api/veryhigh.rst:289 msgid "" "This is the main, unvarnished function of Python interpretation. The code " "object associated with the execution frame *f* is executed, interpreting " @@ -282,33 +330,19 @@ msgid "" "of generator objects." msgstr "" +#: ../../c-api/veryhigh.rst:296 msgid "" "This function now includes a debug assertion to help ensure that it does not " "silently discard an active exception." msgstr "" +#: ../../c-api/veryhigh.rst:303 msgid "" "This function changes the flags of the current evaluation frame, and returns " "true on success, false on failure." msgstr "" -msgid "" -"The start symbol from the Python grammar for isolated expressions; for use " -"with :c:func:`Py_CompileString`." -msgstr "" - -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 "" - -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:309 msgid "" "This is the structure used to hold compiler flags. In cases where code is " "only being compiled, it is passed as ``int flags``, and in cases where code " @@ -316,36 +350,148 @@ msgid "" "case, ``from __future__ import`` can modify *flags*." msgstr "" +#: ../../c-api/veryhigh.rst:314 msgid "" "Whenever ``PyCompilerFlags *flags`` is ``NULL``, :c:member:`~PyCompilerFlags." "cf_flags` is treated as equal to ``0``, and any modification due to ``from " "__future__ import`` is discarded." msgstr "" +#: ../../c-api/veryhigh.rst:320 msgid "Compiler flags." msgstr "" +#: ../../c-api/veryhigh.rst:324 msgid "" "*cf_feature_version* is the minor Python version. It should be initialized " "to ``PY_MINOR_VERSION``." msgstr "" +#: ../../c-api/veryhigh.rst:327 msgid "" "The field is ignored by default, it is used if and only if ``PyCF_ONLY_AST`` " "flag is set in :c:member:`~PyCompilerFlags.cf_flags`." msgstr "" +#: ../../c-api/veryhigh.rst:330 msgid "Added *cf_feature_version* field." msgstr "" +#: ../../c-api/veryhigh.rst:333 msgid "The available compiler flags are accessible as macros:" msgstr "" +#: ../../c-api/veryhigh.rst:342 msgid "" "See :ref:`compiler flags ` in documentation of the :py:" "mod:`!ast` Python module, which exports these constants under the same names." msgstr "" +#: ../../c-api/veryhigh.rst:347 +msgid "Low-level flags" +msgstr "" + +#: ../../c-api/veryhigh.rst:348 +msgid "" +"The following flags and masks serve narrow needs of the standard library and " +"interactive interpreters. Code outside the standard library rarely has a " +"reason to use them. They are considered implementation details and may " +"change at any time." +msgstr "" + +#: ../../c-api/veryhigh.rst:355 +msgid "" +"This flag is a private interface between the compiler and the :mod:`codeop` " +"module. Do not use it; its behavior is unsupported and may change without " +"warning." +msgstr "" + +#: ../../c-api/veryhigh.rst:359 +msgid "" +"With this flag set, when compilation fails because the source text ends " +"where more input is expected, for example in the middle of an indented block " +"or an unterminated string literal, the error raised is the undocumented " +"``_IncompleteInputError``, a subclass of :exc:`SyntaxError`. The :mod:" +"`codeop` module sets this flag, together with :c:macro:" +"`PyCF_DONT_IMPLY_DEDENT`, to tell input that is incomplete apart from input " +"with a real syntax error, so that interactive interpreters know when to " +"prompt for another line instead of reporting an error." +msgstr "" + +#: ../../c-api/veryhigh.rst:373 +msgid "" +"By default, when compiling with the :c:var:`Py_single_input` start symbol, " +"reaching the end of the source text implicitly closes any open indented " +"blocks. With this flag set, open blocks are only closed if the last line of " +"the source ends with a newline; otherwise, compilation fails with a :exc:" +"`SyntaxError`:" +msgstr "" + +#: ../../c-api/veryhigh.rst:379 +msgid "" +"PyCompilerFlags flags = {\n" +" .cf_flags = 0,\n" +" .cf_feature_version = PY_MINOR_VERSION,\n" +"};\n" +"const char *source = \"if a:\\n pass\";\n" +"\n" +"/* The \"if\" block is closed implicitly;\n" +" this returns a code object: */\n" +"Py_CompileStringFlags(source, \"\", Py_single_input, &flags);\n" +"\n" +"/* With the flag, this fails with a SyntaxError,\n" +" because the last line does not end with a newline: */\n" +"flags.cf_flags = PyCF_DONT_IMPLY_DEDENT;\n" +"Py_CompileStringFlags(source, \"\", Py_single_input, &flags);" +msgstr "" + +#: ../../c-api/veryhigh.rst:396 +msgid "" +"The :mod:`codeop` module uses this flag to detect incomplete interactive " +"input. While the user is still typing inside an indented block, the source " +"does not yet end with a newline, so it fails to compile and the user is " +"prompted for another line." +msgstr "" + +#: ../../c-api/veryhigh.rst:403 +msgid "" +"Read the source text as UTF-8, ignoring its :pep:`263` encoding declaration " +"(\"coding cookie\"), if any:" +msgstr "" + +#: ../../c-api/veryhigh.rst:406 +msgid "" +"PyCompilerFlags flags = {\n" +" .cf_flags = 0,\n" +" .cf_feature_version = PY_MINOR_VERSION,\n" +"};\n" +"const char *source = \"# coding: latin-1\\ns = '\\xe9'\\n\";\n" +"\n" +"/* The coding cookie is honored: byte 0xE9 is decoded as\n" +" Latin-1, and this returns a code object that sets s to \"é\": */\n" +"Py_CompileStringFlags(source, \"\", Py_file_input, &flags);\n" +"\n" +"/* With the flag, the cookie is ignored and compilation fails\n" +" with a SyntaxError, because 0xE9 is not valid UTF-8: */\n" +"flags.cf_flags = PyCF_IGNORE_COOKIE;\n" +"Py_CompileStringFlags(source, \"\", Py_file_input, &flags);" +msgstr "" + +#: ../../c-api/veryhigh.rst:423 +msgid "" +"The :func:`compile`, :func:`eval` and :func:`exec` built-in functions set " +"this flag when the source is a :class:`str` object, because they pass the " +"text to the parser encoded as UTF-8." +msgstr "" + +#: ../../c-api/veryhigh.rst:429 +msgid "" +"Mark the source text as known to be UTF-8 encoded. The :func:`compile`, :" +"func:`eval` and :func:`exec` built-in functions set this flag, but it " +"currently has no effect." +msgstr "" + +#: ../../c-api/veryhigh.rst:433 msgid "" "The \"``PyCF``\" flags above can be combined with \"``CO_FUTURE``\" flags " "such as :c:macro:`CO_FUTURE_ANNOTATIONS` to enable features normally " @@ -353,5 +499,119 @@ msgid "" "`c_codeobject_flags` for a complete list." msgstr "" +#: ../../c-api/veryhigh.rst:438 +msgid "The following masks combine several flags:" +msgstr "" + +#: ../../c-api/veryhigh.rst:442 +msgid "" +"Bitmask of all ``CO_FUTURE`` flags (see :ref:`c_codeobject_flags`), which " +"select features normally enabled by :ref:`future statements `. When " +"code compiled with a ``PyCompilerFlags *flags`` argument contains a ``from " +"__future__ import`` statement, the flag for the imported feature is added to " +"*flags*, so that code executed later in the same context inherits it." +msgstr "" + +#: ../../c-api/veryhigh.rst:452 +msgid "" +"Do not use this mask in new code. It is kept only so that old code passing " +"its flags to :func:`compile` keeps working." +msgstr "" + +#: ../../c-api/veryhigh.rst:455 +msgid "" +"Bitmask of flags for obsolete future features that no longer have any effect." +msgstr "" + +#: ../../c-api/veryhigh.rst:460 +msgid "" +"Bitmask of all ``PyCF`` flags that change how the source is compiled, such " +"as :c:macro:`PyCF_ONLY_AST`. The :func:`compile` built-in function uses this " +"mask to validate its *flags* argument." +msgstr "" + +#: ../../c-api/veryhigh.rst:469 +msgid "Available start symbols" +msgstr "" + +#: ../../c-api/veryhigh.rst:476 +msgid "" +"The start symbol from the Python grammar for isolated expressions; for use " +"with :c:func:`Py_CompileString`." +msgstr "" + +#: ../../c-api/veryhigh.rst:484 +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:493 +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:502 +msgid "" +"The start symbol from the Python grammar for a function type; for use with :" +"c:func:`Py_CompileString`. This is used to parse \"signature type comments\" " +"from :pep:`484`." +msgstr "" + +#: ../../c-api/veryhigh.rst:506 +msgid "This requires the :c:macro:`PyCF_ONLY_AST` flag to be set." +msgstr "" + +#: ../../c-api/veryhigh.rst:509 +msgid ":py:class:`ast.FunctionType`" +msgstr "" + +#: ../../c-api/veryhigh.rst:510 +msgid ":pep:`484`" +msgstr "" + +#: ../../c-api/veryhigh.rst:516 +msgid "Stack Effects" +msgstr "" + +#: ../../c-api/veryhigh.rst:519 +msgid ":py:func:`dis.stack_effect`" +msgstr "" + +#: ../../c-api/veryhigh.rst:524 +msgid "Sentinel value representing an invalid stack effect." +msgstr "" + +#: ../../c-api/veryhigh.rst:526 +msgid "This is currently equivalent to ``INT_MAX``." +msgstr "" + +#: ../../c-api/veryhigh.rst:533 +msgid "Compute the stack effect of *opcode* with argument *oparg*." +msgstr "" + +#: ../../c-api/veryhigh.rst:535 ../../c-api/veryhigh.rst:549 +msgid "" +"On success, this function returns the stack effect; on failure, this " +"returns :c:macro:`PY_INVALID_STACK_EFFECT`." +msgstr "" + +#: ../../c-api/veryhigh.rst:543 +msgid "" +"Similar to :c:func:`PyCompile_OpcodeStackEffect`, but don't include the " +"stack effect of jumping if *jump* is zero." +msgstr "" + +#: ../../c-api/veryhigh.rst:546 +msgid "" +"If *jump* is ``0``, this will not include the stack effect of jumping, but " +"if *jump* is ``1`` or ``-1``, this will include it." +msgstr "" + +#: ../../c-api/veryhigh.rst:474 ../../c-api/veryhigh.rst:482 +#: ../../c-api/veryhigh.rst:491 ../../c-api/veryhigh.rst:500 msgid "Py_CompileString (C function)" msgstr "" diff --git a/c-api/weakref.po b/c-api/weakref.po index e1a1d2c..95f9ca6 100644 --- a/c-api/weakref.po +++ b/c-api/weakref.po @@ -8,18 +8,20 @@ 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: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\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 " @@ -27,20 +29,30 @@ msgid "" "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 or a subclass of the reference " +"type. This function always succeeds." +msgstr "" + +#: ../../c-api/weakref.rst:28 msgid "" -"Return non-zero if *ob* is a reference object. This function always " -"succeeds." +"Return non-zero if *ob* is a reference object, but not a subclass of the " +"reference type. This function always succeeds." msgstr "" +#: ../../c-api/weakref.rst:34 msgid "" "Return non-zero if *ob* is a proxy object. This function always succeeds." msgstr "" +#: ../../c-api/weakref.rst:39 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 " @@ -48,10 +60,17 @@ msgid "" "a callable object that receives notification when *ob* is garbage collected; " "it should accept a single parameter, which will be the weak reference object " "itself. *callback* may also be ``None`` or ``NULL``. If *ob* is not a " -"weakly referenceable object, or if *callback* is not callable, ``None``, or " -"``NULL``, this will return ``NULL`` and raise :exc:`TypeError`." +"weakly referenceable object, this will raise :exc:`TypeError` and return " +"``NULL``." +msgstr "" + +#: ../../c-api/weakref.rst:49 ../../c-api/weakref.rst:65 +msgid "" +":c:func:`PyType_SUPPORTS_WEAKREFS` for checking if *ob* is weakly " +"referenceable." msgstr "" +#: ../../c-api/weakref.rst:55 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 " @@ -59,31 +78,37 @@ msgid "" "can be a callable object that receives notification when *ob* is garbage " "collected; it should accept a single parameter, which will be the weak " "reference object itself. *callback* may also be ``None`` or ``NULL``. If " -"*ob* is not a weakly referenceable object, or if *callback* is not callable, " -"``None``, or ``NULL``, this will return ``NULL`` and raise :exc:`TypeError`." +"*ob* weakly referenceable object, this will raise :exc:`TypeError` and " +"return ``NULL``." msgstr "" +#: ../../c-api/weakref.rst:71 msgid "" "Get a :term:`strong reference` to the referenced object from a weak " "reference, *ref*, into *\\*pobj*." msgstr "" +#: ../../c-api/weakref.rst:74 msgid "" "On success, set *\\*pobj* to a new :term:`strong reference` to the " "referenced object and return 1." msgstr "" +#: ../../c-api/weakref.rst:76 msgid "If the reference is dead, set *\\*pobj* to ``NULL`` and return 0." msgstr "" +#: ../../c-api/weakref.rst:77 msgid "On error, raise an exception and return -1." msgstr "" +#: ../../c-api/weakref.rst:84 msgid "" "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:89 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 " @@ -91,32 +116,39 @@ msgid "" "reference." msgstr "" +#: ../../c-api/weakref.rst:94 ../../c-api/weakref.rst:102 msgid "Use :c:func:`PyWeakref_GetRef` instead." msgstr "" +#: ../../c-api/weakref.rst:100 msgid "Similar to :c:func:`PyWeakref_GetObject`, but does no error checking." msgstr "" +#: ../../c-api/weakref.rst:108 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:117 msgid "" "This function is called by the :c:member:`~PyTypeObject.tp_dealloc` handler " "to clear weak references." msgstr "" +#: ../../c-api/weakref.rst:120 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:127 msgid "Clears the weakrefs for *object* without calling the callbacks." msgstr "" +#: ../../c-api/weakref.rst:129 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 " @@ -125,6 +157,7 @@ msgid "" "clear any weakrefs that may have been created by the finalizer." msgstr "" +#: ../../c-api/weakref.rst:135 msgid "" "In most circumstances, it's more appropriate to use :c:func:" "`PyObject_ClearWeakRefs` to clear weakrefs instead of this function." diff --git a/cpython-src b/cpython-src new file mode 160000 index 0000000..e13e7cd --- /dev/null +++ b/cpython-src @@ -0,0 +1 @@ +Subproject commit e13e7cd40e6d5d8ec2ff3a8a7c3a7c38812a3d83 diff --git a/extending/index.po b/extending/index.po index 7aaf168..314fb90 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -34,24 +34,25 @@ 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." +"This document assumes basic knowledge about C and Python. For an informal " +"introduction to Python, see :ref:`tutorial-index`. :ref:`reference-index` " +"gives a more formal definition of the language. :ref:`builtins-index` " +"documents the built-in functions and object types, and :ref:`library-index` " +"documents the modules (both built-in and written in Python) that give the " +"language its wide application range." msgstr "" -#: ../../extending/index.rst:21 +#: ../../extending/index.rst:22 msgid "" "For a detailed description of the whole Python/C API, see the separate :ref:" "`c-api-index`." msgstr "" -#: ../../extending/index.rst:26 +#: ../../extending/index.rst:27 msgid "Recommended third party tools" msgstr "" -#: ../../extending/index.rst:28 +#: ../../extending/index.rst:29 msgid "" "This guide only covers the basic tools for creating extensions provided as " "part of this version of CPython. Some :ref:`third party tools ` " @@ -59,11 +60,11 @@ msgid "" "extensions for Python." msgstr "" -#: ../../extending/index.rst:35 +#: ../../extending/index.rst:36 msgid "Creating extensions without third party tools" msgstr "" -#: ../../extending/index.rst:37 +#: ../../extending/index.rst:38 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 " @@ -71,15 +72,15 @@ msgid "" "extensions." msgstr "" -#: ../../extending/index.rst:44 +#: ../../extending/index.rst:45 msgid ":pep:`489` -- Multi-phase extension module initialization" msgstr "" -#: ../../extending/index.rst:57 +#: ../../extending/index.rst:58 msgid "Embedding the CPython runtime in a larger application" msgstr "" -#: ../../extending/index.rst:59 +#: ../../extending/index.rst:60 msgid "" "Sometimes, rather than creating an extension that runs inside the Python " "interpreter as the main application, it is desirable to instead embed the " diff --git a/glossary.po b/glossary.po index a62a183..dbb9e0c 100644 --- a/glossary.po +++ b/glossary.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -1299,10 +1299,22 @@ msgstr "" "die mit der Anweisung :keyword:`type` erstellt wurden." #: ../../glossary.rst:507 +msgid "exhausted" +msgstr "" + +#: ../../glossary.rst:509 +msgid "" +"An :term:`iterator` that has produced all of its values is said to be :dfn:" +"`exhausted`. Further attempts to get the next value (for example, calls to :" +"func:`next`) raise :exc:`StopIteration` (or :exc:`StopAsyncIteration` in the " +"case of an :term:`asynchronous iterator`)." +msgstr "" + +#: ../../glossary.rst:515 msgid "expression" msgstr "Ausdruck" -#: ../../glossary.rst:509 +#: ../../glossary.rst:517 msgid "" "A piece of syntax which can be evaluated to some value. In other words, an " "expression is an accumulation of expression elements like literals, names, " @@ -1319,11 +1331,11 @@ msgstr "" "die nicht als Ausdrücke verwendet werden können, wie beispielsweise :keyword:" "`while`. Auch Zuweisungen sind Anweisungen und keine Ausdrücke." -#: ../../glossary.rst:516 +#: ../../glossary.rst:524 msgid "extension module" msgstr "Erweiterungsmodul" -#: ../../glossary.rst:518 +#: ../../glossary.rst:526 msgid "" "A module written in C or C++, using Python's C API to interact with the core " "and with user code." @@ -1331,15 +1343,15 @@ msgstr "" "Ein in C oder C++ geschriebenes Modul, das die C-API von Python nutzt, um " "mit dem Kern und dem Anwendercode zu interagieren." -#: ../../glossary.rst:520 +#: ../../glossary.rst:528 msgid "f-string" msgstr "f-String" -#: ../../glossary.rst:521 +#: ../../glossary.rst:529 msgid "f-strings" msgstr "f-Strings" -#: ../../glossary.rst:523 +#: ../../glossary.rst:531 msgid "" "String literals prefixed with ``f`` or ``F`` are commonly called \"f-" "strings\" which is short for :ref:`formatted string literals `. " @@ -1349,11 +1361,11 @@ msgstr "" "gemeinhin als \"f-Strings\" bezeichnet, was die Abkürzung für :ref:" "`formatierte Zeichenfolgenliterale ` ist. Siehe auch :pep:`498`." -#: ../../glossary.rst:526 +#: ../../glossary.rst:534 msgid "file object" msgstr "Dateiobjekt" -#: ../../glossary.rst:528 +#: ../../glossary.rst:536 msgid "" "An object exposing a file-oriented API (with methods such as :meth:`!read` " "or :meth:`!write`) to an underlying resource. Depending on the way it was " @@ -1370,7 +1382,7 @@ msgstr "" "Arbeitsspeicher, Sockets, Pipes usw.). Dateiobjekte werden auch als :dfn:" "`dateiähnliche Objekte` oder :dfn:`Streams` bezeichnet." -#: ../../glossary.rst:536 +#: ../../glossary.rst:544 msgid "" "There are actually three categories of file objects: raw :term:`binary files " "`, buffered :term:`binary files ` and :term:`text " @@ -1384,19 +1396,19 @@ msgstr "" "`io` definiert. Die übliche Vorgehensweise zum Erstellen eines Dateiobjekts " "ist die Verwendung der Funktion :func:`open` ." -#: ../../glossary.rst:541 +#: ../../glossary.rst:549 msgid "file-like object" msgstr "dateiähnliches Objekt" -#: ../../glossary.rst:543 +#: ../../glossary.rst:551 msgid "A synonym for :term:`file object`." msgstr "Ein Synonym für :term:`Dateiobjekt `." -#: ../../glossary.rst:544 +#: ../../glossary.rst:552 msgid "filesystem encoding and error handler" msgstr "Dateisystem-Kodierung und Fehlerbehandlung" -#: ../../glossary.rst:546 +#: ../../glossary.rst:554 msgid "" "Encoding and error handler used by Python to decode bytes from the operating " "system and encode Unicode to the operating system." @@ -1405,7 +1417,7 @@ msgstr "" "Bytes aus dem Betriebssystem und zum Kodieren von Unicode für das " "Betriebssystem." -#: ../../glossary.rst:549 +#: ../../glossary.rst:557 msgid "" "The filesystem encoding must guarantee to successfully decode all bytes " "below 128. If the file system encoding fails to provide this guarantee, API " @@ -1416,7 +1428,7 @@ msgstr "" "nicht bieten kann, können API-Funktionen die Ausnahme :exc:`UnicodeError` " "auslösen." -#: ../../glossary.rst:553 +#: ../../glossary.rst:561 msgid "" "The :func:`sys.getfilesystemencoding` and :func:`sys." "getfilesystemencodeerrors` functions can be used to get the filesystem " @@ -1426,7 +1438,7 @@ msgstr "" "getfilesystemencodeerrors` lassen sich die Kodierung des Dateisystems und " "der Fehlerbehandler abrufen." -#: ../../glossary.rst:557 +#: ../../glossary.rst:565 msgid "" "The :term:`filesystem encoding and error handler` are configured at Python " "startup by the :c:func:`PyConfig_Read` function: see :c:member:`~PyConfig." @@ -1439,16 +1451,16 @@ msgstr "" "filesystem_encoding` und :c:member:`~PyConfig.filesystem_errors`, die zu :c:" "type:`PyConfig` gehören." -#: ../../glossary.rst:562 +#: ../../glossary.rst:570 msgid "See also the :term:`locale encoding`." msgstr "" "Siehe auch den Begriff :term:`Lokalisierungskodierung `." -#: ../../glossary.rst:563 +#: ../../glossary.rst:571 msgid "finder" msgstr "Finder" -#: ../../glossary.rst:565 +#: ../../glossary.rst:573 msgid "" "An object that tries to find the :term:`loader` for a module that is being " "imported." @@ -1456,7 +1468,7 @@ msgstr "" "Ein Objekt, das versucht, den :term:`loader` für ein Modul zu finden, das " "gerade importiert wird." -#: ../../glossary.rst:568 +#: ../../glossary.rst:576 msgid "" "There are two types of finder: :term:`meta path finders ` " "for use with :data:`sys.meta_path`, and :term:`path entry finders ` zur Verwendung mit :data:`sys." "path_hooks`." -#: ../../glossary.rst:572 +#: ../../glossary.rst:580 msgid "" "See :ref:`finders-and-loaders` and :mod:`importlib` for much more detail." msgstr "" "Weitere Informationen finden Sie unter :ref:`finders-and-loaders` und :mod:" "`importlib`." -#: ../../glossary.rst:573 +#: ../../glossary.rst:581 msgid "floor division" msgstr "Etagenaufteilung" -#: ../../glossary.rst:575 +#: ../../glossary.rst:583 msgid "" "Mathematical division that rounds down to nearest integer. The floor " "division operator is ``//``. For example, the expression ``11 // 4`` " @@ -1493,11 +1505,11 @@ msgstr "" "``-3`` ist, da es sich dabei um ``-2.75`` handelt, das *nach unten* " "abgerundet wurde. Siehe :pep:`238`." -#: ../../glossary.rst:580 +#: ../../glossary.rst:588 msgid "free threading" msgstr "freies Einfädeln" -#: ../../glossary.rst:582 +#: ../../glossary.rst:590 msgid "" "A threading model where multiple threads can run Python bytecode " "simultaneously within the same interpreter. This is in contrast to the :" @@ -1509,11 +1521,11 @@ msgstr "" "zum :term:`global interpreter lock`, bei dem jeweils nur ein Thread Python-" "Bytecode ausführen kann. Siehe :pep:`703`." -#: ../../glossary.rst:586 +#: ../../glossary.rst:594 msgid "free-threaded build" msgstr "Build mit freien Threads" -#: ../../glossary.rst:589 +#: ../../glossary.rst:597 msgid "" "A build of :term:`CPython` that supports :term:`free threading`, configured " "using the :option:`--disable-gil` option before compilation." @@ -1522,15 +1534,15 @@ msgstr "" "threading>` unterstützt und vor der Kompilierung mit der Option :option:`--" "disable-gil` konfiguriert wurde." -#: ../../glossary.rst:592 +#: ../../glossary.rst:600 msgid "See :ref:`freethreading-python-howto`." msgstr "Siehe :ref:`freethreading-python-howto`." -#: ../../glossary.rst:593 +#: ../../glossary.rst:601 msgid "free variable" msgstr "freie Variable" -#: ../../glossary.rst:595 +#: ../../glossary.rst:603 msgid "" "Formally, as defined in the :ref:`language execution model `, a " "free variable is any variable used in a namespace which is not a local " @@ -1547,11 +1559,11 @@ msgstr "" "`codeobject.co_freevars` manchmal auch als Synonym für :term:`Closure-" "Variable ` verwendet." -#: ../../glossary.rst:600 +#: ../../glossary.rst:608 msgid "function" msgstr "Funktion" -#: ../../glossary.rst:602 +#: ../../glossary.rst:610 msgid "" "A series of statements which returns some value to a caller. It can also be " "passed zero or more :term:`arguments ` which may be used in the " @@ -1564,17 +1576,17 @@ msgstr "" "`Parameter `, :term:`Methode ` sowie den Abschnitt :ref:" "`function` ." -#: ../../glossary.rst:606 +#: ../../glossary.rst:614 msgid "function annotation" msgstr "Funktionsanmerkung" -#: ../../glossary.rst:608 +#: ../../glossary.rst:616 msgid "An :term:`annotation` of a function parameter or return value." msgstr "" "Eine :term:`Annotation ` eines Funktionsparameters oder eines " "Rückgabewerts." -#: ../../glossary.rst:610 +#: ../../glossary.rst:618 msgid "" "Function annotations are usually used for :term:`type hints `: " "for example, this function is expected to take two :class:`int` arguments " @@ -1585,7 +1597,7 @@ msgstr "" "class:`int` Argumente entgegennimmt und zudem einen :class:`int` " "Rückgabewert hat::" -#: ../../glossary.rst:615 +#: ../../glossary.rst:623 msgid "" "def sum_two_numbers(a: int, b: int) -> int:\n" " return a + b" @@ -1593,13 +1605,13 @@ msgstr "" "def sum_two_numbers(a: int, b: int) -> int:\n" " return a + b" -#: ../../glossary.rst:618 +#: ../../glossary.rst:626 msgid "Function annotation syntax is explained in section :ref:`function`." msgstr "" "Die Syntax für Funktionsannotationen wird im Abschnitt :ref:`function` " "erläutert." -#: ../../glossary.rst:620 +#: ../../glossary.rst:628 msgid "" "See :term:`variable annotation` and :pep:`484`, which describe this " "functionality. Also see :ref:`annotations-howto` for best practices on " @@ -1609,11 +1621,11 @@ msgstr "" "diese Funktionalität beschrieben wird. Siehe außerdem :ref:`annotations-" "howto` für bewährte Vorgehensweisen beim Umgang mit Annotationen." -#: ../../glossary.rst:624 +#: ../../glossary.rst:632 msgid "__future__" msgstr "__Zukunft__" -#: ../../glossary.rst:626 +#: ../../glossary.rst:634 msgid "" "A :ref:`future statement `, ``from __future__ import ``, " "directs the compiler to compile the current module using syntax or semantics " @@ -1632,7 +1644,7 @@ msgstr "" "Sprache aufgenommen wurde und wann sie zur Standardeinstellung wird (oder " "wurde):" -#: ../../glossary.rst:634 +#: ../../glossary.rst:642 msgid "" ">>> import __future__\n" ">>> __future__.division\n" @@ -1642,11 +1654,11 @@ msgstr "" ">>> __future__.division\n" "_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)" -#: ../../glossary.rst:637 +#: ../../glossary.rst:645 msgid "garbage collection" msgstr "Garbage Collection" -#: ../../glossary.rst:639 +#: ../../glossary.rst:647 msgid "" "The process of freeing memory when it is not used anymore. Python performs " "garbage collection via reference counting and a cyclic garbage collector " @@ -1659,11 +1671,11 @@ msgstr "" "auflösen kann. Der Garbage Collector lässt sich über das Modul :mod:`gc` " "steuern." -#: ../../glossary.rst:644 ../../glossary.rst:645 +#: ../../glossary.rst:652 ../../glossary.rst:653 msgid "generator" msgstr "Generator" -#: ../../glossary.rst:647 +#: ../../glossary.rst:655 msgid "" "Informally used to mean either a :term:`generator function` or a :term:" "`generator iterator`, depending on context. The formal terms :term:" @@ -1677,11 +1689,11 @@ msgstr "" "` sind in der Praxis selten; der Begriff \"Generator\" " "allein reicht fast immer aus." -#: ../../glossary.rst:652 ../../glossary.rst:653 +#: ../../glossary.rst:660 ../../glossary.rst:661 msgid "generator function" msgstr "Generatorfunktion" -#: ../../glossary.rst:655 +#: ../../glossary.rst:663 msgid "" "A function which returns a :term:`generator` object. It looks like a normal " "function except that it contains :keyword:`yield` expressions for producing " @@ -1694,11 +1706,11 @@ msgstr "" "`for`\\-Schleife verwendet oder mit der Funktion :func:`next` einzeln " "abgerufen werden können. Siehe :ref:`yieldexpr`." -#: ../../glossary.rst:660 +#: ../../glossary.rst:668 msgid "generator iterator" msgstr "Generator-Iterator" -#: ../../glossary.rst:662 +#: ../../glossary.rst:670 msgid "" "An object created by a :term:`generator function` or a :term:`generator " "expression`." @@ -1706,7 +1718,7 @@ msgstr "" "Ein Objekt, das durch eine :term:`Generatorfunktion ` " "oder einen :term:`Generatorausdruck ` erstellt wurde." -#: ../../glossary.rst:665 +#: ../../glossary.rst:673 msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "execution state (including local variables and pending try-statements). When " @@ -1719,7 +1731,7 @@ msgstr "" "wird, setzt er dort fort, wo er aufgehört hat (im Gegensatz zu Funktionen, " "die bei jedem Aufruf von vorne beginnen)." -#: ../../glossary.rst:670 +#: ../../glossary.rst:678 msgid "" "Generator iterators also implement the :meth:`~generator.send` method to " "send a value into the suspended generator, and the :meth:`~generator.throw` " @@ -1731,11 +1743,11 @@ msgstr "" "Methode :meth:`~generator.throw` , um an der Stelle, an der der Generator " "angehalten wurde, eine Ausnahme auszulösen. Siehe :ref:`generator-methods`." -#: ../../glossary.rst:675 ../../glossary.rst:676 +#: ../../glossary.rst:683 ../../glossary.rst:684 msgid "generator expression" msgstr "Generatorausdruck" -#: ../../glossary.rst:678 +#: ../../glossary.rst:686 msgid "" "An :term:`expression` that returns an :term:`iterator`. It looks like a " "normal expression followed by a :keyword:`!for` clause defining a loop " @@ -1748,7 +1760,7 @@ msgstr "" "definiert, sowie einer optionalen :keyword:`!if` -Klausel. Der kombinierte " "Ausdruck generiert Werte für eine umschließende Funktion::" -#: ../../glossary.rst:683 +#: ../../glossary.rst:691 msgid "" ">>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81\n" "285" @@ -1757,11 +1769,11 @@ msgstr "" "4, ..., 81\n" "285" -#: ../../glossary.rst:685 +#: ../../glossary.rst:693 msgid "generic function" msgstr "generische Funktion" -#: ../../glossary.rst:687 +#: ../../glossary.rst:695 msgid "" "A function composed of multiple functions implementing the same operation " "for different types. Which implementation should be used during a call is " @@ -1772,7 +1784,7 @@ msgstr "" "einem Aufruf verwendet werden soll, wird durch den Dispatch-Algorithmus " "bestimmt." -#: ../../glossary.rst:691 +#: ../../glossary.rst:699 msgid "" "See also the :term:`single dispatch` glossary entry, the :deco:`functools." "singledispatch` decorator, and :pep:`443`." @@ -1780,11 +1792,11 @@ msgstr "" "Siehe auch den Glossareintrag :term:`single dispatch`, den Dekorator :deco:" "`functools.singledispatch` sowie :pep:`443`." -#: ../../glossary.rst:693 +#: ../../glossary.rst:701 msgid "generic type" msgstr "generischer Typ" -#: ../../glossary.rst:695 +#: ../../glossary.rst:703 msgid "" "A :term:`type` that can be parameterized; typically a :ref:`container " "class` such as :class:`list` or :class:`dict`. Used for :" @@ -1795,7 +1807,7 @@ msgstr "" "class:`dict`. Wird für :term:`Typ-Hinweise ` und :term:" "`Annotationen ` verwendet." -#: ../../glossary.rst:700 +#: ../../glossary.rst:708 msgid "" "For more details, see :ref:`generic alias types`, :pep:" "`483`, :pep:`484`, :pep:`585`, and the :mod:`typing` module." @@ -1804,19 +1816,19 @@ msgstr "" "genericalias>`, :pep:`483`, :pep:`484`, :pep:`585` sowie im Modul :mod:" "`typing` ." -#: ../../glossary.rst:702 +#: ../../glossary.rst:710 msgid "GIL" msgstr "GIL" -#: ../../glossary.rst:704 +#: ../../glossary.rst:712 msgid "See :term:`global interpreter lock`." msgstr "Siehe :term:`Global Interpreter Lock `." -#: ../../glossary.rst:705 +#: ../../glossary.rst:713 msgid "global interpreter lock" msgstr "Global Interpreter Lock" -#: ../../glossary.rst:707 +#: ../../glossary.rst:715 msgid "" "The mechanism used by the :term:`CPython` interpreter to assure that only " "one thread executes Python :term:`bytecode` at a time. This simplifies the " @@ -1835,7 +1847,7 @@ msgstr "" "Interpreters, geht jedoch zu Lasten eines Großteils der Parallelität, die " "Multiprozessor-Rechner bieten." -#: ../../glossary.rst:716 +#: ../../glossary.rst:724 msgid "" "However, some extension modules, either standard or third-party, are " "designed so as to release the GIL when doing computationally intensive tasks " @@ -1847,7 +1859,7 @@ msgstr "" "rechenintensiven Aufgaben wie Komprimierung oder Hashing freigeben. Außerdem " "wird das GIL bei E/A-Vorgängen stets freigegeben." -#: ../../glossary.rst:721 +#: ../../glossary.rst:729 msgid "" "As of Python 3.13, the GIL can be disabled using the :option:`--disable-gil` " "build configuration. After building Python with this option, code must be " @@ -1864,7 +1876,7 @@ msgstr "" "Leistung für Multithread-Anwendungen und erleichtert die effiziente Nutzung " "von Multi-Core-CPUs. Weitere Details finden Sie unter :pep:`703`." -#: ../../glossary.rst:728 +#: ../../glossary.rst:736 msgid "" "In prior versions of Python's C API, a function might declare that it " "requires the GIL to be held in order to use it. This refers to having an :" @@ -1874,11 +1886,11 @@ msgstr "" "dass für ihre Verwendung das GIL gesperrt sein muss. Dies bezieht sich auf " "einen :term:`angeschlossenen Thread-Zustand `." -#: ../../glossary.rst:731 +#: ../../glossary.rst:739 msgid "global state" msgstr "globaler Zustand" -#: ../../glossary.rst:733 +#: ../../glossary.rst:741 msgid "" "Data that is accessible throughout a program, such as module-level " "variables, class variables, or C static variables in :term:`extension " @@ -1893,11 +1905,11 @@ msgstr "" "in der Regel eine Synchronisation, um :term:`Wettlaufbedingungen ` und :term:`Datenwettläufe ` zu vermeiden." -#: ../../glossary.rst:739 +#: ../../glossary.rst:747 msgid "hash-based pyc" msgstr "Hash-basierte PYC-Datei" -#: ../../glossary.rst:741 +#: ../../glossary.rst:749 msgid "" "A bytecode cache file that uses the hash rather than the last-modified time " "of the corresponding source file to determine its validity. See :ref:`pyc-" @@ -1907,11 +1919,11 @@ msgstr "" "Wert anstelle des Zeitstempels der letzten Änderung der entsprechenden " "Quelldatei heranzieht. Siehe :ref:`pyc-invalidation`." -#: ../../glossary.rst:744 +#: ../../glossary.rst:752 msgid "hashable" msgstr "hashbar" -#: ../../glossary.rst:746 +#: ../../glossary.rst:754 msgid "" "An object is *hashable* if it has a hash value which never changes during " "its lifetime (it needs a :meth:`~object.__hash__` method), and can be " @@ -1924,7 +1936,7 @@ msgstr "" "benötigt eine :meth:`~object.__eq__`-Methode). Hashbare Objekte, die als " "gleich verglichen werden, müssen denselben Hash-Wert haben." -#: ../../glossary.rst:752 +#: ../../glossary.rst:760 msgid "" "Hashability makes an object usable as a dictionary key and a set member, " "because these data structures use the hash value internally." @@ -1933,7 +1945,7 @@ msgstr "" "als Element in einer Menge verwendet werden, da diese Datenstrukturen intern " "den Hashwert nutzen." -#: ../../glossary.rst:755 +#: ../../glossary.rst:763 msgid "" "Most of Python's immutable built-in objects are hashable; mutable containers " "(such as lists or dictionaries) are not; immutable containers (such as " @@ -1949,11 +1961,11 @@ msgstr "" "Klassen sind, sind standardmäßig hashbar. Sie sind alle ungleich (außer mit " "sich selbst), und ihr Hash-Wert wird aus ihrem :func:`id` abgeleitet." -#: ../../glossary.rst:762 +#: ../../glossary.rst:770 msgid "IDLE" msgstr "LEERLAUF" -#: ../../glossary.rst:764 +#: ../../glossary.rst:772 msgid "" "An Integrated Development and Learning Environment for Python. :ref:`idle` " "is a basic editor and interpreter environment which ships with the standard " @@ -1963,11 +1975,11 @@ msgstr "" "ist eine einfache Editor- und Interpreter-Umgebung, die im Lieferumfang der " "Standarddistribution von Python enthalten ist." -#: ../../glossary.rst:767 +#: ../../glossary.rst:775 msgid "immortal" msgstr "unsterblich" -#: ../../glossary.rst:769 +#: ../../glossary.rst:777 msgid "" "*Immortal objects* are a CPython implementation detail introduced in :pep:" "`683`." @@ -1975,7 +1987,7 @@ msgstr "" "*Unsterbliche Objekte* sind ein Implementierungsdetail von CPython, das in :" "pep:`683` eingeführt wurde." -#: ../../glossary.rst:772 +#: ../../glossary.rst:780 msgid "" "If an object is immortal, its :term:`reference count` is never modified, and " "therefore it is never deallocated while the interpreter is running. For " @@ -1986,7 +1998,7 @@ msgstr "" "niemals freigegeben wird. Beispielsweise sind :const:`True` und :const:" "`None` in CPython unsterblich." -#: ../../glossary.rst:776 +#: ../../glossary.rst:784 msgid "" "Immortal objects can be identified via :func:`sys._is_immortal`, or via :c:" "func:`PyUnstable_IsImmortal` in the C API." @@ -1994,11 +2006,11 @@ msgstr "" "Unsterbliche Objekte können über :func:`sys._is_immortal` oder über :c:" "func:`PyUnstable_IsImmortal` in der C-API identifiziert werden." -#: ../../glossary.rst:778 +#: ../../glossary.rst:786 msgid "immutable" msgstr "unveränderlich" -#: ../../glossary.rst:780 +#: ../../glossary.rst:788 msgid "" "An object with a fixed value. Immutable objects include numbers, strings " "and tuples. Such an object cannot be altered. A new object has to be " @@ -2018,11 +2030,11 @@ msgstr "" "Bedenken hinsichtlich unsachgemäß synchronisierter :term:`gleichzeitiger " "Änderungen ` entfallen." -#: ../../glossary.rst:787 +#: ../../glossary.rst:795 msgid "import path" msgstr "Importpfad" -#: ../../glossary.rst:789 +#: ../../glossary.rst:797 msgid "" "A list of locations (or :term:`path entries `) that are searched " "by the :term:`path based finder` for modules to import. During import, this " @@ -2035,11 +2047,11 @@ msgstr "" "in der Regel aus :data:`sys.path`, bei Unterpaketen kann sie jedoch auch aus " "dem Attribut ``__path__`` des übergeordneten Pakets stammen." -#: ../../glossary.rst:794 +#: ../../glossary.rst:802 msgid "importing" msgstr "Importieren" -#: ../../glossary.rst:796 +#: ../../glossary.rst:804 msgid "" "The process by which Python code in one module is made available to Python " "code in another module." @@ -2047,11 +2059,11 @@ msgstr "" "Der Vorgang, durch den Python-Code in einem Modul für Python-Code in einem " "anderen Modul verfügbar gemacht wird." -#: ../../glossary.rst:798 +#: ../../glossary.rst:806 msgid "importer" msgstr "Importeur" -#: ../../glossary.rst:800 +#: ../../glossary.rst:808 msgid "" "An object that both finds and loads a module; both a :term:`finder` and :" "term:`loader` object." @@ -2059,11 +2071,11 @@ msgstr "" "Ein Objekt, das sowohl ein Modul findet als auch lädt; es ist sowohl ein :" "term:`Finder `- als auch ein :term:`Loader `-Objekt." -#: ../../glossary.rst:802 +#: ../../glossary.rst:810 msgid "index" msgstr "Inhaltsverzeichnis" -#: ../../glossary.rst:804 +#: ../../glossary.rst:812 msgid "" "A numeric value that represents the position of an element in a :term:" "`sequence`." @@ -2071,7 +2083,7 @@ msgstr "" "Ein numerischer Wert, der die Position eines Elements in einer :term:" "`Sequenz ` angibt." -#: ../../glossary.rst:807 +#: ../../glossary.rst:815 msgid "" "In Python, indexing starts at zero. For example, ``things[0]`` names the " "*first* element of ``things``; ``things[1]`` names the second one." @@ -2080,7 +2092,7 @@ msgstr "" "``things[0]`` das *erste* Element von ``things`` ; ``things[1]`` " "bezeichnet das zweite Element." -#: ../../glossary.rst:811 +#: ../../glossary.rst:819 msgid "" "In some contexts, Python allows negative indexes for counting from the end " "of a sequence, and indexing using :term:`slices `." @@ -2089,15 +2101,15 @@ msgstr "" "Sequenz aus zu zählen, sowie die Indizierung mithilfe von :term:`Slices " "`." -#: ../../glossary.rst:814 +#: ../../glossary.rst:822 msgid "See also :term:`subscript`." msgstr "Siehe auch :term:`Index `." -#: ../../glossary.rst:815 +#: ../../glossary.rst:823 msgid "interactive" msgstr "interaktiv" -#: ../../glossary.rst:817 +#: ../../glossary.rst:825 msgid "" "Python has an interactive interpreter which means you can enter statements " "and expressions at the interpreter prompt, immediately execute them and see " @@ -2115,11 +2127,11 @@ msgstr "" "``help(x)``). Weitere Informationen zum interaktiven Modus finden Sie unter :" "ref:`tut-interac`." -#: ../../glossary.rst:824 +#: ../../glossary.rst:832 msgid "interpreted" msgstr "interpretiert" -#: ../../glossary.rst:826 +#: ../../glossary.rst:834 msgid "" "Python is an interpreted language, as opposed to a compiled one, though the " "distinction can be blurry because of the presence of the bytecode compiler. " @@ -2137,11 +2149,11 @@ msgstr "" "Sprachen, allerdings laufen ihre Programme im Allgemeinen auch langsamer. " "Siehe auch :term:`interaktiv `." -#: ../../glossary.rst:833 +#: ../../glossary.rst:841 msgid "interpreter shutdown" msgstr "Beenden des Interpreters" -#: ../../glossary.rst:835 +#: ../../glossary.rst:843 msgid "" "When asked to shut down, the Python interpreter enters a special phase where " "it gradually releases all allocated resources, such as modules and various " @@ -2163,7 +2175,7 @@ msgstr "" "funktionieren (häufige Beispiele sind Bibliotheksmodule oder die " "Warnmechanismen)." -#: ../../glossary.rst:844 +#: ../../glossary.rst:852 msgid "" "The main reason for interpreter shutdown is that the ``__main__`` module or " "the script being run has finished executing." @@ -2171,11 +2183,11 @@ msgstr "" "Der Hauptgrund für das Beenden des Interpreters ist, dass das Modul " "``__main__`` oder das ausgeführte Skript die Ausführung abgeschlossen hat." -#: ../../glossary.rst:846 +#: ../../glossary.rst:854 msgid "iterable" msgstr "iterierbar" -#: ../../glossary.rst:848 +#: ../../glossary.rst:856 msgid "" "An object capable of returning its members one at a time. Examples of " "iterables include all sequence types (such as :class:`list`, :class:`str`, " @@ -2192,7 +2204,7 @@ msgstr "" "__getitem__` -Methode definieren, die die :term:`sequence`-Semantik " "implementiert." -#: ../../glossary.rst:856 +#: ../../glossary.rst:864 msgid "" "Iterables can be used in a :keyword:`for` loop and in many other places " "where a sequence is needed (:func:`zip`, :func:`map`, ...). When an " @@ -2216,26 +2228,28 @@ msgstr "" "Dauer der Schleife enthält. Siehe auch :term:`iterator`, :term:`sequence` " "und :term:`generator`." -#: ../../glossary.rst:866 +#: ../../glossary.rst:874 msgid "iterator" msgstr "Iterator" -#: ../../glossary.rst:868 +#: ../../glossary.rst:876 +#, fuzzy msgid "" "An object representing a stream of data. Repeated calls to the iterator's :" "meth:`~iterator.__next__` method (or passing it to the built-in function :" "func:`next`) return successive items in the stream. When no more data are " "available a :exc:`StopIteration` exception is raised instead. At this " -"point, the iterator object is exhausted and any further calls to its :meth:`!" -"__next__` method just raise :exc:`StopIteration` again. Iterators are " -"required to have an :meth:`~iterator.__iter__` method that returns the " -"iterator object itself so every iterator is also iterable and may be used in " -"most places where other iterables are accepted. One notable exception is " -"code which attempts multiple iteration passes. A container object (such as " -"a :class:`list`) produces a fresh new iterator each time you pass it to the :" -"func:`iter` function or use it in a :keyword:`for` loop. Attempting this " -"with an iterator will just return the same exhausted iterator object used in " -"the previous iteration pass, making it appear like an empty container." +"point, the iterator object is :term:`exhausted` and any further calls to " +"its :meth:`!__next__` method just raise :exc:`StopIteration` again. " +"Iterators are required to have an :meth:`~iterator.__iter__` method that " +"returns the iterator object itself so every iterator is also iterable and " +"may be used in most places where other iterables are accepted. One notable " +"exception is code which attempts multiple iteration passes. A container " +"object (such as a :class:`list`) produces a fresh new iterator each time you " +"pass it to the :func:`iter` function or use it in a :keyword:`for` loop. " +"Attempting this with an iterator will just return the same exhausted " +"iterator object used in the previous iteration pass, making it appear like " +"an empty container." msgstr "" "Ein Objekt, das einen Datenstrom darstellt. Wiederholte Aufrufe der " "Methode :meth:`~iterator.__next__` des Iterators (oder die Übergabe an die " @@ -2256,11 +2270,11 @@ msgstr "" "das bereits im vorherigen Iterationsdurchlauf verwendet wurde, wodurch es so " "aussieht, als wäre der Container leer." -#: ../../glossary.rst:883 +#: ../../glossary.rst:891 msgid "More information can be found in :ref:`typeiter`." msgstr "Weitere Informationen finden Sie unter :ref:`typeiter`." -#: ../../glossary.rst:887 +#: ../../glossary.rst:895 msgid "" "CPython does not consistently apply the requirement that an iterator define :" "meth:`~iterator.__iter__`. And also please note that :term:`free-threaded " @@ -2272,11 +2286,11 @@ msgstr "" "term:`free-threaded ` CPython kein :term:`thread-safe` " "Verhalten von Iterator-Operationen garantiert." -#: ../../glossary.rst:892 +#: ../../glossary.rst:900 msgid "key" msgstr "Schlüssel" -#: ../../glossary.rst:894 +#: ../../glossary.rst:902 msgid "" "A value that identifies an entry in a :term:`mapping`. See also :term:" "`subscript`." @@ -2284,11 +2298,11 @@ msgstr "" "Ein Wert, der einen Eintrag in einem :term:`Mapping ` " "identifiziert. Siehe auch :term:`Index `." -#: ../../glossary.rst:896 +#: ../../glossary.rst:904 msgid "key function" msgstr "Schlüsselfunktion" -#: ../../glossary.rst:898 +#: ../../glossary.rst:906 msgid "" "A key function or collation function is a callable that returns a value used " "for sorting or ordering. For example, :func:`locale.strxfrm` is used to " @@ -2300,7 +2314,7 @@ msgstr "" "Sortierschlüssel zu erzeugen, der die lokalspezifischen Sortierkonventionen " "berücksichtigt." -#: ../../glossary.rst:903 +#: ../../glossary.rst:911 msgid "" "A number of tools in Python accept key functions to control how elements are " "ordered or grouped. They include :func:`min`, :func:`max`, :func:`sorted`, :" @@ -2313,7 +2327,7 @@ msgstr "" "sort` , :func:`heapq.merge` , :func:`heapq.nsmallest` , :func:`heapq." "nlargest` und :func:`itertools.groupby` ." -#: ../../glossary.rst:909 +#: ../../glossary.rst:917 msgid "" "There are several ways to create a key function. For example. the :meth:" "`str.casefold` method can serve as a key function for case insensitive " @@ -2333,19 +2347,19 @@ msgstr "" "Beispiele für die Erstellung und Verwendung von Schlüsselfunktionen finden " "Sie im :ref:`Sorting HOW TO `." -#: ../../glossary.rst:916 +#: ../../glossary.rst:924 msgid "keyword argument" msgstr "Schlüsselwortargument" -#: ../../glossary.rst:918 ../../glossary.rst:1305 +#: ../../glossary.rst:926 ../../glossary.rst:1313 msgid "See :term:`argument`." msgstr "Siehe :term:`Argument `." -#: ../../glossary.rst:919 +#: ../../glossary.rst:927 msgid "lambda" msgstr "Lambda" -#: ../../glossary.rst:921 +#: ../../glossary.rst:929 msgid "" "An anonymous inline function consisting of a single :term:`expression` which " "is evaluated when the function is called. The syntax to create a lambda " @@ -2356,11 +2370,11 @@ msgstr "" "Syntax zum Erstellen einer Lambda-Funktion lautet ``lambda [parameters]: " "expression``" -#: ../../glossary.rst:924 +#: ../../glossary.rst:932 msgid "LBYL" msgstr "LBYL" -#: ../../glossary.rst:926 +#: ../../glossary.rst:934 msgid "" "Look before you leap. This coding style explicitly tests for pre-conditions " "before making calls or lookups. This style contrasts with the :term:`EAFP` " @@ -2373,7 +2387,7 @@ msgstr "" "und zeichnet sich durch das häufige Vorkommen von :keyword:`if` -Anweisungen " "aus." -#: ../../glossary.rst:931 +#: ../../glossary.rst:939 msgid "" "In a multi-threaded environment, the LBYL approach can risk introducing a :" "term:`race condition` between \"the looking\" and \"the leaping\". For " @@ -2390,19 +2404,19 @@ msgstr "" "lässt sich mit :term:`Locks ` oder durch Verwendung des :term:`EAFP`-" "Ansatzes lösen. Siehe auch :term:`thread-safe`." -#: ../../glossary.rst:937 +#: ../../glossary.rst:945 msgid "lexical analyzer" msgstr "Lexikalischer Analysator" -#: ../../glossary.rst:940 +#: ../../glossary.rst:948 msgid "Formal name for the *tokenizer*; see :term:`token`." msgstr "Formale Bezeichnung für den *Tokenizer*; siehe :term:`token`." -#: ../../glossary.rst:941 +#: ../../glossary.rst:949 msgid "list" msgstr "Liste" -#: ../../glossary.rst:943 +#: ../../glossary.rst:951 msgid "" "A built-in Python :term:`sequence`. Despite its name it is more akin to an " "array in other languages than to a linked list since access to elements is " @@ -2412,11 +2426,11 @@ msgstr "" "eher einem Array in anderen Sprachen als einer verketteten Liste, da der " "Zugriff auf die Elemente *O*\\ (1) ist. See :ref:`time-complexity`." -#: ../../glossary.rst:946 +#: ../../glossary.rst:954 msgid "list comprehension" msgstr "Listenkomprimierung" -#: ../../glossary.rst:948 +#: ../../glossary.rst:956 msgid "" "A compact way to process all or part of the elements in a sequence and " "return a list with the results. ``result = ['{:#04x}'.format(x) for x in " @@ -2431,11 +2445,11 @@ msgstr "" "0 bis 255 enthalten. Die Klausel :keyword:`if` ist optional. Wird sie " "weggelassen, werden alle Elemente in ``range(256)`` verarbeitet." -#: ../../glossary.rst:954 +#: ../../glossary.rst:962 msgid "lock" msgstr "Schloss" -#: ../../glossary.rst:956 +#: ../../glossary.rst:964 msgid "" "A :term:`synchronization primitive` that allows only one thread at a time to " "access a shared resource. A thread must acquire a lock before accessing the " @@ -2464,11 +2478,11 @@ msgstr "" "Muster und thread-lokale Zustände. Siehe auch :term:`Deadlock ` " "und :term:`reentrant`." -#: ../../glossary.rst:967 +#: ../../glossary.rst:975 msgid "lock-free" msgstr "sperrfrei" -#: ../../glossary.rst:969 +#: ../../glossary.rst:977 msgid "" "An operation that does not acquire any :term:`lock` and uses atomic CPU " "instructions to ensure correctness. Lock-free operations can execute " @@ -2489,11 +2503,11 @@ msgstr "" "beobachten können, selbst wenn diese Änderungen die :term:`per-object lock` " "halten." -#: ../../glossary.rst:977 +#: ../../glossary.rst:985 msgid "loader" msgstr "Lader" -#: ../../glossary.rst:979 +#: ../../glossary.rst:987 msgid "" "An object that loads a module. It must define the :meth:`!exec_module` and :" "meth:`!create_module` methods to implement the :class:`~importlib.abc." @@ -2505,23 +2519,23 @@ msgstr "" "`~importlib.abc.Loader` zu implementieren. Ein Loader wird in der Regel von " "einem :term:`finder` zurückgegeben. Siehe auch:" -#: ../../glossary.rst:985 +#: ../../glossary.rst:993 msgid ":ref:`finders-and-loaders`" msgstr ":ref:`finders-and-loaders`" -#: ../../glossary.rst:986 +#: ../../glossary.rst:994 msgid ":class:`importlib.abc.Loader`" msgstr ":class:`importlib.abc.Loader`" -#: ../../glossary.rst:987 +#: ../../glossary.rst:995 msgid ":pep:`302`" msgstr ":pep:`302`" -#: ../../glossary.rst:988 +#: ../../glossary.rst:996 msgid "locale encoding" msgstr "Ländereinstellung, Kodierung" -#: ../../glossary.rst:990 +#: ../../glossary.rst:998 msgid "" "On Unix, it is the encoding of the LC_CTYPE locale. It can be set with :func:" "`locale.setlocale(locale.LC_CTYPE, new_locale) `." @@ -2530,43 +2544,43 @@ msgstr "" "mit :func:`locale.setlocale(locale.LC_CTYPE, new_locale) `` festgelegt werden." -#: ../../glossary.rst:993 +#: ../../glossary.rst:1001 msgid "On Windows, it is the ANSI code page (ex: ``\"cp1252\"``)." msgstr "Unter Windows ist dies die ANSI-Codepage (z. B.: ``\"cp1252\"``)." -#: ../../glossary.rst:995 +#: ../../glossary.rst:1003 msgid "" "On Android and VxWorks, Python uses ``\"utf-8\"`` as the locale encoding." msgstr "" "Unter Android und VxWorks verwendet Python ``\"utf-8\"`` als Locale-" "Kodierung." -#: ../../glossary.rst:997 +#: ../../glossary.rst:1005 msgid ":func:`locale.getencoding` can be used to get the locale encoding." msgstr "" ":func:`locale.getencoding` kann verwendet werden, um die Kodierung der " "Ländereinstellung abzurufen." -#: ../../glossary.rst:999 +#: ../../glossary.rst:1007 msgid "See also the :term:`filesystem encoding and error handler`." msgstr "" "Siehe auch den Eintrag :term:`Dateisystem-Kodierung und Fehlerbehandlung " "`." -#: ../../glossary.rst:1000 +#: ../../glossary.rst:1008 msgid "magic method" msgstr "magische Methode" -#: ../../glossary.rst:1004 +#: ../../glossary.rst:1012 msgid "An informal synonym for :term:`special method`." msgstr "" "Ein umgangssprachliches Synonym für :term:`Spezialmethode `." -#: ../../glossary.rst:1005 +#: ../../glossary.rst:1013 msgid "mapping" msgstr "Kartierung" -#: ../../glossary.rst:1007 +#: ../../glossary.rst:1015 msgid "" "A container object that supports arbitrary key lookups and implements the " "methods specified in the :class:`collections.abc.Mapping` or :class:" @@ -2582,11 +2596,11 @@ msgstr "" "sind :class:`dict`, :class:`collections.defaultdict`, :class:`collections." "OrderedDict` und :class:`collections.Counter`." -#: ../../glossary.rst:1013 +#: ../../glossary.rst:1021 msgid "meta path finder" msgstr "Meta-Pfadfinder" -#: ../../glossary.rst:1015 +#: ../../glossary.rst:1023 msgid "" "A :term:`finder` returned by a search of :data:`sys.meta_path`. Meta path " "finders are related to, but different from :term:`path entry finders `, unterscheiden sich jedoch von " "diesen." -#: ../../glossary.rst:1019 +#: ../../glossary.rst:1027 msgid "" "See :class:`importlib.abc.MetaPathFinder` for the methods that meta path " "finders implement." @@ -2605,11 +2619,11 @@ msgstr "" "Unter :class:`importlib.abc.MetaPathFinder` finden Sie die Methoden, die " "Meta-Path-Finder implementieren." -#: ../../glossary.rst:1021 +#: ../../glossary.rst:1029 msgid "metaclass" msgstr "Metaklasse" -#: ../../glossary.rst:1023 +#: ../../glossary.rst:1031 msgid "" "The class of a class. Class definitions create a class name, a class " "dictionary, and a list of base classes. The metaclass is responsible for " @@ -2633,15 +2647,15 @@ msgstr "" "Sicherheit, zur Verfolgung der Objekterstellung, zur Implementierung von " "Singletons und für viele andere Aufgaben eingesetzt." -#: ../../glossary.rst:1033 +#: ../../glossary.rst:1041 msgid "More information can be found in :ref:`metaclasses`." msgstr "Weitere Informationen finden Sie unter :ref:`metaclasses`." -#: ../../glossary.rst:1002 ../../glossary.rst:1034 ../../glossary.rst:1488 +#: ../../glossary.rst:1010 ../../glossary.rst:1042 ../../glossary.rst:1496 msgid "method" msgstr "Methode" -#: ../../glossary.rst:1036 +#: ../../glossary.rst:1044 msgid "" "A function which is defined inside a class body. If called as an attribute " "of an instance of that class, the method will get the instance object as its " @@ -2653,11 +2667,11 @@ msgstr "" "Instanzobjekt als erstes :term:`Argument ` (das üblicherweise als " "``self`` bezeichnet wird). Siehe :term:`function` und :term:`nested scope`." -#: ../../glossary.rst:1040 +#: ../../glossary.rst:1048 msgid "method resolution order" msgstr "Reihenfolge der Methodenauflösung" -#: ../../glossary.rst:1042 +#: ../../glossary.rst:1050 msgid "" "Method Resolution Order is the order in which base classes are searched for " "a member during lookup. See :ref:`python_2.3_mro` for details of the " @@ -2668,11 +2682,11 @@ msgstr "" "Informationen zu dem Algorithmus, der seit der Version 2.3 vom Python-" "Interpreter verwendet wird, finden Sie unter :ref:`python_2.3_mro`." -#: ../../glossary.rst:1045 +#: ../../glossary.rst:1053 msgid "module" msgstr "Modul" -#: ../../glossary.rst:1047 +#: ../../glossary.rst:1055 msgid "" "An object that serves as an organizational unit of Python code. Modules " "have a namespace containing arbitrary Python objects. Modules are loaded " @@ -2683,15 +2697,15 @@ msgstr "" "werden durch den Vorgang des :term:`Importierens ` in Python " "geladen." -#: ../../glossary.rst:1051 +#: ../../glossary.rst:1059 msgid "See also :term:`package`." msgstr "Siehe auch :term:`Paket `." -#: ../../glossary.rst:1052 +#: ../../glossary.rst:1060 msgid "module spec" msgstr "Modulspezifikation" -#: ../../glossary.rst:1054 +#: ../../glossary.rst:1062 msgid "" "A namespace containing the import-related information used to load a module. " "An instance of :class:`importlib.machinery.ModuleSpec`." @@ -2700,24 +2714,24 @@ msgstr "" "eines Moduls verwendet werden. Eine Instanz von :class:`importlib.machinery." "ModuleSpec`." -#: ../../glossary.rst:1057 +#: ../../glossary.rst:1065 msgid "See also :ref:`module-specs`." msgstr "Siehe auch :ref:`module-specs`." -#: ../../glossary.rst:1058 +#: ../../glossary.rst:1066 msgid "MRO" msgstr "MRO" -#: ../../glossary.rst:1060 +#: ../../glossary.rst:1068 msgid "See :term:`method resolution order`." msgstr "" "Siehe :term:`Reihenfolge der Methodenauflösung `." -#: ../../glossary.rst:1061 +#: ../../glossary.rst:1069 msgid "mutable" msgstr "veränderlich" -#: ../../glossary.rst:1063 +#: ../../glossary.rst:1071 msgid "" "An :term:`object` with state that is allowed to change during the course of " "the program. In multi-threaded programs, mutable objects that are shared " @@ -2732,11 +2746,11 @@ msgstr "" "Siehe auch :term:`unveränderlich `, :term:`thread-sicher ` und :term:`parallele Änderung `." -#: ../../glossary.rst:1068 +#: ../../glossary.rst:1076 msgid "named tuple" msgstr "benanntes Tupel" -#: ../../glossary.rst:1070 +#: ../../glossary.rst:1078 msgid "" "The term \"named tuple\" applies to any type or class that inherits from " "tuple and whose indexable elements are also accessible using named " @@ -2747,7 +2761,7 @@ msgstr "" "Attribute zugänglich sind. Der Typ oder die Klasse kann darüber hinaus noch " "weitere Merkmale aufweisen." -#: ../../glossary.rst:1074 +#: ../../glossary.rst:1082 msgid "" "Several built-in types are named tuples, including the values returned by :" "func:`time.localtime` and :func:`os.stat`. Another example is :data:`sys." @@ -2757,7 +2771,7 @@ msgstr "" "von :func:`time.localtime` und :func:`os.stat` zurückgegebenen Werte. Ein " "weiteres Beispiel ist :data:`sys.float_info`: ::" -#: ../../glossary.rst:1078 +#: ../../glossary.rst:1086 msgid "" ">>> sys.float_info[1] # indexed access\n" "1024\n" @@ -2773,7 +2787,7 @@ msgstr "" ">>> isinstance(sys.float_info, tuple) # Typ eines Tupels\n" "True" -#: ../../glossary.rst:1085 +#: ../../glossary.rst:1093 msgid "" "Some named tuples are built-in types (such as the above examples). " "Alternatively, a named tuple can be created from a regular class definition " @@ -2792,11 +2806,11 @@ msgstr "" "fügen zudem einige zusätzliche Methoden hinzu, die in manuell geschriebenen " "oder integrierten benannten Tupeln möglicherweise nicht vorhanden sind." -#: ../../glossary.rst:1093 +#: ../../glossary.rst:1101 msgid "namespace" msgstr "Namensraum" -#: ../../glossary.rst:1095 +#: ../../glossary.rst:1103 msgid "" "The place where a variable is stored. Namespaces are implemented as " "dictionaries. There are the local, global and built-in namespaces as well " @@ -2820,11 +2834,11 @@ msgstr "" "wird deutlich, dass diese Funktionen jeweils von den Modulen :mod:`random` " "und :mod:`itertools` implementiert werden." -#: ../../glossary.rst:1105 +#: ../../glossary.rst:1113 msgid "namespace package" msgstr "Namensraum-Paket" -#: ../../glossary.rst:1107 +#: ../../glossary.rst:1115 msgid "" "A :term:`package` which serves only as a container for subpackages. " "Namespace packages may have no physical representation, and specifically are " @@ -2835,7 +2849,7 @@ msgstr "" "Darstellung und unterscheiden sich insbesondere von einem :term:`normalen " "Paket `, da sie keine Datei ``__init__.py`` enthalten." -#: ../../glossary.rst:1112 +#: ../../glossary.rst:1120 msgid "" "Namespace packages allow several individually installable packages to have a " "common parent package. Otherwise, it is recommended to use a :term:`regular " @@ -2845,22 +2859,22 @@ msgstr "" "ein gemeinsames übergeordnetes Paket haben. Andernfalls wird empfohlen, ein :" "term:`normales Paket ` zu verwenden." -#: ../../glossary.rst:1115 +#: ../../glossary.rst:1123 msgid "" "For more information, see :pep:`420` and :ref:`reference-namespace-package`." msgstr "" "Weitere Informationen finden Sie unter :pep:`420` und :ref:`reference-" "namespace-package`." -#: ../../glossary.rst:1117 +#: ../../glossary.rst:1125 msgid "See also :term:`module`." msgstr "Siehe auch :term:`Modul `." -#: ../../glossary.rst:1118 +#: ../../glossary.rst:1126 msgid "native code" msgstr "Nativcode" -#: ../../glossary.rst:1120 +#: ../../glossary.rst:1128 msgid "" "Code that is compiled to machine instructions and runs directly on the " "processor, as opposed to code that is interpreted or runs in a virtual " @@ -2875,11 +2889,11 @@ msgstr "" "`Erweiterungsmodulen `, der von Python aus aufgerufen " "werden kann. Siehe auch :term:`Erweiterungsmodul `." -#: ../../glossary.rst:1125 +#: ../../glossary.rst:1133 msgid "nested scope" msgstr "verschachtelter Gültigkeitsbereich" -#: ../../glossary.rst:1127 +#: ../../glossary.rst:1135 msgid "" "The ability to refer to a variable in an enclosing definition. For " "instance, a function defined inside another function can refer to variables " @@ -2897,11 +2911,11 @@ msgstr "" "globale Variablen im globalen Namensraum. Die Anweisung :keyword:" "`nonlocal` ermöglicht das Schreiben in äußere Gültigkeitsbereiche." -#: ../../glossary.rst:1134 +#: ../../glossary.rst:1142 msgid "new-style class" msgstr "Klasse im neuen Stil" -#: ../../glossary.rst:1136 +#: ../../glossary.rst:1144 msgid "" "Old name for the flavor of classes now used for all class objects. In " "earlier Python versions, only new-style classes could use Python's newer, " @@ -2915,11 +2929,11 @@ msgstr "" "Eigenschaften, :meth:`~object.__getattribute__` , Klassenmethoden und " "statische Methoden." -#: ../../glossary.rst:1141 +#: ../../glossary.rst:1149 msgid "non-deterministic" msgstr "nicht deterministisch" -#: ../../glossary.rst:1143 +#: ../../glossary.rst:1151 msgid "" "Behavior where the outcome of a program can vary between executions with the " "same inputs. In multi-threaded programs, non-deterministic behavior often " @@ -2937,11 +2951,11 @@ msgstr "" "`Synchronisationsprimitiven ` trägt dazu bei, ein " "deterministisches Verhalten sicherzustellen." -#: ../../glossary.rst:1150 +#: ../../glossary.rst:1158 msgid "object" msgstr "Objekt" -#: ../../glossary.rst:1152 +#: ../../glossary.rst:1160 msgid "" "Any data with state (attributes or value) and defined behavior (methods). " "Also the ultimate base class of any :term:`new-style class`." @@ -2950,11 +2964,11 @@ msgstr "" "Verhalten (Methoden). Außerdem die oberste Basisklasse jeder :term:`Klasse " "neuen Stils `." -#: ../../glossary.rst:1155 +#: ../../glossary.rst:1163 msgid "optimized scope" msgstr "optimierter Umfang" -#: ../../glossary.rst:1157 +#: ../../glossary.rst:1165 msgid "" "A scope where target local variable names are reliably known to the compiler " "when the code is compiled, allowing optimization of read and write access to " @@ -2973,11 +2987,11 @@ msgstr "" "nur diejenigen, die auf einer bekannten Menge lokaler und nichtlokaler " "Variablennamen beruhen, sind auf optimierte Gültigkeitsbereiche beschränkt." -#: ../../glossary.rst:1164 +#: ../../glossary.rst:1172 msgid "optional module" msgstr "optionales Modul" -#: ../../glossary.rst:1166 +#: ../../glossary.rst:1174 msgid "" "An :term:`extension module` that is part of the :term:`standard library`, " "but may be absent in some builds of :term:`CPython`, usually due to missing " @@ -2990,7 +3004,7 @@ msgstr "" "Bibliotheken von Drittanbietern oder weil das Modul für eine bestimmte " "Plattform nicht verfügbar ist." -#: ../../glossary.rst:1171 +#: ../../glossary.rst:1179 msgid "" "See :ref:`optional-module-requirements` for a list of optional modules that " "require third-party libraries." @@ -2998,11 +3012,11 @@ msgstr "" "Eine Liste der optionalen Module, für die Bibliotheken von Drittanbietern " "erforderlich sind, finden Sie unter :ref:`optional-module-requirements`." -#: ../../glossary.rst:1173 +#: ../../glossary.rst:1181 msgid "package" msgstr "Paket" -#: ../../glossary.rst:1175 +#: ../../glossary.rst:1183 msgid "" "A Python :term:`module` which can contain submodules or recursively, " "subpackages. Technically, a package is a Python module with a ``__path__`` " @@ -3012,17 +3026,17 @@ msgstr "" "Unterpakete enthalten kann. Technisch gesehen ist ein Paket ein Python-Modul " "mit einem Attribut vom Typ ``__path__`` ." -#: ../../glossary.rst:1179 +#: ../../glossary.rst:1187 msgid "See also :term:`regular package` and :term:`namespace package`." msgstr "" "Siehe auch :term:`reguläres Paket ` und :term:`Namensraum-" "Paket `." -#: ../../glossary.rst:1180 +#: ../../glossary.rst:1188 msgid "parallelism" msgstr "Parallelität" -#: ../../glossary.rst:1182 +#: ../../glossary.rst:1190 msgid "" "Executing multiple operations at the same time (e.g. on multiple CPU " "cores). In Python builds with the :term:`global interpreter lock (GIL) " @@ -3041,11 +3055,11 @@ msgstr "" "threading>` Python können mehrere Python-Threads Python-Code gleichzeitig " "auf verschiedenen Kernen ausführen." -#: ../../glossary.rst:1190 +#: ../../glossary.rst:1198 msgid "parameter" msgstr "Parameter" -#: ../../glossary.rst:1192 +#: ../../glossary.rst:1200 msgid "" "A named entity in a :term:`function` (or method) definition that specifies " "an :term:`argument` (or in some cases, arguments) that the function can " @@ -3056,7 +3070,7 @@ msgstr "" "Fällen mehrere Argumente) angibt, das bzw. die die Funktion entgegennehmen " "kann. Es gibt fünf Arten von Parametern:" -#: ../../glossary.rst:1196 +#: ../../glossary.rst:1204 msgid "" ":dfn:`positional-or-keyword`: specifies an argument that can be passed " "either :term:`positionally ` or as a :term:`keyword argument " @@ -3068,11 +3082,11 @@ msgstr "" "` übergeben werden kann. Dies ist die Standardart von Parametern, " "zum Beispiel *foo* und *bar* im Folgenden::" -#: ../../glossary.rst:1201 +#: ../../glossary.rst:1209 msgid "def func(foo, bar=None): ..." msgstr "def func(foo, bar=None): ..." -#: ../../glossary.rst:1205 +#: ../../glossary.rst:1213 msgid "" ":dfn:`positional-only`: specifies an argument that can be supplied only by " "position. Positional-only parameters can be defined by including a ``/`` " @@ -3085,11 +3099,11 @@ msgstr "" "Parameterliste der Funktionsdefinition hinter ihnen das Zeichen ``/`` " "einfügt, zum Beispiel *posonly1* und *posonly2* im folgenden Beispiel::" -#: ../../glossary.rst:1210 +#: ../../glossary.rst:1218 msgid "def func(posonly1, posonly2, /, positional_or_keyword): ..." msgstr "def func(posonly1, posonly2, /, positional_or_keyword): ..." -#: ../../glossary.rst:1214 +#: ../../glossary.rst:1222 msgid "" ":dfn:`keyword-only`: specifies an argument that can be supplied only by " "keyword. Keyword-only parameters can be defined by including a single var-" @@ -3104,11 +3118,11 @@ msgstr "" "aufgenommen wird, zum Beispiel *kw_only1* und *kw_only2* im folgenden " "Beispiel::" -#: ../../glossary.rst:1220 +#: ../../glossary.rst:1228 msgid "def func(arg, *, kw_only1, kw_only2): ..." msgstr "def func(arg, *, kw_only1, kw_only2): ..." -#: ../../glossary.rst:1222 +#: ../../glossary.rst:1230 msgid "" ":dfn:`var-positional`: specifies that an arbitrary sequence of positional " "arguments can be provided (in addition to any positional arguments already " @@ -3122,11 +3136,11 @@ msgstr "" "Ein solcher Parameter kann definiert werden, indem dem Parameternamen " "``*`` vorangestellt wird, zum Beispiel *args* im folgenden Beispiel::" -#: ../../glossary.rst:1228 +#: ../../glossary.rst:1236 msgid "def func(*args, **kwargs): ..." msgstr "def func(*args, **kwargs): ..." -#: ../../glossary.rst:1230 +#: ../../glossary.rst:1238 msgid "" ":dfn:`var-keyword`: specifies that arbitrarily many keyword arguments can be " "provided (in addition to any keyword arguments already accepted by other " @@ -3139,7 +3153,7 @@ msgstr "" "kann definiert werden, indem dem Parameternamen ``**`` vorangestellt wird, " "beispielsweise *kwargs* im obigen Beispiel." -#: ../../glossary.rst:1236 +#: ../../glossary.rst:1244 msgid "" "Parameters can specify both optional and required arguments, as well as " "default values for some optional arguments." @@ -3147,7 +3161,7 @@ msgstr "" "Parameter können sowohl optionale als auch erforderliche Argumente sowie " "Standardwerte für einige optionale Argumente festlegen." -#: ../../glossary.rst:1239 +#: ../../glossary.rst:1247 msgid "" "See also the :term:`argument` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " @@ -3159,11 +3173,11 @@ msgstr "" "die Klasse :class:`inspect.Parameter`, den Abschnitt :ref:`function` und :" "pep:`362`." -#: ../../glossary.rst:1243 +#: ../../glossary.rst:1251 msgid "per-object lock" msgstr "Objektspezifische Sperre" -#: ../../glossary.rst:1245 +#: ../../glossary.rst:1253 msgid "" "A :term:`lock` associated with an individual object instance rather than a " "global lock shared across all objects. In :term:`free-threaded ` abfragt, um Module zum Importieren " "zu finden." -#: ../../glossary.rst:1257 +#: ../../glossary.rst:1265 msgid "path entry finder" msgstr "Pfadeintrags-Finder" -#: ../../glossary.rst:1259 +#: ../../glossary.rst:1267 msgid "" "A :term:`finder` returned by a callable on :data:`sys.path_hooks` (i.e. a :" "term:`path entry hook`) which knows how to locate modules given a :term:" @@ -3210,7 +3224,7 @@ msgstr "" "Funktion (d. h. einem :term:`path entry hook`) zurückgegeben wird, die weiß, " "wie man Module anhand eines :term:`path entry` findet." -#: ../../glossary.rst:1263 +#: ../../glossary.rst:1271 msgid "" "See :class:`importlib.abc.PathEntryFinder` for the methods that path entry " "finders implement." @@ -3218,11 +3232,11 @@ msgstr "" "Unter :class:`importlib.abc.PathEntryFinder` finden Sie die Methoden, die " "von Path-Entry-Findern implementiert werden." -#: ../../glossary.rst:1265 +#: ../../glossary.rst:1273 msgid "path entry hook" msgstr "Pfadeintrag-Hook" -#: ../../glossary.rst:1267 +#: ../../glossary.rst:1275 msgid "" "A callable on the :data:`sys.path_hooks` list which returns a :term:`path " "entry finder` if it knows how to find modules on a specific :term:`path " @@ -3233,11 +3247,11 @@ msgstr "" "wie Module auf einem bestimmten :term:`Pfadeintrag ` gefunden " "werden können." -#: ../../glossary.rst:1270 +#: ../../glossary.rst:1278 msgid "path based finder" msgstr "Pfadbasierter Sucher" -#: ../../glossary.rst:1272 +#: ../../glossary.rst:1280 msgid "" "One of the default :term:`meta path finders ` which " "searches an :term:`import path` for modules." @@ -3245,11 +3259,11 @@ msgstr "" "Einer der standardmäßigen :term:`Meta-Pfadfinder `, der " "einen :term:`Importpfad ` nach Modulen durchsucht." -#: ../../glossary.rst:1274 +#: ../../glossary.rst:1282 msgid "path-like object" msgstr "pfadähnliches Objekt" -#: ../../glossary.rst:1276 +#: ../../glossary.rst:1284 msgid "" "An object representing a file system path. A path-like object is either a :" "class:`str` or :class:`bytes` object representing a path, or an object " @@ -3270,11 +3284,11 @@ msgstr "" "ein :class:`str` - bzw. :class:`bytes` -Ergebnis gewährleisten. Eingeführt " "durch :pep:`519` ." -#: ../../glossary.rst:1284 +#: ../../glossary.rst:1292 msgid "PEP" msgstr "PEP" -#: ../../glossary.rst:1286 +#: ../../glossary.rst:1294 msgid "" "Python Enhancement Proposal. A PEP is a design document providing " "information to the Python community, or describing a new feature for Python " @@ -3287,7 +3301,7 @@ msgstr "" "technische Spezifikation sowie eine Begründung für die vorgeschlagenen " "Funktionen enthalten." -#: ../../glossary.rst:1292 +#: ../../glossary.rst:1300 msgid "" "PEPs are intended to be the primary mechanisms for proposing major new " "features, for collecting community input on an issue, and for documenting " @@ -3301,15 +3315,15 @@ msgstr "" "PEP-Autor ist dafür verantwortlich, einen Konsens innerhalb der Community " "herzustellen und abweichende Meinungen zu dokumentieren." -#: ../../glossary.rst:1298 +#: ../../glossary.rst:1306 msgid "See :pep:`1`." msgstr "Siehe :pep:`1`." -#: ../../glossary.rst:1299 +#: ../../glossary.rst:1307 msgid "portion" msgstr "Anteil" -#: ../../glossary.rst:1301 +#: ../../glossary.rst:1309 msgid "" "A set of files in a single directory (possibly stored in a zip file) that " "contribute to a namespace package, as defined in :pep:`420`." @@ -3318,15 +3332,15 @@ msgstr "" "in einer ZIP-Datei gespeichert sind), die zu einem Namespace-Paket " "beitragen, wie unter :pep:`420` definiert." -#: ../../glossary.rst:1303 +#: ../../glossary.rst:1311 msgid "positional argument" msgstr "Positionsargument" -#: ../../glossary.rst:1306 +#: ../../glossary.rst:1314 msgid "provisional API" msgstr "vorläufige API" -#: ../../glossary.rst:1308 +#: ../../glossary.rst:1316 msgid "" "A provisional API is one which has been deliberately excluded from the " "standard library's backwards compatibility guarantees. While major changes " @@ -3346,7 +3360,7 @@ msgstr "" "erfolgen nur, wenn schwerwiegende grundlegende Mängel aufgedeckt werden, die " "vor der Aufnahme der API übersehen wurden." -#: ../../glossary.rst:1317 +#: ../../glossary.rst:1325 msgid "" "Even for provisional APIs, backwards incompatible changes are seen as a " "\"solution of last resort\" - every attempt will still be made to find a " @@ -3356,7 +3370,7 @@ msgstr "" "\"letzter Ausweg\" – es wird weiterhin alles versucht, um für alle " "festgestellten Probleme eine rückwärtskompatible Lösung zu finden." -#: ../../glossary.rst:1321 +#: ../../glossary.rst:1329 msgid "" "This process allows the standard library to continue to evolve over time, " "without locking in problematic design errors for extended periods of time. " @@ -3367,19 +3381,19 @@ msgstr "" "über längere Zeiträume hinweg festgeschrieben werden. Weitere Einzelheiten " "finden Sie unter :pep:`411`." -#: ../../glossary.rst:1324 +#: ../../glossary.rst:1332 msgid "provisional package" msgstr "vorläufiges Paket" -#: ../../glossary.rst:1326 +#: ../../glossary.rst:1334 msgid "See :term:`provisional API`." msgstr "Siehe :term:`vorläufige API `." -#: ../../glossary.rst:1327 +#: ../../glossary.rst:1335 msgid "Python 3000" msgstr "Python 3000" -#: ../../glossary.rst:1329 +#: ../../glossary.rst:1337 msgid "" "Nickname for the Python 3.x release line (coined long ago when the release " "of version 3 was something in the distant future.) This is also abbreviated " @@ -3389,11 +3403,11 @@ msgstr "" "wurde, als die Veröffentlichung von Version 3 noch in ferner Zukunft lag). " "Er wird auch mit \"Py3k\" abgekürzt." -#: ../../glossary.rst:1332 +#: ../../glossary.rst:1340 msgid "Pythonic" msgstr "Pythonesk" -#: ../../glossary.rst:1334 +#: ../../glossary.rst:1342 msgid "" "An idea or piece of code which closely follows the most common idioms of the " "Python language, rather than implementing code using concepts common to " @@ -3411,7 +3425,7 @@ msgstr "" "eine solche Konstruktion, sodass Personen, die mit Python nicht vertraut " "sind, manchmal stattdessen einen numerischen Zähler verwenden::" -#: ../../glossary.rst:1341 +#: ../../glossary.rst:1349 msgid "" "for i in range(len(food)):\n" " print(food[i])" @@ -3419,11 +3433,11 @@ msgstr "" "for i in range(len(food)):\n" " print(food[i])" -#: ../../glossary.rst:1344 +#: ../../glossary.rst:1352 msgid "As opposed to the cleaner, Pythonic method::" msgstr "Im Gegensatz zu der übersichtlicheren, pythonesken Methode::" -#: ../../glossary.rst:1346 +#: ../../glossary.rst:1354 msgid "" "for piece in food:\n" " print(piece)" @@ -3431,11 +3445,11 @@ msgstr "" "für Stück in Essen:\n" " print(Stück)" -#: ../../glossary.rst:1348 +#: ../../glossary.rst:1356 msgid "qualified name" msgstr "qualifizierter Name" -#: ../../glossary.rst:1350 +#: ../../glossary.rst:1358 msgid "" "A dotted name showing the \"path\" from a module's global scope to a class, " "function or method defined in that module, as defined in :pep:`3155`. For " @@ -3447,7 +3461,7 @@ msgstr "" "angibt, wie in :pep:`3155` definiert. Bei Funktionen und Klassen der " "obersten Ebene entspricht der qualifizierte Name dem Namen des Objekts::" -#: ../../glossary.rst:1355 +#: ../../glossary.rst:1363 msgid "" ">>> class C:\n" "... class D:\n" @@ -3473,7 +3487,7 @@ msgstr "" ">>> C.D.meth.__qualname__\n" "'C.D.meth'" -#: ../../glossary.rst:1367 +#: ../../glossary.rst:1375 msgid "" "When used to refer to modules, the *fully qualified name* means the entire " "dotted path to the module, including any parent packages, e.g. ``email.mime." @@ -3483,7 +3497,7 @@ msgstr "" "durch Punkte getrennten Pfad zum Modul, einschließlich aller übergeordneten " "Pakete, z. B. ``email.mime.text``::" -#: ../../glossary.rst:1371 +#: ../../glossary.rst:1379 msgid "" ">>> import email.mime.text\n" ">>> email.mime.text.__name__\n" @@ -3493,11 +3507,11 @@ msgstr "" ">>> email.mime.text.__name__\n" "'email.mime.text'" -#: ../../glossary.rst:1374 +#: ../../glossary.rst:1382 msgid "race condition" msgstr "Race-Condition" -#: ../../glossary.rst:1376 +#: ../../glossary.rst:1384 msgid "" "A condition of a program where the behavior depends on the relative timing " "or ordering of events, particularly in multi-threaded programs. Race " @@ -3519,11 +3533,11 @@ msgstr "" "term:`Locks ` und anderen :term:`Synchronisationsprimitiven " "` hilft, Race Conditions zu vermeiden." -#: ../../glossary.rst:1386 +#: ../../glossary.rst:1394 msgid "reference count" msgstr "Referenzanzahl" -#: ../../glossary.rst:1388 +#: ../../glossary.rst:1396 msgid "" "The number of references to an object. When the reference count of an " "object drops to zero, it is deallocated. Some objects are :term:`immortal` " @@ -3542,7 +3556,7 @@ msgstr "" "können die Funktion :func:`sys.getrefcount` aufrufen, um die " "Referenzanzahl für ein bestimmtes Objekt abzurufen." -#: ../../glossary.rst:1397 +#: ../../glossary.rst:1405 msgid "" "In :term:`CPython`, reference counts are not considered to be stable or well-" "defined values; the number of references to an object, and how that number " @@ -3553,11 +3567,11 @@ msgstr "" "Weise, wie diese Anzahl durch Python-Code beeinflusst wird, kann je nach " "Version variieren." -#: ../../glossary.rst:1401 +#: ../../glossary.rst:1409 msgid "regular package" msgstr "Standardpaket" -#: ../../glossary.rst:1403 +#: ../../glossary.rst:1411 msgid "" "A traditional :term:`package`, such as a directory containing an ``__init__." "py`` file." @@ -3565,15 +3579,15 @@ msgstr "" "Ein herkömmliches :term:`Paket `, beispielsweise ein Verzeichnis, " "das eine Datei vom Typ ``__init__.py`` enthält." -#: ../../glossary.rst:1406 +#: ../../glossary.rst:1414 msgid "See also :term:`namespace package`." msgstr "Siehe auch: :term:`Namensraum-Paket `." -#: ../../glossary.rst:1407 +#: ../../glossary.rst:1415 msgid "reentrant" msgstr "wiederkehrend" -#: ../../glossary.rst:1409 +#: ../../glossary.rst:1417 msgid "" "A property of a function or :term:`lock` that allows it to be called or " "acquired multiple times by the same thread without causing errors or a :term:" @@ -3583,7 +3597,7 @@ msgstr "" "dass diese mehrfach vom selben Thread aufgerufen bzw. erworben wird, ohne " "dass dabei Fehler oder ein :term:`Deadlock ` auftreten." -#: ../../glossary.rst:1413 +#: ../../glossary.rst:1421 msgid "" "For functions, reentrancy means the function can be safely called again " "before a previous invocation has completed, which is important when " @@ -3598,7 +3612,7 @@ msgstr "" "deterministisch ` sein, wenn sie in einem Multithread-" "Programm reentrant aufgerufen werden." -#: ../../glossary.rst:1419 +#: ../../glossary.rst:1427 msgid "" "For locks, Python's :class:`threading.RLock` (reentrant lock) is reentrant, " "meaning a thread that already holds the lock can acquire it again without " @@ -3611,15 +3625,15 @@ msgstr "" "dazu ist :class:`threading.Lock` nicht reentrant – der Versuch, sie " "zweimal vom selben Thread aus zu erwerben, führt zu einem Deadlock." -#: ../../glossary.rst:1425 +#: ../../glossary.rst:1433 msgid "See also :term:`lock` and :term:`deadlock`." msgstr "Siehe auch :term:`lock` und :term:`deadlock`." -#: ../../glossary.rst:1426 +#: ../../glossary.rst:1434 msgid "REPL" msgstr "REPL" -#: ../../glossary.rst:1428 +#: ../../glossary.rst:1436 msgid "" "An acronym for the \"read–eval–print loop\", another name for the :term:" "`interactive` interpreter shell." @@ -3628,11 +3642,11 @@ msgstr "" "Schleife), eine andere Bezeichnung für die :term:`interaktive ` " "Interpreter-Shell." -#: ../../glossary.rst:1430 +#: ../../glossary.rst:1438 msgid "__slots__" msgstr "__slots__" -#: ../../glossary.rst:1432 +#: ../../glossary.rst:1440 msgid "" "A declaration inside a class that saves memory by pre-declaring space for " "instance attributes and eliminating instance dictionaries. Though popular, " @@ -3647,11 +3661,11 @@ msgstr "" "Fällen eingesetzt werden, in denen in einer speicherintensiven Anwendung " "eine große Anzahl von Instanzen vorliegt." -#: ../../glossary.rst:1437 +#: ../../glossary.rst:1445 msgid "sequence" msgstr "Sequenz" -#: ../../glossary.rst:1439 +#: ../../glossary.rst:1447 msgid "" "An :term:`iterable` which supports efficient element access using integer " "indices via the :meth:`~object.__getitem__` special method and defines a :" @@ -3672,7 +3686,7 @@ msgstr "" "die Suchvorgänge beliebige :term:`hashable`-Schlüssel anstelle von " "Ganzzahlen verwenden." -#: ../../glossary.rst:1448 +#: ../../glossary.rst:1456 msgid "" "The :class:`collections.abc.Sequence` abstract base class defines a much " "richer interface that goes beyond just :meth:`~object.__getitem__` and :meth:" @@ -3692,11 +3706,11 @@ msgstr "" "Sequenzmethoden im Allgemeinen finden Sie unter :ref:`Common Sequence " "Operations `." -#: ../../glossary.rst:1458 +#: ../../glossary.rst:1466 msgid "set comprehension" msgstr "Mengenkomprimierung" -#: ../../glossary.rst:1460 +#: ../../glossary.rst:1468 msgid "" "A compact way to process all or part of the elements in an iterable and " "return a set with the results. ``results = {c for c in 'abracadabra' if c " @@ -3709,11 +3723,11 @@ msgstr "" "erzeugt die Menge der Zeichenfolgen ``{'r', 'd'}``. Siehe :ref:" "`comprehensions`." -#: ../../glossary.rst:1464 +#: ../../glossary.rst:1472 msgid "single dispatch" msgstr "Einzelversand" -#: ../../glossary.rst:1466 +#: ../../glossary.rst:1474 msgid "" "A form of :term:`generic function` dispatch where the implementation is " "chosen based on the type of a single argument." @@ -3722,11 +3736,11 @@ msgstr "" "der die Implementierung anhand des Typs eines einzelnen Arguments ausgewählt " "wird." -#: ../../glossary.rst:1468 +#: ../../glossary.rst:1476 msgid "slice" msgstr "Scheibe" -#: ../../glossary.rst:1470 +#: ../../glossary.rst:1478 msgid "" "An object of type :class:`slice`, used to describe a portion of a :term:" "`sequence`. A slice object is created when using the :ref:`slicing " @@ -3739,11 +3753,11 @@ msgstr "" "verwendet wird, bei der Doppelpunkte in eckigen Klammern stehen, wie " "beispielsweise in ``variable_name[1:3:5]``." -#: ../../glossary.rst:1475 +#: ../../glossary.rst:1483 msgid "soft deprecated" msgstr "weich veraltet" -#: ../../glossary.rst:1477 +#: ../../glossary.rst:1485 msgid "" "A soft deprecated API should not be used in new code, but it is safe for " "already existing code to use it. The API remains documented and tested, but " @@ -3754,7 +3768,7 @@ msgstr "" "API bleibt dokumentiert und wird weiterhin getestet, wird jedoch nicht mehr " "weiterentwickelt." -#: ../../glossary.rst:1481 +#: ../../glossary.rst:1489 msgid "" "Soft deprecation, unlike normal deprecation, does not plan on removing the " "API and will not emit warnings." @@ -3762,7 +3776,7 @@ msgstr "" "Im Gegensatz zur normalen Veralterung ist bei einer Soft Deprecation nicht " "vorgesehen, die API zu entfernen, und es werden keine Warnungen ausgegeben." -#: ../../glossary.rst:1484 +#: ../../glossary.rst:1492 msgid "" "See `PEP 387: Soft Deprecation `_." @@ -3770,11 +3784,11 @@ msgstr "" "Siehe `PEP 387: Soft Deprecation `_." -#: ../../glossary.rst:1486 +#: ../../glossary.rst:1494 msgid "special method" msgstr "spezielle Methode" -#: ../../glossary.rst:1490 +#: ../../glossary.rst:1498 msgid "" "A method that is called implicitly by Python to execute a certain operation " "on a type, such as addition. Such methods have names starting and ending " @@ -3786,11 +3800,11 @@ msgstr "" "solcher Methoden beginnen und enden mit zwei Unterstrichen. Spezielle " "Methoden sind unter :ref:`specialnames` dokumentiert." -#: ../../glossary.rst:1494 +#: ../../glossary.rst:1502 msgid "standard library" msgstr "Standardbibliothek" -#: ../../glossary.rst:1496 +#: ../../glossary.rst:1504 msgid "" "The collection of :term:`packages `, :term:`modules ` and :" "term:`extension modules ` distributed as a part of the " @@ -3804,7 +3818,7 @@ msgstr "" "Sammlung kann je nach Plattform, verfügbaren Systembibliotheken oder anderen " "Kriterien variieren. Die Dokumentation finden Sie unter :ref:`library-index`." -#: ../../glossary.rst:1502 +#: ../../glossary.rst:1510 msgid "" "See also :data:`sys.stdlib_module_names` for a list of all possible standard " "library module names." @@ -3812,11 +3826,11 @@ msgstr "" "Eine Liste aller möglichen Namen von Standardbibliotheksmodulen finden Sie " "unter :data:`sys.stdlib_module_names`." -#: ../../glossary.rst:1504 +#: ../../glossary.rst:1512 msgid "statement" msgstr "Erklärung" -#: ../../glossary.rst:1506 +#: ../../glossary.rst:1514 msgid "" "A statement is part of a suite (a \"block\" of code). A statement is either " "an :term:`expression` or one of several constructs with a keyword, such as :" @@ -3827,11 +3841,11 @@ msgstr "" "Konstrukten mit einem Schlüsselwort, wie beispielsweise :keyword:`if` , :" "keyword:`while` oder :keyword:`for` ." -#: ../../glossary.rst:1509 +#: ../../glossary.rst:1517 msgid "static type checker" msgstr "statischer Typprüfer" -#: ../../glossary.rst:1511 +#: ../../glossary.rst:1519 msgid "" "An external tool that reads Python code and analyzes it, looking for issues " "such as incorrect types. See also :term:`type hints ` and the :" @@ -3841,19 +3855,19 @@ msgstr "" "beispielsweise falsche Typen zu erkennen. Siehe auch :term:`Typangaben ` und das Modul :mod:`typing` ." -#: ../../glossary.rst:1514 +#: ../../glossary.rst:1522 msgid "stdlib" msgstr "stdlib" -#: ../../glossary.rst:1516 +#: ../../glossary.rst:1524 msgid "An abbreviation of :term:`standard library`." msgstr "Eine Abkürzung für :term:`Standardbibliothek `." -#: ../../glossary.rst:1517 +#: ../../glossary.rst:1525 msgid "steal" msgstr "stehlen" -#: ../../glossary.rst:1519 +#: ../../glossary.rst:1527 msgid "" "In Python's C API, \"*stealing*\" an argument means that ownership of the " "argument is transferred to the called function. The caller must not use that " @@ -3866,16 +3880,16 @@ msgstr "" "Allgemeinen tun Funktionen, die ein Argument stehlen, dies auch dann, wenn " "sie fehlschlagen." -#: ../../glossary.rst:1524 +#: ../../glossary.rst:1532 msgid "See :ref:`api-refcountdetails` for a full explanation." msgstr "" "Eine ausführliche Erläuterung finden Sie unter :ref:`api-refcountdetails`." -#: ../../glossary.rst:1525 +#: ../../glossary.rst:1533 msgid "strong reference" msgstr "starke Referenz" -#: ../../glossary.rst:1527 +#: ../../glossary.rst:1535 msgid "" "In Python's C API, a strong reference is a reference to an object which is " "owned by the code holding the reference. The strong reference is taken by " @@ -3888,7 +3902,7 @@ msgstr "" "hergestellt und durch den Aufruf von :c:func:`Py_DECREF` beim Löschen der " "Referenz freigegeben." -#: ../../glossary.rst:1533 +#: ../../glossary.rst:1541 msgid "" "The :c:func:`Py_NewRef` function can be used to create a strong reference to " "an object. Usually, the :c:func:`Py_DECREF` function must be called on the " @@ -3900,15 +3914,15 @@ msgstr "" "für die starke Referenz aufgerufen werden, bevor der Geltungsbereich der " "starken Referenz verlassen wird, um ein Referenzleck zu vermeiden." -#: ../../glossary.rst:1538 +#: ../../glossary.rst:1546 msgid "See also :term:`borrowed reference`." msgstr "Siehe auch: :term:`entlehnte Referenz `." -#: ../../glossary.rst:1539 +#: ../../glossary.rst:1547 msgid "subscript" msgstr "Index" -#: ../../glossary.rst:1541 +#: ../../glossary.rst:1549 msgid "" "The expression in square brackets of a :ref:`subscription expression " "`, for example, the ``3`` in ``items[3]``. Usually used to " @@ -3923,11 +3937,11 @@ msgstr "" "wird, oder als :term:`Index `, wenn eine :term:`Sequenz ` " "indiziert wird." -#: ../../glossary.rst:1547 +#: ../../glossary.rst:1555 msgid "synchronization primitive" msgstr "Synchronisationsprimitive" -#: ../../glossary.rst:1549 +#: ../../glossary.rst:1557 msgid "" "A basic building block for coordinating (synchronizing) the execution of " "multiple threads to ensure :term:`thread-safe` access to shared resources. " @@ -3952,15 +3966,15 @@ msgstr "" "`Race-Conditions ` zu verhindern und die Thread-Ausführung " "zu koordinieren. Siehe auch :term:`lock`." -#: ../../glossary.rst:1559 +#: ../../glossary.rst:1567 msgid "t-string" msgstr "T-String" -#: ../../glossary.rst:1560 +#: ../../glossary.rst:1568 msgid "t-strings" msgstr "T-Strings" -#: ../../glossary.rst:1562 +#: ../../glossary.rst:1570 msgid "" "String literals prefixed with ``t`` or ``T`` are commonly called \"t-" "strings\" which is short for :ref:`template string literals `." @@ -3969,11 +3983,11 @@ msgstr "" "gemeinhin als t-Strings bezeichnet, was die Abkürzung für :ref:`Template-" "Zeichenfolgenliterale ` ist." -#: ../../glossary.rst:1565 +#: ../../glossary.rst:1573 msgid "text encoding" msgstr "Textkodierung" -#: ../../glossary.rst:1567 +#: ../../glossary.rst:1575 msgid "" "A string in Python is a sequence of Unicode code points (in range " "``U+0000``--``U+10FFFF``). To store or transfer a string, it needs to be " @@ -3983,7 +3997,7 @@ msgstr "" "Bereich ``U+0000``--``U+10FFFF``). Um eine Zeichenkette zu speichern oder zu " "übertragen, muss sie als Bytefolge serialisiert werden." -#: ../../glossary.rst:1571 +#: ../../glossary.rst:1579 msgid "" "Serializing a string into a sequence of bytes is known as \"encoding\", and " "recreating the string from the sequence of bytes is known as \"decoding\"." @@ -3992,7 +4006,7 @@ msgstr "" "bezeichnet, und die Rekonstruktion der Zeichenkette aus der Bytefolge wird " "als \"Dekodierung\" bezeichnet." -#: ../../glossary.rst:1574 +#: ../../glossary.rst:1582 msgid "" "There are a variety of different text serialization :ref:`codecs `, which are collectively referred to as \"text encodings\"." @@ -4001,11 +4015,11 @@ msgstr "" "`Codecs `, die zusammenfassend als \"Textkodierungen\" " "bezeichnet werden." -#: ../../glossary.rst:1577 +#: ../../glossary.rst:1585 msgid "text file" msgstr "Textdatei" -#: ../../glossary.rst:1579 +#: ../../glossary.rst:1587 msgid "" "A :term:`file object` able to read and write :class:`str` objects. Often, a " "text file actually accesses a byte-oriented datastream and handles the :term:" @@ -4020,7 +4034,7 @@ msgstr "" "Textmodus geöffnet wurden (``'r'`` oder ``'w'``), :data:`sys.stdin`, :data:" "`sys.stdout` sowie Instanzen von :class:`io.StringIO`." -#: ../../glossary.rst:1586 +#: ../../glossary.rst:1594 msgid "" "See also :term:`binary file` for a file object able to read and write :term:" "`bytes-like objects `." @@ -4028,11 +4042,11 @@ msgstr "" "Siehe auch :term:`Binärdatei ` für ein Dateiobjekt, das :term:" "`byteähnliche Objekte ` lesen und schreiben kann." -#: ../../glossary.rst:1588 +#: ../../glossary.rst:1596 msgid "thread state" msgstr "Thread-Status" -#: ../../glossary.rst:1591 +#: ../../glossary.rst:1599 msgid "" "The information used by the :term:`CPython` runtime to run in an OS thread. " "For example, this includes the current exception, if any, and the state of " @@ -4043,7 +4057,7 @@ msgstr "" "beispielsweise die aktuelle Ausnahme (falls vorhanden) und der Zustand des " "Bytecode-Interpreters." -#: ../../glossary.rst:1595 +#: ../../glossary.rst:1603 msgid "" "Each thread state is bound to a single OS thread, but threads may have many " "thread states available. At most, one of them may be :term:`attached " @@ -4053,7 +4067,7 @@ msgstr "" "aber Threads können über mehrere Thread-Zustände verfügen. Höchstens einer " "davon darf gleichzeitig :term:` ` sein." -#: ../../glossary.rst:1599 +#: ../../glossary.rst:1607 msgid "" "An :term:`attached thread state` is required to call most of Python's C API, " "unless a function explicitly documents otherwise. The bytecode interpreter " @@ -4065,7 +4079,7 @@ msgstr "" "angegeben ist. Der Bytecode-Interpreter läuft nur unter einem " "angeschlossenen Thread-Zustand." -#: ../../glossary.rst:1603 +#: ../../glossary.rst:1611 msgid "" "Each thread state belongs to a single interpreter, but each interpreter may " "have many thread states, including multiple for the same OS thread. Thread " @@ -4079,7 +4093,7 @@ msgstr "" "können an denselben Thread gebunden sein, aber zu jedem Zeitpunkt kann nur " "einer in diesem Thread :term:`angeschlossen ` sein." -#: ../../glossary.rst:1609 +#: ../../glossary.rst:1617 msgid "" "See :ref:`Thread State and the Global Interpreter Lock ` for more " "information." @@ -4087,11 +4101,11 @@ msgstr "" "Weitere Informationen findest du unter :ref:`Thread-Zustand und das Global " "Interpreter Lock `." -#: ../../glossary.rst:1611 +#: ../../glossary.rst:1619 msgid "thread-safe" msgstr "thread-safe" -#: ../../glossary.rst:1613 +#: ../../glossary.rst:1621 msgid "" "A module, function, or class that behaves correctly when used by multiple " "threads concurrently. Thread-safe code uses appropriate :term:" @@ -4117,11 +4131,11 @@ msgstr "" "in Multithread-Programmen zu :term:`Race-Conditions ` und :" "term:`Datenkonflikten ` führen." -#: ../../glossary.rst:1624 +#: ../../glossary.rst:1632 msgid "token" msgstr "Token" -#: ../../glossary.rst:1627 +#: ../../glossary.rst:1635 msgid "" "A small unit of source code, generated by the :ref:`lexical analyzer " "` (also called the *tokenizer*). Names, numbers, strings, " @@ -4132,7 +4146,7 @@ msgstr "" "Zeichenketten, Operatoren, Zeilenumbrüche und Ähnliches werden durch Token " "dargestellt." -#: ../../glossary.rst:1632 +#: ../../glossary.rst:1640 msgid "" "The :mod:`tokenize` module exposes Python's lexical analyzer. The :mod:" "`token` module contains information on the various types of tokens." @@ -4141,11 +4155,11 @@ msgstr "" "bereit. Das Modul :mod:`token` enthält Informationen zu den verschiedenen " "Token-Typen." -#: ../../glossary.rst:1635 +#: ../../glossary.rst:1643 msgid "triple-quoted string" msgstr "Zeichenkette in dreifachen Anführungszeichen" -#: ../../glossary.rst:1637 +#: ../../glossary.rst:1645 msgid "" "A string which is bound by three instances of either a quotation mark (\") " "or an apostrophe ('). While they don't provide any functionality not " @@ -4164,11 +4178,11 @@ msgstr "" "erstrecken, ohne dass das Fortsetzungszeichen verwendet werden muss, was sie " "besonders nützlich beim Schreiben von Docstrings macht." -#: ../../glossary.rst:1644 +#: ../../glossary.rst:1652 msgid "type" msgstr "Typ" -#: ../../glossary.rst:1646 +#: ../../glossary.rst:1654 msgid "" "The type of a Python object determines what kind of object it is; every " "object has a type. An object's type is accessible as its :attr:`~object." @@ -4179,17 +4193,17 @@ msgstr "" "Attribut :attr:`~object.__class__` zugänglich oder kann mit " "``type(obj)``` abgerufen werden." -#: ../../glossary.rst:1650 +#: ../../glossary.rst:1658 msgid "type alias" msgstr "Typalias" -#: ../../glossary.rst:1652 +#: ../../glossary.rst:1660 msgid "A synonym for a type, created by assigning the type to an identifier." msgstr "" "Ein Synonym für einen Typ, das durch die Zuweisung des Typs zu einem " "Bezeichner erstellt wird." -#: ../../glossary.rst:1654 +#: ../../glossary.rst:1662 msgid "" "Type aliases are useful for simplifying :term:`type hints `. For " "example::" @@ -4197,7 +4211,7 @@ msgstr "" "Typ-Aliase sind nützlich, um :term:`Typ-Hinweise ` zu " "vereinfachen. Zum Beispiel::" -#: ../../glossary.rst:1657 +#: ../../glossary.rst:1665 msgid "" "def remove_gray_shades(\n" " colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]:\n" @@ -4207,11 +4221,11 @@ msgstr "" " colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]:\n" " pass" -#: ../../glossary.rst:1661 +#: ../../glossary.rst:1669 msgid "could be made more readable like this::" msgstr "könnte so lesbarer gestaltet werden::" -#: ../../glossary.rst:1663 +#: ../../glossary.rst:1671 msgid "" "Color = tuple[int, int, int]\n" "\n" @@ -4223,16 +4237,16 @@ msgstr "" "def remove_gray_shades(colors: Liste[Farbe]) -> Liste[Farbe]:\n" " pass" -#: ../../glossary.rst:1668 ../../glossary.rst:1682 +#: ../../glossary.rst:1676 ../../glossary.rst:1690 msgid "See :mod:`typing` and :pep:`484`, which describe this functionality." msgstr "" "Siehe :mod:`typing` und :pep:`484`, wo diese Funktion beschrieben wird." -#: ../../glossary.rst:1669 +#: ../../glossary.rst:1677 msgid "type hint" msgstr "Typhinweis" -#: ../../glossary.rst:1671 +#: ../../glossary.rst:1679 msgid "" "An :term:`annotation` that specifies the expected type for a variable, a " "class attribute, or a function parameter or return value." @@ -4241,7 +4255,7 @@ msgstr "" "Variable, ein Klassenattribut oder einen Funktionsparameter bzw. " "Rückgabewert angibt." -#: ../../glossary.rst:1674 +#: ../../glossary.rst:1682 msgid "" "Type hints are optional and are not enforced by Python but they are useful " "to :term:`static type checkers `. They can also aid " @@ -4252,7 +4266,7 @@ msgstr "" "können sie IDEs bei der Code-Vervollständigung und beim Refactoring " "unterstützen." -#: ../../glossary.rst:1678 +#: ../../glossary.rst:1686 msgid "" "Type hints of global variables, class attributes, and functions, but not " "local variables, can be accessed using :func:`typing.get_type_hints`." @@ -4261,11 +4275,11 @@ msgstr "" "jedoch für lokale Variablen, können über :func:`typing.get_type_hints` " "abgerufen werden." -#: ../../glossary.rst:1683 +#: ../../glossary.rst:1691 msgid "universal newlines" msgstr "universelle Zeilenumbrüche" -#: ../../glossary.rst:1685 +#: ../../glossary.rst:1693 msgid "" "A manner of interpreting text streams in which all of the following are " "recognized as ending a line: the Unix end-of-line convention ``'\\n'``, the " @@ -4279,24 +4293,24 @@ msgstr "" "Konvention ``'\\r'``. Siehe :pep:`278` und :pep:`3116` sowie :func:`bytes." "splitlines` für eine weitere Anwendungsmöglichkeit." -#: ../../glossary.rst:1690 +#: ../../glossary.rst:1698 msgid "variable annotation" msgstr "Variablenbeschriftung" -#: ../../glossary.rst:1692 +#: ../../glossary.rst:1700 msgid "An :term:`annotation` of a variable or a class attribute." msgstr "" "Eine :term:`Annotation ` einer Variablen oder eines " "Klassenattributs." -#: ../../glossary.rst:1694 +#: ../../glossary.rst:1702 msgid "" "When annotating a variable or a class attribute, assignment is optional::" msgstr "" "Bei der Annotation einer Variablen oder eines Klassenattributs ist die " "Zuweisung optional::" -#: ../../glossary.rst:1696 +#: ../../glossary.rst:1704 msgid "" "class C:\n" " field: 'annotation'" @@ -4304,7 +4318,7 @@ msgstr "" "Klasse C:\n" " Feld: 'annotation'" -#: ../../glossary.rst:1699 +#: ../../glossary.rst:1707 msgid "" "Variable annotations are usually used for :term:`type hints `: " "for example this variable is expected to take :class:`int` values::" @@ -4313,17 +4327,17 @@ msgstr "" "verwendet – beispielsweise wird erwartet, dass diese Variable Werte vom Typ :" "class:`int` annimmt::" -#: ../../glossary.rst:1703 +#: ../../glossary.rst:1711 msgid "count: int = 0" msgstr "Zähler: int = 0" -#: ../../glossary.rst:1705 +#: ../../glossary.rst:1713 msgid "Variable annotation syntax is explained in section :ref:`annassign`." msgstr "" "Die Syntax für die Annotation von Variablen wird im Abschnitt :ref:" "`annassign` erläutert." -#: ../../glossary.rst:1707 +#: ../../glossary.rst:1715 msgid "" "See :term:`function annotation`, :pep:`484` and :pep:`526`, which describe " "this functionality. Also see :ref:`annotations-howto` for best practices on " @@ -4334,11 +4348,11 @@ msgstr "" "`annotations-howto` für bewährte Vorgehensweisen beim Umgang mit " "Annotationen." -#: ../../glossary.rst:1711 +#: ../../glossary.rst:1719 msgid "virtual environment" msgstr "virtuelle Umgebung" -#: ../../glossary.rst:1713 +#: ../../glossary.rst:1721 msgid "" "A cooperatively isolated runtime environment that allows Python users and " "applications to install and upgrade Python distribution packages without " @@ -4350,15 +4364,15 @@ msgstr "" "aktualisieren, ohne das Verhalten anderer Python-Anwendungen zu " "beeinträchtigen, die auf demselben System ausgeführt werden." -#: ../../glossary.rst:1718 +#: ../../glossary.rst:1726 msgid "See also :mod:`venv`." msgstr "Siehe auch :mod:`venv`." -#: ../../glossary.rst:1719 +#: ../../glossary.rst:1727 msgid "virtual machine" msgstr "virtuelle Maschine" -#: ../../glossary.rst:1721 +#: ../../glossary.rst:1729 msgid "" "A computer defined entirely in software. Python's virtual machine executes " "the :term:`bytecode` emitted by the bytecode compiler." @@ -4367,11 +4381,11 @@ msgstr "" "Python führt den vom Bytecode-Compiler erzeugten :term:`Bytecode ` " "aus." -#: ../../glossary.rst:1723 +#: ../../glossary.rst:1731 msgid "walrus operator" msgstr "Walross-Betreiber" -#: ../../glossary.rst:1725 +#: ../../glossary.rst:1733 msgid "" "A light-hearted way to refer to the :ref:`assignment expression ` operator ``:=`` because it looks a bit like a walrus if you " @@ -4381,11 +4395,11 @@ msgstr "" "expressions>` Operator ``:=``, da er ein bisschen wie ein Walross aussieht, " "wenn man den Kopf etwas dreht." -#: ../../glossary.rst:1728 +#: ../../glossary.rst:1736 msgid "Zen of Python" msgstr "Zen von Python" -#: ../../glossary.rst:1730 +#: ../../glossary.rst:1738 msgid "" "Listing of Python design principles and philosophies that are helpful in " "understanding and using the language. The listing can be found by typing " @@ -4412,11 +4426,11 @@ msgstr "C-zusammenhängend" msgid "Fortran contiguous" msgstr "Fortran–zusammenhängend" -#: ../../glossary.rst:1002 +#: ../../glossary.rst:1010 msgid "magic" msgstr "Magie" -#: ../../glossary.rst:1488 +#: ../../glossary.rst:1496 msgid "special" msgstr "besonders" diff --git a/howto/annotations.po b/howto/annotations.po index 189d2dd..337e857 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -29,7 +29,7 @@ msgstr "" msgid "Larry Hastings" msgstr "" -#: ../../howto/annotations.rst:-1 +#: ../../howto/annotations.rst:9 msgid "Abstract" msgstr "" diff --git a/howto/curses.po b/howto/curses.po index 76a5770..fb37c51 100644 --- a/howto/curses.po +++ b/howto/curses.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -41,7 +41,7 @@ msgstr "" msgid "2.04" msgstr "" -#: ../../howto/curses.rst:-1 +#: ../../howto/curses.rst:13 msgid "Abstract" msgstr "" diff --git a/howto/functional.po b/howto/functional.po index c3cec39..de43a6c 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -977,68 +977,68 @@ 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 `__.)" +"It doesn't construct an in-memory list and :term:`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 +#: ../../howto/functional.rst:732 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 +#: ../../howto/functional.rst:736 msgid "" "zip(['a', 'b'], (1, 2, 3)) =>\n" " ('a', 1), ('b', 2)" msgstr "" -#: ../../howto/functional.rst:738 +#: ../../howto/functional.rst:739 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 +#: ../../howto/functional.rst:745 msgid "The itertools module" msgstr "" -#: ../../howto/functional.rst:746 +#: ../../howto/functional.rst:747 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 +#: ../../howto/functional.rst:751 msgid "The module's functions fall into a few broad classes:" msgstr "" -#: ../../howto/functional.rst:752 +#: ../../howto/functional.rst:753 msgid "Functions that create a new iterator based on an existing iterator." msgstr "" -#: ../../howto/functional.rst:753 +#: ../../howto/functional.rst:754 msgid "Functions for treating an iterator's elements as function arguments." msgstr "" -#: ../../howto/functional.rst:754 +#: ../../howto/functional.rst:755 msgid "Functions for selecting portions of an iterator's output." msgstr "" -#: ../../howto/functional.rst:755 +#: ../../howto/functional.rst:756 msgid "A function for grouping an iterator's output." msgstr "" -#: ../../howto/functional.rst:758 +#: ../../howto/functional.rst:759 msgid "Creating new iterators" msgstr "" -#: ../../howto/functional.rst:760 +#: ../../howto/functional.rst:761 msgid "" ":func:`itertools.count(start, step) ` returns an infinite " "stream of evenly spaced values. You can optionally supply the starting " @@ -1046,7 +1046,7 @@ msgid "" "defaults to 1::" msgstr "" -#: ../../howto/functional.rst:764 +#: ../../howto/functional.rst:765 msgid "" "itertools.count() =>\n" " 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ...\n" @@ -1056,7 +1056,7 @@ msgid "" " 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, ..." msgstr "" -#: ../../howto/functional.rst:771 +#: ../../howto/functional.rst:772 msgid "" ":func:`itertools.cycle(iter) ` saves a copy of the contents " "of a provided iterable and returns a new iterator that returns its elements " @@ -1064,20 +1064,20 @@ msgid "" "infinitely. ::" msgstr "" -#: ../../howto/functional.rst:775 +#: ../../howto/functional.rst:776 msgid "" "itertools.cycle([1, 2, 3, 4, 5]) =>\n" " 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ..." msgstr "" -#: ../../howto/functional.rst:778 +#: ../../howto/functional.rst:779 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 +#: ../../howto/functional.rst:782 msgid "" "itertools.repeat('abc') =>\n" " abc, abc, abc, abc, abc, abc, abc, abc, abc, abc, ...\n" @@ -1085,21 +1085,21 @@ msgid "" " abc, abc, abc, abc, abc" msgstr "" -#: ../../howto/functional.rst:786 +#: ../../howto/functional.rst:787 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. ::" +"the iterables have been :term:`exhausted`. ::" msgstr "" -#: ../../howto/functional.rst:791 +#: ../../howto/functional.rst:792 msgid "" "itertools.chain(['a', 'b', 'c'], (1, 2, 3)) =>\n" " a, b, c, 1, 2, 3" msgstr "" -#: ../../howto/functional.rst:794 +#: ../../howto/functional.rst:795 msgid "" ":func:`itertools.islice(iter, [start], stop, [step]) ` " "returns a stream that's a slice of the iterator. With a single *stop* " @@ -1110,7 +1110,7 @@ msgid "" "*step*. ::" msgstr "" -#: ../../howto/functional.rst:801 +#: ../../howto/functional.rst:802 msgid "" "itertools.islice(range(10), 8) =>\n" " 0, 1, 2, 3, 4, 5, 6, 7\n" @@ -1120,7 +1120,7 @@ msgid "" " 2, 4, 6" msgstr "" -#: ../../howto/functional.rst:808 +#: ../../howto/functional.rst:809 msgid "" ":func:`itertools.tee(iter, [n]) ` replicates an iterator; it " "returns *n* independent iterators that will all return the contents of the " @@ -1130,7 +1130,7 @@ msgid "" "and one of the new iterators is consumed more than the others. ::" msgstr "" -#: ../../howto/functional.rst:816 +#: ../../howto/functional.rst:817 msgid "" "itertools.tee( itertools.count() ) =>\n" " iterA, iterB\n" @@ -1142,11 +1142,11 @@ msgid "" " 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ..." msgstr "" -#: ../../howto/functional.rst:827 +#: ../../howto/functional.rst:828 msgid "Calling functions on elements" msgstr "" -#: ../../howto/functional.rst:829 +#: ../../howto/functional.rst:830 msgid "" "The :mod:`operator` module contains a set of functions corresponding to " "Python's operators. Some examples are :func:`operator.add(a, b) ` assumes that the " "iterable will return a stream of tuples, and calls *func* using these tuples " "as the arguments::" msgstr "" -#: ../../howto/functional.rst:839 +#: ../../howto/functional.rst:840 msgid "" "itertools.starmap(os.path.join,\n" " [('/bin', 'python'), ('/usr', 'bin', 'java'),\n" @@ -1171,37 +1171,37 @@ msgid "" " /bin/python, /usr/bin/java, /usr/bin/perl, /usr/bin/ruby" msgstr "" -#: ../../howto/functional.rst:847 +#: ../../howto/functional.rst:848 msgid "Selecting elements" msgstr "" -#: ../../howto/functional.rst:849 +#: ../../howto/functional.rst:850 msgid "" "Another group of functions chooses a subset of an iterator's elements based " "on a predicate." msgstr "" -#: ../../howto/functional.rst:852 +#: ../../howto/functional.rst:853 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 +#: ../../howto/functional.rst:857 msgid "" "itertools.filterfalse(is_even, itertools.count()) =>\n" " 1, 3, 5, 7, 9, 11, 13, 15, ..." msgstr "" -#: ../../howto/functional.rst:859 +#: ../../howto/functional.rst:860 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 +#: ../../howto/functional.rst:864 msgid "" "def less_than_10(x):\n" " return x < 10\n" @@ -1213,14 +1213,14 @@ msgid "" " 0" msgstr "" -#: ../../howto/functional.rst:872 +#: ../../howto/functional.rst:873 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 +#: ../../howto/functional.rst:877 msgid "" "itertools.dropwhile(less_than_10, itertools.count()) =>\n" " 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ...\n" @@ -1229,32 +1229,32 @@ msgid "" " 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ..." msgstr "" -#: ../../howto/functional.rst:882 +#: ../../howto/functional.rst:883 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::" +"is :term:`exhausted`::" msgstr "" -#: ../../howto/functional.rst:886 +#: ../../howto/functional.rst:887 msgid "" "itertools.compress([1, 2, 3, 4, 5], [True, True, False, False, True]) =>\n" " 1, 2, 5" msgstr "" -#: ../../howto/functional.rst:891 +#: ../../howto/functional.rst:892 msgid "Combinatoric functions" msgstr "" -#: ../../howto/functional.rst:893 +#: ../../howto/functional.rst:894 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 +#: ../../howto/functional.rst:898 msgid "" "itertools.combinations([1, 2, 3, 4, 5], 2) =>\n" " (1, 2), (1, 3), (1, 4), (1, 5),\n" @@ -1268,7 +1268,7 @@ msgid "" " (3, 4, 5)" msgstr "" -#: ../../howto/functional.rst:908 +#: ../../howto/functional.rst:909 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 " @@ -1277,7 +1277,7 @@ msgid "" "constraint on the order, returning all possible arrangements of length *r*::" msgstr "" -#: ../../howto/functional.rst:915 +#: ../../howto/functional.rst:916 msgid "" "itertools.permutations([1, 2, 3, 4, 5], 2) =>\n" " (1, 2), (1, 3), (1, 4), (1, 5),\n" @@ -1292,32 +1292,32 @@ msgid "" " (5, 4, 3, 2, 1)" msgstr "" -#: ../../howto/functional.rst:927 +#: ../../howto/functional.rst:928 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 +#: ../../howto/functional.rst:931 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 +#: ../../howto/functional.rst:934 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 +#: ../../howto/functional.rst:938 msgid "" "The identical tuple ``('a', 'a', 'b')`` occurs twice, but the two 'a' " "strings came from different positions." msgstr "" -#: ../../howto/functional.rst:940 +#: ../../howto/functional.rst:941 msgid "" "The :func:`itertools.combinations_with_replacement(iterable, r) ` function relaxes a different constraint: " @@ -1326,7 +1326,7 @@ msgid "" "the second element is selected. ::" msgstr "" -#: ../../howto/functional.rst:946 +#: ../../howto/functional.rst:947 msgid "" "itertools.combinations_with_replacement([1, 2, 3, 4, 5], 2) =>\n" " (1, 1), (1, 2), (1, 3), (1, 4), (1, 5),\n" @@ -1336,11 +1336,11 @@ msgid "" " (5, 5)" msgstr "" -#: ../../howto/functional.rst:955 +#: ../../howto/functional.rst:956 msgid "Grouping elements" msgstr "" -#: ../../howto/functional.rst:957 +#: ../../howto/functional.rst:958 msgid "" "The last function I'll discuss, :func:`itertools.groupby(iter, " "key_func=None) `, is the most complicated. " @@ -1349,14 +1349,14 @@ msgid "" "key is simply each element itself." msgstr "" -#: ../../howto/functional.rst:962 +#: ../../howto/functional.rst:963 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 +#: ../../howto/functional.rst:969 msgid "" "city_list = [('Decatur', 'AL'), ('Huntsville', 'AL'), ('Selma', 'AL'),\n" " ('Anchorage', 'AK'), ('Nome', 'AK'),\n" @@ -1381,7 +1381,7 @@ msgid "" " ('Flagstaff', 'AZ'), ('Phoenix', 'AZ'), ('Tucson', 'AZ')" msgstr "" -#: ../../howto/functional.rst:990 +#: ../../howto/functional.rst:991 msgid "" ":func:`~itertools.groupby` assumes that the underlying iterable's contents " "will already be sorted based on the key. Note that the returned iterators " @@ -1389,11 +1389,11 @@ msgid "" "iterator-1 before requesting iterator-2 and its corresponding key." msgstr "" -#: ../../howto/functional.rst:997 +#: ../../howto/functional.rst:998 msgid "The functools module" msgstr "" -#: ../../howto/functional.rst:999 +#: ../../howto/functional.rst:1000 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 " @@ -1401,7 +1401,7 @@ msgid "" "partial` function." msgstr "" -#: ../../howto/functional.rst:1004 +#: ../../howto/functional.rst:1005 msgid "" "For programs written in a functional style, you'll sometimes want to " "construct variants of existing functions that have some of the parameters " @@ -1411,7 +1411,7 @@ msgid "" "\"partial function application\"." msgstr "" -#: ../../howto/functional.rst:1010 +#: ../../howto/functional.rst:1011 msgid "" "The constructor for :func:`~functools.partial` takes the arguments " "``(function, arg1, arg2, ..., kwarg1=value1, kwarg2=value2)``. The " @@ -1419,11 +1419,11 @@ msgid "" "with the filled-in arguments." msgstr "" -#: ../../howto/functional.rst:1015 +#: ../../howto/functional.rst:1016 msgid "Here's a small but realistic example::" msgstr "" -#: ../../howto/functional.rst:1017 +#: ../../howto/functional.rst:1018 msgid "" "import functools\n" "\n" @@ -1436,7 +1436,7 @@ msgid "" "server_log('Unable to open socket')" msgstr "" -#: ../../howto/functional.rst:1027 +#: ../../howto/functional.rst:1028 msgid "" ":func:`functools.reduce(func, iter, [initial_value]) ` " "cumulatively performs an operation on all the iterable's elements and, " @@ -1445,13 +1445,13 @@ msgid "" "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 " +"element returned, and continues until the iterable is :term:`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 +#: ../../howto/functional.rst:1040 msgid "" ">>> import operator, functools\n" ">>> functools.reduce(operator.concat, ['A', 'BB', 'C'])\n" @@ -1466,20 +1466,20 @@ msgid "" "1" msgstr "" -#: ../../howto/functional.rst:1051 +#: ../../howto/functional.rst:1052 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 +#: ../../howto/functional.rst:1064 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 +#: ../../howto/functional.rst:1067 msgid "" "import functools\n" "# Instead of:\n" @@ -1491,7 +1491,7 @@ msgid "" " product *= i" msgstr "" -#: ../../howto/functional.rst:1075 +#: ../../howto/functional.rst:1076 msgid "" "A related function is :func:`itertools.accumulate(iterable, func=operator." "add) `. It performs the same calculation, but instead " @@ -1499,7 +1499,7 @@ msgid "" "iterator that also yields each partial result::" msgstr "" -#: ../../howto/functional.rst:1080 +#: ../../howto/functional.rst:1081 msgid "" "itertools.accumulate([1, 2, 3, 4, 5]) =>\n" " 1, 3, 6, 10, 15\n" @@ -1508,11 +1508,11 @@ msgid "" " 1, 2, 6, 24, 120" msgstr "" -#: ../../howto/functional.rst:1088 +#: ../../howto/functional.rst:1089 msgid "The operator module" msgstr "" -#: ../../howto/functional.rst:1090 +#: ../../howto/functional.rst:1091 msgid "" "The :mod:`operator` module was mentioned earlier. It contains a set of " "functions corresponding to Python's operators. These functions are often " @@ -1520,60 +1520,60 @@ msgid "" "functions that perform a single operation." msgstr "" -#: ../../howto/functional.rst:1095 +#: ../../howto/functional.rst:1096 msgid "Some of the functions in this module are:" msgstr "" -#: ../../howto/functional.rst:1097 +#: ../../howto/functional.rst:1098 msgid "" "Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " "``abs()``, ..." msgstr "" -#: ../../howto/functional.rst:1098 +#: ../../howto/functional.rst:1099 msgid "Logical operations: ``not_()``, ``truth()``." msgstr "" -#: ../../howto/functional.rst:1099 +#: ../../howto/functional.rst:1100 msgid "Bitwise operations: ``and_()``, ``or_()``, ``invert()``." msgstr "" -#: ../../howto/functional.rst:1100 +#: ../../howto/functional.rst:1101 msgid "" "Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``." msgstr "" -#: ../../howto/functional.rst:1101 +#: ../../howto/functional.rst:1102 msgid "Object identity: ``is_()``, ``is_not()``." msgstr "" -#: ../../howto/functional.rst:1103 +#: ../../howto/functional.rst:1104 msgid "Consult the operator module's documentation for a complete list." msgstr "" -#: ../../howto/functional.rst:1107 +#: ../../howto/functional.rst:1108 msgid "Small functions and the lambda expression" msgstr "" -#: ../../howto/functional.rst:1109 +#: ../../howto/functional.rst:1110 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 +#: ../../howto/functional.rst:1113 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 +#: ../../howto/functional.rst:1116 msgid "" "stripped_lines = [line.strip() for line in lines]\n" "existing_files = filter(os.path.exists, file_list)" msgstr "" -#: ../../howto/functional.rst:1118 +#: ../../howto/functional.rst:1119 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. " @@ -1582,20 +1582,20 @@ msgid "" "expression::" msgstr "" -#: ../../howto/functional.rst:1123 +#: ../../howto/functional.rst:1124 msgid "" "adder = lambda x, y: x+y\n" "\n" "print_assign = lambda name, value: name + '=' + str(value)" msgstr "" -#: ../../howto/functional.rst:1127 +#: ../../howto/functional.rst:1128 msgid "" "An alternative is to just use the ``def`` statement and define a function in " "the usual way::" msgstr "" -#: ../../howto/functional.rst:1130 +#: ../../howto/functional.rst:1131 msgid "" "def adder(x, y):\n" " return x + y\n" @@ -1604,13 +1604,13 @@ msgid "" " return name + '=' + str(value)" msgstr "" -#: ../../howto/functional.rst:1136 +#: ../../howto/functional.rst:1137 msgid "" "Which alternative is preferable? That's a style question; my usual course " "is to avoid using ``lambda``." msgstr "" -#: ../../howto/functional.rst:1139 +#: ../../howto/functional.rst:1140 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 " @@ -1620,20 +1620,20 @@ msgid "" "that's hard to read. Quick, what's the following code doing? ::" msgstr "" -#: ../../howto/functional.rst:1146 +#: ../../howto/functional.rst:1147 msgid "" "import functools\n" "total = functools.reduce(lambda a, b: (0, a[1] + b[1]), items)[1]" msgstr "" -#: ../../howto/functional.rst:1149 +#: ../../howto/functional.rst:1150 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 +#: ../../howto/functional.rst:1154 msgid "" "import functools\n" "def combine(a, b):\n" @@ -1642,70 +1642,70 @@ msgid "" "total = functools.reduce(combine, items)[1]" msgstr "" -#: ../../howto/functional.rst:1159 +#: ../../howto/functional.rst:1160 msgid "But it would be best of all if I had simply used a ``for`` loop::" msgstr "" -#: ../../howto/functional.rst:1161 +#: ../../howto/functional.rst:1162 msgid "" "total = 0\n" "for a, b in items:\n" " total += b" msgstr "" -#: ../../howto/functional.rst:1165 +#: ../../howto/functional.rst:1166 msgid "Or the :func:`sum` built-in and a generator expression::" msgstr "" -#: ../../howto/functional.rst:1167 +#: ../../howto/functional.rst:1168 msgid "total = sum(b for a, b in items)" msgstr "" -#: ../../howto/functional.rst:1169 +#: ../../howto/functional.rst:1170 msgid "" "Many uses of :func:`functools.reduce` are clearer when written as ``for`` " "loops." msgstr "" -#: ../../howto/functional.rst:1171 +#: ../../howto/functional.rst:1172 msgid "" "Fredrik Lundh once suggested the following set of rules for refactoring uses " "of ``lambda``:" msgstr "" -#: ../../howto/functional.rst:1174 +#: ../../howto/functional.rst:1175 msgid "Write a lambda function." msgstr "" -#: ../../howto/functional.rst:1175 +#: ../../howto/functional.rst:1176 msgid "Write a comment explaining what the heck that lambda does." msgstr "" -#: ../../howto/functional.rst:1176 +#: ../../howto/functional.rst:1177 msgid "" "Study the comment for a while, and think of a name that captures the essence " "of the comment." msgstr "" -#: ../../howto/functional.rst:1178 +#: ../../howto/functional.rst:1179 msgid "Convert the lambda to a def statement, using that name." msgstr "" -#: ../../howto/functional.rst:1179 +#: ../../howto/functional.rst:1180 msgid "Remove the comment." msgstr "" -#: ../../howto/functional.rst:1181 +#: ../../howto/functional.rst:1182 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 +#: ../../howto/functional.rst:1187 msgid "Revision History and Acknowledgements" msgstr "" -#: ../../howto/functional.rst:1188 +#: ../../howto/functional.rst:1189 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " @@ -1713,40 +1713,40 @@ msgid "" "Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake Winton." msgstr "" -#: ../../howto/functional.rst:1193 +#: ../../howto/functional.rst:1194 msgid "Version 0.1: posted June 30 2006." msgstr "" -#: ../../howto/functional.rst:1195 +#: ../../howto/functional.rst:1196 msgid "Version 0.11: posted July 1 2006. Typo fixes." msgstr "" -#: ../../howto/functional.rst:1197 +#: ../../howto/functional.rst:1198 msgid "" "Version 0.2: posted July 10 2006. Merged genexp and listcomp sections into " "one. Typo fixes." msgstr "" -#: ../../howto/functional.rst:1200 +#: ../../howto/functional.rst:1201 msgid "" "Version 0.21: Added more references suggested on the tutor mailing list." msgstr "" -#: ../../howto/functional.rst:1202 +#: ../../howto/functional.rst:1203 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 +#: ../../howto/functional.rst:1208 msgid "References" msgstr "" -#: ../../howto/functional.rst:1210 +#: ../../howto/functional.rst:1211 msgid "General" msgstr "" -#: ../../howto/functional.rst:1212 +#: ../../howto/functional.rst:1213 msgid "" "**Structure and Interpretation of Computer Programs**, by Harold Abelson and " "Gerald Jay Sussman with Julie Sussman. The book can be found at https://" @@ -1757,39 +1757,39 @@ msgid "" "functional-style Python code." msgstr "" -#: ../../howto/functional.rst:1220 +#: ../../howto/functional.rst:1221 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 +#: ../../howto/functional.rst:1224 msgid "" "https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia " "entry describing functional programming." msgstr "" -#: ../../howto/functional.rst:1226 +#: ../../howto/functional.rst:1227 msgid "https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines." msgstr "" -#: ../../howto/functional.rst:1228 +#: ../../howto/functional.rst:1229 msgid "" "https://en.wikipedia.org/wiki/Partial_application: Entry for the concept of " "partial function application." msgstr "" -#: ../../howto/functional.rst:1230 +#: ../../howto/functional.rst:1231 msgid "" "https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying." msgstr "" -#: ../../howto/functional.rst:1233 +#: ../../howto/functional.rst:1234 msgid "Python-specific" msgstr "" -#: ../../howto/functional.rst:1235 +#: ../../howto/functional.rst:1236 msgid "" "https://gnosis.cx/TPiP/: The first chapter of David Mertz's book :title-" "reference:`Text Processing in Python` discusses functional programming for " @@ -1797,7 +1797,7 @@ msgid "" "Text Processing\"." msgstr "" -#: ../../howto/functional.rst:1240 +#: ../../howto/functional.rst:1241 msgid "" "Mertz also wrote a 3-part series of articles on functional programming for " "IBM's DeveloperWorks site; see `part 1 `__," msgstr "" -#: ../../howto/functional.rst:1248 +#: ../../howto/functional.rst:1249 msgid "Python documentation" msgstr "" -#: ../../howto/functional.rst:1250 +#: ../../howto/functional.rst:1251 msgid "Documentation for the :mod:`itertools` module." msgstr "" -#: ../../howto/functional.rst:1252 +#: ../../howto/functional.rst:1253 msgid "Documentation for the :mod:`functools` module." msgstr "" -#: ../../howto/functional.rst:1254 +#: ../../howto/functional.rst:1255 msgid "Documentation for the :mod:`operator` module." msgstr "" -#: ../../howto/functional.rst:1256 +#: ../../howto/functional.rst:1257 msgid ":pep:`289`: \"Generator Expressions\"" msgstr "" -#: ../../howto/functional.rst:1258 +#: ../../howto/functional.rst:1259 msgid "" ":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new " "generator features in Python 2.5." diff --git a/howto/ipaddress.po b/howto/ipaddress.po index 0db0f31..b7c1cd1 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -33,7 +33,7 @@ msgstr "" msgid "Nick Coghlan" msgstr "" -#: ../../howto/ipaddress.rst:-1 +#: ../../howto/ipaddress.rst:14 msgid "Overview" msgstr "" diff --git a/howto/isolating-extensions.po b/howto/isolating-extensions.po index 2127d1e..53f57f9 100644 --- a/howto/isolating-extensions.po +++ b/howto/isolating-extensions.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -25,7 +25,7 @@ msgstr "" msgid "Isolating Extension Modules" msgstr "" -#: ../../howto/isolating-extensions.rst:-1 +#: ../../howto/isolating-extensions.rst:9 msgid "Abstract" msgstr "" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 854aa9c..a435398 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -4875,7 +4875,7 @@ 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 " +"your specific needs. With the above handler, you'd pass structured data " "using something like this::" msgstr "" diff --git a/howto/mro.po b/howto/mro.po index b60e7b4..2e7c234 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -303,9 +303,9 @@ msgid "" "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.*" +"until all the classes 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 diff --git a/howto/regex.po b/howto/regex.po index 5649b9b..b9beb33 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -33,7 +33,7 @@ msgstr "" msgid "A.M. Kuchling " msgstr "" -#: ../../howto/regex.rst:-1 +#: ../../howto/regex.rst:16 msgid "Abstract" msgstr "" diff --git a/howto/sockets.po b/howto/sockets.po index e002254..540a808 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -29,7 +29,7 @@ msgstr "" msgid "Gordon McMillan" msgstr "" -#: ../../howto/sockets.rst:-1 +#: ../../howto/sockets.rst:10 msgid "Abstract" msgstr "" diff --git a/howto/urllib2.po b/howto/urllib2.po index 051202f..d07724c 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -37,6 +37,10 @@ msgstr "" msgid "Introduction" msgstr "" +#: ../../howto/urllib2.rst:13 +msgid "Related Articles" +msgstr "" + #: ../../howto/urllib2.rst:15 msgid "" "You may also find useful the following article on fetching web resources " diff --git a/library/argparse.po b/library/argparse.po index e3b06e7..002157b 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -44,7 +44,7 @@ msgid "" "another defined option)." msgstr "" -#: ../../library/argparse.rst:-1 +#: ../../library/argparse.rst:28 msgid "Tutorial" msgstr "" @@ -1201,10 +1201,13 @@ msgid "" msgstr "" #: ../../library/argparse.rst:834 -msgid "Note, the *default* will be ``None`` unless explicitly set to *0*." +msgid "" +"Unless explicitly set, the *default* will be ``None``. If the default value " +"is a non-zero number, the count starts from that number rather than from " +"zero." msgstr "" -#: ../../library/argparse.rst:836 +#: ../../library/argparse.rst:838 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 " @@ -1212,14 +1215,14 @@ msgid "" "output is created." msgstr "" -#: ../../library/argparse.rst:841 +#: ../../library/argparse.rst:843 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:845 +#: ../../library/argparse.rst:847 msgid "" ">>> import argparse\n" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" @@ -1229,7 +1232,7 @@ msgid "" "PROG 2.0" msgstr "" -#: ../../library/argparse.rst:851 +#: ../../library/argparse.rst:853 msgid "" "You may also specify an arbitrary action by passing an :class:`Action` " "subclass (e.g. :class:`BooleanOptionalAction`) or other object that " @@ -1238,7 +1241,7 @@ msgid "" "with non-zero ``nargs``) can be used with positional arguments." msgstr "" -#: ../../library/argparse.rst:857 +#: ../../library/argparse.rst:859 msgid "" "The recommended way to create a custom action is to extend :class:`Action`, " "overriding the :meth:`!__call__` method and optionally the :meth:`!__init__` " @@ -1247,11 +1250,11 @@ msgid "" "their registered name." msgstr "" -#: ../../library/argparse.rst:862 +#: ../../library/argparse.rst:864 msgid "An example of a custom action::" msgstr "" -#: ../../library/argparse.rst:864 +#: ../../library/argparse.rst:866 msgid "" ">>> class FooAction(argparse.Action):\n" "... def __init__(self, option_strings, dest, nargs=None, **kwargs):\n" @@ -1272,15 +1275,15 @@ msgid "" "Namespace(bar='1', foo='2')" msgstr "" -#: ../../library/argparse.rst:882 +#: ../../library/argparse.rst:884 msgid "For more details, see :class:`Action`." msgstr "" -#: ../../library/argparse.rst:888 +#: ../../library/argparse.rst:890 msgid "nargs" msgstr "" -#: ../../library/argparse.rst:890 +#: ../../library/argparse.rst:892 msgid "" ":class:`ArgumentParser` objects usually associate a single command-line " "argument with a single action to be taken. The ``nargs`` keyword argument " @@ -1289,13 +1292,13 @@ msgid "" "are:" msgstr "" -#: ../../library/argparse.rst:895 +#: ../../library/argparse.rst:897 msgid "" "``N`` (an integer). ``N`` arguments from the command line will be gathered " "together into a list. For example::" msgstr "" -#: ../../library/argparse.rst:898 +#: ../../library/argparse.rst:900 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', nargs=2)\n" @@ -1304,13 +1307,13 @@ msgid "" "Namespace(bar=['c'], foo=['a', 'b'])" msgstr "" -#: ../../library/argparse.rst:904 +#: ../../library/argparse.rst:906 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:909 +#: ../../library/argparse.rst:911 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 " @@ -1320,7 +1323,7 @@ msgid "" "produced. Some examples to illustrate this::" msgstr "" -#: ../../library/argparse.rst:916 +#: ../../library/argparse.rst:918 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', nargs='?', const='c', default='d')\n" @@ -1333,13 +1336,13 @@ msgid "" "Namespace(bar='d', foo='d')" msgstr "" -#: ../../library/argparse.rst:926 +#: ../../library/argparse.rst:928 msgid "" "One of the more common uses of ``nargs='?'`` is to allow optional input and " "output files::" msgstr "" -#: ../../library/argparse.rst:929 +#: ../../library/argparse.rst:931 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('infile', nargs='?')\n" @@ -1352,7 +1355,7 @@ msgid "" "Namespace(infile=None, outfile=None)" msgstr "" -#: ../../library/argparse.rst:941 +#: ../../library/argparse.rst:943 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 " @@ -1360,7 +1363,7 @@ msgid "" "``nargs='*'`` is possible. For example::" msgstr "" -#: ../../library/argparse.rst:946 +#: ../../library/argparse.rst:948 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', nargs='*')\n" @@ -1370,14 +1373,14 @@ msgid "" "Namespace(bar=['1', '2'], baz=['a', 'b'], foo=['x', 'y'])" msgstr "" -#: ../../library/argparse.rst:955 +#: ../../library/argparse.rst:957 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:959 +#: ../../library/argparse.rst:961 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('foo', nargs='+')\n" @@ -1388,7 +1391,7 @@ msgid "" "PROG: error: the following arguments are required: foo" msgstr "" -#: ../../library/argparse.rst:967 +#: ../../library/argparse.rst:969 msgid "" "If the ``nargs`` keyword argument is not provided, the number of arguments " "consumed is determined by the action_. Generally this means a single " @@ -1397,11 +1400,11 @@ msgid "" "``'store_const'``) set ``nargs=0``." msgstr "" -#: ../../library/argparse.rst:977 +#: ../../library/argparse.rst:979 msgid "const" msgstr "" -#: ../../library/argparse.rst:979 +#: ../../library/argparse.rst:981 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 " @@ -1409,7 +1412,7 @@ msgid "" "common uses of it are:" msgstr "" -#: ../../library/argparse.rst:983 +#: ../../library/argparse.rst:985 msgid "" "When :meth:`~ArgumentParser.add_argument` is called with " "``action='store_const'`` or ``action='append_const'``. These actions add " @@ -1419,7 +1422,7 @@ msgid "" "receive a default value of ``None``." msgstr "" -#: ../../library/argparse.rst:991 +#: ../../library/argparse.rst:993 msgid "" "When :meth:`~ArgumentParser.add_argument` is called with option strings " "(like ``-f`` or ``--foo``) and ``nargs='?'``. This creates an optional " @@ -1429,17 +1432,17 @@ msgid "" "See the nargs_ description for examples." msgstr "" -#: ../../library/argparse.rst:998 +#: ../../library/argparse.rst:1000 msgid "" "``const=None`` by default, including when ``action='append_const'`` or " "``action='store_const'``." msgstr "" -#: ../../library/argparse.rst:1005 +#: ../../library/argparse.rst:1007 msgid "default" msgstr "" -#: ../../library/argparse.rst:1007 +#: ../../library/argparse.rst:1009 msgid "" "All optional arguments and some positional arguments may be omitted at the " "command line. The ``default`` keyword argument of :meth:`~ArgumentParser." @@ -1449,7 +1452,7 @@ msgid "" "command line::" msgstr "" -#: ../../library/argparse.rst:1014 +#: ../../library/argparse.rst:1016 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default=42)\n" @@ -1459,13 +1462,13 @@ msgid "" "Namespace(foo=42)" msgstr "" -#: ../../library/argparse.rst:1021 +#: ../../library/argparse.rst:1023 msgid "" "If the target namespace already has an attribute set, the action *default* " "will not overwrite it::" msgstr "" -#: ../../library/argparse.rst:1024 +#: ../../library/argparse.rst:1026 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default=42)\n" @@ -1473,7 +1476,7 @@ msgid "" "Namespace(foo=101)" msgstr "" -#: ../../library/argparse.rst:1029 +#: ../../library/argparse.rst:1031 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_ " @@ -1481,7 +1484,7 @@ msgid "" "`Namespace` return value. Otherwise, the parser uses the value as is::" msgstr "" -#: ../../library/argparse.rst:1034 +#: ../../library/argparse.rst:1036 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--length', default='10', type=int)\n" @@ -1490,13 +1493,13 @@ msgid "" "Namespace(length=10, width=10.5)" msgstr "" -#: ../../library/argparse.rst:1040 +#: ../../library/argparse.rst:1042 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:1043 +#: ../../library/argparse.rst:1045 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('foo', nargs='?', default=42)\n" @@ -1506,27 +1509,27 @@ msgid "" "Namespace(foo=42)" msgstr "" -#: ../../library/argparse.rst:1050 +#: ../../library/argparse.rst:1052 msgid "" "Because ``nargs='*'`` gathers any supplied values into a list, an absent " "positional argument yields an empty list (``[]``). Only a non-``None`` " "*default* overrides this (so ``default=None`` still gives ``[]``)." msgstr "" -#: ../../library/argparse.rst:1054 +#: ../../library/argparse.rst:1056 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:1058 +#: ../../library/argparse.rst:1060 msgid "" "Providing ``default=argparse.SUPPRESS`` causes no attribute to be added if " "the command-line argument was not present::" msgstr "" -#: ../../library/argparse.rst:1061 +#: ../../library/argparse.rst:1063 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default=argparse.SUPPRESS)\n" @@ -1536,11 +1539,11 @@ msgid "" "Namespace(foo='1')" msgstr "" -#: ../../library/argparse.rst:1072 +#: ../../library/argparse.rst:1074 msgid "type" msgstr "" -#: ../../library/argparse.rst:1074 +#: ../../library/argparse.rst:1076 msgid "" "By default, the parser reads command-line arguments in as simple strings. " "However, quite often the command-line string should instead be interpreted " @@ -1549,13 +1552,13 @@ msgid "" "checking and type conversions to be performed." msgstr "" -#: ../../library/argparse.rst:1080 +#: ../../library/argparse.rst:1082 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:1083 +#: ../../library/argparse.rst:1085 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 " @@ -1564,11 +1567,11 @@ msgid "" "is displayed. Other exception types are not handled." msgstr "" -#: ../../library/argparse.rst:1089 +#: ../../library/argparse.rst:1091 msgid "Common built-in types and functions can be used as type converters:" msgstr "" -#: ../../library/argparse.rst:1091 +#: ../../library/argparse.rst:1093 msgid "" "import argparse\n" "import pathlib\n" @@ -1581,11 +1584,11 @@ msgid "" "parser.add_argument('datapath', type=pathlib.Path)" msgstr "" -#: ../../library/argparse.rst:1103 +#: ../../library/argparse.rst:1105 msgid "User defined functions can be used as well:" msgstr "" -#: ../../library/argparse.rst:1105 +#: ../../library/argparse.rst:1107 msgid "" ">>> def hyphenated(string):\n" "... return '-'.join([word[:4] for word in string.casefold().split()])\n" @@ -1596,14 +1599,14 @@ msgid "" "Namespace(short_title='\"the-tale-of-two-citi')" msgstr "" -#: ../../library/argparse.rst:1115 +#: ../../library/argparse.rst:1117 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:1119 +#: ../../library/argparse.rst:1121 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> _ = parser.add_argument('--verbose', type=bool)\n" @@ -1611,13 +1614,13 @@ msgid "" "Namespace(verbose=True)" msgstr "" -#: ../../library/argparse.rst:1124 +#: ../../library/argparse.rst:1126 msgid "" "See :class:`BooleanOptionalAction` or ``action='store_true'`` for common " "alternatives." msgstr "" -#: ../../library/argparse.rst:1127 +#: ../../library/argparse.rst:1129 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 " @@ -1625,7 +1628,7 @@ msgid "" "management should be done downstream after the arguments are parsed." msgstr "" -#: ../../library/argparse.rst:1132 +#: ../../library/argparse.rst:1134 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." @@ -1633,7 +1636,7 @@ msgid "" "exception would not be handled at all." msgstr "" -#: ../../library/argparse.rst:1137 +#: ../../library/argparse.rst:1139 msgid "" "Even :class:`~argparse.FileType` has its limitations for use with the " "``type`` keyword. If one argument uses :class:`~argparse.FileType` and then " @@ -1643,17 +1646,17 @@ msgid "" "files." msgstr "" -#: ../../library/argparse.rst:1144 +#: ../../library/argparse.rst:1146 msgid "" "For type checkers that simply check against a fixed set of values, consider " "using the choices_ keyword instead." msgstr "" -#: ../../library/argparse.rst:1151 +#: ../../library/argparse.rst:1153 msgid "choices" msgstr "" -#: ../../library/argparse.rst:1153 +#: ../../library/argparse.rst:1155 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* " @@ -1662,7 +1665,7 @@ msgid "" "be displayed if the argument was not one of the acceptable values::" msgstr "" -#: ../../library/argparse.rst:1159 +#: ../../library/argparse.rst:1161 msgid "" ">>> parser = argparse.ArgumentParser(prog='game.py')\n" ">>> parser.add_argument('move', choices=['rock', 'paper', 'scissors'])\n" @@ -1674,33 +1677,33 @@ msgid "" "'paper', 'scissors')" msgstr "" -#: ../../library/argparse.rst:1168 +#: ../../library/argparse.rst:1170 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:1171 +#: ../../library/argparse.rst:1173 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:1174 +#: ../../library/argparse.rst:1176 msgid "" "Note that *choices* are checked after any type_ conversions have been " "performed, so objects in *choices* should match the type_ specified. This " "can make *choices* appear unfamiliar in usage, help, or error messages." msgstr "" -#: ../../library/argparse.rst:1179 +#: ../../library/argparse.rst:1181 msgid "" "To keep *choices* user-friendly, consider a custom type wrapper that " "converts and formats values, or omit type_ and handle conversion in your " "application code." msgstr "" -#: ../../library/argparse.rst:1183 +#: ../../library/argparse.rst:1185 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 " @@ -1708,11 +1711,11 @@ msgid "" "are many choices), just specify an explicit metavar_." msgstr "" -#: ../../library/argparse.rst:1192 +#: ../../library/argparse.rst:1194 msgid "required" msgstr "" -#: ../../library/argparse.rst:1194 +#: ../../library/argparse.rst:1196 msgid "" "In general, the :mod:`!argparse` module assumes that flags like ``-f`` and " "``--bar`` indicate *optional* arguments, which can always be omitted at the " @@ -1720,7 +1723,7 @@ msgid "" "the ``required=`` keyword argument to :meth:`~ArgumentParser.add_argument`::" msgstr "" -#: ../../library/argparse.rst:1199 +#: ../../library/argparse.rst:1201 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', required=True)\n" @@ -1731,24 +1734,24 @@ msgid "" ": error: the following arguments are required: --foo" msgstr "" -#: ../../library/argparse.rst:1207 +#: ../../library/argparse.rst:1209 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:1213 +#: ../../library/argparse.rst:1215 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:1220 +#: ../../library/argparse.rst:1222 msgid "help" msgstr "" -#: ../../library/argparse.rst:1222 +#: ../../library/argparse.rst:1224 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`` " @@ -1756,7 +1759,7 @@ msgid "" "each argument." msgstr "" -#: ../../library/argparse.rst:1227 +#: ../../library/argparse.rst:1229 msgid "" "The ``help`` strings can include various format specifiers to avoid " "repetition of things like the program name or the argument default_. The " @@ -1765,7 +1768,7 @@ msgid "" "``%(type)s``, etc.::" msgstr "" -#: ../../library/argparse.rst:1232 +#: ../../library/argparse.rst:1234 msgid "" ">>> parser = argparse.ArgumentParser(prog='frobble')\n" ">>> parser.add_argument('bar', nargs='?', type=int, default=42,\n" @@ -1780,19 +1783,19 @@ msgid "" " -h, --help show this help message and exit" msgstr "" -#: ../../library/argparse.rst:1244 +#: ../../library/argparse.rst:1246 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:1247 +#: ../../library/argparse.rst:1249 msgid "" ":mod:`!argparse` supports silencing the help entry for certain options, by " "setting the ``help`` value to ``argparse.SUPPRESS``::" msgstr "" -#: ../../library/argparse.rst:1250 +#: ../../library/argparse.rst:1252 msgid "" ">>> parser = argparse.ArgumentParser(prog='frobble')\n" ">>> parser.add_argument('--foo', help=argparse.SUPPRESS)\n" @@ -1803,11 +1806,11 @@ msgid "" " -h, --help show this help message and exit" msgstr "" -#: ../../library/argparse.rst:1262 +#: ../../library/argparse.rst:1264 msgid "metavar" msgstr "" -#: ../../library/argparse.rst:1264 +#: ../../library/argparse.rst:1266 msgid "" "When :class:`ArgumentParser` generates help messages, it needs some way to " "refer to each expected argument. By default, :class:`!ArgumentParser` " @@ -1819,7 +1822,7 @@ msgid "" "command-line argument will be referred to as ``FOO``. An example::" msgstr "" -#: ../../library/argparse.rst:1273 +#: ../../library/argparse.rst:1275 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo')\n" @@ -1837,11 +1840,11 @@ msgid "" " --foo FOO" msgstr "" -#: ../../library/argparse.rst:1288 +#: ../../library/argparse.rst:1290 msgid "An alternative name can be specified with ``metavar``::" msgstr "" -#: ../../library/argparse.rst:1290 +#: ../../library/argparse.rst:1292 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', metavar='YYY')\n" @@ -1859,21 +1862,21 @@ msgid "" " --foo YYY" msgstr "" -#: ../../library/argparse.rst:1305 +#: ../../library/argparse.rst:1307 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:1309 +#: ../../library/argparse.rst:1311 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:1313 +#: ../../library/argparse.rst:1315 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-x', nargs=2)\n" @@ -1887,11 +1890,11 @@ msgid "" " --foo bar baz" msgstr "" -#: ../../library/argparse.rst:1328 +#: ../../library/argparse.rst:1330 msgid "dest" msgstr "" -#: ../../library/argparse.rst:1330 +#: ../../library/argparse.rst:1332 msgid "" "Most :class:`ArgumentParser` actions add some value as an attribute of the " "object returned by :meth:`~ArgumentParser.parse_args`. The name of this " @@ -1901,7 +1904,7 @@ msgid "" "add_argument`::" msgstr "" -#: ../../library/argparse.rst:1337 +#: ../../library/argparse.rst:1339 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('bar')\n" @@ -1909,7 +1912,7 @@ msgid "" "Namespace(bar='XXX')" msgstr "" -#: ../../library/argparse.rst:1342 +#: ../../library/argparse.rst:1344 msgid "" "For optional argument actions, the value of ``dest`` is normally inferred " "from the option strings. :class:`ArgumentParser` generates the value of " @@ -1921,7 +1924,7 @@ msgid "" "below illustrate this behavior::" msgstr "" -#: ../../library/argparse.rst:1351 +#: ../../library/argparse.rst:1353 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('-f', '--foo-bar', '--foo')\n" @@ -1932,11 +1935,11 @@ msgid "" "Namespace(foo_bar='1', x='2')" msgstr "" -#: ../../library/argparse.rst:1359 +#: ../../library/argparse.rst:1361 msgid "``dest`` allows a custom attribute name to be provided::" msgstr "" -#: ../../library/argparse.rst:1361 +#: ../../library/argparse.rst:1363 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', dest='bar')\n" @@ -1944,7 +1947,7 @@ msgid "" "Namespace(bar='XXX')" msgstr "" -#: ../../library/argparse.rst:1366 +#: ../../library/argparse.rst:1368 msgid "" "Multiple arguments may share the same ``dest``. By default, the value from " "the last such argument given on the command line wins. Use " @@ -1953,11 +1956,11 @@ msgid "" "conflict_handler_." msgstr "" -#: ../../library/argparse.rst:1374 +#: ../../library/argparse.rst:1376 msgid "deprecated" msgstr "" -#: ../../library/argparse.rst:1376 +#: ../../library/argparse.rst:1378 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 " @@ -1968,7 +1971,7 @@ msgid "" "will be printed to :data:`sys.stderr` when the argument is used::" msgstr "" -#: ../../library/argparse.rst:1386 +#: ../../library/argparse.rst:1388 msgid "" ">>> import argparse\n" ">>> parser = argparse.ArgumentParser(prog='snake.py')\n" @@ -1980,11 +1983,11 @@ msgid "" "Namespace(legs=4)" msgstr "" -#: ../../library/argparse.rst:1399 +#: ../../library/argparse.rst:1401 msgid "Action classes" msgstr "" -#: ../../library/argparse.rst:1401 +#: ../../library/argparse.rst:1403 msgid "" ":class:`!Action` classes implement the Action API, a callable which returns " "a callable which processes arguments from the command-line. Any object which " @@ -1992,7 +1995,7 @@ msgid "" "`~ArgumentParser.add_argument`." msgstr "" -#: ../../library/argparse.rst:1410 +#: ../../library/argparse.rst:1412 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 " @@ -2001,7 +2004,7 @@ msgid "" "`ArgumentParser.add_argument` except for the ``action`` itself." msgstr "" -#: ../../library/argparse.rst:1416 +#: ../../library/argparse.rst:1418 msgid "" "Instances of :class:`!Action` (or return value of any callable to the " "``action`` parameter) should have attributes :attr:`!dest`, :attr:`!" @@ -2010,46 +2013,46 @@ msgid "" "is to call :meth:`!Action.__init__`." msgstr "" -#: ../../library/argparse.rst:1424 +#: ../../library/argparse.rst:1426 msgid "" ":class:`!Action` instances should be callable, so subclasses must override " "the :meth:`!__call__` method, which should accept four parameters:" msgstr "" -#: ../../library/argparse.rst:1427 +#: ../../library/argparse.rst:1429 msgid "" "*parser* - The :class:`ArgumentParser` object which contains this action." msgstr "" -#: ../../library/argparse.rst:1429 +#: ../../library/argparse.rst:1431 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:1433 +#: ../../library/argparse.rst:1435 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:1437 +#: ../../library/argparse.rst:1439 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:1441 +#: ../../library/argparse.rst:1443 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:1446 +#: ../../library/argparse.rst:1448 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 " @@ -2057,7 +2060,7 @@ msgid "" "will be used." msgstr "" -#: ../../library/argparse.rst:1452 +#: ../../library/argparse.rst:1454 msgid "" "A subclass of :class:`Action` for handling boolean flags with positive and " "negative options. Adding a single argument such as ``--foo`` automatically " @@ -2065,7 +2068,7 @@ msgid "" "``False`` respectively::" msgstr "" -#: ../../library/argparse.rst:1457 +#: ../../library/argparse.rst:1459 msgid "" ">>> import argparse\n" ">>> parser = argparse.ArgumentParser()\n" @@ -2074,47 +2077,47 @@ msgid "" "Namespace(foo=False)" msgstr "" -#: ../../library/argparse.rst:1467 +#: ../../library/argparse.rst:1469 msgid "The parse_args() method" msgstr "" -#: ../../library/argparse.rst:1471 +#: ../../library/argparse.rst:1473 msgid "" "Convert argument strings to objects and assign them as attributes of the " "namespace. Return the populated namespace." msgstr "" -#: ../../library/argparse.rst:1474 +#: ../../library/argparse.rst:1476 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:1478 +#: ../../library/argparse.rst:1480 msgid "" "args_ - List of strings to parse. The default is taken from :data:`sys." "argv`." msgstr "" -#: ../../library/argparse.rst:1481 +#: ../../library/argparse.rst:1483 msgid "" "namespace_ - An object to take the attributes. The default is a new empty :" "class:`Namespace` object." msgstr "" -#: ../../library/argparse.rst:1486 +#: ../../library/argparse.rst:1488 msgid "Option value syntax" msgstr "" -#: ../../library/argparse.rst:1488 +#: ../../library/argparse.rst:1490 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:1492 +#: ../../library/argparse.rst:1494 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-x')\n" @@ -2125,38 +2128,38 @@ msgid "" "Namespace(foo='FOO', x=None)" msgstr "" -#: ../../library/argparse.rst:1500 +#: ../../library/argparse.rst:1502 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:1504 +#: ../../library/argparse.rst:1506 msgid "" ">>> parser.parse_args(['--foo=FOO'])\n" "Namespace(foo='FOO', x=None)" msgstr "" -#: ../../library/argparse.rst:1507 +#: ../../library/argparse.rst:1509 msgid "" "For short options (options only one character long), the option and its " "value can be concatenated::" msgstr "" -#: ../../library/argparse.rst:1510 +#: ../../library/argparse.rst:1512 msgid "" ">>> parser.parse_args(['-xX'])\n" "Namespace(foo=None, x='X')" msgstr "" -#: ../../library/argparse.rst:1513 +#: ../../library/argparse.rst:1515 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:1516 +#: ../../library/argparse.rst:1518 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-x', action='store_true')\n" @@ -2166,11 +2169,11 @@ msgid "" "Namespace(x=True, y=True, z='Z')" msgstr "" -#: ../../library/argparse.rst:1525 +#: ../../library/argparse.rst:1527 msgid "Invalid arguments" msgstr "" -#: ../../library/argparse.rst:1527 +#: ../../library/argparse.rst:1529 msgid "" "While parsing the command line, :meth:`~ArgumentParser.parse_args` checks " "for a variety of errors, including ambiguous options, invalid types, invalid " @@ -2178,7 +2181,7 @@ msgid "" "an error, it exits and prints the error along with a usage message::" msgstr "" -#: ../../library/argparse.rst:1532 +#: ../../library/argparse.rst:1534 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('--foo', type=int)\n" @@ -2200,11 +2203,11 @@ msgid "" "PROG: error: unrecognized arguments: badger" msgstr "" -#: ../../library/argparse.rst:1553 +#: ../../library/argparse.rst:1555 msgid "Arguments containing ``-``" msgstr "" -#: ../../library/argparse.rst:1555 +#: ../../library/argparse.rst:1557 msgid "" "The :meth:`~ArgumentParser.parse_args` method attempts to give errors " "whenever the user has clearly made a mistake, but some situations are " @@ -2216,7 +2219,7 @@ msgid "" "negative numbers::" msgstr "" -#: ../../library/argparse.rst:1563 +#: ../../library/argparse.rst:1565 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-x')\n" @@ -2249,7 +2252,7 @@ msgid "" "PROG: error: argument -1: expected one argument" msgstr "" -#: ../../library/argparse.rst:1593 +#: ../../library/argparse.rst:1595 msgid "" "If you have positional arguments that must begin with ``-`` and don't look " "like negative numbers, you can insert the pseudo-argument ``'--'`` which " @@ -2257,37 +2260,37 @@ msgid "" "positional argument::" msgstr "" -#: ../../library/argparse.rst:1598 +#: ../../library/argparse.rst:1600 msgid "" ">>> parser.parse_args(['--', '-f'])\n" "Namespace(foo='-f', one=None)" msgstr "" -#: ../../library/argparse.rst:1601 +#: ../../library/argparse.rst:1603 msgid "" "See also :ref:`the argparse howto on ambiguous arguments ` for more details." msgstr "" -#: ../../library/argparse.rst:1604 +#: ../../library/argparse.rst:1606 msgid "" "Negative-number matching was expanded to include numbers in scientific " "notation (``-2.5e-6``), numbers containing underscores (``-1_234.5``), and " "complex numbers (``-1.2e-3j``)." msgstr "" -#: ../../library/argparse.rst:1612 +#: ../../library/argparse.rst:1614 msgid "Argument abbreviations (prefix matching)" msgstr "" -#: ../../library/argparse.rst:1614 +#: ../../library/argparse.rst:1616 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:1618 +#: ../../library/argparse.rst:1620 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-bacon')\n" @@ -2301,17 +2304,17 @@ msgid "" "PROG: error: ambiguous option: -ba could match -badger, -bacon" msgstr "" -#: ../../library/argparse.rst:1629 +#: ../../library/argparse.rst:1631 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:1635 +#: ../../library/argparse.rst:1637 msgid "Beyond ``sys.argv``" msgstr "" -#: ../../library/argparse.rst:1637 +#: ../../library/argparse.rst:1639 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 " @@ -2319,7 +2322,7 @@ msgid "" "useful for testing at the interactive prompt::" msgstr "" -#: ../../library/argparse.rst:1642 +#: ../../library/argparse.rst:1644 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument(\n" @@ -2334,24 +2337,24 @@ msgid "" "Namespace(accumulate=, integers=[1, 2, 3, 4])" msgstr "" -#: ../../library/argparse.rst:1657 +#: ../../library/argparse.rst:1659 msgid "The Namespace object" msgstr "" -#: ../../library/argparse.rst:1661 +#: ../../library/argparse.rst:1663 msgid "" "Simple class used by default by :meth:`~ArgumentParser.parse_args` to create " "an object holding attributes and return it." msgstr "" -#: ../../library/argparse.rst:1664 +#: ../../library/argparse.rst:1666 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:1668 +#: ../../library/argparse.rst:1670 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo')\n" @@ -2360,14 +2363,14 @@ msgid "" "{'foo': 'BAR'}" msgstr "" -#: ../../library/argparse.rst:1674 +#: ../../library/argparse.rst:1676 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:1678 +#: ../../library/argparse.rst:1680 msgid "" ">>> class C:\n" "... pass\n" @@ -2380,15 +2383,15 @@ msgid "" "'BAR'" msgstr "" -#: ../../library/argparse.rst:1690 +#: ../../library/argparse.rst:1692 msgid "Other utilities" msgstr "" -#: ../../library/argparse.rst:1693 +#: ../../library/argparse.rst:1695 msgid "Subcommands" msgstr "" -#: ../../library/argparse.rst:1700 +#: ../../library/argparse.rst:1702 msgid "" "Many programs split up their functionality into a number of subcommands, for " "example, the ``svn`` program can invoke subcommands like ``svn checkout``, " @@ -2403,69 +2406,69 @@ msgid "" "returns an :class:`!ArgumentParser` object that can be modified as usual." msgstr "" -#: ../../library/argparse.rst:1712 +#: ../../library/argparse.rst:1714 msgid "Description of parameters:" msgstr "" -#: ../../library/argparse.rst:1714 +#: ../../library/argparse.rst:1716 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:1718 +#: ../../library/argparse.rst:1720 msgid "" "*description* - description for the sub-parser group in help output, by " "default ``None``" msgstr "" -#: ../../library/argparse.rst:1721 +#: ../../library/argparse.rst:1723 msgid "" "*prog* - usage information that will be displayed with subcommand help, by " "default the name of the program and any positional arguments before the " "subparser argument" msgstr "" -#: ../../library/argparse.rst:1725 +#: ../../library/argparse.rst:1727 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:1728 +#: ../../library/argparse.rst:1730 msgid "" "action_ - the basic type of action to be taken when this argument is " "encountered at the command line" msgstr "" -#: ../../library/argparse.rst:1731 +#: ../../library/argparse.rst:1733 msgid "" "dest_ - name of the attribute under which subcommand name will be stored; by " "default ``None`` and no value is stored" msgstr "" -#: ../../library/argparse.rst:1734 +#: ../../library/argparse.rst:1736 msgid "" "required_ - Whether or not a subcommand must be provided, by default " "``False`` (added in 3.7)" msgstr "" -#: ../../library/argparse.rst:1737 +#: ../../library/argparse.rst:1739 msgid "help_ - help for sub-parser group in help output, by default ``None``" msgstr "" -#: ../../library/argparse.rst:1739 +#: ../../library/argparse.rst:1741 msgid "" "metavar_ - string presenting available subcommands in help; by default it is " "``None`` and presents subcommands in form {cmd1, cmd2, ..}" msgstr "" -#: ../../library/argparse.rst:1742 +#: ../../library/argparse.rst:1744 msgid "Some example usage::" msgstr "" -#: ../../library/argparse.rst:1744 +#: ../../library/argparse.rst:1746 msgid "" ">>> # create the top-level parser\n" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" @@ -2488,7 +2491,7 @@ msgid "" "Namespace(baz='Z', foo=True)" msgstr "" -#: ../../library/argparse.rst:1763 +#: ../../library/argparse.rst:1765 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 " @@ -2498,7 +2501,7 @@ msgid "" "``baz`` attributes are present." msgstr "" -#: ../../library/argparse.rst:1770 +#: ../../library/argparse.rst:1772 msgid "" "If a subparser defines an argument with the same ``dest`` as the parent " "parser, the two share a single namespace attribute, so the parent's value " @@ -2506,7 +2509,7 @@ msgid "" "both." msgstr "" -#: ../../library/argparse.rst:1775 +#: ../../library/argparse.rst:1777 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 " @@ -2515,7 +2518,7 @@ msgid "" "to :meth:`~_SubParsersAction.add_parser` as above.)" msgstr "" -#: ../../library/argparse.rst:1783 +#: ../../library/argparse.rst:1785 msgid "" ">>> parser.parse_args(['--help'])\n" "usage: PROG [-h] [--foo] {a,b} ...\n" @@ -2546,14 +2549,14 @@ msgid "" " --baz {X,Y,Z} baz help" msgstr "" -#: ../../library/argparse.rst:1811 +#: ../../library/argparse.rst:1813 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:1815 +#: ../../library/argparse.rst:1817 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> subparsers = parser.add_subparsers(title='subcommands',\n" @@ -2573,7 +2576,7 @@ msgid "" " {foo,bar} additional help" msgstr "" -#: ../../library/argparse.rst:1832 +#: ../../library/argparse.rst:1834 msgid "" "Furthermore, :meth:`~_SubParsersAction.add_parser` supports an additional " "*aliases* argument, which allows multiple strings to refer to the same " @@ -2581,7 +2584,7 @@ msgid "" "``checkout``::" msgstr "" -#: ../../library/argparse.rst:1837 +#: ../../library/argparse.rst:1839 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> subparsers = parser.add_subparsers()\n" @@ -2591,13 +2594,13 @@ msgid "" "Namespace(foo='bar')" msgstr "" -#: ../../library/argparse.rst:1844 +#: ../../library/argparse.rst:1846 msgid "" ":meth:`~_SubParsersAction.add_parser` supports also an additional " "*deprecated* argument, which allows to deprecate the subparser." msgstr "" -#: ../../library/argparse.rst:1858 +#: ../../library/argparse.rst:1860 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 " @@ -2605,7 +2608,7 @@ msgid "" "example::" msgstr "" -#: ../../library/argparse.rst:1863 +#: ../../library/argparse.rst:1865 msgid "" ">>> # subcommand functions\n" ">>> def foo(args):\n" @@ -2640,7 +2643,7 @@ msgid "" "((XYZYX))" msgstr "" -#: ../../library/argparse.rst:1895 +#: ../../library/argparse.rst:1897 msgid "" "This way, you can let :meth:`parse_args` do the job of calling the " "appropriate function after argument parsing is complete. Associating " @@ -2650,7 +2653,7 @@ msgid "" "argument to the :meth:`add_subparsers` call will work::" msgstr "" -#: ../../library/argparse.rst:1902 +#: ../../library/argparse.rst:1904 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> subparsers = parser.add_subparsers(dest='subparser_name')\n" @@ -2662,21 +2665,21 @@ msgid "" "Namespace(subparser_name='2', y='frobble')" msgstr "" -#: ../../library/argparse.rst:1911 +#: ../../library/argparse.rst:1913 msgid "New *required* keyword-only parameter." msgstr "" -#: ../../library/argparse.rst:1914 +#: ../../library/argparse.rst:1916 msgid "" "Subparser's *prog* is no longer affected by a custom usage message in the " "main parser." msgstr "" -#: ../../library/argparse.rst:1920 +#: ../../library/argparse.rst:1922 msgid "FileType objects" msgstr "" -#: ../../library/argparse.rst:1924 +#: ../../library/argparse.rst:1926 msgid "" "The :class:`FileType` factory creates objects that can be passed to the type " "argument of :meth:`ArgumentParser.add_argument`. Arguments that have :class:" @@ -2685,7 +2688,7 @@ msgid "" "the :func:`open` function for more details)::" msgstr "" -#: ../../library/argparse.rst:1930 +#: ../../library/argparse.rst:1932 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--raw', type=argparse.FileType('wb', 0))\n" @@ -2696,14 +2699,14 @@ msgid "" "raw=<_io.FileIO name='raw.dat' mode='wb'>)" msgstr "" -#: ../../library/argparse.rst:1936 +#: ../../library/argparse.rst:1938 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:1940 +#: ../../library/argparse.rst:1942 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('infile', type=argparse.FileType('r'))\n" @@ -2711,7 +2714,7 @@ msgid "" "Namespace(infile=<_io.TextIOWrapper name='' encoding='UTF-8'>)" msgstr "" -#: ../../library/argparse.rst:1947 +#: ../../library/argparse.rst:1949 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 " @@ -2720,15 +2723,15 @@ msgid "" "manage the files." msgstr "" -#: ../../library/argparse.rst:1953 +#: ../../library/argparse.rst:1955 msgid "Added the *encoding* and *errors* parameters." msgstr "" -#: ../../library/argparse.rst:1960 +#: ../../library/argparse.rst:1962 msgid "Argument groups" msgstr "" -#: ../../library/argparse.rst:1965 +#: ../../library/argparse.rst:1967 msgid "" "By default, :class:`ArgumentParser` groups command-line arguments into " "\"positional arguments\" and \"options\" when displaying help messages. When " @@ -2737,7 +2740,7 @@ msgid "" "method::" msgstr "" -#: ../../library/argparse.rst:1971 +#: ../../library/argparse.rst:1973 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)\n" ">>> group = parser.add_argument_group('group')\n" @@ -2751,7 +2754,7 @@ msgid "" " --foo FOO foo help" msgstr "" -#: ../../library/argparse.rst:1982 +#: ../../library/argparse.rst:1984 msgid "" "The :meth:`add_argument_group` method returns an argument group object which " "has an :meth:`~ArgumentParser.add_argument` method just like a regular :" @@ -2762,7 +2765,7 @@ msgid "" "this display::" msgstr "" -#: ../../library/argparse.rst:1990 +#: ../../library/argparse.rst:1992 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)\n" ">>> group1 = parser.add_argument_group('group1', 'group1 description')\n" @@ -2783,7 +2786,7 @@ msgid "" " --bar BAR bar help" msgstr "" -#: ../../library/argparse.rst:2008 +#: ../../library/argparse.rst:2010 msgid "" "The optional, keyword-only parameters argument_default_ and " "conflict_handler_ allow for finer-grained control of the behavior of the " @@ -2792,41 +2795,41 @@ msgid "" "rather than the entire parser." msgstr "" -#: ../../library/argparse.rst:2013 +#: ../../library/argparse.rst:2015 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:2016 +#: ../../library/argparse.rst:2018 msgid "" "Within each argument group, arguments are displayed in help output in the " "order in which they are added." msgstr "" -#: ../../library/argparse.rst:2019 +#: ../../library/argparse.rst:2021 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:2024 +#: ../../library/argparse.rst:2026 msgid "Passing prefix_chars_ to :meth:`add_argument_group` is now deprecated." msgstr "" -#: ../../library/argparse.rst:2030 +#: ../../library/argparse.rst:2032 msgid "Mutual exclusion" msgstr "" -#: ../../library/argparse.rst:2034 +#: ../../library/argparse.rst:2036 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:2038 +#: ../../library/argparse.rst:2040 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> group = parser.add_mutually_exclusive_group()\n" @@ -2841,14 +2844,14 @@ msgid "" "PROG: error: argument --bar: not allowed with argument --foo" msgstr "" -#: ../../library/argparse.rst:2050 +#: ../../library/argparse.rst:2052 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:2054 +#: ../../library/argparse.rst:2056 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> group = parser.add_mutually_exclusive_group(required=True)\n" @@ -2859,7 +2862,7 @@ msgid "" "PROG: error: one of the arguments --foo --bar is required" msgstr "" -#: ../../library/argparse.rst:2062 +#: ../../library/argparse.rst:2064 msgid "" "Note that currently mutually exclusive argument groups do not support the " "*title* and *description* arguments of :meth:`~ArgumentParser." @@ -2867,7 +2870,7 @@ msgid "" "argument group that has a title and description. For example::" msgstr "" -#: ../../library/argparse.rst:2068 +#: ../../library/argparse.rst:2070 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> group = parser.add_argument_group('Group title', 'Group description')\n" @@ -2887,7 +2890,7 @@ msgid "" " --bar BAR bar help" msgstr "" -#: ../../library/argparse.rst:2085 +#: ../../library/argparse.rst:2087 msgid "" "Calling :meth:`add_argument_group` or :meth:`add_mutually_exclusive_group` " "on a mutually exclusive group now raises an exception. This nesting was " @@ -2895,11 +2898,11 @@ msgid "" "exposed through inheritance." msgstr "" -#: ../../library/argparse.rst:2093 +#: ../../library/argparse.rst:2095 msgid "Parser defaults" msgstr "" -#: ../../library/argparse.rst:2097 +#: ../../library/argparse.rst:2099 msgid "" "Most of the time, the attributes of the object returned by :meth:" "`parse_args` will be fully determined by inspecting the command-line " @@ -2908,7 +2911,7 @@ msgid "" "command line to be added::" msgstr "" -#: ../../library/argparse.rst:2103 +#: ../../library/argparse.rst:2105 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('foo', type=int)\n" @@ -2917,7 +2920,7 @@ msgid "" "Namespace(bar=42, baz='badger', foo=736)" msgstr "" -#: ../../library/argparse.rst:2109 +#: ../../library/argparse.rst:2111 msgid "" "Note that defaults can be set at both the parser level using :meth:" "`set_defaults` and at the argument level using :meth:`add_argument`. If both " @@ -2925,7 +2928,7 @@ msgid "" "used::" msgstr "" -#: ../../library/argparse.rst:2113 +#: ../../library/argparse.rst:2115 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default='bar')\n" @@ -2934,20 +2937,20 @@ msgid "" "Namespace(foo='spam')" msgstr "" -#: ../../library/argparse.rst:2119 +#: ../../library/argparse.rst:2121 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:2125 +#: ../../library/argparse.rst:2127 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:2129 +#: ../../library/argparse.rst:2131 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default='badger')\n" @@ -2955,54 +2958,54 @@ msgid "" "'badger'" msgstr "" -#: ../../library/argparse.rst:2136 +#: ../../library/argparse.rst:2138 msgid "Printing help" msgstr "" -#: ../../library/argparse.rst:2138 +#: ../../library/argparse.rst:2140 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:2144 +#: ../../library/argparse.rst:2146 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:2150 +#: ../../library/argparse.rst:2152 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:2154 +#: ../../library/argparse.rst:2156 msgid "" "There are also variants of these methods that simply return a string instead " "of printing it:" msgstr "" -#: ../../library/argparse.rst:2159 +#: ../../library/argparse.rst:2161 msgid "" "Return a string containing a brief description of how the :class:" "`ArgumentParser` should be invoked on the command line." msgstr "" -#: ../../library/argparse.rst:2164 +#: ../../library/argparse.rst:2166 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:2169 +#: ../../library/argparse.rst:2171 msgid "Partial parsing" msgstr "" -#: ../../library/argparse.rst:2173 +#: ../../library/argparse.rst:2175 msgid "" "Sometimes a script only needs to handle a specific set of command-line " "arguments, leaving any unrecognized arguments for another script or program. " @@ -3010,7 +3013,7 @@ msgid "" "useful." msgstr "" -#: ../../library/argparse.rst:2178 +#: ../../library/argparse.rst:2180 msgid "" "This method works similarly to :meth:`~ArgumentParser.parse_args`, but it " "does not raise an error for extra, unrecognized arguments. Instead, it " @@ -3018,7 +3021,7 @@ msgid "" "populated namespace and the list of any unrecognized arguments." msgstr "" -#: ../../library/argparse.rst:2185 +#: ../../library/argparse.rst:2187 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', action='store_true')\n" @@ -3027,7 +3030,7 @@ msgid "" "(Namespace(bar='BAR', foo=True), ['--badger', 'spam'])" msgstr "" -#: ../../library/argparse.rst:2192 +#: ../../library/argparse.rst:2194 msgid "" ":ref:`Prefix matching ` rules apply to :meth:" "`~ArgumentParser.parse_known_args`. The parser may consume an option even if " @@ -3035,11 +3038,11 @@ msgid "" "remaining arguments list." msgstr "" -#: ../../library/argparse.rst:2199 +#: ../../library/argparse.rst:2201 msgid "Customizing file parsing" msgstr "" -#: ../../library/argparse.rst:2203 +#: ../../library/argparse.rst:2205 msgid "" "Arguments that are read from a file (see the *fromfile_prefix_chars* keyword " "argument to the :class:`ArgumentParser` constructor) are read one argument " @@ -3047,44 +3050,44 @@ msgid "" "reading." msgstr "" -#: ../../library/argparse.rst:2208 +#: ../../library/argparse.rst:2210 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:2212 +#: ../../library/argparse.rst:2214 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:2215 +#: ../../library/argparse.rst:2217 msgid "" "class MyArgumentParser(argparse.ArgumentParser):\n" " def convert_arg_line_to_args(self, arg_line):\n" " return arg_line.split()" msgstr "" -#: ../../library/argparse.rst:2219 +#: ../../library/argparse.rst:2221 msgid "" "Note that with this override an argument can no longer contain spaces, since " "each space-separated word becomes a separate argument." msgstr "" -#: ../../library/argparse.rst:2224 +#: ../../library/argparse.rst:2226 msgid "Exiting methods" msgstr "" -#: ../../library/argparse.rst:2228 +#: ../../library/argparse.rst:2230 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:2232 +#: ../../library/argparse.rst:2234 msgid "" "class ErrorCatchingArgumentParser(argparse.ArgumentParser):\n" " def exit(self, status=0, message=None):\n" @@ -3093,17 +3096,17 @@ msgid "" " exit(status)" msgstr "" -#: ../../library/argparse.rst:2240 +#: ../../library/argparse.rst:2242 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:2245 +#: ../../library/argparse.rst:2247 msgid "Intermixed parsing" msgstr "" -#: ../../library/argparse.rst:2250 +#: ../../library/argparse.rst:2252 msgid "" "A number of Unix commands allow the user to intermix optional arguments with " "positional arguments. The :meth:`~ArgumentParser.parse_intermixed_args` " @@ -3111,7 +3114,7 @@ msgid "" "parsing style." msgstr "" -#: ../../library/argparse.rst:2255 +#: ../../library/argparse.rst:2257 msgid "" "These parsers do not support all the :mod:`!argparse` features, and will " "raise exceptions if unsupported features are used. In particular, " @@ -3119,7 +3122,7 @@ msgid "" "positionals are not supported." msgstr "" -#: ../../library/argparse.rst:2260 +#: ../../library/argparse.rst:2262 msgid "" "The following example shows the difference between :meth:`~ArgumentParser." "parse_known_args` and :meth:`~ArgumentParser.parse_intermixed_args`: the " @@ -3127,7 +3130,7 @@ msgid "" "collects all the positionals into ``rest``. ::" msgstr "" -#: ../../library/argparse.rst:2266 +#: ../../library/argparse.rst:2268 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo')\n" @@ -3139,7 +3142,7 @@ msgid "" "Namespace(cmd='doit', foo='bar', rest=[1, 2, 3])" msgstr "" -#: ../../library/argparse.rst:2275 +#: ../../library/argparse.rst:2277 msgid "" ":meth:`~ArgumentParser.parse_known_intermixed_args` returns a two item tuple " "containing the populated namespace and the list of remaining argument " @@ -3147,11 +3150,11 @@ msgid "" "there are any remaining unparsed argument strings." msgstr "" -#: ../../library/argparse.rst:2284 +#: ../../library/argparse.rst:2286 msgid "Registering custom types or actions" msgstr "" -#: ../../library/argparse.rst:2288 +#: ../../library/argparse.rst:2290 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 " @@ -3159,7 +3162,7 @@ msgid "" "the type by their registered name instead of their callable name." msgstr "" -#: ../../library/argparse.rst:2293 +#: ../../library/argparse.rst:2295 msgid "" "The :meth:`!register` method accepts three arguments - a *registry_name*, " "specifying the internal registry where the object will be stored (e.g., " @@ -3167,12 +3170,12 @@ msgid "" "be registered, and object, the callable to be registered." msgstr "" -#: ../../library/argparse.rst:2298 +#: ../../library/argparse.rst:2300 msgid "" "The following example shows how to register a custom type with a parser::" msgstr "" -#: ../../library/argparse.rst:2300 +#: ../../library/argparse.rst:2302 msgid "" ">>> import argparse\n" ">>> parser = argparse.ArgumentParser()\n" @@ -3188,42 +3191,42 @@ msgid "" "PROG: error: argument --foo: invalid 'hexadecimal integer' value: '1.2'" msgstr "" -#: ../../library/argparse.rst:2312 +#: ../../library/argparse.rst:2314 msgid "Exceptions" msgstr "" -#: ../../library/argparse.rst:2316 +#: ../../library/argparse.rst:2318 msgid "An error from creating or using an argument (optional or positional)." msgstr "" -#: ../../library/argparse.rst:2318 +#: ../../library/argparse.rst:2320 msgid "" "The string value of this exception is the message, augmented with " "information about the argument that caused it." msgstr "" -#: ../../library/argparse.rst:2323 +#: ../../library/argparse.rst:2325 msgid "" "Raised when something goes wrong converting a command line string to a type." msgstr "" -#: ../../library/argparse.rst:2327 +#: ../../library/argparse.rst:2329 msgid "Guides and Tutorials" msgstr "" -#: ../../library/argparse.rst:907 +#: ../../library/argparse.rst:909 msgid "? (question mark)" msgstr "" -#: ../../library/argparse.rst:907 ../../library/argparse.rst:939 -#: ../../library/argparse.rst:953 +#: ../../library/argparse.rst:909 ../../library/argparse.rst:941 +#: ../../library/argparse.rst:955 msgid "in argparse module" msgstr "" -#: ../../library/argparse.rst:939 +#: ../../library/argparse.rst:941 msgid "* (asterisk)" msgstr "" -#: ../../library/argparse.rst:953 +#: ../../library/argparse.rst:955 msgid "+ (plus)" msgstr "" diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 0f054f6..8ae398f 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -492,7 +492,7 @@ 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``." +"given ``coro`` and raise :exc:`RuntimeError`." msgstr "" #: ../../library/asyncio-task.rst:363 diff --git a/library/asyncio.po b/library/asyncio.po index 6b27611..015a08e 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -37,7 +37,7 @@ msgstr "" msgid ":mod:`!asyncio` --- Asynchronous I/O" msgstr "" -#: ../../library/asyncio.rst:-1 +#: ../../library/asyncio.rst:9 msgid "Hello World!" msgstr "" diff --git a/library/codecs.po b/library/codecs.po index bb9b452..b3a1dbd 100644 --- a/library/codecs.po +++ b/library/codecs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -1326,15 +1326,15 @@ msgid "" "charmap encoded file starts with these byte values (which would e.g. map to" msgstr "" -#: ../../library/codecs.rst:0 +#: ../../library/codecs.rst:1049 msgid "LATIN SMALL LETTER I WITH DIAERESIS" msgstr "" -#: ../../library/codecs.rst:0 +#: ../../library/codecs.rst:1050 msgid "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" msgstr "" -#: ../../library/codecs.rst:0 +#: ../../library/codecs.rst:1051 msgid "INVERTED QUESTION MARK" msgstr "" diff --git a/library/collections.po b/library/collections.po index 5e9038e..1a6e9a6 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -893,9 +893,9 @@ 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::" +"zero. If that iterator is :term:`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:693 diff --git a/library/colorsys.po b/library/colorsys.po index a2b319a..a39b1d7 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -38,9 +38,9 @@ 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." +"More information about color spaces can be found at https://www.poynton.ca/" +"pdf/ColourFAQ.pdf and https://www.cambridgeincolour.com/tutorials/color-" +"spaces.htm." msgstr "" #: ../../library/colorsys.rst:27 diff --git a/library/datetime.po b/library/datetime.po index fc63f41..0ffb3cc 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -1004,11 +1004,11 @@ msgstr "" msgid "\\(3)" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:678 msgid "``date1 == date2``" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:679 msgid "``date1 != date2``" msgstr "" @@ -1016,19 +1016,19 @@ msgstr "" msgid "Equality comparison. (4)" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:681 msgid "``date1 < date2``" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:682 msgid "``date1 > date2``" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:683 msgid "``date1 <= date2``" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:684 msgid "``date1 >= date2``" msgstr "" @@ -1780,27 +1780,27 @@ msgstr "" msgid "``timedelta = datetime1 - datetime2``" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:1285 msgid "``datetime1 == datetime2``" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:1286 msgid "``datetime1 != datetime2``" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:1288 msgid "``datetime1 < datetime2``" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:1289 msgid "``datetime1 > datetime2``" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:1290 msgid "``datetime1 <= datetime2``" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:1291 msgid "``datetime1 >= datetime2``" msgstr "" @@ -3526,11 +3526,11 @@ msgstr "" msgid "Weekday as locale's abbreviated name." msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2542 msgid "Sun, Mon, ..., Sat (en_US);" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2544 msgid "So, Mo, ..., Sa (de_DE)" msgstr "" @@ -3542,11 +3542,11 @@ msgstr "" msgid "Weekday as locale's full name." msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2547 msgid "Sunday, Monday, ..., Saturday (en_US);" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2549 msgid "Sonntag, Montag, ..., Samstag (de_DE)" msgstr "" @@ -3589,11 +3589,11 @@ msgstr "" msgid "Month as locale's abbreviated name." msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2559 msgid "Jan, Feb, ..., Dec (en_US);" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2561 msgid "Jan, Feb, ..., Dez (de_DE)" msgstr "" @@ -3605,11 +3605,11 @@ msgstr "" msgid "Month as locale's full name." msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2564 msgid "January, February, ..., December (en_US);" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2566 msgid "Januar, Februar, ..., Dezember (de_DE)" msgstr "" @@ -3677,11 +3677,11 @@ msgstr "" msgid "Locale's equivalent of either AM or PM." msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2584 msgid "AM, PM (en_US);" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2585 msgid "am, pm (de_DE)" msgstr "" @@ -3810,11 +3810,11 @@ msgstr "" msgid "Locale's appropriate date and time representation." msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2624 msgid "Tue Aug 16 21:30:00 1988 (en_US);" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2626 msgid "Di 16 Aug 21:30:00 1988 (de_DE)" msgstr "" @@ -3826,15 +3826,15 @@ msgstr "" msgid "Locale's appropriate date representation." msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2629 msgid "08/16/88 (None);" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2630 msgid "08/16/1988 (en_US);" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2631 msgid "16.08.1988 (de_DE)" msgstr "" @@ -3846,11 +3846,11 @@ msgstr "" msgid "Locale's appropriate time representation." msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2633 msgid "21:30:00 (en_US);" msgstr "" -#: ../../library/datetime.rst:0 +#: ../../library/datetime.rst:2634 msgid "21:30:00 (de_DE)" msgstr "" diff --git a/library/dialog.po b/library/dialog.po index 152b8ac..7ab70d0 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -139,32 +139,32 @@ msgid "" "listed below:" msgstr "" -#: ../../library/dialog.rst:0 +#: ../../library/dialog.rst:114 msgid "*parent* - the window to place the dialog on top of" msgstr "" -#: ../../library/dialog.rst:0 +#: ../../library/dialog.rst:116 msgid "*title* - the title of the window" msgstr "" -#: ../../library/dialog.rst:0 +#: ../../library/dialog.rst:118 msgid "*initialdir* - the directory that the dialog starts in" msgstr "" -#: ../../library/dialog.rst:0 +#: ../../library/dialog.rst:120 msgid "*initialfile* - the file selected upon opening of the dialog" msgstr "" -#: ../../library/dialog.rst:0 +#: ../../library/dialog.rst:122 msgid "" "*filetypes* - a sequence of (label, pattern) tuples, '*' wildcard is allowed" msgstr "" -#: ../../library/dialog.rst:0 +#: ../../library/dialog.rst:124 msgid "*defaultextension* - default extension to append to file (save dialogs)" msgstr "" -#: ../../library/dialog.rst:0 +#: ../../library/dialog.rst:126 msgid "*multiple* - when true, selection of multiple items is allowed" msgstr "" diff --git a/library/dis.po b/library/dis.po index b0854fa..2282b62 100644 --- a/library/dis.po +++ b/library/dis.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -1512,8 +1512,8 @@ msgstr "" 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*." +"iterator below it). If the iterator indicates it is :term:`exhausted` then " +"the byte code counter is incremented by *delta*." msgstr "" #: ../../library/dis.rst:1430 diff --git a/library/enum.po b/library/enum.po index eea916e..2bc8494 100644 --- a/library/enum.po +++ b/library/enum.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: Transifex Bot <>, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -30,6 +30,10 @@ msgstr "" msgid "**Source code:** :source:`Lib/enum.py`" msgstr "" +#: ../../library/enum.rst:16 +msgid "Important" +msgstr "" + #: ../../library/enum.rst:18 msgid "" "This page contains the API reference information. For tutorial information " diff --git a/library/http.client.po b/library/http.client.po index 6a4ca46..655e647 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -301,7 +301,7 @@ msgid "" "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." +"iterable is :term:`exhausted`." msgstr "" #: ../../library/http.client.rst:274 diff --git a/library/importlib.metadata.po b/library/importlib.metadata.po index 04bb31a..3acf1e3 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -129,6 +129,7 @@ msgstr "" #: ../../library/importlib.metadata.rst:93 msgid "" +">>> from importlib.metadata import metadata\n" ">>> list(metadata('wheel'))\n" "['Metadata-Version', 'Name', 'Version', 'Summary', 'Home-page', 'Author', " "'Author-email', 'Maintainer', 'Maintainer-email', 'License', 'Project-URL', " @@ -139,33 +140,33 @@ msgid "" "'Requires-Dist']" msgstr "" -#: ../../library/importlib.metadata.rst:96 +#: ../../library/importlib.metadata.rst:97 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`." msgstr "" -#: ../../library/importlib.metadata.rst:103 +#: ../../library/importlib.metadata.rst:104 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:109 +#: ../../library/importlib.metadata.rst:110 msgid "Functional API" msgstr "" -#: ../../library/importlib.metadata.rst:111 +#: ../../library/importlib.metadata.rst:112 msgid "This package provides the following functionality via its public API." msgstr "" -#: ../../library/importlib.metadata.rst:117 +#: ../../library/importlib.metadata.rst:118 msgid "Entry points" msgstr "" -#: ../../library/importlib.metadata.rst:121 +#: ../../library/importlib.metadata.rst:122 msgid "" "Returns a :class:`EntryPoints` instance describing entry points for the " "current environment. Any given keyword parameters are passed to the :meth:`!" @@ -173,7 +174,7 @@ msgid "" "point definitions." msgstr "" -#: ../../library/importlib.metadata.rst:126 +#: ../../library/importlib.metadata.rst:127 msgid "" "Note: it is not currently possible to query for entry points based on their :" "attr:`!EntryPoint.dist` attribute (as different :class:`!Distribution` " @@ -181,22 +182,22 @@ msgid "" "attributes)" msgstr "" -#: ../../library/importlib.metadata.rst:132 +#: ../../library/importlib.metadata.rst:133 msgid "Details of a collection of installed entry points." msgstr "" -#: ../../library/importlib.metadata.rst:134 +#: ../../library/importlib.metadata.rst:135 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:140 +#: ../../library/importlib.metadata.rst:141 msgid "Details of an installed entry point." msgstr "" -#: ../../library/importlib.metadata.rst:142 +#: ../../library/importlib.metadata.rst:143 msgid "" "Each :class:`!EntryPoint` instance has ``.name``, ``.group``, and ``.value`` " "attributes and a ``.load()`` method to resolve the value. There are also ``." @@ -205,76 +206,76 @@ msgid "" "regarding the distribution package that provides the entry point." msgstr "" -#: ../../library/importlib.metadata.rst:148 +#: ../../library/importlib.metadata.rst:149 msgid "Query all entry points::" msgstr "" -#: ../../library/importlib.metadata.rst:150 +#: ../../library/importlib.metadata.rst:151 msgid ">>> eps = entry_points()" msgstr "" -#: ../../library/importlib.metadata.rst:152 +#: ../../library/importlib.metadata.rst:153 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:156 +#: ../../library/importlib.metadata.rst:157 msgid "" ">>> sorted(eps.groups)\n" "['console_scripts', 'distutils.commands', 'distutils.setup_keywords', " "'egg_info.writers', 'setuptools.installation']" msgstr "" -#: ../../library/importlib.metadata.rst:159 +#: ../../library/importlib.metadata.rst:160 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:163 +#: ../../library/importlib.metadata.rst:164 msgid ">>> scripts = eps.select(group='console_scripts')" msgstr "" -#: ../../library/importlib.metadata.rst:165 +#: ../../library/importlib.metadata.rst:166 msgid "" "Equivalently, since :func:`!entry_points` passes keyword arguments through " "to select::" msgstr "" -#: ../../library/importlib.metadata.rst:168 +#: ../../library/importlib.metadata.rst:169 msgid ">>> scripts = entry_points(group='console_scripts')" msgstr "" -#: ../../library/importlib.metadata.rst:170 +#: ../../library/importlib.metadata.rst:171 msgid "" "Pick out a specific script named \"wheel\" (found in the wheel project)::" msgstr "" -#: ../../library/importlib.metadata.rst:172 +#: ../../library/importlib.metadata.rst:173 msgid "" ">>> 'wheel' in scripts.names\n" "True\n" ">>> wheel = scripts['wheel']" msgstr "" -#: ../../library/importlib.metadata.rst:176 +#: ../../library/importlib.metadata.rst:177 msgid "Equivalently, query for that entry point during selection::" msgstr "" -#: ../../library/importlib.metadata.rst:178 +#: ../../library/importlib.metadata.rst:179 msgid "" ">>> (wheel,) = entry_points(group='console_scripts', name='wheel')\n" ">>> (wheel,) = entry_points().select(group='console_scripts', name='wheel')" msgstr "" -#: ../../library/importlib.metadata.rst:181 +#: ../../library/importlib.metadata.rst:182 msgid "Inspect the resolved entry point::" msgstr "" -#: ../../library/importlib.metadata.rst:183 +#: ../../library/importlib.metadata.rst:184 msgid "" ">>> wheel\n" "EntryPoint(name='wheel', value='wheel.cli:main', group='console_scripts')\n" @@ -289,7 +290,7 @@ msgid "" "" msgstr "" -#: ../../library/importlib.metadata.rst:195 +#: ../../library/importlib.metadata.rst:196 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 " @@ -298,7 +299,7 @@ msgid "" "their definition, and usage." msgstr "" -#: ../../library/importlib.metadata.rst:201 +#: ../../library/importlib.metadata.rst:202 msgid "" "The \"selectable\" entry points were introduced in ``importlib_metadata`` " "3.6 and Python 3.10. Prior to those changes, ``entry_points`` accepted no " @@ -308,146 +309,146 @@ msgid "" "entry_points_selectable` for compatibility options." msgstr "" -#: ../../library/importlib.metadata.rst:210 +#: ../../library/importlib.metadata.rst:211 msgid "" "``EntryPoint`` objects no longer present a tuple-like interface (:meth:" "`~object.__getitem__`)." msgstr "" -#: ../../library/importlib.metadata.rst:217 +#: ../../library/importlib.metadata.rst:218 msgid "Distribution metadata" msgstr "" -#: ../../library/importlib.metadata.rst:221 +#: ../../library/importlib.metadata.rst:222 msgid "" "Return the distribution metadata corresponding to the named distribution " "package as a :class:`PackageMetadata` instance." msgstr "" -#: ../../library/importlib.metadata.rst:224 -#: ../../library/importlib.metadata.rst:273 -#: ../../library/importlib.metadata.rst:294 -#: ../../library/importlib.metadata.rst:357 -#: ../../library/importlib.metadata.rst:408 +#: ../../library/importlib.metadata.rst:225 +#: ../../library/importlib.metadata.rst:274 +#: ../../library/importlib.metadata.rst:295 +#: ../../library/importlib.metadata.rst:358 +#: ../../library/importlib.metadata.rst:409 msgid "" "Raises :exc:`PackageNotFoundError` if the named distribution package is not " "installed in the current Python environment." msgstr "" -#: ../../library/importlib.metadata.rst:229 +#: ../../library/importlib.metadata.rst:230 msgid "" "A concrete implementation of the `PackageMetadata protocol `_." msgstr "" -#: ../../library/importlib.metadata.rst:232 +#: ../../library/importlib.metadata.rst:233 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:235 +#: ../../library/importlib.metadata.rst:236 msgid "" "Every `Distribution Package `_ includes some metadata, which you can extract " "using the :func:`!metadata` function::" msgstr "" -#: ../../library/importlib.metadata.rst:238 +#: ../../library/importlib.metadata.rst:239 msgid ">>> wheel_metadata = metadata('wheel')" msgstr "" -#: ../../library/importlib.metadata.rst:240 +#: ../../library/importlib.metadata.rst:241 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:243 +#: ../../library/importlib.metadata.rst:244 msgid "" ">>> wheel_metadata['Requires-Python']\n" "'>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*'" msgstr "" -#: ../../library/importlib.metadata.rst:246 +#: ../../library/importlib.metadata.rst:247 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:249 +#: ../../library/importlib.metadata.rst:250 msgid "" ">>> wheel_metadata.json['requires_python']\n" "'>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*'" msgstr "" -#: ../../library/importlib.metadata.rst:252 -#: ../../library/importlib.metadata.rst:451 +#: ../../library/importlib.metadata.rst:253 +#: ../../library/importlib.metadata.rst:452 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:255 +#: ../../library/importlib.metadata.rst:256 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:259 +#: ../../library/importlib.metadata.rst:260 msgid "The ``json`` attribute was added." msgstr "" -#: ../../library/importlib.metadata.rst:265 +#: ../../library/importlib.metadata.rst:266 msgid "Distribution versions" msgstr "" -#: ../../library/importlib.metadata.rst:269 +#: ../../library/importlib.metadata.rst:270 msgid "" "Return the installed distribution package `version `__ for the named " "distribution package." msgstr "" -#: ../../library/importlib.metadata.rst:276 +#: ../../library/importlib.metadata.rst:277 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:280 +#: ../../library/importlib.metadata.rst:281 msgid "" ">>> version('wheel')\n" "'0.32.3'" msgstr "" -#: ../../library/importlib.metadata.rst:287 +#: ../../library/importlib.metadata.rst:288 msgid "Distribution files" msgstr "" -#: ../../library/importlib.metadata.rst:291 +#: ../../library/importlib.metadata.rst:292 msgid "" "Return the full set of files contained within the named distribution package." msgstr "" -#: ../../library/importlib.metadata.rst:297 +#: ../../library/importlib.metadata.rst:298 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:303 +#: ../../library/importlib.metadata.rst:304 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:307 +#: ../../library/importlib.metadata.rst:308 msgid "" "The :func:`!files` function takes a `Distribution Package `_ name and returns " @@ -455,7 +456,7 @@ msgid "" "class:`PackagePath` instance. For example::" msgstr "" -#: ../../library/importlib.metadata.rst:312 +#: ../../library/importlib.metadata.rst:313 msgid "" ">>> util = [p for p in files('wheel') if 'util.py' in str(p)][0]\n" ">>> util\n" @@ -468,11 +469,11 @@ msgid "" "" msgstr "" -#: ../../library/importlib.metadata.rst:322 +#: ../../library/importlib.metadata.rst:323 msgid "Once you have the file, you can also read its contents::" msgstr "" -#: ../../library/importlib.metadata.rst:324 +#: ../../library/importlib.metadata.rst:325 msgid "" ">>> print(util.read_text())\n" "import base64\n" @@ -484,19 +485,19 @@ msgid "" " return s" msgstr "" -#: ../../library/importlib.metadata.rst:333 +#: ../../library/importlib.metadata.rst:334 msgid "" "You can also use the :meth:`!locate` method to get the absolute path to the " "file::" msgstr "" -#: ../../library/importlib.metadata.rst:336 +#: ../../library/importlib.metadata.rst:337 msgid "" ">>> util.locate()\n" "PosixPath('/home/gustav/example/lib/site-packages/wheel/util.py')" msgstr "" -#: ../../library/importlib.metadata.rst:339 +#: ../../library/importlib.metadata.rst:340 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 " @@ -506,47 +507,47 @@ msgid "" "distribution is not known to have the metadata present." msgstr "" -#: ../../library/importlib.metadata.rst:350 +#: ../../library/importlib.metadata.rst:351 msgid "Distribution requirements" msgstr "" -#: ../../library/importlib.metadata.rst:354 +#: ../../library/importlib.metadata.rst:355 msgid "" "Return the declared dependency specifiers for the named distribution package." msgstr "" -#: ../../library/importlib.metadata.rst:360 +#: ../../library/importlib.metadata.rst:361 msgid "" "To get the full set of requirements for a `Distribution Package `_, use " "the :func:`!requires` function::" msgstr "" -#: ../../library/importlib.metadata.rst:364 +#: ../../library/importlib.metadata.rst:365 msgid "" ">>> requires('wheel')\n" "[\"pytest (>=3.0.0) ; extra == 'test'\", \"pytest-cov ; extra == 'test'\"]" msgstr "" -#: ../../library/importlib.metadata.rst:372 +#: ../../library/importlib.metadata.rst:373 msgid "Mapping import to distribution packages" msgstr "" -#: ../../library/importlib.metadata.rst:376 +#: ../../library/importlib.metadata.rst:377 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:380 +#: ../../library/importlib.metadata.rst:381 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:384 +#: ../../library/importlib.metadata.rst:385 msgid "" "A convenience method to resolve the `Distribution Package `_ name (or names, " @@ -555,42 +556,42 @@ msgid "" "glossary/#term-Import-Package>`_::" msgstr "" -#: ../../library/importlib.metadata.rst:389 +#: ../../library/importlib.metadata.rst:390 msgid "" ">>> packages_distributions()\n" "{'importlib_metadata': ['importlib-metadata'], 'yaml': ['PyYAML'], 'jaraco': " "['jaraco.classes', 'jaraco.functools'], ...}" msgstr "" -#: ../../library/importlib.metadata.rst:392 +#: ../../library/importlib.metadata.rst:393 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:401 +#: ../../library/importlib.metadata.rst:402 msgid "Distributions" msgstr "" -#: ../../library/importlib.metadata.rst:405 +#: ../../library/importlib.metadata.rst:406 msgid "" "Return a :class:`Distribution` instance describing the named distribution " "package." msgstr "" -#: ../../library/importlib.metadata.rst:413 +#: ../../library/importlib.metadata.rst:414 msgid "Details of an installed distribution package." msgstr "" -#: ../../library/importlib.metadata.rst:415 +#: ../../library/importlib.metadata.rst:416 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:419 +#: ../../library/importlib.metadata.rst:420 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` " @@ -601,7 +602,7 @@ msgid "" "package by calling the :func:`distribution` function::" msgstr "" -#: ../../library/importlib.metadata.rst:426 +#: ../../library/importlib.metadata.rst:427 msgid "" ">>> from importlib.metadata import distribution\n" ">>> dist = distribution('wheel')\n" @@ -609,25 +610,25 @@ msgid "" "" msgstr "" -#: ../../library/importlib.metadata.rst:431 +#: ../../library/importlib.metadata.rst:432 msgid "" "Thus, an alternative way to get the version number is through the :class:`!" "Distribution` instance::" msgstr "" -#: ../../library/importlib.metadata.rst:434 +#: ../../library/importlib.metadata.rst:435 msgid "" ">>> dist.version\n" "'0.32.3'" msgstr "" -#: ../../library/importlib.metadata.rst:437 +#: ../../library/importlib.metadata.rst:438 msgid "" "There are all kinds of additional metadata available on :class:`!" "Distribution` instances::" msgstr "" -#: ../../library/importlib.metadata.rst:440 +#: ../../library/importlib.metadata.rst:441 msgid "" ">>> dist.metadata['Requires-Python']\n" "'>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*'\n" @@ -635,27 +636,27 @@ msgid "" "'MIT'" msgstr "" -#: ../../library/importlib.metadata.rst:445 +#: ../../library/importlib.metadata.rst:446 msgid "" "For editable packages, an ``origin`` property may present :pep:`610` " "metadata::" msgstr "" -#: ../../library/importlib.metadata.rst:448 +#: ../../library/importlib.metadata.rst:449 msgid "" ">>> dist.origin.url\n" "'file:///path/to/wheel-0.32.3.editable-py3-none-any.whl'" msgstr "" -#: ../../library/importlib.metadata.rst:454 +#: ../../library/importlib.metadata.rst:455 msgid "The ``.origin`` property was added." msgstr "" -#: ../../library/importlib.metadata.rst:458 +#: ../../library/importlib.metadata.rst:459 msgid "Distribution Discovery" msgstr "" -#: ../../library/importlib.metadata.rst:460 +#: ../../library/importlib.metadata.rst:461 msgid "" "By default, this package provides built-in support for discovery of metadata " "for file system and zip file `Distribution Package `_ metadata is not available through :" @@ -699,13 +700,13 @@ msgid "" "`sys.meta_path`." msgstr "" -#: ../../library/importlib.metadata.rst:486 +#: ../../library/importlib.metadata.rst:487 msgid "" "The implementation has hooks integrated into the ``PathFinder``, serving " "metadata for distribution packages found on the file system." msgstr "" -#: ../../library/importlib.metadata.rst:489 +#: ../../library/importlib.metadata.rst:490 msgid "" "The abstract class :py:class:`importlib.abc.MetaPathFinder` defines the " "interface expected of finders by Python's import system. ``importlib." @@ -715,7 +716,7 @@ msgid "" "base class, which defines this abstract method::" msgstr "" -#: ../../library/importlib.metadata.rst:497 +#: ../../library/importlib.metadata.rst:498 msgid "" "@abc.abstractmethod\n" "def find_distributions(context=DistributionFinder.Context()) -> " @@ -725,14 +726,14 @@ msgid "" " \"\"\"" msgstr "" -#: ../../library/importlib.metadata.rst:503 +#: ../../library/importlib.metadata.rst:504 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:507 +#: ../../library/importlib.metadata.rst:508 msgid "" "In practice, to support finding distribution package metadata in locations " "other than the file system, subclass ``Distribution`` and implement the " @@ -740,15 +741,15 @@ msgid "" "derived ``Distribution`` in the ``find_distributions()`` method." msgstr "" -#: ../../library/importlib.metadata.rst:514 +#: ../../library/importlib.metadata.rst:515 msgid "Example" msgstr "" -#: ../../library/importlib.metadata.rst:516 +#: ../../library/importlib.metadata.rst:517 msgid "Imagine a custom finder that loads Python modules from a database::" msgstr "" -#: ../../library/importlib.metadata.rst:518 +#: ../../library/importlib.metadata.rst:519 msgid "" "class DatabaseImporter(importlib.abc.MetaPathFinder):\n" " def __init__(self, db):\n" @@ -760,14 +761,14 @@ msgid "" "sys.meta_path.append(DatabaseImporter(connect_db(...)))" msgstr "" -#: ../../library/importlib.metadata.rst:527 +#: ../../library/importlib.metadata.rst:528 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:532 +#: ../../library/importlib.metadata.rst:533 msgid "" "from importlib.metadata import DistributionFinder\n" "\n" @@ -780,7 +781,7 @@ msgid "" " yield DatabaseDistribution(dist_record)" msgstr "" -#: ../../library/importlib.metadata.rst:542 +#: ../../library/importlib.metadata.rst:543 msgid "" "In this way, ``query_distributions`` would return records for each " "distribution served by the database matching the query. For example, if " @@ -789,7 +790,7 @@ msgid "" "``Context(name=None)``." msgstr "" -#: ../../library/importlib.metadata.rst:548 +#: ../../library/importlib.metadata.rst:549 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 " @@ -802,11 +803,11 @@ msgid "" "``context.path`` and only yield ``Distribution``\\ s pertinent to that path." msgstr "" -#: ../../library/importlib.metadata.rst:559 +#: ../../library/importlib.metadata.rst:560 msgid "``DatabaseDistribution``, then, would look something like::" msgstr "" -#: ../../library/importlib.metadata.rst:561 +#: ../../library/importlib.metadata.rst:562 msgid "" "class DatabaseDistribution(importlib.metadata.Distribution):\n" " def __init__(self, record):\n" @@ -829,14 +830,14 @@ msgid "" " raise RuntimeError(\"This distribution has no file system\")" msgstr "" -#: ../../library/importlib.metadata.rst:581 +#: ../../library/importlib.metadata.rst:582 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:586 +#: ../../library/importlib.metadata.rst:587 msgid "" "The ``DatabaseDistribution`` may also provide other metadata files, like " "``RECORD`` (required for ``Distribution.files``) or override the " diff --git a/library/index.po b/library/index.po index 1d46983..0f58006 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -18,31 +18,37 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../../library/index.rst:5 -msgid "The Python Standard Library" +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 " -"library that is distributed with Python. It also describes some of the " -"optional components that are commonly included in Python distributions." +"This library reference manual describes the standard library distributed " +"with Python. It also describes some of the optional components that are " +"commonly included in Python distributions." msgstr "" -#: ../../library/index.rst:13 +#: ../../library/index.rst:11 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 " -"library contains built-in modules (written in C) that provide access to " -"system functionality such as file I/O that would otherwise be inaccessible " -"to Python programmers, as well as modules written in Python that provide " +"Elsewhere, :ref:`reference-index` describes the exact syntax and semantics " +"of the Python language, and :ref:`builtins-index` describes the built-in " +"functions." +msgstr "" + +#: ../../library/index.rst:15 +msgid "" +"Python's standard library is extensive, offering a wide range of facilities " +"as indicated by the long table of contents listed below. The library " +"contains built-in modules (written in C) that provide access to system " +"functionality such as file I/O that would otherwise be inaccessible to " +"Python programmers, as well as modules written in Python that provide " "standardized solutions for many problems that occur in everyday programming. " "Some of these modules are explicitly designed to encourage and enhance the " "portability of Python programs by abstracting away platform-specifics into " "platform-neutral APIs." msgstr "" -#: ../../library/index.rst:23 +#: ../../library/index.rst:25 msgid "" "The Python installers for the Windows platform usually include the entire " "standard library and often also include many additional components. For Unix-" @@ -51,7 +57,7 @@ msgid "" "the operating system to obtain some or all of the optional components." msgstr "" -#: ../../library/index.rst:30 +#: ../../library/index.rst:32 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/intro.po b/library/intro.po index dd643ac..2ab84e6 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -26,87 +26,59 @@ msgid "Introduction" msgstr "" #: ../../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 " -"Python language core defines the form of literals and places some " -"constraints on their semantics, but does not fully define the semantics. " -"(On the other hand, the language core does define syntactic properties like " -"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` " -"statement. Some of these are defined by the core language, but many are not " -"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 " -"built in to the Python interpreter; others are written in Python and " -"imported in source form. Some modules provide interfaces that are highly " -"specific to Python, like printing a stack trace; some provide interfaces " -"that are specific to particular operating systems, such as access to " -"specific hardware; others provide interfaces that are specific to a " -"particular application domain, like the World Wide Web. Some modules are " -"available in all versions and ports of Python; others are only available " -"when the underlying system supports or requires them; yet others are " -"available only when a particular configuration option was chosen at the time " -"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 " -"the available modules and application areas that are supported by the Python " +"The Python standard library consists of a collection of modules. There are " +"many ways to dissect this collection. Most modules are written in Python, " +"but some are written in C. All can be imported into your program to add " +"functionality. Some modules provide interfaces that are highly specific to " +"Python, like printing a stack trace; some provide interfaces that are " +"specific to particular operating systems, such as access to specific " +"hardware; others provide interfaces that are specific to a particular " +"application domain, like web development. Some modules are available in all " +"versions and ports of Python; others are only available when the underlying " +"system supports or requires them; yet others are available only when a " +"particular configuration option was chosen at the time when Python was " +"compiled and installed." +msgstr "" + +#: ../../library/intro.rst:19 +msgid "" +"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 the " +"available modules and application areas that are supported by the Python " "library. Of course, you don't *have* to read it like a novel --- you can " "also browse the table of contents (in front of the manual), or look for a " "specific function, module or term in the index (in the back). And finally, " -"if you enjoy learning about random subjects, you choose a random page number " -"(see module :mod:`random`) and read a section or two. Regardless of the " -"order in which you read the sections of this manual, it helps to start with " -"chapter :ref:`built-in-funcs`, as the remainder of the manual assumes " -"familiarity with this material." +"if you enjoy learning about random subjects, you choose a random page and " +"read a section or two. Regardless of the order in which you read the " +"sections of this manual, it helps to first read :ref:`built-in-funcs`, as " +"the remainder of this section assumes familiarity with this material." msgstr "" -#: ../../library/intro.rst:48 -msgid "Let the show begin!" +#: ../../library/intro.rst:33 +msgid "" +"The built-in functions and classes (which can be used without an :keyword:" +"`import` statement) are described in :ref:`builtins-index`." msgstr "" -#: ../../library/intro.rst:54 +#: ../../library/intro.rst:40 msgid "Notes on availability" msgstr "" -#: ../../library/intro.rst:56 +#: ../../library/intro.rst:42 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 +#: ../../library/intro.rst:46 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 +#: ../../library/intro.rst:49 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 " @@ -114,11 +86,11 @@ msgid "" "3.17 or newer and glibc 2.27 or newer." msgstr "" -#: ../../library/intro.rst:71 +#: ../../library/intro.rst:57 msgid "WebAssembly platforms" msgstr "" -#: ../../library/intro.rst:73 +#: ../../library/intro.rst:59 msgid "" "The `WebAssembly`_ platforms ``wasm32-emscripten`` (`Emscripten`_) and " "``wasm32-wasi`` (`WASI`_) provide a subset of POSIX APIs. WebAssembly " @@ -132,7 +104,7 @@ msgid "" "loop." msgstr "" -#: ../../library/intro.rst:83 +#: ../../library/intro.rst:69 msgid "" "The properties and behavior of Python on WebAssembly platforms depend on the " "`Emscripten`_-SDK or `WASI`_-SDK version, WASM runtimes (browser, NodeJS, " @@ -141,7 +113,7 @@ msgid "" "the future." msgstr "" -#: ../../library/intro.rst:89 +#: ../../library/intro.rst:75 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 " @@ -150,7 +122,7 @@ msgid "" "``XMLHttpRequest`` and ``Fetch`` APIs." msgstr "" -#: ../../library/intro.rst:95 +#: ../../library/intro.rst:81 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." @@ -159,7 +131,7 @@ msgid "" "importable but does not work." msgstr "" -#: ../../library/intro.rst:101 +#: ../../library/intro.rst:87 msgid "" "The :mod:`socket` module is available, but is limited and behaves " "differently from other platforms. On Emscripten, sockets are always non-" @@ -169,31 +141,31 @@ msgid "" "file descriptor." msgstr "" -#: ../../library/intro.rst:108 +#: ../../library/intro.rst:94 msgid "" "Some functions are stubs that either don't do anything and always return " "hardcoded values." msgstr "" -#: ../../library/intro.rst:111 +#: ../../library/intro.rst:97 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 +#: ../../library/intro.rst:113 msgid "Mobile platforms" msgstr "" -#: ../../library/intro.rst:129 +#: ../../library/intro.rst:115 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 +#: ../../library/intro.rst:119 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:" @@ -202,11 +174,11 @@ msgid "" "`using-android` and :ref:`using-ios`." msgstr "" -#: ../../library/intro.rst:139 +#: ../../library/intro.rst:125 msgid "Subprocesses:" msgstr "" -#: ../../library/intro.rst:141 +#: ../../library/intro.rst:127 msgid "" "On Android, creating subprocesses is possible but `officially unsupported " "`__. In " @@ -214,7 +186,7 @@ msgid "" "mod:`multiprocessing` is not available." msgstr "" -#: ../../library/intro.rst:146 +#: ../../library/intro.rst:132 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 " @@ -224,18 +196,18 @@ msgid "" "APIs that exist for this purpose." msgstr "" -#: ../../library/intro.rst:153 +#: ../../library/intro.rst:139 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 +#: ../../library/intro.rst:143 msgid "Console input and output:" msgstr "" -#: ../../library/intro.rst:159 +#: ../../library/intro.rst:145 msgid "" "On Android, the native ``stdout`` and ``stderr`` are not connected to " "anything, so Python installs its own streams which redirect messages to the " @@ -243,7 +215,7 @@ msgid "" "stderr`` respectively." msgstr "" -#: ../../library/intro.rst:164 +#: ../../library/intro.rst:150 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 " @@ -253,14 +225,14 @@ msgid "" "``stderr``." msgstr "" -#: ../../library/intro.rst:171 +#: ../../library/intro.rst:157 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 +#: ../../library/intro.rst:161 msgid "" "As a result, Python modules that involve console manipulation (such as :mod:" "`curses` and :mod:`readline`) are not available on mobile platforms." diff --git a/library/itertools.po b/library/itertools.po index 9ec22f1..1233858 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -514,8 +514,8 @@ msgstr "" 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 " -"is yielded as soon as the batch is full or when the input iterable is " -"exhausted:" +"is yielded as soon as the batch is full or when the input iterable is :term:" +"`exhausted`:" msgstr "" #: ../../library/itertools.rst:166 @@ -545,10 +545,10 @@ msgstr "" #: ../../library/itertools.rst:193 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 " -"are exhausted. This combines multiple data sources into a single iterator. " -"Roughly equivalent to::" +"Make an iterator that returns elements from the first iterable until it is :" +"term:`exhausted`, then proceeds to the next iterable, until all of the " +"iterables are exhausted. This combines multiple data sources into a single " +"iterator. Roughly equivalent to::" msgstr "" #: ../../library/itertools.rst:198 @@ -678,7 +678,7 @@ msgstr "" 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::" +"iterables have been :term:`exhausted`. Roughly equivalent to::" msgstr "" #: ../../library/itertools.rst:306 @@ -720,8 +720,8 @@ msgstr "" #: ../../library/itertools.rst:338 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::" +"each. When the iterable is :term:`exhausted`, return elements from the " +"saved copy. Repeats indefinitely. Roughly equivalent to::" msgstr "" #: ../../library/itertools.rst:342 @@ -883,8 +883,8 @@ msgstr "" #: ../../library/itertools.rst:469 msgid "" -"If *stop* is ``None``, iteration continues until the input is exhausted, if " -"at all. Otherwise, it stops at the specified position." +"If *stop* is ``None``, iteration continues until the input is :term:" +"`exhausted`, if at all. Otherwise, it stops at the specified position." msgstr "" #: ../../library/itertools.rst:472 @@ -1144,9 +1144,10 @@ 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." +"*takewhile* has been run to :term:`exhaustion `. To work around " +"this problem, consider using `more-itertools before_and_after() `__ instead." msgstr "" #: ../../library/itertools.rst:683 @@ -1248,7 +1249,7 @@ msgid "" msgstr "" #: ../../library/itertools.rst:764 -msgid "Iteration continues until the longest iterable is exhausted." +msgid "Iteration continues until the longest iterable is :term:`exhausted`." msgstr "" #: ../../library/itertools.rst:768 diff --git a/library/json.po b/library/json.po index 095c8b1..4c9ac2d 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -316,15 +316,15 @@ msgid "" "If ``True``, dictionaries will be outputted sorted by key. Default ``False``." msgstr "" -#: ../../library/json.rst:240 ../../library/json.rst:527 +#: ../../library/json.rst:240 ../../library/json.rst:529 msgid "Allow strings for *indent* in addition to integers." msgstr "" -#: ../../library/json.rst:243 ../../library/json.rst:535 +#: ../../library/json.rst:243 ../../library/json.rst:537 msgid "Use ``(',', ': ')`` as default if *indent* is not ``None``." msgstr "" -#: ../../library/json.rst:246 ../../library/json.rst:345 +#: ../../library/json.rst:246 ../../library/json.rst:347 msgid "" "All optional parameters are now :ref:`keyword-only `." msgstr "" @@ -342,29 +342,31 @@ msgid "" "dictionary is converted into JSON, all the keys of the dictionary are " "coerced to strings. As a result of this, if a dictionary is converted into " "JSON and then back into a dictionary, the dictionary may not equal the " -"original one. That is, ``loads(dumps(x)) != x`` if x has non-string keys." +"original one. That is, ``loads(dumps(x)) != x`` if x has non-string keys. " +"*sort_keys* sorts the keys before they are coerced to strings, so numeric " +"keys are sorted by value, not by their string representation." msgstr "" -#: ../../library/json.rst:272 +#: ../../library/json.rst:274 msgid "" "Deserialize *fp* to a Python object using the :ref:`JSON-to-Python " "conversion table `." msgstr "" -#: ../../library/json.rst:275 +#: ../../library/json.rst:277 msgid "" "A ``.read()``-supporting :term:`text file` or :term:`binary file` containing " "the JSON document to be deserialized." msgstr "" -#: ../../library/json.rst:280 +#: ../../library/json.rst:282 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." msgstr "" -#: ../../library/json.rst:287 +#: ../../library/json.rst:289 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 " @@ -373,7 +375,7 @@ msgid "" "Default ``None``." msgstr "" -#: ../../library/json.rst:297 +#: ../../library/json.rst:299 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 " @@ -382,7 +384,7 @@ msgid "" "takes priority. Default ``None``." msgstr "" -#: ../../library/json.rst:307 +#: ../../library/json.rst:309 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)``. " @@ -390,7 +392,7 @@ msgid "" "class:`decimal.Decimal`." msgstr "" -#: ../../library/json.rst:315 +#: ../../library/json.rst:317 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)``. " @@ -398,7 +400,7 @@ msgid "" "class:`float`." msgstr "" -#: ../../library/json.rst:323 +#: ../../library/json.rst:325 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 " @@ -409,38 +411,38 @@ msgstr "" msgid "Raises" msgstr "" -#: ../../library/json.rst:331 +#: ../../library/json.rst:333 msgid "When the data being deserialized is not a valid JSON document." msgstr "" -#: ../../library/json.rst:334 +#: ../../library/json.rst:336 msgid "" "When the data being deserialized does not contain UTF-8, UTF-16 or UTF-32 " "encoded data." msgstr "" -#: ../../library/json.rst:340 +#: ../../library/json.rst:342 msgid "Added the optional *object_pairs_hook* parameter." msgstr "" -#: ../../library/json.rst:341 +#: ../../library/json.rst:343 msgid "*parse_constant* doesn't get called on 'null', 'true', 'false' anymore." msgstr "" -#: ../../library/json.rst:346 +#: ../../library/json.rst:348 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:349 +#: ../../library/json.rst:351 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:357 +#: ../../library/json.rst:359 msgid "" "Identical to :func:`load`, but instead of a file-like object, deserialize " "*s* (a :class:`str`, :class:`bytes` or :class:`bytearray` instance " @@ -448,107 +450,107 @@ msgid "" "table `." msgstr "" -#: ../../library/json.rst:362 +#: ../../library/json.rst:364 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:366 +#: ../../library/json.rst:368 msgid "The keyword argument *encoding* has been removed." msgstr "" -#: ../../library/json.rst:371 +#: ../../library/json.rst:373 msgid "Encoders and Decoders" msgstr "" -#: ../../library/json.rst:375 +#: ../../library/json.rst:377 msgid "Simple JSON decoder." msgstr "" -#: ../../library/json.rst:377 +#: ../../library/json.rst:379 msgid "Performs the following translations in decoding by default:" msgstr "" -#: ../../library/json.rst:382 ../../library/json.rst:470 +#: ../../library/json.rst:384 ../../library/json.rst:472 msgid "JSON" msgstr "" -#: ../../library/json.rst:382 ../../library/json.rst:470 +#: ../../library/json.rst:384 ../../library/json.rst:472 msgid "Python" msgstr "" -#: ../../library/json.rst:384 ../../library/json.rst:472 +#: ../../library/json.rst:386 ../../library/json.rst:474 msgid "object" msgstr "" -#: ../../library/json.rst:384 ../../library/json.rst:472 +#: ../../library/json.rst:386 ../../library/json.rst:474 msgid "dict" msgstr "" -#: ../../library/json.rst:386 ../../library/json.rst:474 +#: ../../library/json.rst:388 ../../library/json.rst:476 msgid "array" msgstr "Array" -#: ../../library/json.rst:386 +#: ../../library/json.rst:388 msgid "list" msgstr "" -#: ../../library/json.rst:388 ../../library/json.rst:476 +#: ../../library/json.rst:390 ../../library/json.rst:478 msgid "string" msgstr "" -#: ../../library/json.rst:388 ../../library/json.rst:476 +#: ../../library/json.rst:390 ../../library/json.rst:478 msgid "str" msgstr "" -#: ../../library/json.rst:390 +#: ../../library/json.rst:392 msgid "number (int)" msgstr "" -#: ../../library/json.rst:390 +#: ../../library/json.rst:392 msgid "int" msgstr "" -#: ../../library/json.rst:392 +#: ../../library/json.rst:394 msgid "number (real)" msgstr "" -#: ../../library/json.rst:392 +#: ../../library/json.rst:394 msgid "float" msgstr "" -#: ../../library/json.rst:394 ../../library/json.rst:480 +#: ../../library/json.rst:396 ../../library/json.rst:482 msgid "true" msgstr "Wahr" -#: ../../library/json.rst:394 ../../library/json.rst:480 +#: ../../library/json.rst:396 ../../library/json.rst:482 msgid "True" msgstr "" -#: ../../library/json.rst:396 ../../library/json.rst:482 +#: ../../library/json.rst:398 ../../library/json.rst:484 msgid "false" msgstr "Falsch" -#: ../../library/json.rst:396 ../../library/json.rst:482 +#: ../../library/json.rst:398 ../../library/json.rst:484 msgid "False" msgstr "" -#: ../../library/json.rst:398 ../../library/json.rst:484 +#: ../../library/json.rst:400 ../../library/json.rst:486 msgid "null" msgstr "" -#: ../../library/json.rst:398 ../../library/json.rst:484 +#: ../../library/json.rst:400 ../../library/json.rst:486 msgid "None" msgstr "" -#: ../../library/json.rst:401 +#: ../../library/json.rst:403 msgid "" "It also understands ``NaN``, ``Infinity``, and ``-Infinity`` as their " "corresponding ``float`` values, which is outside the JSON spec." msgstr "" -#: ../../library/json.rst:404 +#: ../../library/json.rst:406 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 " @@ -556,7 +558,7 @@ msgid "" "g. to support `JSON-RPC `_ class hinting)." msgstr "" -#: ../../library/json.rst:409 +#: ../../library/json.rst:411 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 " @@ -565,11 +567,11 @@ msgid "" "*object_hook* is also defined, the *object_pairs_hook* takes priority." msgstr "" -#: ../../library/json.rst:415 +#: ../../library/json.rst:417 msgid "Added support for *object_pairs_hook*." msgstr "" -#: ../../library/json.rst:418 +#: ../../library/json.rst:420 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 " @@ -577,7 +579,7 @@ msgid "" "JSON floats (e.g. :class:`decimal.Decimal`)." msgstr "" -#: ../../library/json.rst:423 +#: ../../library/json.rst:425 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 " @@ -585,14 +587,14 @@ msgid "" "JSON integers (e.g. :class:`float`)." msgstr "" -#: ../../library/json.rst:428 +#: ../../library/json.rst:430 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:432 +#: ../../library/json.rst:434 msgid "" "If *strict* is false (``True`` is the default), then control characters will " "be allowed inside strings. Control characters in this context are those " @@ -600,66 +602,66 @@ msgid "" "``'\\n'``, ``'\\r'`` and ``'\\0'``." msgstr "" -#: ../../library/json.rst:437 +#: ../../library/json.rst:439 msgid "" "If the data being deserialized is not a valid JSON document, a :exc:" "`JSONDecodeError` will be raised." msgstr "" -#: ../../library/json.rst:440 ../../library/json.rst:543 +#: ../../library/json.rst:442 ../../library/json.rst:545 msgid "All parameters are now :ref:`keyword-only `." msgstr "" -#: ../../library/json.rst:445 +#: ../../library/json.rst:447 msgid "" "Return the Python representation of *s* (a :class:`str` instance containing " "a JSON document)." msgstr "" -#: ../../library/json.rst:448 +#: ../../library/json.rst:450 msgid "" ":exc:`JSONDecodeError` will be raised if the given JSON document is not " "valid." msgstr "" -#: ../../library/json.rst:453 +#: ../../library/json.rst:455 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:457 +#: ../../library/json.rst:459 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:463 +#: ../../library/json.rst:465 msgid "Extensible JSON encoder for Python data structures." msgstr "" -#: ../../library/json.rst:465 +#: ../../library/json.rst:467 msgid "Supports the following objects and types by default:" msgstr "" -#: ../../library/json.rst:474 +#: ../../library/json.rst:476 msgid "list, tuple" msgstr "" -#: ../../library/json.rst:478 +#: ../../library/json.rst:480 msgid "int, float, int- & float-derived Enums" msgstr "" -#: ../../library/json.rst:478 +#: ../../library/json.rst:480 msgid "number" msgstr "" -#: ../../library/json.rst:487 +#: ../../library/json.rst:489 msgid "Added support for int- and float-derived Enum classes." msgstr "" -#: ../../library/json.rst:490 +#: ../../library/json.rst:492 msgid "" "To extend this to recognize other objects, subclass and implement a :meth:" "`~JSONEncoder.default` method with another method that returns a " @@ -667,7 +669,7 @@ msgid "" "superclass implementation (to raise :exc:`TypeError`)." msgstr "" -#: ../../library/json.rst:495 +#: ../../library/json.rst:497 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:" @@ -675,7 +677,7 @@ msgid "" "simply skipped." msgstr "" -#: ../../library/json.rst:499 +#: ../../library/json.rst:501 msgid "" "If *ensure_ascii* is true (the default), the output is guaranteed to have " "all incoming non-ASCII and non-printable characters escaped. If " @@ -684,7 +686,7 @@ msgid "" "control characters U+0000 through U+001F." msgstr "" -#: ../../library/json.rst:505 +#: ../../library/json.rst:507 msgid "" "If *check_circular* is true (the default), then lists, dicts, and custom " "encoded objects will be checked for circular references during encoding to " @@ -692,7 +694,7 @@ msgid "" "Otherwise, no such check takes place." msgstr "" -#: ../../library/json.rst:510 +#: ../../library/json.rst:512 msgid "" "If *allow_nan* is true (the default), then ``NaN``, ``Infinity``, and ``-" "Infinity`` will be encoded as such. This behavior is not JSON specification " @@ -700,14 +702,14 @@ msgid "" "decoders. Otherwise, it will be a :exc:`ValueError` to encode such floats." msgstr "" -#: ../../library/json.rst:516 +#: ../../library/json.rst:518 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:520 +#: ../../library/json.rst:522 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 " @@ -717,7 +719,7 @@ msgid "" "``\"\\t\"``), that string is used to indent each level." msgstr "" -#: ../../library/json.rst:530 +#: ../../library/json.rst:532 msgid "" "If specified, *separators* should be an ``(item_separator, key_separator)`` " "tuple. The default is ``(', ', ': ')`` if *indent* is ``None`` and ``(',', " @@ -725,7 +727,7 @@ msgid "" "specify ``(',', ':')`` to eliminate whitespace." msgstr "" -#: ../../library/json.rst:538 +#: ../../library/json.rst:540 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 " @@ -733,20 +735,20 @@ msgid "" "`TypeError` is raised." msgstr "" -#: ../../library/json.rst:549 +#: ../../library/json.rst:551 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`)." msgstr "" -#: ../../library/json.rst:553 +#: ../../library/json.rst:555 msgid "" "For example, to support arbitrary iterators, you could implement :meth:" "`~JSONEncoder.default` like this::" msgstr "" -#: ../../library/json.rst:556 +#: ../../library/json.rst:558 msgid "" "def default(self, o):\n" " try:\n" @@ -759,63 +761,63 @@ msgid "" " return super().default(o)" msgstr "" -#: ../../library/json.rst:569 +#: ../../library/json.rst:571 msgid "" "Return a JSON string representation of a Python data structure, *o*. For " "example::" msgstr "" -#: ../../library/json.rst:572 +#: ../../library/json.rst:574 msgid "" ">>> json.JSONEncoder().encode({\"foo\": [\"bar\", \"baz\"]})\n" "'{\"foo\": [\"bar\", \"baz\"]}'" msgstr "" -#: ../../library/json.rst:578 +#: ../../library/json.rst:580 msgid "" "Encode the given object, *o*, and yield each string representation as " "available. For example::" msgstr "" -#: ../../library/json.rst:581 +#: ../../library/json.rst:583 msgid "" "for chunk in json.JSONEncoder().iterencode(bigobject):\n" " mysocket.write(chunk)" msgstr "" -#: ../../library/json.rst:586 +#: ../../library/json.rst:588 msgid "Exceptions" msgstr "Ausnahmen" -#: ../../library/json.rst:590 +#: ../../library/json.rst:592 msgid "Subclass of :exc:`ValueError` with the following additional attributes:" msgstr "" -#: ../../library/json.rst:594 +#: ../../library/json.rst:596 msgid "The unformatted error message." msgstr "" -#: ../../library/json.rst:598 +#: ../../library/json.rst:600 msgid "The JSON document being parsed." msgstr "" -#: ../../library/json.rst:602 +#: ../../library/json.rst:604 msgid "The start index of *doc* where parsing failed." msgstr "" -#: ../../library/json.rst:606 +#: ../../library/json.rst:608 msgid "The line corresponding to *pos*." msgstr "" -#: ../../library/json.rst:610 +#: ../../library/json.rst:612 msgid "The column corresponding to *pos*." msgstr "" -#: ../../library/json.rst:616 +#: ../../library/json.rst:618 msgid "Standard Compliance and Interoperability" msgstr "" -#: ../../library/json.rst:618 +#: ../../library/json.rst:620 msgid "" "The JSON format is specified by :rfc:`7159` and by `ECMA-404 `_. This " @@ -824,48 +826,48 @@ msgid "" "parameters other than those explicitly mentioned, are not considered." msgstr "" -#: ../../library/json.rst:624 +#: ../../library/json.rst:626 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:627 +#: ../../library/json.rst:629 msgid "Infinite and NaN number values are accepted and output;" msgstr "" -#: ../../library/json.rst:628 +#: ../../library/json.rst:630 msgid "" "Repeated names within an object are accepted, and only the value of the last " "name-value pair is used." msgstr "" -#: ../../library/json.rst:631 +#: ../../library/json.rst:633 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:636 +#: ../../library/json.rst:638 msgid "Character Encodings" msgstr "" -#: ../../library/json.rst:638 +#: ../../library/json.rst:640 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:641 +#: ../../library/json.rst:643 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 printable ASCII characters." msgstr "" -#: ../../library/json.rst:645 +#: ../../library/json.rst:647 msgid "" "Other than the *ensure_ascii* parameter, this module is defined strictly in " "terms of conversion between Python objects and :class:`Unicode strings " @@ -873,7 +875,7 @@ msgid "" "encodings." msgstr "" -#: ../../library/json.rst:650 +#: ../../library/json.rst:652 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 " @@ -882,7 +884,7 @@ msgid "" "an initial BOM is present." msgstr "" -#: ../../library/json.rst:656 +#: ../../library/json.rst:658 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 " @@ -891,18 +893,18 @@ msgid "" "class:`str`) code points for such sequences." msgstr "" -#: ../../library/json.rst:664 +#: ../../library/json.rst:666 msgid "Infinite and NaN Number Values" msgstr "" -#: ../../library/json.rst:666 +#: ../../library/json.rst:668 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:670 +#: ../../library/json.rst:672 msgid "" ">>> # Neither of these calls raises an exception, but the results are not " "valid JSON\n" @@ -917,18 +919,18 @@ msgid "" "nan" msgstr "" -#: ../../library/json.rst:681 +#: ../../library/json.rst:683 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:687 +#: ../../library/json.rst:689 msgid "Repeated Names Within an Object" msgstr "" -#: ../../library/json.rst:689 +#: ../../library/json.rst:691 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 " @@ -936,22 +938,22 @@ msgid "" "but the last name-value pair for a given name::" msgstr "" -#: ../../library/json.rst:694 +#: ../../library/json.rst:696 msgid "" ">>> weird_json = '{\"x\": 1, \"x\": 2, \"x\": 3}'\n" ">>> json.loads(weird_json)\n" "{'x': 3}" msgstr "" -#: ../../library/json.rst:698 +#: ../../library/json.rst:700 msgid "The *object_pairs_hook* parameter can be used to alter this behavior." msgstr "" -#: ../../library/json.rst:702 +#: ../../library/json.rst:704 msgid "Top-level Non-Object, Non-Array Values" msgstr "" -#: ../../library/json.rst:704 +#: ../../library/json.rst:706 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 " @@ -961,43 +963,43 @@ msgid "" "its serializer or its deserializer." msgstr "" -#: ../../library/json.rst:711 +#: ../../library/json.rst:713 msgid "" "Regardless, for maximum interoperability, you may wish to voluntarily adhere " "to the restriction yourself." msgstr "" -#: ../../library/json.rst:716 +#: ../../library/json.rst:718 msgid "Implementation Limitations" msgstr "" -#: ../../library/json.rst:718 +#: ../../library/json.rst:720 msgid "Some JSON deserializer implementations may set limits on:" msgstr "" -#: ../../library/json.rst:720 +#: ../../library/json.rst:722 msgid "the size of accepted JSON texts" msgstr "" -#: ../../library/json.rst:721 +#: ../../library/json.rst:723 msgid "the maximum level of nesting of JSON objects and arrays" msgstr "" -#: ../../library/json.rst:722 +#: ../../library/json.rst:724 msgid "the range and precision of JSON numbers" msgstr "" -#: ../../library/json.rst:723 +#: ../../library/json.rst:725 msgid "the content and maximum length of JSON strings" msgstr "" -#: ../../library/json.rst:725 +#: ../../library/json.rst:727 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:728 +#: ../../library/json.rst:730 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 " @@ -1008,28 +1010,28 @@ msgid "" "as :class:`decimal.Decimal`." msgstr "" -#: ../../library/json.rst:741 +#: ../../library/json.rst:743 msgid "Command-line interface" msgstr "" -#: ../../library/json.rst:746 +#: ../../library/json.rst:748 msgid "**Source code:** :source:`Lib/json/tool.py`" msgstr "" -#: ../../library/json.rst:750 +#: ../../library/json.rst:752 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:754 +#: ../../library/json.rst:756 msgid "" "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:757 +#: ../../library/json.rst:759 msgid "" "$ echo '{\"json\": \"obj\"}' | python -m json\n" "{\n" @@ -1039,28 +1041,28 @@ msgid "" "Expecting property name enclosed in double quotes: line 1 column 2 (char 1)" msgstr "" -#: ../../library/json.rst:766 +#: ../../library/json.rst:768 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:771 +#: ../../library/json.rst:773 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:778 +#: ../../library/json.rst:780 msgid "Command-line options" msgstr "" -#: ../../library/json.rst:782 +#: ../../library/json.rst:784 msgid "The JSON file to be validated or pretty-printed:" msgstr "" -#: ../../library/json.rst:784 +#: ../../library/json.rst:786 msgid "" "$ python -m json mp_films.json\n" "[\n" @@ -1075,43 +1077,43 @@ msgid "" "]" msgstr "" -#: ../../library/json.rst:798 +#: ../../library/json.rst:800 msgid "If *infile* is not specified, read from :data:`sys.stdin`." msgstr "" -#: ../../library/json.rst:802 +#: ../../library/json.rst:804 msgid "" "Write the output of the *infile* to the given *outfile*. Otherwise, write it " "to :data:`sys.stdout`." msgstr "" -#: ../../library/json.rst:807 +#: ../../library/json.rst:809 msgid "Sort the output of dictionaries alphabetically by key." msgstr "" -#: ../../library/json.rst:813 +#: ../../library/json.rst:815 msgid "" "Disable escaping of non-ascii characters, see :func:`json.dumps` for more " "information." msgstr "" -#: ../../library/json.rst:819 +#: ../../library/json.rst:821 msgid "Parse every input line as separate JSON object." msgstr "" -#: ../../library/json.rst:825 +#: ../../library/json.rst:827 msgid "Mutually exclusive options for whitespace control." msgstr "" -#: ../../library/json.rst:831 +#: ../../library/json.rst:833 msgid "Show the help message." msgstr "" -#: ../../library/json.rst:835 +#: ../../library/json.rst:837 msgid "Footnotes" msgstr "Fußnoten" -#: ../../library/json.rst:836 +#: ../../library/json.rst:838 msgid "" "As noted in `the errata for RFC 7159 `_, JSON permits literal U+2028 (LINE SEPARATOR) " diff --git a/library/logging.config.po b/library/logging.config.po index 1dbb2fd..4513eff 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -25,6 +25,10 @@ msgstr "" msgid "**Source code:** :source:`Lib/logging/config.py`" msgstr "" +#: ../../library/logging.config.rst:12 +msgid "Important" +msgstr "" + #: ../../library/logging.config.rst:14 msgid "" "This page contains only reference information. For tutorials, please see" @@ -778,7 +782,7 @@ msgid "" " 'bar' : 'baz',\n" " 'spam' : 99.9,\n" " 'answer' : 42,\n" -" '.' {\n" +" '.' : {\n" " 'foo': 'bar',\n" " 'baz': 'bozz'\n" " }\n" diff --git a/library/logging.handlers.po b/library/logging.handlers.po index 4328db4..13a0737 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -25,6 +25,10 @@ msgstr "" msgid "**Source code:** :source:`Lib/logging/handlers.py`" msgstr "" +#: ../../library/logging.handlers.rst:12 +msgid "Important" +msgstr "" + #: ../../library/logging.handlers.rst:14 msgid "" "This page contains only reference information. For tutorials, please see" diff --git a/library/logging.po b/library/logging.po index 26be6c3..de1bba3 100644 --- a/library/logging.po +++ b/library/logging.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -29,6 +29,10 @@ msgstr "" msgid "**Source code:** :source:`Lib/logging/__init__.py`" msgstr "" +#: ../../library/logging.rst:14 +msgid "Important" +msgstr "" + #: ../../library/logging.rst:16 msgid "" "This page contains the API reference information. For tutorial information " diff --git a/library/multiprocessing.po b/library/multiprocessing.po index 73c70d7..22a5337 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -3323,7 +3323,7 @@ msgid "" msgstr "" #: ../../library/multiprocessing.rst:2531 -msgid "A lazier version of :meth:`.map`." +msgid "An iterator-based version of :meth:`.map`." msgstr "" #: ../../library/multiprocessing.rst:2533 diff --git a/library/os.po b/library/os.po index ccae838..61fedf1 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -3133,8 +3133,8 @@ msgstr "" #: ../../library/os.rst:2902 msgid "" -"This is called automatically when the iterator is exhausted or garbage " -"collected, or when an error happens during iterating. However it is " +"This is called automatically when the iterator is :term:`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 "" diff --git a/library/pdb.po b/library/pdb.po index 88560ae..23393e6 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -1092,7 +1092,7 @@ msgid "" "def inner(x):\n" " 1 / x\n" "\n" -" out()" +"out()" msgstr "" #: ../../library/pdb.rst:838 diff --git a/library/sys.monitoring.po b/library/sys.monitoring.po index 8da2b77..8360492 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -91,7 +91,7 @@ msgstr "" msgid "Unregister all events and callback functions associated with *tool_id*." msgstr "" -#: ../../library/sys.monitoring.rst:59 +#: ../../library/sys.monitoring.rst:61 msgid "" "Should be called once a tool no longer requires *tool_id*. Will call :func:" "`clear_tool_id` before releasing *tool_id*." @@ -99,17 +99,24 @@ msgstr "" #: ../../library/sys.monitoring.rst:64 msgid "" +"Now calls :func:`clear_tool_id` before releasing *tool_id*. Previously, it " +"would not disable global or local events associated with *tool_id*, nor " +"unregister any callback functions." +msgstr "" + +#: ../../library/sys.monitoring.rst:71 +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 +#: ../../library/sys.monitoring.rst:75 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 +#: ../../library/sys.monitoring.rst:78 msgid "" "sys.monitoring.DEBUGGER_ID = 0\n" "sys.monitoring.COVERAGE_ID = 1\n" @@ -117,121 +124,121 @@ msgid "" "sys.monitoring.OPTIMIZER_ID = 5" msgstr "" -#: ../../library/sys.monitoring.rst:78 +#: ../../library/sys.monitoring.rst:85 msgid "Events" msgstr "" -#: ../../library/sys.monitoring.rst:80 +#: ../../library/sys.monitoring.rst:87 msgid "The following events are supported:" msgstr "" -#: ../../library/sys.monitoring.rst:84 +#: ../../library/sys.monitoring.rst:91 msgid "A conditional branch goes left." msgstr "" -#: ../../library/sys.monitoring.rst:86 +#: ../../library/sys.monitoring.rst:93 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 +#: ../../library/sys.monitoring.rst:99 msgid "A conditional branch goes right." msgstr "" -#: ../../library/sys.monitoring.rst:96 +#: ../../library/sys.monitoring.rst:103 msgid "A call in Python code (event occurs before the call)." msgstr "" -#: ../../library/sys.monitoring.rst:100 +#: ../../library/sys.monitoring.rst:107 msgid "" "An exception raised from any callable, except for Python functions (event " "occurs after the exit)." msgstr "" -#: ../../library/sys.monitoring.rst:104 +#: ../../library/sys.monitoring.rst:111 msgid "" "Return from any callable, except for Python functions (event occurs after " "the return)." msgstr "" -#: ../../library/sys.monitoring.rst:108 +#: ../../library/sys.monitoring.rst:115 msgid "An exception is handled." msgstr "" -#: ../../library/sys.monitoring.rst:112 +#: ../../library/sys.monitoring.rst:119 msgid "A VM instruction is about to be executed." msgstr "" -#: ../../library/sys.monitoring.rst:116 +#: ../../library/sys.monitoring.rst:123 msgid "An unconditional jump in the control flow graph is made." msgstr "" -#: ../../library/sys.monitoring.rst:120 +#: ../../library/sys.monitoring.rst:127 msgid "" "An instruction is about to be executed that has a different line number from " "the preceding instruction." msgstr "" -#: ../../library/sys.monitoring.rst:124 +#: ../../library/sys.monitoring.rst:131 msgid "" "Resumption of a Python function (for generator and coroutine functions), " "except for ``throw()`` calls." msgstr "" -#: ../../library/sys.monitoring.rst:128 +#: ../../library/sys.monitoring.rst:135 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 +#: ../../library/sys.monitoring.rst:139 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 +#: ../../library/sys.monitoring.rst:143 msgid "A Python function is resumed by a ``throw()`` call." msgstr "" -#: ../../library/sys.monitoring.rst:140 +#: ../../library/sys.monitoring.rst:147 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 +#: ../../library/sys.monitoring.rst:152 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 +#: ../../library/sys.monitoring.rst:156 msgid "" "An exception is raised, except those that cause a :monitoring-event:" "`STOP_ITERATION` event." msgstr "" -#: ../../library/sys.monitoring.rst:153 +#: ../../library/sys.monitoring.rst:160 msgid "" "An exception is re-raised, for example at the end of a :keyword:`finally` " "block." msgstr "" -#: ../../library/sys.monitoring.rst:157 +#: ../../library/sys.monitoring.rst:164 msgid "" "An artificial :exc:`StopIteration` is raised; see `the STOP_ITERATION " "event`_." msgstr "" -#: ../../library/sys.monitoring.rst:160 +#: ../../library/sys.monitoring.rst:167 msgid "More events may be added in the future." msgstr "" -#: ../../library/sys.monitoring.rst:162 +#: ../../library/sys.monitoring.rst:169 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,109 +247,109 @@ msgid "" "events, use the expression ``PY_RETURN | PY_START``." msgstr "" -#: ../../library/sys.monitoring.rst:170 +#: ../../library/sys.monitoring.rst:177 msgid "An alias for ``0`` so users can do explicit comparisons like::" msgstr "" -#: ../../library/sys.monitoring.rst:172 +#: ../../library/sys.monitoring.rst:179 msgid "" "if get_events(DEBUGGER_ID) == NO_EVENTS:\n" " ..." msgstr "" -#: ../../library/sys.monitoring.rst:175 +#: ../../library/sys.monitoring.rst:182 msgid "Setting this event deactivates all events." msgstr "" -#: ../../library/sys.monitoring.rst:180 +#: ../../library/sys.monitoring.rst:187 msgid "Local events" msgstr "" -#: ../../library/sys.monitoring.rst:182 +#: ../../library/sys.monitoring.rst:189 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 +#: ../../library/sys.monitoring.rst:193 msgid ":monitoring-event:`PY_START`" msgstr "" -#: ../../library/sys.monitoring.rst:187 +#: ../../library/sys.monitoring.rst:194 msgid ":monitoring-event:`PY_RESUME`" msgstr "" -#: ../../library/sys.monitoring.rst:188 +#: ../../library/sys.monitoring.rst:195 msgid ":monitoring-event:`PY_RETURN`" msgstr "" -#: ../../library/sys.monitoring.rst:189 +#: ../../library/sys.monitoring.rst:196 msgid ":monitoring-event:`PY_YIELD`" msgstr "" -#: ../../library/sys.monitoring.rst:190 +#: ../../library/sys.monitoring.rst:197 msgid ":monitoring-event:`CALL`" msgstr "" -#: ../../library/sys.monitoring.rst:191 +#: ../../library/sys.monitoring.rst:198 msgid ":monitoring-event:`LINE`" msgstr "" -#: ../../library/sys.monitoring.rst:192 +#: ../../library/sys.monitoring.rst:199 msgid ":monitoring-event:`INSTRUCTION`" msgstr "" -#: ../../library/sys.monitoring.rst:193 +#: ../../library/sys.monitoring.rst:200 msgid ":monitoring-event:`JUMP`" msgstr "" -#: ../../library/sys.monitoring.rst:194 +#: ../../library/sys.monitoring.rst:201 msgid ":monitoring-event:`BRANCH_LEFT`" msgstr "" -#: ../../library/sys.monitoring.rst:195 +#: ../../library/sys.monitoring.rst:202 msgid ":monitoring-event:`BRANCH_RIGHT`" msgstr "" -#: ../../library/sys.monitoring.rst:196 +#: ../../library/sys.monitoring.rst:203 msgid ":monitoring-event:`STOP_ITERATION`" msgstr "" -#: ../../library/sys.monitoring.rst:199 +#: ../../library/sys.monitoring.rst:206 msgid "Deprecated event" msgstr "" -#: ../../library/sys.monitoring.rst:201 +#: ../../library/sys.monitoring.rst:208 msgid "``BRANCH``" msgstr "" -#: ../../library/sys.monitoring.rst:203 +#: ../../library/sys.monitoring.rst:210 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." msgstr "" -#: ../../library/sys.monitoring.rst:209 +#: ../../library/sys.monitoring.rst:216 msgid "Ancillary events" msgstr "" -#: ../../library/sys.monitoring.rst:211 +#: ../../library/sys.monitoring.rst:218 msgid "" "Ancillary events can be monitored like other events, but are controlled by " "another event:" msgstr "" -#: ../../library/sys.monitoring.rst:214 +#: ../../library/sys.monitoring.rst:221 msgid ":monitoring-event:`C_RAISE`" msgstr "" -#: ../../library/sys.monitoring.rst:215 +#: ../../library/sys.monitoring.rst:222 msgid ":monitoring-event:`C_RETURN`" msgstr "" -#: ../../library/sys.monitoring.rst:217 +#: ../../library/sys.monitoring.rst:224 msgid "" "The :monitoring-event:`C_RETURN` and :monitoring-event:`C_RAISE` events are " "controlled by the :monitoring-event:`CALL` event. :monitoring-event:" @@ -350,41 +357,41 @@ msgid "" "corresponding :monitoring-event:`CALL` event is being monitored." msgstr "" -#: ../../library/sys.monitoring.rst:226 +#: ../../library/sys.monitoring.rst:233 msgid "Other events" msgstr "" -#: ../../library/sys.monitoring.rst:228 +#: ../../library/sys.monitoring.rst:235 msgid "" "Other events are not necessarily tied to a specific location in the program " "and cannot be individually disabled via :data:`DISABLE`." msgstr "" -#: ../../library/sys.monitoring.rst:231 +#: ../../library/sys.monitoring.rst:238 msgid "The other events that can be monitored are:" msgstr "" -#: ../../library/sys.monitoring.rst:233 +#: ../../library/sys.monitoring.rst:240 msgid ":monitoring-event:`PY_THROW`" msgstr "" -#: ../../library/sys.monitoring.rst:234 +#: ../../library/sys.monitoring.rst:241 msgid ":monitoring-event:`PY_UNWIND`" msgstr "" -#: ../../library/sys.monitoring.rst:235 +#: ../../library/sys.monitoring.rst:242 msgid ":monitoring-event:`RAISE`" msgstr "" -#: ../../library/sys.monitoring.rst:236 +#: ../../library/sys.monitoring.rst:243 msgid ":monitoring-event:`EXCEPTION_HANDLED`" msgstr "" -#: ../../library/sys.monitoring.rst:240 +#: ../../library/sys.monitoring.rst:247 msgid "The STOP_ITERATION event" msgstr "" -#: ../../library/sys.monitoring.rst:242 +#: ../../library/sys.monitoring.rst:249 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 " @@ -393,7 +400,7 @@ msgid "" "an exception unless it would be visible to other code." msgstr "" -#: ../../library/sys.monitoring.rst:248 +#: ../../library/sys.monitoring.rst:255 msgid "" "To allow tools to monitor for real exceptions without slowing down " "generators and coroutines, the :monitoring-event:`STOP_ITERATION` event is " @@ -401,7 +408,7 @@ msgid "" "unlike :monitoring-event:`RAISE`." msgstr "" -#: ../../library/sys.monitoring.rst:253 +#: ../../library/sys.monitoring.rst:260 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 +417,11 @@ msgid "" "generate a :monitoring-event:`RAISE` event with a :exc:`StopIteration`." msgstr "" -#: ../../library/sys.monitoring.rst:261 +#: ../../library/sys.monitoring.rst:268 msgid "Turning events on and off" msgstr "" -#: ../../library/sys.monitoring.rst:263 +#: ../../library/sys.monitoring.rst:270 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 +429,35 @@ msgid "" "trigger only once, even if it is turned on both globally and locally." msgstr "" -#: ../../library/sys.monitoring.rst:270 +#: ../../library/sys.monitoring.rst:277 msgid "Setting events globally" msgstr "" -#: ../../library/sys.monitoring.rst:272 +#: ../../library/sys.monitoring.rst:279 msgid "" "Events can be controlled globally by modifying the set of events being " "monitored." msgstr "" -#: ../../library/sys.monitoring.rst:276 +#: ../../library/sys.monitoring.rst:283 msgid "Returns the ``int`` representing all the active events." msgstr "" -#: ../../library/sys.monitoring.rst:280 +#: ../../library/sys.monitoring.rst:287 msgid "" "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:283 +#: ../../library/sys.monitoring.rst:290 msgid "No events are active by default." msgstr "" -#: ../../library/sys.monitoring.rst:286 +#: ../../library/sys.monitoring.rst:293 msgid "Per code object events" msgstr "" -#: ../../library/sys.monitoring.rst:288 +#: ../../library/sys.monitoring.rst:295 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,28 +465,28 @@ msgid "" "(see :ref:`c-api-monitoring`)." msgstr "" -#: ../../library/sys.monitoring.rst:295 +#: ../../library/sys.monitoring.rst:302 msgid "Returns all the :ref:`local events ` for *code*" msgstr "" -#: ../../library/sys.monitoring.rst:299 +#: ../../library/sys.monitoring.rst:306 msgid "" "Activates all the :ref:`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:305 +#: ../../library/sys.monitoring.rst:312 msgid "Disabling events" msgstr "" -#: ../../library/sys.monitoring.rst:309 +#: ../../library/sys.monitoring.rst:316 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:312 +#: ../../library/sys.monitoring.rst:319 msgid "" ":ref:`Local events ` can be disabled for a specific " "code location by returning :data:`sys.monitoring.DISABLE` from a callback " @@ -487,7 +494,7 @@ msgid "" "locations for the same event." msgstr "" -#: ../../library/sys.monitoring.rst:317 +#: ../../library/sys.monitoring.rst:324 msgid "" "Disabling events for specific locations is very important for high " "performance monitoring. For example, a program can be run under a debugger " @@ -495,7 +502,7 @@ msgid "" "breakpoints." msgstr "" -#: ../../library/sys.monitoring.rst:322 +#: ../../library/sys.monitoring.rst:329 msgid "" "If :data:`DISABLE` is returned by a callback for a :ref:`global event " "`, :exc:`ValueError` will be raised by the " @@ -503,44 +510,44 @@ msgid "" "provided)." msgstr "" -#: ../../library/sys.monitoring.rst:329 +#: ../../library/sys.monitoring.rst:336 msgid "" "Enable all the events that were disabled by :data:`sys.monitoring.DISABLE` " "for all tools." msgstr "" -#: ../../library/sys.monitoring.rst:336 +#: ../../library/sys.monitoring.rst:343 msgid "Registering callback functions" msgstr "" -#: ../../library/sys.monitoring.rst:340 +#: ../../library/sys.monitoring.rst:347 msgid "Registers the callable *func* for the *event* with the given *tool_id*" msgstr "" -#: ../../library/sys.monitoring.rst:342 +#: ../../library/sys.monitoring.rst:349 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:346 +#: ../../library/sys.monitoring.rst:353 msgid "" "Raises an :ref:`auditing event ` ``sys.monitoring." "register_callback`` with argument ``func``." msgstr "" -#: ../../library/sys.monitoring.rst:348 +#: ../../library/sys.monitoring.rst:355 msgid "" "Functions can be unregistered by calling ``sys.monitoring." "register_callback(tool_id, event, None)``." msgstr "" -#: ../../library/sys.monitoring.rst:351 +#: ../../library/sys.monitoring.rst:358 msgid "Callback functions can be registered and unregistered at any time." msgstr "" -#: ../../library/sys.monitoring.rst:353 +#: ../../library/sys.monitoring.rst:360 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 " @@ -548,17 +555,17 @@ msgid "" "to handle either trigger." msgstr "" -#: ../../library/sys.monitoring.rst:360 +#: ../../library/sys.monitoring.rst:367 msgid "Callback function arguments" msgstr "" -#: ../../library/sys.monitoring.rst:364 +#: ../../library/sys.monitoring.rst:371 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:367 +#: ../../library/sys.monitoring.rst:374 msgid "" "When an active event occurs, the registered callback function is called. " "Callback functions returning an object other than :data:`DISABLE` will have " @@ -566,35 +573,35 @@ msgid "" "different arguments, as follows:" msgstr "" -#: ../../library/sys.monitoring.rst:371 +#: ../../library/sys.monitoring.rst:378 msgid ":monitoring-event:`PY_START` and :monitoring-event:`PY_RESUME`::" msgstr "" -#: ../../library/sys.monitoring.rst:373 ../../library/sys.monitoring.rst:410 +#: ../../library/sys.monitoring.rst:380 ../../library/sys.monitoring.rst:417 msgid "func(code: CodeType, instruction_offset: int) -> object" msgstr "" -#: ../../library/sys.monitoring.rst:375 +#: ../../library/sys.monitoring.rst:382 msgid ":monitoring-event:`PY_RETURN` and :monitoring-event:`PY_YIELD`::" msgstr "" -#: ../../library/sys.monitoring.rst:377 +#: ../../library/sys.monitoring.rst:384 msgid "func(code: CodeType, instruction_offset: int, retval: object) -> object" msgstr "" -#: ../../library/sys.monitoring.rst:379 +#: ../../library/sys.monitoring.rst:386 msgid "" ":monitoring-event:`CALL`, :monitoring-event:`C_RAISE` and :monitoring-event:" "`C_RETURN` (*arg0* can be :data:`MISSING` specifically)::" msgstr "" -#: ../../library/sys.monitoring.rst:382 +#: ../../library/sys.monitoring.rst:389 msgid "" "func(code: CodeType, instruction_offset: int, callable: object, arg0: " "object) -> object" msgstr "" -#: ../../library/sys.monitoring.rst:384 +#: ../../library/sys.monitoring.rst:391 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 " @@ -602,50 +609,50 @@ msgid "" "MISSING`." msgstr "" -#: ../../library/sys.monitoring.rst:389 +#: ../../library/sys.monitoring.rst:396 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:393 +#: ../../library/sys.monitoring.rst:400 msgid "" ":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:396 +#: ../../library/sys.monitoring.rst:403 msgid "" "func(code: CodeType, instruction_offset: int, exception: BaseException) -> " "object" msgstr "" -#: ../../library/sys.monitoring.rst:398 +#: ../../library/sys.monitoring.rst:405 msgid ":monitoring-event:`LINE`::" msgstr "" -#: ../../library/sys.monitoring.rst:400 +#: ../../library/sys.monitoring.rst:407 msgid "func(code: CodeType, line_number: int) -> object" msgstr "" -#: ../../library/sys.monitoring.rst:402 +#: ../../library/sys.monitoring.rst:409 msgid "" ":monitoring-event:`BRANCH_LEFT`, :monitoring-event:`BRANCH_RIGHT` and :" "monitoring-event:`JUMP`::" msgstr "" -#: ../../library/sys.monitoring.rst:404 +#: ../../library/sys.monitoring.rst:411 msgid "" "func(code: CodeType, instruction_offset: int, destination_offset: int) -> " "object" msgstr "" -#: ../../library/sys.monitoring.rst:406 +#: ../../library/sys.monitoring.rst:413 msgid "Note that the *destination_offset* is where the code will next execute." msgstr "" -#: ../../library/sys.monitoring.rst:408 +#: ../../library/sys.monitoring.rst:415 msgid ":monitoring-event:`INSTRUCTION`::" msgstr "" diff --git a/library/tkinter.font.po b/library/tkinter.font.po index c447ec0..ecdc549 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:01+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -54,15 +54,15 @@ msgstr "" msgid "arguments:" msgstr "" -#: ../../library/tkinter.font.rst:0 +#: ../../library/tkinter.font.rst:35 msgid "*font* - font specifier tuple (family, size, options)" msgstr "" -#: ../../library/tkinter.font.rst:0 +#: ../../library/tkinter.font.rst:36 msgid "*name* - unique font name" msgstr "" -#: ../../library/tkinter.font.rst:0 +#: ../../library/tkinter.font.rst:37 msgid "*exists* - self points to existing named font if true" msgstr "" @@ -70,39 +70,39 @@ msgstr "" msgid "additional keyword options (ignored if *font* is specified):" msgstr "" -#: ../../library/tkinter.font.rst:0 +#: ../../library/tkinter.font.rst:41 msgid "*family* - font family, for example, Courier, Times" msgstr "" -#: ../../library/tkinter.font.rst:0 +#: ../../library/tkinter.font.rst:42 msgid "*size* - font size" msgstr "" -#: ../../library/tkinter.font.rst:0 +#: ../../library/tkinter.font.rst:43 msgid "If *size* is positive it is interpreted as size in points." msgstr "" -#: ../../library/tkinter.font.rst:0 +#: ../../library/tkinter.font.rst:44 msgid "If *size* is a negative number its absolute value is treated" msgstr "" -#: ../../library/tkinter.font.rst:0 +#: ../../library/tkinter.font.rst:45 msgid "as size in pixels." msgstr "" -#: ../../library/tkinter.font.rst:0 +#: ../../library/tkinter.font.rst:46 msgid "*weight* - font emphasis (NORMAL, BOLD)" msgstr "" -#: ../../library/tkinter.font.rst:0 +#: ../../library/tkinter.font.rst:47 msgid "*slant* - ROMAN, ITALIC" msgstr "" -#: ../../library/tkinter.font.rst:0 +#: ../../library/tkinter.font.rst:48 msgid "*underline* - font underlining (0 - none, 1 - underline)" msgstr "" -#: ../../library/tkinter.font.rst:0 +#: ../../library/tkinter.font.rst:49 msgid "*overstrike* - font strikeout (0 - none, 1 - strikeout)" msgstr "" diff --git a/library/turtle.po b/library/turtle.po index 67b2c2f..982d8e3 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -68,11 +68,16 @@ msgid "" "degrees clockwise." msgstr "" "Stell dir eine robotische Schildkröte vor, die bei (0, 0) in der x-y-Ebene " -"startet. Nach einem ``import turtle`` gib ihr den Befehl " -"``turtle.forward(15)``, und sie bewegt sich (auf dem Bildschirm!) 15 Pixel " -"in die Richtung, in die sie blickt, wobei sie beim Bewegen eine Linie " -"zeichnet. Gib ihr den Befehl ``turtle.right(25)``, und sie dreht sich an Ort " -"und Stelle um 25 Grad im Uhrzeigersinn." +"startet. Nach einem ``import turtle`` gib ihr den Befehl ``turtle." +"forward(15)``, und sie bewegt sich (auf dem Bildschirm!) 15 Pixel in die " +"Richtung, in die sie blickt, wobei sie beim Bewegen eine Linie zeichnet. Gib " +"ihr den Befehl ``turtle.right(25)``, und sie dreht sich an Ort und Stelle um " +"25 Grad im Uhrzeigersinn." + +#: ../../library/turtle.rst:45 +#, fuzzy +msgid "Turtle star" +msgstr "Turtle-Status" #: ../../library/turtle.rst:47 msgid "" @@ -398,8 +403,8 @@ msgstr "" #: ../../library/turtle.rst:206 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 "" "Das Modul turtle ermöglicht dies, indem es seine gesamte grundlegende " "Funktionalität als Funktionen bereitstellt, die mit ``from turtle import *`` " @@ -439,10 +444,9 @@ msgid "" "manager` instead of :func:`begin_fill` and :func:`end_fill` to automatically " "begin and end fill. Here is an example::" msgstr "" -"Ab Python 3.14 kannst du den :term:`Kontextmanager ` :func:`fill` anstelle von :func:`begin_fill` und :func:`end_fill` " -"verwenden, um das Füllen automatisch zu beginnen und zu beenden. Hier ist " -"ein Beispiel::" +"Ab Python 3.14 kannst du den :term:`Kontextmanager ` :func:" +"`fill` anstelle von :func:`begin_fill` und :func:`end_fill` verwenden, um " +"das Füllen automatisch zu beginnen und zu beenden. Hier ist ein Beispiel::" #: ../../library/turtle.rst:229 msgid "" @@ -679,71 +683,71 @@ msgstr "Turtle-Bewegung" msgid "Move and draw" msgstr "Bewegen und zeichnen" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:340 msgid ":func:`forward` | :func:`fd`" msgstr ":func:`forward` | :func:`fd`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:341 msgid ":func:`backward` | :func:`bk` | :func:`back`" msgstr ":func:`backward` | :func:`bk` | :func:`back`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:342 msgid ":func:`right` | :func:`rt`" msgstr ":func:`right` | :func:`rt`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:343 msgid ":func:`left` | :func:`lt`" msgstr ":func:`left` | :func:`lt`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:344 msgid ":func:`goto` | :func:`setpos` | :func:`setposition`" msgstr ":func:`goto` | :func:`setpos` | :func:`setposition`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:345 msgid ":func:`teleport`" msgstr ":func:`teleport`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:346 msgid ":func:`setx`" msgstr ":func:`setx`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:347 msgid ":func:`sety`" msgstr ":func:`sety`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:348 msgid ":func:`setheading` | :func:`seth`" msgstr ":func:`setheading` | :func:`seth`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:349 msgid ":func:`home`" msgstr ":func:`home`" -#: ../../library/turtle.rst:0 ../../library/turtle.rst:2879 +#: ../../library/turtle.rst:350 ../../library/turtle.rst:2879 msgid ":func:`circle`" msgstr ":func:`circle`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:351 msgid ":func:`dot`" msgstr ":func:`dot`" -#: ../../library/turtle.rst:0 ../../library/turtle.rst:2857 +#: ../../library/turtle.rst:352 ../../library/turtle.rst:2857 msgid ":func:`stamp`" msgstr ":func:`stamp`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:353 msgid ":func:`clearstamp`" msgstr ":func:`clearstamp`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:354 msgid ":func:`clearstamps`" msgstr ":func:`clearstamps`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:355 msgid ":func:`undo`" msgstr ":func:`undo`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:356 msgid ":func:`speed`" msgstr ":func:`speed`" @@ -751,27 +755,27 @@ msgstr ":func:`speed`" msgid "Tell Turtle's state" msgstr "Zustand der Turtle abfragen" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:359 msgid ":func:`position` | :func:`pos`" msgstr ":func:`position` | :func:`pos`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:360 msgid ":func:`towards`" msgstr ":func:`towards`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:361 msgid ":func:`xcor`" msgstr ":func:`xcor`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:362 msgid ":func:`ycor`" msgstr ":func:`ycor`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:363 msgid ":func:`heading`" msgstr ":func:`heading`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:364 msgid ":func:`distance`" msgstr ":func:`distance`" @@ -779,11 +783,11 @@ msgstr ":func:`distance`" msgid "Setting and measurement" msgstr "Einstellung und Maß" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:367 msgid ":func:`degrees`" msgstr ":func:`degrees`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:368 msgid ":func:`radians`" msgstr ":func:`radians`" @@ -791,23 +795,23 @@ msgstr ":func:`radians`" msgid "Drawing state" msgstr "Zeichenzustand" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:372 msgid ":func:`pendown` | :func:`pd` | :func:`down`" msgstr ":func:`pendown` | :func:`pd` | :func:`down`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:373 msgid ":func:`penup` | :func:`pu` | :func:`up`" msgstr ":func:`penup` | :func:`pu` | :func:`up`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:374 msgid ":func:`pensize` | :func:`width`" msgstr ":func:`pensize` | :func:`width`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:375 msgid ":func:`pen`" msgstr ":func:`pen`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:376 msgid ":func:`isdown`" msgstr ":func:`isdown`" @@ -815,15 +819,15 @@ msgstr ":func:`isdown`" msgid "Color control" msgstr "Farbkontrolle" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:379 msgid ":func:`color`" msgstr ":func:`color`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:380 msgid ":func:`pencolor`" msgstr ":func:`pencolor`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:381 msgid ":func:`fillcolor`" msgstr ":func:`fillcolor`" @@ -831,19 +835,19 @@ msgstr ":func:`fillcolor`" msgid "Filling" msgstr "Füllen" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:384 msgid ":func:`filling`" msgstr ":func:`filling`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:385 msgid ":func:`fill`" msgstr ":func:`fill`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:386 msgid ":func:`begin_fill`" msgstr ":func:`begin_fill`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:387 msgid ":func:`end_fill`" msgstr ":func:`end_fill`" @@ -851,15 +855,15 @@ msgstr ":func:`end_fill`" msgid "More drawing control" msgstr "Mehr Zeichenkontrolle" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:390 msgid ":func:`reset`" msgstr ":func:`reset`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:391 msgid ":func:`clear`" msgstr ":func:`clear`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:392 msgid ":func:`write`" msgstr ":func:`write`" @@ -871,15 +875,15 @@ msgstr "Turtle-Status" msgid "Visibility" msgstr "Sichtbarkeit" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:396 msgid ":func:`showturtle` | :func:`st`" msgstr ":func:`showturtle` | :func:`st`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:397 msgid ":func:`hideturtle` | :func:`ht`" msgstr ":func:`hideturtle` | :func:`ht`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:398 msgid ":func:`isvisible`" msgstr ":func:`isvisible`" @@ -887,35 +891,35 @@ msgstr ":func:`isvisible`" msgid "Appearance" msgstr "Erscheinungsbild" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:401 msgid ":func:`shape`" msgstr ":func:`shape`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:402 msgid ":func:`resizemode`" msgstr ":func:`resizemode`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:403 msgid ":func:`shapesize` | :func:`turtlesize`" msgstr ":func:`shapesize` | :func:`turtlesize`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:404 msgid ":func:`shearfactor`" msgstr ":func:`shearfactor`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:405 msgid ":func:`tiltangle`" msgstr ":func:`tiltangle`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:406 msgid ":func:`tilt`" msgstr ":func:`tilt`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:407 msgid ":func:`shapetransform`" msgstr ":func:`shapetransform`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:408 msgid ":func:`get_shapepoly`" msgstr ":func:`get_shapepoly`" @@ -923,15 +927,15 @@ msgstr ":func:`get_shapepoly`" msgid "Using events" msgstr "Ereignisse verwenden" -#: ../../library/turtle.rst:0 ../../library/turtle.rst:2851 +#: ../../library/turtle.rst:411 ../../library/turtle.rst:2851 msgid ":func:`onclick`" msgstr ":func:`onclick`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:412 msgid ":func:`onrelease`" msgstr ":func:`onrelease`" -#: ../../library/turtle.rst:0 ../../library/turtle.rst:2834 +#: ../../library/turtle.rst:413 ../../library/turtle.rst:2834 msgid ":func:`ondrag`" msgstr ":func:`ondrag`" @@ -939,39 +943,39 @@ msgstr ":func:`ondrag`" msgid "Special Turtle methods" msgstr "Spezielle Turtle-Methoden" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:416 msgid ":func:`poly`" msgstr ":func:`poly`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:417 msgid ":func:`begin_poly`" msgstr ":func:`begin_poly`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:418 msgid ":func:`end_poly`" msgstr ":func:`end_poly`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:419 msgid ":func:`get_poly`" msgstr ":func:`get_poly`" -#: ../../library/turtle.rst:0 ../../library/turtle.rst:2873 +#: ../../library/turtle.rst:420 ../../library/turtle.rst:2873 msgid ":func:`clone`" msgstr ":func:`clone`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:421 msgid ":func:`getturtle` | :func:`getpen`" msgstr ":func:`getturtle` | :func:`getpen`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:422 msgid ":func:`getscreen`" msgstr ":func:`getscreen`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:423 msgid ":func:`setundobuffer`" msgstr ":func:`setundobuffer`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:424 msgid ":func:`undobufferentries`" msgstr ":func:`undobufferentries`" @@ -983,27 +987,27 @@ msgstr "Methoden von TurtleScreen/Screen" msgid "Window control" msgstr "Fenstersteuerung" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:431 msgid ":func:`bgcolor`" msgstr ":func:`bgcolor`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:432 msgid ":func:`bgpic`" msgstr ":func:`bgpic`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:433 msgid ":func:`clearscreen`" msgstr ":func:`clearscreen`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:434 msgid ":func:`resetscreen`" msgstr ":func:`resetscreen`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:435 msgid ":func:`screensize`" msgstr ":func:`screensize`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:436 msgid ":func:`setworldcoordinates`" msgstr ":func:`setworldcoordinates`" @@ -1011,19 +1015,19 @@ msgstr ":func:`setworldcoordinates`" msgid "Animation control" msgstr "Animationskontrolle" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:439 msgid ":func:`no_animation`" msgstr ":func:`no_animation`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:440 msgid ":func:`delay`" msgstr ":func:`delay`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:441 msgid ":func:`tracer`" msgstr ":func:`tracer`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:442 msgid ":func:`update`" msgstr ":func:`update`" @@ -1031,27 +1035,27 @@ msgstr ":func:`update`" msgid "Using screen events" msgstr "Screen-Events verwenden" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:445 msgid ":func:`listen`" msgstr ":func:`listen`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:446 msgid ":func:`onkey` | :func:`onkeyrelease`" msgstr ":func:`onkey` | :func:`onkeyrelease`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:447 msgid ":func:`onkeypress`" msgstr ":func:`onkeypress`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:448 msgid ":func:`onclick` | :func:`onscreenclick`" msgstr ":func:`onclick` | :func:`onscreenclick`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:449 msgid ":func:`ontimer`" msgstr ":func:`ontimer`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:450 msgid ":func:`mainloop` | :func:`done`" msgstr ":func:`mainloop` | :func:`done`" @@ -1059,35 +1063,35 @@ msgstr ":func:`mainloop` | :func:`done`" msgid "Settings and special methods" msgstr "Einstellungen und spezielle Methoden" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:453 msgid ":func:`mode`" msgstr ":func:`mode`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:454 msgid ":func:`colormode`" msgstr ":func:`colormode`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:455 msgid ":func:`getcanvas`" msgstr ":func:`getcanvas`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:456 msgid ":func:`getshapes`" msgstr ":func:`getshapes`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:457 msgid ":func:`register_shape` | :func:`addshape`" msgstr ":func:`register_shape` | :func:`addshape`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:458 msgid ":func:`turtles`" msgstr ":func:`turtles`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:459 msgid ":func:`window_height`" msgstr ":func:`window_height`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:460 msgid ":func:`window_width`" msgstr ":func:`window_width`" @@ -1095,11 +1099,11 @@ msgstr ":func:`window_width`" msgid "Input methods" msgstr "Eingabemethoden" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:463 msgid ":func:`textinput`" msgstr ":func:`textinput`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:464 msgid ":func:`numinput`" msgstr ":func:`numinput`" @@ -1107,23 +1111,23 @@ msgstr ":func:`numinput`" msgid "Methods specific to Screen" msgstr "Spezifische Methoden zum Screen" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:467 msgid ":func:`bye`" msgstr ":func:`bye`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:468 msgid ":func:`exitonclick`" msgstr ":func:`exitonclick`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:469 msgid ":func:`save`" msgstr ":func:`save`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:470 msgid ":func:`setup`" msgstr ":func:`setup`" -#: ../../library/turtle.rst:0 +#: ../../library/turtle.rst:471 msgid ":func:`title`" msgstr ":func:`title`" @@ -1209,9 +1213,9 @@ msgid "" "orientation depends on the turtle mode, see :func:`mode`." msgstr "" "Drehe die Turtle um *angle* Einheiten nach rechts. (Die Einheit ist " -"standardmäßig Grad, kann aber über die Funktionen :func:`degrees` " -"und :func:`radians` festgelegt werden.) Die Winkelausrichtung hängt vom " -"Turtle-Modus ab, siehe :func:`mode`." +"standardmäßig Grad, kann aber über die Funktionen :func:`degrees` und :func:" +"`radians` festgelegt werden.) Die Winkelausrichtung hängt vom Turtle-Modus " +"ab, siehe :func:`mode`." #: ../../library/turtle.rst:544 msgid "" @@ -1234,9 +1238,9 @@ msgid "" "orientation depends on the turtle mode, see :func:`mode`." msgstr "" "Drehe die Turtle um *angle* Einheiten nach links. (Die Einheit ist " -"standardmäßig Grad, kann aber über die Funktionen :func:`degrees` " -"und :func:`radians` festgelegt werden.) Die Winkelausrichtung hängt vom " -"Turtle-Modus ab, siehe :func:`mode`." +"standardmäßig Grad, kann aber über die Funktionen :func:`degrees` und :func:" +"`radians` festgelegt werden.) Die Winkelausrichtung hängt vom Turtle-Modus " +"ab, siehe :func:`mode`." #: ../../library/turtle.rst:569 msgid "" @@ -1263,8 +1267,8 @@ msgstr "eine Zahl oder ``None``" #: ../../library/turtle.rst:586 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 "" "Wenn *y* ``None`` ist, muss *x* ein Koordinatenpaar oder ein :class:`Vec2D` " "sein (z. B. wie von :func:`pos` zurückgegeben)." @@ -1460,8 +1464,8 @@ msgid "" "start-orientation (which depends on the mode, see :func:`mode`)." msgstr "" "Bewege die Turtle zum Ursprung – Koordinaten (0,0) – und setze ihre " -"Ausrichtung auf die Startausrichtung (die vom Modus abhängt, " -"siehe :func:`mode`)." +"Ausrichtung auf die Startausrichtung (die vom Modus abhängt, siehe :func:" +"`mode`)." #: ../../library/turtle.rst:735 msgid "" @@ -1503,14 +1507,14 @@ msgid "" "otherwise in clockwise direction. Finally the direction of the turtle is " "changed by the amount of *extent*." msgstr "" -"Zeichne einen Kreis mit dem angegebenen *radius*. Der Mittelpunkt " -"liegt *radius* Einheiten links von der Turtle, *extent* – ein Winkel " -"– bestimmt, welcher Teil des Kreises gezeichnet wird. Wird *extent* " -"nicht angegeben, wird der gesamte Kreis gezeichnet. Ist *extent* " -"kein voller Kreis, ist ein Endpunkt des Bogens die aktuelle " -"Stiftposition. Zeichne den Bogen gegen den Uhrzeigersinn, wenn " -"*radius* positiv ist, andernfalls im Uhrzeigersinn. Abschließend " -"wird die Richtung der Turtle um den Betrag von *extent* geändert." +"Zeichne einen Kreis mit dem angegebenen *radius*. Der Mittelpunkt liegt " +"*radius* Einheiten links von der Turtle, *extent* – ein Winkel – bestimmt, " +"welcher Teil des Kreises gezeichnet wird. Wird *extent* nicht angegeben, " +"wird der gesamte Kreis gezeichnet. Ist *extent* kein voller Kreis, ist ein " +"Endpunkt des Bogens die aktuelle Stiftposition. Zeichne den Bogen gegen den " +"Uhrzeigersinn, wenn *radius* positiv ist, andernfalls im Uhrzeigersinn. " +"Abschließend wird die Richtung der Turtle um den Betrag von *extent* " +"geändert." #: ../../library/turtle.rst:763 msgid "" @@ -1518,10 +1522,10 @@ msgid "" "determines the number of steps to use. If not given, it will be calculated " "automatically. May be used to draw regular polygons." msgstr "" -"Da der Kreis durch ein einbeschriebenes regelmäßiges Vieleck " -"angenähert wird, bestimmt *steps* die Anzahl der zu verwendenden " -"Schritte. Wird es nicht angegeben, wird es automatisch berechnet. " -"Kann verwendet werden, um regelmäßige Vielecke zu zeichnen." +"Da der Kreis durch ein einbeschriebenes regelmäßiges Vieleck angenähert " +"wird, bestimmt *steps* die Anzahl der zu verwendenden Schritte. Wird es " +"nicht angegeben, wird es automatisch berechnet. Kann verwendet werden, um " +"regelmäßige Vielecke zu zeichnen." #: ../../library/turtle.rst:767 msgid "" @@ -1570,9 +1574,9 @@ 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 "" -"Zeichne einen kreisförmigen Punkt mit dem Durchmesser *size* in der " -"Farbe *color*. Wird *size* nicht angegeben, wird das Maximum aus " -"``pensize+4`` und ``2*pensize`` verwendet." +"Zeichne einen kreisförmigen Punkt mit dem Durchmesser *size* in der Farbe " +"*color*. Wird *size* nicht angegeben, wird das Maximum aus ``pensize+4`` und " +"``2*pensize`` verwendet." #: ../../library/turtle.rst:800 msgid "" @@ -1598,10 +1602,9 @@ msgid "" "position. Return a stamp_id for that stamp, which can be used to delete it " "by calling ``clearstamp(stamp_id)``." msgstr "" -"Stemple eine Kopie der Turtle-Form an die aktuelle Position der " -"Turtle auf die Zeichenfläche. Gibt eine stamp_id für diesen Stempel " -"zurück, mit der er durch Aufruf von ``clearstamp(stamp_id)`` wieder " -"gelöscht werden kann." +"Stemple eine Kopie der Turtle-Form an die aktuelle Position der Turtle auf " +"die Zeichenfläche. Gibt eine stamp_id für diesen Stempel zurück, mit der er " +"durch Aufruf von ``clearstamp(stamp_id)`` wieder gelöscht werden kann." #: ../../library/turtle.rst:818 msgid "" @@ -1616,8 +1619,8 @@ msgstr "" #: ../../library/turtle.rst:828 msgid "an integer, must be return value of previous :func:`stamp` call" msgstr "" -"eine Ganzzahl, muss der Rückgabewert eines vorherigen Aufrufs von " -":func:`stamp` sein" +"eine Ganzzahl, muss der Rückgabewert eines vorherigen Aufrufs von :func:" +"`stamp` sein" #: ../../library/turtle.rst:831 msgid "Delete stamp with given *stampid*." @@ -1654,9 +1657,9 @@ msgid "" "*n* stamps." msgstr "" "Lösche alle oder die ersten/letzten *n* Stempel der Turtle. Wenn *n* " -"``None`` ist, werden alle Stempel gelöscht, wenn *n* > 0 ist, werden " -"die ersten *n* Stempel gelöscht, andernfalls, wenn *n* < 0 ist, " -"werden die letzten *n* Stempel gelöscht." +"``None`` ist, werden alle Stempel gelöscht, wenn *n* > 0 ist, werden die " +"ersten *n* Stempel gelöscht, andernfalls, wenn *n* < 0 ist, werden die " +"letzten *n* Stempel gelöscht." #: ../../library/turtle.rst:856 msgid "" @@ -1679,9 +1682,9 @@ msgid "" "Undo (repeatedly) the last turtle action(s). Number of available undo " "actions is determined by the size of the undobuffer." msgstr "" -"Mache die letzte(n) Turtle-Aktion(en) (wiederholt) rückgängig. Die " -"Anzahl der verfügbaren Rückgängig-Aktionen wird durch die Größe des " -"Undo-Puffers bestimmt." +"Mache die letzte(n) Turtle-Aktion(en) (wiederholt) rückgängig. Die Anzahl " +"der verfügbaren Rückgängig-Aktionen wird durch die Größe des Undo-Puffers " +"bestimmt." #: ../../library/turtle.rst:872 msgid "" @@ -1706,18 +1709,18 @@ msgid "" "Set the turtle's speed to an integer value in the range 0..10. If no " "argument is given, return current speed." msgstr "" -"Setze die Geschwindigkeit der Turtle auf einen Ganzzahlwert im " -"Bereich 0..10. Wird kein Argument angegeben, wird die aktuelle " -"Geschwindigkeit zurückgegeben." +"Setze die Geschwindigkeit der Turtle auf einen Ganzzahlwert im Bereich " +"0..10. Wird kein Argument angegeben, wird die aktuelle Geschwindigkeit " +"zurückgegeben." #: ../../library/turtle.rst:889 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 "" -"Ist die Eingabe eine Zahl größer als 10 oder kleiner als 0,5, wird " -"die Geschwindigkeit auf 0 gesetzt. Speedstrings werden wie folgt auf " -"Speedvalues abgebildet:" +"Ist die Eingabe eine Zahl größer als 10 oder kleiner als 0,5, wird die " +"Geschwindigkeit auf 0 gesetzt. Speedstrings werden wie folgt auf Speedvalues " +"abgebildet:" #: ../../library/turtle.rst:892 msgid "\"fastest\": 0" @@ -1744,17 +1747,17 @@ msgid "" "Speeds from 1 to 10 enforce increasingly faster animation of line drawing " "and turtle turning." msgstr "" -"Geschwindigkeiten von 1 bis 10 erzwingen eine zunehmend schnellere " -"Animation beim Linienzeichnen und Drehen der Turtle." +"Geschwindigkeiten von 1 bis 10 erzwingen eine zunehmend schnellere Animation " +"beim Linienzeichnen und Drehen der Turtle." #: ../../library/turtle.rst:901 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 "" -"Achtung: *speed* = 0 bedeutet, dass *keine* Animation stattfindet. " -"forward/back lässt die Turtle springen, und ebenso lassen left/right " -"die Turtle sofort drehen." +"Achtung: *speed* = 0 bedeutet, dass *keine* Animation stattfindet. forward/" +"back lässt die Turtle springen, und ebenso lassen left/right die Turtle " +"sofort drehen." #: ../../library/turtle.rst:905 msgid "" @@ -1806,10 +1809,10 @@ msgid "" "start orientation which depends on the mode - \"standard\"/\"world\" or " "\"logo\"." msgstr "" -"Gib den Winkel zwischen der Linie von der Position der Turtle zu der " -"durch (x,y), den Vektor oder die andere Turtle angegebenen Position " -"zurück. Dies hängt von der Startausrichtung der Turtle ab, die " -"wiederum vom Modus abhängt – \"standard\"/\"world\" oder \"logo\"." +"Gib den Winkel zwischen der Linie von der Position der Turtle zu der durch " +"(x,y), den Vektor oder die andere Turtle angegebenen Position zurück. Dies " +"hängt von der Startausrichtung der Turtle ab, die wiederum vom Modus abhängt " +"– \"standard\"/\"world\" oder \"logo\"." #: ../../library/turtle.rst:942 msgid "" @@ -1867,11 +1870,11 @@ msgstr "" #: ../../library/turtle.rst:984 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 "" -"Gibt die aktuelle Ausrichtung der Turtle zurück (der Wert hängt vom " -"Turtle-Modus ab, siehe :func:`mode`)." +"Gibt die aktuelle Ausrichtung der Turtle zurück (der Wert hängt vom Turtle-" +"Modus ab, siehe :func:`mode`)." #: ../../library/turtle.rst:987 msgid "" @@ -1890,8 +1893,8 @@ msgid "" "Return the distance from the turtle to (x,y), the given vector, or the given " "other turtle, in turtle step units." msgstr "" -"Gib die Entfernung von der Turtle zu (x,y), dem angegebenen Vektor " -"oder der angegebenen anderen Turtle in Turtle-Schrittweiten zurück." +"Gib die Entfernung von der Turtle zu (x,y), dem angegebenen Vektor oder der " +"angegebenen anderen Turtle in Turtle-Schrittweiten zurück." #: ../../library/turtle.rst:1004 msgid "" @@ -1924,8 +1927,8 @@ msgid "" "Set angle measurement units, i.e. set number of \"degrees\" for a full " "circle. Default value is 360 degrees." msgstr "" -"Setze die Winkelmesseinheiten, d. h. setze die Anzahl der \"Grad\" für " -"einen vollen Kreis. Der Standardwert ist 360 Grad." +"Setze die Winkelmesseinheiten, d. h. setze die Anzahl der \"Grad\" für einen " +"vollen Kreis. Der Standardwert ist 360 Grad." #: ../../library/turtle.rst:1028 msgid "" @@ -1959,11 +1962,10 @@ msgstr "" #: ../../library/turtle.rst:1048 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 "" -"Setze die Winkelmesseinheiten auf Radiant. Entspricht " -"``degrees(2*math.pi)``." +"Setze die Winkelmesseinheiten auf Radiant. Entspricht ``degrees(2*math.pi)``." #: ../../library/turtle.rst:1051 msgid "" @@ -2001,10 +2003,10 @@ msgid "" "\"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 "" -"Setze die Liniendicke auf *width* oder gib sie zurück. Ist resizemode " -"auf \"auto\" gesetzt und die Form der Turtle ein Polygon, wird dieses " -"Polygon mit derselben Liniendicke gezeichnet. Wird kein Argument " -"angegeben, wird die aktuelle Stiftgröße zurückgegeben." +"Setze die Liniendicke auf *width* oder gib sie zurück. Ist resizemode auf " +"\"auto\" gesetzt und die Form der Turtle ein Polygon, wird dieses Polygon " +"mit derselben Liniendicke gezeichnet. Wird kein Argument angegeben, wird die " +"aktuelle Stiftgröße zurückgegeben." #: ../../library/turtle.rst:1098 msgid "" @@ -2031,8 +2033,8 @@ msgid "" "Return or set the pen's attributes in a \"pen-dictionary\" with the " "following key/value pairs:" msgstr "" -"Gib die Attribute des Stifts in einem \"Stift-Dictionary\" zurück " -"oder setze sie, mit den folgenden Schlüssel/Wert-Paaren:" +"Gib die Attribute des Stifts in einem \"Stift-Dictionary\" zurück oder setze " +"sie, mit den folgenden Schlüssel/Wert-Paaren:" #: ../../library/turtle.rst:1114 msgid "\"shown\": True/False" @@ -2081,12 +2083,11 @@ msgid "" "can be provided as keyword-arguments. This can be used to set several pen " "attributes in one statement." msgstr "" -"Dieses Dictionary kann als Argument für einen nachfolgenden Aufruf " -"von :func:`pen` verwendet werden, um den vorherigen Stiftzustand " -"wiederherzustellen. Außerdem können ein oder mehrere dieser " -"Attribute als Schlüsselwortargumente angegeben werden. Dies kann " -"verwendet werden, um mehrere Stiftattribute in einer einzigen " -"Anweisung zu setzen." +"Dieses Dictionary kann als Argument für einen nachfolgenden Aufruf von :func:" +"`pen` verwendet werden, um den vorherigen Stiftzustand wiederherzustellen. " +"Außerdem können ein oder mehrere dieser Attribute als Schlüsselwortargumente " +"angegeben werden. Dies kann verwendet werden, um mehrere Stiftattribute in " +"einer einzigen Anweisung zu setzen." #: ../../library/turtle.rst:1130 msgid "" @@ -2122,7 +2123,8 @@ msgstr "" #: ../../library/turtle.rst:1151 msgid "Return ``True`` if pen is down, ``False`` if it's up." -msgstr "Gib ``True`` zurück, wenn der Stift unten ist, ``False``, wenn er oben ist." +msgstr "" +"Gib ``True`` zurück, wenn der Stift unten ist, ``False``, wenn er oben ist." #: ../../library/turtle.rst:1153 msgid "" @@ -2156,9 +2158,9 @@ msgid "" "example). May be used as input to another color/pencolor/fillcolor/bgcolor " "call." msgstr "" -"Gib die aktuelle Stiftfarbe als Farbangabe-String oder als Tupel " -"zurück (siehe Beispiel). Kann als Eingabe für einen weiteren " -"color/pencolor/fillcolor/bgcolor-Aufruf verwendet werden." +"Gib die aktuelle Stiftfarbe als Farbangabe-String oder als Tupel zurück " +"(siehe Beispiel). Kann als Eingabe für einen weiteren color/pencolor/" +"fillcolor/bgcolor-Aufruf verwendet werden." #: ../../library/turtle.rst:1180 msgid "``pencolor(colorstring)``" @@ -2169,8 +2171,8 @@ msgid "" "Set pencolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" -"Setze die Stiftfarbe auf *colorstring*, was ein Tk-Farbangabe-String " -"ist, wie zum Beispiel ``\"red\"``, ``\"yellow\"`` oder ``\"#33cc8c\"``." +"Setze die Stiftfarbe auf *colorstring*, was ein Tk-Farbangabe-String ist, " +"wie zum Beispiel ``\"red\"``, ``\"yellow\"`` oder ``\"#33cc8c\"``." #: ../../library/turtle.rst:1184 msgid "``pencolor((r, g, b))``" @@ -2183,9 +2185,9 @@ msgid "" "colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" "Setze die Stiftfarbe auf die durch das Tupel aus *r*, *g* und *b* " -"dargestellte RGB-Farbe. Jeder der Werte *r*, *g* und *b* muss im " -"Bereich 0..colormode liegen, wobei colormode entweder 1.0 oder 255 " -"ist (siehe :func:`colormode`)." +"dargestellte RGB-Farbe. Jeder der Werte *r*, *g* und *b* muss im Bereich 0.." +"colormode liegen, wobei colormode entweder 1.0 oder 255 ist (siehe :func:" +"`colormode`)." #: ../../library/turtle.rst:1189 msgid "``pencolor(r, g, b)``" @@ -2196,17 +2198,16 @@ 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 "" -"Setze die Stiftfarbe auf die durch *r*, *g* und *b* dargestellte " -"RGB-Farbe. Jeder der Werte *r*, *g* und *b* muss im Bereich " -"0..colormode liegen." +"Setze die Stiftfarbe auf die durch *r*, *g* und *b* dargestellte RGB-Farbe. " +"Jeder der Werte *r*, *g* und *b* muss im Bereich 0..colormode liegen." #: ../../library/turtle.rst:1193 msgid "" "If turtleshape is a polygon, the outline of that polygon is drawn with the " "newly set pencolor." msgstr "" -"Ist die Form der Turtle ein Polygon, wird der Umriss dieses Polygons " -"mit der neu gesetzten Stiftfarbe gezeichnet." +"Ist die Form der Turtle ein Polygon, wird der Umriss dieses Polygons mit der " +"neu gesetzten Stiftfarbe gezeichnet." #: ../../library/turtle.rst:1196 msgid "" @@ -2260,10 +2261,9 @@ msgid "" "tuple format (see example). May be used as input to another color/pencolor/" "fillcolor/bgcolor call." msgstr "" -"Gib die aktuelle Füllfarbe als Farbangabe-String zurück, " -"möglicherweise im Tupel-Format (siehe Beispiel). Kann als Eingabe " -"für einen weiteren color/pencolor/fillcolor/bgcolor-Aufruf verwendet " -"werden." +"Gib die aktuelle Füllfarbe als Farbangabe-String zurück, möglicherweise im " +"Tupel-Format (siehe Beispiel). Kann als Eingabe für einen weiteren color/" +"pencolor/fillcolor/bgcolor-Aufruf verwendet werden." #: ../../library/turtle.rst:1231 msgid "``fillcolor(colorstring)``" @@ -2274,8 +2274,8 @@ msgid "" "Set fillcolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" -"Setze die Füllfarbe auf *colorstring*, was ein Tk-Farbangabe-String " -"ist, wie zum Beispiel ``\"red\"``, ``\"yellow\"`` oder ``\"#33cc8c\"``." +"Setze die Füllfarbe auf *colorstring*, was ein Tk-Farbangabe-String ist, wie " +"zum Beispiel ``\"red\"``, ``\"yellow\"`` oder ``\"#33cc8c\"``." #: ../../library/turtle.rst:1235 msgid "``fillcolor((r, g, b))``" @@ -2288,9 +2288,9 @@ msgid "" "colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" "Setze die Füllfarbe auf die durch das Tupel aus *r*, *g* und *b* " -"dargestellte RGB-Farbe. Jeder der Werte *r*, *g* und *b* muss im " -"Bereich 0..colormode liegen, wobei colormode entweder 1.0 oder 255 " -"ist (siehe :func:`colormode`)." +"dargestellte RGB-Farbe. Jeder der Werte *r*, *g* und *b* muss im Bereich 0.." +"colormode liegen, wobei colormode entweder 1.0 oder 255 ist (siehe :func:" +"`colormode`)." #: ../../library/turtle.rst:1240 msgid "``fillcolor(r, g, b)``" @@ -2301,17 +2301,16 @@ 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 "" -"Setze die Füllfarbe auf die durch *r*, *g* und *b* dargestellte " -"RGB-Farbe. Jeder der Werte *r*, *g* und *b* muss im Bereich " -"0..colormode liegen." +"Setze die Füllfarbe auf die durch *r*, *g* und *b* dargestellte RGB-Farbe. " +"Jeder der Werte *r*, *g* und *b* muss im Bereich 0..colormode liegen." #: ../../library/turtle.rst:1244 msgid "" "If turtleshape is a polygon, the interior of that polygon is drawn with the " "newly set fillcolor." msgstr "" -"Ist die Form der Turtle ein Polygon, wird das Innere dieses Polygons " -"mit der neu gesetzten Füllfarbe gezeichnet." +"Ist die Form der Turtle ein Polygon, wird das Innere dieses Polygons mit der " +"neu gesetzten Füllfarbe gezeichnet." #: ../../library/turtle.rst:1247 msgid "" @@ -2347,8 +2346,8 @@ msgstr "Gib die Stiftfarbe und die Füllfarbe zurück oder setze sie." msgid "" "Several input formats are allowed. They use 0 to 3 arguments as follows:" msgstr "" -"Mehrere Eingabeformate sind erlaubt. Sie verwenden dabei 0 bis 3 " -"Argumente wie folgt:" +"Mehrere Eingabeformate sind erlaubt. Sie verwenden dabei 0 bis 3 Argumente " +"wie folgt:" #: ../../library/turtle.rst:1273 msgid "``color()``" @@ -2357,12 +2356,12 @@ msgstr "``color()``" #: ../../library/turtle.rst:1274 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 "" "Gib die aktuelle Stiftfarbe und die aktuelle Füllfarbe als Paar von " -"Farbangabe-Strings oder Tupeln zurück, wie sie von :func:`pencolor` " -"und :func:`fillcolor` zurückgegeben werden." +"Farbangabe-Strings oder Tupeln zurück, wie sie von :func:`pencolor` und :" +"func:`fillcolor` zurückgegeben werden." #: ../../library/turtle.rst:1278 msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" @@ -2373,8 +2372,8 @@ msgid "" "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the " "given value." msgstr "" -"Eingaben wie bei :func:`pencolor`, setzt sowohl fillcolor als auch " -"pencolor auf den angegebenen Wert." +"Eingaben wie bei :func:`pencolor`, setzt sowohl fillcolor als auch pencolor " +"auf den angegebenen Wert." #: ../../library/turtle.rst:1282 msgid "" @@ -2387,16 +2386,16 @@ msgid "" "Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and " "analogously if the other input format is used." msgstr "" -"Entspricht ``pencolor(colorstring1)`` und ``fillcolor(colorstring2)`` " -"und analog, wenn das andere Eingabeformat verwendet wird." +"Entspricht ``pencolor(colorstring1)`` und ``fillcolor(colorstring2)`` und " +"analog, wenn das andere Eingabeformat verwendet wird." #: ../../library/turtle.rst:1286 msgid "" "If turtleshape is a polygon, outline and interior of that polygon is drawn " "with the newly set colors." msgstr "" -"Ist die Form der Turtle ein Polygon, werden Umriss und Inneres " -"dieses Polygons mit den neu gesetzten Farben gezeichnet." +"Ist die Form der Turtle ein Polygon, werden Umriss und Inneres dieses " +"Polygons mit den neu gesetzten Farben gezeichnet." #: ../../library/turtle.rst:1289 msgid "" @@ -2420,7 +2419,8 @@ msgstr "Siehe auch: Screen-Methode :func:`colormode`." #: ../../library/turtle.rst:1314 msgid "Return fillstate (``True`` if filling, ``False`` else)." -msgstr "Gib den Füllstatus zurück (``True``, wenn gefüllt wird, sonst ``False``)." +msgstr "" +"Gib den Füllstatus zurück (``True``, wenn gefüllt wird, sonst ``False``)." #: ../../library/turtle.rst:1316 msgid "" @@ -2455,9 +2455,8 @@ 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 "" -"Die Verwendung von :func:`!fill` entspricht dem Hinzufügen von " -":func:`begin_fill` vor dem Füllblock und :func:`end_fill` nach dem " -"Füllblock:" +"Die Verwendung von :func:`!fill` entspricht dem Hinzufügen von :func:" +"`begin_fill` vor dem Füllblock und :func:`end_fill` nach dem Füllblock:" #: ../../library/turtle.rst:1339 ../../library/turtle.rst:1364 msgid "" @@ -2474,8 +2473,7 @@ msgstr "" #: ../../library/turtle.rst:1352 msgid "To be called just before drawing a shape to be filled." msgstr "" -"Muss unmittelbar vor dem Zeichnen einer zu füllenden Form aufgerufen " -"werden." +"Muss unmittelbar vor dem Zeichnen einer zu füllenden Form aufgerufen werden." #: ../../library/turtle.rst:1357 msgid "Fill the shape drawn after the last call to :func:`begin_fill`." @@ -2483,7 +2481,6 @@ msgstr "" "Fülle die Form, die seit dem letzten Aufruf von :func:`begin_fill` " "gezeichnet wurde." - #: ../../library/turtle.rst:1359 msgid "" "Whether or not overlap regions for self-intersecting polygons or multiple " @@ -2491,19 +2488,19 @@ msgid "" "and number of overlaps. For example, the Turtle star above may be either " "all yellow or have some white regions." msgstr "" -"Ob Überlappungsbereiche bei selbstüberschneidenden Polygonen oder " -"mehreren Formen gefüllt werden, hängt von der Grafik des " -"Betriebssystems, der Art der Überlappung und der Anzahl der " -"Überlappungen ab. Zum Beispiel kann der oben gezeigte Turtle-Stern " -"entweder komplett gelb sein oder einige weiße Bereiche aufweisen." +"Ob Überlappungsbereiche bei selbstüberschneidenden Polygonen oder mehreren " +"Formen gefüllt werden, hängt von der Grafik des Betriebssystems, der Art der " +"Überlappung und der Anzahl der Überlappungen ab. Zum Beispiel kann der oben " +"gezeigte Turtle-Stern entweder komplett gelb sein oder einige weiße Bereiche " +"aufweisen." #: ../../library/turtle.rst:1378 msgid "" "Delete the turtle's drawings from the screen, re-center the turtle and set " "variables to the default values." msgstr "" -"Lösche die Zeichnungen der Turtle vom Bildschirm, zentriere die " -"Turtle neu und setze die Variablen auf ihre Standardwerte zurück." +"Lösche die Zeichnungen der Turtle vom Bildschirm, zentriere die Turtle neu " +"und setze die Variablen auf ihre Standardwerte zurück." #: ../../library/turtle.rst:1381 msgid "" @@ -2537,8 +2534,8 @@ msgid "" "and position of the turtle as well as drawings of other turtles are not " "affected." msgstr "" -"Lösche die Zeichnungen der Turtle vom Bildschirm, zentriere die " -"Turtle neu und setze die Variablen auf ihre Standardwerte zurück." +"Lösche die Zeichnungen der Turtle vom Bildschirm, zentriere die Turtle neu " +"und setze die Variablen auf ihre Standardwerte zurück." #: ../../library/turtle.rst:1405 msgid "object to be written to the TurtleScreen" @@ -2563,11 +2560,10 @@ msgid "" "the given font. If *move* is true, the pen is moved to the bottom-right " "corner of the text. By default, *move* is ``False``." msgstr "" -"Schreibe Text – die String-Darstellung von *arg* – an die aktuelle " -"Position der Turtle entsprechend *align* (\"left\", \"center\" oder " -"\"right\") und mit der angegebenen Schriftart. Ist *move* wahr, wird " -"der Stift an die untere rechte Ecke des Textes bewegt. Standardmäßig " -"ist *move* ``False``." +"Schreibe Text – die String-Darstellung von *arg* – an die aktuelle Position " +"der Turtle entsprechend *align* (\"left\", \"center\" oder \"right\") und " +"mit der angegebenen Schriftart. Ist *move* wahr, wird der Stift an die " +"untere rechte Ecke des Textes bewegt. Standardmäßig ist *move* ``False``." #: ../../library/turtle.rst:1415 msgid "" @@ -2583,9 +2579,9 @@ msgid "" "middle of doing some complex drawing, because hiding the turtle speeds up " "the drawing observably." msgstr "" -"Mache die Turtle unsichtbar. Es ist eine gute Idee, dies während " -"einer komplexen Zeichnung zu tun, da das Verstecken der Turtle das " -"Zeichnen merklich beschleunigt." +"Mache die Turtle unsichtbar. Es ist eine gute Idee, dies während einer " +"komplexen Zeichnung zu tun, da das Verstecken der Turtle das Zeichnen " +"merklich beschleunigt." #: ../../library/turtle.rst:1435 msgid ">>> turtle.hideturtle()" @@ -2602,8 +2598,8 @@ msgstr ">>> turtle.showturtle()" #: ../../library/turtle.rst:1454 msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." msgstr "" -"Gib ``True`` zurück, wenn die Turtle sichtbar ist, ``False``, wenn " -"sie versteckt ist." +"Gib ``True`` zurück, wenn die Turtle sichtbar ist, ``False``, wenn sie " +"versteckt ist." #: ../../library/turtle.rst:1456 msgid "" @@ -2631,16 +2627,15 @@ msgid "" "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 "" -"Setze die Form der Turtle auf die Form mit dem angegebenen *name*, " -"oder, falls kein Name angegeben ist, gib den Namen der aktuellen " -"Form zurück. Die Form mit *name* muss im Formen-Dictionary des " -"TurtleScreen vorhanden sein. Anfangs stehen folgende Polygonformen " -"zur Verfügung: \"arrow\", \"turtle\", \"circle\", \"square\", " -"\"triangle\", \"classic\". Um mehr über den Umgang mit Formen zu " -"erfahren, siehe die Screen-Methode :func:`register_shape`." +"Setze die Form der Turtle auf die Form mit dem angegebenen *name*, oder, " +"falls kein Name angegeben ist, gib den Namen der aktuellen Form zurück. Die " +"Form mit *name* muss im Formen-Dictionary des TurtleScreen vorhanden sein. " +"Anfangs stehen folgende Polygonformen zur Verfügung: \"arrow\", \"turtle\", " +"\"circle\", \"square\", \"triangle\", \"classic\". Um mehr über den Umgang " +"mit Formen zu erfahren, siehe die Screen-Methode :func:`register_shape`." #: ../../library/turtle.rst:1480 msgid "" @@ -2666,18 +2661,17 @@ msgid "" "*rmode* is not given, return current resizemode. Different resizemodes have " "the following effects:" msgstr "" -"Setze resizemode auf einen der Werte: \"auto\", \"user\", \"noresize\". " -"Wird *rmode* nicht angegeben, wird der aktuelle resizemode " -"zurückgegeben. Die verschiedenen resizemodes haben folgende " -"Auswirkungen:" +"Setze resizemode auf einen der Werte: \"auto\", \"user\", \"noresize\". Wird " +"*rmode* nicht angegeben, wird der aktuelle resizemode zurückgegeben. Die " +"verschiedenen resizemodes haben folgende Auswirkungen:" #: ../../library/turtle.rst:1498 msgid "" "\"auto\": adapts the appearance of the turtle corresponding to the value of " "pensize." msgstr "" -"\"auto\": passt das Erscheinungsbild der Turtle entsprechend dem " -"Wert von pensize an." +"\"auto\": passt das Erscheinungsbild der Turtle entsprechend dem Wert von " +"pensize an." #: ../../library/turtle.rst:1499 msgid "" @@ -2685,22 +2679,22 @@ msgid "" "stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." msgstr "" "\"user\": passt das Erscheinungsbild der Turtle gemäß den Werten von " -"stretchfactor und outlinewidth (outline) an, die durch :func:" -"`shapesize` gesetzt werden." +"stretchfactor und outlinewidth (outline) an, die durch :func:`shapesize` " +"gesetzt werden." #: ../../library/turtle.rst:1502 msgid "\"noresize\": no adaption of the turtle's appearance takes place." msgstr "" -"\"noresize\": es findet keine Anpassung des Erscheinungsbilds der " -"Turtle statt." +"\"noresize\": es findet keine Anpassung des Erscheinungsbilds der Turtle " +"statt." #: ../../library/turtle.rst:1504 msgid "" "``resizemode(\"user\")`` is called by :func:`shapesize` when used with " "arguments." msgstr "" -"``resizemode(\"user\")`` wird von :func:`shapesize` aufgerufen, wenn " -"es mit Argumenten verwendet wird." +"``resizemode(\"user\")`` wird von :func:`shapesize` aufgerufen, wenn es mit " +"Argumenten verwendet wird." #: ../../library/turtle.rst:1506 msgid "" @@ -2730,13 +2724,12 @@ msgid "" "*stretch_len* is stretchfactor in direction of its orientation, *outline* " "determines the width of the shape's outline." msgstr "" -"Gib die Stift-Attribute x/y-Streckfaktoren und/oder outline zurück " -"oder setze sie. Setze resizemode auf \"user\". Nur wenn resizemode " -"auf \"user\" gesetzt ist, wird die Turtle entsprechend ihrer " -"Streckfaktoren gestreckt dargestellt: *stretch_wid* ist der " -"Streckfaktor senkrecht zu ihrer Ausrichtung, *stretch_len* ist der " -"Streckfaktor in Richtung ihrer Ausrichtung, *outline* bestimmt die " -"Breite des Umrisses der Form." +"Gib die Stift-Attribute x/y-Streckfaktoren und/oder outline zurück oder " +"setze sie. Setze resizemode auf \"user\". Nur wenn resizemode auf \"user\" " +"gesetzt ist, wird die Turtle entsprechend ihrer Streckfaktoren gestreckt " +"dargestellt: *stretch_wid* ist der Streckfaktor senkrecht zu ihrer " +"Ausrichtung, *stretch_len* ist der Streckfaktor in Richtung ihrer " +"Ausrichtung, *outline* bestimmt die Breite des Umrisses der Form." #: ../../library/turtle.rst:1530 msgid "" @@ -2773,12 +2766,12 @@ msgid "" "given: return the current shearfactor, i. e. the tangent of the shear angle, " "by which lines parallel to the heading of the turtle are sheared." msgstr "" -"Setze den aktuellen Scherfaktor oder gib ihn zurück. Schere die Form " -"der Turtle gemäß dem angegebenen Scherfaktor shear, der der Tangens " -"des Scherwinkels ist. Ändere *nicht* die Ausrichtung der Turtle " +"Setze den aktuellen Scherfaktor oder gib ihn zurück. Schere die Form der " +"Turtle gemäß dem angegebenen Scherfaktor shear, der der Tangens des " +"Scherwinkels ist. Ändere *nicht* die Ausrichtung der Turtle " "(Bewegungsrichtung). Wird shear nicht angegeben: gib den aktuellen " -"Scherfaktor zurück, d. h. den Tangens des Scherwinkels, um den " -"Linien parallel zur Ausrichtung der Turtle geschert werden." +"Scherfaktor zurück, d. h. den Tangens des Scherwinkels, um den Linien " +"parallel zur Ausrichtung der Turtle geschert werden." #: ../../library/turtle.rst:1555 msgid "" @@ -2799,9 +2792,8 @@ msgid "" "Rotate the turtleshape by *angle* from its current tilt-angle, but do *not* " "change the turtle's heading (direction of movement)." msgstr "" -"Drehe die Form der Turtle um *angle* von ihrem aktuellen " -"Kippwinkel aus, ändere aber *nicht* die Ausrichtung der Turtle " -"(Bewegungsrichtung)." +"Drehe die Form der Turtle um *angle* von ihrem aktuellen Kippwinkel aus, " +"ändere aber *nicht* die Ausrichtung der Turtle (Bewegungsrichtung)." #: ../../library/turtle.rst:1572 msgid "" @@ -2836,13 +2828,12 @@ msgid "" "angle between the orientation of the turtleshape and the heading of the " "turtle (its direction of movement)." msgstr "" -"Setze den aktuellen Kippwinkel oder gib ihn zurück. Wird angle " -"angegeben, wird die Form der Turtle so gedreht, dass sie in die " -"durch angle angegebene Richtung zeigt, unabhängig von ihrem " -"aktuellen Kippwinkel. Ändere *nicht* die Ausrichtung der Turtle " -"(Bewegungsrichtung). Wird angle nicht angegeben: gib den aktuellen " -"Kippwinkel zurück, d. h. den Winkel zwischen der Ausrichtung der " -"Form der Turtle und der Ausrichtung der Turtle (ihrer " +"Setze den aktuellen Kippwinkel oder gib ihn zurück. Wird angle angegeben, " +"wird die Form der Turtle so gedreht, dass sie in die durch angle angegebene " +"Richtung zeigt, unabhängig von ihrem aktuellen Kippwinkel. Ändere *nicht* " +"die Ausrichtung der Turtle (Bewegungsrichtung). Wird angle nicht angegeben: " +"gib den aktuellen Kippwinkel zurück, d. h. den Winkel zwischen der " +"Ausrichtung der Form der Turtle und der Ausrichtung der Turtle (ihrer " "Bewegungsrichtung)." #: ../../library/turtle.rst:1596 @@ -2864,8 +2855,7 @@ msgstr "" #: ../../library/turtle.rst:1614 msgid "Set or return the current transformation matrix of the turtle shape." msgstr "" -"Setze die aktuelle Transformationsmatrix der Turtle-Form oder gib " -"sie zurück." +"Setze die aktuelle Transformationsmatrix der Turtle-Form oder gib sie zurück." #: ../../library/turtle.rst:1616 msgid "" @@ -2876,13 +2866,12 @@ msgid "" "otherwise an error is raised. Modify stretchfactor, shearfactor and " "tiltangle according to the given matrix." msgstr "" -"Werden keine der Matrixelemente angegeben, wird die " -"Transformationsmatrix als Tupel aus 4 Elementen zurückgegeben. " -"Andernfalls werden die angegebenen Elemente gesetzt und die Form " -"der Turtle entsprechend der Matrix transformiert, die aus der " -"ersten Zeile t11, t12 und der zweiten Zeile t21, t22 besteht. Die " -"Determinante t11 * t22 - t12 * t21 darf nicht null sein, andernfalls " -"wird ein Fehler ausgelöst. Ändert stretchfactor, shearfactor und " +"Werden keine der Matrixelemente angegeben, wird die Transformationsmatrix " +"als Tupel aus 4 Elementen zurückgegeben. Andernfalls werden die angegebenen " +"Elemente gesetzt und die Form der Turtle entsprechend der Matrix " +"transformiert, die aus der ersten Zeile t11, t12 und der zweiten Zeile t21, " +"t22 besteht. Die Determinante t11 * t22 - t12 * t21 darf nicht null sein, " +"andernfalls wird ein Fehler ausgelöst. Ändert stretchfactor, shearfactor und " "tiltangle entsprechend der angegebenen Matrix." #: ../../library/turtle.rst:1625 @@ -2906,9 +2895,9 @@ 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 "" -"Gib das aktuelle Formen-Polygon als Tupel von Koordinatenpaaren " -"zurück. Dies kann verwendet werden, um eine neue Form oder " -"Komponenten einer zusammengesetzten Form zu definieren." +"Gib das aktuelle Formen-Polygon als Tupel von Koordinatenpaaren zurück. Dies " +"kann verwendet werden, um eine neue Form oder Komponenten einer " +"zusammengesetzten Form zu definieren." #: ../../library/turtle.rst:1641 msgid "" @@ -2928,8 +2917,8 @@ msgid "" "a function with two arguments which will be called with the coordinates of " "the clicked point on the canvas" msgstr "" -"eine Funktion mit zwei Argumenten, die mit den Koordinaten des " -"angeklickten Punkts auf der Zeichenfläche aufgerufen wird" +"eine Funktion mit zwei Argumenten, die mit den Koordinaten des angeklickten " +"Punkts auf der Zeichenfläche aufgerufen wird" #: ../../library/turtle.rst:1658 ../../library/turtle.rst:1680 #: ../../library/turtle.rst:1705 ../../library/turtle.rst:2166 @@ -2951,9 +2940,9 @@ msgid "" "existing bindings are removed. Example for the anonymous turtle, i.e. the " "procedural way:" msgstr "" -"Binde *fun* an Mausklick-Ereignisse dieser Turtle. Ist *fun* " -"``None``, werden bestehende Bindungen entfernt. Beispiel für die " -"anonyme Turtle, d. h. die prozedurale Vorgehensweise:" +"Binde *fun* an Mausklick-Ereignisse dieser Turtle. Ist *fun* ``None``, " +"werden bestehende Bindungen entfernt. Beispiel für die anonyme Turtle, d. h. " +"die prozedurale Vorgehensweise:" #: ../../library/turtle.rst:1666 msgid "" @@ -2974,8 +2963,8 @@ msgid "" "Bind *fun* to mouse-button-release events on this turtle. If *fun* is " "``None``, existing bindings are removed." msgstr "" -"Binde *fun* an Loslassen-der-Maustaste-Ereignisse dieser Turtle. Ist " -"*fun* ``None``, werden bestehende Bindungen entfernt." +"Binde *fun* an Loslassen-der-Maustaste-Ereignisse dieser Turtle. Ist *fun* " +"``None``, werden bestehende Bindungen entfernt." #: ../../library/turtle.rst:1687 msgid "" @@ -3006,16 +2995,16 @@ msgid "" "Bind *fun* to mouse-move events on this turtle. If *fun* is ``None``, " "existing bindings are removed." msgstr "" -"Binde *fun* an Mausbewegungs-Ereignisse dieser Turtle. Ist *fun* " -"``None``, werden bestehende Bindungen entfernt." +"Binde *fun* an Mausbewegungs-Ereignisse dieser Turtle. Ist *fun* ``None``, " +"werden bestehende Bindungen entfernt." #: ../../library/turtle.rst:1712 msgid "" "Remark: Every sequence of mouse-move-events on a turtle is preceded by a " "mouse-click event on that turtle." msgstr "" -"Anmerkung: Jeder Abfolge von Mausbewegungs-Ereignissen auf einer " -"Turtle geht ein Mausklick-Ereignis auf dieser Turtle voraus." +"Anmerkung: Jeder Abfolge von Mausbewegungs-Ereignissen auf einer Turtle geht " +"ein Mausklick-Ereignis auf dieser Turtle voraus." #: ../../library/turtle.rst:1715 msgid ">>> turtle.ondrag(turtle.goto)" @@ -3027,17 +3016,15 @@ msgid "" "screen thereby producing handdrawings (if pen is down)." msgstr "" "Anschließend bewegt das Klicken und Ziehen der Turtle diese über den " -"Bildschirm und erzeugt dabei Handzeichnungen (wenn der Stift unten " -"ist)." +"Bildschirm und erzeugt dabei Handzeichnungen (wenn der Stift unten ist)." #: ../../library/turtle.rst:1730 msgid "" "Record the vertices of a polygon drawn in the ``with turtle.poly():`` block. " "The first and last vertices will be connected." msgstr "" -"Zeichne die Eckpunkte eines Polygons auf, das im ``with " -"turtle.poly():``-Block gezeichnet wird. Der erste und letzte " -"Eckpunkt werden verbunden." +"Zeichne die Eckpunkte eines Polygons auf, das im ``with turtle.poly():``-" +"Block gezeichnet wird. Der erste und letzte Eckpunkt werden verbunden." #: ../../library/turtle.rst:1733 msgid "" @@ -3056,17 +3043,17 @@ msgid "" "Start recording the vertices of a polygon. Current turtle position is first " "vertex of polygon." msgstr "" -"Beginne mit dem Aufzeichnen der Eckpunkte eines Polygons. Die " -"aktuelle Position der Turtle ist der erste Eckpunkt des Polygons." +"Beginne mit dem Aufzeichnen der Eckpunkte eines Polygons. Die aktuelle " +"Position der Turtle ist der erste Eckpunkt des Polygons." #: ../../library/turtle.rst:1752 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 "" -"Beende das Aufzeichnen der Eckpunkte eines Polygons. Die aktuelle " -"Position der Turtle ist der letzte Eckpunkt des Polygons. Dieser " -"wird mit dem ersten Eckpunkt verbunden." +"Beende das Aufzeichnen der Eckpunkte eines Polygons. Die aktuelle Position " +"der Turtle ist der letzte Eckpunkt des Polygons. Dieser wird mit dem ersten " +"Eckpunkt verbunden." #: ../../library/turtle.rst:1758 msgid "Return the last recorded polygon." @@ -3101,8 +3088,8 @@ msgid "" "Create and return a clone of the turtle with same position, heading and " "turtle properties." msgstr "" -"Erstelle und gib einen Klon der Turtle mit derselben Position, " -"Ausrichtung und denselben Turtle-Eigenschaften zurück." +"Erstelle und gib einen Klon der Turtle mit derselben Position, Ausrichtung " +"und denselben Turtle-Eigenschaften zurück." #: ../../library/turtle.rst:1780 msgid "" @@ -3117,8 +3104,8 @@ msgid "" "Return the Turtle object itself. Only reasonable use: as a function to " "return the \"anonymous turtle\":" msgstr "" -"Gib das Turtle-Objekt selbst zurück. Einzig sinnvolle Verwendung: " -"als Funktion, um die \"anonyme Turtle\" zurückzugeben:" +"Gib das Turtle-Objekt selbst zurück. Einzig sinnvolle Verwendung: als " +"Funktion, um die \"anonyme Turtle\" zurückzugeben:" #: ../../library/turtle.rst:1793 msgid "" @@ -3137,9 +3124,8 @@ msgid "" "Return the :class:`TurtleScreen` object the turtle is drawing on. " "TurtleScreen methods can then be called for that object." msgstr "" -"Gib das :class:`TurtleScreen`-Objekt zurück, auf dem die Turtle " -"zeichnet. Für dieses Objekt können dann TurtleScreen-Methoden " -"aufgerufen werden." +"Gib das :class:`TurtleScreen`-Objekt zurück, auf dem die Turtle zeichnet. " +"Für dieses Objekt können dann TurtleScreen-Methoden aufgerufen werden." #: ../../library/turtle.rst:1807 msgid "" @@ -3164,12 +3150,11 @@ msgid "" "that can be undone by the :func:`undo` method/function. If *size* is " "``None``, the undobuffer is disabled." msgstr "" -"Setze den Undo-Puffer oder deaktiviere ihn. Ist *size* eine " -"Ganzzahl, wird ein leerer Undo-Puffer der angegebenen Größe " -"installiert. *size* gibt die maximale Anzahl der Turtle-Aktionen " -"an, die durch die Methode/Funktion :func:`undo` rückgängig gemacht " -"werden können. Ist *size* ``None``, wird der Undo-Puffer " -"deaktiviert." +"Setze den Undo-Puffer oder deaktiviere ihn. Ist *size* eine Ganzzahl, wird " +"ein leerer Undo-Puffer der angegebenen Größe installiert. *size* gibt die " +"maximale Anzahl der Turtle-Aktionen an, die durch die Methode/Funktion :func:" +"`undo` rückgängig gemacht werden können. Ist *size* ``None``, wird der Undo-" +"Puffer deaktiviert." #: ../../library/turtle.rst:1825 msgid ">>> turtle.setundobuffer(42)" @@ -3197,9 +3182,9 @@ msgid "" "different color, you must use the helper class :class:`Shape` explicitly as " "described below:" msgstr "" -"Um zusammengesetzte Turtle-Formen zu verwenden, die aus mehreren " -"Polygonen unterschiedlicher Farbe bestehen, musst du die Hilfsklasse " -":class:`Shape` explizit verwenden, wie unten beschrieben:" +"Um zusammengesetzte Turtle-Formen zu verwenden, die aus mehreren Polygonen " +"unterschiedlicher Farbe bestehen, musst du die Hilfsklasse :class:`Shape` " +"explizit verwenden, wie unten beschrieben:" #: ../../library/turtle.rst:1852 msgid "Create an empty Shape object of type \"compound\"." @@ -3207,11 +3192,11 @@ msgstr "Erstelle ein leeres Shape-Objekt vom Typ \"compound\"." #: ../../library/turtle.rst:1853 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 "" -"Füge diesem Objekt beliebig viele Komponenten hinzu, indem du die " -"Methode :meth:`~Shape.addcomponent` verwendest." +"Füge diesem Objekt beliebig viele Komponenten hinzu, indem du die Methode :" +"meth:`~Shape.addcomponent` verwendest." #: ../../library/turtle.rst:1856 msgid "For example:" @@ -3249,10 +3234,10 @@ msgid "" "method in different ways. The application programmer has to deal with the " "Shape class *only* when using compound shapes like shown above!" msgstr "" -"Die Klasse :class:`Shape` wird von der Methode :func:`register_shape` " -"intern auf unterschiedliche Weise verwendet. Programmierende müssen " -"sich mit der Shape-Klasse *nur* dann befassen, wenn zusammengesetzte " -"Formen wie oben gezeigt verwendet werden!" +"Die Klasse :class:`Shape` wird von der Methode :func:`register_shape` intern " +"auf unterschiedliche Weise verwendet. Programmierende müssen sich mit der " +"Shape-Klasse *nur* dann befassen, wenn zusammengesetzte Formen wie oben " +"gezeigt verwendet werden!" #: ../../library/turtle.rst:1884 msgid "Methods of TurtleScreen/Screen and corresponding functions" @@ -3280,9 +3265,9 @@ msgid "" "tuple (see example). May be used as input to another color/pencolor/" "fillcolor/bgcolor call." msgstr "" -"Gib die aktuelle Hintergrundfarbe als Farbangabe-String oder als " -"Tupel zurück (siehe Beispiel). Kann als Eingabe für einen weiteren " -"color/pencolor/fillcolor/bgcolor-Aufruf verwendet werden." +"Gib die aktuelle Hintergrundfarbe als Farbangabe-String oder als Tupel " +"zurück (siehe Beispiel). Kann als Eingabe für einen weiteren color/pencolor/" +"fillcolor/bgcolor-Aufruf verwendet werden." #: ../../library/turtle.rst:1911 msgid "``bgcolor(colorstring)``" @@ -3293,9 +3278,9 @@ msgid "" "Set the background color to *colorstring*, which is a Tk color specification " "string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" -"Gib die aktuelle Hintergrundfarbe als Farbangabe-String oder als " -"Tupel zurück (siehe Beispiel). Kann als Eingabe für einen weiteren " -"color/pencolor/fillcolor/bgcolor-Aufruf verwendet werden." +"Gib die aktuelle Hintergrundfarbe als Farbangabe-String oder als Tupel " +"zurück (siehe Beispiel). Kann als Eingabe für einen weiteren color/pencolor/" +"fillcolor/bgcolor-Aufruf verwendet werden." #: ../../library/turtle.rst:1915 msgid "``bgcolor((r, g, b))``" @@ -3307,9 +3292,8 @@ msgid "" "*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 "" -"Setze die Hintergrundfarbe auf *colorstring*, was ein " -"Tk-Farbangabe-String ist, wie zum Beispiel ``\"red\"``, ``\"yellow\"`` " -"oder ``\"#33cc8c\"``." +"Setze die Hintergrundfarbe auf *colorstring*, was ein Tk-Farbangabe-String " +"ist, wie zum Beispiel ``\"red\"``, ``\"yellow\"`` oder ``\"#33cc8c\"``." #: ../../library/turtle.rst:1921 msgid "``bgcolor(r, g, b)``" @@ -3320,9 +3304,8 @@ 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 "" -"Setze die Hintergrundfarbe auf die durch *r*, *g* und *b* " -"dargestellte RGB-Farbe. Jeder der Werte *r*, *g* und *b* muss im " -"Bereich 0..colormode liegen." +"Setze die Hintergrundfarbe auf die durch *r*, *g* und *b* dargestellte RGB-" +"Farbe. Jeder der Werte *r*, *g* und *b* muss im Bereich 0..colormode liegen." #: ../../library/turtle.rst:1925 msgid "" @@ -3355,12 +3338,11 @@ msgid "" "*picname* is ``\"nopic\"``, delete background image, if present. If " "*picname* is ``None``, return the filename of the current backgroundimage. ::" msgstr "" -"Setze das Hintergrundbild oder gib den Namen des aktuellen " -"Hintergrundbilds zurück. Ist *picname* ein Dateiname, wird das " -"entsprechende Bild als Hintergrund gesetzt. Ist *picname* " -"``\"nopic\"``, wird das Hintergrundbild gelöscht, falls vorhanden. " -"Ist *picname* ``None``, wird der Dateiname des aktuellen " -"Hintergrundbilds zurückgegeben. ::" +"Setze das Hintergrundbild oder gib den Namen des aktuellen Hintergrundbilds " +"zurück. Ist *picname* ein Dateiname, wird das entsprechende Bild als " +"Hintergrund gesetzt. Ist *picname* ``\"nopic\"``, wird das Hintergrundbild " +"gelöscht, falls vorhanden. Ist *picname* ``None``, wird der Dateiname des " +"aktuellen Hintergrundbilds zurückgegeben. ::" #: ../../library/turtle.rst:1946 msgid "" @@ -3382,9 +3364,9 @@ msgid "" "name ``clearscreen``. The global function ``clear`` is a different one " "derived from the Turtle method ``clear``." msgstr "" -"Diese TurtleScreen-Methode ist als globale Funktion nur unter dem " -"Namen ``clearscreen`` verfügbar. Die globale Funktion ``clear`` ist " -"eine andere, die von der Turtle-Methode ``clear`` abgeleitet ist." +"Diese TurtleScreen-Methode ist als globale Funktion nur unter dem Namen " +"``clearscreen`` verfügbar. Die globale Funktion ``clear`` ist eine andere, " +"die von der Turtle-Methode ``clear`` abgeleitet ist." #: ../../library/turtle.rst:1964 msgid "" @@ -3392,10 +3374,9 @@ msgid "" "empty TurtleScreen to its initial state: white background, no background " "image, no event bindings and tracing on." msgstr "" -"Lösche alle Zeichnungen und alle Turtles vom TurtleScreen. Setze den " -"nun leeren TurtleScreen auf seinen Ausgangszustand zurück: weißer " -"Hintergrund, kein Hintergrundbild, keine Ereignisbindungen und " -"Tracing aktiviert." +"Lösche alle Zeichnungen und alle Turtles vom TurtleScreen. Setze den nun " +"leeren TurtleScreen auf seinen Ausgangszustand zurück: weißer Hintergrund, " +"kein Hintergrundbild, keine Ereignisbindungen und Tracing aktiviert." #: ../../library/turtle.rst:1973 msgid "" @@ -3403,9 +3384,9 @@ msgid "" "name ``resetscreen``. The global function ``reset`` is another one derived " "from the Turtle method ``reset``." msgstr "" -"Diese TurtleScreen-Methode ist als globale Funktion nur unter dem " -"Namen ``resetscreen`` verfügbar. Die globale Funktion ``reset`` ist " -"eine andere, die von der Turtle-Methode ``reset`` abgeleitet ist." +"Diese TurtleScreen-Methode ist als globale Funktion nur unter dem Namen " +"``resetscreen`` verfügbar. Die globale Funktion ``reset`` ist eine andere, " +"die von der Turtle-Methode ``reset`` abgeleitet ist." #: ../../library/turtle.rst:1980 msgid "Reset all Turtles on the Screen to their initial state." @@ -3432,12 +3413,12 @@ msgid "" "outside the canvas before." msgstr "" "Werden keine Argumente angegeben, wird das aktuelle (canvaswidth, " -"canvasheight) zurückgegeben. Andernfalls wird die Zeichenfläche, " -"auf der die Turtles zeichnen, in der Größe verändert. Das " -"Zeichenfenster wird dabei nicht verändert. Um verborgene Teile der " -"Zeichenfläche zu betrachten, verwende die Bildlaufleisten. Mit " -"dieser Methode können Teile einer Zeichnung sichtbar gemacht " -"werden, die zuvor außerhalb der Zeichenfläche lagen." +"canvasheight) zurückgegeben. Andernfalls wird die Zeichenfläche, auf der die " +"Turtles zeichnen, in der Größe verändert. Das Zeichenfenster wird dabei " +"nicht verändert. Um verborgene Teile der Zeichenfläche zu betrachten, " +"verwende die Bildlaufleisten. Mit dieser Methode können Teile einer " +"Zeichnung sichtbar gemacht werden, die zuvor außerhalb der Zeichenfläche " +"lagen." #: ../../library/turtle.rst:1995 msgid "" @@ -3479,19 +3460,18 @@ msgid "" "necessary. This performs a ``screen.reset()``. If mode \"world\" is " "already active, all drawings are redrawn according to the new coordinates." msgstr "" -"Richte ein benutzerdefiniertes Koordinatensystem ein und wechsle " -"bei Bedarf in den Modus \"world\". Dies führt ein ``screen.reset()`` " -"aus. Ist der Modus \"world\" bereits aktiv, werden alle Zeichnungen " -"entsprechend den neuen Koordinaten neu gezeichnet." - +"Richte ein benutzerdefiniertes Koordinatensystem ein und wechsle bei Bedarf " +"in den Modus \"world\". Dies führt ein ``screen.reset()`` aus. Ist der Modus " +"\"world\" bereits aktiv, werden alle Zeichnungen entsprechend den neuen " +"Koordinaten neu gezeichnet." #: ../../library/turtle.rst:2018 msgid "" "**ATTENTION**: in user-defined coordinate systems angles may appear " "distorted." msgstr "" -"**ACHTUNG**: In benutzerdefinierten Koordinatensystemen können " -"Winkel verzerrt erscheinen." +"**ACHTUNG**: In benutzerdefinierten Koordinatensystemen können Winkel " +"verzerrt erscheinen." #: ../../library/turtle.rst:2021 msgid "" @@ -3517,10 +3497,9 @@ msgid "" "``no_animation`` block will not be animated; once the code block is exited, " "the drawing will appear." msgstr "" -"Deaktiviere die Turtle-Animation vorübergehend. Der Code, der " -"innerhalb des ``no_animation``-Blocks geschrieben wird, wird nicht " -"animiert; sobald der Codeblock verlassen wird, erscheint die " -"Zeichnung." +"Deaktiviere die Turtle-Animation vorübergehend. Der Code, der innerhalb des " +"``no_animation``-Blocks geschrieben wird, wird nicht animiert; sobald der " +"Codeblock verlassen wird, erscheint die Zeichnung." #: ../../library/turtle.rst:2050 msgid "" @@ -3544,10 +3523,10 @@ msgid "" "the time interval between two consecutive canvas updates.) The longer the " "drawing delay, the slower the animation." msgstr "" -"Setze oder gib die Zeichen-*delay* in Millisekunden zurück. (Dies " -"ist ungefähr das Zeitintervall zwischen zwei aufeinanderfolgenden " -"Aktualisierungen der Zeichenfläche.) Je länger die Zeichen-delay, " -"desto langsamer die Animation." +"Setze oder gib die Zeichen-*delay* in Millisekunden zurück. (Dies ist " +"ungefähr das Zeitintervall zwischen zwei aufeinanderfolgenden " +"Aktualisierungen der Zeichenfläche.) Je länger die Zeichen-delay, desto " +"langsamer die Animation." #: ../../library/turtle.rst:2069 msgid "Optional argument:" @@ -3580,12 +3559,11 @@ msgid "" "delay value (see :func:`delay`)." msgstr "" "Schalte die Turtle-Animation ein/aus und setze die Verzögerung für " -"Zeichnungsaktualisierungen. Wird *n* angegeben, wird nur jede n-te " -"reguläre Bildschirmaktualisierung tatsächlich durchgeführt. (Kann " -"verwendet werden, um das Zeichnen komplexer Grafiken zu " -"beschleunigen.) Wird ohne Argumente aufgerufen, wird der aktuell " -"gespeicherte Wert von n zurückgegeben. Das zweite Argument setzt " -"den Verzögerungswert (siehe :func:`delay`)." +"Zeichnungsaktualisierungen. Wird *n* angegeben, wird nur jede n-te reguläre " +"Bildschirmaktualisierung tatsächlich durchgeführt. (Kann verwendet werden, " +"um das Zeichnen komplexer Grafiken zu beschleunigen.) Wird ohne Argumente " +"aufgerufen, wird der aktuell gespeicherte Wert von n zurückgegeben. Das " +"zweite Argument setzt den Verzögerungswert (siehe :func:`delay`)." #: ../../library/turtle.rst:2093 msgid "" @@ -3606,8 +3584,8 @@ msgstr "" #: ../../library/turtle.rst:2106 msgid "Perform a TurtleScreen update. To be used when tracer is turned off." msgstr "" -"Führe eine TurtleScreen-Aktualisierung durch. Zu verwenden, wenn " -"tracer ausgeschaltet ist." +"Führe eine TurtleScreen-Aktualisierung durch. Zu verwenden, wenn tracer " +"ausgeschaltet ist." #: ../../library/turtle.rst:2108 msgid "See also the RawTurtle/Turtle method :func:`speed`." @@ -3619,18 +3597,19 @@ msgid "" "are provided in order to be able to pass :func:`listen` to the onclick " "method." msgstr "" -"Setze den Fokus auf TurtleScreen (um Tastatur-Ereignisse zu " -"erfassen). Dummy-Argumente werden bereitgestellt, um :func:`listen` " -"an die onclick-Methode übergeben zu können." +"Setze den Fokus auf TurtleScreen (um Tastatur-Ereignisse zu erfassen). Dummy-" +"Argumente werden bereitgestellt, um :func:`listen` an die onclick-Methode " +"übergeben zu können." #: ../../library/turtle.rst:2123 ../../library/turtle.rst:2143 msgid "a function with no arguments or ``None``" msgstr "eine Funktion ohne Argumente oder ``None``" #: ../../library/turtle.rst:2124 ../../library/turtle.rst:2144 -msgid "a string: key (e.g. \"a\") or key-symbol (e.g. \"space\") " -msgstr "eine Zeichenkette: Taste (z.B. \"a\") oder Tastensymbol " -"(z.B. \"space\")" +#, fuzzy +msgid "a string: key (e.g. \"a\") or key-symbol (e.g. \"space\")" +msgstr "" +"eine Zeichenkette: Taste (z.B. \"a\") oder Tastensymbol (z.B. \"space\")" #: ../../library/turtle.rst:2126 msgid "" @@ -3638,10 +3617,10 @@ msgid "" "bindings are removed. Remark: in order to be able to register key-events, " "TurtleScreen must have the focus. (See method :func:`listen`.)" msgstr "" -"Binde *fun* an das Loslassen-Ereignis der Taste key. Ist *fun* " -"``None``, werden Ereignisbindungen entfernt. Anmerkung: Um " -"Tastatur-Ereignisse registrieren zu können, muss TurtleScreen den " -"Fokus haben. (Siehe Methode :func:`listen`.)" +"Binde *fun* an das Loslassen-Ereignis der Taste key. Ist *fun* ``None``, " +"werden Ereignisbindungen entfernt. Anmerkung: Um Tastatur-Ereignisse " +"registrieren zu können, muss TurtleScreen den Fokus haben. (Siehe Methode :" +"func:`listen`.)" #: ../../library/turtle.rst:2130 msgid "" @@ -3665,11 +3644,10 @@ msgid "" "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 "" -"Binde *fun* an das Drücken-Ereignis der Taste key, falls key " -"angegeben ist, oder an jedes Tastendruck-Ereignis, falls kein key " -"angegeben ist. Anmerkung: Um Tastatur-Ereignisse registrieren zu " -"können, muss TurtleScreen den Fokus haben. (Siehe Methode " -":func:`listen`.)" +"Binde *fun* an das Drücken-Ereignis der Taste key, falls key angegeben ist, " +"oder an jedes Tastendruck-Ereignis, falls kein key angegeben ist. Anmerkung: " +"Um Tastatur-Ereignisse registrieren zu können, muss TurtleScreen den Fokus " +"haben. (Siehe Methode :func:`listen`.)" #: ../../library/turtle.rst:2151 msgid "" @@ -3690,16 +3668,16 @@ msgid "" "Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, " "existing bindings are removed." msgstr "" -"Binde *fun* an Mausklick-Ereignisse auf diesem Screen. Ist *fun* " -"``None``, werden bestehende Bindungen entfernt." +"Binde *fun* an Mausklick-Ereignisse auf diesem Screen. Ist *fun* ``None``, " +"werden bestehende Bindungen entfernt." #: ../../library/turtle.rst:2173 msgid "" "Example for a TurtleScreen instance named ``screen`` and a Turtle instance " "named ``turtle``:" msgstr "" -"Beispiel für eine TurtleScreen-Instanz namens ``screen`` und eine " -"Turtle-Instanz namens ``turtle``:" +"Beispiel für eine TurtleScreen-Instanz namens ``screen`` und eine Turtle-" +"Instanz namens ``turtle``:" #: ../../library/turtle.rst:2176 msgid "" @@ -3721,10 +3699,9 @@ msgid "" "name ``onscreenclick``. The global function ``onclick`` is another one " "derived from the Turtle method ``onclick``." msgstr "" -"Diese TurtleScreen-Methode ist als globale Funktion nur unter dem " -"Namen ``onscreenclick`` verfügbar. Die globale Funktion ``onclick`` " -"ist eine andere, die von der Turtle-Methode ``onclick`` abgeleitet " -"ist." +"Diese TurtleScreen-Methode ist als globale Funktion nur unter dem Namen " +"``onscreenclick`` verfügbar. Die globale Funktion ``onclick`` ist eine " +"andere, die von der Turtle-Methode ``onclick`` abgeleitet ist." #: ../../library/turtle.rst:2191 msgid "a function with no arguments" @@ -3765,11 +3742,11 @@ msgid "" "run from within IDLE in -n mode (No subprocess) - for interactive use of " "turtle graphics. ::" msgstr "" -"Startet die Ereignisschleife – ruft die mainloop-Funktion von " -"Tkinter auf. Muss die letzte Anweisung in einem " -"Turtle-Grafikprogramm sein. Darf *nicht* verwendet werden, wenn ein " -"Skript innerhalb von IDLE im -n-Modus (Kein Subprozess) ausgeführt " -"wird – für die interaktive Verwendung von Turtle-Grafik. ::" +"Startet die Ereignisschleife – ruft die mainloop-Funktion von Tkinter auf. " +"Muss die letzte Anweisung in einem Turtle-Grafikprogramm sein. Darf *nicht* " +"verwendet werden, wenn ein Skript innerhalb von IDLE im -n-Modus (Kein " +"Subprozess) ausgeführt wird – für die interaktive Verwendung von Turtle-" +"Grafik. ::" #: ../../library/turtle.rst:2217 msgid ">>> screen.mainloop()" @@ -3787,11 +3764,10 @@ msgid "" "input. Return the string input. If the dialog is canceled, return " "``None``. ::" msgstr "" -"Öffne ein Dialogfenster zur Eingabe einer Zeichenkette. Der " -"Parameter title ist der Titel des Dialogfensters, prompt ist ein " -"Text, der meist beschreibt, welche Information einzugeben ist. Gib " -"die eingegebene Zeichenkette zurück. Wird der Dialog abgebrochen, " -"wird ``None`` zurückgegeben. ::" +"Öffne ein Dialogfenster zur Eingabe einer Zeichenkette. Der Parameter title " +"ist der Titel des Dialogfensters, prompt ist ein Text, der meist beschreibt, " +"welche Information einzugeben ist. Gib die eingegebene Zeichenkette zurück. " +"Wird der Dialog abgebrochen, wird ``None`` zurückgegeben. ::" #: ../../library/turtle.rst:2233 msgid ">>> screen.textinput(\"NIM\", \"Name of first player:\")" @@ -3807,15 +3783,14 @@ msgid "" "open for correction. Return the number input. If the dialog is canceled, " "return ``None``. ::" msgstr "" -"Öffne ein Dialogfenster zur Eingabe einer Zahl. title ist der Titel " -"des Dialogfensters, prompt ist ein Text, der meist beschreibt, " -"welche numerische Information einzugeben ist. default: " -"Standardwert, minval: Mindestwert für die Eingabe, maxval: " -"Höchstwert für die Eingabe. Die eingegebene Zahl muss im Bereich " -"minval .. maxval liegen, falls diese angegeben sind. Ist das nicht " -"der Fall, wird ein Hinweis ausgegeben und der Dialog bleibt zur " -"Korrektur geöffnet. Gib die eingegebene Zahl zurück. Wird der " -"Dialog abgebrochen, wird ``None`` zurückgegeben. ::" +"Öffne ein Dialogfenster zur Eingabe einer Zahl. title ist der Titel des " +"Dialogfensters, prompt ist ein Text, der meist beschreibt, welche numerische " +"Information einzugeben ist. default: Standardwert, minval: Mindestwert für " +"die Eingabe, maxval: Höchstwert für die Eingabe. Die eingegebene Zahl muss " +"im Bereich minval .. maxval liegen, falls diese angegeben sind. Ist das " +"nicht der Fall, wird ein Hinweis ausgegeben und der Dialog bleibt zur " +"Korrektur geöffnet. Gib die eingegebene Zahl zurück. Wird der Dialog " +"abgebrochen, wird ``None`` zurückgegeben. ::" #: ../../library/turtle.rst:2253 msgid "" @@ -3834,9 +3809,9 @@ msgid "" "Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If " "mode is not given, current mode is returned." msgstr "" -"Setze den Turtle-Modus (\"standard\", \"logo\" oder \"world\") und " -"führe ein Reset durch. Wird mode nicht angegeben, wird der aktuelle " -"Modus zurückgegeben." +"Setze den Turtle-Modus (\"standard\", \"logo\" oder \"world\") und führe ein " +"Reset durch. Wird mode nicht angegeben, wird der aktuelle Modus " +"zurückgegeben." #: ../../library/turtle.rst:2266 msgid "" @@ -3845,12 +3820,11 @@ msgid "" "\"world coordinates\". **Attention**: in this mode angles appear distorted " "if ``x/y`` unit-ratio doesn't equal 1." msgstr "" -"Der Modus \"standard\" ist kompatibel mit dem alten :mod:`!turtle`. " -"Der Modus \"logo\" ist kompatibel mit den meisten " -"Logo-Turtle-Grafiken. Der Modus \"world\" verwendet benutzerdefinierte " -"\"world-Koordinaten\". **Achtung**: In diesem Modus erscheinen " -"Winkel verzerrt, wenn das ``x/y``-Einheitsverhältnis nicht gleich 1 " -"ist." +"Der Modus \"standard\" ist kompatibel mit dem alten :mod:`!turtle`. Der " +"Modus \"logo\" ist kompatibel mit den meisten Logo-Turtle-Grafiken. Der " +"Modus \"world\" verwendet benutzerdefinierte \"world-Koordinaten\". " +"**Achtung**: In diesem Modus erscheinen Winkel verzerrt, wenn das ``x/y``-" +"Einheitsverhältnis nicht gleich 1 ist." #: ../../library/turtle.rst:2272 msgid "Mode" @@ -3907,9 +3881,8 @@ 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 "" -"Gib den colormode zurück oder setze ihn auf 1.0 oder 255. " -"Anschließend müssen die Werte *r*, *g*, *b* von Farb-Tripeln im " -"Bereich 0..*cmode* liegen." +"Gib den colormode zurück oder setze ihn auf 1.0 oder 255. Anschließend " +"müssen die Werte *r*, *g*, *b* von Farb-Tripeln im Bereich 0..*cmode* liegen." #: ../../library/turtle.rst:2293 msgid "" @@ -3942,8 +3915,8 @@ msgid "" "Return the Canvas of this TurtleScreen. Useful for insiders who know what " "to do with a Tkinter Canvas." msgstr "" -"Gib die Canvas dieses TurtleScreen zurück. Nützlich für Insider, " -"die wissen, was mit einer Tkinter-Canvas anzufangen ist." +"Gib die Canvas dieses TurtleScreen zurück. Nützlich für Insider, die wissen, " +"was mit einer Tkinter-Canvas anzufangen ist." #: ../../library/turtle.rst:2314 msgid "" @@ -3957,7 +3930,8 @@ msgstr "" #: ../../library/turtle.rst:2324 msgid "Return a list of names of all currently available turtle shapes." -msgstr "Gib eine Liste der Namen aller aktuell verfügbaren Turtle-Formen zurück." +msgstr "" +"Gib eine Liste der Namen aller aktuell verfügbaren Turtle-Formen zurück." #: ../../library/turtle.rst:2326 msgid "" @@ -3976,8 +3950,8 @@ msgid "" "*name* is the name of an image file (PNG, GIF, PGM, and PPM) and *shape* is " "``None``: Install the corresponding image shape. ::" msgstr "" -"*name* ist der Name einer Bilddatei (PNG, GIF, PGM und PPM) und " -"*shape* ist ``None``: Installiere die entsprechende Bildform. ::" +"*name* ist der Name einer Bilddatei (PNG, GIF, PGM und PPM) und *shape* ist " +"``None``: Installiere die entsprechende Bildform. ::" #: ../../library/turtle.rst:2341 msgid ">>> screen.register_shape(\"turtle.gif\")" @@ -3988,17 +3962,16 @@ msgid "" "Image shapes *do not* rotate when turning the turtle, so they do not display " "the heading of the turtle!" msgstr "" -"Bildformen drehen sich *nicht* mit, wenn die Turtle gedreht wird, " -"sie zeigen also nicht die Ausrichtung der Turtle an!" +"Bildformen drehen sich *nicht* mit, wenn die Turtle gedreht wird, sie zeigen " +"also nicht die Ausrichtung der Turtle an!" #: ../../library/turtle.rst:2347 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 "" -"*name* ist eine beliebige Zeichenkette und *shape* ist der Name " -"einer Bilddatei (PNG, GIF, PGM und PPM): Installiere die " -"entsprechende Bildform. ::" +"*name* ist eine beliebige Zeichenkette und *shape* ist der Name einer " +"Bilddatei (PNG, GIF, PGM und PPM): Installiere die entsprechende Bildform. ::" #: ../../library/turtle.rst:2350 msgid ">>> screen.register_shape(\"turtle\", \"turtle.gif\")" @@ -4009,8 +3982,8 @@ msgid "" "*name* is an arbitrary string and *shape* is a tuple of pairs of " "coordinates: Install the corresponding polygon shape." msgstr "" -"*name* ist eine beliebige Zeichenkette und *shape* ist ein Tupel " -"aus Koordinatenpaaren: Installiere die entsprechende Polygonform." +"*name* ist eine beliebige Zeichenkette und *shape* ist ein Tupel aus " +"Koordinatenpaaren: Installiere die entsprechende Polygonform." #: ../../library/turtle.rst:2359 msgid ">>> screen.register_shape(\"triangle\", ((5,-3), (0,5), (-5,-3)))" @@ -4022,26 +3995,25 @@ msgid "" "object: Install the corresponding compound shape." msgstr "" "*name* ist eine beliebige Zeichenkette und *shape* ist ein " -"(zusammengesetztes) :class:`Shape`-Objekt: Installiere die " -"entsprechende zusammengesetzte Form." +"(zusammengesetztes) :class:`Shape`-Objekt: Installiere die entsprechende " +"zusammengesetzte Form." #: ../../library/turtle.rst:2367 msgid "" "Add a turtle shape to TurtleScreen's shapelist. Only thusly registered " "shapes can be used by issuing the command ``shape(shapename)``." msgstr "" -"Füge eine Turtle-Form zur Formenliste des TurtleScreen hinzu. Nur " -"so registrierte Formen können durch den Befehl ``shape(shapename)`` " -"verwendet werden." +"Füge eine Turtle-Form zur Formenliste des TurtleScreen hinzu. Nur so " +"registrierte Formen können durch den Befehl ``shape(shapename)`` verwendet " +"werden." #: ../../library/turtle.rst:2370 msgid "" "Added support for PNG, PGM, and PPM image formats. Both a shape name and an " "image file name can be specified." msgstr "" -"Unterstützung für die Bildformate PNG, PGM und PPM hinzugefügt. Es " -"kann sowohl ein Formname als auch ein Bilddateiname angegeben " -"werden." +"Unterstützung für die Bildformate PNG, PGM und PPM hinzugefügt. Es kann " +"sowohl ein Formname als auch ein Bilddateiname angegeben werden." #: ../../library/turtle.rst:2377 msgid "Return the list of turtles on the screen." @@ -4095,21 +4067,20 @@ msgstr "Binde die Methode ``bye()`` an Mausklicks auf dem Screen." 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 "" "Ist der Wert \"using_IDLE\" im Konfigurations-Dictionary ``False`` " -"(Standardwert), wird auch mainloop aufgerufen. Anmerkung: Wird IDLE " -"mit dem Schalter ``-n`` (kein Subprozess) verwendet, sollte dieser " -"Wert in :file:`turtle.cfg` auf ``True`` gesetzt werden. In diesem " -"Fall ist IDLEs eigene mainloop auch für das Client-Skript aktiv." +"(Standardwert), wird auch mainloop aufgerufen. Anmerkung: Wird IDLE mit dem " +"Schalter ``-n`` (kein Subprozess) verwendet, sollte dieser Wert in :file:" +"`turtle.cfg` auf ``True`` gesetzt werden. In diesem Fall ist IDLEs eigene " +"mainloop auch für das Client-Skript aktiv." #: ../../library/turtle.rst:2426 msgid "Save the current turtle drawing (and turtles) as a PostScript file." msgstr "" -"Speichere die aktuelle Turtle-Zeichnung (und Turtles) als " -"PostScript-Datei." +"Speichere die aktuelle Turtle-Zeichnung (und Turtles) als PostScript-Datei." #: ../../library/turtle.rst:2428 msgid "the path of the saved PostScript file" @@ -4121,9 +4092,9 @@ msgid "" "the function will raise a ``FileExistsError``. If it is ``True``, the file " "will be overwritten." msgstr "" -"Ist es ``False`` und es existiert bereits eine Datei mit dem " -"angegebenen Dateinamen, löst die Funktion einen ``FileExistsError`` " -"aus. Ist es ``True``, wird die Datei überschrieben." +"Ist es ``False`` und es existiert bereits eine Datei mit dem angegebenen " +"Dateinamen, löst die Funktion einen ``FileExistsError`` aus. Ist es " +"``True``, wird die Datei überschrieben." #: ../../library/turtle.rst:2434 msgid "" @@ -4136,28 +4107,28 @@ msgstr "" #: ../../library/turtle.rst:2444 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 "" -"Setze die Größe und Position des Hauptfensters. Standardwerte der " -"Argumente sind im Konfigurations-Dictionary gespeichert und können " -"über eine :file:`turtle.cfg`-Datei geändert werden." +"Setze die Größe und Position des Hauptfensters. Standardwerte der Argumente " +"sind im Konfigurations-Dictionary gespeichert und können über eine :file:" +"`turtle.cfg`-Datei geändert werden." #: ../../library/turtle.rst:2448 msgid "" "if an integer, a size in pixels, if a float, a fraction of the screen; " "default is 50% of screen" msgstr "" -"bei einer Ganzzahl eine Größe in Pixeln, bei einer Gleitkommazahl " -"ein Anteil des Bildschirms; Standard ist 50 % des Bildschirms" +"bei einer Ganzzahl eine Größe in Pixeln, bei einer Gleitkommazahl ein Anteil " +"des Bildschirms; Standard ist 50 % des Bildschirms" #: ../../library/turtle.rst:2450 msgid "" "if an integer, the height in pixels, if a float, a fraction of the screen; " "default is 75% of screen" msgstr "" -"bei einer Ganzzahl die Höhe in Pixeln, bei einer Gleitkommazahl ein " -"Anteil des Bildschirms; Standard ist 75 % des Bildschirms" +"bei einer Ganzzahl die Höhe in Pixeln, bei einer Gleitkommazahl ein Anteil " +"des Bildschirms; Standard ist 75 % des Bildschirms" #: ../../library/turtle.rst:2452 msgid "" @@ -4165,8 +4136,8 @@ msgid "" "if negative from the right edge, if ``None``, center window horizontally" msgstr "" "bei einem positiven Wert die Startposition in Pixeln vom linken " -"Bildschirmrand aus, bei einem negativen Wert vom rechten Rand aus, " -"bei ``None`` wird das Fenster horizontal zentriert" +"Bildschirmrand aus, bei einem negativen Wert vom rechten Rand aus, bei " +"``None`` wird das Fenster horizontal zentriert" #: ../../library/turtle.rst:2455 msgid "" @@ -4174,8 +4145,8 @@ msgid "" "negative from the bottom edge, if ``None``, center window vertically" msgstr "" "bei einem positiven Wert die Startposition in Pixeln vom oberen " -"Bildschirmrand aus, bei einem negativen Wert vom unteren Rand aus, " -"bei ``None`` wird das Fenster vertikal zentriert" +"Bildschirmrand aus, bei einem negativen Wert vom unteren Rand aus, bei " +"``None`` wird das Fenster vertikal zentriert" #: ../../library/turtle.rst:2459 msgid "" @@ -4209,29 +4180,28 @@ msgstr "Öffentliche Klassen" #: ../../library/turtle.rst:2488 msgid "" -"a :class:`!tkinter.Canvas`, a :class:`ScrolledCanvas` or " -"a :class:`TurtleScreen`" +"a :class:`!tkinter.Canvas`, a :class:`ScrolledCanvas` or a :class:" +"`TurtleScreen`" msgstr "" -"ein :class:`!tkinter.Canvas`, ein :class:`ScrolledCanvas` oder ein " -":class:`TurtleScreen`" +"ein :class:`!tkinter.Canvas`, ein :class:`ScrolledCanvas` oder ein :class:" +"`TurtleScreen`" #: ../../library/turtle.rst:2491 msgid "" "Create a turtle. The turtle has all methods described above as \"methods of " "Turtle/RawTurtle\"." msgstr "" -"Erstelle eine Turtle. Die Turtle hat alle oben als \"Methoden von " -"Turtle/RawTurtle\" beschriebenen Methoden." +"Erstelle eine Turtle. Die Turtle hat alle oben als \"Methoden von Turtle/" +"RawTurtle\" beschriebenen Methoden." #: ../../library/turtle.rst:2497 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 "" -"Unterklasse von RawTurtle, hat dieselbe Schnittstelle, zeichnet " -"aber auf einem Standard-:class:`Screen`-Objekt, das automatisch " -"erstellt wird, wenn es zum ersten Mal benötigt wird." +"Unterklasse von RawTurtle, hat dieselbe Schnittstelle, zeichnet aber auf " +"einem Standard-:class:`Screen`-Objekt, das automatisch erstellt wird, wenn " +"es zum ersten Mal benötigt wird." #: ../../library/turtle.rst:2503 msgid "a :class:`!tkinter.Canvas`" @@ -4242,8 +4212,8 @@ msgid "" "Provides screen oriented methods like :func:`bgcolor` etc. that are " "described above." msgstr "" -"Stellt bildschirmorientierte Methoden wie :func:`bgcolor` usw. " -"bereit, die oben beschrieben sind." +"Stellt bildschirmorientierte Methoden wie :func:`bgcolor` usw. bereit, die " +"oben beschrieben sind." #: ../../library/turtle.rst:2510 msgid "" @@ -4257,16 +4227,16 @@ msgid "" "some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas " "with scrollbars added" msgstr "" -"ein Tkinter-Widget, das den ScrolledCanvas enthält, d. h. ein " -"Tkinter-Canvas mit hinzugefügten Bildlaufleisten" +"ein Tkinter-Widget, das den ScrolledCanvas enthält, d. h. ein Tkinter-Canvas " +"mit hinzugefügten Bildlaufleisten" #: ../../library/turtle.rst:2518 msgid "" "Used by class Screen, which thus automatically provides a ScrolledCanvas as " "playground for the turtles." msgstr "" -"Wird von der Klasse Screen verwendet, die dadurch automatisch " -"einen ScrolledCanvas als Spielfläche für die Turtles bereitstellt." +"Wird von der Klasse Screen verwendet, die dadurch automatisch einen " +"ScrolledCanvas als Spielfläche für die Turtles bereitstellt." #: ../../library/turtle.rst:2523 msgid "one of the strings \"polygon\", \"image\", \"compound\"" @@ -4277,8 +4247,8 @@ msgid "" "Data structure modeling shapes. The pair ``(type_, data)`` must follow this " "specification:" msgstr "" -"Datenstruktur zur Modellierung von Formen. Das Paar ``(type_, " -"data)`` muss dieser Spezifikation folgen:" +"Datenstruktur zur Modellierung von Formen. Das Paar ``(type_, data)`` muss " +"dieser Spezifikation folgen:" #: ../../library/turtle.rst:2530 msgid "*type_*" @@ -4310,11 +4280,11 @@ msgstr "\"compound\"" #: ../../library/turtle.rst:2534 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 "" -"``None`` (eine zusammengesetzte Form muss mit der Methode " -":meth:`addcomponent` erstellt werden)" +"``None`` (eine zusammengesetzte Form muss mit der Methode :meth:" +"`addcomponent` erstellt werden)" #: ../../library/turtle.rst:2540 msgid "a polygon, i.e. a tuple of pairs of numbers" @@ -4354,10 +4324,9 @@ msgid "" "turtle graphics. May be useful for turtle graphics programs too. Derived " "from tuple, so a vector is a tuple!" msgstr "" -"Eine zweidimensionale Vektorklasse, die als Hilfsklasse zur " -"Implementierung von Turtle-Grafik dient. Kann auch für " -"Turtle-Grafik-Programme selbst nützlich sein. Von tuple abgeleitet, " -"ein Vektor ist also ein Tupel!" +"Eine zweidimensionale Vektorklasse, die als Hilfsklasse zur Implementierung " +"von Turtle-Grafik dient. Kann auch für Turtle-Grafik-Programme selbst " +"nützlich sein. Von tuple abgeleitet, ein Vektor ist also ein Tupel!" #: ../../library/turtle.rst:2563 msgid "Provides (for *a*, *b* vectors, *k* number):" @@ -4397,48 +4366,44 @@ msgid "" "in the turtle object-oriented interface that can be used to create them and " "relate them to each other." msgstr "" -"Ein Turtle-Objekt zeichnet auf einem Screen-Objekt, und es gibt eine " -"Reihe zentraler Klassen in der objektorientierten " -"Turtle-Schnittstelle, mit denen man diese erstellen und miteinander " -"in Beziehung setzen kann." +"Ein Turtle-Objekt zeichnet auf einem Screen-Objekt, und es gibt eine Reihe " +"zentraler Klassen in der objektorientierten Turtle-Schnittstelle, mit denen " +"man diese erstellen und miteinander in Beziehung setzen kann." #: ../../library/turtle.rst:2582 msgid "" "A :class:`Turtle` instance will automatically create a :class:`Screen` " "instance if one is not already present." msgstr "" -"Eine :class:`Turtle`-Instanz erstellt automatisch eine " -":class:`Screen`-Instanz, falls noch keine vorhanden ist." +"Eine :class:`Turtle`-Instanz erstellt automatisch eine :class:`Screen`-" +"Instanz, falls noch keine vorhanden ist." #: ../../library/turtle.rst:2585 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 "" "``Turtle`` ist eine Unterklasse von :class:`RawTurtle`, die *keine* " -"Zeichenfläche automatisch erstellt - eine *canvas* muss dafür " -"bereitgestellt oder erstellt werden. Die *canvas* kann ein " -":class:`!tkinter.Canvas`, :class:`ScrolledCanvas` oder " -":class:`TurtleScreen` sein." +"Zeichenfläche automatisch erstellt - eine *canvas* muss dafür bereitgestellt " +"oder erstellt werden. Die *canvas* kann ein :class:`!tkinter.Canvas`, :class:" +"`ScrolledCanvas` oder :class:`TurtleScreen` sein." #: ../../library/turtle.rst:2591 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." -msgstr "" -":class:`TurtleScreen` ist die grundlegende Zeichenfläche für eine " -"Turtle. :class:`Screen` ist eine Unterklasse von ``TurtleScreen`` " -"und enthält :ref:`einige zusätzliche Methoden ` zur " -"Verwaltung ihres Erscheinungsbilds (einschließlich Größe und Titel) " -"und Verhaltens. Der Konstruktor von ``TurtleScreen`` benötigt ein " -":class:`!tkinter.Canvas` oder ein :class:`ScrolledCanvas` als " -"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 "" +":class:`TurtleScreen` ist die grundlegende Zeichenfläche für eine Turtle. :" +"class:`Screen` ist eine Unterklasse von ``TurtleScreen`` und enthält :ref:" +"`einige zusätzliche Methoden ` zur Verwaltung ihres " +"Erscheinungsbilds (einschließlich Größe und Titel) und Verhaltens. Der " +"Konstruktor von ``TurtleScreen`` benötigt ein :class:`!tkinter.Canvas` oder " +"ein :class:`ScrolledCanvas` als Argument." #: ../../library/turtle.rst:2598 msgid "" @@ -4448,21 +4413,20 @@ msgid "" "``Screen`` method is called. Similarly, a turtle object is automatically " "created whenever any of the functions derived from a Turtle method is called." msgstr "" -"Die funktionale Schnittstelle für Turtle-Grafik verwendet die " -"verschiedenen Methoden von ``Turtle`` und ``TurtleScreen``/``Screen``. " -"Im Hintergrund wird automatisch ein Screen-Objekt erstellt, sobald " -"eine von einer ``Screen``-Methode abgeleitete Funktion aufgerufen " -"wird. Ebenso wird automatisch ein Turtle-Objekt erstellt, sobald " -"eine der von einer Turtle-Methode abgeleiteten Funktionen aufgerufen " -"wird." +"Die funktionale Schnittstelle für Turtle-Grafik verwendet die verschiedenen " +"Methoden von ``Turtle`` und ``TurtleScreen``/``Screen``. Im Hintergrund wird " +"automatisch ein Screen-Objekt erstellt, sobald eine von einer ``Screen``-" +"Methode abgeleitete Funktion aufgerufen wird. Ebenso wird automatisch ein " +"Turtle-Objekt erstellt, sobald eine der von einer Turtle-Methode " +"abgeleiteten Funktionen aufgerufen wird." #: ../../library/turtle.rst:2604 msgid "" "To use multiple turtles on a screen, the object-oriented interface must be " "used." msgstr "" -"Um mehrere Turtles auf einem Screen zu verwenden, muss die " -"objektorientierte Schnittstelle genutzt werden." +"Um mehrere Turtles auf einem Screen zu verwenden, muss die objektorientierte " +"Schnittstelle genutzt werden." #: ../../library/turtle.rst:2609 msgid "Help and configuration" @@ -4478,18 +4442,17 @@ msgid "" "extensively via docstrings. So these can be used as online-help via the " "Python help facilities:" msgstr "" -"Die öffentlichen Methoden der Klassen Screen und Turtle sind " -"ausführlich über Docstrings dokumentiert. Diese können daher über " -"die Python-Hilfefunktionen als Online-Hilfe verwendet werden:" +"Die öffentlichen Methoden der Klassen Screen und Turtle sind ausführlich " +"über Docstrings dokumentiert. Diese können daher über die Python-" +"Hilfefunktionen als Online-Hilfe verwendet werden:" #: ../../library/turtle.rst:2618 msgid "" "When using IDLE, tooltips show the signatures and first lines of the " "docstrings of typed in function-/method calls." msgstr "" -"Bei Verwendung von IDLE zeigen Tooltips die Signaturen und die " -"ersten Zeilen der Docstrings eingetippter Funktions-/" -"Methodenaufrufe." +"Bei Verwendung von IDLE zeigen Tooltips die Signaturen und die ersten Zeilen " +"der Docstrings eingetippter Funktions-/Methodenaufrufe." #: ../../library/turtle.rst:2621 msgid "Calling :func:`help` on methods or functions displays the docstrings::" @@ -4562,8 +4525,8 @@ msgid "" "The docstrings of the functions which are derived from methods have a " "modified form::" msgstr "" -"Die Docstrings der Funktionen, die von Methoden abgeleitet sind, " -"haben eine abgewandelte Form::" +"Die Docstrings der Funktionen, die von Methoden abgeleitet sind, haben eine " +"abgewandelte Form::" #: ../../library/turtle.rst:2655 msgid "" @@ -4648,9 +4611,9 @@ msgid "" "names and the values of which are the docstrings of the public methods of " "the classes Screen and Turtle." msgstr "" -"Es gibt ein Hilfsprogramm, um ein Dictionary zu erstellen, dessen " -"Schlüssel die Methodennamen und dessen Werte die Docstrings der " -"öffentlichen Methoden der Klassen Screen und Turtle sind." +"Es gibt ein Hilfsprogramm, um ein Dictionary zu erstellen, dessen Schlüssel " +"die Methodennamen und dessen Werte die Docstrings der öffentlichen Methoden " +"der Klassen Screen und Turtle sind." #: ../../library/turtle.rst:2699 msgid "a string, used as filename" @@ -4664,12 +4627,11 @@ msgid "" "Python script :file:`{filename}.py`. It is intended to serve as a template " "for translation of the docstrings into different languages." msgstr "" -"Erstelle das Docstring-Dictionary und schreibe es in ein " -"Python-Skript mit dem angegebenen Dateinamen. Diese Funktion muss " -"explizit aufgerufen werden (sie wird nicht von den " -"Turtle-Grafik-Klassen verwendet). Das Docstring-Dictionary wird in " -"das Python-Skript :file:`{filename}.py` geschrieben. Es ist als " -"Vorlage für die Übersetzung der Docstrings in verschiedene Sprachen " +"Erstelle das Docstring-Dictionary und schreibe es in ein Python-Skript mit " +"dem angegebenen Dateinamen. Diese Funktion muss explizit aufgerufen werden " +"(sie wird nicht von den Turtle-Grafik-Klassen verwendet). Das Docstring-" +"Dictionary wird in das Python-Skript :file:`{filename}.py` geschrieben. Es " +"ist als Vorlage für die Übersetzung der Docstrings in verschiedene Sprachen " "gedacht." #: ../../library/turtle.rst:2707 @@ -4678,10 +4640,9 @@ msgid "" "your native language, you have to translate the docstrings and save the " "resulting file as e.g. :file:`turtle_docstringdict_german.py`." msgstr "" -"Wenn du (oder deine Lernenden) :mod:`!turtle` mit Online-Hilfe in " -"deiner Muttersprache verwenden möchtest, musst du die Docstrings " -"übersetzen und die entstehende Datei z. B. als " -":file:`turtle_docstringdict_german.py` speichern." +"Wenn du (oder deine Lernenden) :mod:`!turtle` mit Online-Hilfe in deiner " +"Muttersprache verwenden möchtest, musst du die Docstrings übersetzen und die " +"entstehende Datei z. B. als :file:`turtle_docstringdict_german.py` speichern." #: ../../library/turtle.rst:2711 msgid "" @@ -4689,18 +4650,17 @@ msgid "" "dictionary will be read in at import time and will replace the original " "English docstrings." msgstr "" -"Wenn du einen entsprechenden Eintrag in deiner :file:`turtle.cfg`-" -"Datei hast, wird dieses Dictionary zur Importzeit eingelesen und " -"ersetzt die ursprünglichen englischen Docstrings." +"Wenn du einen entsprechenden Eintrag in deiner :file:`turtle.cfg`-Datei " +"hast, wird dieses Dictionary zur Importzeit eingelesen und ersetzt die " +"ursprünglichen englischen Docstrings." #: ../../library/turtle.rst:2714 msgid "" "At the time of this writing there are docstring dictionaries in German and " "in Italian. (Requests please to glingl@aon.at.)" msgstr "" -"Zum Zeitpunkt der Erstellung dieses Textes gibt es " -"Docstring-Dictionaries auf Deutsch und auf Italienisch. (Anfragen " -"bitte an glingl@aon.at.)" +"Zum Zeitpunkt der Erstellung dieses Textes gibt es Docstring-Dictionaries " +"auf Deutsch und auf Italienisch. (Anfragen bitte an glingl@aon.at.)" #: ../../library/turtle.rst:2720 msgid "How to configure Screen and Turtles" @@ -4711,9 +4671,9 @@ 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 "" -"Die eingebaute Standardkonfiguration ahmt das Erscheinungsbild und " -"Verhalten des alten turtle-Moduls nach, um eine möglichst gute " -"Kompatibilität damit zu bewahren." +"Die eingebaute Standardkonfiguration ahmt das Erscheinungsbild und Verhalten " +"des alten turtle-Moduls nach, um eine möglichst gute Kompatibilität damit zu " +"bewahren." #: ../../library/turtle.rst:2725 msgid "" @@ -4723,17 +4683,17 @@ msgid "" "be read at import time and modify the configuration according to its " "settings." msgstr "" -"Wenn du eine andere Konfiguration verwenden möchtest, die die " -"Funktionen dieses Moduls besser widerspiegelt oder besser zu deinen " -"Bedürfnissen passt, z. B. für den Einsatz im Unterricht, kannst du " -"eine Konfigurationsdatei ``turtle.cfg`` vorbereiten, die zur " -"Importzeit eingelesen wird und die Konfiguration entsprechend ihrer " -"Einstellungen ändert." +"Wenn du eine andere Konfiguration verwenden möchtest, die die Funktionen " +"dieses Moduls besser widerspiegelt oder besser zu deinen Bedürfnissen passt, " +"z. B. für den Einsatz im Unterricht, kannst du eine Konfigurationsdatei " +"``turtle.cfg`` vorbereiten, die zur Importzeit eingelesen wird und die " +"Konfiguration entsprechend ihrer Einstellungen ändert." #: ../../library/turtle.rst:2730 msgid "" "The built in configuration would correspond to the following ``turtle.cfg``:" -msgstr "Die eingebaute Konfiguration würde der folgenden ``turtle.cfg`` entsprechen:" +msgstr "" +"Die eingebaute Konfiguration würde der folgenden ``turtle.cfg`` entsprechen:" #: ../../library/turtle.rst:2732 msgid "" @@ -4788,24 +4748,24 @@ msgid "" "The first four lines correspond to the arguments of the :func:`Screen.setup " "` method." msgstr "" -"Die ersten vier Zeilen entsprechen den Argumenten der Methode " -":func:`Screen.setup `." +"Die ersten vier Zeilen entsprechen den Argumenten der Methode :func:`Screen." +"setup `." #: ../../library/turtle.rst:2759 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 "" -"Zeile 5 und 6 entsprechen den Argumenten der Methode " -":func:`Screen.screensize `." +"Zeile 5 und 6 entsprechen den Argumenten der Methode :func:`Screen." +"screensize `." #: ../../library/turtle.rst:2761 msgid "" "*shape* can be any of the built-in shapes, e.g: arrow, turtle, etc. For " "more info try ``help(shape)``." msgstr "" -"*shape* kann eine der eingebauten Formen sein, z. B.: arrow, turtle " -"usw. Für weitere Informationen versuche ``help(shape)``." +"*shape* kann eine der eingebauten Formen sein, z. B.: arrow, turtle usw. Für " +"weitere Informationen versuche ``help(shape)``." #: ../../library/turtle.rst:2763 msgid "" @@ -4813,30 +4773,28 @@ msgid "" "have to write ``fillcolor = \"\"`` (but all nonempty strings must not have " "quotes in the cfg file)." msgstr "" -"Wenn du keine Füllfarbe verwenden möchtest (d. h. die Turtle " -"transparent machen möchtest), musst du ``fillcolor = \"\"`` schreiben " -"(aber alle nichtleeren Zeichenketten dürfen in der cfg-Datei keine " -"Anführungszeichen haben)." +"Wenn du keine Füllfarbe verwenden möchtest (d. h. die Turtle transparent " +"machen möchtest), musst du ``fillcolor = \"\"`` schreiben (aber alle " +"nichtleeren Zeichenketten dürfen in der cfg-Datei keine Anführungszeichen " +"haben)." #: ../../library/turtle.rst:2766 msgid "" "If you want to reflect the turtle its state, you have to use ``resizemode = " "auto``." msgstr "" -"Wenn die Turtle ihren Zustand widerspiegeln soll, musst du " -"``resizemode = auto`` verwenden." +"Wenn die Turtle ihren Zustand widerspiegeln soll, musst du ``resizemode = " +"auto`` verwenden." #: ../../library/turtle.rst:2768 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 "" -"Wenn du z.B. ``language = italian`` setzt, wird das docstringdict " -":file:`turtle_docstringdict_italian.py` zur Importzeit geladen " -"(sofern es im Importpfad vorhanden ist, z. B. im selben Verzeichnis " -"wie :mod:`!turtle`)." +"Wenn du z.B. ``language = italian`` setzt, wird das docstringdict :file:" +"`turtle_docstringdict_italian.py` zur Importzeit geladen (sofern es im " +"Importpfad vorhanden ist, z. B. im selben Verzeichnis wie :mod:`!turtle`)." #: ../../library/turtle.rst:2771 msgid "" @@ -4845,10 +4803,10 @@ msgid "" "docstrings to function-docstrings will delete these names from the " "docstrings." msgstr "" -"Die Einträge *exampleturtle* und *examplescreen* legen die Namen " -"dieser Objekte fest, wie sie in den Docstrings vorkommen. Bei der " -"Umwandlung von Methoden-Docstrings in Funktions-Docstrings werden " -"diese Namen aus den Docstrings entfernt." +"Die Einträge *exampleturtle* und *examplescreen* legen die Namen dieser " +"Objekte fest, wie sie in den Docstrings vorkommen. Bei der Umwandlung von " +"Methoden-Docstrings in Funktions-Docstrings werden diese Namen aus den " +"Docstrings entfernt." #: ../../library/turtle.rst:2775 msgid "" @@ -4856,9 +4814,9 @@ msgid "" "``-n`` switch (\"no subprocess\"). This will prevent :func:`exitonclick` to " "enter the mainloop." msgstr "" -"*using_IDLE*: Setze dies auf ``True``, wenn du regelmäßig mit IDLE " -"und dessen Schalter ``-n`` (\"no subprocess\") arbeitest. Dies " -"verhindert, dass :func:`exitonclick` die mainloop aufruft." +"*using_IDLE*: Setze dies auf ``True``, wenn du regelmäßig mit IDLE und " +"dessen Schalter ``-n`` (\"no subprocess\") arbeitest. Dies verhindert, dass :" +"func:`exitonclick` die mainloop aufruft." #: ../../library/turtle.rst:2779 msgid "" @@ -4866,10 +4824,9 @@ msgid "" "is stored and an additional one in the current working directory. The " "latter will override the settings of the first one." msgstr "" -"Es kann eine :file:`turtle.cfg`-Datei im Verzeichnis geben, in dem " -":mod:`!turtle` gespeichert ist, sowie eine zusätzliche im aktuellen " -"Arbeitsverzeichnis. Letztere überschreibt die Einstellungen der " -"ersten." +"Es kann eine :file:`turtle.cfg`-Datei im Verzeichnis geben, in dem :mod:`!" +"turtle` gespeichert ist, sowie eine zusätzliche im aktuellen " +"Arbeitsverzeichnis. Letztere überschreibt die Einstellungen der ersten." #: ../../library/turtle.rst:2783 msgid "" @@ -4877,10 +4834,9 @@ msgid "" "You can study it as an example and see its effects when running the demos " "(preferably not from within the demo-viewer)." msgstr "" -"Das Verzeichnis :file:`Lib/turtledemo` enthält eine " -":file:`turtle.cfg`-Datei. Du kannst sie als Beispiel studieren und " -"ihre Auswirkungen beim Ausführen der Demos sehen (vorzugsweise nicht " -"innerhalb des Demo-Viewers)." +"Das Verzeichnis :file:`Lib/turtledemo` enthält eine :file:`turtle.cfg`-" +"Datei. Du kannst sie als Beispiel studieren und ihre Auswirkungen beim " +"Ausführen der Demos sehen (vorzugsweise nicht innerhalb des Demo-Viewers)." #: ../../library/turtle.rst:2789 msgid ":mod:`!turtledemo` --- Demo scripts" @@ -4891,9 +4847,9 @@ 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 "" -"Das Paket :mod:`!turtledemo` enthält eine Reihe von Demo-Skripten. " -"Diese Skripte können mit dem mitgelieferten Demo-Viewer wie folgt " -"ausgeführt und betrachtet werden::" +"Das Paket :mod:`!turtledemo` enthält eine Reihe von Demo-Skripten. Diese " +"Skripte können mit dem mitgelieferten Demo-Viewer wie folgt ausgeführt und " +"betrachtet werden::" #: ../../library/turtle.rst:2797 msgid "python -m turtledemo" @@ -4902,7 +4858,9 @@ msgstr "python -m turtledemo" #: ../../library/turtle.rst:2799 msgid "" "Alternatively, you can run the demo scripts individually. For example, ::" -msgstr "Alternativ kannst du die Demo-Skripte auch einzeln ausführen. Zum Beispiel: ::" +msgstr "" +"Alternativ kannst du die Demo-Skripte auch einzeln ausführen. Zum " +"Beispiel: ::" #: ../../library/turtle.rst:2801 msgid "python -m turtledemo.bytedesign" @@ -4917,8 +4875,8 @@ 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 "" -"Einen Demo-Viewer :file:`__main__.py`, mit dem der Quellcode der " -"Skripte betrachtet und gleichzeitig ausgeführt werden kann." +"Einen Demo-Viewer :file:`__main__.py`, mit dem der Quellcode der Skripte " +"betrachtet und gleichzeitig ausgeführt werden kann." #: ../../library/turtle.rst:2807 msgid "" @@ -4927,16 +4885,16 @@ msgid "" "run standalone." msgstr "" "Mehrere Skripte, die verschiedene Funktionen des Moduls :mod:`!turtle` " -"demonstrieren. Auf die Beispiele kann über das Menü Examples " -"zugegriffen werden. Sie können auch eigenständig ausgeführt werden." +"demonstrieren. Auf die Beispiele kann über das Menü Examples zugegriffen " +"werden. Sie können auch eigenständig ausgeführt werden." #: ../../library/turtle.rst:2810 msgid "" "A :file:`turtle.cfg` file which serves as an example of how to write and use " "such files." msgstr "" -"Eine :file:`turtle.cfg`-Datei, die als Beispiel dient, wie solche " -"Dateien geschrieben und verwendet werden." +"Eine :file:`turtle.cfg`-Datei, die als Beispiel dient, wie solche Dateien " +"geschrieben und verwendet werden." #: ../../library/turtle.rst:2813 msgid "The demo scripts are:" @@ -4976,8 +4934,8 @@ msgid "" "results sometimes against the common sense expectations" msgstr "" "stellt die Verhulst-Dynamik grafisch dar und zeigt, dass " -"Computerberechnungen manchmal Ergebnisse liefern können, die dem " -"gesunden Menschenverstand widersprechen" +"Computerberechnungen manchmal Ergebnisse liefern können, die dem gesunden " +"Menschenverstand widersprechen" #: ../../library/turtle.rst:2825 msgid "world coordinates" @@ -5049,7 +5007,8 @@ msgstr "Türme von Hannoi" #: ../../library/turtle.rst:2843 msgid "Rectangular Turtles as Hanoi discs (:func:`shape`, :func:`shapesize`)" -msgstr "Rechteckige Turtles als Hanoi-Scheiben (:func:`shape`, :func:`shapesize`)" +msgstr "" +"Rechteckige Turtles als Hanoi-Scheiben (:func:`shape`, :func:`shapesize`)" #: ../../library/turtle.rst:2847 msgid "``nim``" @@ -5059,8 +5018,8 @@ msgstr "``nim``" msgid "" "play the classical nim game with three heaps of sticks against the computer." msgstr "" -"spiele das klassische Nim-Spiel mit drei Stapeln aus Stäbchen gegen " -"den Computer." +"spiele das klassische Nim-Spiel mit drei Stapeln aus Stäbchen gegen den " +"Computer." #: ../../library/turtle.rst:2847 msgid "turtles as nimsticks, event driven (mouse, keyboard)" @@ -5124,15 +5083,16 @@ msgstr "``round_dance``" #: ../../library/turtle.rst:2866 msgid "dancing turtles rotating pairwise in opposite direction" -msgstr "tanzende Turtles, die sich paarweise in entgegengesetzter Richtung drehen" +msgstr "" +"tanzende Turtles, die sich paarweise in entgegengesetzter Richtung drehen" #: ../../library/turtle.rst:2866 msgid "" -"compound " -"shapes, :func:`clone` :func:`shapesize`, :func:`tilt`, :func:`get_shapepoly`, :func:`update`" +"compound shapes, :func:`clone` :func:`shapesize`, :func:`tilt`, :func:" +"`get_shapepoly`, :func:`update`" msgstr "" -"zusammengesetzte Formen, :func:`clone` :func:`shapesize`, " -":func:`tilt`, :func:`get_shapepoly`, :func:`update`" +"zusammengesetzte Formen, :func:`clone` :func:`shapesize`, :func:`tilt`, :" +"func:`get_shapepoly`, :func:`update`" #: ../../library/turtle.rst:2870 msgid "``sorting_animate``" @@ -5193,23 +5153,22 @@ msgid "" "methods.)" msgstr "" "Die Methoden :func:`Turtle.tracer `, :func:`Turtle.window_width " -"` und :func:`Turtle.window_height ` " -"wurden entfernt. Methoden mit diesen Namen und dieser Funktionalität " -"sind jetzt nur noch als Methoden von :class:`Screen` verfügbar. Die " -"davon abgeleiteten Funktionen bleiben verfügbar. (Tatsächlich waren " -"diese Methoden bereits in Python 2.6 lediglich Duplikate der " -"entsprechenden :class:`TurtleScreen`/:class:`Screen`-Methoden.)" +"` und :func:`Turtle.window_height ` wurden " +"entfernt. Methoden mit diesen Namen und dieser Funktionalität sind jetzt nur " +"noch als Methoden von :class:`Screen` verfügbar. Die davon abgeleiteten " +"Funktionen bleiben verfügbar. (Tatsächlich waren diese Methoden bereits in " +"Python 2.6 lediglich Duplikate der entsprechenden :class:`TurtleScreen`/:" +"class:`Screen`-Methoden.)" #: ../../library/turtle.rst:2896 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 "" -"Die Methode :func:`!Turtle.fill` wurde entfernt. Das Verhalten von " -":func:`begin_fill` und :func:`end_fill` hat sich leicht geändert: " -"Jetzt muss jeder Füllvorgang mit einem Aufruf von ``end_fill()`` " -"abgeschlossen werden." +"Die Methode :func:`!Turtle.fill` wurde entfernt. Das Verhalten von :func:" +"`begin_fill` und :func:`end_fill` hat sich leicht geändert: Jetzt muss jeder " +"Füllvorgang mit einem Aufruf von ``end_fill()`` abgeschlossen werden." #: ../../library/turtle.rst:2901 msgid "" @@ -5218,10 +5177,10 @@ msgid "" "otherwise. This behaviour corresponds to a ``fill()`` call without arguments " "in Python 2.6." msgstr "" -"Eine Methode :func:`Turtle.filling ` wurde hinzugefügt. " -"Sie gibt einen booleschen Wert zurück: ``True``, wenn ein " -"Füllvorgang im Gange ist, andernfalls ``False``. Dieses Verhalten " -"entspricht einem Aufruf von ``fill()`` ohne Argumente in Python 2.6." +"Eine Methode :func:`Turtle.filling ` wurde hinzugefügt. Sie gibt " +"einen booleschen Wert zurück: ``True``, wenn ein Füllvorgang im Gange ist, " +"andernfalls ``False``. Dieses Verhalten entspricht einem Aufruf von " +"``fill()`` ohne Argumente in Python 2.6." #: ../../library/turtle.rst:2907 msgid "Changes since Python 3.0" @@ -5229,17 +5188,16 @@ msgstr "Änderungen seit Python 3.0" #: ../../library/turtle.rst:2909 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." -msgstr "" -"Die :class:`Turtle`-Methoden :func:`shearfactor`, " -":func:`shapetransform` und :func:`get_shapepoly` wurden " -"hinzugefügt. Damit steht nun der gesamte Bereich regulärer linearer " -"Transformationen zur Transformation von Turtle-Formen zur " -"Verfügung. :func:`tiltangle` wurde funktional erweitert: Es kann " +"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 "" +"Die :class:`Turtle`-Methoden :func:`shearfactor`, :func:`shapetransform` " +"und :func:`get_shapepoly` wurden hinzugefügt. Damit steht nun der gesamte " +"Bereich regulärer linearer Transformationen zur Transformation von Turtle-" +"Formen zur Verfügung. :func:`tiltangle` wurde funktional erweitert: Es kann " "jetzt verwendet werden, um den Kippwinkel abzurufen oder zu setzen." #: ../../library/turtle.rst:2915 @@ -5248,10 +5206,9 @@ msgid "" "to :func:`onkey`. As the latter binds actions to the key release event, an " "alias: :func:`onkeyrelease` was also added for it." msgstr "" -"Die :class:`Screen`-Methode :func:`onkeypress` wurde als Ergänzung " -"zu :func:`onkey` hinzugefügt. Da Letzteres Aktionen an das " -"Loslassen-Ereignis der Taste bindet, wurde dafür auch ein Alias " -"hinzugefügt: :func:`onkeyrelease`." +"Die :class:`Screen`-Methode :func:`onkeypress` wurde als Ergänzung zu :func:" +"`onkey` hinzugefügt. Da Letzteres Aktionen an das Loslassen-Ereignis der " +"Taste bindet, wurde dafür auch ein Alias hinzugefügt: :func:`onkeyrelease`." #: ../../library/turtle.rst:2919 msgid "" @@ -5259,16 +5216,16 @@ msgid "" "longer a need to use the standalone :func:`mainloop` function when working " "with :class:`Screen` and :class:`Turtle` objects." msgstr "" -"Die Methode :func:`Screen.mainloop ` wurde hinzugefügt, " -"sodass es nicht mehr nötig ist, die eigenständige Funktion " -":func:`mainloop` zu verwenden, wenn mit :class:`Screen`- und " -":class:`Turtle`-Objekten gearbeitet wird." +"Die Methode :func:`Screen.mainloop ` wurde hinzugefügt, sodass es " +"nicht mehr nötig ist, die eigenständige Funktion :func:`mainloop` zu " +"verwenden, wenn mit :class:`Screen`- und :class:`Turtle`-Objekten gearbeitet " +"wird." #: ../../library/turtle.rst:2923 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 "" "Zwei Eingabemethoden wurden hinzugefügt: :func:`Screen.textinput " "` und :func:`Screen.numinput `. Diese öffnen " diff --git a/library/unittest.mock.po b/library/unittest.mock.po index 343f84e..96b0da0 100644 --- a/library/unittest.mock.po +++ b/library/unittest.mock.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -821,8 +821,8 @@ 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," +"value of the iterable, however, if the sequence of result is :term:" +"`exhausted`, ``StopAsyncIteration`` is raised immediately," msgstr "" #: ../../library/unittest.mock.rst:923 @@ -1024,7 +1024,7 @@ msgstr "" 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):" +"is :term:`exhausted` and a :exc:`StopIteration` is raised):" msgstr "" #: ../../library/unittest.mock.rst:1287 @@ -3092,7 +3092,7 @@ 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`` " -"exception is raised." +"If :attr:`~Mock.side_effect` is :term:`exhausted`, the order of precedence " +"will not cause a value to be obtained from the successors. Instead, " +"``StopIteration`` exception is raised." msgstr "" diff --git a/library/warnings.po b/library/warnings.po index 8ca91fb..4c591da 100644 --- a/library/warnings.po +++ b/library/warnings.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -128,16 +128,17 @@ msgstr "" #: ../../library/warnings.rst:71 msgid "" -"This is the base class of all warning category classes. It is a subclass " -"of :exc:`Exception`." +"Base class for warning categories. It is a subclass of :exc:`Exception`." msgstr "" -#: ../../library/warnings.rst:75 +#: ../../library/warnings.rst:74 msgid ":exc:`UserWarning`" msgstr "" -#: ../../library/warnings.rst:75 -msgid "The default category for :func:`warn`." +#: ../../library/warnings.rst:74 +msgid "" +"Base class for warnings generated by user code. The default category for :" +"func:`warn`." msgstr "" #: ../../library/warnings.rst:77 @@ -146,48 +147,48 @@ msgstr "" #: ../../library/warnings.rst:77 msgid "" -"Base category for warnings about deprecated features when those warnings are " +"Base class for warnings about deprecated features when those warnings are " "intended for other Python developers (ignored by default, unless triggered " "by code in ``__main__``)." msgstr "" #: ../../library/warnings.rst:82 -msgid ":exc:`SyntaxWarning`" +msgid ":exc:`PendingDeprecationWarning`" msgstr "" #: ../../library/warnings.rst:82 msgid "" -"Base category for warnings about dubious syntactic features (typically " -"emitted when compiling Python source code, and hence may not be suppressed " -"by runtime filters)" +"Base class for warnings about features that will be deprecated in the future " +"(ignored by default)." msgstr "" -#: ../../library/warnings.rst:87 -msgid ":exc:`RuntimeWarning`" +#: ../../library/warnings.rst:86 +msgid ":exc:`SyntaxWarning`" msgstr "" -#: ../../library/warnings.rst:87 -msgid "Base category for warnings about dubious runtime features." +#: ../../library/warnings.rst:86 +msgid "" +"Base class for warnings about dubious syntax (typically emitted when " +"compiling Python source code, and hence may not be suppressed by runtime " +"filters)." msgstr "" -#: ../../library/warnings.rst:90 -msgid ":exc:`FutureWarning`" +#: ../../library/warnings.rst:91 +msgid ":exc:`RuntimeWarning`" msgstr "" -#: ../../library/warnings.rst:90 -msgid "" -"Base category for warnings about deprecated features when those warnings are " -"intended for end users of applications that are written in Python." +#: ../../library/warnings.rst:91 +msgid "Base class for warnings about dubious runtime behavior." msgstr "" -#: ../../library/warnings.rst:95 -msgid ":exc:`PendingDeprecationWarning`" +#: ../../library/warnings.rst:94 +msgid ":exc:`FutureWarning`" msgstr "" -#: ../../library/warnings.rst:95 +#: ../../library/warnings.rst:94 msgid "" -"Base category for warnings about features that will be deprecated in the " -"future (ignored by default)." +"Base class for warnings about deprecated features when those warnings are " +"intended for end users of applications that are written in Python." msgstr "" #: ../../library/warnings.rst:99 @@ -196,8 +197,8 @@ msgstr "" #: ../../library/warnings.rst:99 msgid "" -"Base category for warnings triggered during the process of importing a " -"module (ignored by default)." +"Base class for warnings triggered during the process of importing a module " +"(ignored by default)." msgstr "" #: ../../library/warnings.rst:103 @@ -205,28 +206,37 @@ msgid ":exc:`UnicodeWarning`" msgstr "" #: ../../library/warnings.rst:103 -msgid "Base category for warnings related to Unicode." +msgid "Base class for warnings related to Unicode." msgstr "" #: ../../library/warnings.rst:106 -msgid ":exc:`BytesWarning`" +msgid ":exc:`EncodingWarning`" msgstr "" #: ../../library/warnings.rst:106 msgid "" -"Base category for warnings related to :class:`bytes` and :class:`bytearray`." +"Base class for warnings related to encodings. See :ref:`io-encoding-warning` " +"for details." msgstr "" #: ../../library/warnings.rst:109 -msgid ":exc:`ResourceWarning`" +msgid ":exc:`BytesWarning`" msgstr "" #: ../../library/warnings.rst:109 msgid "" -"Base category for warnings related to resource usage (ignored by default)." +"Base class for warnings related to :class:`bytes` and :class:`bytearray`." +msgstr "" + +#: ../../library/warnings.rst:112 +msgid ":exc:`ResourceWarning`" msgstr "" -#: ../../library/warnings.rst:113 +#: ../../library/warnings.rst:112 +msgid "Base class for warnings related to resource usage (ignored by default)." +msgstr "" + +#: ../../library/warnings.rst:116 msgid "" "Previously :exc:`DeprecationWarning` and :exc:`FutureWarning` were " "distinguished based on whether a feature was being removed entirely or " @@ -234,17 +244,17 @@ msgid "" "audience and the way they're handled by the default warnings filters." msgstr "" -#: ../../library/warnings.rst:124 +#: ../../library/warnings.rst:127 msgid "The Warnings Filter" msgstr "" -#: ../../library/warnings.rst:126 +#: ../../library/warnings.rst:129 msgid "" "The warnings filter controls whether warnings are ignored, displayed, or " "turned into errors (raising an exception)." msgstr "" -#: ../../library/warnings.rst:129 +#: ../../library/warnings.rst:132 msgid "" "Conceptually, the warnings filter maintains an ordered list of filter " "specifications; any specific warning is matched against each filter " @@ -253,80 +263,80 @@ msgid "" "(*action*, *message*, *category*, *module*, *lineno*), where:" msgstr "" -#: ../../library/warnings.rst:135 +#: ../../library/warnings.rst:138 msgid "*action* is one of the following strings:" msgstr "" -#: ../../library/warnings.rst:138 +#: ../../library/warnings.rst:141 msgid "Value" msgstr "" -#: ../../library/warnings.rst:138 +#: ../../library/warnings.rst:141 msgid "Disposition" msgstr "" -#: ../../library/warnings.rst:140 +#: ../../library/warnings.rst:143 msgid "``\"default\"``" msgstr "" -#: ../../library/warnings.rst:140 +#: ../../library/warnings.rst:143 msgid "" "print the first occurrence of matching warnings for each location (module + " "line number) where the warning is issued" msgstr "" -#: ../../library/warnings.rst:144 +#: ../../library/warnings.rst:147 msgid "``\"error\"``" msgstr "" -#: ../../library/warnings.rst:144 +#: ../../library/warnings.rst:147 msgid "turn matching warnings into exceptions" msgstr "" -#: ../../library/warnings.rst:146 +#: ../../library/warnings.rst:149 msgid "``\"ignore\"``" msgstr "" -#: ../../library/warnings.rst:146 +#: ../../library/warnings.rst:149 msgid "never print matching warnings" msgstr "" -#: ../../library/warnings.rst:148 +#: ../../library/warnings.rst:151 msgid "``\"always\"``" msgstr "" -#: ../../library/warnings.rst:148 +#: ../../library/warnings.rst:151 msgid "always print matching warnings" msgstr "" -#: ../../library/warnings.rst:150 +#: ../../library/warnings.rst:153 msgid "``\"all\"``" msgstr "" -#: ../../library/warnings.rst:150 +#: ../../library/warnings.rst:153 msgid "alias to \"always\"" msgstr "" -#: ../../library/warnings.rst:152 +#: ../../library/warnings.rst:155 msgid "``\"module\"``" msgstr "" -#: ../../library/warnings.rst:152 +#: ../../library/warnings.rst:155 msgid "" "print the first occurrence of matching warnings for each module where the " "warning is issued (regardless of line number)" msgstr "" -#: ../../library/warnings.rst:156 +#: ../../library/warnings.rst:159 msgid "``\"once\"``" msgstr "" -#: ../../library/warnings.rst:156 +#: ../../library/warnings.rst:159 msgid "" "print only the first occurrence of matching warnings, regardless of location" msgstr "" -#: ../../library/warnings.rst:160 +#: ../../library/warnings.rst:163 msgid "" "*message* is a string containing a regular expression that the start of the " "warning message must match, case-insensitively. In :option:`-W` and :envvar:" @@ -335,13 +345,13 @@ msgid "" "at the start or end of *message*." msgstr "" -#: ../../library/warnings.rst:166 +#: ../../library/warnings.rst:169 msgid "" "*category* is a class (a subclass of :exc:`Warning`) of which the warning " "category must be a subclass in order to match." msgstr "" -#: ../../library/warnings.rst:169 +#: ../../library/warnings.rst:172 msgid "" "*module* is a string containing a regular expression that the start of the " "fully qualified module name must match, case-sensitively. In :option:`-W` " @@ -350,57 +360,57 @@ msgid "" "whitespace at the start or end of *module*." msgstr "" -#: ../../library/warnings.rst:175 +#: ../../library/warnings.rst:178 msgid "" "*lineno* is an integer that the line number where the warning occurred must " "match, or ``0`` to match all line numbers." msgstr "" -#: ../../library/warnings.rst:178 +#: ../../library/warnings.rst:181 msgid "" "Since the :exc:`Warning` class is derived from the built-in :exc:`Exception` " "class, to turn a warning into an error we simply raise ``category(message)``." msgstr "" -#: ../../library/warnings.rst:181 +#: ../../library/warnings.rst:184 msgid "" "If a warning is reported and doesn't match any registered filter then the " "\"default\" action is applied (hence its name)." msgstr "" -#: ../../library/warnings.rst:189 +#: ../../library/warnings.rst:192 msgid "Repeated Warning Suppression Criteria" msgstr "" -#: ../../library/warnings.rst:191 +#: ../../library/warnings.rst:194 msgid "" "The filters that suppress repeated warnings apply the following criteria to " "determine if a warning is considered a repeat:" msgstr "" -#: ../../library/warnings.rst:193 +#: ../../library/warnings.rst:196 msgid "" "``\"default\"``: A warning is considered a repeat only if the (*message*, " "*category*, *module*, *lineno*) are all the same." msgstr "" -#: ../../library/warnings.rst:194 +#: ../../library/warnings.rst:197 msgid "" "``\"module\"``: A warning is considered a repeat if the (*message*, " "*category*, *module*) are the same, ignoring the line number." msgstr "" -#: ../../library/warnings.rst:195 +#: ../../library/warnings.rst:198 msgid "" "``\"once\"``: A warning is considered a repeat if the (*message*, " "*category*) are the same, ignoring the module and line number." msgstr "" -#: ../../library/warnings.rst:201 +#: ../../library/warnings.rst:204 msgid "Describing Warning Filters" msgstr "" -#: ../../library/warnings.rst:203 +#: ../../library/warnings.rst:206 msgid "" "The warnings filter is initialized by :option:`-W` options passed to the " "Python interpreter command line and the :envvar:`PYTHONWARNINGS` environment " @@ -410,17 +420,17 @@ msgid "" "after printing a message to :data:`sys.stderr`)." msgstr "" -#: ../../library/warnings.rst:210 +#: ../../library/warnings.rst:213 msgid "" "Individual warnings filters are specified as a sequence of fields separated " "by colons::" msgstr "" -#: ../../library/warnings.rst:213 +#: ../../library/warnings.rst:216 msgid "action:message:category:module:line" msgstr "" -#: ../../library/warnings.rst:215 +#: ../../library/warnings.rst:218 msgid "" "The meaning of each of these fields is as described in :ref:`warning-" "filter`. When listing multiple filters on a single line (as for :envvar:" @@ -430,14 +440,14 @@ msgid "" "precedence over earlier ones)." msgstr "" -#: ../../library/warnings.rst:222 +#: ../../library/warnings.rst:225 msgid "" "Commonly used warning filters apply to either all warnings, warnings in a " "particular category, or warnings raised by particular modules or packages. " "Some examples::" msgstr "" -#: ../../library/warnings.rst:226 +#: ../../library/warnings.rst:229 msgid "" "default # Show all warnings (even those ignored by " "default)\n" @@ -450,24 +460,24 @@ msgid "" "error:::mymodule # Convert warnings to errors in \"mymodule\"" msgstr "" -#: ../../library/warnings.rst:238 +#: ../../library/warnings.rst:241 msgid "Default Warning Filter" msgstr "" -#: ../../library/warnings.rst:240 +#: ../../library/warnings.rst:243 msgid "" "By default, Python installs several warning filters, which can be overridden " "by the :option:`-W` command-line option, the :envvar:`PYTHONWARNINGS` " "environment variable and calls to :func:`filterwarnings`." msgstr "" -#: ../../library/warnings.rst:244 +#: ../../library/warnings.rst:247 msgid "" "In regular release builds, the default warning filter has the following " "entries (in order of precedence)::" msgstr "" -#: ../../library/warnings.rst:247 +#: ../../library/warnings.rst:250 msgid "" "default::DeprecationWarning:__main__\n" "ignore::DeprecationWarning\n" @@ -476,36 +486,36 @@ msgid "" "ignore::ResourceWarning" msgstr "" -#: ../../library/warnings.rst:253 +#: ../../library/warnings.rst:256 msgid "" "In a :ref:`debug build `, the list of default warning filters " "is empty." msgstr "" -#: ../../library/warnings.rst:255 +#: ../../library/warnings.rst:258 msgid "" ":exc:`DeprecationWarning` is now ignored by default in addition to :exc:" "`PendingDeprecationWarning`." msgstr "" -#: ../../library/warnings.rst:259 +#: ../../library/warnings.rst:262 msgid "" ":exc:`DeprecationWarning` is once again shown by default when triggered " "directly by code in ``__main__``." msgstr "" -#: ../../library/warnings.rst:263 +#: ../../library/warnings.rst:266 msgid "" ":exc:`BytesWarning` no longer appears in the default filter list and is " "instead configured via :data:`sys.warnoptions` when :option:`-b` is " "specified twice." msgstr "" -#: ../../library/warnings.rst:272 +#: ../../library/warnings.rst:275 msgid "Overriding the default filter" msgstr "" -#: ../../library/warnings.rst:274 +#: ../../library/warnings.rst:277 msgid "" "Developers of applications written in Python may wish to hide *all* Python " "level warnings from their users by default, and only display them when " @@ -515,7 +525,7 @@ msgid "" "disabled::" msgstr "" -#: ../../library/warnings.rst:280 +#: ../../library/warnings.rst:283 msgid "" "import sys\n" "\n" @@ -524,14 +534,14 @@ msgid "" " warnings.simplefilter(\"ignore\")" msgstr "" -#: ../../library/warnings.rst:286 +#: ../../library/warnings.rst:289 msgid "" "Developers of test runners for Python code are advised to instead ensure " "that *all* warnings are displayed by default for the code under test, using " "code like::" msgstr "" -#: ../../library/warnings.rst:290 +#: ../../library/warnings.rst:293 msgid "" "import sys\n" "\n" @@ -541,7 +551,7 @@ msgid "" " os.environ[\"PYTHONWARNINGS\"] = \"default\" # Also affect subprocesses" msgstr "" -#: ../../library/warnings.rst:297 +#: ../../library/warnings.rst:300 msgid "" "Finally, developers of interactive shells that run user code in a namespace " "other than ``__main__`` are advised to ensure that :exc:`DeprecationWarning` " @@ -549,18 +559,18 @@ msgid "" "``user_ns`` is the module used to execute code entered interactively)::" msgstr "" -#: ../../library/warnings.rst:302 +#: ../../library/warnings.rst:305 msgid "" "import warnings\n" "warnings.filterwarnings(\"default\", category=DeprecationWarning,\n" " module=user_ns.get(\"__name__\"))" msgstr "" -#: ../../library/warnings.rst:310 +#: ../../library/warnings.rst:313 msgid "Temporarily Suppressing Warnings" msgstr "" -#: ../../library/warnings.rst:312 +#: ../../library/warnings.rst:315 msgid "" "If you are using code that you know will raise a warning, such as a " "deprecated function, but do not want to see the warning (even when warnings " @@ -568,7 +578,7 @@ msgid "" "to suppress the warning using the :class:`catch_warnings` context manager::" msgstr "" -#: ../../library/warnings.rst:317 +#: ../../library/warnings.rst:320 msgid "" "import warnings\n" "\n" @@ -580,7 +590,7 @@ msgid "" " fxn()" msgstr "" -#: ../../library/warnings.rst:326 +#: ../../library/warnings.rst:329 msgid "" "While within the context manager all warnings will simply be ignored. This " "allows you to use known-deprecated code without having to see the warning " @@ -588,19 +598,19 @@ msgid "" "its use of deprecated code." msgstr "" -#: ../../library/warnings.rst:333 ../../library/warnings.rst:375 -#: ../../library/warnings.rst:646 +#: ../../library/warnings.rst:336 ../../library/warnings.rst:378 +#: ../../library/warnings.rst:649 msgid "" "See :ref:`warning-concurrent-safe` for details on the concurrency-safety of " "the :class:`catch_warnings` context manager when used in programs using " "multiple threads or async functions." msgstr "" -#: ../../library/warnings.rst:340 +#: ../../library/warnings.rst:343 msgid "Testing Warnings" msgstr "" -#: ../../library/warnings.rst:342 +#: ../../library/warnings.rst:345 msgid "" "To test warnings raised by code, use the :class:`catch_warnings` context " "manager. With it you can temporarily mutate the warnings filter to " @@ -608,7 +618,7 @@ msgid "" "raised warnings to check::" msgstr "" -#: ../../library/warnings.rst:347 +#: ../../library/warnings.rst:350 msgid "" "import warnings\n" "\n" @@ -626,7 +636,7 @@ msgid "" " assert \"deprecated\" in str(w[-1].message)" msgstr "" -#: ../../library/warnings.rst:362 +#: ../../library/warnings.rst:365 msgid "" "One can also cause all warnings to be exceptions by using ``error`` instead " "of ``always``. One thing to be aware of is that if a warning has already " @@ -635,7 +645,7 @@ msgid "" "registry related to the warning has been cleared." msgstr "" -#: ../../library/warnings.rst:368 +#: ../../library/warnings.rst:371 msgid "" "Once the context manager exits, the warnings filter is restored to its state " "when the context was entered. This prevents tests from changing the warnings " @@ -643,7 +653,7 @@ msgid "" "results." msgstr "" -#: ../../library/warnings.rst:379 +#: ../../library/warnings.rst:382 msgid "" "When testing multiple operations that raise the same kind of warning, it is " "important to test them in a manner that confirms each operation is raising a " @@ -653,18 +663,18 @@ msgid "" "entries from the warnings list before each new operation)." msgstr "" -#: ../../library/warnings.rst:390 +#: ../../library/warnings.rst:393 msgid "Updating Code For New Versions of Dependencies" msgstr "" -#: ../../library/warnings.rst:392 +#: ../../library/warnings.rst:395 msgid "" "Warning categories that are primarily of interest to Python developers " "(rather than end users of applications written in Python) are ignored by " "default." msgstr "" -#: ../../library/warnings.rst:395 +#: ../../library/warnings.rst:398 msgid "" "Notably, this \"ignored by default\" list includes :exc:`DeprecationWarning` " "(for every module except ``__main__``), which means developers should make " @@ -673,14 +683,14 @@ msgid "" "(whether in the standard library or third party packages)." msgstr "" -#: ../../library/warnings.rst:401 +#: ../../library/warnings.rst:404 msgid "" "In the ideal case, the code will have a suitable test suite, and the test " "runner will take care of implicitly enabling all warnings when running tests " "(the test runner provided by the :mod:`unittest` module does this)." msgstr "" -#: ../../library/warnings.rst:405 +#: ../../library/warnings.rst:408 msgid "" "In less ideal cases, applications can be checked for use of deprecated " "interfaces by passing :option:`-Wd <-W>` to the Python interpreter (this is " @@ -692,11 +702,11 @@ msgid "" "what is possible." msgstr "" -#: ../../library/warnings.rst:418 +#: ../../library/warnings.rst:421 msgid "Available Functions" msgstr "" -#: ../../library/warnings.rst:423 +#: ../../library/warnings.rst:426 msgid "" "Issue a warning, or maybe ignore it or raise an exception. The *category* " "argument, if given, must be a :ref:`warning category class `. The entry is inserted at the front by default; if " @@ -839,7 +849,7 @@ msgid "" "everything." msgstr "" -#: ../../library/warnings.rst:540 +#: ../../library/warnings.rst:543 msgid "" "Insert a simple entry into the list of :ref:`warnings filter specifications " "`. The meaning of the function parameters is as for :func:" @@ -848,18 +858,18 @@ msgid "" "and line number match." msgstr "" -#: ../../library/warnings.rst:549 +#: ../../library/warnings.rst:552 msgid "" "Reset the warnings filter. This discards the effect of all previous calls " "to :func:`filterwarnings`, including that of the :option:`-W` command line " "options and calls to :func:`simplefilter`." msgstr "" -#: ../../library/warnings.rst:556 +#: ../../library/warnings.rst:559 msgid "Decorator to indicate that a class, function or overload is deprecated." msgstr "" -#: ../../library/warnings.rst:558 +#: ../../library/warnings.rst:561 msgid "" "When this decorator is applied to an object, deprecation warnings may be " "emitted at runtime when the object is used. :term:`static type checkers " @@ -867,11 +877,11 @@ msgid "" "deprecated object." msgstr "" -#: ../../library/warnings.rst:563 +#: ../../library/warnings.rst:566 msgid "Usage::" msgstr "" -#: ../../library/warnings.rst:565 +#: ../../library/warnings.rst:568 msgid "" "from warnings import deprecated\n" "from typing import overload\n" @@ -891,7 +901,7 @@ msgid "" "def g(x: str) -> int: ..." msgstr "" -#: ../../library/warnings.rst:582 +#: ../../library/warnings.rst:585 msgid "" "The warning specified by *category* will be emitted at runtime on use of " "deprecated objects. For functions, that happens on calls; for classes, on " @@ -903,7 +913,7 @@ msgid "" "*category* and *stacklevel* arguments." msgstr "" -#: ../../library/warnings.rst:593 +#: ../../library/warnings.rst:596 msgid "" "The deprecation message passed to the decorator is saved in the " "``__deprecated__`` attribute on the decorated object. If applied to an " @@ -912,15 +922,15 @@ msgid "" "get_overloads`." msgstr "" -#: ../../library/warnings.rst:600 +#: ../../library/warnings.rst:603 msgid "See :pep:`702`." msgstr "" -#: ../../library/warnings.rst:605 +#: ../../library/warnings.rst:608 msgid "Available Context Managers" msgstr "" -#: ../../library/warnings.rst:609 +#: ../../library/warnings.rst:612 msgid "" "A context manager that copies and, upon exit, restores the warnings filter " "and the :func:`showwarning` function. If the *record* argument is :const:" @@ -931,47 +941,47 @@ msgid "" "guaranteed to have the following attributes:" msgstr "" -#: ../../library/warnings.rst:617 +#: ../../library/warnings.rst:620 msgid "``message``: the warning message (an instance of :exc:`Warning`)" msgstr "" -#: ../../library/warnings.rst:618 +#: ../../library/warnings.rst:621 msgid "``category``: the warning category (a subclass of :exc:`Warning`)" msgstr "" -#: ../../library/warnings.rst:619 +#: ../../library/warnings.rst:622 msgid "``filename``: the file name where the warning occurred (:class:`str`)" msgstr "" -#: ../../library/warnings.rst:620 +#: ../../library/warnings.rst:623 msgid "``lineno``: the line number in the file (:class:`int`)" msgstr "" -#: ../../library/warnings.rst:621 +#: ../../library/warnings.rst:624 msgid "``file``: the file object used for output (if any), or ``None``" msgstr "" -#: ../../library/warnings.rst:622 +#: ../../library/warnings.rst:625 msgid "``line``: the line of source code (if available), or ``None``" msgstr "" -#: ../../library/warnings.rst:623 +#: ../../library/warnings.rst:626 msgid "" "``source``: the original object that generated the warning (if available), " "or ``None``" msgstr "" -#: ../../library/warnings.rst:626 +#: ../../library/warnings.rst:629 msgid "The ``source`` attribute was added." msgstr "" -#: ../../library/warnings.rst:629 +#: ../../library/warnings.rst:632 msgid "" "The type of these objects is not specified and may change; only the presence " "of these attributes is guaranteed." msgstr "" -#: ../../library/warnings.rst:632 +#: ../../library/warnings.rst:635 msgid "" "The *module* argument takes a module that will be used instead of the module " "returned when you import :mod:`!warnings` whose filter will be protected. " @@ -979,28 +989,28 @@ msgid "" "itself." msgstr "" -#: ../../library/warnings.rst:637 +#: ../../library/warnings.rst:640 msgid "" "If the *action* argument is not ``None``, the remaining arguments are passed " "to :func:`simplefilter` as if it were called immediately on entering the " "context." msgstr "" -#: ../../library/warnings.rst:641 +#: ../../library/warnings.rst:644 msgid "" "See :ref:`warning-filter` for the meaning of the *category* and *lineno* " "parameters." msgstr "" -#: ../../library/warnings.rst:653 +#: ../../library/warnings.rst:656 msgid "Added the *action*, *category*, *lineno*, and *append* parameters." msgstr "" -#: ../../library/warnings.rst:659 +#: ../../library/warnings.rst:662 msgid "Concurrent safety of Context Managers" msgstr "" -#: ../../library/warnings.rst:661 +#: ../../library/warnings.rst:664 msgid "" "The behavior of :class:`catch_warnings` context manager depends on the :data:" "`sys.flags.context_aware_warnings` flag. If the flag is true, the context " @@ -1011,7 +1021,7 @@ msgid "" "threaded builds and false otherwise." msgstr "" -#: ../../library/warnings.rst:669 +#: ../../library/warnings.rst:672 msgid "" "If the :data:`~sys.flags.context_aware_warnings` flag is false, then :class:" "`catch_warnings` will modify the global attributes of the :mod:`!warnings` " @@ -1021,7 +1031,7 @@ msgid "" "is undefined." msgstr "" -#: ../../library/warnings.rst:676 +#: ../../library/warnings.rst:679 msgid "" "If the flag is true, :class:`catch_warnings` will not modify global " "attributes and will instead use a :class:`~contextvars.ContextVar` to store " @@ -1030,7 +1040,7 @@ msgid "" "safe." msgstr "" -#: ../../library/warnings.rst:682 +#: ../../library/warnings.rst:685 msgid "" "The *record* parameter of the context handler also behaves differently " "depending on the value of the flag. When *record* is true and the flag is " @@ -1038,7 +1048,7 @@ msgid "" "module's :func:`showwarning` function. That is not concurrent-safe." msgstr "" -#: ../../library/warnings.rst:687 +#: ../../library/warnings.rst:690 msgid "" "When *record* is true and the flag is true, the :func:`showwarning` function " "is not replaced. Instead, the recording status is indicated by an internal " @@ -1046,14 +1056,14 @@ msgid "" "function will not be restored when exiting the context handler." msgstr "" -#: ../../library/warnings.rst:692 +#: ../../library/warnings.rst:695 msgid "" "The :data:`~sys.flags.context_aware_warnings` flag can be set the :option:`-" "X context_aware_warnings<-X>` command-line option or by the :envvar:" "`PYTHON_CONTEXT_AWARE_WARNINGS` environment variable." msgstr "" -#: ../../library/warnings.rst:698 +#: ../../library/warnings.rst:701 msgid "" "It is likely that most programs that desire thread-safe behaviour of the " "warnings module will also want to set the :data:`~sys.flags." @@ -1066,7 +1076,7 @@ msgid "" "`catch_warnings` context manager will no longer be active." msgstr "" -#: ../../library/warnings.rst:711 +#: ../../library/warnings.rst:714 msgid "" "Added the :data:`sys.flags.context_aware_warnings` flag and the use of a " "context variable for :class:`catch_warnings` if the flag is true. Previous " diff --git a/library/xml.etree.elementtree.po b/library/xml.etree.elementtree.po index 74013c1..741b358 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -238,30 +238,73 @@ msgid "" "Because it's so flexible, :class:`XMLPullParser` can be inconvenient to use " "for simpler use-cases. If you don't mind your application blocking on " "reading XML data but would still like to have incremental parsing " -"capabilities, take a look at :func:`iterparse`. It can be useful when " -"you're reading a large XML document and don't want to hold it wholly in " -"memory." +"capabilities, take a look at :func:`iterparse`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:168 +#: ../../library/xml.etree.elementtree.rst:167 +msgid "" +"Note that both parsers build the tree incrementally: it is not freed " +"incrementally, so every parsed element is kept until the whole document is " +"read. To keep the memory usage low, get rid of the data which is not needed " +"any more." +msgstr "" + +#: ../../library/xml.etree.elementtree.rst:172 +msgid "" +"If the processed elements are large, it is enough to clear them. This works " +"wherever they are in the tree, but the emptied elements are left in it::" +msgstr "" + +#: ../../library/xml.etree.elementtree.rst:176 +msgid "" +"for event, elem in ET.iterparse(source):\n" +" if elem.tag == 'record':\n" +" process(elem)\n" +" elem.clear()" +msgstr "" + +#: ../../library/xml.etree.elementtree.rst:181 +msgid "" +"If an element has a large number of children, remove the processed children " +"from it::" +msgstr "" + +#: ../../library/xml.etree.elementtree.rst:184 +msgid "" +"for event, elem in ET.iterparse(source, events=('start', 'end')):\n" +" if event == 'start' and elem.tag == 'parent':\n" +" parent = elem\n" +" elif event == 'end' and elem.tag == 'child':\n" +" process(elem)\n" +" parent.remove(elem)" +msgstr "" + +#: ../../library/xml.etree.elementtree.rst:191 +msgid "" +"These examples are not universal, they only give an idea for two common " +"cases. If you do not need a tree at all, parse with :class:`XMLParser` and a " +"custom target instead; it is not built then, and nothing has to be removed." +msgstr "" + +#: ../../library/xml.etree.elementtree.rst:197 msgid "" "Where *immediate* feedback through events is wanted, calling method :meth:" "`XMLPullParser.flush` can help reduce delay; please make sure to study the " "related security notes." msgstr "" -#: ../../library/xml.etree.elementtree.rst:174 +#: ../../library/xml.etree.elementtree.rst:203 msgid "Finding interesting elements" msgstr "" -#: ../../library/xml.etree.elementtree.rst:176 +#: ../../library/xml.etree.elementtree.rst:205 msgid "" ":class:`Element` has some useful methods that help iterate recursively over " "all the sub-tree below it (its children, their children, and so on). For " "example, :meth:`Element.iter`::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:180 +#: ../../library/xml.etree.elementtree.rst:209 msgid "" ">>> for neighbor in root.iter('neighbor'):\n" "... print(neighbor.attrib)\n" @@ -273,7 +316,7 @@ msgid "" "{'name': 'Colombia', 'direction': 'E'}" msgstr "" -#: ../../library/xml.etree.elementtree.rst:189 +#: ../../library/xml.etree.elementtree.rst:218 msgid "" ":meth:`Element.findall` finds only elements with a tag which are direct " "children of the current element. :meth:`Element.find` finds the *first* " @@ -281,7 +324,7 @@ msgid "" "text content. :meth:`Element.get` accesses the element's attributes::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:194 +#: ../../library/xml.etree.elementtree.rst:223 msgid "" ">>> for country in root.findall('country'):\n" "... rank = country.find('rank').text\n" @@ -293,23 +336,23 @@ msgid "" "Panama 68" msgstr "" -#: ../../library/xml.etree.elementtree.rst:203 +#: ../../library/xml.etree.elementtree.rst:232 msgid "" "More sophisticated specification of which elements to look for is possible " "by using :ref:`XPath `." msgstr "" -#: ../../library/xml.etree.elementtree.rst:207 +#: ../../library/xml.etree.elementtree.rst:236 msgid "Modifying an XML File" msgstr "" -#: ../../library/xml.etree.elementtree.rst:209 +#: ../../library/xml.etree.elementtree.rst:238 msgid "" ":class:`ElementTree` provides a simple way to build XML documents and write " "them to files. The :meth:`ElementTree.write` method serves this purpose." msgstr "" -#: ../../library/xml.etree.elementtree.rst:212 +#: ../../library/xml.etree.elementtree.rst:241 msgid "" "Once created, an :class:`Element` object may be manipulated by directly " "changing its fields (such as :attr:`Element.text`), adding and modifying " @@ -317,13 +360,13 @@ msgid "" "example with :meth:`Element.append`)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:217 +#: ../../library/xml.etree.elementtree.rst:246 msgid "" "Let's say we want to add one to each country's rank, and add an ``updated`` " "attribute to the rank element::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:220 +#: ../../library/xml.etree.elementtree.rst:249 msgid "" ">>> for rank in root.iter('rank'):\n" "... new_rank = int(rank.text) + 1\n" @@ -333,12 +376,12 @@ msgid "" ">>> tree.write('output.xml')" msgstr "" -#: ../../library/xml.etree.elementtree.rst:227 -#: ../../library/xml.etree.elementtree.rst:271 +#: ../../library/xml.etree.elementtree.rst:256 +#: ../../library/xml.etree.elementtree.rst:300 msgid "Our XML now looks like this:" msgstr "" -#: ../../library/xml.etree.elementtree.rst:229 +#: ../../library/xml.etree.elementtree.rst:258 msgid "" "\n" "\n" @@ -365,13 +408,13 @@ msgid "" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:255 +#: ../../library/xml.etree.elementtree.rst:284 msgid "" "We can remove elements using :meth:`Element.remove`. Let's say we want to " "remove all countries with a rank higher than 50::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:258 +#: ../../library/xml.etree.elementtree.rst:287 msgid "" ">>> for country in root.findall('country'):\n" "... # using root.findall() to avoid removal during traversal\n" @@ -382,7 +425,7 @@ msgid "" ">>> tree.write('output.xml')" msgstr "" -#: ../../library/xml.etree.elementtree.rst:266 +#: ../../library/xml.etree.elementtree.rst:295 msgid "" "Note that concurrent modification while iterating can lead to problems, just " "like when iterating and modifying Python lists or dicts. Therefore, the " @@ -390,7 +433,7 @@ msgid "" "only then iterates over the list of matches." msgstr "" -#: ../../library/xml.etree.elementtree.rst:273 +#: ../../library/xml.etree.elementtree.rst:302 msgid "" "\n" "\n" @@ -410,17 +453,17 @@ msgid "" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:293 +#: ../../library/xml.etree.elementtree.rst:322 msgid "Building XML documents" msgstr "" -#: ../../library/xml.etree.elementtree.rst:295 +#: ../../library/xml.etree.elementtree.rst:324 msgid "" "The :func:`SubElement` function also provides a convenient way to create new " "sub-elements for a given element::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:298 +#: ../../library/xml.etree.elementtree.rst:327 msgid "" ">>> a = ET.Element('a')\n" ">>> b = ET.SubElement(a, 'b')\n" @@ -430,11 +473,11 @@ msgid "" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:306 +#: ../../library/xml.etree.elementtree.rst:335 msgid "Parsing XML with Namespaces" msgstr "" -#: ../../library/xml.etree.elementtree.rst:308 +#: ../../library/xml.etree.elementtree.rst:337 msgid "" "If the XML input has `namespaces `__, tags and attributes with prefixes in the form ``prefix:" @@ -444,13 +487,13 @@ msgid "" "prefixed tags." msgstr "" -#: ../../library/xml.etree.elementtree.rst:316 +#: ../../library/xml.etree.elementtree.rst:345 msgid "" "Here is an XML example that incorporates two namespaces, one with the prefix " "\"fictional\" and the other serving as the default namespace:" msgstr "" -#: ../../library/xml.etree.elementtree.rst:319 +#: ../../library/xml.etree.elementtree.rst:348 msgid "" "\n" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:337 +#: ../../library/xml.etree.elementtree.rst:366 msgid "" "One way to search and explore this XML example is to manually add the URI to " "every tag or attribute in the xpath of a :meth:`~Element.find` or :meth:" "`~Element.findall`::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:341 +#: ../../library/xml.etree.elementtree.rst:370 msgid "" "root = fromstring(xml_text)\n" "for actor in root.findall('{http://people.example.com}actor'):\n" @@ -486,13 +529,13 @@ msgid "" " print(' |-->', char.text)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:348 +#: ../../library/xml.etree.elementtree.rst:377 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 +#: ../../library/xml.etree.elementtree.rst:380 msgid "" "ns = {'real_person': 'http://people.example.com',\n" " 'role': 'http://characters.example.com'}\n" @@ -504,11 +547,11 @@ msgid "" " print(' |-->', char.text)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:360 +#: ../../library/xml.etree.elementtree.rst:389 msgid "These two approaches both output::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:362 +#: ../../library/xml.etree.elementtree.rst:391 msgid "" "John Cleese\n" " |--> Lancelot\n" @@ -519,11 +562,11 @@ msgid "" " |--> Commander Clement" msgstr "" -#: ../../library/xml.etree.elementtree.rst:374 +#: ../../library/xml.etree.elementtree.rst:403 msgid "XPath support" msgstr "" -#: ../../library/xml.etree.elementtree.rst:376 +#: ../../library/xml.etree.elementtree.rst:405 msgid "" "This module provides limited support for `XPath expressions `_ for locating elements in a tree. The goal is to support a " @@ -531,19 +574,19 @@ msgid "" "scope of the module." msgstr "" -#: ../../library/xml.etree.elementtree.rst:382 -#: ../../library/xml.etree.elementtree.rst:780 +#: ../../library/xml.etree.elementtree.rst:411 +#: ../../library/xml.etree.elementtree.rst:813 msgid "Example" msgstr "" -#: ../../library/xml.etree.elementtree.rst:384 +#: ../../library/xml.etree.elementtree.rst:413 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::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:388 +#: ../../library/xml.etree.elementtree.rst:417 msgid "" "import xml.etree.ElementTree as ET\n" "\n" @@ -566,35 +609,35 @@ msgid "" "root.findall(\".//neighbor[2]\")" msgstr "" -#: ../../library/xml.etree.elementtree.rst:408 +#: ../../library/xml.etree.elementtree.rst:437 msgid "" "For XML with namespaces, use the usual qualified ``{namespace}tag`` " "notation::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:410 +#: ../../library/xml.etree.elementtree.rst:439 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 +#: ../../library/xml.etree.elementtree.rst:444 msgid "Supported XPath syntax" msgstr "" -#: ../../library/xml.etree.elementtree.rst:420 +#: ../../library/xml.etree.elementtree.rst:449 msgid "Syntax" msgstr "" -#: ../../library/xml.etree.elementtree.rst:420 +#: ../../library/xml.etree.elementtree.rst:449 msgid "Meaning" msgstr "" -#: ../../library/xml.etree.elementtree.rst:422 +#: ../../library/xml.etree.elementtree.rst:451 msgid "``tag``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:422 +#: ../../library/xml.etree.elementtree.rst:451 msgid "" "Selects all child elements with the given tag. For example, ``spam`` selects " "all child elements named ``spam``, and ``spam/egg`` selects all " @@ -604,133 +647,133 @@ msgid "" "not in a namespace." msgstr "" -#: ../../library/xml.etree.elementtree.rst:431 +#: ../../library/xml.etree.elementtree.rst:460 msgid "Support for star-wildcards was added." msgstr "" -#: ../../library/xml.etree.elementtree.rst:434 +#: ../../library/xml.etree.elementtree.rst:463 msgid "``*``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:434 +#: ../../library/xml.etree.elementtree.rst:463 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 +#: ../../library/xml.etree.elementtree.rst:467 msgid "``.``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:438 +#: ../../library/xml.etree.elementtree.rst:467 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 +#: ../../library/xml.etree.elementtree.rst:471 msgid "``//``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:442 +#: ../../library/xml.etree.elementtree.rst:471 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 +#: ../../library/xml.etree.elementtree.rst:475 msgid "``..``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:446 +#: ../../library/xml.etree.elementtree.rst:475 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 +#: ../../library/xml.etree.elementtree.rst:479 msgid "``[@attrib]``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:450 +#: ../../library/xml.etree.elementtree.rst:479 msgid "Selects all elements that have the given attribute." msgstr "" -#: ../../library/xml.etree.elementtree.rst:452 +#: ../../library/xml.etree.elementtree.rst:481 msgid "``[@attrib='value']``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:452 +#: ../../library/xml.etree.elementtree.rst:481 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 +#: ../../library/xml.etree.elementtree.rst:485 msgid "``[@attrib!='value']``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:456 +#: ../../library/xml.etree.elementtree.rst:485 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 +#: ../../library/xml.etree.elementtree.rst:491 msgid "``[tag]``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:462 +#: ../../library/xml.etree.elementtree.rst:491 msgid "" "Selects all elements that have a child named ``tag``. Only immediate " "children are supported." msgstr "" -#: ../../library/xml.etree.elementtree.rst:465 +#: ../../library/xml.etree.elementtree.rst:494 msgid "``[.='text']``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:465 +#: ../../library/xml.etree.elementtree.rst:494 msgid "" "Selects all elements whose complete text content, including descendants, " "equals the given ``text``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:470 +#: ../../library/xml.etree.elementtree.rst:499 msgid "``[.!='text']``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:470 +#: ../../library/xml.etree.elementtree.rst:499 msgid "" "Selects all elements whose complete text content, including descendants, " "does not equal the given ``text``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:476 +#: ../../library/xml.etree.elementtree.rst:505 msgid "``[tag='text']``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:476 +#: ../../library/xml.etree.elementtree.rst:505 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 +#: ../../library/xml.etree.elementtree.rst:509 msgid "``[tag!='text']``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:480 +#: ../../library/xml.etree.elementtree.rst:509 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 +#: ../../library/xml.etree.elementtree.rst:515 msgid "``[position]``" msgstr "" -#: ../../library/xml.etree.elementtree.rst:486 +#: ../../library/xml.etree.elementtree.rst:515 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 " @@ -738,28 +781,28 @@ msgid "" "position (e.g. ``last()-1``)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:493 +#: ../../library/xml.etree.elementtree.rst:522 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:832 +#: ../../library/xml.etree.elementtree.rst:527 +#: ../../library/xml.etree.elementtree.rst:865 msgid "Reference" msgstr "" -#: ../../library/xml.etree.elementtree.rst:503 -#: ../../library/xml.etree.elementtree.rst:837 +#: ../../library/xml.etree.elementtree.rst:532 +#: ../../library/xml.etree.elementtree.rst:870 msgid "Functions" msgstr "" -#: ../../library/xml.etree.elementtree.rst:507 +#: ../../library/xml.etree.elementtree.rst:536 msgid "`C14N 2.0 `_ transformation function." msgstr "" -#: ../../library/xml.etree.elementtree.rst:509 +#: ../../library/xml.etree.elementtree.rst:538 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 " @@ -768,7 +811,7 @@ msgid "" "declarations, the ordering of attributes, and ignorable whitespace." msgstr "" -#: ../../library/xml.etree.elementtree.rst:515 +#: ../../library/xml.etree.elementtree.rst:544 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 " @@ -777,11 +820,11 @@ msgid "" "should therefore be opened in text mode with ``utf-8`` encoding." msgstr "" -#: ../../library/xml.etree.elementtree.rst:522 +#: ../../library/xml.etree.elementtree.rst:551 msgid "Typical uses::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:524 +#: ../../library/xml.etree.elementtree.rst:553 msgid "" "xml_data = \"...\"\n" "print(canonicalize(xml_data))\n" @@ -793,59 +836,59 @@ msgid "" " canonicalize(from_file=\"inputfile.xml\", out=out_file)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:533 +#: ../../library/xml.etree.elementtree.rst:562 msgid "The configuration *options* are as follows:" msgstr "" -#: ../../library/xml.etree.elementtree.rst:535 +#: ../../library/xml.etree.elementtree.rst:564 msgid "*with_comments*: set to true to include comments (default: false)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:536 +#: ../../library/xml.etree.elementtree.rst:565 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 +#: ../../library/xml.etree.elementtree.rst:566 +#: ../../library/xml.etree.elementtree.rst:568 msgid "(default: false)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:538 +#: ../../library/xml.etree.elementtree.rst:567 msgid "" "*rewrite_prefixes*: set to true to replace namespace prefixes by " "\"n{number}\"" msgstr "" -#: ../../library/xml.etree.elementtree.rst:540 +#: ../../library/xml.etree.elementtree.rst:569 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 +#: ../../library/xml.etree.elementtree.rst:570 +#: ../../library/xml.etree.elementtree.rst:572 msgid "should be replaced in text content (default: empty)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:542 +#: ../../library/xml.etree.elementtree.rst:571 msgid "" "*qname_aware_attrs*: a set of qname aware attribute names in which prefixes" msgstr "" -#: ../../library/xml.etree.elementtree.rst:544 +#: ../../library/xml.etree.elementtree.rst:573 msgid "*exclude_attrs*: a set of attribute names that should not be serialised" msgstr "" -#: ../../library/xml.etree.elementtree.rst:545 +#: ../../library/xml.etree.elementtree.rst:574 msgid "*exclude_tags*: a set of tag names that should not be serialised" msgstr "" -#: ../../library/xml.etree.elementtree.rst:547 +#: ../../library/xml.etree.elementtree.rst:576 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 +#: ../../library/xml.etree.elementtree.rst:584 msgid "" "Comment element factory. This factory function creates a special element " "that will be serialized as an XML comment by the standard serializer. *text* " @@ -853,7 +896,7 @@ msgid "" "representing a comment." msgstr "" -#: ../../library/xml.etree.elementtree.rst:560 +#: ../../library/xml.etree.elementtree.rst:589 msgid "" "Note that :class:`XMLParser` skips over comments in the input instead of " "creating comment objects for them. An :class:`ElementTree` will only contain " @@ -861,29 +904,29 @@ msgid "" "class:`Element` methods." msgstr "" -#: ../../library/xml.etree.elementtree.rst:567 +#: ../../library/xml.etree.elementtree.rst:596 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:570 +#: ../../library/xml.etree.elementtree.rst:599 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:573 +#: ../../library/xml.etree.elementtree.rst:602 msgid "*elem* is an element tree or an individual element." msgstr "" -#: ../../library/xml.etree.elementtree.rst:575 +#: ../../library/xml.etree.elementtree.rst:604 msgid "" "The :func:`dump` function now preserves the attribute order specified by the " "user." msgstr "" -#: ../../library/xml.etree.elementtree.rst:582 +#: ../../library/xml.etree.elementtree.rst:611 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. " @@ -891,7 +934,7 @@ msgid "" "class:`Element` instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:590 +#: ../../library/xml.etree.elementtree.rst:619 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 " @@ -899,7 +942,7 @@ msgid "" "parser is used. Returns an :class:`Element` instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:600 +#: ../../library/xml.etree.elementtree.rst:629 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 " @@ -909,13 +952,13 @@ msgid "" "indentation level as *level*." msgstr "" -#: ../../library/xml.etree.elementtree.rst:612 +#: ../../library/xml.etree.elementtree.rst:641 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:618 +#: ../../library/xml.etree.elementtree.rst:647 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` " @@ -933,7 +976,7 @@ msgid "" "internal file object if *source* is a filename." msgstr "" -#: ../../library/xml.etree.elementtree.rst:635 +#: ../../library/xml.etree.elementtree.rst:664 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 " @@ -941,7 +984,14 @@ msgid "" "parsing, see :class:`XMLPullParser`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:642 +#: ../../library/xml.etree.elementtree.rst:669 +msgid "" +"The tree is only built incrementally, it is not freed incrementally: every " +"parsed element is kept until the whole document is read. See :ref:" +"`elementtree-pull-parsing` for how to keep the memory usage low." +msgstr "" + +#: ../../library/xml.etree.elementtree.rst:675 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, " @@ -950,25 +1000,25 @@ msgid "" "present." msgstr "" -#: ../../library/xml.etree.elementtree.rst:648 -#: ../../library/xml.etree.elementtree.rst:1529 +#: ../../library/xml.etree.elementtree.rst:681 +#: ../../library/xml.etree.elementtree.rst:1562 msgid "If you need a fully populated element, look for \"end\" events instead." msgstr "" -#: ../../library/xml.etree.elementtree.rst:650 +#: ../../library/xml.etree.elementtree.rst:683 msgid "The *parser* argument." msgstr "" -#: ../../library/xml.etree.elementtree.rst:653 -#: ../../library/xml.etree.elementtree.rst:1533 +#: ../../library/xml.etree.elementtree.rst:686 +#: ../../library/xml.etree.elementtree.rst:1566 msgid "The ``comment`` and ``pi`` events were added." msgstr "" -#: ../../library/xml.etree.elementtree.rst:656 +#: ../../library/xml.etree.elementtree.rst:689 msgid "Added the :meth:`!close` method." msgstr "" -#: ../../library/xml.etree.elementtree.rst:662 +#: ../../library/xml.etree.elementtree.rst:695 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 " @@ -976,7 +1026,7 @@ msgid "" "class:`ElementTree` instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:670 +#: ../../library/xml.etree.elementtree.rst:703 msgid "" "PI element factory. This factory function creates a special element that " "will be serialized as an XML processing instruction. *target* is a string " @@ -984,7 +1034,7 @@ msgid "" "given. Returns an element instance, representing a processing instruction." msgstr "" -#: ../../library/xml.etree.elementtree.rst:675 +#: ../../library/xml.etree.elementtree.rst:708 msgid "" "Note that :class:`XMLParser` skips over processing instructions in the input " "instead of creating PI objects for them. An :class:`ElementTree` will only " @@ -992,7 +1042,7 @@ msgid "" "tree using one of the :class:`Element` methods." msgstr "" -#: ../../library/xml.etree.elementtree.rst:683 +#: ../../library/xml.etree.elementtree.rst:716 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. " @@ -1001,13 +1051,13 @@ msgid "" "all possible." msgstr "" -#: ../../library/xml.etree.elementtree.rst:694 +#: ../../library/xml.etree.elementtree.rst:727 msgid "" "Subelement factory. This function creates an element instance, and appends " "it to an existing element." msgstr "" -#: ../../library/xml.etree.elementtree.rst:697 +#: ../../library/xml.etree.elementtree.rst:730 msgid "" "*parent* is the parent element. *tag* is the subelement name. *attrib* is " "an optional dictionary, containing element attributes. *extra* contains " @@ -1015,7 +1065,7 @@ msgid "" "instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:707 +#: ../../library/xml.etree.elementtree.rst:740 msgid "" "Generates a string representation of an XML element, including all " "subelements. *element* is an :class:`Element` instance. *encoding* [1]_ is " @@ -1027,24 +1077,24 @@ msgid "" "Returns an (optionally) encoded string containing the XML data." msgstr "" -#: ../../library/xml.etree.elementtree.rst:716 -#: ../../library/xml.etree.elementtree.rst:743 -#: ../../library/xml.etree.elementtree.rst:1205 +#: ../../library/xml.etree.elementtree.rst:749 +#: ../../library/xml.etree.elementtree.rst:776 +#: ../../library/xml.etree.elementtree.rst:1238 msgid "Added the *short_empty_elements* parameter." msgstr "" -#: ../../library/xml.etree.elementtree.rst:719 -#: ../../library/xml.etree.elementtree.rst:746 +#: ../../library/xml.etree.elementtree.rst:752 +#: ../../library/xml.etree.elementtree.rst:779 msgid "Added the *xml_declaration* and *default_namespace* parameters." msgstr "" -#: ../../library/xml.etree.elementtree.rst:722 +#: ../../library/xml.etree.elementtree.rst:755 msgid "" "The :func:`tostring` function now preserves the attribute order specified by " "the user." msgstr "" -#: ../../library/xml.etree.elementtree.rst:731 +#: ../../library/xml.etree.elementtree.rst:764 msgid "" "Generates a string representation of an XML element, including all " "subelements. *element* is an :class:`Element` instance. *encoding* [1]_ is " @@ -1058,13 +1108,13 @@ msgid "" "join(tostringlist(element)) == tostring(element)``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:749 +#: ../../library/xml.etree.elementtree.rst:782 msgid "" "The :func:`tostringlist` function now preserves the attribute order " "specified by the user." msgstr "" -#: ../../library/xml.etree.elementtree.rst:756 +#: ../../library/xml.etree.elementtree.rst:789 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 " @@ -1072,7 +1122,7 @@ msgid "" "class:`XMLParser` parser is used. Returns an :class:`Element` instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:764 +#: ../../library/xml.etree.elementtree.rst:797 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 " @@ -1081,11 +1131,11 @@ msgid "" "`Element` instance and a dictionary." msgstr "" -#: ../../library/xml.etree.elementtree.rst:774 +#: ../../library/xml.etree.elementtree.rst:807 msgid "XInclude support" msgstr "" -#: ../../library/xml.etree.elementtree.rst:776 +#: ../../library/xml.etree.elementtree.rst:809 msgid "" "This module provides limited support for `XInclude directives `_, via the :mod:`xml.etree.ElementInclude` helper " @@ -1093,7 +1143,7 @@ msgid "" "element trees, based on information in the tree." msgstr "" -#: ../../library/xml.etree.elementtree.rst:782 +#: ../../library/xml.etree.elementtree.rst:815 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/" @@ -1101,7 +1151,7 @@ msgid "" "and use the **href** attribute to specify the document to include." msgstr "" -#: ../../library/xml.etree.elementtree.rst:784 +#: ../../library/xml.etree.elementtree.rst:817 msgid "" "\n" "\n" @@ -1109,20 +1159,20 @@ msgid "" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:791 +#: ../../library/xml.etree.elementtree.rst:824 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:793 +#: ../../library/xml.etree.elementtree.rst:826 msgid "" "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:795 +#: ../../library/xml.etree.elementtree.rst:828 msgid "" "from xml.etree import ElementTree, ElementInclude\n" "\n" @@ -1132,33 +1182,33 @@ msgid "" "ElementInclude.include(root)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:804 +#: ../../library/xml.etree.elementtree.rst:837 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:806 +#: ../../library/xml.etree.elementtree.rst:839 msgid "" "\n" " This is a paragraph.\n" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:812 +#: ../../library/xml.etree.elementtree.rst:845 msgid "" "If the **parse** attribute is omitted, it defaults to \"xml\". The href " "attribute is required." msgstr "" -#: ../../library/xml.etree.elementtree.rst:814 +#: ../../library/xml.etree.elementtree.rst:847 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:816 +#: ../../library/xml.etree.elementtree.rst:849 msgid "" "\n" "\n" @@ -1166,18 +1216,18 @@ msgid "" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:823 +#: ../../library/xml.etree.elementtree.rst:856 msgid "The result might look something like:" msgstr "" -#: ../../library/xml.etree.elementtree.rst:825 +#: ../../library/xml.etree.elementtree.rst:858 msgid "" "\n" " Copyright (c) 2003.\n" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:843 +#: ../../library/xml.etree.elementtree.rst:876 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\". " @@ -1188,7 +1238,7 @@ msgid "" "``None`` or raise an exception." msgstr "" -#: ../../library/xml.etree.elementtree.rst:854 +#: ../../library/xml.etree.elementtree.rst:887 msgid "" "This function expands XInclude directives in-place in tree pointed by " "*elem*. *elem* is either the root :class:`~xml.etree.ElementTree.Element` or " @@ -1201,28 +1251,28 @@ msgid "" "malicious content explosion. Pass ``None`` to disable the limitation." msgstr "" -#: ../../library/xml.etree.elementtree.rst:864 +#: ../../library/xml.etree.elementtree.rst:897 msgid "Added the *base_url* and *max_depth* parameters." msgstr "" -#: ../../library/xml.etree.elementtree.rst:871 +#: ../../library/xml.etree.elementtree.rst:904 msgid "Element Objects" msgstr "" -#: ../../library/xml.etree.elementtree.rst:879 +#: ../../library/xml.etree.elementtree.rst:912 msgid "" "Element class. This class defines the Element interface, and provides a " "reference implementation of this interface." msgstr "" -#: ../../library/xml.etree.elementtree.rst:882 +#: ../../library/xml.etree.elementtree.rst:915 msgid "" "*tag* is the element name. *attrib* is an optional dictionary, containing " "element attributes. *extra* contains additional attributes, given as " "keyword arguments." msgstr "" -#: ../../library/xml.etree.elementtree.rst:886 +#: ../../library/xml.etree.elementtree.rst:919 msgid "" "The element name and the attribute names and values are strings or :class:" "`QName` instances, and the text and the tail are strings or ``None``. The " @@ -1235,13 +1285,13 @@ msgid "" "objects can be stored in the tree, but they cannot be serialized." msgstr "" -#: ../../library/xml.etree.elementtree.rst:900 +#: ../../library/xml.etree.elementtree.rst:933 msgid "" "A string identifying what kind of data this element represents (the element " "type, in other words)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:907 +#: ../../library/xml.etree.elementtree.rst:940 msgid "" "These attributes can be used to hold additional data associated with the " "element. Their values are usually strings but may be any application-" @@ -1252,11 +1302,11 @@ msgid "" "the XML data" msgstr "" -#: ../../library/xml.etree.elementtree.rst:915 +#: ../../library/xml.etree.elementtree.rst:948 msgid "1234" msgstr "" -#: ../../library/xml.etree.elementtree.rst:919 +#: ../../library/xml.etree.elementtree.rst:952 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 " @@ -1264,17 +1314,17 @@ msgid "" "``None`` and *tail* ``\"3\"``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:924 +#: ../../library/xml.etree.elementtree.rst:957 msgid "" "To collect the inner text of an element, see :meth:`itertext`, for example " "``\"\".join(element.itertext())``." msgstr "" -#: ../../library/xml.etree.elementtree.rst:927 +#: ../../library/xml.etree.elementtree.rst:960 msgid "Applications may store arbitrary objects in these attributes." msgstr "" -#: ../../library/xml.etree.elementtree.rst:932 +#: ../../library/xml.etree.elementtree.rst:965 msgid "" "A dictionary containing the element's attributes. Note that while the " "*attrib* value is always a real mutable Python dictionary, an ElementTree " @@ -1283,55 +1333,55 @@ msgid "" "implementations, use the dictionary methods below whenever possible." msgstr "" -#: ../../library/xml.etree.elementtree.rst:938 +#: ../../library/xml.etree.elementtree.rst:971 msgid "The following dictionary-like methods work on the element attributes." msgstr "" -#: ../../library/xml.etree.elementtree.rst:943 +#: ../../library/xml.etree.elementtree.rst:976 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:949 +#: ../../library/xml.etree.elementtree.rst:982 msgid "Gets the element attribute named *key*." msgstr "" -#: ../../library/xml.etree.elementtree.rst:951 +#: ../../library/xml.etree.elementtree.rst:984 msgid "" "Returns the attribute value, or *default* if the attribute was not found." msgstr "" -#: ../../library/xml.etree.elementtree.rst:956 +#: ../../library/xml.etree.elementtree.rst:989 msgid "Returns the element attributes as (name, value) pairs." msgstr "" -#: ../../library/xml.etree.elementtree.rst:961 +#: ../../library/xml.etree.elementtree.rst:994 msgid "Returns the element attribute names." msgstr "" -#: ../../library/xml.etree.elementtree.rst:966 +#: ../../library/xml.etree.elementtree.rst:999 msgid "Set the attribute *key* on the element to *value*." msgstr "" -#: ../../library/xml.etree.elementtree.rst:968 +#: ../../library/xml.etree.elementtree.rst:1001 msgid "The following methods work on the element's children (subelements)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:973 +#: ../../library/xml.etree.elementtree.rst:1006 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`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:980 +#: ../../library/xml.etree.elementtree.rst:1013 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:988 +#: ../../library/xml.etree.elementtree.rst:1021 msgid "" "Finds the first subelement matching *match*. *match* may be a tag name or " "a :ref:`path `. Returns an element instance or " @@ -1340,7 +1390,7 @@ msgid "" "expression into the given namespace." msgstr "" -#: ../../library/xml.etree.elementtree.rst:997 +#: ../../library/xml.etree.elementtree.rst:1030 msgid "" "Finds all matching subelements, by tag name or :ref:`path `. Returns a list containing all matching elements in document " @@ -1349,7 +1399,7 @@ msgid "" "expression into the given namespace." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1006 +#: ../../library/xml.etree.elementtree.rst:1039 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 " @@ -1360,13 +1410,13 @@ msgid "" "into the given namespace." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1017 +#: ../../library/xml.etree.elementtree.rst:1050 msgid "" "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:1023 +#: ../../library/xml.etree.elementtree.rst:1056 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 " @@ -1375,7 +1425,7 @@ msgid "" "structure is modified during iteration, the result is undefined." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1034 +#: ../../library/xml.etree.elementtree.rst:1067 msgid "" "Finds all matching subelements, by tag name or :ref:`path `. Returns an iterable yielding all matching elements in document " @@ -1383,33 +1433,33 @@ msgid "" "name." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1045 +#: ../../library/xml.etree.elementtree.rst:1078 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:1053 +#: ../../library/xml.etree.elementtree.rst:1086 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:1059 +#: ../../library/xml.etree.elementtree.rst:1092 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:1063 +#: ../../library/xml.etree.elementtree.rst:1096 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__`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1068 +#: ../../library/xml.etree.elementtree.rst:1101 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 " @@ -1417,7 +1467,7 @@ msgid "" "None`` tests.::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1073 +#: ../../library/xml.etree.elementtree.rst:1106 msgid "" "element = root.find('foo')\n" "\n" @@ -1428,11 +1478,11 @@ msgid "" " print(\"element not found\")" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1081 +#: ../../library/xml.etree.elementtree.rst:1114 msgid "Testing the truth value of an Element emits :exc:`DeprecationWarning`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1084 +#: ../../library/xml.etree.elementtree.rst:1117 msgid "" "Prior to Python 3.8, the serialisation order of the XML attributes of " "elements was artificially made predictable by sorting the attributes by " @@ -1441,7 +1491,7 @@ msgid "" "attributes were originally parsed or created by user code." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1090 +#: ../../library/xml.etree.elementtree.rst:1123 msgid "" "In general, user code should try not to depend on a specific ordering of " "attributes, given that the `XML Information Set \n" " \n" @@ -1581,13 +1631,13 @@ msgid "" "" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1225 +#: ../../library/xml.etree.elementtree.rst:1258 msgid "" "Example of changing the attribute \"target\" of every link in first " "paragraph::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1227 +#: ../../library/xml.etree.elementtree.rst:1260 msgid "" ">>> from xml.etree.ElementTree import ElementTree\n" ">>> tree = ElementTree()\n" @@ -1605,11 +1655,11 @@ msgid "" ">>> tree.write(\"output.xhtml\")" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1245 +#: ../../library/xml.etree.elementtree.rst:1278 msgid "QName Objects" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1250 +#: ../../library/xml.etree.elementtree.rst:1283 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 " @@ -1619,11 +1669,11 @@ msgid "" "class:`QName` instances are opaque." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1262 +#: ../../library/xml.etree.elementtree.rst:1295 msgid "TreeBuilder Objects" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1268 +#: ../../library/xml.etree.elementtree.rst:1301 msgid "" "Generic element structure builder. This builder converts a sequence of " "start, data, end, comment and pi method calls to a well-formed element " @@ -1631,14 +1681,14 @@ msgid "" "custom XML parser, or a parser for some other XML-like format." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1273 +#: ../../library/xml.etree.elementtree.rst:1306 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:1277 +#: ../../library/xml.etree.elementtree.rst:1310 msgid "" "The *comment_factory* and *pi_factory* functions, when given, should behave " "like the :func:`Comment` and :func:`ProcessingInstruction` functions to " @@ -1648,54 +1698,54 @@ msgid "" "element (but not outside of it)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1286 +#: ../../library/xml.etree.elementtree.rst:1319 msgid "" "Flushes the builder buffers, and returns the toplevel document element. " "Returns an :class:`Element` instance." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1292 +#: ../../library/xml.etree.elementtree.rst:1325 msgid "Adds text to the current element. *data* is a string." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1297 +#: ../../library/xml.etree.elementtree.rst:1330 msgid "" "Closes the current element. *tag* is the element name. Returns the closed " "element." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1303 +#: ../../library/xml.etree.elementtree.rst:1336 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:1309 +#: ../../library/xml.etree.elementtree.rst:1342 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:1317 +#: ../../library/xml.etree.elementtree.rst:1350 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:1323 +#: ../../library/xml.etree.elementtree.rst:1356 msgid "" "In addition, a custom :class:`TreeBuilder` object can provide the following " "methods:" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1328 +#: ../../library/xml.etree.elementtree.rst:1361 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:1336 +#: ../../library/xml.etree.elementtree.rst:1369 msgid "" "Is called whenever the parser encounters a new namespace declaration, before " "the ``start()`` callback for the opening element that defines it. *prefix* " @@ -1703,14 +1753,14 @@ msgid "" "otherwise. *uri* is the namespace URI." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1345 +#: ../../library/xml.etree.elementtree.rst:1378 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:1357 +#: ../../library/xml.etree.elementtree.rst:1390 msgid "" "A `C14N 2.0 `_ writer. Arguments are the " "same as for the :func:`canonicalize` function. This class does not build a " @@ -1718,11 +1768,11 @@ msgid "" "using the *write* function." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1368 +#: ../../library/xml.etree.elementtree.rst:1401 msgid "XMLParser Objects" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1373 +#: ../../library/xml.etree.elementtree.rst:1406 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 " @@ -1733,27 +1783,27 @@ msgid "" "XML file." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1381 +#: ../../library/xml.etree.elementtree.rst:1414 msgid "" "Parameters are now :ref:`keyword-only `. The *html* " "argument is no longer supported." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1388 +#: ../../library/xml.etree.elementtree.rst:1421 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:1395 +#: ../../library/xml.etree.elementtree.rst:1428 msgid "" "Feeds data to the parser. *data* is a string or encoded data (:class:" "`bytes` or a :term:`bytes-like object`)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1401 -#: ../../library/xml.etree.elementtree.rst:1480 +#: ../../library/xml.etree.elementtree.rst:1434 +#: ../../library/xml.etree.elementtree.rst:1513 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 " @@ -1763,15 +1813,15 @@ msgid "" "xmlparser.SetReparseDeferralEnabled` for details." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1408 -#: ../../library/xml.etree.elementtree.rst:1487 +#: ../../library/xml.etree.elementtree.rst:1441 +#: ../../library/xml.etree.elementtree.rst:1520 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." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1416 +#: ../../library/xml.etree.elementtree.rst:1449 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 " @@ -1782,7 +1832,7 @@ msgid "" "of an XML file::" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1424 +#: ../../library/xml.etree.elementtree.rst:1457 msgid "" ">>> from xml.etree.ElementTree import XMLParser\n" ">>> class MaxDepth: # The target object of the parser\n" @@ -1817,11 +1867,11 @@ msgid "" "4" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1460 +#: ../../library/xml.etree.elementtree.rst:1493 msgid "XMLPullParser Objects" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1464 +#: ../../library/xml.etree.elementtree.rst:1497 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 " @@ -1833,13 +1883,13 @@ msgid "" "If *events* is omitted, only ``\"end\"`` events are reported." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1475 +#: ../../library/xml.etree.elementtree.rst:1508 msgid "" "Feed the given data to the parser. *data* is a string or encoded data (:" "class:`bytes` or a :term:`bytes-like object`)." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1496 +#: ../../library/xml.etree.elementtree.rst:1529 msgid "" "Signal the parser that the data stream is terminated. Unlike :meth:" "`XMLParser.close`, this method always returns :const:`None`. Any events not " @@ -1847,7 +1897,7 @@ msgid "" "`read_events`." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1503 +#: ../../library/xml.etree.elementtree.rst:1536 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 " @@ -1856,25 +1906,25 @@ msgid "" "follows." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1509 +#: ../../library/xml.etree.elementtree.rst:1542 msgid "``start``, ``end``: the current Element." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1510 +#: ../../library/xml.etree.elementtree.rst:1543 msgid "``comment``, ``pi``: the current comment / processing instruction" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1511 +#: ../../library/xml.etree.elementtree.rst:1544 msgid "" "``start-ns``: a tuple ``(prefix, uri)`` naming the declared namespace " "mapping." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1513 +#: ../../library/xml.etree.elementtree.rst:1546 msgid "``end-ns``: :const:`None` (this may change in a future version)" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1515 +#: ../../library/xml.etree.elementtree.rst:1548 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 " @@ -1883,7 +1933,7 @@ msgid "" "results." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1523 +#: ../../library/xml.etree.elementtree.rst:1556 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 " @@ -1892,11 +1942,11 @@ msgid "" "be present." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1538 +#: ../../library/xml.etree.elementtree.rst:1571 msgid "Exceptions" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1542 +#: ../../library/xml.etree.elementtree.rst:1575 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 " @@ -1904,22 +1954,22 @@ msgid "" "following attributes available:" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1549 +#: ../../library/xml.etree.elementtree.rst:1582 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." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1554 +#: ../../library/xml.etree.elementtree.rst:1587 msgid "" "A tuple of *line*, *column* numbers, specifying where the error occurred." msgstr "" -#: ../../library/xml.etree.elementtree.rst:1557 +#: ../../library/xml.etree.elementtree.rst:1590 msgid "Footnotes" msgstr "" -#: ../../library/xml.etree.elementtree.rst:1558 +#: ../../library/xml.etree.elementtree.rst:1591 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.sax.handler.po b/library/xml.sax.handler.po index f8429b8..492f785 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" @@ -87,7 +87,7 @@ msgstr "" msgid "true: Perform Namespace processing." msgstr "" -#: ../../library/xml.sax.handler.rst:65 +#: ../../library/xml.sax.handler.rst:64 msgid "" "false: Optionally do not perform Namespace processing (implies namespace-" "prefixes; default)." @@ -104,13 +104,13 @@ msgstr "" msgid "value: ``\"http://xml.org/sax/features/namespace-prefixes\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:73 +#: ../../library/xml.sax.handler.rst:72 msgid "" "true: Report the original prefixed names and attributes used for Namespace " "declarations." msgstr "" -#: ../../library/xml.sax.handler.rst:75 +#: ../../library/xml.sax.handler.rst:74 msgid "" "false: Do not report attributes used for Namespace declarations, and " "optionally do not report original prefixed names (default)." @@ -125,7 +125,7 @@ msgstr "" msgid "value: ``\"http://xml.org/sax/features/string-interning\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:86 +#: ../../library/xml.sax.handler.rst:84 msgid "" "true: All element names, prefixes, attribute names, Namespace URIs, and " "local names are interned in a dictionary (see :data:" @@ -141,7 +141,7 @@ msgstr "" msgid "value: ``\"http://xml.org/sax/features/validation\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:95 +#: ../../library/xml.sax.handler.rst:94 msgid "" "true: Report all validation errors (implies external-general-entities and " "external-parameter-entities)." @@ -181,13 +181,13 @@ msgstr "" msgid "value: ``\"http://xml.org/sax/features/external-parameter-entities\"``" msgstr "" -#: ../../library/xml.sax.handler.rst:123 +#: ../../library/xml.sax.handler.rst:122 msgid "" "true: Include all external parameter entities, including the external DTD " "subset." msgstr "" -#: ../../library/xml.sax.handler.rst:125 +#: ../../library/xml.sax.handler.rst:124 msgid "" "false: Do not include any external parameter entities, even the external DTD " "subset." @@ -205,7 +205,7 @@ msgstr "" msgid "data type: :class:`~xml.sax.handler.LexicalHandler`" msgstr "" -#: ../../library/xml.sax.handler.rst:141 +#: ../../library/xml.sax.handler.rst:140 msgid "" "description: An optional extension handler for lexical events like comments." msgstr "" @@ -223,7 +223,7 @@ msgstr "" msgid "data type: an object implementing the SAX2 ``DeclHandler`` interface" msgstr "" -#: ../../library/xml.sax.handler.rst:150 +#: ../../library/xml.sax.handler.rst:149 msgid "" "description: An optional extension handler for DTD-related events other than " "notations and unparsed entities." @@ -243,7 +243,7 @@ msgstr "" msgid "data type: :class:`xml.dom.Node`" msgstr "" -#: ../../library/xml.sax.handler.rst:162 +#: ../../library/xml.sax.handler.rst:161 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." @@ -261,7 +261,7 @@ msgstr "" msgid "data type: Bytes" msgstr "" -#: ../../library/xml.sax.handler.rst:173 +#: ../../library/xml.sax.handler.rst:172 msgid "" "description: The literal string of characters that was the source for the " "current event." @@ -291,7 +291,7 @@ msgstr "" msgid "data type: Dictionary" msgstr "" -#: ../../library/xml.sax.handler.rst:194 +#: ../../library/xml.sax.handler.rst:191 msgid "" "description: The dictionary used to intern names, or ``None`` if names are " "not interned. Setting it enables interning, as does the :data:" diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index f3e116a..1a78ccf 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -204,14 +204,16 @@ msgstr "" "eines anderen iterierbaren Objekts nacheinander durchzugehen:" #: ../../reference/compound_stmts.rst:160 +#, fuzzy 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." +"provided by the iterator. When the iterator is :term:`exhausted`, the suite " +"in the :keyword:`!else` clause, if present, is executed, and the loop " +"terminates." msgstr "" "Der Ausdruck :token:`~python-grammar:starred_expression_list` wird einmal " "ausgewertet; er sollte ein :term:`iterable`-Objekt zurückgeben. Für dieses " diff --git a/reference/datamodel.po b/reference/datamodel.po index 9daaaf7..7e473d5 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -884,15 +884,15 @@ msgstr "" #: ../../reference/datamodel.rst:787 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 contains a :keyword:`yield` expression (see " +"section :ref:`yieldexpr`) 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` expression. 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:799 @@ -915,10 +915,10 @@ msgstr "" #: ../../reference/datamodel.rst:818 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 " -"function`. Such a function, when called, returns an :term:`asynchronous " -"iterator` object which can be used in an :keyword:`async for` statement to " -"execute the body of the function." +"contains a :keyword:`yield` expression is called a :dfn:`asynchronous " +"generator function`. Such a function, when called, returns an :term:" +"`asynchronous iterator` object which can be used in an :keyword:`async for` " +"statement to execute the body of the function." msgstr "" #: ../../reference/datamodel.rst:824 diff --git a/reference/executionmodel.po b/reference/executionmodel.po index 5e5414c..a004c31 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -833,15 +833,17 @@ msgstr "" "ausgeführt wird, sehen die konzeptionellen Ebenen seiner Ausführung auf dem " "Host in etwa wie folgt aus:" -#: ../../reference/executionmodel.rst:0 +#: ../../reference/executionmodel.rst:415 +#: ../../reference/executionmodel.rst:474 msgid "**host machine**" msgstr "**Host-Rechner**" -#: ../../reference/executionmodel.rst:0 +#: ../../reference/executionmodel.rst:416 +#: ../../reference/executionmodel.rst:475 msgid "**process** (global resources)" msgstr "**Prozess** (globale Ressourcen)" -#: ../../reference/executionmodel.rst:0 +#: ../../reference/executionmodel.rst:417 msgid "**thread** (runs machine code)" msgstr "**Thread** (führt Maschinencode aus)" @@ -968,19 +970,19 @@ msgstr "" "Für jedes Python-Programm gelten dieselben konzeptionellen Ebenen, ergänzt " "durch einige zusätzliche, für Python spezifische Datenschichten:" -#: ../../reference/executionmodel.rst:0 +#: ../../reference/executionmodel.rst:476 msgid "Python global runtime (*state*)" msgstr "Globale Laufzeitumgebung von Python (*state*)" -#: ../../reference/executionmodel.rst:0 +#: ../../reference/executionmodel.rst:477 msgid "Python interpreter (*state*)" msgstr "Python-Interpreter (*Zustand*)" -#: ../../reference/executionmodel.rst:0 +#: ../../reference/executionmodel.rst:478 msgid "**thread** (runs Python bytecode and \"C-API\")" msgstr "**Thread** (führt Python-Bytecode und \"C-API\" aus)" -#: ../../reference/executionmodel.rst:0 +#: ../../reference/executionmodel.rst:479 msgid "Python thread *state*" msgstr "Python-Thread-*Zustand*" diff --git a/reference/index.po b/reference/index.po index 42ccc93..d6f4ee4 100644 --- a/reference/index.po +++ b/reference/index.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2026-08-16 00:02+0000\n" "Last-Translator: Swen Bachmann <142266608+sba72@users.noreply.github.com>\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -23,14 +23,25 @@ msgstr "Die Python-Sprachreferenz" #: ../../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 " -"of non-essential built-in object types and of the built-in functions and " -"modules are described in :ref:`library-index`. For an informal introduction " -"to the language, see :ref:`tutorial-index`. For C or C++ programmers, two " -"additional manuals exist: :ref:`extending-index` describes the high-level " -"picture of how to write a Python extension module, and the :ref:`c-api-" -"index` describes the interfaces available to C/C++ programmers in detail." +"This reference manual describes the syntax and core semantics of the " +"language. It is terse, but attempts to be exact and complete." +msgstr "" + +#: ../../reference/index.rst:10 +msgid "" +"Elsewhere, the built-in object types and functions are described in :ref:" +"`builtins-index`. Standard library modules are described in :ref:`library-" +"index`." +msgstr "" + +#: ../../reference/index.rst:13 +#, fuzzy +msgid "" +"For an informal introduction to the language, see :ref:`tutorial-index`. For " +"C or C++ programmers, two additional manuals exist: :ref:`extending-index` " +"describes the high-level picture of how to write a Python extension module, " +"and the :ref:`c-api-index` describes the interfaces available to C/C++ " +"programmers in detail." msgstr "" "Dieses Referenzhandbuch beschreibt die Syntax und die „Kernsemantik“ der " "Sprache. Es ist knapp gehalten, versucht aber, präzise und vollständig zu " diff --git a/sphinx.po b/sphinx.po index b13167a..c3c2f75 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -279,191 +279,199 @@ msgid "Start here: a tour of Python's syntax and features" msgstr "" #: ../../tools/templates/indexcontent.html:59 -msgid "Library reference" +msgid "Built-ins reference" msgstr "" #: ../../tools/templates/indexcontent.html:60 -msgid "Standard library and builtins" +msgid "Built-in functions and classes" msgstr "" #: ../../tools/templates/indexcontent.html:61 -msgid "Language reference" +msgid "Library reference" msgstr "" #: ../../tools/templates/indexcontent.html:62 -msgid "Syntax and language elements" +msgid "Standard library modules" msgstr "" #: ../../tools/templates/indexcontent.html:63 -msgid "Python setup and usage" +msgid "Language reference" msgstr "" #: ../../tools/templates/indexcontent.html:64 -msgid "How to install, configure, and use Python" +msgid "Syntax and language elements" msgstr "" #: ../../tools/templates/indexcontent.html:65 -msgid "Python HOWTOs" +msgid "Python setup and usage" msgstr "" #: ../../tools/templates/indexcontent.html:66 -msgid "In-depth topic manuals" +msgid "How to install, configure, and use Python" msgstr "" #: ../../tools/templates/indexcontent.html:69 -msgid "Installing Python modules" +msgid "Python HOWTOs" msgstr "" #: ../../tools/templates/indexcontent.html:70 -msgid "Third-party modules and PyPI.org" +msgid "In-depth topic manuals" msgstr "" #: ../../tools/templates/indexcontent.html:71 -msgid "Extending and embedding" +msgid "Installing Python modules" msgstr "" #: ../../tools/templates/indexcontent.html:72 -msgid "For C/C++ programmers" +msgid "Third-party modules and PyPI.org" msgstr "" #: ../../tools/templates/indexcontent.html:73 -msgid "Python's C API" +msgid "Extending and embedding" msgstr "" #: ../../tools/templates/indexcontent.html:74 -msgid "C API reference" +msgid "For C/C++ programmers" msgstr "" #: ../../tools/templates/indexcontent.html:75 -msgid "FAQs" +msgid "Python's C API" msgstr "" #: ../../tools/templates/indexcontent.html:76 -msgid "Frequently asked questions (with answers!)" +msgid "C API reference" msgstr "" #: ../../tools/templates/indexcontent.html:77 -msgid "Deprecations" +msgid "FAQs" msgstr "" #: ../../tools/templates/indexcontent.html:78 +msgid "Frequently asked questions (with answers!)" +msgstr "" + +#: ../../tools/templates/indexcontent.html:79 +msgid "Deprecations" +msgstr "" + +#: ../../tools/templates/indexcontent.html:80 msgid "Deprecated functionality" msgstr "" -#: ../../tools/templates/indexcontent.html:82 +#: ../../tools/templates/indexcontent.html:84 msgid "Other resources:" msgstr "" -#: ../../tools/templates/indexcontent.html:85 +#: ../../tools/templates/indexcontent.html:87 msgid "Python developer's guide" msgstr "" -#: ../../tools/templates/indexcontent.html:86 +#: ../../tools/templates/indexcontent.html:88 msgid "Information on contributing to Python" msgstr "" -#: ../../tools/templates/indexcontent.html:87 +#: ../../tools/templates/indexcontent.html:89 msgid "Python Packaging User Guide" msgstr "" -#: ../../tools/templates/indexcontent.html:88 +#: ../../tools/templates/indexcontent.html:90 msgid "Resources relating to Python packaging" msgstr "" -#: ../../tools/templates/indexcontent.html:89 +#: ../../tools/templates/indexcontent.html:91 msgid "Audio/visual talks" msgstr "" -#: ../../tools/templates/indexcontent.html:90 +#: ../../tools/templates/indexcontent.html:92 msgid "Podcasts, talks, and video presentations from the community" msgstr "" -#: ../../tools/templates/indexcontent.html:93 +#: ../../tools/templates/indexcontent.html:95 msgid "Python Enhancement Proposals" msgstr "" -#: ../../tools/templates/indexcontent.html:94 +#: ../../tools/templates/indexcontent.html:96 msgid "Index of proposed improvements to Python" msgstr "" -#: ../../tools/templates/indexcontent.html:95 +#: ../../tools/templates/indexcontent.html:97 msgid "Static Typing with Python" msgstr "" -#: ../../tools/templates/indexcontent.html:96 +#: ../../tools/templates/indexcontent.html:98 msgid "Information and guides about Python type safety" msgstr "" -#: ../../tools/templates/indexcontent.html:100 +#: ../../tools/templates/indexcontent.html:102 msgid "Indices, glossary, and search:" msgstr "" -#: ../../tools/templates/indexcontent.html:103 +#: ../../tools/templates/indexcontent.html:105 msgid "Global module index" msgstr "" -#: ../../tools/templates/indexcontent.html:104 +#: ../../tools/templates/indexcontent.html:106 msgid "All modules and libraries" msgstr "" -#: ../../tools/templates/indexcontent.html:105 +#: ../../tools/templates/indexcontent.html:107 msgid "General index" msgstr "" -#: ../../tools/templates/indexcontent.html:106 +#: ../../tools/templates/indexcontent.html:108 msgid "All functions, classes, and terms" msgstr "" -#: ../../tools/templates/indexcontent.html:107 +#: ../../tools/templates/indexcontent.html:109 msgid "Glossary" msgstr "" -#: ../../tools/templates/indexcontent.html:108 +#: ../../tools/templates/indexcontent.html:110 msgid "Terms explained" msgstr "" -#: ../../tools/templates/indexcontent.html:111 +#: ../../tools/templates/indexcontent.html:113 msgid "Search page" msgstr "" -#: ../../tools/templates/indexcontent.html:112 +#: ../../tools/templates/indexcontent.html:114 msgid "Search this documentation" msgstr "" -#: ../../tools/templates/indexcontent.html:113 +#: ../../tools/templates/indexcontent.html:115 msgid "Complete table of contents" msgstr "" -#: ../../tools/templates/indexcontent.html:114 +#: ../../tools/templates/indexcontent.html:116 msgid "All sections and subsections" msgstr "" -#: ../../tools/templates/indexcontent.html:118 +#: ../../tools/templates/indexcontent.html:120 msgid "Project information:" msgstr "" -#: ../../tools/templates/indexcontent.html:121 +#: ../../tools/templates/indexcontent.html:123 msgid "Reporting issues" msgstr "" -#: ../../tools/templates/indexcontent.html:122 +#: ../../tools/templates/indexcontent.html:124 msgid "Contributing to docs" msgstr "" -#: ../../tools/templates/indexcontent.html:123 +#: ../../tools/templates/indexcontent.html:125 #: ../../tools/templates/indexsidebar.html:2 msgid "Download the documentation" msgstr "" -#: ../../tools/templates/indexcontent.html:126 +#: ../../tools/templates/indexcontent.html:128 msgid "History and license of Python" msgstr "" -#: ../../tools/templates/indexcontent.html:127 +#: ../../tools/templates/indexcontent.html:129 msgid "Copyright" msgstr "" -#: ../../tools/templates/indexcontent.html:128 +#: ../../tools/templates/indexcontent.html:130 msgid "About the documentation" msgstr "" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index f48dded..712174b 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2026-07-31 21:01+0000\n" "Last-Translator: Swen Bachmann <142266608+sba72@users.noreply.github.com>\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -312,12 +312,13 @@ msgstr "" "spart so Speicherplatz." #: ../../tutorial/controlflow.rst:148 +#, fuzzy 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 :term:`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 "" "Wir nennen ein solches Objekt :term:`iterable ` (iterierbar), das " "heißt, es eignet sich als Ziel für Funktionen und Konstrukte, die etwas " diff --git a/tutorial/index.po b/tutorial/index.po index 1cbd68f..8ead245 100644 --- a/tutorial/index.po +++ b/tutorial/index.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2026-07-31 21:31+0000\n" "Last-Translator: \n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -87,11 +87,13 @@ msgstr "" "Tutorial auch offline gelesen werden kann." #: ../../tutorial/index.rst:33 +#, fuzzy 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." +"For a description of standard objects and modules, see :ref:`builtins-index` " +"and :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." msgstr "" "Eine Beschreibung der Standardobjekte und -module findest du unter :ref:" "`library-index`. :ref:`reference-index` bietet eine formellere Definition " diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index 50a901a..0f28fc1 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2026-08-6 00:02+0000\n" "Last-Translator: Swen Bachmann <142266608+sba72@users.noreply.github.com>\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -43,18 +43,21 @@ msgstr "" "der Sammlung sind:" #: ../../tutorial/whatnow.rst:14 -msgid ":ref:`library-index`:" -msgstr ":ref:`library-index`:" +msgid "" +":ref:`builtins-index`: gives details about Python's built-in types and " +"functions." +msgstr "" -#: ../../tutorial/whatnow.rst:16 +#: ../../tutorial/whatnow.rst:17 +#, fuzzy msgid "" -"You should browse through this manual, which gives complete (though terse) " -"reference material about types, functions, and the modules in the standard " -"library. The standard Python distribution includes a *lot* of additional " -"code. There are modules to read Unix mailboxes, retrieve documents via HTTP, " -"generate random numbers, parse command-line options, compress data, and many " -"other tasks. Skimming through the Library Reference will give you an idea of " -"what's available." +":ref:`library-index`: gives complete (though terse) reference material about " +"types, functions, and the modules in the standard library. The standard " +"Python distribution includes a *lot* of additional code. There are modules " +"to read Unix mailboxes, retrieve documents via HTTP, generate random " +"numbers, parse command-line options, compress data, and many other tasks. " +"Skimming through the Library Reference will give you an idea of what's " +"available." msgstr "" "Du solltest dieses Handbuch durchblättern, das vollständiges (wenn auch " "knappes) Referenzmaterial zu Typen, Funktionen und den Modulen der " @@ -65,7 +68,7 @@ msgstr "" "andere Aufgaben. Das Überfliegen der Bibliotheksreferenz gibt dir eine " "Vorstellung davon, was verfügbar ist." -#: ../../tutorial/whatnow.rst:24 +#: ../../tutorial/whatnow.rst:25 msgid "" ":ref:`installing-index` explains how to install additional modules written " "by other Python users." @@ -73,7 +76,7 @@ msgstr "" ":ref:`installing-index` erklärt, wie zusätzliche Module installiert werden, " "die von anderen Python-Nutzern geschrieben wurden." -#: ../../tutorial/whatnow.rst:27 +#: ../../tutorial/whatnow.rst:28 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 " @@ -83,11 +86,11 @@ msgstr "" "von Python. Es ist schwere Kost, aber als vollständiger Leitfaden zur " "Sprache selbst sehr nützlich." -#: ../../tutorial/whatnow.rst:31 +#: ../../tutorial/whatnow.rst:32 msgid "More Python resources:" msgstr "Weitere Python-Ressourcen:" -#: ../../tutorial/whatnow.rst:33 +#: ../../tutorial/whatnow.rst:34 msgid "" "https://www.python.org: The major Python website. It contains code, " "documentation, and pointers to Python-related pages around the web." @@ -95,12 +98,12 @@ msgstr "" "https://www.python.org: Die Haupt-Website von Python. Sie enthält Code, " "Dokumentation und Verweise auf Seiten rund um Python im Web." -#: ../../tutorial/whatnow.rst:36 +#: ../../tutorial/whatnow.rst:37 msgid "https://docs.python.org: Fast access to Python's documentation." msgstr "" "https://docs.python.org: Schneller Zugriff auf die Python-Dokumentation." -#: ../../tutorial/whatnow.rst:38 +#: ../../tutorial/whatnow.rst:39 msgid "" "https://pypi.org: The Python Package Index, previously also nicknamed the " "Cheese Shop [#]_, is an index of user-created Python modules that are " @@ -113,7 +116,7 @@ msgstr "" "veröffentlichst, kannst du ihn hier registrieren, damit andere ihn finden " "können." -#: ../../tutorial/whatnow.rst:43 +#: ../../tutorial/whatnow.rst:44 msgid "" "https://code.activestate.com/recipes/langs/python/: The Python Cookbook is a " "sizable collection of code examples, larger modules, and useful scripts. " @@ -126,7 +129,7 @@ msgstr "" "zusammengefasst, das ebenfalls den Titel Python Cookbook trägt (O'Reilly & " "Associates, ISBN 0-596-00797-3)." -#: ../../tutorial/whatnow.rst:48 +#: ../../tutorial/whatnow.rst:49 msgid "" "https://pyvideo.org collects links to Python-related videos from conferences " "and user-group meetings." @@ -134,7 +137,7 @@ msgstr "" "https://pyvideo.org sammelt Links zu Python-bezogenen Videos von Konferenzen " "und Treffen von Anwendergruppen." -#: ../../tutorial/whatnow.rst:51 +#: ../../tutorial/whatnow.rst:52 msgid "" "https://scipy.org: The Scientific Python project includes modules for fast " "array computations and manipulations plus a host of packages for such things " @@ -146,7 +149,7 @@ msgstr "" "Bereiche wie lineare Algebra, Fourier-Transformationen, nichtlineare Löser, " "Zufallszahlenverteilungen, statistische Analysen und Ähnliches." -#: ../../tutorial/whatnow.rst:56 +#: ../../tutorial/whatnow.rst:57 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 " @@ -165,7 +168,7 @@ msgstr "" "und neue Module angekündigt werden. Archive der Mailingliste sind unter " "https://mail.python.org/pipermail/ verfügbar." -#: ../../tutorial/whatnow.rst:64 +#: ../../tutorial/whatnow.rst:65 msgid "" "Before posting, be sure to check the list of :ref:`Frequently Asked " "Questions ` (also called the FAQ). The FAQ answers many of the " @@ -177,11 +180,11 @@ msgstr "" "beantwortet viele der Fragen, die immer wieder auftauchen, und enthält " "möglicherweise bereits die Lösung für dein Problem." -#: ../../tutorial/whatnow.rst:70 +#: ../../tutorial/whatnow.rst:71 msgid "Footnotes" msgstr "Fußnoten" -#: ../../tutorial/whatnow.rst:71 +#: ../../tutorial/whatnow.rst:72 msgid "" "\"Cheese Shop\" is a Monty Python sketch: a customer enters a cheese shop, " "but whatever cheese he asks for, the clerk says it's missing." @@ -189,3 +192,6 @@ msgstr "" "\"Cheese Shop\" ist ein Sketch von Monty Python: Ein Kunde betritt einen " "Käseladen, doch egal, nach welchem Käse er fragt, der Verkäufer sagt immer, " "dieser sei nicht vorrätig." + +#~ msgid ":ref:`library-index`:" +#~ msgstr ":ref:`library-index`:" diff --git a/using/configure.po b/using/configure.po index 34fbad4..c4246e6 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -193,11 +193,11 @@ msgstr "" msgid "`OpenSSL `_" msgstr "" -#: ../../using/configure.rst:0 +#: ../../using/configure.rst:97 msgid "3.0.18 recommended" msgstr "" -#: ../../using/configure.rst:0 +#: ../../using/configure.rst:98 msgid "(1.1.1 minimum)" msgstr "" diff --git a/using/windows.po b/using/windows.po index 08bd84b..ab9391f 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -608,8 +608,8 @@ msgid "Environment Variable" msgstr "" #: ../../using/windows.rst:421 ../../using/windows.rst:757 -#: ../../using/windows.rst:1593 ../../using/windows.rst:1613 -#: ../../using/windows.rst:2203 +#: ../../using/windows.rst:1624 ../../using/windows.rst:1644 +#: ../../using/windows.rst:2234 msgid "Description" msgstr "" @@ -813,7 +813,7 @@ msgid "" "format`` would be specified as ``{\"list\": {\"format\": \"table\"}}``." msgstr "" -#: ../../using/windows.rst:525 ../../using/windows.rst:1959 +#: ../../using/windows.rst:525 ../../using/windows.rst:1990 msgid "Shebang lines" msgstr "" @@ -853,15 +853,15 @@ msgstr "" msgid "````" msgstr "" -#: ../../using/windows.rst:543 ../../using/windows.rst:1977 +#: ../../using/windows.rst:543 ../../using/windows.rst:2008 msgid "For example, if the first line of your script starts with" msgstr "" -#: ../../using/windows.rst:545 ../../using/windows.rst:1979 +#: ../../using/windows.rst:545 ../../using/windows.rst:2010 msgid "#! /usr/bin/python" msgstr "" -#: ../../using/windows.rst:549 ../../using/windows.rst:1983 +#: ../../using/windows.rst:549 ../../using/windows.rst:2014 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 " @@ -1276,7 +1276,7 @@ msgid "" "currently only for :ref:`index signatures `." msgstr "" -#: ../../using/windows.rst:826 ../../using/windows.rst:1772 +#: ../../using/windows.rst:826 ../../using/windows.rst:1803 msgid "Installing free-threaded binaries" msgstr "" @@ -1426,12 +1426,62 @@ msgid "" "}" msgstr "" -#: ../../using/windows.rst:942 ../../using/windows.rst:954 -msgid "Troubleshooting" +#: ../../using/windows.rst:940 +msgid "Proxy settings" msgstr "" #: ../../using/windows.rst:944 msgid "" +"By default, the Python install manager will use your system-wide proxy " +"settings, including automatic authentication. For most users, this behaves " +"the same as your browser and other applications." +msgstr "" + +#: ../../using/windows.rst:948 +msgid "" +"To override the settings, use the ``NO_PROXY``, ``HTTP_PROXY`` and " +"``HTTPS_PROXY`` environment variables. These should be set in the terminal " +"session before using the Python install manager. Other applications may also " +"use the variables, so use caution before setting them globally for your " +"entire machine." +msgstr "" + +#: ../../using/windows.rst:954 +msgid "" +"Setting ``NO_PROXY`` to any non-empty value will disable the use of any " +"proxy. Use this to bypass your system's default proxy setting and attempt to " +"access the index server directly." +msgstr "" + +#: ../../using/windows.rst:958 +msgid "" +"Setting ``HTTPS_PROXY`` to a string like ``example.com:8080`` will connect " +"to that proxy server for all HTTPS connections. For the default index, all " +"connections will be using HTTPS, and so this is the usual setting to " +"override." +msgstr "" + +#: ../../using/windows.rst:962 +msgid "" +"The ``HTTP_PROXY`` variable may be needed if you are using a private index " +"server that does not use encrypted connections, but does require the default " +"proxy server to be overridden. It follows the same format as ``HTTPS_PROXY``." +msgstr "" + +#: ../../using/windows.rst:966 +msgid "" +"Credentials may be embedded in either setting, however, when ``HTTPS_PROXY`` " +"has credentials embedded they will be used in preference to other " +"credentials. Only one set of credentials will be used for both types of " +"proxy." +msgstr "" + +#: ../../using/windows.rst:973 ../../using/windows.rst:985 +msgid "Troubleshooting" +msgstr "" + +#: ../../using/windows.rst:975 +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 " "an issue at `our bug tracker `_, " @@ -1439,25 +1489,25 @@ msgid "" "by default)." msgstr "" -#: ../../using/windows.rst:958 +#: ../../using/windows.rst:989 msgid "Symptom" msgstr "" -#: ../../using/windows.rst:959 +#: ../../using/windows.rst:990 msgid "Things to try" msgstr "" -#: ../../using/windows.rst:961 +#: ../../using/windows.rst:992 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:963 ../../using/windows.rst:982 +#: ../../using/windows.rst:994 ../../using/windows.rst:1013 msgid "Did you :ref:`install the Python install manager `?" msgstr "" -#: ../../using/windows.rst:966 ../../using/windows.rst:985 +#: ../../using/windows.rst:997 ../../using/windows.rst:1016 msgid "" "Click Start, open \"Manage app execution aliases\", and check that the " "aliases for \"Python (default)\" are enabled. If they already are, try " @@ -1465,11 +1515,11 @@ msgid "" "windowed)\" and \"Python install manager\" commands may also need refreshing." msgstr "" -#: ../../using/windows.rst:973 +#: ../../using/windows.rst:1004 msgid "Check that the ``py`` and ``pymanager`` commands work." msgstr "" -#: ../../using/windows.rst:976 ../../using/windows.rst:992 +#: ../../using/windows.rst:1007 ../../using/windows.rst:1023 msgid "" "Ensure your :envvar:`PATH` variable contains the entry for ``%UserProfile%" "\\AppData\\Local\\Microsoft\\WindowsApps``. The operating system includes " @@ -1477,59 +1527,59 @@ msgid "" "will not be found." msgstr "" -#: ../../using/windows.rst:981 +#: ../../using/windows.rst:1012 msgid "" "``py`` gives me a \"command not found\" error when I type it in my terminal." msgstr "" -#: ../../using/windows.rst:997 +#: ../../using/windows.rst:1028 msgid "" "``py`` gives me a \"can't open file\" error when I type commands in my " "terminal." msgstr "" -#: ../../using/windows.rst:999 +#: ../../using/windows.rst:1030 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:1004 +#: ../../using/windows.rst:1035 msgid "``python`` doesn't launch the same runtime as ``py``" msgstr "" -#: ../../using/windows.rst:1005 +#: ../../using/windows.rst:1036 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:1009 +#: ../../using/windows.rst:1040 msgid "" "Click Start, open \"Manage app execution aliases\", and check that your " "``python.exe`` alias is set to \"Python (default)\"" msgstr "" -#: ../../using/windows.rst:1012 +#: ../../using/windows.rst:1043 msgid "``python`` and ``py`` don't launch the runtime I expect" msgstr "" -#: ../../using/windows.rst:1013 +#: ../../using/windows.rst:1044 msgid "" "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:1018 +#: ../../using/windows.rst:1049 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:1024 +#: ../../using/windows.rst:1055 msgid "" "Prerelease and experimental installs that are not managed by the Python " "install manager may be chosen ahead of stable releases. Configure your " @@ -1537,29 +1587,29 @@ msgid "" "install``." msgstr "" -#: ../../using/windows.rst:1029 +#: ../../using/windows.rst:1060 msgid "" "``pythonw`` or ``pyw`` don't launch the same runtime as ``python`` or ``py``" msgstr "" -#: ../../using/windows.rst:1030 +#: ../../using/windows.rst:1061 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:1033 +#: ../../using/windows.rst:1064 msgid "" "``pip`` gives me a \"command not found\" error when I type it in my terminal." msgstr "" -#: ../../using/windows.rst:1034 ../../using/windows.rst:1046 +#: ../../using/windows.rst:1065 ../../using/windows.rst:1077 msgid "" "Have you activated a virtual environment? Run the ``." "venv\\Scripts\\activate`` script in your terminal to activate." msgstr "" -#: ../../using/windows.rst:1038 +#: ../../using/windows.rst:1069 msgid "" "The package may be available but missing the generated executable. We " "recommend using the ``python -m pip`` command instead. Running ``py install " @@ -1568,11 +1618,11 @@ msgid "" "commands such as ``pip`` (and other installed packages) available." msgstr "" -#: ../../using/windows.rst:1045 +#: ../../using/windows.rst:1076 msgid "I installed a package with ``pip`` but its command is not found." msgstr "" -#: ../../using/windows.rst:1050 +#: ../../using/windows.rst:1081 msgid "" "New packages do not automatically have global shortcuts created by the " "Python install manager. Similarly, uninstalled packages do not have their " @@ -1580,11 +1630,11 @@ msgid "" "shortcuts for newly installed packages." msgstr "" -#: ../../using/windows.rst:1056 +#: ../../using/windows.rst:1087 msgid "Typing ``script-name.py`` in the terminal opens in a new window." msgstr "" -#: ../../using/windows.rst:1057 +#: ../../using/windows.rst:1088 msgid "" "This is a known limitation of the operating system. Either specify ``py`` " "before the script name, create a batch file containing ``@py \"%~dpn0.py\" " @@ -1592,68 +1642,68 @@ msgid "" "select it as the association for scripts." msgstr "" -#: ../../using/windows.rst:1062 +#: ../../using/windows.rst:1093 msgid "Drag-dropping files onto a script doesn't work" msgstr "" -#: ../../using/windows.rst:1063 +#: ../../using/windows.rst:1094 msgid "" "This is a known limitation of the operating system. It is supported with the " "`legacy launcher`_, or with the Python install manager when installed from " "the MSI." msgstr "" -#: ../../using/windows.rst:1067 +#: ../../using/windows.rst:1098 msgid "I have installed the Python install manager multiple times." msgstr "" -#: ../../using/windows.rst:1068 +#: ../../using/windows.rst:1099 msgid "" "It is possible to install from the Store or WinGet, from the MSIX on the " "Python website, and from the MSI, all at once. They are all compatible and " "will share configuration and runtimes." msgstr "" -#: ../../using/windows.rst:1073 +#: ../../using/windows.rst:1104 msgid "" "See the earlier :ref:`pymanager-advancedinstall` section for ways to " "uninstall the install manager other than the typical Installed Apps (Add and " "Remove Programs) settings page." msgstr "" -#: ../../using/windows.rst:1077 +#: ../../using/windows.rst:1108 msgid "My old ``py.ini`` settings no longer work." msgstr "" -#: ../../using/windows.rst:1078 +#: ../../using/windows.rst:1109 msgid "" "The new Python install manager no longer supports this configuration file or " "its settings, and so it will be ignored. See :ref:`pymanager-config` for " "information about configuration settings." msgstr "" -#: ../../using/windows.rst:1085 +#: ../../using/windows.rst:1116 msgid "The embeddable package" msgstr "" -#: ../../using/windows.rst:1089 +#: ../../using/windows.rst:1120 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:1093 +#: ../../using/windows.rst:1124 msgid "" "To install an embedded distribution, we recommend using ``py install`` with " "the ``--target`` option:" msgstr "" -#: ../../using/windows.rst:1096 +#: ../../using/windows.rst:1127 msgid "$> py install 3.14-embed --target=" msgstr "" -#: ../../using/windows.rst:1100 +#: ../../using/windows.rst:1131 msgid "" "When extracted, the embedded distribution is (almost) fully isolated from " "the user's system, including environment variables, system registry " @@ -1664,14 +1714,14 @@ msgid "" "documentation are not included." msgstr "" -#: ../../using/windows.rst:1107 +#: ../../using/windows.rst:1138 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:1111 +#: ../../using/windows.rst:1142 msgid "" "Third-party packages should be installed by the application installer " "alongside the embedded distribution. Using pip to manage dependencies as for " @@ -1682,16 +1732,16 @@ msgid "" "compatibility with newer versions before providing updates to users." msgstr "" -#: ../../using/windows.rst:1119 +#: ../../using/windows.rst:1150 msgid "" "The two recommended use cases for this distribution are described below." msgstr "" -#: ../../using/windows.rst:1122 +#: ../../using/windows.rst:1153 msgid "Python application" msgstr "" -#: ../../using/windows.rst:1124 +#: ../../using/windows.rst:1155 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 " @@ -1700,7 +1750,7 @@ msgid "" "there are two options." msgstr "" -#: ../../using/windows.rst:1130 +#: ../../using/windows.rst:1161 msgid "" "Using a specialized executable as a launcher requires some coding, but " "provides the most transparent experience for users. With a customized " @@ -1711,7 +1761,7 @@ msgid "" "line." msgstr "" -#: ../../using/windows.rst:1137 +#: ../../using/windows.rst:1168 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 " @@ -1720,7 +1770,7 @@ msgid "" "from other running Python processes or file associations." msgstr "" -#: ../../using/windows.rst:1143 +#: ../../using/windows.rst:1174 msgid "" "With the latter approach, packages should be installed as directories " "alongside the Python executable to ensure they are available on the path. " @@ -1729,11 +1779,11 @@ msgid "" "application." msgstr "" -#: ../../using/windows.rst:1149 +#: ../../using/windows.rst:1180 msgid "Embedding Python" msgstr "" -#: ../../using/windows.rst:1151 +#: ../../using/windows.rst:1182 msgid "" "Applications written in native code often require some form of scripting " "language, and the embedded Python distribution can be used for this purpose. " @@ -1744,7 +1794,7 @@ msgid "" "interpreter." msgstr "" -#: ../../using/windows.rst:1158 +#: ../../using/windows.rst:1189 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 " @@ -1752,11 +1802,11 @@ msgid "" "the embedded distribution and a regular installation." msgstr "" -#: ../../using/windows.rst:1167 +#: ../../using/windows.rst:1198 msgid "The nuget.org packages" msgstr "" -#: ../../using/windows.rst:1171 +#: ../../using/windows.rst:1202 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 " @@ -1764,14 +1814,14 @@ msgid "" "works perfectly fine for packages containing build-time tools." msgstr "" -#: ../../using/windows.rst:1176 +#: ../../using/windows.rst:1207 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:1180 +#: ../../using/windows.rst:1211 msgid "" "The ``nuget.exe`` command line tool may be downloaded directly from " "``https://dist.nuget.org/win-x86-commandline/latest/nuget.exe``, for " @@ -1779,13 +1829,13 @@ msgid "" "Python for 64-bit or 32-bit machines is installed using::" msgstr "" -#: ../../using/windows.rst:1185 +#: ../../using/windows.rst:1216 msgid "" "nuget.exe install python -ExcludeVersion -OutputDirectory .\n" "nuget.exe install pythonx86 -ExcludeVersion -OutputDirectory ." msgstr "" -#: ../../using/windows.rst:1188 +#: ../../using/windows.rst:1219 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 " @@ -1795,7 +1845,7 @@ msgid "" "directory that contains the Python installation:" msgstr "" -#: ../../using/windows.rst:1195 +#: ../../using/windows.rst:1226 msgid "" "# Without -ExcludeVersion\n" "> .\\python.3.5.2\\tools\\python.exe -V\n" @@ -1806,7 +1856,7 @@ msgid "" "Python 3.5.2" msgstr "" -#: ../../using/windows.rst:1205 +#: ../../using/windows.rst:1236 msgid "" "In general, nuget packages are not upgradeable, and newer versions should be " "installed side-by-side and referenced using the full path. Alternatively, " @@ -1814,7 +1864,7 @@ msgid "" "will do this automatically if they do not preserve files between builds." msgstr "" -#: ../../using/windows.rst:1210 +#: ../../using/windows.rst:1241 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+" @@ -1822,7 +1872,7 @@ msgid "" "automatically use the headers and import libraries in your build." msgstr "" -#: ../../using/windows.rst:1215 +#: ../../using/windows.rst:1246 msgid "" "The package information pages on nuget.org are `www.nuget.org/packages/" "python `_ for the 64-bit version, " @@ -1831,11 +1881,11 @@ msgid "" "`_ for the ARM64 version" msgstr "" -#: ../../using/windows.rst:1223 +#: ../../using/windows.rst:1254 msgid "Free-threaded packages" msgstr "" -#: ../../using/windows.rst:1227 +#: ../../using/windows.rst:1258 msgid "" "Packages containing free-threaded binaries are named `python-freethreaded " "`_ for the 64-bit " @@ -1846,45 +1896,45 @@ msgid "" "exe`` entry points, both of which run free threaded." msgstr "" -#: ../../using/windows.rst:1238 +#: ../../using/windows.rst:1269 msgid "Alternative bundles" msgstr "" -#: ../../using/windows.rst:1240 +#: ../../using/windows.rst:1271 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:1244 +#: ../../using/windows.rst:1275 msgid "`ActivePython `_" msgstr "" -#: ../../using/windows.rst:1245 +#: ../../using/windows.rst:1276 msgid "Installer with multi-platform compatibility, documentation, PyWin32" msgstr "" -#: ../../using/windows.rst:1247 +#: ../../using/windows.rst:1278 msgid "`Anaconda `_" msgstr "" -#: ../../using/windows.rst:1248 +#: ../../using/windows.rst:1279 msgid "" "Popular scientific modules (such as numpy, scipy and pandas) and the " "``conda`` package manager." msgstr "" -#: ../../using/windows.rst:1251 +#: ../../using/windows.rst:1282 msgid "" "`Enthought Deployment Manager `_" msgstr "" -#: ../../using/windows.rst:1252 +#: ../../using/windows.rst:1283 msgid "\"The Next Generation Python Environment and Package Manager\"." msgstr "" -#: ../../using/windows.rst:1254 +#: ../../using/windows.rst:1285 msgid "" "Previously Enthought provided Canopy, but it `reached end of life in 2016 " "`_." msgstr "" -#: ../../using/windows.rst:1257 +#: ../../using/windows.rst:1288 msgid "`WinPython `_" msgstr "" -#: ../../using/windows.rst:1258 +#: ../../using/windows.rst:1289 msgid "" "Windows-specific distribution with prebuilt scientific packages and tools " "for building packages." msgstr "" -#: ../../using/windows.rst:1261 +#: ../../using/windows.rst:1292 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:1266 +#: ../../using/windows.rst:1297 msgid "Supported Windows versions" msgstr "" -#: ../../using/windows.rst:1268 +#: ../../using/windows.rst:1299 msgid "" "As specified in :pep:`11`, a Python release only supports a Windows platform " "while Microsoft considers the platform under extended support. This means " @@ -1921,17 +1971,17 @@ msgid "" "please install Python 3.12." msgstr "" -#: ../../using/windows.rst:1278 ../../using/windows.rst:1559 +#: ../../using/windows.rst:1309 ../../using/windows.rst:1590 msgid "Removing the MAX_PATH limitation" msgstr "" -#: ../../using/windows.rst:1280 ../../using/windows.rst:1561 +#: ../../using/windows.rst:1311 ../../using/windows.rst:1592 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:1283 +#: ../../using/windows.rst:1314 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 " @@ -1940,36 +1990,36 @@ msgid "" "``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\FileSystem``." msgstr "" -#: ../../using/windows.rst:1288 ../../using/windows.rst:1570 +#: ../../using/windows.rst:1319 ../../using/windows.rst:1601 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:1291 +#: ../../using/windows.rst:1322 msgid "" "After changing the above option and rebooting, no further configuration is " "required." msgstr "" -#: ../../using/windows.rst:1298 +#: ../../using/windows.rst:1329 msgid "UTF-8 mode" msgstr "" -#: ../../using/windows.rst:1302 +#: ../../using/windows.rst:1333 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`)." msgstr "" -#: ../../using/windows.rst:1306 +#: ../../using/windows.rst:1337 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:1309 +#: ../../using/windows.rst:1340 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:1318 +#: ../../using/windows.rst:1349 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 " @@ -1993,45 +2043,45 @@ msgid "" "utf8`` command line option." msgstr "" -#: ../../using/windows.rst:1325 +#: ../../using/windows.rst:1356 msgid "" "Even when UTF-8 mode is disabled, Python uses UTF-8 by default on Windows " "for:" msgstr "" -#: ../../using/windows.rst:1328 +#: ../../using/windows.rst:1359 msgid "Console I/O including standard I/O (see :pep:`528` for details)." msgstr "" -#: ../../using/windows.rst:1329 +#: ../../using/windows.rst:1360 msgid "" "The :term:`filesystem encoding ` " "(see :pep:`529` for details)." msgstr "" -#: ../../using/windows.rst:1336 +#: ../../using/windows.rst:1367 msgid "Finding modules" msgstr "" -#: ../../using/windows.rst:1338 +#: ../../using/windows.rst:1369 msgid "" "These notes supplement the description at :ref:`sys-path-init` with detailed " "Windows notes." msgstr "" -#: ../../using/windows.rst:1341 +#: ../../using/windows.rst:1372 msgid "" "When no ``._pth`` file is found, this is how :data:`sys.path` is populated " "on Windows:" msgstr "" -#: ../../using/windows.rst:1344 +#: ../../using/windows.rst:1375 msgid "" "An empty entry is added at the start, which corresponds to the current " "directory." msgstr "" -#: ../../using/windows.rst:1347 +#: ../../using/windows.rst:1378 msgid "" "If the environment variable :envvar:`PYTHONPATH` exists, as described in :" "ref:`using-on-envvars`, its entries are added next. Note that on Windows, " @@ -2039,7 +2089,7 @@ msgid "" "from the colon used in drive identifiers (``C:\\`` etc.)." msgstr "" -#: ../../using/windows.rst:1352 +#: ../../using/windows.rst:1383 msgid "" "Additional \"application paths\" can be added in the registry as subkeys of :" "samp:`\\\\SOFTWARE\\\\Python\\\\PythonCore\\\\{version}\\\\PythonPath` under " @@ -2049,7 +2099,7 @@ msgid "" "installers only use HKLM, so HKCU is typically empty.)" msgstr "" -#: ../../using/windows.rst:1359 +#: ../../using/windows.rst:1390 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 " @@ -2060,31 +2110,31 @@ msgid "" "PythonPath stored in the registry." msgstr "" -#: ../../using/windows.rst:1367 +#: ../../using/windows.rst:1398 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:1371 +#: ../../using/windows.rst:1402 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:1374 +#: ../../using/windows.rst:1405 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:1378 +#: ../../using/windows.rst:1409 msgid "The end result of all this is:" msgstr "" -#: ../../using/windows.rst:1380 +#: ../../using/windows.rst:1411 msgid "" "When running :file:`python.exe`, or any other .exe in the main Python " "directory (either an installed version, or directly from the PCbuild " @@ -2092,7 +2142,7 @@ msgid "" "ignored. Other \"application paths\" in the registry are always read." msgstr "" -#: ../../using/windows.rst:1385 +#: ../../using/windows.rst:1416 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 " @@ -2100,20 +2150,20 @@ msgid "" "always read." msgstr "" -#: ../../using/windows.rst:1389 +#: ../../using/windows.rst:1420 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:1393 +#: ../../using/windows.rst:1424 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:1396 +#: ../../using/windows.rst:1427 msgid "" "Include a ``._pth`` file alongside your executable containing the " "directories to include. This will ignore paths listed in the registry and " @@ -2121,20 +2171,20 @@ msgid "" "listed." msgstr "" -#: ../../using/windows.rst:1401 +#: ../../using/windows.rst:1432 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`." msgstr "" -#: ../../using/windows.rst:1405 +#: ../../using/windows.rst:1436 msgid "" "Clear and/or overwrite :envvar:`PYTHONPATH` and set :envvar:`PYTHONHOME` " "before launching :file:`python.exe` from your application." msgstr "" -#: ../../using/windows.rst:1408 +#: ../../using/windows.rst:1439 msgid "" "If you cannot use the previous suggestions (for example, you are a " "distribution that allows people to run :file:`python.exe` directly), ensure " @@ -2143,7 +2193,7 @@ msgid "" "correctly named ZIP file will be detected instead.)" msgstr "" -#: ../../using/windows.rst:1414 +#: ../../using/windows.rst:1445 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 " @@ -2153,19 +2203,19 @@ msgid "" "packages." msgstr "" -#: ../../using/windows.rst:1422 +#: ../../using/windows.rst:1453 msgid "" "Add ``._pth`` file support and removes ``applocal`` option from ``pyvenv." "cfg``." msgstr "" -#: ../../using/windows.rst:1427 +#: ../../using/windows.rst:1458 msgid "" "Add :file:`python{XX}.zip` as a potential landmark when directly adjacent to " "the executable." msgstr "" -#: ../../using/windows.rst:1432 +#: ../../using/windows.rst:1463 msgid "" "Modules specified in the registry under ``Modules`` (not ``PythonPath``) may " "be imported by :class:`importlib.machinery.WindowsRegistryFinder`. This " @@ -2173,86 +2223,86 @@ msgid "" "explicitly added to :data:`sys.meta_path` in the future." msgstr "" -#: ../../using/windows.rst:1438 +#: ../../using/windows.rst:1469 msgid "Additional modules" msgstr "" -#: ../../using/windows.rst:1440 +#: ../../using/windows.rst:1471 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:1444 +#: ../../using/windows.rst:1475 msgid "" "The Windows-specific standard modules are documented in :ref:`mswin-specific-" "services`." msgstr "" -#: ../../using/windows.rst:1448 +#: ../../using/windows.rst:1479 msgid "PyWin32" msgstr "" -#: ../../using/windows.rst:1450 +#: ../../using/windows.rst:1481 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:1454 +#: ../../using/windows.rst:1485 msgid "" "`Component Object Model `_ (COM)" msgstr "" -#: ../../using/windows.rst:1457 +#: ../../using/windows.rst:1488 msgid "Win32 API calls" msgstr "" -#: ../../using/windows.rst:1458 +#: ../../using/windows.rst:1489 msgid "Registry" msgstr "" -#: ../../using/windows.rst:1459 +#: ../../using/windows.rst:1490 msgid "Event log" msgstr "" -#: ../../using/windows.rst:1460 +#: ../../using/windows.rst:1491 msgid "" "`Microsoft Foundation Classes `_ (MFC) user interfaces" msgstr "" -#: ../../using/windows.rst:1464 +#: ../../using/windows.rst:1495 msgid "" "`PythonWin `_ is a sample MFC application shipped with PyWin32. " "It is an embeddable IDE with a built-in debugger." msgstr "" -#: ../../using/windows.rst:1470 +#: ../../using/windows.rst:1501 msgid "" "`Win32 How Do I...? `_" msgstr "" -#: ../../using/windows.rst:1471 +#: ../../using/windows.rst:1502 msgid "by Tim Golden" msgstr "" -#: ../../using/windows.rst:1473 +#: ../../using/windows.rst:1504 msgid "`Python and COM `_" msgstr "" -#: ../../using/windows.rst:1474 +#: ../../using/windows.rst:1505 msgid "by David and Paul Boddie" msgstr "" -#: ../../using/windows.rst:1478 +#: ../../using/windows.rst:1509 msgid "cx_Freeze" msgstr "" -#: ../../using/windows.rst:1480 +#: ../../using/windows.rst:1511 msgid "" "`cx_Freeze `_ wraps Python " "scripts into executable Windows programs (:file:`{*}.exe` files). When you " @@ -2260,11 +2310,11 @@ msgid "" "users to install Python." msgstr "" -#: ../../using/windows.rst:1487 +#: ../../using/windows.rst:1518 msgid "Compiling Python on Windows" msgstr "" -#: ../../using/windows.rst:1489 +#: ../../using/windows.rst:1520 msgid "" "If you want to compile CPython yourself, first thing you should do is get " "the `source `_. You can download " @@ -2272,38 +2322,38 @@ msgid "" "devguide.python.org/setup/#get-the-source-code>`_." msgstr "" -#: ../../using/windows.rst:1494 +#: ../../using/windows.rst:1525 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:1498 +#: ../../using/windows.rst:1529 msgid "" "Check :file:`PCbuild/readme.txt` for general information on the build " "process." msgstr "" -#: ../../using/windows.rst:1500 +#: ../../using/windows.rst:1531 msgid "For extension modules, consult :ref:`building-on-windows`." msgstr "" -#: ../../using/windows.rst:1507 +#: ../../using/windows.rst:1538 msgid "The full installer (deprecated)" msgstr "" -#: ../../using/windows.rst:1511 +#: ../../using/windows.rst:1542 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:1516 +#: ../../using/windows.rst:1547 msgid "Installation steps" msgstr "" -#: ../../using/windows.rst:1518 +#: ../../using/windows.rst:1549 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 " @@ -2314,43 +2364,43 @@ msgid "" "ways to avoid downloading during installation." msgstr "" -#: ../../using/windows.rst:1526 +#: ../../using/windows.rst:1557 msgid "After starting the installer, one of two options may be selected:" msgstr "" -#: ../../using/windows.rst:1530 +#: ../../using/windows.rst:1561 msgid "If you select \"Install Now\":" msgstr "" -#: ../../using/windows.rst:1532 +#: ../../using/windows.rst:1563 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:1535 +#: ../../using/windows.rst:1566 msgid "Python will be installed into your user directory" msgstr "" -#: ../../using/windows.rst:1536 +#: ../../using/windows.rst:1567 msgid "" "The :ref:`launcher` will be installed according to the option at the bottom " "of the first page" msgstr "" -#: ../../using/windows.rst:1538 +#: ../../using/windows.rst:1569 msgid "The standard library, test suite, launcher and pip will be installed" msgstr "" -#: ../../using/windows.rst:1539 +#: ../../using/windows.rst:1570 msgid "If selected, the install directory will be added to your :envvar:`PATH`" msgstr "" -#: ../../using/windows.rst:1540 +#: ../../using/windows.rst:1571 msgid "Shortcuts will only be visible for the current user" msgstr "" -#: ../../using/windows.rst:1542 +#: ../../using/windows.rst:1573 msgid "" "Selecting \"Customize installation\" will allow you to select the features " "to install, the installation location and other options or post-install " @@ -2358,42 +2408,42 @@ msgid "" "option." msgstr "" -#: ../../using/windows.rst:1546 +#: ../../using/windows.rst:1577 msgid "" "To perform an all-users installation, you should select \"Customize " "installation\". In this case:" msgstr "" -#: ../../using/windows.rst:1549 +#: ../../using/windows.rst:1580 msgid "You may be required to provide administrative credentials or approval" msgstr "" -#: ../../using/windows.rst:1550 +#: ../../using/windows.rst:1581 msgid "Python will be installed into the Program Files directory" msgstr "" -#: ../../using/windows.rst:1551 +#: ../../using/windows.rst:1582 msgid "The :ref:`launcher` will be installed into the Windows directory" msgstr "" -#: ../../using/windows.rst:1552 +#: ../../using/windows.rst:1583 msgid "Optional features may be selected during installation" msgstr "" -#: ../../using/windows.rst:1553 +#: ../../using/windows.rst:1584 msgid "The standard library can be pre-compiled to bytecode" msgstr "" -#: ../../using/windows.rst:1554 +#: ../../using/windows.rst:1585 msgid "" "If selected, the install directory will be added to the system :envvar:`PATH`" msgstr "" -#: ../../using/windows.rst:1555 +#: ../../using/windows.rst:1586 msgid "Shortcuts are available for all users" msgstr "" -#: ../../using/windows.rst:1564 +#: ../../using/windows.rst:1595 msgid "" "In the latest versions of Windows, this limitation can be expanded to " "approximately 32,000 characters. Your administrator will need to activate " @@ -2402,19 +2452,19 @@ msgid "" "``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\FileSystem``." msgstr "" -#: ../../using/windows.rst:1573 +#: ../../using/windows.rst:1604 msgid "After changing the above option, no further configuration is required." msgstr "" -#: ../../using/windows.rst:1577 +#: ../../using/windows.rst:1608 msgid "Support for long paths was enabled in Python." msgstr "" -#: ../../using/windows.rst:1582 +#: ../../using/windows.rst:1613 msgid "Installing without UI" msgstr "" -#: ../../using/windows.rst:1584 +#: ../../using/windows.rst:1615 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 " @@ -2422,357 +2472,357 @@ msgid "" "without suppressing the UI in order to change some of the defaults." msgstr "" -#: ../../using/windows.rst:1589 +#: ../../using/windows.rst:1620 msgid "" "The following options (found by executing the installer with ``/?``) can be " "passed into the installer:" msgstr "" -#: ../../using/windows.rst:1593 ../../using/windows.rst:1613 -#: ../../using/windows.rst:2203 +#: ../../using/windows.rst:1624 ../../using/windows.rst:1644 +#: ../../using/windows.rst:2234 msgid "Name" msgstr "" -#: ../../using/windows.rst:1595 +#: ../../using/windows.rst:1626 msgid "/passive" msgstr "" -#: ../../using/windows.rst:1595 +#: ../../using/windows.rst:1626 msgid "to display progress without requiring user interaction" msgstr "" -#: ../../using/windows.rst:1597 +#: ../../using/windows.rst:1628 msgid "/quiet" msgstr "" -#: ../../using/windows.rst:1597 +#: ../../using/windows.rst:1628 msgid "to install/uninstall without displaying any UI" msgstr "" -#: ../../using/windows.rst:1599 +#: ../../using/windows.rst:1630 msgid "/simple" msgstr "" -#: ../../using/windows.rst:1599 +#: ../../using/windows.rst:1630 msgid "to prevent user customization" msgstr "" -#: ../../using/windows.rst:1601 +#: ../../using/windows.rst:1632 msgid "/uninstall" msgstr "" -#: ../../using/windows.rst:1601 +#: ../../using/windows.rst:1632 msgid "to remove Python (without confirmation)" msgstr "" -#: ../../using/windows.rst:1603 +#: ../../using/windows.rst:1634 msgid "/layout [directory]" msgstr "" -#: ../../using/windows.rst:1603 +#: ../../using/windows.rst:1634 msgid "to pre-download all components" msgstr "" -#: ../../using/windows.rst:1605 +#: ../../using/windows.rst:1636 msgid "/log [filename]" msgstr "" -#: ../../using/windows.rst:1605 +#: ../../using/windows.rst:1636 msgid "to specify log files location" msgstr "" -#: ../../using/windows.rst:1608 +#: ../../using/windows.rst:1639 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:1613 +#: ../../using/windows.rst:1644 msgid "Default" msgstr "" -#: ../../using/windows.rst:1615 +#: ../../using/windows.rst:1646 msgid "InstallAllUsers" msgstr "" -#: ../../using/windows.rst:1615 +#: ../../using/windows.rst:1646 msgid "Perform a system-wide installation." msgstr "" -#: ../../using/windows.rst:1615 ../../using/windows.rst:1641 -#: ../../using/windows.rst:1644 ../../using/windows.rst:1648 -#: ../../using/windows.rst:1657 ../../using/windows.rst:1679 -#: ../../using/windows.rst:1687 ../../using/windows.rst:1690 +#: ../../using/windows.rst:1646 ../../using/windows.rst:1672 +#: ../../using/windows.rst:1675 ../../using/windows.rst:1679 +#: ../../using/windows.rst:1688 ../../using/windows.rst:1710 +#: ../../using/windows.rst:1718 ../../using/windows.rst:1721 msgid "0" msgstr "" -#: ../../using/windows.rst:1617 +#: ../../using/windows.rst:1648 msgid "TargetDir" msgstr "" -#: ../../using/windows.rst:1617 +#: ../../using/windows.rst:1648 msgid "The installation directory" msgstr "" -#: ../../using/windows.rst:1617 +#: ../../using/windows.rst:1648 msgid "Selected based on InstallAllUsers" msgstr "" -#: ../../using/windows.rst:1620 +#: ../../using/windows.rst:1651 msgid "DefaultAllUsersTargetDir" msgstr "" -#: ../../using/windows.rst:1620 +#: ../../using/windows.rst:1651 msgid "The default installation directory for all-user installs" msgstr "" -#: ../../using/windows.rst:1620 +#: ../../using/windows.rst:1651 msgid "" -":file:`%ProgramFiles%\\\\\\ Python X.Y` or :file:`\\ %ProgramFiles(x86)%\\\\" -"\\ Python X.Y`" +":file:`%ProgramFiles%\\\\ Python X.Y` or :file:` %ProgramFiles(x86)%\\\\ " +"Python X.Y`" msgstr "" -#: ../../using/windows.rst:1625 +#: ../../using/windows.rst:1656 msgid "DefaultJustForMeTargetDir" msgstr "" -#: ../../using/windows.rst:1625 +#: ../../using/windows.rst:1656 msgid "The default install directory for just-for-me installs" msgstr "" -#: ../../using/windows.rst:1625 +#: ../../using/windows.rst:1656 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:1635 +#: ../../using/windows.rst:1666 msgid "DefaultCustomTargetDir" msgstr "" -#: ../../using/windows.rst:1635 +#: ../../using/windows.rst:1666 msgid "The default custom install directory displayed in the UI" msgstr "" -#: ../../using/windows.rst:1635 ../../using/windows.rst:1692 +#: ../../using/windows.rst:1666 ../../using/windows.rst:1723 msgid "(empty)" msgstr "" -#: ../../using/windows.rst:1638 +#: ../../using/windows.rst:1669 msgid "AssociateFiles" msgstr "" -#: ../../using/windows.rst:1638 +#: ../../using/windows.rst:1669 msgid "Create file associations if the launcher is also installed." msgstr "" -#: ../../using/windows.rst:1638 ../../using/windows.rst:1652 -#: ../../using/windows.rst:1655 ../../using/windows.rst:1659 -#: ../../using/windows.rst:1663 ../../using/windows.rst:1667 -#: ../../using/windows.rst:1669 ../../using/windows.rst:1673 -#: ../../using/windows.rst:1677 ../../using/windows.rst:1681 -#: ../../using/windows.rst:1683 ../../using/windows.rst:1685 +#: ../../using/windows.rst:1669 ../../using/windows.rst:1683 +#: ../../using/windows.rst:1686 ../../using/windows.rst:1690 +#: ../../using/windows.rst:1694 ../../using/windows.rst:1698 +#: ../../using/windows.rst:1700 ../../using/windows.rst:1704 +#: ../../using/windows.rst:1708 ../../using/windows.rst:1712 +#: ../../using/windows.rst:1714 ../../using/windows.rst:1716 msgid "1" msgstr "" -#: ../../using/windows.rst:1641 +#: ../../using/windows.rst:1672 msgid "CompileAll" msgstr "" -#: ../../using/windows.rst:1641 +#: ../../using/windows.rst:1672 msgid "Compile all ``.py`` files to ``.pyc``." msgstr "" -#: ../../using/windows.rst:1644 +#: ../../using/windows.rst:1675 msgid "PrependPath" msgstr "" -#: ../../using/windows.rst:1644 +#: ../../using/windows.rst:1675 msgid "" "Prepend install and Scripts directories to :envvar:`PATH` and add ``.PY`` " "to :envvar:`PATHEXT`" msgstr "" -#: ../../using/windows.rst:1648 +#: ../../using/windows.rst:1679 msgid "AppendPath" msgstr "" -#: ../../using/windows.rst:1648 +#: ../../using/windows.rst:1679 msgid "" "Append install and Scripts directories to :envvar:`PATH` and add ``.PY`` " "to :envvar:`PATHEXT`" msgstr "" -#: ../../using/windows.rst:1652 +#: ../../using/windows.rst:1683 msgid "Shortcuts" msgstr "" -#: ../../using/windows.rst:1652 +#: ../../using/windows.rst:1683 msgid "" "Create shortcuts for the interpreter, documentation and IDLE if installed." msgstr "" -#: ../../using/windows.rst:1655 +#: ../../using/windows.rst:1686 msgid "Include_doc" msgstr "" -#: ../../using/windows.rst:1655 +#: ../../using/windows.rst:1686 msgid "Install Python manual" msgstr "" -#: ../../using/windows.rst:1657 +#: ../../using/windows.rst:1688 msgid "Include_debug" msgstr "" -#: ../../using/windows.rst:1657 +#: ../../using/windows.rst:1688 msgid "Install debug binaries" msgstr "" -#: ../../using/windows.rst:1659 +#: ../../using/windows.rst:1690 msgid "Include_dev" msgstr "" -#: ../../using/windows.rst:1659 +#: ../../using/windows.rst:1690 msgid "" "Install developer headers and libraries. Omitting this may lead to an " "unusable installation." msgstr "" -#: ../../using/windows.rst:1663 +#: ../../using/windows.rst:1694 msgid "Include_exe" msgstr "" -#: ../../using/windows.rst:1663 +#: ../../using/windows.rst:1694 msgid "" "Install :file:`python.exe` and related files. Omitting this may lead to an " "unusable installation." msgstr "" -#: ../../using/windows.rst:1667 +#: ../../using/windows.rst:1698 msgid "Include_launcher" msgstr "" -#: ../../using/windows.rst:1667 +#: ../../using/windows.rst:1698 msgid "Install :ref:`launcher`." msgstr "" -#: ../../using/windows.rst:1669 +#: ../../using/windows.rst:1700 msgid "InstallLauncherAllUsers" msgstr "" -#: ../../using/windows.rst:1669 +#: ../../using/windows.rst:1700 msgid "" "Installs the launcher for all users. Also requires ``Include_launcher`` to " "be set to 1" msgstr "" -#: ../../using/windows.rst:1673 +#: ../../using/windows.rst:1704 msgid "Include_lib" msgstr "" -#: ../../using/windows.rst:1673 +#: ../../using/windows.rst:1704 msgid "" "Install standard library and extension modules. Omitting this may lead to an " "unusable installation." msgstr "" -#: ../../using/windows.rst:1677 +#: ../../using/windows.rst:1708 msgid "Include_pip" msgstr "" -#: ../../using/windows.rst:1677 +#: ../../using/windows.rst:1708 msgid "Install bundled pip and setuptools" msgstr "" -#: ../../using/windows.rst:1679 +#: ../../using/windows.rst:1710 msgid "Include_symbols" msgstr "" -#: ../../using/windows.rst:1679 +#: ../../using/windows.rst:1710 msgid "Install debugging symbols (``*.pdb``)" msgstr "" -#: ../../using/windows.rst:1681 +#: ../../using/windows.rst:1712 msgid "Include_tcltk" msgstr "" -#: ../../using/windows.rst:1681 +#: ../../using/windows.rst:1712 msgid "Install Tcl/Tk support and IDLE" msgstr "" -#: ../../using/windows.rst:1683 +#: ../../using/windows.rst:1714 msgid "Include_test" msgstr "" -#: ../../using/windows.rst:1683 +#: ../../using/windows.rst:1714 msgid "Install standard library test suite" msgstr "" -#: ../../using/windows.rst:1685 +#: ../../using/windows.rst:1716 msgid "Include_tools" msgstr "" -#: ../../using/windows.rst:1685 +#: ../../using/windows.rst:1716 msgid "Install utility scripts" msgstr "" -#: ../../using/windows.rst:1687 +#: ../../using/windows.rst:1718 msgid "LauncherOnly" msgstr "" -#: ../../using/windows.rst:1687 +#: ../../using/windows.rst:1718 msgid "Only installs the launcher. This will override most other options." msgstr "" -#: ../../using/windows.rst:1690 +#: ../../using/windows.rst:1721 msgid "SimpleInstall" msgstr "" -#: ../../using/windows.rst:1690 +#: ../../using/windows.rst:1721 msgid "Disable most install UI" msgstr "" -#: ../../using/windows.rst:1692 +#: ../../using/windows.rst:1723 msgid "SimpleInstallDescription" msgstr "" -#: ../../using/windows.rst:1692 +#: ../../using/windows.rst:1723 msgid "A custom message to display when the simplified install UI is used." msgstr "" -#: ../../using/windows.rst:1696 +#: ../../using/windows.rst:1727 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:1699 +#: ../../using/windows.rst:1730 msgid "python-3.9.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0" msgstr "" -#: ../../using/windows.rst:1701 +#: ../../using/windows.rst:1732 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:1705 +#: ../../using/windows.rst:1736 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:1708 +#: ../../using/windows.rst:1739 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:1712 +#: ../../using/windows.rst:1743 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 " @@ -2781,7 +2831,7 @@ msgid "" "strings. This example file sets the same options as the previous example:" msgstr "" -#: ../../using/windows.rst:1718 +#: ../../using/windows.rst:1749 msgid "" "\n" " " msgstr "" -#: ../../using/windows.rst:1731 +#: ../../using/windows.rst:1762 msgid "Installing without downloading" msgstr "" -#: ../../using/windows.rst:1733 +#: ../../using/windows.rst:1764 msgid "" "As some features of Python are not included in the initial installer " "download, selecting those features may require an internet connection. To " @@ -2808,7 +2858,7 @@ msgid "" "to be performed it is very useful to have a locally cached copy." msgstr "" -#: ../../using/windows.rst:1741 +#: ../../using/windows.rst:1772 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 " @@ -2816,27 +2866,27 @@ msgid "" "avoid collisions between files with the same name." msgstr "" -#: ../../using/windows.rst:1748 +#: ../../using/windows.rst:1779 msgid "python-3.9.0.exe /layout [optional target directory]" msgstr "" -#: ../../using/windows.rst:1750 +#: ../../using/windows.rst:1781 msgid "" "You may also specify the ``/quiet`` option to hide the progress display." msgstr "" -#: ../../using/windows.rst:1753 +#: ../../using/windows.rst:1784 msgid "Modifying an install" msgstr "" -#: ../../using/windows.rst:1755 +#: ../../using/windows.rst:1786 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:1759 +#: ../../using/windows.rst:1790 msgid "" "\"Modify\" allows you to add or remove features by modifying the checkboxes " "- unchanged checkboxes will not install or remove anything. Some options " @@ -2844,26 +2894,26 @@ msgid "" "these, you will need to remove and then reinstall Python completely." msgstr "" -#: ../../using/windows.rst:1764 +#: ../../using/windows.rst:1795 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:1767 +#: ../../using/windows.rst:1798 msgid "" "\"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:1776 +#: ../../using/windows.rst:1807 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:1782 +#: ../../using/windows.rst:1813 msgid "" "Selecting this option will download and install additional binaries to the " "same location as the main Python install. The main executable is called " @@ -2872,7 +2922,7 @@ msgid "" "are shared with the main install." msgstr "" -#: ../../using/windows.rst:1788 +#: ../../using/windows.rst:1819 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 " @@ -2884,7 +2934,7 @@ msgid "" "not install the free-threaded binaries at this time." msgstr "" -#: ../../using/windows.rst:1797 +#: ../../using/windows.rst:1828 msgid "" "To specify the install option at the command line, use " "``Include_freethreaded=1``. See :ref:`install-layout-option` for " @@ -2893,24 +2943,24 @@ msgid "" "apply to the free-threaded builds." msgstr "" -#: ../../using/windows.rst:1803 +#: ../../using/windows.rst:1834 msgid "" "Free-threaded binaries are also available :ref:`on nuget.org `." msgstr "" -#: ../../using/windows.rst:1807 +#: ../../using/windows.rst:1838 msgid "Python launcher for Windows (deprecated)" msgstr "" -#: ../../using/windows.rst:1811 +#: ../../using/windows.rst:1842 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:1817 +#: ../../using/windows.rst:1848 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-" @@ -2918,7 +2968,7 @@ msgid "" "locate and execute that version." msgstr "" -#: ../../using/windows.rst:1822 +#: ../../using/windows.rst:1853 msgid "" "Unlike the :envvar:`PATH` variable, the launcher will correctly select the " "most appropriate version of Python. It will prefer per-user installations " @@ -2926,19 +2976,19 @@ msgid "" "most recently installed version." msgstr "" -#: ../../using/windows.rst:1827 +#: ../../using/windows.rst:1858 msgid "The launcher was originally specified in :pep:`397`." msgstr "" -#: ../../using/windows.rst:1830 +#: ../../using/windows.rst:1861 msgid "Getting started" msgstr "" -#: ../../using/windows.rst:1833 +#: ../../using/windows.rst:1864 msgid "From the command-line" msgstr "" -#: ../../using/windows.rst:1837 +#: ../../using/windows.rst:1868 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 " @@ -2946,62 +2996,62 @@ msgid "" "the launcher is available, execute the following command in Command Prompt::" msgstr "" -#: ../../using/windows.rst:1842 +#: ../../using/windows.rst:1873 msgid "py" msgstr "" -#: ../../using/windows.rst:1844 +#: ../../using/windows.rst:1875 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:1848 +#: ../../using/windows.rst:1879 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:1852 +#: ../../using/windows.rst:1883 msgid "py -3.7" msgstr "" -#: ../../using/windows.rst:1854 +#: ../../using/windows.rst:1885 msgid "" "If you want the latest version of Python 2 you have installed, try the " "command::" msgstr "" -#: ../../using/windows.rst:1857 +#: ../../using/windows.rst:1888 msgid "py -2" msgstr "" -#: ../../using/windows.rst:1859 +#: ../../using/windows.rst:1890 msgid "" "If you see the following error, you do not have the launcher installed::" msgstr "" -#: ../../using/windows.rst:1861 +#: ../../using/windows.rst:1892 msgid "" "'py' is not recognized as an internal or external command,\n" "operable program or batch file." msgstr "" -#: ../../using/windows.rst:1864 +#: ../../using/windows.rst:1895 msgid "The command::" msgstr "" -#: ../../using/windows.rst:1866 +#: ../../using/windows.rst:1897 msgid "py --list" msgstr "" -#: ../../using/windows.rst:1868 +#: ../../using/windows.rst:1899 msgid "displays the currently installed version(s) of Python." msgstr "" -#: ../../using/windows.rst:1870 +#: ../../using/windows.rst:1901 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 " @@ -3010,14 +3060,14 @@ msgid "" "available runtimes using the ``-V:`` format." msgstr "" -#: ../../using/windows.rst:1876 +#: ../../using/windows.rst:1907 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:1880 +#: ../../using/windows.rst:1911 msgid "" "# Select any '3.*' tagged runtime\n" "py -V:3\n" @@ -3029,14 +3079,14 @@ msgid "" "py -V:PythonCore/3" msgstr "" -#: ../../using/windows.rst:1889 +#: ../../using/windows.rst:1920 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:1893 +#: ../../using/windows.rst:1924 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 " @@ -3045,11 +3095,11 @@ msgid "" "``3.1``), but are compared using text (``-V:3.01`` does not match ``3.1``)." msgstr "" -#: ../../using/windows.rst:1901 +#: ../../using/windows.rst:1932 msgid "Virtual environments" msgstr "" -#: ../../using/windows.rst:1905 +#: ../../using/windows.rst:1936 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 " @@ -3059,42 +3109,42 @@ msgid "" "specify the global Python version." msgstr "" -#: ../../using/windows.rst:1913 +#: ../../using/windows.rst:1944 msgid "From a script" msgstr "" -#: ../../using/windows.rst:1915 +#: ../../using/windows.rst:1946 msgid "" "Let's create a test Python script - create a file called ``hello.py`` with " "the following contents" msgstr "" -#: ../../using/windows.rst:1918 +#: ../../using/windows.rst:1949 msgid "" "#! python\n" "import sys\n" "sys.stdout.write(\"hello from Python %s\\n\" % (sys.version,))" msgstr "" -#: ../../using/windows.rst:1924 +#: ../../using/windows.rst:1955 msgid "From the directory in which hello.py lives, execute the command::" msgstr "" -#: ../../using/windows.rst:1926 +#: ../../using/windows.rst:1957 msgid "py hello.py" msgstr "" -#: ../../using/windows.rst:1928 +#: ../../using/windows.rst:1959 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:1931 +#: ../../using/windows.rst:1962 msgid "#! python3" msgstr "" -#: ../../using/windows.rst:1935 +#: ../../using/windows.rst:1966 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 " @@ -3103,7 +3153,7 @@ msgid "" "information printed." msgstr "" -#: ../../using/windows.rst:1941 +#: ../../using/windows.rst:1972 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 " @@ -3111,11 +3161,11 @@ msgid "" "typically refers to Python 2." msgstr "" -#: ../../using/windows.rst:1947 +#: ../../using/windows.rst:1978 msgid "From file associations" msgstr "" -#: ../../using/windows.rst:1949 +#: ../../using/windows.rst:1980 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 " @@ -3124,13 +3174,13 @@ msgid "" "have the script specify the version which should be used." msgstr "" -#: ../../using/windows.rst:1955 +#: ../../using/windows.rst:1986 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:1961 +#: ../../using/windows.rst:1992 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 " @@ -3140,30 +3190,30 @@ msgid "" "demonstrate their use." msgstr "" -#: ../../using/windows.rst:1968 +#: ../../using/windows.rst:1999 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:1972 +#: ../../using/windows.rst:2003 msgid "``/usr/bin/env``" msgstr "" -#: ../../using/windows.rst:1973 +#: ../../using/windows.rst:2004 msgid "``/usr/bin/python``" msgstr "" -#: ../../using/windows.rst:1974 +#: ../../using/windows.rst:2005 msgid "``/usr/local/bin/python``" msgstr "" -#: ../../using/windows.rst:1975 +#: ../../using/windows.rst:2006 msgid "``python``" msgstr "" -#: ../../using/windows.rst:1989 +#: ../../using/windows.rst:2020 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 " @@ -3173,21 +3223,21 @@ msgid "" "and the environment will be used." msgstr "" -#: ../../using/windows.rst:1998 +#: ../../using/windows.rst:2029 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:2004 +#: ../../using/windows.rst:2035 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." msgstr "" -#: ../../using/windows.rst:2010 +#: ../../using/windows.rst:2041 msgid "" "Virtual commands referencing ``python`` now prefer an active virtual " "environment rather than searching :envvar:`PATH`. This handles cases where " @@ -3195,7 +3245,7 @@ msgid "" "not present in the active environment." msgstr "" -#: ../../using/windows.rst:2015 +#: ../../using/windows.rst:2046 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 " @@ -3209,7 +3259,7 @@ msgid "" "envvar:`PATH`." msgstr "" -#: ../../using/windows.rst:2026 +#: ../../using/windows.rst:2057 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 `. " @@ -3220,13 +3270,13 @@ msgid "" "part of the filename)." msgstr "" -#: ../../using/windows.rst:2034 +#: ../../using/windows.rst:2065 msgid "" "[commands]\n" "/bin/xpython=C:\\Program Files\\XPython\\python.exe" msgstr "" -#: ../../using/windows.rst:2039 +#: ../../using/windows.rst:2070 msgid "" "Any commands not found in the .INI file are treated as **Windows** " "executable paths that are absolute or relative to the directory containing " @@ -3237,33 +3287,33 @@ msgid "" "will be appended." msgstr "" -#: ../../using/windows.rst:2048 +#: ../../using/windows.rst:2079 msgid "Arguments in shebang lines" msgstr "" -#: ../../using/windows.rst:2050 +#: ../../using/windows.rst:2081 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:2053 +#: ../../using/windows.rst:2084 msgid "#! /usr/bin/python -v" msgstr "" -#: ../../using/windows.rst:2057 +#: ../../using/windows.rst:2088 msgid "Then Python will be started with the ``-v`` option" msgstr "" -#: ../../using/windows.rst:2060 +#: ../../using/windows.rst:2091 msgid "Customization" msgstr "" -#: ../../using/windows.rst:2065 +#: ../../using/windows.rst:2096 msgid "Customization via INI files" msgstr "" -#: ../../using/windows.rst:2067 +#: ../../using/windows.rst:2098 msgid "" "Two .ini files will be searched by the launcher - ``py.ini`` in the current " "user's application data directory (``%LOCALAPPDATA%`` or ``$env:" @@ -3272,7 +3322,7 @@ msgid "" "e. py.exe) and for the 'windows' version (i.e. pyw.exe)." msgstr "" -#: ../../using/windows.rst:2073 +#: ../../using/windows.rst:2104 msgid "" "Customization specified in the \"application directory\" will have " "precedence over the one next to the executable, so a user, who may not have " @@ -3280,11 +3330,11 @@ msgid "" "that global .ini file." msgstr "" -#: ../../using/windows.rst:2078 +#: ../../using/windows.rst:2109 msgid "Customizing default Python versions" msgstr "" -#: ../../using/windows.rst:2080 +#: ../../using/windows.rst:2111 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 " @@ -3294,13 +3344,13 @@ msgid "" "\"-32\" or \"-64\"." msgstr "" -#: ../../using/windows.rst:2086 +#: ../../using/windows.rst:2117 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:2089 +#: ../../using/windows.rst:2120 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 " @@ -3310,7 +3360,7 @@ msgid "" "launcher included with Python 3.7 or newer.)" msgstr "" -#: ../../using/windows.rst:2096 +#: ../../using/windows.rst:2127 msgid "" "If no minor version qualifiers are found, the environment variable " "``PY_PYTHON{major}`` (where ``{major}`` is the current major version " @@ -3321,7 +3371,7 @@ msgid "" "version in that family." msgstr "" -#: ../../using/windows.rst:2104 +#: ../../using/windows.rst:2135 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 " @@ -3335,30 +3385,30 @@ msgid "" "suffix can be used on a version specifier to change this behaviour." msgstr "" -#: ../../using/windows.rst:2115 +#: ../../using/windows.rst:2146 msgid "Examples:" msgstr "" -#: ../../using/windows.rst:2117 +#: ../../using/windows.rst:2148 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:2121 +#: ../../using/windows.rst:2152 msgid "" "The command ``python3.7`` will not consult any options at all as the " "versions are fully specified." msgstr "" -#: ../../using/windows.rst:2124 +#: ../../using/windows.rst:2155 msgid "" "If ``PY_PYTHON=3``, the commands ``python`` and ``python3`` will both use " "the latest installed Python 3 version." msgstr "" -#: ../../using/windows.rst:2127 +#: ../../using/windows.rst:2158 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 " @@ -3366,13 +3416,13 @@ msgid "" "specified.)" msgstr "" -#: ../../using/windows.rst:2132 +#: ../../using/windows.rst:2163 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:2135 +#: ../../using/windows.rst:2166 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 " @@ -3382,38 +3432,38 @@ msgid "" "will override things specified in the INI file." msgstr "" -#: ../../using/windows.rst:2142 +#: ../../using/windows.rst:2173 msgid "For example:" msgstr "" -#: ../../using/windows.rst:2144 +#: ../../using/windows.rst:2175 msgid "Setting ``PY_PYTHON=3.7`` is equivalent to the INI file containing:" msgstr "" -#: ../../using/windows.rst:2146 +#: ../../using/windows.rst:2177 msgid "" "[defaults]\n" "python=3.7" msgstr "" -#: ../../using/windows.rst:2151 +#: ../../using/windows.rst:2182 msgid "" "Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7`` is equivalent to the INI file " "containing:" msgstr "" -#: ../../using/windows.rst:2154 +#: ../../using/windows.rst:2185 msgid "" "[defaults]\n" "python=3\n" "python3=3.7" msgstr "" -#: ../../using/windows.rst:2161 +#: ../../using/windows.rst:2192 msgid "Diagnostics" msgstr "" -#: ../../using/windows.rst:2163 +#: ../../using/windows.rst:2194 msgid "" "If an environment variable :envvar:`!PYLAUNCHER_DEBUG` is set (to any " "value), the launcher will print diagnostic information to stderr (i.e. to " @@ -3424,11 +3474,11 @@ msgid "" "debugging." msgstr "" -#: ../../using/windows.rst:2171 +#: ../../using/windows.rst:2202 msgid "Dry run" msgstr "" -#: ../../using/windows.rst:2173 +#: ../../using/windows.rst:2204 msgid "" "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 " @@ -3438,11 +3488,11 @@ msgid "" "correctly in the console." msgstr "" -#: ../../using/windows.rst:2181 +#: ../../using/windows.rst:2212 msgid "Install on demand" msgstr "" -#: ../../using/windows.rst:2183 +#: ../../using/windows.rst:2214 msgid "" "If an environment variable :envvar:`!PYLAUNCHER_ALLOW_INSTALL` is set (to " "any value), and the requested Python version is not installed but is " @@ -3451,7 +3501,7 @@ msgid "" "command again." msgstr "" -#: ../../using/windows.rst:2188 +#: ../../using/windows.rst:2219 msgid "" "An additional :envvar:`!PYLAUNCHER_ALWAYS_INSTALL` variable causes the " "launcher to always try to install Python, even if it is detected. This is " @@ -3459,110 +3509,110 @@ msgid "" "PYLAUNCHER_DRYRUN`)." msgstr "" -#: ../../using/windows.rst:2193 +#: ../../using/windows.rst:2224 msgid "Return codes" msgstr "" -#: ../../using/windows.rst:2195 +#: ../../using/windows.rst:2226 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:2198 +#: ../../using/windows.rst:2229 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:2203 +#: ../../using/windows.rst:2234 msgid "Value" msgstr "" -#: ../../using/windows.rst:2205 +#: ../../using/windows.rst:2236 msgid "RC_BAD_VENV_CFG" msgstr "" -#: ../../using/windows.rst:2205 +#: ../../using/windows.rst:2236 msgid "107" msgstr "" -#: ../../using/windows.rst:2205 +#: ../../using/windows.rst:2236 msgid "A :file:`pyvenv.cfg` was found but is corrupt." msgstr "" -#: ../../using/windows.rst:2207 +#: ../../using/windows.rst:2238 msgid "RC_CREATE_PROCESS" msgstr "" -#: ../../using/windows.rst:2207 +#: ../../using/windows.rst:2238 msgid "101" msgstr "" -#: ../../using/windows.rst:2207 +#: ../../using/windows.rst:2238 msgid "Failed to launch Python." msgstr "" -#: ../../using/windows.rst:2209 +#: ../../using/windows.rst:2240 msgid "RC_INSTALLING" msgstr "" -#: ../../using/windows.rst:2209 +#: ../../using/windows.rst:2240 msgid "111" msgstr "" -#: ../../using/windows.rst:2209 +#: ../../using/windows.rst:2240 msgid "" "An install was started, but the command will need to be re-run after it " "completes." msgstr "" -#: ../../using/windows.rst:2212 +#: ../../using/windows.rst:2243 msgid "RC_INTERNAL_ERROR" msgstr "" -#: ../../using/windows.rst:2212 +#: ../../using/windows.rst:2243 msgid "109" msgstr "" -#: ../../using/windows.rst:2212 +#: ../../using/windows.rst:2243 msgid "Unexpected error. Please report a bug." msgstr "" -#: ../../using/windows.rst:2214 +#: ../../using/windows.rst:2245 msgid "RC_NO_COMMANDLINE" msgstr "" -#: ../../using/windows.rst:2214 +#: ../../using/windows.rst:2245 msgid "108" msgstr "" -#: ../../using/windows.rst:2214 +#: ../../using/windows.rst:2245 msgid "Unable to obtain command line from the operating system." msgstr "" -#: ../../using/windows.rst:2217 +#: ../../using/windows.rst:2248 msgid "RC_NO_PYTHON" msgstr "" -#: ../../using/windows.rst:2217 +#: ../../using/windows.rst:2248 msgid "103" msgstr "" -#: ../../using/windows.rst:2217 +#: ../../using/windows.rst:2248 msgid "Unable to locate the requested version." msgstr "" -#: ../../using/windows.rst:2219 +#: ../../using/windows.rst:2250 msgid "RC_NO_VENV_CFG" msgstr "" -#: ../../using/windows.rst:2219 +#: ../../using/windows.rst:2250 msgid "106" msgstr "" -#: ../../using/windows.rst:2219 +#: ../../using/windows.rst:2250 msgid "A :file:`pyvenv.cfg` was required but not found." msgstr "" diff --git a/whatsnew/3.11.po b/whatsnew/3.11.po index a5e8d23..6a8d8d6 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: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -2322,11 +2322,11 @@ msgstr "" msgid "Notes" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1650 msgid ":opcode:`!BINARY_*`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1651 msgid ":opcode:`!INPLACE_*`" msgstr "" @@ -2338,31 +2338,31 @@ msgstr "" msgid "Replaced all numeric binary/in-place opcodes with a single opcode" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1653 msgid ":opcode:`!CALL_FUNCTION`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1654 msgid ":opcode:`!CALL_FUNCTION_KW`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1655 msgid ":opcode:`!CALL_METHOD`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1653 msgid ":opcode:`CALL`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1654 msgid ":opcode:`!KW_NAMES`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1655 msgid ":opcode:`!PRECALL`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1656 msgid ":opcode:`PUSH_NULL`" msgstr "" @@ -2372,35 +2372,35 @@ msgid "" "allows better specialization of calls" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1658 msgid ":opcode:`!DUP_TOP`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1659 msgid ":opcode:`!DUP_TOP_TWO`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1660 msgid ":opcode:`!ROT_TWO`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1661 msgid ":opcode:`!ROT_THREE`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1662 msgid ":opcode:`!ROT_FOUR`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1663 msgid ":opcode:`!ROT_N`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1658 msgid ":opcode:`COPY`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1659 msgid ":opcode:`SWAP`" msgstr "" @@ -2408,11 +2408,11 @@ msgstr "" msgid "Stack manipulation instructions" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1665 msgid ":opcode:`!JUMP_IF_NOT_EXC_MATCH`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1665 msgid ":opcode:`CHECK_EXC_MATCH`" msgstr "" @@ -2420,27 +2420,27 @@ msgstr "" msgid "Now performs check but doesn't jump" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1667 msgid ":opcode:`!JUMP_ABSOLUTE`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1668 msgid ":opcode:`!POP_JUMP_IF_FALSE`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1669 msgid ":opcode:`!POP_JUMP_IF_TRUE`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1667 msgid ":opcode:`JUMP_BACKWARD`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1668 msgid ":opcode:`!POP_JUMP_BACKWARD_IF_*`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1669 msgid ":opcode:`!POP_JUMP_FORWARD_IF_*`" msgstr "" @@ -2450,11 +2450,11 @@ msgid "" "variants for each direction" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1673 msgid ":opcode:`!SETUP_WITH`" msgstr "" -#: ../../whatsnew/3.11.rst:0 +#: ../../whatsnew/3.11.rst:1674 msgid ":opcode:`!SETUP_ASYNC_WITH`" msgstr "" diff --git a/whatsnew/3.14.po b/whatsnew/3.14.po index ee4558b..ed57a05 100644 --- a/whatsnew/3.14.po +++ b/whatsnew/3.14.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -1342,7 +1342,7 @@ msgstr "" msgid "Garbage collection" msgstr "" -#: ../../whatsnew/3.14.rst:963 ../../whatsnew/3.14.rst:2221 +#: ../../whatsnew/3.14.rst:963 ../../whatsnew/3.14.rst:2227 msgid "**From Python 3.14.5 onwards:**" msgstr "" @@ -1359,7 +1359,7 @@ msgid "" "3.14.5 and later." msgstr "" -#: ../../whatsnew/3.14.rst:974 ../../whatsnew/3.14.rst:2230 +#: ../../whatsnew/3.14.rst:974 ../../whatsnew/3.14.rst:2236 msgid "**Previously in Python 3.14.0-3.14.4:**" msgstr "" @@ -1381,17 +1381,17 @@ msgstr "" msgid "The behavior of :func:`!gc.collect` changes slightly:" msgstr "" -#: ../../whatsnew/3.14.rst:988 ../../whatsnew/3.14.rst:3303 +#: ../../whatsnew/3.14.rst:988 ../../whatsnew/3.14.rst:3309 msgid "" "``gc.collect(1)``: Performs an increment of garbage collection, rather than " "collecting generation 1." msgstr "" -#: ../../whatsnew/3.14.rst:990 ../../whatsnew/3.14.rst:3305 +#: ../../whatsnew/3.14.rst:990 ../../whatsnew/3.14.rst:3311 msgid "Other calls to :func:`!gc.collect` are unchanged." msgstr "" -#: ../../whatsnew/3.14.rst:992 ../../whatsnew/3.14.rst:2261 +#: ../../whatsnew/3.14.rst:992 ../../whatsnew/3.14.rst:2267 msgid "(Contributed by Mark Shannon in :gh:`108362`.)" msgstr "" @@ -1471,7 +1471,7 @@ msgstr "" msgid "Improved modules" msgstr "" -#: ../../whatsnew/3.14.rst:1055 ../../whatsnew/3.14.rst:2335 +#: ../../whatsnew/3.14.rst:1055 ../../whatsnew/3.14.rst:2341 msgid "argparse" msgstr "" @@ -1499,7 +1499,7 @@ msgid "" "by Hugo van Kemenade in :gh:`130645`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1075 ../../whatsnew/3.14.rst:2354 +#: ../../whatsnew/3.14.rst:1075 ../../whatsnew/3.14.rst:2360 msgid "ast" msgstr "" @@ -1542,8 +1542,8 @@ msgid "" "`133367`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1101 ../../whatsnew/3.14.rst:2176 -#: ../../whatsnew/3.14.rst:2385 +#: ../../whatsnew/3.14.rst:1101 ../../whatsnew/3.14.rst:2182 +#: ../../whatsnew/3.14.rst:2391 msgid "asyncio" msgstr "asyncio" @@ -1800,7 +1800,7 @@ msgid "" "(Contributed by Sergey B Kirpichev in :gh:`53032`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1294 ../../whatsnew/3.14.rst:2212 +#: ../../whatsnew/3.14.rst:1294 ../../whatsnew/3.14.rst:2218 msgid "difflib" msgstr "" @@ -2074,7 +2074,7 @@ msgid "" "term:`package` or not. (Contributed by Zhikang Yan in :gh:`125634`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1473 ../../whatsnew/3.14.rst:2265 +#: ../../whatsnew/3.14.rst:1473 ../../whatsnew/3.14.rst:2271 msgid "io" msgstr "" @@ -2469,8 +2469,8 @@ msgid "" "`2025-4517`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1691 ../../whatsnew/3.14.rst:2274 -#: ../../whatsnew/3.14.rst:2535 +#: ../../whatsnew/3.14.rst:1691 ../../whatsnew/3.14.rst:2280 +#: ../../whatsnew/3.14.rst:2541 msgid "pathlib" msgstr "pathlib" @@ -2512,7 +2512,7 @@ msgid "" "directory. (Contributed by Barney Gale in :gh:`125413`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1713 ../../whatsnew/3.14.rst:2282 +#: ../../whatsnew/3.14.rst:1713 ../../whatsnew/3.14.rst:2288 msgid "pdb" msgstr "pdb" @@ -2827,35 +2827,44 @@ msgid "" "event:`!BRANCH` event. (Contributed by Mark Shannon in :gh:`122548`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1912 +#: ../../whatsnew/3.14.rst:1910 +msgid "" +"Add :func:`sys.monitoring.clear_tool_id` to unregister all events and " +"callback functions associated with a tool identifier. :func:`sys.monitoring." +"free_tool_id` now calls it before releasing the tool identifier, instead of " +"leaving its events and callbacks registered. (Contributed by Tian Gao in :gh:" +"`116750`.)" +msgstr "" + +#: ../../whatsnew/3.14.rst:1918 msgid "sysconfig" msgstr "" -#: ../../whatsnew/3.14.rst:1914 +#: ../../whatsnew/3.14.rst:1920 msgid "" "Add ``ABIFLAGS`` key to :func:`~sysconfig.get_config_vars` on Windows. " "(Contributed by Xuehai Pan in :gh:`131799`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1919 +#: ../../whatsnew/3.14.rst:1925 msgid "tarfile" msgstr "" -#: ../../whatsnew/3.14.rst:1921 +#: ../../whatsnew/3.14.rst:1927 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`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1925 +#: ../../whatsnew/3.14.rst:1931 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:1929 +#: ../../whatsnew/3.14.rst:1935 msgid "" ":func:`~tarfile.TarFile.extract` and :func:`~tarfile.TarFile.extractall` now " "(re-)apply the extraction filter when substituting a link (hard or symbolic) " @@ -2865,7 +2874,7 @@ msgid "" "cve:`2024-12718`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1936 +#: ../../whatsnew/3.14.rst:1942 msgid "" ":func:`~tarfile.TarFile.extract` and :func:`~tarfile.TarFile.extractall` no " "longer extract rejected members when :func:`~tarfile.TarFile.errorlevel` is " @@ -2873,59 +2882,59 @@ msgid "" "cve:`2025-4435`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1944 +#: ../../whatsnew/3.14.rst:1950 msgid "threading" msgstr "threading" -#: ../../whatsnew/3.14.rst:1946 +#: ../../whatsnew/3.14.rst:1952 msgid "" ":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:1952 +#: ../../whatsnew/3.14.rst:1958 msgid "tkinter" msgstr "tkinter" -#: ../../whatsnew/3.14.rst:1954 +#: ../../whatsnew/3.14.rst:1960 msgid "" "Make :mod:`tkinter` widget methods :meth:`!after` and :meth:`!after_idle` " "accept keyword arguments. (Contributed by Zhikang Yan in :gh:`126899`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1958 +#: ../../whatsnew/3.14.rst:1964 msgid "" "Add ability to specify a name for :class:`!tkinter.OptionMenu` and :class:`!" "tkinter.ttk.OptionMenu`. (Contributed by Zhikang Yan in :gh:`130482`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1964 +#: ../../whatsnew/3.14.rst:1970 msgid "turtle" msgstr "" -#: ../../whatsnew/3.14.rst:1966 +#: ../../whatsnew/3.14.rst:1972 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`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1972 +#: ../../whatsnew/3.14.rst:1978 msgid "types" msgstr "types" -#: ../../whatsnew/3.14.rst:1974 +#: ../../whatsnew/3.14.rst:1980 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`.)" msgstr "" -#: ../../whatsnew/3.14.rst:1980 +#: ../../whatsnew/3.14.rst:1986 msgid "typing" msgstr "typing" -#: ../../whatsnew/3.14.rst:1984 +#: ../../whatsnew/3.14.rst:1990 msgid "" "The :class:`types.UnionType` and :class:`typing.Union` types are now aliases " "for each other, meaning that both old-style unions (created with " @@ -2935,14 +2944,14 @@ msgid "" "users who introspect types at runtime:" msgstr "" -#: ../../whatsnew/3.14.rst:1991 +#: ../../whatsnew/3.14.rst:1997 msgid "" "Both syntaxes for creating a union now produce the same string " "representation in :func:`repr`. For example, ``repr(Union[int, str])`` is " "now ``\"int | str\"`` instead of ``\"typing.Union[int, str]\"``." msgstr "" -#: ../../whatsnew/3.14.rst:1996 +#: ../../whatsnew/3.14.rst:2002 msgid "" "Unions created using the old syntax are no longer cached. Previously, " "running ``Union[int, str]`` multiple times would return the same object " @@ -2959,7 +2968,7 @@ msgid "" "memory usage for most users." msgstr "" -#: ../../whatsnew/3.14.rst:2012 +#: ../../whatsnew/3.14.rst:2018 msgid "" "Previously, old-style unions were implemented using the private class " "``typing._UnionGenericAlias``. This class is no longer needed for the " @@ -2969,80 +2978,80 @@ msgid "" "of relying on private implementation details." msgstr "" -#: ../../whatsnew/3.14.rst:2021 +#: ../../whatsnew/3.14.rst:2027 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:2026 +#: ../../whatsnew/3.14.rst:2032 msgid "" "The :attr:`!__args__` attribute of :class:`typing.Union` objects is no " "longer writable." msgstr "" -#: ../../whatsnew/3.14.rst:2029 +#: ../../whatsnew/3.14.rst:2035 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:2034 +#: ../../whatsnew/3.14.rst:2040 msgid "(Contributed by Jelle Zijlstra in :gh:`105499`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2036 +#: ../../whatsnew/3.14.rst:2042 msgid ":class:`~typing.TypeAliasType` now supports star unpacking." msgstr "" -#: ../../whatsnew/3.14.rst:2040 +#: ../../whatsnew/3.14.rst:2046 msgid "unicodedata" msgstr "unicodedata" -#: ../../whatsnew/3.14.rst:2042 +#: ../../whatsnew/3.14.rst:2048 msgid "The Unicode database has been updated to Unicode 16.0.0." msgstr "" -#: ../../whatsnew/3.14.rst:2046 +#: ../../whatsnew/3.14.rst:2052 msgid "unittest" msgstr "unittest" -#: ../../whatsnew/3.14.rst:2050 +#: ../../whatsnew/3.14.rst:2056 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`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2055 +#: ../../whatsnew/3.14.rst:2061 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`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2059 +#: ../../whatsnew/3.14.rst:2065 msgid "" "A number of new methods were added in the :class:`~unittest.TestCase` class " "that provide more specialized tests." msgstr "" -#: ../../whatsnew/3.14.rst:2062 +#: ../../whatsnew/3.14.rst:2068 msgid "" ":meth:`~unittest.TestCase.assertHasAttr` and :meth:`~unittest.TestCase." "assertNotHasAttr` check whether the object has a particular attribute." msgstr "" -#: ../../whatsnew/3.14.rst:2065 +#: ../../whatsnew/3.14.rst:2071 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." msgstr "" -#: ../../whatsnew/3.14.rst:2068 +#: ../../whatsnew/3.14.rst:2074 msgid "" ":meth:`~unittest.TestCase.assertStartsWith`, :meth:`~unittest.TestCase." "assertNotStartsWith`, :meth:`~unittest.TestCase.assertEndsWith` and :meth:" @@ -3050,129 +3059,129 @@ msgid "" "string starts or ends with particular strings." msgstr "" -#: ../../whatsnew/3.14.rst:2074 +#: ../../whatsnew/3.14.rst:2080 msgid "(Contributed by Serhiy Storchaka in :gh:`71339`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2078 ../../whatsnew/3.14.rst:2581 +#: ../../whatsnew/3.14.rst:2084 ../../whatsnew/3.14.rst:2587 msgid "urllib" msgstr "" -#: ../../whatsnew/3.14.rst:2080 +#: ../../whatsnew/3.14.rst:2086 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:2084 +#: ../../whatsnew/3.14.rst:2090 msgid "" "Improve ergonomics and standards compliance when parsing and emitting ``file:" "`` URLs." msgstr "" -#: ../../whatsnew/3.14.rst:2087 +#: ../../whatsnew/3.14.rst:2093 msgid "In :func:`~urllib.request.url2pathname`:" msgstr "" -#: ../../whatsnew/3.14.rst:2089 +#: ../../whatsnew/3.14.rst:2095 msgid "" "Accept a complete URL when the new *require_scheme* argument is set to true." msgstr "" -#: ../../whatsnew/3.14.rst:2091 +#: ../../whatsnew/3.14.rst:2097 msgid "Discard URL authority if it matches the local hostname." msgstr "" -#: ../../whatsnew/3.14.rst:2092 +#: ../../whatsnew/3.14.rst:2098 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:2094 +#: ../../whatsnew/3.14.rst:2100 msgid "Discard URL query and fragment components." msgstr "" -#: ../../whatsnew/3.14.rst:2095 +#: ../../whatsnew/3.14.rst:2101 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:2098 +#: ../../whatsnew/3.14.rst:2104 msgid "In :func:`~urllib.request.pathname2url`:" msgstr "" -#: ../../whatsnew/3.14.rst:2100 +#: ../../whatsnew/3.14.rst:2106 msgid "" "Return a complete URL when the new *add_scheme* argument is set to true." msgstr "" -#: ../../whatsnew/3.14.rst:2101 +#: ../../whatsnew/3.14.rst:2107 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:2104 +#: ../../whatsnew/3.14.rst:2110 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:2108 +#: ../../whatsnew/3.14.rst:2114 msgid "(Contributed by Barney Gale in :gh:`125866`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2112 ../../whatsnew/3.14.rst:2303 +#: ../../whatsnew/3.14.rst:2118 ../../whatsnew/3.14.rst:2309 msgid "uuid" msgstr "uuid" -#: ../../whatsnew/3.14.rst:2114 +#: ../../whatsnew/3.14.rst:2120 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`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2119 +#: ../../whatsnew/3.14.rst:2125 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:2123 +#: ../../whatsnew/3.14.rst:2129 msgid "" "Allow generating multiple UUIDs simultaneously on the command-line via :" "option:`python -m uuid --count `. (Contributed by Simon Legner " "in :gh:`131236`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2129 +#: ../../whatsnew/3.14.rst:2135 msgid "webbrowser" msgstr "" -#: ../../whatsnew/3.14.rst:2131 +#: ../../whatsnew/3.14.rst:2137 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:2135 +#: ../../whatsnew/3.14.rst:2141 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:2140 +#: ../../whatsnew/3.14.rst:2146 msgid "zipfile" msgstr "" -#: ../../whatsnew/3.14.rst:2142 +#: ../../whatsnew/3.14.rst:2148 msgid "" "Added :meth:`ZipInfo._for_archive `, a method " "to resolve suitable defaults for a :class:`~zipfile.ZipInfo` object as used " @@ -3180,18 +3189,18 @@ msgid "" "Bénédikt Tran in :gh:`123424`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2147 +#: ../../whatsnew/3.14.rst:2153 msgid "" ":meth:`.ZipFile.writestr` now respects the :envvar:`SOURCE_DATE_EPOCH` " "environment variable in order to better support reproducible builds. " "(Contributed by Jiahao Li in :gh:`91279`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2156 +#: ../../whatsnew/3.14.rst:2162 msgid "Optimizations" msgstr "Optimierungen" -#: ../../whatsnew/3.14.rst:2158 +#: ../../whatsnew/3.14.rst:2164 msgid "" "The import time for several standard library modules has been improved, " "including :mod:`annotationlib`, :mod:`ast`, :mod:`asyncio`, :mod:`base64`, :" @@ -3202,13 +3211,13 @@ msgid "" "`zipfile`." msgstr "" -#: ../../whatsnew/3.14.rst:2165 +#: ../../whatsnew/3.14.rst:2171 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:2168 +#: ../../whatsnew/3.14.rst:2174 msgid "" "The interpreter now avoids some reference count modifications internally " "when it's safe to do so. This can lead to different values being returned " @@ -3216,7 +3225,7 @@ msgid "" "versions of Python. See :ref:`below ` for details." msgstr "" -#: ../../whatsnew/3.14.rst:2178 +#: ../../whatsnew/3.14.rst:2184 msgid "" "Standard benchmark results have improved by 10-20% following the " "implementation of a new per-thread doubly linked list for :class:`native " @@ -3226,7 +3235,7 @@ msgid "" "running in all threads. (Contributed by Kumar Aditya in :gh:`107803`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2187 +#: ../../whatsnew/3.14.rst:2193 msgid "" "The module now has first class support for :term:`free-threading builds " "`. This enables parallel execution of multiple event loops " @@ -3234,38 +3243,38 @@ msgid "" "(Contributed by Kumar Aditya in :gh:`128002`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2195 +#: ../../whatsnew/3.14.rst:2201 msgid "base64" msgstr "" -#: ../../whatsnew/3.14.rst:2197 +#: ../../whatsnew/3.14.rst:2203 msgid "" ":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:2203 +#: ../../whatsnew/3.14.rst:2209 msgid "bdb" msgstr "" -#: ../../whatsnew/3.14.rst:2205 +#: ../../whatsnew/3.14.rst:2211 msgid "" "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 "" -#: ../../whatsnew/3.14.rst:2214 +#: ../../whatsnew/3.14.rst:2220 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 "" -#: ../../whatsnew/3.14.rst:2219 ../../whatsnew/3.14.rst:3500 +#: ../../whatsnew/3.14.rst:2225 ../../whatsnew/3.14.rst:3506 msgid "gc" msgstr "" -#: ../../whatsnew/3.14.rst:2223 +#: ../../whatsnew/3.14.rst:2229 msgid "" "Python 3.14.0-3.14.4 shipped with a new incremental garbage collector. " "However, due to a number of `reports ` " "means that maximum pause times are reduced by an order of magnitude or more " "for larger heaps." msgstr "" -#: ../../whatsnew/3.14.rst:2236 +#: ../../whatsnew/3.14.rst:2242 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:2240 +#: ../../whatsnew/3.14.rst:2246 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 " @@ -3298,11 +3307,11 @@ msgid "" "zero." msgstr "" -#: ../../whatsnew/3.14.rst:2248 +#: ../../whatsnew/3.14.rst:2254 msgid ":meth:`~gc.set_threshold` now ignores any items after the second." msgstr "" -#: ../../whatsnew/3.14.rst:2250 +#: ../../whatsnew/3.14.rst:2256 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 " @@ -3310,28 +3319,28 @@ msgid "" "young generation and the aging and collecting spaces of the old generation." msgstr "" -#: ../../whatsnew/3.14.rst:2257 +#: ../../whatsnew/3.14.rst:2263 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:2267 +#: ../../whatsnew/3.14.rst:2273 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:2276 +#: ../../whatsnew/3.14.rst:2282 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:2284 +#: ../../whatsnew/3.14.rst:2290 msgid "" ":mod:`pdb` now supports two backends, based on either :func:`sys.settrace` " "or :mod:`sys.monitoring`. Using the :ref:`pdb CLI ` or :func:" @@ -3341,11 +3350,11 @@ msgid "" "Tian Gao in :gh:`124533`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2294 +#: ../../whatsnew/3.14.rst:2300 msgid "textwrap" msgstr "" -#: ../../whatsnew/3.14.rst:2296 +#: ../../whatsnew/3.14.rst:2302 msgid "" "Optimize the :func:`~textwrap.dedent` function, improving performance by an " "average of 2.4x, with larger improvements for bigger inputs, and fix a bug " @@ -3353,24 +3362,24 @@ msgid "" "other than space and tab." msgstr "" -#: ../../whatsnew/3.14.rst:2305 +#: ../../whatsnew/3.14.rst:2311 msgid "" ":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:2310 +#: ../../whatsnew/3.14.rst:2316 msgid "" ":func:`~uuid.uuid4` is now c. 30% faster. (Contributed by Bénédikt Tran in :" "gh:`128150`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2315 +#: ../../whatsnew/3.14.rst:2321 msgid "zlib" msgstr "" -#: ../../whatsnew/3.14.rst:2317 +#: ../../whatsnew/3.14.rst:2323 msgid "" "On Windows, `zlib-ng `__ is now used as " "the implementation of the :mod:`zlib` module in the default binaries. There " @@ -3379,29 +3388,29 @@ msgid "" "compression levels." msgstr "" -#: ../../whatsnew/3.14.rst:2324 +#: ../../whatsnew/3.14.rst:2330 msgid "" "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:2328 +#: ../../whatsnew/3.14.rst:2334 msgid "(Contributed by Steve Dower in :gh:`91349`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2332 +#: ../../whatsnew/3.14.rst:2338 msgid "Removed" msgstr "Entfernt" -#: ../../whatsnew/3.14.rst:2337 +#: ../../whatsnew/3.14.rst:2343 msgid "" "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:2342 +#: ../../whatsnew/3.14.rst:2348 msgid "" "Calling :meth:`~argparse.ArgumentParser.add_argument_group` on an argument " "group now raises a :exc:`ValueError`. Similarly, :meth:`~argparse." @@ -3413,34 +3422,34 @@ msgid "" "Savannah Ostrowski in :gh:`127186`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2356 +#: ../../whatsnew/3.14.rst:2362 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:2360 +#: ../../whatsnew/3.14.rst:2366 msgid ":class:`!Bytes`" msgstr "" -#: ../../whatsnew/3.14.rst:2361 +#: ../../whatsnew/3.14.rst:2367 msgid ":class:`!Ellipsis`" msgstr "" -#: ../../whatsnew/3.14.rst:2362 +#: ../../whatsnew/3.14.rst:2368 msgid ":class:`!NameConstant`" msgstr "" -#: ../../whatsnew/3.14.rst:2363 +#: ../../whatsnew/3.14.rst:2369 msgid ":class:`!Num`" msgstr "" -#: ../../whatsnew/3.14.rst:2364 +#: ../../whatsnew/3.14.rst:2370 msgid ":class:`!Str`" msgstr "" -#: ../../whatsnew/3.14.rst:2366 +#: ../../whatsnew/3.14.rst:2372 msgid "" "As a consequence of these removals, user-defined ``visit_Num``, " "``visit_Str``, ``visit_Bytes``, ``visit_NameConstant`` and " @@ -3449,106 +3458,106 @@ msgid "" "an AST. Define a ``visit_Constant`` method instead." msgstr "" -#: ../../whatsnew/3.14.rst:2372 +#: ../../whatsnew/3.14.rst:2378 msgid "(Contributed by Alex Waygood in :gh:`119562`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2374 +#: ../../whatsnew/3.14.rst:2380 msgid "" "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:2377 +#: ../../whatsnew/3.14.rst:2383 msgid ":attr:`!Constant.n`" msgstr "" -#: ../../whatsnew/3.14.rst:2378 +#: ../../whatsnew/3.14.rst:2384 msgid ":attr:`!Constant.s`" msgstr "" -#: ../../whatsnew/3.14.rst:2380 +#: ../../whatsnew/3.14.rst:2386 msgid "" "Use :attr:`!Constant.value` instead. (Contributed by Alex Waygood in :gh:" "`119562`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2387 +#: ../../whatsnew/3.14.rst:2393 msgid "" "Remove the following classes, methods, and functions, which have been " "deprecated since Python 3.12:" msgstr "" -#: ../../whatsnew/3.14.rst:2390 +#: ../../whatsnew/3.14.rst:2396 msgid ":class:`!AbstractChildWatcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2391 +#: ../../whatsnew/3.14.rst:2397 msgid ":class:`!FastChildWatcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2392 +#: ../../whatsnew/3.14.rst:2398 msgid ":class:`!MultiLoopChildWatcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2393 +#: ../../whatsnew/3.14.rst:2399 msgid ":class:`!PidfdChildWatcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2394 +#: ../../whatsnew/3.14.rst:2400 msgid ":class:`!SafeChildWatcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2395 +#: ../../whatsnew/3.14.rst:2401 msgid ":class:`!ThreadedChildWatcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2396 +#: ../../whatsnew/3.14.rst:2402 msgid ":meth:`!AbstractEventLoopPolicy.get_child_watcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2397 +#: ../../whatsnew/3.14.rst:2403 msgid ":meth:`!AbstractEventLoopPolicy.set_child_watcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2398 +#: ../../whatsnew/3.14.rst:2404 msgid ":func:`!get_child_watcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2399 +#: ../../whatsnew/3.14.rst:2405 msgid ":func:`!set_child_watcher`" msgstr "" -#: ../../whatsnew/3.14.rst:2401 +#: ../../whatsnew/3.14.rst:2407 msgid "(Contributed by Kumar Aditya in :gh:`120804`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2403 +#: ../../whatsnew/3.14.rst:2409 msgid "" ":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 "" -#: ../../whatsnew/3.14.rst:2407 +#: ../../whatsnew/3.14.rst:2413 msgid "(Contributed by Kumar Aditya in :gh:`126353`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2412 +#: ../../whatsnew/3.14.rst:2418 msgid "" "There's a few patterns that use :func:`asyncio.get_event_loop`, most of them " "can be replaced with :func:`asyncio.run`." msgstr "" -#: ../../whatsnew/3.14.rst:2415 +#: ../../whatsnew/3.14.rst:2421 msgid "If you're running an async function, simply use :func:`asyncio.run`." msgstr "" -#: ../../whatsnew/3.14.rst:2417 ../../whatsnew/3.14.rst:2444 -#: ../../whatsnew/3.14.rst:2472 +#: ../../whatsnew/3.14.rst:2423 ../../whatsnew/3.14.rst:2450 +#: ../../whatsnew/3.14.rst:2478 msgid "Before:" msgstr "" -#: ../../whatsnew/3.14.rst:2419 +#: ../../whatsnew/3.14.rst:2425 msgid "" "async def main():\n" " ...\n" @@ -3561,12 +3570,12 @@ msgid "" " loop.close()" msgstr "" -#: ../../whatsnew/3.14.rst:2431 ../../whatsnew/3.14.rst:2457 -#: ../../whatsnew/3.14.rst:2488 +#: ../../whatsnew/3.14.rst:2437 ../../whatsnew/3.14.rst:2463 +#: ../../whatsnew/3.14.rst:2494 msgid "After:" msgstr "" -#: ../../whatsnew/3.14.rst:2433 +#: ../../whatsnew/3.14.rst:2439 msgid "" "async def main():\n" " ...\n" @@ -3574,13 +3583,13 @@ msgid "" "asyncio.run(main())" msgstr "" -#: ../../whatsnew/3.14.rst:2440 +#: ../../whatsnew/3.14.rst:2446 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`." msgstr "" -#: ../../whatsnew/3.14.rst:2446 +#: ../../whatsnew/3.14.rst:2452 msgid "" "def start_server(loop): ...\n" "\n" @@ -3592,7 +3601,7 @@ msgid "" " loop.close()" msgstr "" -#: ../../whatsnew/3.14.rst:2459 +#: ../../whatsnew/3.14.rst:2465 msgid "" "def start_server(loop): ...\n" "\n" @@ -3603,13 +3612,13 @@ msgid "" "asyncio.run(main())" msgstr "" -#: ../../whatsnew/3.14.rst:2469 +#: ../../whatsnew/3.14.rst:2475 msgid "" "If you need to run something in an event loop, then run some blocking code " "around it, use :class:`asyncio.Runner`." msgstr "" -#: ../../whatsnew/3.14.rst:2474 +#: ../../whatsnew/3.14.rst:2480 msgid "" "async def operation_one(): ...\n" "def blocking_code(): ...\n" @@ -3624,7 +3633,7 @@ msgid "" " loop.close()" msgstr "" -#: ../../whatsnew/3.14.rst:2490 +#: ../../whatsnew/3.14.rst:2496 msgid "" "async def operation_one(): ...\n" "def blocking_code(): ...\n" @@ -3636,66 +3645,66 @@ msgid "" " runner.run(operation_two())" msgstr "" -#: ../../whatsnew/3.14.rst:2503 +#: ../../whatsnew/3.14.rst:2509 msgid "email" msgstr "" -#: ../../whatsnew/3.14.rst:2505 +#: ../../whatsnew/3.14.rst:2511 msgid "" "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 "" -#: ../../whatsnew/3.14.rst:2511 +#: ../../whatsnew/3.14.rst:2517 msgid "importlib.abc" msgstr "" -#: ../../whatsnew/3.14.rst:2513 +#: ../../whatsnew/3.14.rst:2519 msgid "Remove deprecated :mod:`importlib.abc` classes:" msgstr "" -#: ../../whatsnew/3.14.rst:2515 +#: ../../whatsnew/3.14.rst:2521 msgid "" ":class:`!ResourceReader` (use :class:`~importlib.resources.abc." "TraversableResources`)" msgstr "" -#: ../../whatsnew/3.14.rst:2517 +#: ../../whatsnew/3.14.rst:2523 msgid "" ":class:`!Traversable` (use :class:`~importlib.resources.abc.Traversable`)" msgstr "" -#: ../../whatsnew/3.14.rst:2519 +#: ../../whatsnew/3.14.rst:2525 msgid "" ":class:`!TraversableResources` (use :class:`~importlib.resources.abc." "TraversableResources`)" msgstr "" -#: ../../whatsnew/3.14.rst:2522 +#: ../../whatsnew/3.14.rst:2528 msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" msgstr "" "(Beigetragen von Jason R. Coombs und Hugo van Kemenade in :gh:`93963`.)" -#: ../../whatsnew/3.14.rst:2526 +#: ../../whatsnew/3.14.rst:2532 msgid "itertools" msgstr "itertools" -#: ../../whatsnew/3.14.rst:2528 +#: ../../whatsnew/3.14.rst:2534 msgid "" "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 "" -#: ../../whatsnew/3.14.rst:2537 +#: ../../whatsnew/3.14.rst:2543 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 "" -#: ../../whatsnew/3.14.rst:2542 +#: ../../whatsnew/3.14.rst:2548 msgid "" "Remove support for passing additional positional arguments to :meth:`." "PurePath.relative_to` and :meth:`~pathlib.PurePath.is_relative_to`. In " @@ -3703,33 +3712,33 @@ msgid "" "by Barney Gale in :gh:`78707`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2549 +#: ../../whatsnew/3.14.rst:2555 msgid "pkgutil" msgstr "" -#: ../../whatsnew/3.14.rst:2551 +#: ../../whatsnew/3.14.rst:2557 msgid "" "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 "" -#: ../../whatsnew/3.14.rst:2557 +#: ../../whatsnew/3.14.rst:2563 msgid "pty" msgstr "" -#: ../../whatsnew/3.14.rst:2559 +#: ../../whatsnew/3.14.rst:2565 msgid "" "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 "" -#: ../../whatsnew/3.14.rst:2566 +#: ../../whatsnew/3.14.rst:2572 msgid "sqlite3" msgstr "sqlite3" -#: ../../whatsnew/3.14.rst:2568 +#: ../../whatsnew/3.14.rst:2574 msgid "" "Remove :data:`!version` and :data:`!version_info` from the :mod:`sqlite3` " "module; use :data:`~sqlite3.sqlite_version` and :data:`~sqlite3." @@ -3737,27 +3746,27 @@ msgid "" "library. (Contributed by Hugo van Kemenade in :gh:`118924`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2574 +#: ../../whatsnew/3.14.rst:2580 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 "" -#: ../../whatsnew/3.14.rst:2583 +#: ../../whatsnew/3.14.rst:2589 msgid "" "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 "" -#: ../../whatsnew/3.14.rst:2587 +#: ../../whatsnew/3.14.rst:2593 msgid "" "Remove the :class:`!URLopener` and :class:`!FancyURLopener` classes from :" "mod:`urllib.request`, which have been deprecated since Python 3.3." msgstr "" -#: ../../whatsnew/3.14.rst:2591 +#: ../../whatsnew/3.14.rst:2597 msgid "" "``myopener.open()`` can be replaced with :func:`~urllib.request.urlopen`. " "``myopener.retrieve()`` can be replaced with :func:`~urllib.request." @@ -3766,15 +3775,15 @@ msgid "" "(Contributed by Barney Gale in :gh:`84850`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2600 +#: ../../whatsnew/3.14.rst:2606 msgid "Deprecated" msgstr "Als veraltet markiert" -#: ../../whatsnew/3.14.rst:2603 +#: ../../whatsnew/3.14.rst:2609 msgid "New deprecations" msgstr "" -#: ../../whatsnew/3.14.rst:2605 +#: ../../whatsnew/3.14.rst:2611 msgid "" "Passing a complex number as the *real* or *imag* argument in the :func:" "`complex` constructor is now deprecated; complex numbers should only be " @@ -3782,84 +3791,84 @@ msgid "" "gh:`109218`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2610 +#: ../../whatsnew/3.14.rst:2616 #: ../../deprecations/pending-removal-in-future.rst:7 msgid ":mod:`argparse`:" msgstr "" -#: ../../whatsnew/3.14.rst:2612 +#: ../../whatsnew/3.14.rst:2618 msgid "" "Passing the undocumented keyword argument *prefix_chars* to the :meth:" "`~argparse.ArgumentParser.add_argument_group` method is now deprecated. " "(Contributed by Savannah Ostrowski in :gh:`125563`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2616 +#: ../../whatsnew/3.14.rst:2622 msgid "" "Deprecated the :class:`argparse.FileType` type converter. Anything relating " "to resource management should be handled downstream, after the arguments " "have been parsed. (Contributed by Serhiy Storchaka in :gh:`58032`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2621 +#: ../../whatsnew/3.14.rst:2627 #: ../../deprecations/pending-removal-in-3.16.rst:19 msgid ":mod:`asyncio`:" msgstr "" -#: ../../whatsnew/3.14.rst:2623 +#: ../../whatsnew/3.14.rst:2629 msgid "" "The :func:`!asyncio.iscoroutinefunction` is now 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 "" -#: ../../whatsnew/3.14.rst:2628 +#: ../../whatsnew/3.14.rst:2634 msgid "" "The :mod:`asyncio` policy system is deprecated and will be removed in Python " "3.16. In particular, the following classes and functions are deprecated:" msgstr "" -#: ../../whatsnew/3.14.rst:2632 +#: ../../whatsnew/3.14.rst:2638 #: ../../deprecations/pending-removal-in-3.16.rst:29 msgid ":class:`asyncio.AbstractEventLoopPolicy`" msgstr "" -#: ../../whatsnew/3.14.rst:2633 +#: ../../whatsnew/3.14.rst:2639 #: ../../deprecations/pending-removal-in-3.16.rst:30 msgid ":class:`asyncio.DefaultEventLoopPolicy`" msgstr "" -#: ../../whatsnew/3.14.rst:2634 +#: ../../whatsnew/3.14.rst:2640 #: ../../deprecations/pending-removal-in-3.16.rst:31 msgid ":class:`asyncio.WindowsSelectorEventLoopPolicy`" msgstr "" -#: ../../whatsnew/3.14.rst:2635 +#: ../../whatsnew/3.14.rst:2641 #: ../../deprecations/pending-removal-in-3.16.rst:32 msgid ":class:`asyncio.WindowsProactorEventLoopPolicy`" msgstr "" -#: ../../whatsnew/3.14.rst:2636 +#: ../../whatsnew/3.14.rst:2642 #: ../../deprecations/pending-removal-in-3.16.rst:33 msgid ":func:`asyncio.get_event_loop_policy`" msgstr "" -#: ../../whatsnew/3.14.rst:2637 +#: ../../whatsnew/3.14.rst:2643 #: ../../deprecations/pending-removal-in-3.16.rst:34 msgid ":func:`asyncio.set_event_loop_policy`" msgstr "" -#: ../../whatsnew/3.14.rst:2639 +#: ../../whatsnew/3.14.rst:2645 msgid "" "Users should use :func:`asyncio.run` or :class:`asyncio.Runner` with the " "*loop_factory* argument to use the desired event loop implementation." msgstr "" -#: ../../whatsnew/3.14.rst:2642 +#: ../../whatsnew/3.14.rst:2648 msgid "For example, to use :class:`asyncio.SelectorEventLoop` on Windows:" msgstr "" -#: ../../whatsnew/3.14.rst:2644 +#: ../../whatsnew/3.14.rst:2650 #: ../../deprecations/pending-removal-in-3.16.rst:41 msgid "" "import asyncio\n" @@ -3870,25 +3879,25 @@ msgid "" "asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)" msgstr "" -#: ../../whatsnew/3.14.rst:2653 +#: ../../whatsnew/3.14.rst:2659 #: ../../deprecations/pending-removal-in-3.16.rst:48 msgid "(Contributed by Kumar Aditya in :gh:`127949`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2655 +#: ../../whatsnew/3.14.rst:2661 msgid "" ":mod:`codecs`: The :func:`codecs.open` function is now deprecated, and will " "be removed in a future version of Python. Use :func:`open` instead. " "(Contributed by Inada Naoki in :gh:`133036`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2661 +#: ../../whatsnew/3.14.rst:2667 #: ../../deprecations/pending-removal-in-3.15.rst:16 #: ../../deprecations/pending-removal-in-3.19.rst:4 msgid ":mod:`ctypes`:" msgstr "" -#: ../../whatsnew/3.14.rst:2663 +#: ../../whatsnew/3.14.rst:2669 msgid "" "On non-Windows platforms, setting :attr:`.Structure._pack_` to use a MSVC-" "compatible default memory layout is now deprecated in favor of setting :attr:" @@ -3896,7 +3905,7 @@ msgid "" "(Contributed by Petr Viktorin in :gh:`131747`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2668 +#: ../../whatsnew/3.14.rst:2674 msgid "" "Calling :func:`ctypes.POINTER` on a string is now deprecated. Use :ref:" "`incomplete types ` for self-referential " @@ -3905,7 +3914,7 @@ msgid "" "by Sergey Myrianov in :gh:`100926`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2675 +#: ../../whatsnew/3.14.rst:2681 msgid "" ":mod:`functools`: Calling the Python implementation of :func:`functools." "reduce` with *function* or *sequence* as keyword arguments is now " @@ -3913,7 +3922,7 @@ msgid "" "(Contributed by Kirill Podoprigora in :gh:`121676`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2681 +#: ../../whatsnew/3.14.rst:2687 msgid "" ":mod:`logging`: Support for custom logging handlers with the *strm* argument " "is now deprecated and scheduled for removal in Python 3.16. Define handlers " @@ -3921,7 +3930,7 @@ msgid "" "`115032`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2687 +#: ../../whatsnew/3.14.rst:2693 msgid "" ":mod:`mimetypes`: Valid extensions are either empty or must start with '.' " "for :meth:`mimetypes.MimeTypes.add_type`. Undotted extensions are deprecated " @@ -3929,14 +3938,14 @@ msgid "" "Kemenade in :gh:`75223`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2694 +#: ../../whatsnew/3.14.rst:2700 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`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2699 +#: ../../whatsnew/3.14.rst:2705 msgid "" ":mod:`os`: The :func:`os.popen` and :func:`os.spawn* ` functions " "are now :term:`soft deprecated`. They should no longer be used to write new " @@ -3944,14 +3953,14 @@ msgid "" "Victor Stinner in :gh:`120743`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2706 +#: ../../whatsnew/3.14.rst:2712 msgid "" ":mod:`pathlib`: :meth:`!pathlib.PurePath.as_uri` is now deprecated and " "scheduled for removal in Python 3.19. Use :meth:`pathlib.Path.as_uri` " "instead. (Contributed by Barney Gale in :gh:`123599`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2712 +#: ../../whatsnew/3.14.rst:2718 msgid "" ":mod:`pdb`: The undocumented ``pdb.Pdb.curframe_locals`` attribute is now a " "deprecated read-only property, which will be removed in a future version of " @@ -3962,14 +3971,14 @@ msgid "" "(Contributed by Tian Gao in :gh:`124369` and :gh:`125951`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2721 +#: ../../whatsnew/3.14.rst:2727 msgid "" ":mod:`symtable`: Deprecate :meth:`symtable.Class.get_methods` due to the " "lack of interest, scheduled for removal in Python 3.16. (Contributed by " "Bénédikt Tran in :gh:`119698`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2726 +#: ../../whatsnew/3.14.rst:2732 msgid "" ":mod:`tkinter`: The :class:`!tkinter.Variable` methods :meth:`!" "trace_variable`, :meth:`!trace_vdelete` and :meth:`!trace_vinfo` are now " @@ -3977,7 +3986,7 @@ msgid "" "trace_info` instead. (Contributed by Serhiy Storchaka in :gh:`120220`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2732 +#: ../../whatsnew/3.14.rst:2738 msgid "" ":mod:`urllib.parse`: Accepting objects with false values (like ``0`` and " "``[]``) except empty strings, bytes-like objects and ``None`` in :func:" @@ -4730,18 +4739,18 @@ msgid "" "_clear_internal_caches` instead." msgstr "" -#: ../../whatsnew/3.14.rst:2754 +#: ../../whatsnew/3.14.rst:2760 msgid "CPython bytecode changes" msgstr "CPython Bytecode Änderungen" -#: ../../whatsnew/3.14.rst:2756 +#: ../../whatsnew/3.14.rst:2762 msgid "" "Replaced the opcode :opcode:`!BINARY_SUBSCR` by the :opcode:`BINARY_OP` " "opcode with the ``NB_SUBSCR`` oparg. (Contributed by Irit Katriel in :gh:" "`100239`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2760 +#: ../../whatsnew/3.14.rst:2766 msgid "" "Add the :opcode:`BUILD_INTERPOLATION` and :opcode:`BUILD_TEMPLATE` opcodes " "to construct new :class:`~string.templatelib.Interpolation` and :class:" @@ -4750,20 +4759,20 @@ msgid "" "Template strings `)." msgstr "" -#: ../../whatsnew/3.14.rst:2766 +#: ../../whatsnew/3.14.rst:2772 msgid "" "Remove the :opcode:`!BUILD_CONST_KEY_MAP` opcode. Use :opcode:`BUILD_MAP` " "instead. (Contributed by Mark Shannon in :gh:`122160`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2770 +#: ../../whatsnew/3.14.rst:2776 msgid "" "Replace the :opcode:`!LOAD_ASSERTION_ERROR` opcode with :opcode:" "`LOAD_COMMON_CONSTANT` and add support for loading :exc:" "`NotImplementedError`." msgstr "" -#: ../../whatsnew/3.14.rst:2774 +#: ../../whatsnew/3.14.rst:2780 msgid "" "Add the :opcode:`LOAD_FAST_BORROW` and :opcode:" "`LOAD_FAST_BORROW_LOAD_FAST_BORROW` opcodes to reduce reference counting " @@ -4772,14 +4781,14 @@ msgid "" "gh:`130704`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2779 +#: ../../whatsnew/3.14.rst:2785 msgid "" "Add the :opcode:`LOAD_SMALL_INT` opcode, which pushes a small integer equal " "to the ``oparg`` to the stack. The :opcode:`!RETURN_CONST` opcode is removed " "as it is no longer used. (Contributed by Mark Shannon in :gh:`125837`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2784 +#: ../../whatsnew/3.14.rst:2790 msgid "" "Add the new :opcode:`LOAD_SPECIAL` instruction. Generate code for :keyword:" "`with` and :keyword:`async with` statements using the new instruction. " @@ -4787,17 +4796,17 @@ msgid "" "instructions. (Contributed by Mark Shannon in :gh:`120507`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2790 +#: ../../whatsnew/3.14.rst:2796 msgid "" "Add the :opcode:`POP_ITER` opcode to support 'virtual' iterators. " "(Contributed by Mark Shannon in :gh:`132554`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2795 +#: ../../whatsnew/3.14.rst:2801 msgid "Pseudo-instructions" msgstr "" -#: ../../whatsnew/3.14.rst:2797 +#: ../../whatsnew/3.14.rst:2803 msgid "" "Add the :opcode:`!ANNOTATIONS_PLACEHOLDER` pseudo instruction to support " "partially executed module-level annotations with :ref:`deferred evaluation " @@ -4805,14 +4814,14 @@ msgid "" "Zijlstra in :gh:`130907`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2802 +#: ../../whatsnew/3.14.rst:2808 msgid "" "Add the :opcode:`!BINARY_OP_EXTEND` pseudo instruction, which executes a " "pair of functions (guard and specialization functions) accessed from the " "inline cache. (Contributed by Irit Katriel in :gh:`100239`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2807 +#: ../../whatsnew/3.14.rst:2813 msgid "" "Add three specializations for :opcode:`CALL_KW`; :opcode:`!CALL_KW_PY` for " "calls to Python functions, :opcode:`!CALL_KW_BOUND_METHOD` for calls to " @@ -4820,7 +4829,7 @@ msgid "" "(Contributed by Mark Shannon in :gh:`118093`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2813 +#: ../../whatsnew/3.14.rst:2819 msgid "" "Add the :opcode:`JUMP_IF_TRUE` and :opcode:`JUMP_IF_FALSE` pseudo " "instructions, conditional jumps which do not impact the stack. Replaced by " @@ -4828,55 +4837,55 @@ msgid "" "(Contributed by Irit Katriel in :gh:`124285`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2818 +#: ../../whatsnew/3.14.rst:2824 msgid "" "Add the :opcode:`!LOAD_CONST_MORTAL` pseudo instruction. (Contributed by " "Mark Shannon in :gh:`128685`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2821 +#: ../../whatsnew/3.14.rst:2827 msgid "" "Add the :opcode:`LOAD_CONST_IMMORTAL` pseudo instruction, which does the " "same as :opcode:`!LOAD_CONST`, but is more efficient for immortal objects. " "(Contributed by Mark Shannon in :gh:`125837`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2826 +#: ../../whatsnew/3.14.rst:2832 msgid "" "Add the :opcode:`NOT_TAKEN` pseudo instruction, used by :mod:`sys." "monitoring` to record branch events (such as :monitoring-event:" "`BRANCH_LEFT`). (Contributed by Mark Shannon in :gh:`122548`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2832 +#: ../../whatsnew/3.14.rst:2838 msgid "C API changes" msgstr "" -#: ../../whatsnew/3.14.rst:2837 +#: ../../whatsnew/3.14.rst:2843 msgid "Python configuration C API" msgstr "" -#: ../../whatsnew/3.14.rst:2839 +#: ../../whatsnew/3.14.rst:2845 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:2843 +#: ../../whatsnew/3.14.rst:2849 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 "" -#: ../../whatsnew/3.14.rst:2847 +#: ../../whatsnew/3.14.rst:2853 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:2850 +#: ../../whatsnew/3.14.rst:2856 msgid "" ":pep:`587` 'Python Initialization Configuration' unified all the ways to " "configure Python's initialization. This PEP also unifies the configuration " @@ -4885,7 +4894,7 @@ msgid "" "two 'Python' and 'Isolated' choices (PEP 587), to further simplify the API." msgstr "" -#: ../../whatsnew/3.14.rst:2857 +#: ../../whatsnew/3.14.rst:2863 msgid "" "The lower level PEP 587 PyConfig API remains available for use cases with an " "intentionally higher level of coupling to CPython implementation details " @@ -4893,20 +4902,20 @@ msgid "" "configuration mechanisms)." msgstr "" -#: ../../whatsnew/3.14.rst:2862 ../../whatsnew/3.14.rst:2889 -#: ../../whatsnew/3.14.rst:2909 +#: ../../whatsnew/3.14.rst:2868 ../../whatsnew/3.14.rst:2895 +#: ../../whatsnew/3.14.rst:2915 msgid "(Contributed by Victor Stinner in :gh:`107954`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2864 +#: ../../whatsnew/3.14.rst:2870 msgid ":pep:`741` and :pep:`587`" msgstr "" -#: ../../whatsnew/3.14.rst:2868 +#: ../../whatsnew/3.14.rst:2874 msgid "New features in the C API" msgstr "" -#: ../../whatsnew/3.14.rst:2870 +#: ../../whatsnew/3.14.rst:2876 msgid "" "Add :c:func:`Py_PACK_VERSION` and :c:func:`Py_PACK_FULL_VERSION`, two new " "macros for bit-packing Python version numbers. This is useful for " @@ -4914,99 +4923,99 @@ msgid "" "(Contributed by Petr Viktorin in :gh:`128629`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2876 +#: ../../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`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2880 +#: ../../whatsnew/3.14.rst:2886 msgid "" "Add functions to manipulate the configuration of the current runtime Python " "interpreter (:ref:`PEP 741: Python configuration C API `):" msgstr "" -#: ../../whatsnew/3.14.rst:2884 +#: ../../whatsnew/3.14.rst:2890 msgid ":c:func:`PyConfig_Get`" msgstr "" -#: ../../whatsnew/3.14.rst:2885 +#: ../../whatsnew/3.14.rst:2891 msgid ":c:func:`PyConfig_GetInt`" msgstr "" -#: ../../whatsnew/3.14.rst:2886 +#: ../../whatsnew/3.14.rst:2892 msgid ":c:func:`PyConfig_Set`" msgstr "" -#: ../../whatsnew/3.14.rst:2887 +#: ../../whatsnew/3.14.rst:2893 msgid ":c:func:`PyConfig_Names`" msgstr "" -#: ../../whatsnew/3.14.rst:2891 +#: ../../whatsnew/3.14.rst:2897 msgid "" "Add functions to configure Python initialization (:ref:`PEP 741: Python " "configuration C API `):" msgstr "" -#: ../../whatsnew/3.14.rst:2894 +#: ../../whatsnew/3.14.rst:2900 msgid ":c:func:`Py_InitializeFromInitConfig`" msgstr "" -#: ../../whatsnew/3.14.rst:2895 +#: ../../whatsnew/3.14.rst:2901 msgid ":c:func:`PyInitConfig_AddModule`" msgstr "" -#: ../../whatsnew/3.14.rst:2896 +#: ../../whatsnew/3.14.rst:2902 msgid ":c:func:`PyInitConfig_Create`" msgstr "" -#: ../../whatsnew/3.14.rst:2897 +#: ../../whatsnew/3.14.rst:2903 msgid ":c:func:`PyInitConfig_Free`" msgstr "" -#: ../../whatsnew/3.14.rst:2898 +#: ../../whatsnew/3.14.rst:2904 msgid ":c:func:`PyInitConfig_FreeStrList`" msgstr "" -#: ../../whatsnew/3.14.rst:2899 +#: ../../whatsnew/3.14.rst:2905 msgid ":c:func:`PyInitConfig_GetError`" msgstr "" -#: ../../whatsnew/3.14.rst:2900 +#: ../../whatsnew/3.14.rst:2906 msgid ":c:func:`PyInitConfig_GetExitCode`" msgstr "" -#: ../../whatsnew/3.14.rst:2901 +#: ../../whatsnew/3.14.rst:2907 msgid ":c:func:`PyInitConfig_GetInt`" msgstr "" -#: ../../whatsnew/3.14.rst:2902 +#: ../../whatsnew/3.14.rst:2908 msgid ":c:func:`PyInitConfig_GetStr`" msgstr "" -#: ../../whatsnew/3.14.rst:2903 +#: ../../whatsnew/3.14.rst:2909 msgid ":c:func:`PyInitConfig_GetStrList`" msgstr "" -#: ../../whatsnew/3.14.rst:2904 +#: ../../whatsnew/3.14.rst:2910 msgid ":c:func:`PyInitConfig_HasOption`" msgstr "" -#: ../../whatsnew/3.14.rst:2905 +#: ../../whatsnew/3.14.rst:2911 msgid ":c:func:`PyInitConfig_SetInt`" msgstr "" -#: ../../whatsnew/3.14.rst:2906 +#: ../../whatsnew/3.14.rst:2912 msgid ":c:func:`PyInitConfig_SetStr`" msgstr "" -#: ../../whatsnew/3.14.rst:2907 +#: ../../whatsnew/3.14.rst:2913 msgid ":c:func:`PyInitConfig_SetStrList`" msgstr "" -#: ../../whatsnew/3.14.rst:2911 +#: ../../whatsnew/3.14.rst:2917 msgid "" "Add :c:func:`Py_fopen` function to open a file. This works similarly to the " "standard C :c:func:`!fopen` function, instead accepting a Python object for " @@ -5015,13 +5024,13 @@ msgid "" "(Contributed by Victor Stinner in :gh:`127350`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2919 +#: ../../whatsnew/3.14.rst:2925 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:2922 +#: ../../whatsnew/3.14.rst:2928 msgid "" "Add :c:func:`PyImport_ImportModuleAttr` and :c:func:" "`PyImport_ImportModuleAttrString` helper functions to import a module and " @@ -5029,20 +5038,20 @@ msgid "" "`128911`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2927 +#: ../../whatsnew/3.14.rst:2933 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`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2931 +#: ../../whatsnew/3.14.rst:2937 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:2934 +#: ../../whatsnew/3.14.rst:2940 msgid "" "Add :c:func:`PyLong_IsPositive`, :c:func:`PyLong_IsNegative` and :c:func:" "`PyLong_IsZero` for checking if :c:type:`PyLongObject` is positive, " @@ -5050,82 +5059,82 @@ msgid "" "Kirpichev in :gh:`126061`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2939 +#: ../../whatsnew/3.14.rst:2945 msgid "" "Add new functions to convert C ```` numbers to/from Python :class:" "`int` objects:" msgstr "" -#: ../../whatsnew/3.14.rst:2942 +#: ../../whatsnew/3.14.rst:2948 msgid ":c:func:`PyLong_AsInt32`" msgstr "" -#: ../../whatsnew/3.14.rst:2943 +#: ../../whatsnew/3.14.rst:2949 msgid ":c:func:`PyLong_AsInt64`" msgstr "" -#: ../../whatsnew/3.14.rst:2944 +#: ../../whatsnew/3.14.rst:2950 msgid ":c:func:`PyLong_AsUInt32`" msgstr "" -#: ../../whatsnew/3.14.rst:2945 +#: ../../whatsnew/3.14.rst:2951 msgid ":c:func:`PyLong_AsUInt64`" msgstr "" -#: ../../whatsnew/3.14.rst:2946 +#: ../../whatsnew/3.14.rst:2952 msgid ":c:func:`PyLong_FromInt32`" msgstr "" -#: ../../whatsnew/3.14.rst:2947 +#: ../../whatsnew/3.14.rst:2953 msgid ":c:func:`PyLong_FromInt64`" msgstr "" -#: ../../whatsnew/3.14.rst:2948 +#: ../../whatsnew/3.14.rst:2954 msgid ":c:func:`PyLong_FromUInt32`" msgstr "" -#: ../../whatsnew/3.14.rst:2949 +#: ../../whatsnew/3.14.rst:2955 msgid ":c:func:`PyLong_FromUInt64`" msgstr "" -#: ../../whatsnew/3.14.rst:2951 +#: ../../whatsnew/3.14.rst:2957 msgid "(Contributed by Victor Stinner in :gh:`120389`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2953 +#: ../../whatsnew/3.14.rst:2959 msgid "" "Add a new import and export API for Python :class:`int` objects (:pep:`757`):" msgstr "" -#: ../../whatsnew/3.14.rst:2956 +#: ../../whatsnew/3.14.rst:2962 msgid ":c:func:`PyLong_GetNativeLayout`" msgstr "" -#: ../../whatsnew/3.14.rst:2957 +#: ../../whatsnew/3.14.rst:2963 msgid ":c:func:`PyLong_Export`" msgstr "" -#: ../../whatsnew/3.14.rst:2958 +#: ../../whatsnew/3.14.rst:2964 msgid ":c:func:`PyLong_FreeExport`" msgstr "" -#: ../../whatsnew/3.14.rst:2959 +#: ../../whatsnew/3.14.rst:2965 msgid ":c:func:`PyLongWriter_Create`" msgstr "" -#: ../../whatsnew/3.14.rst:2960 +#: ../../whatsnew/3.14.rst:2966 msgid ":c:func:`PyLongWriter_Finish`" msgstr "" -#: ../../whatsnew/3.14.rst:2961 +#: ../../whatsnew/3.14.rst:2967 msgid ":c:func:`PyLongWriter_Discard`" msgstr "" -#: ../../whatsnew/3.14.rst:2963 +#: ../../whatsnew/3.14.rst:2969 msgid "(Contributed by Sergey B Kirpichev and Victor Stinner in :gh:`102471`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2965 +#: ../../whatsnew/3.14.rst:2971 msgid "" "Add :c:func:`PyMonitoring_FireBranchLeftEvent` and :c:func:" "`PyMonitoring_FireBranchRightEvent` for generating :monitoring-event:" @@ -5133,13 +5142,13 @@ msgid "" "(Contributed by Mark Shannon in :gh:`122548`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2971 +#: ../../whatsnew/3.14.rst:2977 msgid "" "Add :c:func:`PyType_Freeze` function to make a type immutable. (Contributed " "by Victor Stinner in :gh:`121654`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2974 +#: ../../whatsnew/3.14.rst:2980 msgid "" "Add :c:func:`PyType_GetBaseByToken` and :c:data:`Py_tp_token` slot for " "easier superclass identification, which attempts to resolve the type " @@ -5147,110 +5156,110 @@ msgid "" "in :gh:`124153`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2979 +#: ../../whatsnew/3.14.rst:2985 msgid "" "Add a new :c:func:`PyUnicode_Equal` function to test if two strings are " "equal. The function is also added to the Limited C API. (Contributed by " "Victor Stinner in :gh:`124502`.)" msgstr "" -#: ../../whatsnew/3.14.rst:2984 +#: ../../whatsnew/3.14.rst:2990 msgid "" "Add a new :c:type:`PyUnicodeWriter` API to create a Python :class:`str` " "object, with the following functions:" msgstr "" -#: ../../whatsnew/3.14.rst:2987 +#: ../../whatsnew/3.14.rst:2993 msgid ":c:func:`PyUnicodeWriter_Create`" msgstr "" -#: ../../whatsnew/3.14.rst:2988 +#: ../../whatsnew/3.14.rst:2994 msgid ":c:func:`PyUnicodeWriter_DecodeUTF8Stateful`" msgstr "" -#: ../../whatsnew/3.14.rst:2989 +#: ../../whatsnew/3.14.rst:2995 msgid ":c:func:`PyUnicodeWriter_Discard`" msgstr "" -#: ../../whatsnew/3.14.rst:2990 +#: ../../whatsnew/3.14.rst:2996 msgid ":c:func:`PyUnicodeWriter_Finish`" msgstr "" -#: ../../whatsnew/3.14.rst:2991 +#: ../../whatsnew/3.14.rst:2997 msgid ":c:func:`PyUnicodeWriter_Format`" msgstr "" -#: ../../whatsnew/3.14.rst:2992 +#: ../../whatsnew/3.14.rst:2998 msgid ":c:func:`PyUnicodeWriter_WriteASCII`" msgstr "" -#: ../../whatsnew/3.14.rst:2993 +#: ../../whatsnew/3.14.rst:2999 msgid ":c:func:`PyUnicodeWriter_WriteChar`" msgstr "" -#: ../../whatsnew/3.14.rst:2994 +#: ../../whatsnew/3.14.rst:3000 msgid ":c:func:`PyUnicodeWriter_WriteRepr`" msgstr "" -#: ../../whatsnew/3.14.rst:2995 +#: ../../whatsnew/3.14.rst:3001 msgid ":c:func:`PyUnicodeWriter_WriteStr`" msgstr "" -#: ../../whatsnew/3.14.rst:2996 +#: ../../whatsnew/3.14.rst:3002 msgid ":c:func:`PyUnicodeWriter_WriteSubstring`" msgstr "" -#: ../../whatsnew/3.14.rst:2997 +#: ../../whatsnew/3.14.rst:3003 msgid ":c:func:`PyUnicodeWriter_WriteUCS4`" msgstr "" -#: ../../whatsnew/3.14.rst:2998 +#: ../../whatsnew/3.14.rst:3004 msgid ":c:func:`PyUnicodeWriter_WriteUTF8`" msgstr "" -#: ../../whatsnew/3.14.rst:2999 +#: ../../whatsnew/3.14.rst:3005 msgid ":c:func:`PyUnicodeWriter_WriteWideChar`" msgstr "" -#: ../../whatsnew/3.14.rst:3001 +#: ../../whatsnew/3.14.rst:3007 msgid "(Contributed by Victor Stinner in :gh:`119182`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3003 +#: ../../whatsnew/3.14.rst:3009 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:3008 +#: ../../whatsnew/3.14.rst:3014 msgid "" "Add support for a new ``p`` format unit in :c:func:`Py_BuildValue` that " "produces a Python :class:`bool` object from a C integer. (Contributed by " "Pablo Galindo in :issue:`45325`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3012 +#: ../../whatsnew/3.14.rst:3018 msgid "" "Add :c:func:`PyUnstable_IsImmortal` for determining if an object is :term:" "`immortal`, for debugging purposes. (Contributed by Peter Bierma in :gh:" "`128509`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3016 +#: ../../whatsnew/3.14.rst:3022 msgid "" "Add :c:func:`PyUnstable_Object_EnableDeferredRefcount` for enabling deferred " "reference counting, as outlined in :pep:`703`." msgstr "" -#: ../../whatsnew/3.14.rst:3019 +#: ../../whatsnew/3.14.rst:3025 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:3024 +#: ../../whatsnew/3.14.rst:3030 msgid "" "Add :c:func:`PyUnstable_Object_IsUniqueReferencedTemporary` to determine if " "an object is a unique temporary object on the interpreter's operand stack. " @@ -5259,11 +5268,11 @@ msgid "" "functions. (Contributed by Sam Gross in :gh:`133164`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3034 +#: ../../whatsnew/3.14.rst:3040 msgid "Limited C API changes" msgstr "" -#: ../../whatsnew/3.14.rst:3036 +#: ../../whatsnew/3.14.rst:3042 msgid "" "In the limited C API version 3.14 and newer, :c:func:`Py_TYPE` and :c:func:" "`Py_REFCNT` are now implemented as an opaque function call to hide " @@ -5271,7 +5280,7 @@ msgid "" "gh:`124127`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3041 +#: ../../whatsnew/3.14.rst:3047 msgid "" "Remove the :c:macro:`PySequence_Fast_GET_SIZE`, :c:macro:" "`PySequence_Fast_GET_ITEM`, and :c:macro:`PySequence_Fast_ITEMS` macros from " @@ -5279,32 +5288,32 @@ msgid "" "(Contributed by Victor Stinner in :gh:`91417`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3052 +#: ../../whatsnew/3.14.rst:3058 msgid "Removed C APIs" msgstr "" -#: ../../whatsnew/3.14.rst:3054 +#: ../../whatsnew/3.14.rst:3060 msgid "" "Creating :c:data:`immutable types ` with mutable " "bases was deprecated in Python 3.12, and now raises a :exc:`TypeError`. " "(Contributed by Nikita Sobolev in :gh:`119775`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3059 +#: ../../whatsnew/3.14.rst:3065 msgid "" "Remove ``PyDictObject.ma_version_tag`` member, which was deprecated in " "Python 3.12. Use the :c:func:`PyDict_AddWatcher` API instead. (Contributed " "by Sam Gross in :gh:`124296`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3064 +#: ../../whatsnew/3.14.rst:3070 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`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3068 +#: ../../whatsnew/3.14.rst:3074 msgid "" "Remove the undocumented APIs :c:macro:`!Py_C_RECURSION_LIMIT` and :c:member:" "`!PyThreadState.c_recursion_remaining`. These were added in 3.13 and have " @@ -5313,18 +5322,18 @@ msgid "" "`133079`, see also :gh:`130396`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3079 +#: ../../whatsnew/3.14.rst:3085 msgid "Deprecated C APIs" msgstr "" -#: ../../whatsnew/3.14.rst:3081 +#: ../../whatsnew/3.14.rst:3087 msgid "" "The :c:macro:`!Py_HUGE_VAL` macro is now :term:`soft deprecated`. Use :c:" "macro:`!Py_INFINITY` instead. (Contributed by Sergey B Kirpichev in :gh:" "`120026`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3085 +#: ../../whatsnew/3.14.rst:3091 msgid "" "The :c:macro:`!Py_IS_NAN`, :c:macro:`!Py_IS_INFINITY`, and :c:macro:`!" "Py_IS_FINITE` macros are now :term:`soft deprecated`. Use :c:macro:`!" @@ -5332,7 +5341,7 @@ msgid "" "file:`math.h` since C99. (Contributed by Sergey B Kirpichev in :gh:`119613`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3091 +#: ../../whatsnew/3.14.rst:3097 msgid "" "Non-tuple sequences are now deprecated as argument for the ``(items)`` " "format unit in :c:func:`PyArg_ParseTuple` and other :ref:`argument parsing " @@ -5341,14 +5350,14 @@ msgid "" "(Contributed by Serhiy Storchaka in :gh:`50333`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3098 +#: ../../whatsnew/3.14.rst:3104 msgid "" "The ``_PyMonitoring_FireBranchEvent`` function is now deprecated and should " "be replaced with calls to :c:func:`PyMonitoring_FireBranchLeftEvent` and :c:" "func:`PyMonitoring_FireBranchRightEvent`." msgstr "" -#: ../../whatsnew/3.14.rst:3103 +#: ../../whatsnew/3.14.rst:3109 msgid "" "The previously undocumented function :c:func:`PySequence_In` is now :term:" "`soft deprecated`. Use :c:func:`PySequence_Contains` instead. (Contributed " @@ -5840,11 +5849,11 @@ msgstr "" msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." msgstr "" -#: ../../whatsnew/3.14.rst:3122 +#: ../../whatsnew/3.14.rst:3128 msgid "Build changes" msgstr "" -#: ../../whatsnew/3.14.rst:3124 +#: ../../whatsnew/3.14.rst:3130 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 " @@ -5854,31 +5863,31 @@ msgid "" "Chatham in :gh:`127146`, :gh:`127683`, and :gh:`136931`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3134 +#: ../../whatsnew/3.14.rst:3140 msgid "Official Android binary releases are now provided on python.org__." msgstr "" -#: ../../whatsnew/3.14.rst:3138 +#: ../../whatsnew/3.14.rst:3144 msgid "" "GNU Autoconf 2.72 is now required to generate :file:`configure`. " "(Contributed by Erlend Aasland in :gh:`115765`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3141 +#: ../../whatsnew/3.14.rst:3147 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 "" -#: ../../whatsnew/3.14.rst:3144 +#: ../../whatsnew/3.14.rst:3150 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 "" -#: ../../whatsnew/3.14.rst:3148 +#: ../../whatsnew/3.14.rst:3154 msgid "" "CPython now enables a set of recommended compiler options by default for " "improved security. Use the :option:`--disable-safety` :file:`configure` " @@ -5886,45 +5895,45 @@ msgid "" "larger set of compiler options, albeit with a performance cost." msgstr "" -#: ../../whatsnew/3.14.rst:3154 +#: ../../whatsnew/3.14.rst:3160 msgid "" "The ``WITH_FREELISTS`` macro and ``--without-freelists`` :file:`configure` " "option have been removed." msgstr "" -#: ../../whatsnew/3.14.rst:3157 +#: ../../whatsnew/3.14.rst:3163 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-interpreter` for further details." msgstr "" -#: ../../whatsnew/3.14.rst:3161 +#: ../../whatsnew/3.14.rst:3167 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 "" -#: ../../whatsnew/3.14.rst:3165 +#: ../../whatsnew/3.14.rst:3171 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:3169 +#: ../../whatsnew/3.14.rst:3175 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:3178 +#: ../../whatsnew/3.14.rst:3184 msgid ":file:`build-details.json`" msgstr "" -#: ../../whatsnew/3.14.rst:3180 +#: ../../whatsnew/3.14.rst:3186 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 " @@ -5932,7 +5941,7 @@ msgid "" "cases such as Python launchers, cross-compilation, and so on." msgstr "" -#: ../../whatsnew/3.14.rst:3186 +#: ../../whatsnew/3.14.rst:3192 msgid "" ":file:`build-details.json` must be installed in the platform-independent " "standard library directory. This corresponds to the :ref:`'stdlib' " @@ -5940,17 +5949,17 @@ msgid "" "by running ``sysconfig.get_path('stdlib')``." msgstr "" -#: ../../whatsnew/3.14.rst:3192 +#: ../../whatsnew/3.14.rst:3198 msgid "" ":pep:`739` -- ``build-details.json`` 1.0 -- a static description file for " "Python build details" msgstr "" -#: ../../whatsnew/3.14.rst:3199 +#: ../../whatsnew/3.14.rst:3205 msgid "Discontinuation of PGP signatures" msgstr "" -#: ../../whatsnew/3.14.rst:3201 +#: ../../whatsnew/3.14.rst:3207 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 " @@ -5958,15 +5967,15 @@ msgid "" "sigstore/>`__. Releases have been signed using Sigstore_ since Python 3.11." msgstr "" -#: ../../whatsnew/3.14.rst:3207 +#: ../../whatsnew/3.14.rst:3213 msgid "This change in release process was specified in :pep:`761`." msgstr "" -#: ../../whatsnew/3.14.rst:3215 +#: ../../whatsnew/3.14.rst:3221 msgid "Free-threaded Python is officially supported" msgstr "" -#: ../../whatsnew/3.14.rst:3217 +#: ../../whatsnew/3.14.rst:3223 msgid "" "The free-threaded build of Python is now supported and no longer " "experimental. This is the start of `phase II `__, with free-threading as the default or sole build of Python is " @@ -5997,19 +6006,19 @@ msgid "" "and the community. This decision is for the future." msgstr "" -#: ../../whatsnew/3.14.rst:3237 +#: ../../whatsnew/3.14.rst:3243 msgid ":pep:`779`" msgstr "" -#: ../../whatsnew/3.14.rst:3239 +#: ../../whatsnew/3.14.rst:3245 msgid "`PEP 779's acceptance `__" msgstr "" -#: ../../whatsnew/3.14.rst:3245 +#: ../../whatsnew/3.14.rst:3251 msgid "Binary releases for the experimental just-in-time compiler" msgstr "" -#: ../../whatsnew/3.14.rst:3247 +#: ../../whatsnew/3.14.rst:3253 msgid "" "The official macOS and Windows release binaries now include an " "*experimental* just-in-time (JIT) compiler. Although it is **not** " @@ -6019,7 +6028,7 @@ msgid "" "off` configuration option for similar behavior." msgstr "" -#: ../../whatsnew/3.14.rst:3254 +#: ../../whatsnew/3.14.rst:3260 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% " @@ -6031,7 +6040,7 @@ msgid "" "current process." msgstr "" -#: ../../whatsnew/3.14.rst:3262 +#: ../../whatsnew/3.14.rst:3268 msgid "" "Currently, the most significant missing functionality is that native " "debuggers and profilers like ``gdb`` and ``perf`` are unable to unwind " @@ -6040,76 +6049,76 @@ msgid "" "not support JIT compilation." msgstr "" -#: ../../whatsnew/3.14.rst:3267 +#: ../../whatsnew/3.14.rst:3273 msgid "" "Please report any bugs or major performance regressions that you encounter!" msgstr "" -#: ../../whatsnew/3.14.rst:3269 +#: ../../whatsnew/3.14.rst:3275 msgid ":pep:`744`" msgstr "" -#: ../../whatsnew/3.14.rst:3273 +#: ../../whatsnew/3.14.rst:3279 msgid "Porting to Python 3.14" msgstr "" -#: ../../whatsnew/3.14.rst:3275 +#: ../../whatsnew/3.14.rst:3281 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: ../../whatsnew/3.14.rst:3280 +#: ../../whatsnew/3.14.rst:3286 msgid "Changes in the Python API" msgstr "Änderungen in der Python API" -#: ../../whatsnew/3.14.rst:3282 +#: ../../whatsnew/3.14.rst:3288 msgid "" "On Unix platforms other than macOS, *forkserver* is now the default :ref:" "`start method ` for :mod:`multiprocessing` " "and :class:`~concurrent.futures.ProcessPoolExecutor`, instead of *fork*." msgstr "" -#: ../../whatsnew/3.14.rst:3286 +#: ../../whatsnew/3.14.rst:3292 msgid "" "See :ref:`(1) ` and :ref:`(2) " "` for details." msgstr "" -#: ../../whatsnew/3.14.rst:3289 +#: ../../whatsnew/3.14.rst:3295 msgid "" "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:3293 +#: ../../whatsnew/3.14.rst:3299 msgid "" "This change does not affect Windows or macOS, where :ref:`'spawn' " "` remains the default start method." msgstr "" -#: ../../whatsnew/3.14.rst:3296 +#: ../../whatsnew/3.14.rst:3302 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 "" -#: ../../whatsnew/3.14.rst:3300 +#: ../../whatsnew/3.14.rst:3306 msgid "" "The :ref:`garbage collector is now incremental `, which means that the behavior of :func:`gc.collect` changes slightly:" msgstr "" -#: ../../whatsnew/3.14.rst:3307 +#: ../../whatsnew/3.14.rst:3313 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 "" -#: ../../whatsnew/3.14.rst:3312 +#: ../../whatsnew/3.14.rst:3318 msgid "" ":func:`pickle.dump` and :func:`pickle.dumps` now raise :exc:`~pickle." "PicklingError` for some failures that previously raised :exc:" @@ -6121,14 +6130,14 @@ msgid "" "PicklingError`. (Contributed by Serhiy Storchaka in :gh:`122311`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3322 +#: ../../whatsnew/3.14.rst:3328 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 "" -#: ../../whatsnew/3.14.rst:3327 +#: ../../whatsnew/3.14.rst:3333 msgid "" "The runtime behavior of annotations has changed in various ways; see :ref:" "`above ` for details. While most code that " @@ -6136,29 +6145,29 @@ msgid "" "details may behave differently." msgstr "" -#: ../../whatsnew/3.14.rst:3332 +#: ../../whatsnew/3.14.rst:3338 msgid "" "As part of making the :mod:`mimetypes` CLI public, it now exits with ``1`` " "on failure instead of ``0`` and ``2`` on incorrect command-line parameters " "instead of ``1``. Error messages are now printed to stderr." msgstr "" -#: ../../whatsnew/3.14.rst:3337 +#: ../../whatsnew/3.14.rst:3343 msgid "" "The ``\\B`` pattern in regular expression now matches the empty string when " "given as the entire pattern, which may cause behavioural changes." msgstr "" -#: ../../whatsnew/3.14.rst:3340 +#: ../../whatsnew/3.14.rst:3346 msgid "" "On FreeBSD, :data:`sys.platform` no longer contains the major version number." msgstr "" -#: ../../whatsnew/3.14.rst:3346 +#: ../../whatsnew/3.14.rst:3352 msgid "Changes in annotations (:pep:`649` and :pep:`749`)" msgstr "" -#: ../../whatsnew/3.14.rst:3348 +#: ../../whatsnew/3.14.rst:3354 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 " @@ -6166,24 +6175,24 @@ msgid "" "deferred-annotations>`." msgstr "" -#: ../../whatsnew/3.14.rst:3353 +#: ../../whatsnew/3.14.rst:3359 msgid "" "In the majority of cases, working code from older versions of Python will " "not require any changes." msgstr "" -#: ../../whatsnew/3.14.rst:3358 +#: ../../whatsnew/3.14.rst:3364 msgid "Implications for annotated code" msgstr "" -#: ../../whatsnew/3.14.rst:3360 +#: ../../whatsnew/3.14.rst:3366 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:3364 +#: ../../whatsnew/3.14.rst:3370 msgid "" "You will likely be able to remove quoted strings in annotations, which are " "frequently used for forward references. Similarly, if you use ``from " @@ -6194,11 +6203,11 @@ msgid "" "annotations before they work as expected." msgstr "" -#: ../../whatsnew/3.14.rst:3374 +#: ../../whatsnew/3.14.rst:3380 msgid "Implications for readers of ``__annotations__``" msgstr "" -#: ../../whatsnew/3.14.rst:3376 +#: ../../whatsnew/3.14.rst:3382 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 " @@ -6207,7 +6216,7 @@ msgid "" "FORWARDREF` format, as the :mod:`dataclasses` module now does." msgstr "" -#: ../../whatsnew/3.14.rst:3383 +#: ../../whatsnew/3.14.rst:3389 msgid "" "The external :pypi:`typing_extensions` package provides partial backports of " "some of the functionality of the :mod:`annotationlib` module, such as the :" @@ -6216,11 +6225,11 @@ msgid "" "that takes advantage of the new behavior in Python 3.14." msgstr "" -#: ../../whatsnew/3.14.rst:3392 +#: ../../whatsnew/3.14.rst:3398 msgid "Related changes" msgstr "" -#: ../../whatsnew/3.14.rst:3394 +#: ../../whatsnew/3.14.rst:3400 msgid "" "The changes in Python 3.14 are designed to rework how :attr:`!" "__annotations__` works at runtime while minimizing breakage to code that " @@ -6232,7 +6241,7 @@ msgid "" "the :mod:`annotationlib` module." msgstr "" -#: ../../whatsnew/3.14.rst:3403 +#: ../../whatsnew/3.14.rst:3409 msgid "" "In particular, do not read annotations directly from the namespace " "dictionary attribute of type objects. Use :func:`annotationlib." @@ -6240,25 +6249,25 @@ msgid "" "`annotationlib.get_annotations` afterwards." msgstr "" -#: ../../whatsnew/3.14.rst:3408 +#: ../../whatsnew/3.14.rst:3414 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:3414 +#: ../../whatsnew/3.14.rst:3420 msgid "``from __future__ import annotations``" msgstr "" -#: ../../whatsnew/3.14.rst:3416 +#: ../../whatsnew/3.14.rst:3422 msgid "" "In Python 3.7, :pep:`563` introduced the ``from __future__ import " "annotations`` :ref:`future statement `, which turns all annotations " "into strings." msgstr "" -#: ../../whatsnew/3.14.rst:3419 +#: ../../whatsnew/3.14.rst:3425 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 " @@ -6266,17 +6275,17 @@ msgid "" "Python without support for deferred evaluation of annotations." msgstr "" -#: ../../whatsnew/3.14.rst:3425 +#: ../../whatsnew/3.14.rst:3431 msgid "" "In Python 3.14, the behavior of code using ``from __future__ import " "annotations`` is unchanged." msgstr "" -#: ../../whatsnew/3.14.rst:3430 +#: ../../whatsnew/3.14.rst:3436 msgid "Changes in the C API" msgstr "" -#: ../../whatsnew/3.14.rst:3432 +#: ../../whatsnew/3.14.rst:3438 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 " @@ -6289,14 +6298,14 @@ msgid "" "`113601`.)" msgstr "" -#: ../../whatsnew/3.14.rst:3442 +#: ../../whatsnew/3.14.rst:3448 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:3449 +#: ../../whatsnew/3.14.rst:3455 msgid "" "The interpreter internally avoids some reference count modifications when " "loading objects onto the operands stack by :term:`borrowing ` method gained support for Unix sockets. " "(Contributed by Quentin Dawans in :issue:`31245`.)" msgstr "" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 06b45e3..ee4f91a 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-05 16:53+0200\n" +"POT-Creation-Date: 2026-09-15 09:12+0000\n" "PO-Revision-Date: 2025-09-16 00:02+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -33,19 +33,19 @@ msgstr "" msgid "*Release date: XXXX-XX-XX*" msgstr "" -#: ../NEWS:8 ../NEWS:396 ../NEWS:1317 ../NEWS:1615 ../NEWS:1673 ../NEWS:1929 -#: ../NEWS:2471 ../NEWS:2904 ../NEWS:3008 ../NEWS:3804 ../NEWS:3836 -#: ../NEWS:4050 ../NEWS:4202 ../NEWS:4412 ../NEWS:4690 ../NEWS:4982 -#: ../NEWS:5797 ../NEWS:6183 ../NEWS:6746 ../NEWS:7645 ../NEWS:8107 -#: ../NEWS:8847 ../NEWS:11127 ../NEWS:12277 ../NEWS:12733 ../NEWS:13289 -#: ../NEWS:14808 ../NEWS:17287 ../NEWS:18505 ../NEWS:18826 ../NEWS:19520 -#: ../NEWS:19862 ../NEWS:20304 ../NEWS:22577 ../NEWS:26279 ../NEWS:28236 -#: ../NEWS:28952 ../NEWS:29383 ../NEWS:29629 ../NEWS:30271 ../NEWS:30862 -#: ../NEWS:31218 ../NEWS:32472 ../NEWS:32825 ../NEWS:33277 ../NEWS:33783 -#: ../NEWS:34484 ../NEWS:34869 ../NEWS:36822 ../NEWS:37580 ../NEWS:38124 -#: ../NEWS:38655 ../NEWS:42185 ../NEWS:42403 ../NEWS:44131 ../NEWS:46584 -#: ../NEWS:47351 ../NEWS:47815 ../NEWS:47842 ../NEWS:49886 ../NEWS:50097 -#: ../NEWS:50388 ../NEWS:51684 ../NEWS:51743 ../NEWS:52160 ../NEWS:52863 +#: ../NEWS:8 ../NEWS:518 ../NEWS:1439 ../NEWS:1737 ../NEWS:1795 ../NEWS:2051 +#: ../NEWS:2593 ../NEWS:3026 ../NEWS:3130 ../NEWS:3926 ../NEWS:3958 +#: ../NEWS:4172 ../NEWS:4324 ../NEWS:4534 ../NEWS:4812 ../NEWS:5104 +#: ../NEWS:5919 ../NEWS:6305 ../NEWS:6868 ../NEWS:7767 ../NEWS:8229 +#: ../NEWS:8969 ../NEWS:11249 ../NEWS:12399 ../NEWS:12855 ../NEWS:13411 +#: ../NEWS:14930 ../NEWS:17409 ../NEWS:18627 ../NEWS:18948 ../NEWS:19642 +#: ../NEWS:19984 ../NEWS:20426 ../NEWS:22699 ../NEWS:26401 ../NEWS:28358 +#: ../NEWS:29074 ../NEWS:29505 ../NEWS:29751 ../NEWS:30393 ../NEWS:30984 +#: ../NEWS:31340 ../NEWS:32594 ../NEWS:32947 ../NEWS:33399 ../NEWS:33905 +#: ../NEWS:34606 ../NEWS:34991 ../NEWS:36944 ../NEWS:37702 ../NEWS:38246 +#: ../NEWS:38777 ../NEWS:42307 ../NEWS:42525 ../NEWS:44253 ../NEWS:46706 +#: ../NEWS:47473 ../NEWS:47937 ../NEWS:47964 ../NEWS:50008 ../NEWS:50219 +#: ../NEWS:50510 ../NEWS:51806 ../NEWS:51865 ../NEWS:52282 ../NEWS:52985 msgid "Security" msgstr "" @@ -87,83 +87,125 @@ msgid "" "without a scheme continue to match any scheme." msgstr "" -#: ../NEWS:35 ../NEWS:444 ../NEWS:1359 ../NEWS:1622 ../NEWS:1713 ../NEWS:1953 -#: ../NEWS:2757 ../NEWS:2945 ../NEWS:3483 ../NEWS:3495 ../NEWS:3533 -#: ../NEWS:3546 ../NEWS:3582 ../NEWS:3655 ../NEWS:3685 ../NEWS:3900 -#: ../NEWS:3995 ../NEWS:4103 ../NEWS:4114 ../NEWS:4143 ../NEWS:4344 -#: ../NEWS:4530 ../NEWS:4548 ../NEWS:4572 ../NEWS:4587 ../NEWS:4865 -#: ../NEWS:5408 ../NEWS:5449 ../NEWS:5511 ../NEWS:5995 ../NEWS:6079 -#: ../NEWS:6461 ../NEWS:6569 ../NEWS:6629 ../NEWS:7037 ../NEWS:7073 -#: ../NEWS:7174 ../NEWS:7464 ../NEWS:7489 ../NEWS:7521 ../NEWS:7880 -#: ../NEWS:7926 ../NEWS:8507 ../NEWS:8527 ../NEWS:8544 ../NEWS:10124 -#: ../NEWS:10148 ../NEWS:10243 ../NEWS:10416 ../NEWS:10488 ../NEWS:10551 -#: ../NEWS:10569 ../NEWS:10736 ../NEWS:11137 ../NEWS:11165 ../NEWS:11779 -#: ../NEWS:11890 ../NEWS:12294 ../NEWS:12336 ../NEWS:12349 ../NEWS:12741 -#: ../NEWS:13298 ../NEWS:14172 ../NEWS:14833 ../NEWS:17311 ../NEWS:17441 -#: ../NEWS:18208 ../NEWS:18249 ../NEWS:18285 ../NEWS:18526 ../NEWS:18835 -#: ../NEWS:19084 ../NEWS:19133 ../NEWS:19198 ../NEWS:19534 ../NEWS:19572 -#: ../NEWS:19882 ../NEWS:20015 ../NEWS:20342 ../NEWS:20378 ../NEWS:20454 -#: ../NEWS:20499 ../NEWS:20692 ../NEWS:20710 ../NEWS:20727 ../NEWS:20852 -#: ../NEWS:20975 ../NEWS:20990 ../NEWS:22584 ../NEWS:22729 ../NEWS:22774 -#: ../NEWS:23344 ../NEWS:23420 ../NEWS:23445 ../NEWS:23957 ../NEWS:24040 -#: ../NEWS:24092 ../NEWS:24117 ../NEWS:24416 ../NEWS:24507 ../NEWS:24534 -#: ../NEWS:24813 ../NEWS:24863 ../NEWS:24887 ../NEWS:24952 ../NEWS:25265 -#: ../NEWS:25323 ../NEWS:25753 ../NEWS:26306 ../NEWS:26340 ../NEWS:26352 -#: ../NEWS:26411 ../NEWS:26431 ../NEWS:26463 ../NEWS:26593 ../NEWS:26644 -#: ../NEWS:26664 ../NEWS:26763 ../NEWS:28292 ../NEWS:28329 ../NEWS:28420 -#: ../NEWS:28974 ../NEWS:28995 ../NEWS:29390 ../NEWS:29435 ../NEWS:29460 -#: ../NEWS:29635 ../NEWS:29688 ../NEWS:29898 ../NEWS:29940 ../NEWS:29973 -#: ../NEWS:30278 ../NEWS:30330 ../NEWS:30375 ../NEWS:30386 ../NEWS:30873 -#: ../NEWS:30952 ../NEWS:31239 ../NEWS:31261 ../NEWS:31289 ../NEWS:31308 -#: ../NEWS:31321 ../NEWS:31337 ../NEWS:31351 ../NEWS:31363 ../NEWS:31381 -#: ../NEWS:31422 ../NEWS:31441 ../NEWS:31490 ../NEWS:31520 ../NEWS:31634 -#: ../NEWS:31654 ../NEWS:32478 ../NEWS:32840 ../NEWS:33284 ../NEWS:33794 -#: ../NEWS:34135 ../NEWS:34502 ../NEWS:34918 ../NEWS:36837 ../NEWS:37598 -#: ../NEWS:38136 ../NEWS:38442 ../NEWS:38703 ../NEWS:41683 ../NEWS:41795 -#: ../NEWS:42008 ../NEWS:42199 ../NEWS:42409 ../NEWS:42653 ../NEWS:42972 -#: ../NEWS:43276 ../NEWS:43876 ../NEWS:44165 ../NEWS:46257 ../NEWS:46594 -#: ../NEWS:46911 ../NEWS:47360 ../NEWS:47849 ../NEWS:48191 ../NEWS:48215 -#: ../NEWS:48539 ../NEWS:48569 ../NEWS:48633 ../NEWS:48747 ../NEWS:48871 -#: ../NEWS:49139 ../NEWS:49648 ../NEWS:49895 ../NEWS:50109 ../NEWS:50401 -#: ../NEWS:51707 ../NEWS:51768 ../NEWS:52169 ../NEWS:52842 ../NEWS:52885 -#: ../NEWS:53593 ../NEWS:53611 ../NEWS:54134 ../NEWS:54169 ../NEWS:54197 -#: ../NEWS:54289 ../NEWS:54376 ../NEWS:54481 ../NEWS:54524 ../NEWS:54800 -#: ../NEWS:55035 ../NEWS:55221 ../NEWS:55360 +#: ../NEWS:35 ../NEWS:566 ../NEWS:1481 ../NEWS:1744 ../NEWS:1835 ../NEWS:2075 +#: ../NEWS:2879 ../NEWS:3067 ../NEWS:3605 ../NEWS:3617 ../NEWS:3655 +#: ../NEWS:3668 ../NEWS:3704 ../NEWS:3777 ../NEWS:3807 ../NEWS:4022 +#: ../NEWS:4117 ../NEWS:4225 ../NEWS:4236 ../NEWS:4265 ../NEWS:4466 +#: ../NEWS:4652 ../NEWS:4670 ../NEWS:4694 ../NEWS:4709 ../NEWS:4987 +#: ../NEWS:5530 ../NEWS:5571 ../NEWS:5633 ../NEWS:6117 ../NEWS:6201 +#: ../NEWS:6583 ../NEWS:6691 ../NEWS:6751 ../NEWS:7159 ../NEWS:7195 +#: ../NEWS:7296 ../NEWS:7586 ../NEWS:7611 ../NEWS:7643 ../NEWS:8002 +#: ../NEWS:8048 ../NEWS:8629 ../NEWS:8649 ../NEWS:8666 ../NEWS:10246 +#: ../NEWS:10270 ../NEWS:10365 ../NEWS:10538 ../NEWS:10610 ../NEWS:10673 +#: ../NEWS:10691 ../NEWS:10858 ../NEWS:11259 ../NEWS:11287 ../NEWS:11901 +#: ../NEWS:12012 ../NEWS:12416 ../NEWS:12458 ../NEWS:12471 ../NEWS:12863 +#: ../NEWS:13420 ../NEWS:14294 ../NEWS:14955 ../NEWS:17433 ../NEWS:17563 +#: ../NEWS:18330 ../NEWS:18371 ../NEWS:18407 ../NEWS:18648 ../NEWS:18957 +#: ../NEWS:19206 ../NEWS:19255 ../NEWS:19320 ../NEWS:19656 ../NEWS:19694 +#: ../NEWS:20004 ../NEWS:20137 ../NEWS:20464 ../NEWS:20500 ../NEWS:20576 +#: ../NEWS:20621 ../NEWS:20814 ../NEWS:20832 ../NEWS:20849 ../NEWS:20974 +#: ../NEWS:21097 ../NEWS:21112 ../NEWS:22706 ../NEWS:22851 ../NEWS:22896 +#: ../NEWS:23466 ../NEWS:23542 ../NEWS:23567 ../NEWS:24079 ../NEWS:24162 +#: ../NEWS:24214 ../NEWS:24239 ../NEWS:24538 ../NEWS:24629 ../NEWS:24656 +#: ../NEWS:24935 ../NEWS:24985 ../NEWS:25009 ../NEWS:25074 ../NEWS:25387 +#: ../NEWS:25445 ../NEWS:25875 ../NEWS:26428 ../NEWS:26462 ../NEWS:26474 +#: ../NEWS:26533 ../NEWS:26553 ../NEWS:26585 ../NEWS:26715 ../NEWS:26766 +#: ../NEWS:26786 ../NEWS:26885 ../NEWS:28414 ../NEWS:28451 ../NEWS:28542 +#: ../NEWS:29096 ../NEWS:29117 ../NEWS:29512 ../NEWS:29557 ../NEWS:29582 +#: ../NEWS:29757 ../NEWS:29810 ../NEWS:30020 ../NEWS:30062 ../NEWS:30095 +#: ../NEWS:30400 ../NEWS:30452 ../NEWS:30497 ../NEWS:30508 ../NEWS:30995 +#: ../NEWS:31074 ../NEWS:31361 ../NEWS:31383 ../NEWS:31411 ../NEWS:31430 +#: ../NEWS:31443 ../NEWS:31459 ../NEWS:31473 ../NEWS:31485 ../NEWS:31503 +#: ../NEWS:31544 ../NEWS:31563 ../NEWS:31612 ../NEWS:31642 ../NEWS:31756 +#: ../NEWS:31776 ../NEWS:32600 ../NEWS:32962 ../NEWS:33406 ../NEWS:33916 +#: ../NEWS:34257 ../NEWS:34624 ../NEWS:35040 ../NEWS:36959 ../NEWS:37720 +#: ../NEWS:38258 ../NEWS:38564 ../NEWS:38825 ../NEWS:41805 ../NEWS:41917 +#: ../NEWS:42130 ../NEWS:42321 ../NEWS:42531 ../NEWS:42775 ../NEWS:43094 +#: ../NEWS:43398 ../NEWS:43998 ../NEWS:44287 ../NEWS:46379 ../NEWS:46716 +#: ../NEWS:47033 ../NEWS:47482 ../NEWS:47971 ../NEWS:48313 ../NEWS:48337 +#: ../NEWS:48661 ../NEWS:48691 ../NEWS:48755 ../NEWS:48869 ../NEWS:48993 +#: ../NEWS:49261 ../NEWS:49770 ../NEWS:50017 ../NEWS:50231 ../NEWS:50523 +#: ../NEWS:51829 ../NEWS:51890 ../NEWS:52291 ../NEWS:52964 ../NEWS:53007 +#: ../NEWS:53715 ../NEWS:53733 ../NEWS:54256 ../NEWS:54291 ../NEWS:54319 +#: ../NEWS:54411 ../NEWS:54498 ../NEWS:54603 ../NEWS:54646 ../NEWS:54922 +#: ../NEWS:55157 ../NEWS:55343 ../NEWS:55482 msgid "Core and Builtins" msgstr "" #: ../NEWS:37 msgid "" +":gh:`157378`: Fix ``SyntaxError.offset`` and ``SyntaxError.end_offset`` for " +"the \"Non-UTF-8 code starting with ...\" error when a non-ASCII character " +"precedes the invalid byte on the same line. Patch by Shamil Abdulaev." +msgstr "" + +#: ../NEWS:41 +msgid "" +":gh:`156762`: Fix undefined behaviour in :class:`operator.methodcaller`: " +"its :c:member:`~PyTypeObject.tp_clear` slot function returned ``void`` " +"instead of ``int``, so the garbage collector called it through an " +"incompatible function type. Patched by Shamil Abdulaev." +msgstr "" + +#: ../NEWS:46 +msgid "" +":gh:`157377`: Fix :func:`gc.get_count` on the free-threaded build resetting " +"the thread-local allocation counter that schedules automatic garbage " +"collection. A thread that called it while allocating could prevent cyclic " +"garbage from ever being collected." +msgstr "" + +#: ../NEWS:51 +msgid "" +":gh:`156091`: Fix a crash when compiling deeply nested inlined list, set, or " +"dict comprehensions. A :exc:`SyntaxError` is now raised when the nesting " +"exceeds the compiler's static block limit." +msgstr "" + +#: ../NEWS:55 +msgid "" ":gh:`156894`: Fix the position of syntax errors which cover a range if the " "line contains non-ASCII characters before the error." msgstr "" -#: ../NEWS:40 +#: ../NEWS:58 msgid "" ":gh:`156689`: Fix an out-of-bounds read in :func:`compile` and :func:`ast." "parse` when an AST object is passed with ``mode='func_type'``." msgstr "" -#: ../NEWS:43 +#: ../NEWS:61 msgid "" ":gh:`156371`: Fix missing ``PyRefTracer_DESTROY`` events for trashcan " "deferred objects. Patch by Donghee Na." msgstr "" -#: ../NEWS:46 +#: ../NEWS:64 msgid "" ":gh:`156126`: Fix a crash when importing a module whose name contains " "characters that cannot be encoded to UTF-8 (such as lone surrogates) while :" "option:`-X importtime <-X>` is enabled." msgstr "" -#: ../NEWS:50 +#: ../NEWS:68 +msgid "" +":gh:`155752`: Fix a crash when a :class:`types.GenericAlias` argument gains " +"a ``__typing_subst__`` hook after the alias parameters have been cached." +msgstr "" + +#: ../NEWS:71 +msgid "" +":gh:`155504`: Fix a crash when thread state creation fails before the thread " +"state is fully initialized." +msgstr "" + +#: ../NEWS:74 msgid "" ":gh:`129752`: Don't update adaptive counters in the free-threaded build when " "thread-local bytecode is disabled (``-X tlbc=0``). Patch by Donghee Na." msgstr "" -#: ../NEWS:53 +#: ../NEWS:77 msgid "" ":gh:`155515`: Track the internal HAMT iterators, which back iteration over " "a :class:`contextvars.Context`, with the garbage collector. A reference " @@ -171,20 +213,39 @@ msgid "" "whole context it iterated over." msgstr "" -#: ../NEWS:58 +#: ../NEWS:82 +msgid "" +":gh:`154937`: Fix a data race on thread handle identifiers when ``_thread." +"_shutdown()`` runs concurrently with the startup of non-daemon threads in " +"the :term:`free-threaded build`." +msgstr "" + +#: ../NEWS:86 msgid "" ":gh:`154902`: Fix a crash when ``__conditional_annotations__`` is rebound to " "a non-set object." msgstr "" -#: ../NEWS:61 +#: ../NEWS:89 +msgid "" +":gh:`154719`: Trailing whitespace in a t-string interpolation expression is " +"now preserved in :attr:`string.templatelib.Interpolation.expression`, up to " +"the closing ``}`` or the conversion (``!``), format (``:``), or debug " +"(``=``) delimiter. Explicit line continuations following a debug ``=`` " +"remain part of the debug text and are excluded from :attr:`~string." +"templatelib.Interpolation.expression`. Escaped quotes are now preserved " +"while reconstructing t-string interpolation metadata and f-string debug text " +"containing comments." +msgstr "" + +#: ../NEWS:98 msgid "" ":gh:`153578`: Fix an out-of-bounds write in :meth:`bytearray.extend` when " "the bytearray is resized while the argument's :meth:`~object.__buffer__` is " "being acquired, for example by another thread. Patch by tonghuaroot." msgstr "" -#: ../NEWS:65 +#: ../NEWS:102 msgid "" ":gh:`148817`: Fold large constant list and set literals used as the iterable " "of a :keyword:`for` loop or ``in``/``not in`` test into a constant :class:" @@ -192,13 +253,13 @@ msgid "" "the AST optimizer that was lost when constant folding moved to the CFG." msgstr "" -#: ../NEWS:71 +#: ../NEWS:108 msgid "" ":gh:`146096`: Fixed segmentation fault when called repr for " "BaseExceptionGroup with empty or 1-size tuple args." msgstr "" -#: ../NEWS:74 +#: ../NEWS:111 msgid "" ":gh:`85260`: :func:`compile` now raises :exc:`ValueError` instead of " "crashing on a debug build if an identifier field of an AST node (such as the " @@ -206,72 +267,139 @@ msgid "" "``\"None\"``, ``\"True\"`` or ``\"False\"``." msgstr "" -#: ../NEWS:80 ../NEWS:580 ../NEWS:1428 ../NEWS:1630 ../NEWS:1776 ../NEWS:2115 -#: ../NEWS:2494 ../NEWS:2917 ../NEWS:2951 ../NEWS:3041 ../NEWS:3489 -#: ../NEWS:3527 ../NEWS:3540 ../NEWS:3574 ../NEWS:3649 ../NEWS:3675 -#: ../NEWS:3813 ../NEWS:3846 ../NEWS:3958 ../NEWS:4060 ../NEWS:4109 -#: ../NEWS:4137 ../NEWS:4239 ../NEWS:4427 ../NEWS:4541 ../NEWS:4566 -#: ../NEWS:4581 ../NEWS:4700 ../NEWS:4992 ../NEWS:5443 ../NEWS:5505 -#: ../NEWS:5653 ../NEWS:5812 ../NEWS:6073 ../NEWS:6191 ../NEWS:6564 -#: ../NEWS:6622 ../NEWS:6774 ../NEWS:7067 ../NEWS:7167 ../NEWS:7181 -#: ../NEWS:7287 ../NEWS:7482 ../NEWS:7514 ../NEWS:7653 ../NEWS:7915 -#: ../NEWS:8112 ../NEWS:8520 ../NEWS:8537 ../NEWS:8640 ../NEWS:8898 -#: ../NEWS:10142 ../NEWS:10237 ../NEWS:10410 ../NEWS:10481 ../NEWS:10544 -#: ../NEWS:10562 ../NEWS:10730 ../NEWS:11158 ../NEWS:11336 ../NEWS:11881 -#: ../NEWS:11896 ../NEWS:12329 ../NEWS:12342 ../NEWS:12365 ../NEWS:12851 -#: ../NEWS:13457 ../NEWS:14344 ../NEWS:15469 ../NEWS:17305 ../NEWS:17431 -#: ../NEWS:17527 ../NEWS:18242 ../NEWS:18291 ../NEWS:18606 ../NEWS:18896 -#: ../NEWS:19127 ../NEWS:19193 ../NEWS:19205 ../NEWS:19563 ../NEWS:19609 -#: ../NEWS:20040 ../NEWS:20370 ../NEWS:20449 ../NEWS:20492 ../NEWS:20686 -#: ../NEWS:20703 ../NEWS:20716 ../NEWS:20842 ../NEWS:20970 ../NEWS:20985 -#: ../NEWS:21012 ../NEWS:22720 ../NEWS:22792 ../NEWS:23413 ../NEWS:23439 -#: ../NEWS:23475 ../NEWS:24035 ../NEWS:24085 ../NEWS:24108 ../NEWS:24132 -#: ../NEWS:24501 ../NEWS:24524 ../NEWS:24541 ../NEWS:24857 ../NEWS:24882 -#: ../NEWS:24946 ../NEWS:24978 ../NEWS:25317 ../NEWS:25397 ../NEWS:25862 -#: ../NEWS:26331 ../NEWS:26345 ../NEWS:26404 ../NEWS:26423 ../NEWS:26457 -#: ../NEWS:26586 ../NEWS:26636 ../NEWS:26657 ../NEWS:26756 ../NEWS:26880 -#: ../NEWS:28321 ../NEWS:28414 ../NEWS:28434 ../NEWS:28989 ../NEWS:29072 -#: ../NEWS:29422 ../NEWS:29451 ../NEWS:29467 ../NEWS:29681 ../NEWS:29697 -#: ../NEWS:29933 ../NEWS:29947 ../NEWS:29983 ../NEWS:30324 ../NEWS:30370 -#: ../NEWS:30381 ../NEWS:30398 ../NEWS:30945 ../NEWS:30959 ../NEWS:31255 -#: ../NEWS:31271 ../NEWS:31296 ../NEWS:31314 ../NEWS:31331 ../NEWS:31346 -#: ../NEWS:31357 ../NEWS:31375 ../NEWS:31417 ../NEWS:31434 ../NEWS:31485 -#: ../NEWS:31514 ../NEWS:31627 ../NEWS:31646 ../NEWS:31663 ../NEWS:32536 -#: ../NEWS:32924 ../NEWS:33411 ../NEWS:33871 ../NEWS:34233 ../NEWS:34579 -#: ../NEWS:35235 ../NEWS:37001 ../NEWS:37668 ../NEWS:38211 ../NEWS:38506 -#: ../NEWS:39257 ../NEWS:41665 ../NEWS:41698 ../NEWS:41826 ../NEWS:42034 -#: ../NEWS:42225 ../NEWS:42430 ../NEWS:42728 ../NEWS:43049 ../NEWS:43374 -#: ../NEWS:43964 ../NEWS:44624 ../NEWS:46294 ../NEWS:46640 ../NEWS:47006 -#: ../NEWS:47330 ../NEWS:47433 ../NEWS:47896 ../NEWS:48283 ../NEWS:48586 -#: ../NEWS:48668 ../NEWS:48771 ../NEWS:48941 ../NEWS:49276 ../NEWS:49694 -#: ../NEWS:49912 ../NEWS:50149 ../NEWS:50686 ../NEWS:51713 ../NEWS:51731 -#: ../NEWS:51819 ../NEWS:52300 ../NEWS:53015 ../NEWS:53679 ../NEWS:54117 -#: ../NEWS:54144 ../NEWS:54182 ../NEWS:54202 ../NEWS:54309 ../NEWS:54403 -#: ../NEWS:54499 ../NEWS:54574 ../NEWS:54832 ../NEWS:55055 ../NEWS:55228 -#: ../NEWS:55586 +#: ../NEWS:117 ../NEWS:702 ../NEWS:1550 ../NEWS:1752 ../NEWS:1898 ../NEWS:2237 +#: ../NEWS:2616 ../NEWS:3039 ../NEWS:3073 ../NEWS:3163 ../NEWS:3611 +#: ../NEWS:3649 ../NEWS:3662 ../NEWS:3696 ../NEWS:3771 ../NEWS:3797 +#: ../NEWS:3935 ../NEWS:3968 ../NEWS:4080 ../NEWS:4182 ../NEWS:4231 +#: ../NEWS:4259 ../NEWS:4361 ../NEWS:4549 ../NEWS:4663 ../NEWS:4688 +#: ../NEWS:4703 ../NEWS:4822 ../NEWS:5114 ../NEWS:5565 ../NEWS:5627 +#: ../NEWS:5775 ../NEWS:5934 ../NEWS:6195 ../NEWS:6313 ../NEWS:6686 +#: ../NEWS:6744 ../NEWS:6896 ../NEWS:7189 ../NEWS:7289 ../NEWS:7303 +#: ../NEWS:7409 ../NEWS:7604 ../NEWS:7636 ../NEWS:7775 ../NEWS:8037 +#: ../NEWS:8234 ../NEWS:8642 ../NEWS:8659 ../NEWS:8762 ../NEWS:9020 +#: ../NEWS:10264 ../NEWS:10359 ../NEWS:10532 ../NEWS:10603 ../NEWS:10666 +#: ../NEWS:10684 ../NEWS:10852 ../NEWS:11280 ../NEWS:11458 ../NEWS:12003 +#: ../NEWS:12018 ../NEWS:12451 ../NEWS:12464 ../NEWS:12487 ../NEWS:12973 +#: ../NEWS:13579 ../NEWS:14466 ../NEWS:15591 ../NEWS:17427 ../NEWS:17553 +#: ../NEWS:17649 ../NEWS:18364 ../NEWS:18413 ../NEWS:18728 ../NEWS:19018 +#: ../NEWS:19249 ../NEWS:19315 ../NEWS:19327 ../NEWS:19685 ../NEWS:19731 +#: ../NEWS:20162 ../NEWS:20492 ../NEWS:20571 ../NEWS:20614 ../NEWS:20808 +#: ../NEWS:20825 ../NEWS:20838 ../NEWS:20964 ../NEWS:21092 ../NEWS:21107 +#: ../NEWS:21134 ../NEWS:22842 ../NEWS:22914 ../NEWS:23535 ../NEWS:23561 +#: ../NEWS:23597 ../NEWS:24157 ../NEWS:24207 ../NEWS:24230 ../NEWS:24254 +#: ../NEWS:24623 ../NEWS:24646 ../NEWS:24663 ../NEWS:24979 ../NEWS:25004 +#: ../NEWS:25068 ../NEWS:25100 ../NEWS:25439 ../NEWS:25519 ../NEWS:25984 +#: ../NEWS:26453 ../NEWS:26467 ../NEWS:26526 ../NEWS:26545 ../NEWS:26579 +#: ../NEWS:26708 ../NEWS:26758 ../NEWS:26779 ../NEWS:26878 ../NEWS:27002 +#: ../NEWS:28443 ../NEWS:28536 ../NEWS:28556 ../NEWS:29111 ../NEWS:29194 +#: ../NEWS:29544 ../NEWS:29573 ../NEWS:29589 ../NEWS:29803 ../NEWS:29819 +#: ../NEWS:30055 ../NEWS:30069 ../NEWS:30105 ../NEWS:30446 ../NEWS:30492 +#: ../NEWS:30503 ../NEWS:30520 ../NEWS:31067 ../NEWS:31081 ../NEWS:31377 +#: ../NEWS:31393 ../NEWS:31418 ../NEWS:31436 ../NEWS:31453 ../NEWS:31468 +#: ../NEWS:31479 ../NEWS:31497 ../NEWS:31539 ../NEWS:31556 ../NEWS:31607 +#: ../NEWS:31636 ../NEWS:31749 ../NEWS:31768 ../NEWS:31785 ../NEWS:32658 +#: ../NEWS:33046 ../NEWS:33533 ../NEWS:33993 ../NEWS:34355 ../NEWS:34701 +#: ../NEWS:35357 ../NEWS:37123 ../NEWS:37790 ../NEWS:38333 ../NEWS:38628 +#: ../NEWS:39379 ../NEWS:41787 ../NEWS:41820 ../NEWS:41948 ../NEWS:42156 +#: ../NEWS:42347 ../NEWS:42552 ../NEWS:42850 ../NEWS:43171 ../NEWS:43496 +#: ../NEWS:44086 ../NEWS:44746 ../NEWS:46416 ../NEWS:46762 ../NEWS:47128 +#: ../NEWS:47452 ../NEWS:47555 ../NEWS:48018 ../NEWS:48405 ../NEWS:48708 +#: ../NEWS:48790 ../NEWS:48893 ../NEWS:49063 ../NEWS:49398 ../NEWS:49816 +#: ../NEWS:50034 ../NEWS:50271 ../NEWS:50808 ../NEWS:51835 ../NEWS:51853 +#: ../NEWS:51941 ../NEWS:52422 ../NEWS:53137 ../NEWS:53801 ../NEWS:54239 +#: ../NEWS:54266 ../NEWS:54304 ../NEWS:54324 ../NEWS:54431 ../NEWS:54525 +#: ../NEWS:54621 ../NEWS:54696 ../NEWS:54954 ../NEWS:55177 ../NEWS:55350 +#: ../NEWS:55708 msgid "Library" msgstr "" -#: ../NEWS:82 +#: ../NEWS:119 +msgid "" +":gh:`157406`: Fix the Python implementation of :class:`xml.etree.ElementTree." +"XMLParser`: the ``doctype()`` method of the target is now called for a " +"document type declaration without an external identifier, like ````, as in the C implementation." +msgstr "" + +#: ../NEWS:124 +msgid "" +":gh:`128509`: :func:`marshal.load` and :func:`marshal.loads` can now get 1-" +"byte string singletons. Patch by Victor Stinner." +msgstr "" + +#: ../NEWS:127 +msgid "" +":gh:`157213`: Fix :func:`asyncio.gather` leaving stale await-graph edges on " +"children that outlive it." +msgstr "" + +#: ../NEWS:130 +msgid "" +":gh:`157159`: The usage message printed by ``python -m tabnanny`` when no " +"arguments are given now suggests ``python -m`` instead of the source file." +msgstr "" + +#: ../NEWS:133 +msgid "" +":gh:`123018`: Fix :func:`readline.write_history_file` and :func:`readline." +"append_history_file` producing a history file that :func:`readline." +"read_history_file` could not load when a limit was set with :func:`readline." +"set_history_length` and Python was built against ``libedit``. This works " +"around `NetBSD PR 60322 `_." +msgstr "" + +#: ../NEWS:140 +msgid "" +":gh:`157058`: :func:`asyncio.wait_for` with a non-positive timeout now " +"records the waiter in the call graph." +msgstr "" + +#: ../NEWS:143 +msgid "" +":gh:`157048`: Preserve the position and contents of :class:`io.BytesIO` " +"when :meth:`!BytesIO.__init__` fails because a buffer is exported." +msgstr "" + +#: ../NEWS:146 +msgid "" +":gh:`156961`: Fix :func:`tkinter.font.nametofont` and the :class:`tkinter." +"font.Font` constructor for a font name returned by Tk as a Tcl object, for " +"example by :meth:`ttk.Style.lookup() `." +msgstr "" + +#: ../NEWS:151 +msgid "" +":gh:`156988`: :func:`asyncio.print_call_graph` no longer truncates the call " +"stack at a synchronous generator." +msgstr "" + +#: ../NEWS:154 msgid "" ":gh:`156970`: Set the docstring of :attr:`unittest.mock.Mock.return_value`." msgstr "" -#: ../NEWS:84 +#: ../NEWS:156 +msgid "" +":gh:`156946`: Fix a crash in :mod:`curses.panel` when the finalizer of a " +"panel's user pointer runs while the panel is being deallocated. The panel " +"is now taken off the panel stack before its user pointer is dropped." +msgstr "" + +#: ../NEWS:160 msgid "" ":gh:`156797`: Fix :class:`xml.sax.saxutils.XMLGenerator`: the namespace URI " "is now escaped in the namespace declaration. Previously a URI containing " "``&``, ``<`` or a quote character produced a document which cannot be parsed." msgstr "" -#: ../NEWS:89 +#: ../NEWS:165 msgid "" ":gh:`83895`: :mod:`xml.etree.ElementTree` now accepts input larger than 2 " "GiB in the C implementation. The data is fed to Expat in chunks, as :mod:" "`xml.parsers.expat` already did, instead of raising :exc:`OverflowError`." msgstr "" -#: ../NEWS:94 +#: ../NEWS:170 msgid "" ":gh:`99064`: Fix :func:`xml.etree.ElementTree.parse` with a text file or " "other source of :class:`str` data in the C implementation. The encoding " @@ -280,14 +408,22 @@ msgid "" "feed` or :func:`~xml.etree.ElementTree.fromstring`." msgstr "" -#: ../NEWS:100 +#: ../NEWS:176 +msgid "" +":gh:`156713`: Fix :func:`!nturl2path.pathname2url` and :func:`!nturl2path." +"url2pathname`: the filesystem encoding and error handler are now used for " +"percent-encoding and decoding, as in :mod:`urllib.request`. Previously " +"paths containing surrogate characters raised :exc:`UnicodeEncodeError`." +msgstr "" + +#: ../NEWS:182 msgid "" ":gh:`127057`: Fix :class:`asyncio.ProactorEventLoop` UDP transports so that " "a :exc:`ConnectionResetError` raised by ``WSARecvFrom`` no longer stops the " "read loop." msgstr "" -#: ../NEWS:104 +#: ../NEWS:186 msgid "" ":gh:`156658`: :mod:`xml.dom` and :mod:`xml.etree.ElementTree` no longer " "treat characters which are not white space in XML (such as U+00A0) as white " @@ -297,20 +433,26 @@ msgid "" "content`` feature turned off." msgstr "" -#: ../NEWS:112 +#: ../NEWS:194 +msgid "" +":gh:`156512`: Fix :mod:`asyncio` losing a connection twice when " +"``resume_writing()`` closes the transport." +msgstr "" + +#: ../NEWS:197 msgid "" ":gh:`156523`: Fix :func:`asyncio.as_completed` not recording the awaiting " "task in the call graph." msgstr "" -#: ../NEWS:115 +#: ../NEWS:200 msgid "" ":gh:`156476`: The pure Python implementation of :meth:`queue.SimpleQueue." "get` now ignores *timeout* when *block* is false, matching the documented " "behavior and the C implementation. It previously raised :exc:`ValueError`." msgstr "" -#: ../NEWS:119 +#: ../NEWS:204 msgid "" ":gh:`156444`: Fix matching of a negated character set in a bytes pattern " "compiled with both :const:`re.IGNORECASE` and :const:`re.LOCALE`. The case " @@ -318,19 +460,19 @@ msgid "" "longer matches ``b'B'``." msgstr "" -#: ../NEWS:124 +#: ../NEWS:209 msgid "" ":gh:`156408`: Fix :func:`asyncio.print_call_graph` raising :exc:" "`AttributeError` when called on a task that has already finished." msgstr "" -#: ../NEWS:127 +#: ../NEWS:212 msgid "" ":gh:`156353`: Fix :mod:`configparser` parsing when using whitespace in " "*delimiters*." msgstr "" -#: ../NEWS:130 +#: ../NEWS:215 msgid "" ":gh:`156166`: :mod:`ssl`: A failed assignment or deletion of the " "``_msg_callback`` attribute of :class:`ssl.SSLContext` no longer removes the " @@ -338,25 +480,25 @@ msgid "" "exc:`TypeError`." msgstr "" -#: ../NEWS:135 +#: ../NEWS:220 msgid "" ":gh:`156173`: Calling :meth:`zlib.Decompress.flush` on invalid compressed " "data now raises :exc:`zlib.error` instead of being silently ignored." msgstr "" -#: ../NEWS:138 +#: ../NEWS:223 msgid "" ":gh:`152817`: :mod:`sqlite3`: Disallow removing the ``row_factory`` " "attribute of a cursor to prevent a crash on a query." msgstr "" -#: ../NEWS:141 +#: ../NEWS:226 msgid "" ":gh:`156124`: Fix a crash in the free-threaded build when deleting the :attr:" "`!contents` attribute of a :mod:`ctypes` pointer." msgstr "" -#: ../NEWS:144 +#: ../NEWS:229 msgid "" ":gh:`156112`: :mod:`!_ios_support` no longer fails to import when :func:" "`ctypes.util.find_library` cannot resolve the ObjC runtime through the dyld " @@ -364,53 +506,61 @@ msgid "" "which dyld resolves against the cache directly." msgstr "" -#: ../NEWS:149 +#: ../NEWS:234 msgid "" ":gh:`156101`: Fix :attr:`sqlite3.Cursor.arraysize` being set to 0 if the " "assigned value is too large. The attribute is now left unchanged if the " "assignment fails." msgstr "" -#: ../NEWS:153 +#: ../NEWS:238 msgid "" ":gh:`156100`: Fix crashes in :class:`sqlite3.Connection` when deleting the :" "attr:`~sqlite3.Connection.autocommit` attribute or setting it to an integer " "which does not fit in C :c:expr:`long`. Both now raise an exception." msgstr "" -#: ../NEWS:158 +#: ../NEWS:243 msgid "" ":gh:`156099`: Fix a crash when deleting the ``keylog_filename`` attribute " "of :class:`ssl.SSLContext`. It now raises :exc:`AttributeError`." msgstr "" -#: ../NEWS:161 +#: ../NEWS:246 msgid "" ":gh:`156067`: Fix error handling in the :mod:`zoneinfo` accelerator module " "when a transition index is ``-1`` or a TZ string's ``__bool__`` raises." msgstr "" -#: ../NEWS:164 +#: ../NEWS:249 msgid "" ":gh:`155997`: Fix :func:`concurrent.interpreters.list_all`. It failed if an " "interpreter was destroyed during the call, in particular by a garbage " "collection which finalized the object owning the last reference to it." msgstr "" -#: ../NEWS:168 +#: ../NEWS:253 +msgid "" +":gh:`155941`: Fix :func:`asyncio.start_server` when a plain-function " +"*client_connected_cb* raises: the error is now reported like the coroutine " +"case and the transport is closed, instead of leaving the connection open " +"forever (which also made :meth:`asyncio.Server.wait_closed` hang)." +msgstr "" + +#: ../NEWS:258 msgid "" ":gh:`155952`: Fix the signatures of :meth:`sqlite3.Connection.execute`, :" "func:`warnings.warn` and :func:`locale.setlocale` which rendered " "```` instead of the correct defaults for parameters." msgstr "" -#: ../NEWS:172 +#: ../NEWS:262 msgid "" ":gh:`155888`: Fix :meth:`asyncio.WriteTransport.writelines` hanging the " "transport when the last data chunk is empty." msgstr "" -#: ../NEWS:175 +#: ../NEWS:265 msgid "" ":gh:`155775`: Fix a regression in :mod:`imaplib` introduced in the fix for :" "gh:`63121`: refreshing the capabilities after a successful :meth:`~imaplib." @@ -419,7 +569,7 @@ msgid "" "IMAP4.response`." msgstr "" -#: ../NEWS:181 +#: ../NEWS:271 msgid "" ":gh:`113318`: Fix crashes when deleting an attribute whose setter is " "generated by Argument Clinic and is not prepared for deletion, among them :" @@ -428,26 +578,26 @@ msgid "" "`AttributeError`." msgstr "" -#: ../NEWS:187 +#: ../NEWS:277 msgid "" ":gh:`155468`: Fix :mod:`netrc` to distinguish empty quoted tokens from end-" "of-file, so malformed files no longer cause the remaining content to be " "silently ignored." msgstr "" -#: ../NEWS:191 +#: ../NEWS:281 msgid "" ":gh:`155519`: Avoid a data-race in free-threaded builds when reading and " "writing context variables from different threads." msgstr "" -#: ../NEWS:194 +#: ../NEWS:284 msgid "" ":gh:`155336`: Fix error handling in :func:`socket.gethostbyaddr` and :func:" "`socket.gethostbyname_ex` when hostname resolution fails." msgstr "" -#: ../NEWS:197 +#: ../NEWS:287 msgid "" ":gh:`102475`: Fix :func:`os.path.realpath` on Windows: the unresolved part " "of the path is now appended, not joined, so a file name which looks like a " @@ -456,20 +606,20 @@ msgid "" "drive." msgstr "" -#: ../NEWS:203 +#: ../NEWS:293 msgid "" ":gh:`89760`: Fix :func:`os.path.realpath` on Windows: the ``\\\\?\\`` prefix " "is no longer stripped from a volume GUID path, which made the result invalid." msgstr "" -#: ../NEWS:206 +#: ../NEWS:296 msgid "" ":gh:`84419`: Fix :func:`os.stat` on Windows: trailing dots and spaces, which " "are ignored by the operating system, are no longer taken into account when " "the execute permissions are guessed from the file extension." msgstr "" -#: ../NEWS:210 +#: ../NEWS:300 msgid "" ":gh:`155319`: :func:`warnings.warn_explicit` now displays the source line " "taken from the loader of the module whose globals are passed as " @@ -477,14 +627,14 @@ msgid "" "out of the range of the module source." msgstr "" -#: ../NEWS:215 +#: ../NEWS:305 msgid "" ":gh:`123011`: :func:`warnings.warn_explicit` no longer emits a spurious :exc:" "`DeprecationWarning` or raises :exc:`ImportError` when it is called with the " "globals of the :mod:`__main__` module." msgstr "" -#: ../NEWS:219 +#: ../NEWS:309 msgid "" ":gh:`69370`: :program:`python -m inspect --details` no longer fails with :" "exc:`UnicodeEncodeError` if the path of the module contains characters " @@ -492,7 +642,7 @@ msgid "" "escaped with backslashes." msgstr "" -#: ../NEWS:224 +#: ../NEWS:314 msgid "" ":gh:`69371`: Fix :mod:`pydoc` for modules whose path contains undecodable " "bytes. :func:`!pydoc.writedoc` and the pydoc HTTP server no longer fail " @@ -501,27 +651,33 @@ msgid "" "page are escaped with backslashes." msgstr "" -#: ../NEWS:230 +#: ../NEWS:320 +msgid "" +":gh:`155143`: Fix :func:`asyncio.shield` leaking the calling task via the " +"await-graph and callbacks when called on a future that never resolves." +msgstr "" + +#: ../NEWS:323 msgid "" ":gh:`154871`: Fixed a crash in :meth:`asyncio.Task.get_context` when called " "on an uninitialized task." msgstr "" -#: ../NEWS:233 +#: ../NEWS:326 msgid "" ":gh:`154855`: Fix :meth:`curses.window.instr` returning one character too " "few when the :mod:`curses` module is built against a curses library that " "counts the terminator in the requested length, such as the NetBSD one." msgstr "" -#: ../NEWS:237 +#: ../NEWS:330 msgid "" ":gh:`153970`: Calling :func:`str` on a :exc:`subprocess.CalledProcessError` " "no longer raises :exc:`TypeError` when its :attr:`!returncode` is not an " "integer, such as ``None``." msgstr "" -#: ../NEWS:241 +#: ../NEWS:334 msgid "" ":gh:`153005`: :meth:`!concurrent.interpreters.Queue.get` and :meth:`!" "concurrent.interpreters.Queue.put` now compute their ``timeout`` deadline " @@ -529,7 +685,7 @@ msgid "" "system clock during the call no longer makes them over- or under-wait." msgstr "" -#: ../NEWS:247 +#: ../NEWS:340 msgid "" ":gh:`153772`: :func:`isinstance` checks against :mod:`collections.abc` " "classes such as :class:`~collections.abc.Mapping` no longer raise :exc:" @@ -538,27 +694,27 @@ msgid "" "the behaviour of the built-in :func:`isinstance`." msgstr "" -#: ../NEWS:253 +#: ../NEWS:346 msgid "" ":gh:`153603`: Fix a crash in the ISO-2022 decoders when decoding a byte " "after an unknown charset designation is set via the decoder's ``setstate`` " "method. Patch by tonghuaroot." msgstr "" -#: ../NEWS:257 +#: ../NEWS:350 msgid "" ":gh:`153539`: Fix a crash in the C implementation of :meth:`io.TextIOWrapper." "tell` when the decoder's ``getstate`` method triggers a reentrant seek, or " "when another thread seeks the same stream concurrently. Patch by tonghuaroot." msgstr "" -#: ../NEWS:262 +#: ../NEWS:355 msgid "" ":gh:`153133`: Fix a socket leak in :meth:`asyncio.loop.create_connection` " "when the transport cannot be created." msgstr "" -#: ../NEWS:265 +#: ../NEWS:358 msgid "" ":gh:`152204`: Fix the pure-Python implementations of :meth:`datetime.date." "fromisoformat`, :meth:`datetime.time.fromisoformat` and :meth:`datetime." @@ -568,19 +724,27 @@ msgid "" "exactly *N* ASCII digits, matching the C implementation." msgstr "" -#: ../NEWS:273 +#: ../NEWS:366 msgid "" ":gh:`151955`: Allow more types to be used in the ``bound`` argument to :" "class:`typing.ParamSpec`." msgstr "" -#: ../NEWS:276 +#: ../NEWS:369 +msgid "" +":gh:`150771`: Fix serialization of :mod:`email` messages using the " +"``shift_jis`` or ``euc-jp`` charsets: ``set_content()`` now encodes the " +"payload using the output charset, so ``str(m)`` no longer raises :exc:" +"`UnicodeEncodeError`." +msgstr "" + +#: ../NEWS:374 msgid "" ":gh:`113329`: Fix :exc:`OSError` being raised when trying to run doctests on " "a class objects in the REPL. Patch by Sten Wessel." msgstr "" -#: ../NEWS:279 +#: ../NEWS:377 msgid "" ":gh:`102967`: A bug in :func:`!doctest._SpoofOut.truncate` was causing None " "to be passed to :func:`!StringIO.seek` when no size was given. A simple fix " @@ -588,19 +752,19 @@ msgid "" "from the current position." msgstr "" -#: ../NEWS:284 +#: ../NEWS:382 msgid "" ":gh:`82039`: :meth:`http.cookiejar.FileCookieJar.load` now checks the first, " "format signature line in a case-insensitive manner. Patch by Ashley Harvey." msgstr "" -#: ../NEWS:288 +#: ../NEWS:386 msgid "" ":gh:`70758`: Creating a new :mod:`turtle` screen after the previous one was " "closed no longer raises ``turtle.Terminator`` on the first turtle command." msgstr "" -#: ../NEWS:291 +#: ../NEWS:389 msgid "" ":issue:`44012`: The ``exploded`` attribute of :class:`ipaddress.IPv6Address` " "and :class:`ipaddress.IPv6Interface` now supports addresses with a scope ID " @@ -608,7 +772,7 @@ msgid "" "AddressValueError` and the latter omitted the scope ID." msgstr "" -#: ../NEWS:296 +#: ../NEWS:394 msgid "" ":gh:`83869`: Fix :mod:`tarfile` reading an archive with a GNU sparse 1.0 " "member whose size is set in the pax extended header. The offset of the next " @@ -617,43 +781,43 @@ msgid "" "of the sparse file. All following members were unreachable." msgstr "" -#: ../NEWS:302 +#: ../NEWS:400 msgid "" ":gh:`61366`: :class:`http.cookiejar.MozillaCookieJar` now reads session " "cookies written by curl and Wget, which use ``0`` in the expiration time " "field. Contributed by Jérémie Detrey." msgstr "" -#: ../NEWS:307 ../NEWS:1147 ../NEWS:1561 ../NEWS:1649 ../NEWS:2358 ../NEWS:2447 -#: ../NEWS:2992 ../NEWS:4193 ../NEWS:4401 ../NEWS:4675 ../NEWS:4961 -#: ../NEWS:5786 ../NEWS:6166 ../NEWS:6730 ../NEWS:7280 ../NEWS:7628 -#: ../NEWS:8096 ../NEWS:8781 ../NEWS:12141 ../NEWS:12616 ../NEWS:13159 -#: ../NEWS:13974 ../NEWS:14566 ../NEWS:16530 ../NEWS:18030 ../NEWS:18461 -#: ../NEWS:18735 ../NEWS:19012 ../NEWS:19430 ../NEWS:19762 ../NEWS:20181 -#: ../NEWS:22015 ../NEWS:23211 ../NEWS:23806 ../NEWS:24313 ../NEWS:24676 -#: ../NEWS:25147 ../NEWS:25561 ../NEWS:26064 ../NEWS:27827 ../NEWS:28794 -#: ../NEWS:29254 ../NEWS:29540 ../NEWS:29816 ../NEWS:30181 ../NEWS:30645 -#: ../NEWS:31126 ../NEWS:32191 ../NEWS:32714 ../NEWS:33155 ../NEWS:33618 -#: ../NEWS:34028 ../NEWS:34755 ../NEWS:36190 ../NEWS:37441 ../NEWS:37894 -#: ../NEWS:38351 ../NEWS:38590 ../NEWS:40928 ../NEWS:41964 ../NEWS:42118 -#: ../NEWS:42334 ../NEWS:42586 ../NEWS:42900 ../NEWS:43232 ../NEWS:43716 -#: ../NEWS:45711 ../NEWS:46455 ../NEWS:46568 ../NEWS:46793 ../NEWS:47183 -#: ../NEWS:47581 ../NEWS:48160 ../NEWS:48471 ../NEWS:48722 ../NEWS:48857 -#: ../NEWS:49128 ../NEWS:49558 ../NEWS:49831 ../NEWS:50085 ../NEWS:50339 -#: ../NEWS:51512 ../NEWS:52072 ../NEWS:52726 ../NEWS:52847 ../NEWS:53470 -#: ../NEWS:54032 ../NEWS:54276 ../NEWS:54453 ../NEWS:54762 ../NEWS:54991 -#: ../NEWS:55201 ../NEWS:57012 +#: ../NEWS:405 ../NEWS:1269 ../NEWS:1683 ../NEWS:1771 ../NEWS:2480 ../NEWS:2569 +#: ../NEWS:3114 ../NEWS:4315 ../NEWS:4523 ../NEWS:4797 ../NEWS:5083 +#: ../NEWS:5908 ../NEWS:6288 ../NEWS:6852 ../NEWS:7402 ../NEWS:7750 +#: ../NEWS:8218 ../NEWS:8903 ../NEWS:12263 ../NEWS:12738 ../NEWS:13281 +#: ../NEWS:14096 ../NEWS:14688 ../NEWS:16652 ../NEWS:18152 ../NEWS:18583 +#: ../NEWS:18857 ../NEWS:19134 ../NEWS:19552 ../NEWS:19884 ../NEWS:20303 +#: ../NEWS:22137 ../NEWS:23333 ../NEWS:23928 ../NEWS:24435 ../NEWS:24798 +#: ../NEWS:25269 ../NEWS:25683 ../NEWS:26186 ../NEWS:27949 ../NEWS:28916 +#: ../NEWS:29376 ../NEWS:29662 ../NEWS:29938 ../NEWS:30303 ../NEWS:30767 +#: ../NEWS:31248 ../NEWS:32313 ../NEWS:32836 ../NEWS:33277 ../NEWS:33740 +#: ../NEWS:34150 ../NEWS:34877 ../NEWS:36312 ../NEWS:37563 ../NEWS:38016 +#: ../NEWS:38473 ../NEWS:38712 ../NEWS:41050 ../NEWS:42086 ../NEWS:42240 +#: ../NEWS:42456 ../NEWS:42708 ../NEWS:43022 ../NEWS:43354 ../NEWS:43838 +#: ../NEWS:45833 ../NEWS:46577 ../NEWS:46690 ../NEWS:46915 ../NEWS:47305 +#: ../NEWS:47703 ../NEWS:48282 ../NEWS:48593 ../NEWS:48844 ../NEWS:48979 +#: ../NEWS:49250 ../NEWS:49680 ../NEWS:49953 ../NEWS:50207 ../NEWS:50461 +#: ../NEWS:51634 ../NEWS:52194 ../NEWS:52848 ../NEWS:52969 ../NEWS:53592 +#: ../NEWS:54154 ../NEWS:54398 ../NEWS:54575 ../NEWS:54884 ../NEWS:55113 +#: ../NEWS:55323 ../NEWS:57134 msgid "Tests" msgstr "" -#: ../NEWS:309 +#: ../NEWS:407 msgid "" ":gh:`155411`: Fix :func:`!test.support.subTests` for asynchronous test " "methods. They were wrapped in a synchronous function, which discarded the " "coroutine without awaiting it, so the test silently did not run at all." msgstr "" -#: ../NEWS:313 +#: ../NEWS:411 msgid "" ":gh:`132581`: The list of tests which altered the execution environment now " "includes the reasons why the environment was considered altered, for example " @@ -661,48 +825,56 @@ msgid "" "longer repeats the same state twice (like ``ENV CHANGED then ENV CHANGED``)." msgstr "" -#: ../NEWS:319 +#: ../NEWS:417 msgid "" ":gh:`142414`: Isolate reloading modules in test_interpreters to avoid having " "broken references." msgstr "" -#: ../NEWS:323 ../NEWS:1182 ../NEWS:1569 ../NEWS:1890 ../NEWS:2373 ../NEWS:2882 -#: ../NEWS:3739 ../NEWS:4033 ../NEWS:4171 ../NEWS:4382 ../NEWS:4622 -#: ../NEWS:4925 ../NEWS:5717 ../NEWS:6104 ../NEWS:6684 ../NEWS:7252 -#: ../NEWS:7572 ../NEWS:8037 ../NEWS:8672 ../NEWS:11017 ../NEWS:11671 -#: ../NEWS:12167 ../NEWS:12648 ../NEWS:13169 ../NEWS:14014 ../NEWS:14600 -#: ../NEWS:16778 ../NEWS:18052 ../NEWS:18279 ../NEWS:18471 ../NEWS:18748 -#: ../NEWS:19018 ../NEWS:19442 ../NEWS:19783 ../NEWS:20009 ../NEWS:20201 -#: ../NEWS:22137 ../NEWS:22769 ../NEWS:23242 ../NEWS:23830 ../NEWS:24335 -#: ../NEWS:24529 ../NEWS:24720 ../NEWS:25174 ../NEWS:25583 ../NEWS:26113 -#: ../NEWS:27949 ../NEWS:28817 ../NEWS:29263 ../NEWS:29546 ../NEWS:29826 -#: ../NEWS:30203 ../NEWS:30680 ../NEWS:31142 ../NEWS:32242 ../NEWS:32723 -#: ../NEWS:33181 ../NEWS:33634 ../NEWS:34037 ../NEWS:34439 ../NEWS:34810 -#: ../NEWS:36360 ../NEWS:37477 ../NEWS:37948 ../NEWS:38364 ../NEWS:41095 -#: ../NEWS:41751 ../NEWS:41973 ../NEWS:42124 ../NEWS:42344 ../NEWS:42591 -#: ../NEWS:42920 ../NEWS:43743 ../NEWS:44063 ../NEWS:45774 ../NEWS:46463 -#: ../NEWS:46573 ../NEWS:46808 ../NEWS:47200 ../NEWS:47336 ../NEWS:47597 -#: ../NEWS:48118 ../NEWS:48202 ../NEWS:48493 ../NEWS:48558 ../NEWS:48730 -#: ../NEWS:48848 ../NEWS:49117 ../NEWS:49572 ../NEWS:49858 ../NEWS:50046 -#: ../NEWS:50359 ../NEWS:51555 ../NEWS:52110 ../NEWS:52772 ../NEWS:53493 -#: ../NEWS:54045 ../NEWS:54105 ../NEWS:54122 ../NEWS:54364 ../NEWS:54469 -#: ../NEWS:54982 ../NEWS:55196 ../NEWS:55331 ../NEWS:56863 +#: ../NEWS:421 ../NEWS:1304 ../NEWS:1691 ../NEWS:2012 ../NEWS:2495 ../NEWS:3004 +#: ../NEWS:3861 ../NEWS:4155 ../NEWS:4293 ../NEWS:4504 ../NEWS:4744 +#: ../NEWS:5047 ../NEWS:5839 ../NEWS:6226 ../NEWS:6806 ../NEWS:7374 +#: ../NEWS:7694 ../NEWS:8159 ../NEWS:8794 ../NEWS:11139 ../NEWS:11793 +#: ../NEWS:12289 ../NEWS:12770 ../NEWS:13291 ../NEWS:14136 ../NEWS:14722 +#: ../NEWS:16900 ../NEWS:18174 ../NEWS:18401 ../NEWS:18593 ../NEWS:18870 +#: ../NEWS:19140 ../NEWS:19564 ../NEWS:19905 ../NEWS:20131 ../NEWS:20323 +#: ../NEWS:22259 ../NEWS:22891 ../NEWS:23364 ../NEWS:23952 ../NEWS:24457 +#: ../NEWS:24651 ../NEWS:24842 ../NEWS:25296 ../NEWS:25705 ../NEWS:26235 +#: ../NEWS:28071 ../NEWS:28939 ../NEWS:29385 ../NEWS:29668 ../NEWS:29948 +#: ../NEWS:30325 ../NEWS:30802 ../NEWS:31264 ../NEWS:32364 ../NEWS:32845 +#: ../NEWS:33303 ../NEWS:33756 ../NEWS:34159 ../NEWS:34561 ../NEWS:34932 +#: ../NEWS:36482 ../NEWS:37599 ../NEWS:38070 ../NEWS:38486 ../NEWS:41217 +#: ../NEWS:41873 ../NEWS:42095 ../NEWS:42246 ../NEWS:42466 ../NEWS:42713 +#: ../NEWS:43042 ../NEWS:43865 ../NEWS:44185 ../NEWS:45896 ../NEWS:46585 +#: ../NEWS:46695 ../NEWS:46930 ../NEWS:47322 ../NEWS:47458 ../NEWS:47719 +#: ../NEWS:48240 ../NEWS:48324 ../NEWS:48615 ../NEWS:48680 ../NEWS:48852 +#: ../NEWS:48970 ../NEWS:49239 ../NEWS:49694 ../NEWS:49980 ../NEWS:50168 +#: ../NEWS:50481 ../NEWS:51677 ../NEWS:52232 ../NEWS:52894 ../NEWS:53615 +#: ../NEWS:54167 ../NEWS:54227 ../NEWS:54244 ../NEWS:54486 ../NEWS:54591 +#: ../NEWS:55104 ../NEWS:55318 ../NEWS:55453 ../NEWS:56985 msgid "Build" msgstr "" -#: ../NEWS:325 +#: ../NEWS:423 +msgid "" +":gh:`157142`: Fix the link of ``Programs/_freeze_module`` when extension " +"modules are built in (``MODULE_BUILDTYPE=static``) and the test modules are " +"enabled: ``Modules/getpath_noop.c`` now defines " +"``_Py_Get_Getpath_CodeObject()``, which ``_testinternalcapi`` uses." +msgstr "" + +#: ../NEWS:428 msgid "" ":gh:`156369`: Update Android and iOS build scripts to use OpenSSL 3.5.8." msgstr "" -#: ../NEWS:327 +#: ../NEWS:430 msgid "" ":gh:`155911`: Fix curses detection when a curses library is already in " "``LIBS``. Patch by Shamil Abdulaev." msgstr "" -#: ../NEWS:330 +#: ../NEWS:433 msgid "" ":gh:`156115`: iOS simulator builds are now configured with ``-mios-simulator-" "version-min`` instead of the device's ``-mios-version-min``. The device flag " @@ -710,46 +882,46 @@ msgid "" "detection silently failed." msgstr "" -#: ../NEWS:336 ../NEWS:1208 ../NEWS:1575 ../NEWS:1910 ../NEWS:2395 ../NEWS:2435 -#: ../NEWS:2963 ../NEWS:3785 ../NEWS:3824 ../NEWS:3953 ../NEWS:4394 -#: ../NEWS:4649 ../NEWS:4943 ../NEWS:5762 ../NEWS:6137 ../NEWS:7612 -#: ../NEWS:8058 ../NEWS:8728 ../NEWS:11693 ../NEWS:12177 ../NEWS:12674 -#: ../NEWS:13184 ../NEWS:14043 ../NEWS:14624 ../NEWS:16865 ../NEWS:18090 -#: ../NEWS:18479 ../NEWS:18765 ../NEWS:19051 ../NEWS:19460 ../NEWS:19805 -#: ../NEWS:20237 ../NEWS:22251 ../NEWS:23257 ../NEWS:23862 ../NEWS:24365 -#: ../NEWS:24760 ../NEWS:25221 ../NEWS:25711 ../NEWS:26168 ../NEWS:27995 -#: ../NEWS:28826 ../NEWS:29285 ../NEWS:29569 ../NEWS:29852 ../NEWS:30704 -#: ../NEWS:31149 ../NEWS:32263 ../NEWS:32733 ../NEWS:33193 ../NEWS:33651 -#: ../NEWS:34042 ../NEWS:34820 ../NEWS:36432 ../NEWS:37500 ../NEWS:38009 -#: ../NEWS:38378 ../NEWS:38623 ../NEWS:41213 ../NEWS:41758 ../NEWS:42141 -#: ../NEWS:42349 ../NEWS:42596 ../NEWS:42935 ../NEWS:43241 ../NEWS:43776 -#: ../NEWS:45886 ../NEWS:46483 ../NEWS:46814 ../NEWS:47225 ../NEWS:47603 -#: ../NEWS:48174 ../NEWS:48423 ../NEWS:48553 ../NEWS:48843 ../NEWS:49084 -#: ../NEWS:49614 ../NEWS:49846 ../NEWS:50349 ../NEWS:51618 ../NEWS:52123 -#: ../NEWS:52757 ../NEWS:53552 ../NEWS:53599 ../NEWS:54056 ../NEWS:55345 -#: ../NEWS:57159 +#: ../NEWS:439 ../NEWS:1330 ../NEWS:1697 ../NEWS:2032 ../NEWS:2517 ../NEWS:2557 +#: ../NEWS:3085 ../NEWS:3907 ../NEWS:3946 ../NEWS:4075 ../NEWS:4516 +#: ../NEWS:4771 ../NEWS:5065 ../NEWS:5884 ../NEWS:6259 ../NEWS:7734 +#: ../NEWS:8180 ../NEWS:8850 ../NEWS:11815 ../NEWS:12299 ../NEWS:12796 +#: ../NEWS:13306 ../NEWS:14165 ../NEWS:14746 ../NEWS:16987 ../NEWS:18212 +#: ../NEWS:18601 ../NEWS:18887 ../NEWS:19173 ../NEWS:19582 ../NEWS:19927 +#: ../NEWS:20359 ../NEWS:22373 ../NEWS:23379 ../NEWS:23984 ../NEWS:24487 +#: ../NEWS:24882 ../NEWS:25343 ../NEWS:25833 ../NEWS:26290 ../NEWS:28117 +#: ../NEWS:28948 ../NEWS:29407 ../NEWS:29691 ../NEWS:29974 ../NEWS:30826 +#: ../NEWS:31271 ../NEWS:32385 ../NEWS:32855 ../NEWS:33315 ../NEWS:33773 +#: ../NEWS:34164 ../NEWS:34942 ../NEWS:36554 ../NEWS:37622 ../NEWS:38131 +#: ../NEWS:38500 ../NEWS:38745 ../NEWS:41335 ../NEWS:41880 ../NEWS:42263 +#: ../NEWS:42471 ../NEWS:42718 ../NEWS:43057 ../NEWS:43363 ../NEWS:43898 +#: ../NEWS:46008 ../NEWS:46605 ../NEWS:46936 ../NEWS:47347 ../NEWS:47725 +#: ../NEWS:48296 ../NEWS:48545 ../NEWS:48675 ../NEWS:48965 ../NEWS:49206 +#: ../NEWS:49736 ../NEWS:49968 ../NEWS:50471 ../NEWS:51740 ../NEWS:52245 +#: ../NEWS:52879 ../NEWS:53674 ../NEWS:53721 ../NEWS:54178 ../NEWS:55467 +#: ../NEWS:57281 msgid "Windows" msgstr "" -#: ../NEWS:338 +#: ../NEWS:441 msgid ":gh:`156369`: Updated Windows builds to use OpenSSL 3.5.8." msgstr "" -#: ../NEWS:340 +#: ../NEWS:443 msgid "" ":gh:`72353`: Reading from the console on Windows now continues if the read " "was cancelled by Ctrl+C, but the :const:`~signal.SIGINT` handler did not " "raise an exception. Previously the read ended as if at end of file." msgstr "" -#: ../NEWS:344 +#: ../NEWS:447 msgid "" ":gh:`86427`: Fix the encoding of the standard streams in the legacy Windows " "stdio mode (:envvar:`PYTHONLEGACYWINDOWSSTDIO`). It is now the code page of " "the console, as in Python 3.7, not the ANSI code page." msgstr "" -#: ../NEWS:348 +#: ../NEWS:451 msgid "" ":gh:`87587`: :func:`os.device_encoding` on Windows now returns the code page " "of any console file descriptor, not only 0, 1 and 2, and returns ``None`` " @@ -757,62 +929,85 @@ msgid "" "reported as ``\"utf-8\"`` instead of ``\"cp65001\"``." msgstr "" -#: ../NEWS:354 ../NEWS:1221 ../NEWS:1580 ../NEWS:1658 ../NEWS:1918 ../NEWS:2406 -#: ../NEWS:3778 ../NEWS:3944 ../NEWS:5752 ../NEWS:6131 ../NEWS:6716 -#: ../NEWS:7267 ../NEWS:8718 ../NEWS:11718 ../NEWS:12695 ../NEWS:13206 -#: ../NEWS:14084 ../NEWS:14636 ../NEWS:16915 ../NEWS:18111 ../NEWS:18791 -#: ../NEWS:19483 ../NEWS:19820 ../NEWS:20255 ../NEWS:22348 ../NEWS:23273 -#: ../NEWS:23888 ../NEWS:24774 ../NEWS:25227 ../NEWS:25736 ../NEWS:26182 -#: ../NEWS:28023 ../NEWS:28856 ../NEWS:29574 ../NEWS:29859 ../NEWS:30226 -#: ../NEWS:30713 ../NEWS:31164 ../NEWS:32306 ../NEWS:32745 ../NEWS:33200 -#: ../NEWS:33674 ../NEWS:34827 ../NEWS:36551 ../NEWS:37514 ../NEWS:38062 -#: ../NEWS:41323 ../NEWS:41986 ../NEWS:42146 ../NEWS:42358 ../NEWS:42615 -#: ../NEWS:42946 ../NEWS:43791 ../NEWS:46488 ../NEWS:46839 ../NEWS:47234 +#: ../NEWS:457 ../NEWS:1343 ../NEWS:1702 ../NEWS:1780 ../NEWS:2040 ../NEWS:2528 +#: ../NEWS:3900 ../NEWS:4066 ../NEWS:5874 ../NEWS:6253 ../NEWS:6838 +#: ../NEWS:7389 ../NEWS:8840 ../NEWS:11840 ../NEWS:12817 ../NEWS:13328 +#: ../NEWS:14206 ../NEWS:14758 ../NEWS:17037 ../NEWS:18233 ../NEWS:18913 +#: ../NEWS:19605 ../NEWS:19942 ../NEWS:20377 ../NEWS:22470 ../NEWS:23395 +#: ../NEWS:24010 ../NEWS:24896 ../NEWS:25349 ../NEWS:25858 ../NEWS:26304 +#: ../NEWS:28145 ../NEWS:28978 ../NEWS:29696 ../NEWS:29981 ../NEWS:30348 +#: ../NEWS:30835 ../NEWS:31286 ../NEWS:32428 ../NEWS:32867 ../NEWS:33322 +#: ../NEWS:33796 ../NEWS:34949 ../NEWS:36673 ../NEWS:37636 ../NEWS:38184 +#: ../NEWS:41445 ../NEWS:42108 ../NEWS:42268 ../NEWS:42480 ../NEWS:42737 +#: ../NEWS:43068 ../NEWS:43913 ../NEWS:46610 ../NEWS:46961 ../NEWS:47356 msgid "macOS" msgstr "" -#: ../NEWS:356 +#: ../NEWS:459 msgid ":gh:`156369`: Update macOS installer to use OpenSSL 3.5.8." msgstr "" -#: ../NEWS:359 ../NEWS:1230 ../NEWS:1592 ../NEWS:2747 ../NEWS:3461 ../NEWS:5394 -#: ../NEWS:7021 ../NEWS:10049 ../NEWS:11732 ../NEWS:12700 ../NEWS:13219 -#: ../NEWS:14133 ../NEWS:14657 ../NEWS:16924 ../NEWS:18131 ../NEWS:22358 -#: ../NEWS:24380 ../NEWS:24779 ../NEWS:26189 ../NEWS:28049 ../NEWS:28883 -#: ../NEWS:29291 ../NEWS:29579 ../NEWS:29866 ../NEWS:30736 ../NEWS:31169 -#: ../NEWS:32327 ../NEWS:33210 ../NEWS:33679 ../NEWS:34061 ../NEWS:34452 -#: ../NEWS:34834 ../NEWS:36572 ../NEWS:37521 ../NEWS:38070 ../NEWS:38390 -#: ../NEWS:38639 ../NEWS:41359 ../NEWS:41763 ../NEWS:41993 ../NEWS:42151 -#: ../NEWS:42367 ../NEWS:42620 ../NEWS:43796 ../NEWS:44082 ../NEWS:45953 -#: ../NEWS:46493 ../NEWS:46847 ../NEWS:47239 ../NEWS:47617 ../NEWS:48089 -#: ../NEWS:48415 ../NEWS:49529 ../NEWS:49802 ../NEWS:50004 ../NEWS:50265 -#: ../NEWS:51384 ../NEWS:52684 ../NEWS:52852 ../NEWS:53394 ../NEWS:53911 -#: ../NEWS:54244 ../NEWS:54756 ../NEWS:56780 +#: ../NEWS:462 ../NEWS:1352 ../NEWS:1714 ../NEWS:2869 ../NEWS:3583 ../NEWS:5516 +#: ../NEWS:7143 ../NEWS:10171 ../NEWS:11854 ../NEWS:12822 ../NEWS:13341 +#: ../NEWS:14255 ../NEWS:14779 ../NEWS:17046 ../NEWS:18253 ../NEWS:22480 +#: ../NEWS:24502 ../NEWS:24901 ../NEWS:26311 ../NEWS:28171 ../NEWS:29005 +#: ../NEWS:29413 ../NEWS:29701 ../NEWS:29988 ../NEWS:30858 ../NEWS:31291 +#: ../NEWS:32449 ../NEWS:33332 ../NEWS:33801 ../NEWS:34183 ../NEWS:34574 +#: ../NEWS:34956 ../NEWS:36694 ../NEWS:37643 ../NEWS:38192 ../NEWS:38512 +#: ../NEWS:38761 ../NEWS:41481 ../NEWS:41885 ../NEWS:42115 ../NEWS:42273 +#: ../NEWS:42489 ../NEWS:42742 ../NEWS:43918 ../NEWS:44204 ../NEWS:46075 +#: ../NEWS:46615 ../NEWS:46969 ../NEWS:47361 ../NEWS:47739 ../NEWS:48211 +#: ../NEWS:48537 ../NEWS:49651 ../NEWS:49924 ../NEWS:50126 ../NEWS:50387 +#: ../NEWS:51506 ../NEWS:52806 ../NEWS:52974 ../NEWS:53516 ../NEWS:54033 +#: ../NEWS:54366 ../NEWS:54878 ../NEWS:56902 msgid "IDLE" msgstr "" -#: ../NEWS:361 +#: ../NEWS:464 +msgid "" +":gh:`154511`: Consolidate IDLE's mouse wheel handling in ``idlelib.util``. " +"``wheel_event`` moves there from ``idlelib.tree`` and joins ``x11_buttons``, " +"which tells whether Tk reports wheel rotations to a widget as ````/" +"```` events, and ``bind_wheel``, which binds whichever events Tk " +"sends." +msgstr "" + +#: ../NEWS:470 msgid "" ":gh:`156896`: Stop deleting tkinter submodules when idlelib.run is imported." msgstr "" -#: ../NEWS:364 ../NEWS:1282 ../NEWS:2441 ../NEWS:2969 ../NEWS:3790 ../NEWS:3829 -#: ../NEWS:4044 ../NEWS:4183 ../NEWS:4669 ../NEWS:4952 ../NEWS:5777 -#: ../NEWS:6143 ../NEWS:6721 ../NEWS:7273 ../NEWS:7622 ../NEWS:8087 -#: ../NEWS:8775 ../NEWS:12706 ../NEWS:13228 ../NEWS:14665 ../NEWS:16930 -#: ../NEWS:18141 ../NEWS:18488 ../NEWS:19491 ../NEWS:19828 ../NEWS:22380 -#: ../NEWS:23278 ../NEWS:23897 ../NEWS:28083 ../NEWS:30236 ../NEWS:30748 -#: ../NEWS:32758 ../NEWS:33220 ../NEWS:33693 ../NEWS:36675 ../NEWS:37538 -#: ../NEWS:38077 ../NEWS:38419 ../NEWS:41542 ../NEWS:42164 ../NEWS:42381 -#: ../NEWS:42641 ../NEWS:43247 ../NEWS:43835 ../NEWS:46150 ../NEWS:46538 -#: ../NEWS:46879 ../NEWS:47302 ../NEWS:47789 ../NEWS:48154 ../NEWS:48548 -#: ../NEWS:48622 ../NEWS:49607 ../NEWS:50068 ../NEWS:50376 ../NEWS:51636 -#: ../NEWS:52745 ../NEWS:53571 ../NEWS:54094 ../NEWS:54781 ../NEWS:55000 -#: ../NEWS:55208 ../NEWS:57120 +#: ../NEWS:472 +msgid "" +":gh:`66172`: IDLE no longer fails to start when a user configuration file is " +"corrupt. The unparsable file is renamed with a \".bad\" suffix, default " +"settings are used instead, and a warning lists the affected files." +msgstr "" + +#: ../NEWS:476 +msgid "" +":gh:`90304`: Prevent IDLE from failing to start when a font reports a zero " +"width for the ``'0'`` character. Such a broken font caused a :exc:" +"`ZeroDivisionError`; the editor now falls back to the configured width." +msgstr "" + +#: ../NEWS:482 ../NEWS:1404 ../NEWS:2563 ../NEWS:3091 ../NEWS:3912 ../NEWS:3951 +#: ../NEWS:4166 ../NEWS:4305 ../NEWS:4791 ../NEWS:5074 ../NEWS:5899 +#: ../NEWS:6265 ../NEWS:6843 ../NEWS:7395 ../NEWS:7744 ../NEWS:8209 +#: ../NEWS:8897 ../NEWS:12828 ../NEWS:13350 ../NEWS:14787 ../NEWS:17052 +#: ../NEWS:18263 ../NEWS:18610 ../NEWS:19613 ../NEWS:19950 ../NEWS:22502 +#: ../NEWS:23400 ../NEWS:24019 ../NEWS:28205 ../NEWS:30358 ../NEWS:30870 +#: ../NEWS:32880 ../NEWS:33342 ../NEWS:33815 ../NEWS:36797 ../NEWS:37660 +#: ../NEWS:38199 ../NEWS:38541 ../NEWS:41664 ../NEWS:42286 ../NEWS:42503 +#: ../NEWS:42763 ../NEWS:43369 ../NEWS:43957 ../NEWS:46272 ../NEWS:46660 +#: ../NEWS:47001 ../NEWS:47424 ../NEWS:47911 ../NEWS:48276 ../NEWS:48670 +#: ../NEWS:48744 ../NEWS:49729 ../NEWS:50190 ../NEWS:50498 ../NEWS:51758 +#: ../NEWS:52867 ../NEWS:53693 ../NEWS:54216 ../NEWS:54903 ../NEWS:55122 +#: ../NEWS:55330 ../NEWS:57242 msgid "Tools/Demos" msgstr "" -#: ../NEWS:366 +#: ../NEWS:484 msgid "" ":gh:`113318`: Fix Argument Clinic for ``@getter`` and ``@setter`` in a " "preprocessor conditional block. It failed with an internal error. Argument " @@ -821,34 +1016,41 @@ msgid "" "invalid or duplicated entries of :c:type:`PyGetSetDef`." msgstr "" -#: ../NEWS:372 +#: ../NEWS:490 msgid "" ":gh:`64502`: Fix Argument Clinic support of parameters with a default value " "used together with optional groups. Such parameters were always required in " "the generated parsing code." msgstr "" -#: ../NEWS:377 ../NEWS:1296 ../NEWS:1597 ../NEWS:2414 ../NEWS:2873 ../NEWS:3711 -#: ../NEWS:4027 ../NEWS:4160 ../NEWS:4376 ../NEWS:4605 ../NEWS:4919 -#: ../NEWS:5658 ../NEWS:6096 ../NEWS:6635 ../NEWS:7187 ../NEWS:7554 -#: ../NEWS:7987 ../NEWS:8649 ../NEWS:10762 ../NEWS:11737 ../NEWS:12206 -#: ../NEWS:12714 ../NEWS:13242 ../NEWS:14149 ../NEWS:14673 ../NEWS:16990 -#: ../NEWS:18148 ../NEWS:18493 ../NEWS:18796 ../NEWS:19500 ../NEWS:19838 -#: ../NEWS:20260 ../NEWS:22415 ../NEWS:23291 ../NEWS:23903 ../NEWS:24389 -#: ../NEWS:24787 ../NEWS:25233 ../NEWS:25741 ../NEWS:26194 ../NEWS:28104 -#: ../NEWS:28902 ../NEWS:29298 ../NEWS:29586 ../NEWS:29880 ../NEWS:30245 -#: ../NEWS:30758 ../NEWS:31182 ../NEWS:32360 ../NEWS:32771 ../NEWS:33232 -#: ../NEWS:33705 ../NEWS:34076 ../NEWS:34463 ../NEWS:34850 ../NEWS:36700 -#: ../NEWS:37544 ../NEWS:38082 ../NEWS:38426 ../NEWS:41581 ../NEWS:41671 -#: ../NEWS:42387 ../NEWS:42957 ../NEWS:43254 ../NEWS:43847 ../NEWS:44109 -#: ../NEWS:46181 ../NEWS:46556 ../NEWS:46889 ../NEWS:47309 ../NEWS:48112 -#: ../NEWS:48441 ../NEWS:48609 ../NEWS:49110 ../NEWS:49549 ../NEWS:50039 -#: ../NEWS:50368 ../NEWS:51657 ../NEWS:52132 ../NEWS:52712 ../NEWS:55024 -#: ../NEWS:55339 ../NEWS:56943 +#: ../NEWS:495 ../NEWS:1418 ../NEWS:1719 ../NEWS:2536 ../NEWS:2995 ../NEWS:3833 +#: ../NEWS:4149 ../NEWS:4282 ../NEWS:4498 ../NEWS:4727 ../NEWS:5041 +#: ../NEWS:5780 ../NEWS:6218 ../NEWS:6757 ../NEWS:7309 ../NEWS:7676 +#: ../NEWS:8109 ../NEWS:8771 ../NEWS:10884 ../NEWS:11859 ../NEWS:12328 +#: ../NEWS:12836 ../NEWS:13364 ../NEWS:14271 ../NEWS:14795 ../NEWS:17112 +#: ../NEWS:18270 ../NEWS:18615 ../NEWS:18918 ../NEWS:19622 ../NEWS:19960 +#: ../NEWS:20382 ../NEWS:22537 ../NEWS:23413 ../NEWS:24025 ../NEWS:24511 +#: ../NEWS:24909 ../NEWS:25355 ../NEWS:25863 ../NEWS:26316 ../NEWS:28226 +#: ../NEWS:29024 ../NEWS:29420 ../NEWS:29708 ../NEWS:30002 ../NEWS:30367 +#: ../NEWS:30880 ../NEWS:31304 ../NEWS:32482 ../NEWS:32893 ../NEWS:33354 +#: ../NEWS:33827 ../NEWS:34198 ../NEWS:34585 ../NEWS:34972 ../NEWS:36822 +#: ../NEWS:37666 ../NEWS:38204 ../NEWS:38548 ../NEWS:41703 ../NEWS:41793 +#: ../NEWS:42509 ../NEWS:43079 ../NEWS:43376 ../NEWS:43969 ../NEWS:44231 +#: ../NEWS:46303 ../NEWS:46678 ../NEWS:47011 ../NEWS:47431 ../NEWS:48234 +#: ../NEWS:48563 ../NEWS:48731 ../NEWS:49232 ../NEWS:49671 ../NEWS:50161 +#: ../NEWS:50490 ../NEWS:51779 ../NEWS:52254 ../NEWS:52834 ../NEWS:55146 +#: ../NEWS:55461 ../NEWS:57065 msgid "C API" msgstr "" -#: ../NEWS:379 +#: ../NEWS:497 +msgid "" +":gh:`156995`: On Free Threading, ``_PyBytes_Resize(&obj, 1)`` no longer " +"returns a single byte singleton if the current thread is different than the " +"thread which created the object. Patch by Stan Ulbrych." +msgstr "" + +#: ../NEWS:501 msgid "" ":gh:`156101`: Don't set the result in error in :c:func:`PyLong_AsInt32`, :c:" "func:`PyLong_AsUInt32`, :c:func:`PyLong_AsInt64` and :c:func:" @@ -856,7 +1058,7 @@ msgid "" "Stinner." msgstr "" -#: ../NEWS:384 +#: ../NEWS:506 msgid "" ":gh:`131740`: On the free-threaded build, :c:func:" "`PyUnstable_GC_VisitObjects` now also visits frozen objects (objects moved " @@ -864,22 +1066,22 @@ msgid "" "the default build." msgstr "" -#: ../NEWS:391 +#: ../NEWS:513 msgid "Python 3.14.7 final" msgstr "" -#: ../NEWS:393 +#: ../NEWS:515 msgid "*Release date: 2026-08-05*" msgstr "" -#: ../NEWS:398 +#: ../NEWS:520 msgid "" ":gh:`153030`: Fixed quadratic complexity in incremental parsing of long " "unterminated constructs (such as tags or comments) in :class:`html.parser." "HTMLParser`, which could be exploited for a denial of service." msgstr "" -#: ../NEWS:403 +#: ../NEWS:525 msgid "" ":gh:`152674`: The :class:`xml.etree.ElementTree.Element` methods :meth:`~xml." "etree.ElementTree.Element.findall`, :meth:`~xml.etree.ElementTree.Element." @@ -888,25 +1090,25 @@ msgid "" "N]``) on XML documents with many same-tag siblings." msgstr "" -#: ../NEWS:410 +#: ../NEWS:532 msgid "" ":gh:`152216`: Update bundled `libexpat `_ to " "version 2.8.2." msgstr "" -#: ../NEWS:413 +#: ../NEWS:535 msgid "" ":gh:`151987`: The :meth:`tarfile.TarFile.extract` method now applies the " "given filter when it extracts a link target from the archive as a fallback." msgstr "" -#: ../NEWS:417 +#: ../NEWS:539 msgid "" ":gh:`151981`: In :mod:`tarfile`, seeking a stream now stops when end of the " "stream is reached." msgstr "" -#: ../NEWS:420 +#: ../NEWS:542 msgid "" ":gh:`151544`: :file:`Modules/Setup.local` is no longer used as a landmark to " "discover whether Python is running in a source tree, as it could potentially " @@ -914,7 +1116,7 @@ msgid "" "indicator of running in a source tree." msgstr "" -#: ../NEWS:425 +#: ../NEWS:547 msgid "" ":gh:`151558`: Fixed an vulnerability in the :mod:`tarfile` ``data`` and " "``tar`` extraction filters where crafted archives could create a symlink " @@ -922,7 +1124,7 @@ msgid "" "`2025-4330`." msgstr "" -#: ../NEWS:430 +#: ../NEWS:552 msgid "" ":gh:`150743`: :mod:`http.client` now limits the number of chunked-response " "trailer lines it will read to 100, and the number of interim (1xx) responses " @@ -932,151 +1134,151 @@ msgid "" "g22w-6fr4." msgstr "" -#: ../NEWS:437 +#: ../NEWS:559 msgid "" ":gh:`143927`: Normalize all line endings (CR, CRLF, and LF) to LF+TAB when " "writing multi-line configparser values." msgstr "" -#: ../NEWS:440 +#: ../NEWS:562 msgid "" ":gh:`143921`: Reject NUL, CR and LF characters in IMAP commands. Other " "control characters are allowed and sent quoted." msgstr "" -#: ../NEWS:446 +#: ../NEWS:568 msgid "" ":gh:`133931`: Fix data races when setting attributes of function objects on " "the :term:`free threaded ` build." msgstr "" -#: ../NEWS:449 +#: ../NEWS:571 msgid "" ":gh:`154709`: Fix an out-of-bounds access in reverse dictionary iterators " "when the underlying dictionary is cleared and modified after the iterator is " "created." msgstr "" -#: ../NEWS:453 +#: ../NEWS:575 msgid "" ":gh:`154695`: Fix :class:`asyncio.Task` raising :exc:`AttributeError` when " "created with ``eager_start=True`` and no explicit *loop* argument." msgstr "" -#: ../NEWS:456 +#: ../NEWS:578 msgid "" ":gh:`153809`: Fix interpreter crash while deallocating objects of :class:" "`asyncio.Task` on free-threaded builds. Contributed by Sergey Miryanov." msgstr "" -#: ../NEWS:460 +#: ../NEWS:582 msgid "" ":gh:`154275`: Fix a crash when getting deeply nested ``__parameters__`` from " "a :class:`types.GenericAlias` objects." msgstr "" -#: ../NEWS:463 +#: ../NEWS:585 msgid "" ":gh:`153932`: Fix thread safety issue in the ``__reduce__`` method of :py:" "class:`enumerate`." msgstr "" -#: ../NEWS:466 +#: ../NEWS:588 msgid "" ":gh:`153298`: Fixes a data race in :class:`types.GenericAlias` " "``__parameters__`` initialization on free-threading builds." msgstr "" -#: ../NEWS:469 +#: ../NEWS:591 msgid "" ":gh:`153205`: Fix a potential :exc:`SystemError` during vector calls when " "memory allocation fails. A :exc:`MemoryError` is now raised instead." msgstr "" -#: ../NEWS:472 +#: ../NEWS:594 msgid "" ":gh:`152682`: Fix NULL pointer dereference in :func:`compile` when a " "reserved name (e.g. ``__classdict__``) is used as a type parameter name and " "memory allocation fails while formatting the error message." msgstr "" -#: ../NEWS:476 +#: ../NEWS:598 msgid "" ":gh:`152635`: Fix a crash caused when running out of memory creating a :mod:" "`!_interpchannels` channel. Now a :exc:`MemoryError` is correctly raised." msgstr "" -#: ../NEWS:480 +#: ../NEWS:602 msgid "" ":gh:`152375`: Fix undefined behaviour when a :mod:`sys.monitoring` callback " "raised an exception while the program was following a branch or loop." msgstr "" -#: ../NEWS:483 +#: ../NEWS:605 msgid "" ":gh:`152235`: Defer GC tracking of :meth:`set.intersection`, :meth:`set." "difference`, :meth:`set.symmetric_difference`, :meth:`set.union` and ``set." "__sub__``. Patch by Donghee Na." msgstr "" -#: ../NEWS:487 +#: ../NEWS:609 msgid "" ":gh:`152235`: Defer GC tracking of a :class:`set` or :class:`frozenset` to " "the end of its construction from iterable. Patch by Donghee Na." msgstr "" -#: ../NEWS:490 +#: ../NEWS:612 msgid "" ":gh:`152228`: Fix an assertion failure when python is built in a debug mode " "that happened in :meth:`str.replace` under a limited memory situation." msgstr "" -#: ../NEWS:493 +#: ../NEWS:615 msgid "" ":gh:`151763`: Fixes possible crash on :class:`types.CodeType` deallocation." msgstr "" -#: ../NEWS:495 +#: ../NEWS:617 msgid "" ":gh:`152020`: On the free-threaded build, :func:`asyncio.all_tasks` no " "longer loses eager-started tasks when called from a thread other than the " "one running the event loop." msgstr "" -#: ../NEWS:499 +#: ../NEWS:621 msgid "" ":gh:`151763`: Fix a potential crash in :func:`compile`, :func:`exec`, :func:" "`eval` and :func:`ast.parse` when an allocation fails: the parser or " "compiler could return without setting an exception." msgstr "" -#: ../NEWS:503 +#: ../NEWS:625 msgid "" ":gh:`151912`: Fixed a crash in ``type()`` when selecting a metaclass whose " "``tp_new`` slot is ``NULL``. Such metaclasses are now rejected with " "``TypeError`` instead of causing a NULL pointer dereference." msgstr "" -#: ../NEWS:507 +#: ../NEWS:629 msgid "" ":gh:`151905`: Fix OOM error handling in :c:func:`PyFrame_GetBack` to " "propagate exceptions instead of masking them as None." msgstr "" -#: ../NEWS:510 +#: ../NEWS:632 msgid "" ":gh:`151773`: Fix a crash in :func:`contextvars.ContextVar.set` when memory " "allocation fails." msgstr "" -#: ../NEWS:513 +#: ../NEWS:635 msgid "" ":gh:`151126`: Fix a crash when sharing :class:`memoryview` objects between " "interpreters fails due to running out of memory. It now raises a proper :exc:" "`MemoryError`." msgstr "" -#: ../NEWS:517 +#: ../NEWS:639 msgid "" ":gh:`151644`: Fix a data race in :func:`sys.setdlopenflags` and :func:`sys." "getdlopenflags` when called concurrently in the free-threaded build. The " @@ -1084,138 +1286,138 @@ msgid "" "functions now use atomic load/store operations." msgstr "" -#: ../NEWS:523 +#: ../NEWS:645 msgid "" ":gh:`151126`: Avoid possible crash in ``_winapi.c`` where a device has no " "memory left. Now it properly raises a :exc:`MemoryError`. Patch by Ivy Xu." msgstr "" -#: ../NEWS:526 +#: ../NEWS:648 msgid "" ":gh:`151546`: Fix the stack limit check if Python is linked to musl (ex: " "Alpine Linux). Use the stack size set by the linker to compute the stack " "limits. Patch by Victor Stinner." msgstr "" -#: ../NEWS:530 +#: ../NEWS:652 msgid "" ":gh:`151461`: Fix direct execution of files with invalid source encodings to " "report the underlying codec lookup or decoding error instead of the generic " "``SyntaxError: encoding problem`` message. Patch by Bartosz Sławecki." msgstr "" -#: ../NEWS:535 +#: ../NEWS:657 msgid "" ":gh:`151218`: :c:func:`PyConfig_Set` and :func:`sys.set_int_max_str_digits` " "now replace :data:`sys.flags` (create a new object), instead of modifying :" "data:`sys.flags` in-place. Patch by Victor Stinner." msgstr "" -#: ../NEWS:539 +#: ../NEWS:661 msgid "" ":gh:`151253`: If ``import encodings`` (first import) fails at Python " "startup, dump the Python path configuration to help users debugging their " "configuration. Patch by Victor Stinner." msgstr "" -#: ../NEWS:543 +#: ../NEWS:665 msgid "" ":gh:`151238`: Fix a crash when compiling a concatenated f-string or t-string " "if an error occurs when processing one of it's parts." msgstr "" -#: ../NEWS:546 ../NEWS:1023 +#: ../NEWS:668 ../NEWS:1145 msgid "" ":gh:`151126`: Fix a crash, when there's no memory left on a device, which " "happened in :mod:`!_interpchannels` module." msgstr "" -#: ../NEWS:549 ../NEWS:1026 +#: ../NEWS:671 ../NEWS:1148 msgid "Now it raises proper :exc:`MemoryError` errors." msgstr "" -#: ../NEWS:551 +#: ../NEWS:673 msgid "" ":gh:`150902`: Apply an existing optimization of PyCriticalSection (single " "mutex) to PyCriticalSection2: avoid acquiring the same locks that the " "current CS has already acquired." msgstr "" -#: ../NEWS:555 +#: ../NEWS:677 msgid "" ":gh:`151065`: Fix memory leak when using the :ref:`mimalloc memory allocator " "`." msgstr "" -#: ../NEWS:558 +#: ../NEWS:680 msgid "" ":gh:`151029`: On Linux, fix :func:`sys.remote_exec` unable to find remote " "writable memory when ``libpython`` replaced on disk." msgstr "" -#: ../NEWS:561 +#: ../NEWS:683 msgid "" ":gh:`150988`: Fix a reference leak in :exc:`OSError` when attributes are set " "before ``super().__init__()``." msgstr "" -#: ../NEWS:564 +#: ../NEWS:686 msgid "" ":gh:`144774`: Fix data race in :class:`BaseException` when an exception is " "copied while being mutated." msgstr "" -#: ../NEWS:567 +#: ../NEWS:689 msgid "" ":gh:`150411`: Fix a data race in the free-threaded build when :func:`gc." "get_count` reads the young generation allocation count while another thread " "updates it." msgstr "" -#: ../NEWS:571 +#: ../NEWS:693 msgid "" ":gh:`149689`: Fix missing error propagation in parser action helpers when " "memory allocation fails. Patch by Thomas Kowalski." msgstr "" -#: ../NEWS:574 +#: ../NEWS:696 msgid "" ":gh:`149162`: Fix a potential deadlock in :c:func:" "`PyUnicode_InternFromString` and other interning functions in the :term:" "`free-threaded build` when called from C++ static local initializers." msgstr "" -#: ../NEWS:582 +#: ../NEWS:704 msgid "" ":gh:`155009`: Fix :class:`argparse.ArgumentParser` to preserve the program " "name from ``sys.argv[0]`` when a named module is executed as the main " "program without replacing ``sys.argv[0]``." msgstr "" -#: ../NEWS:586 +#: ../NEWS:708 msgid "" ":gh:`155063`: Bump the version of pip bundled in ensurepip to version 26.2.1" msgstr "" -#: ../NEWS:588 +#: ../NEWS:710 msgid "" ":gh:`155063`: Bump the version of pip bundled in ensurepip to version 26.2" msgstr "" -#: ../NEWS:590 +#: ../NEWS:712 msgid "" ":gh:`154936`: Fix the pure Python :mod:`json` decoder to report the correct " "position for invalid literal control characters in JSON strings." msgstr "" -#: ../NEWS:593 +#: ../NEWS:715 msgid "" ":gh:`154892`: Fix a bug in the C accelerator for :mod:`zoneinfo` where :" "class:`datetime.datetime` subclasses returning ``-1`` for ``hour``, " "``minute``, or ``second`` could incorrectly raise a :exc:`SystemError`." msgstr "" -#: ../NEWS:597 +#: ../NEWS:719 msgid "" ":gh:`154848`: The :mod:`pickle` C accelerator now enforces frame boundaries " "when unpickling, as the pure Python implementation already did. An argument " @@ -1225,21 +1427,21 @@ msgid "" "diverging from the :mod:`pickletools` disassembly of the same pickle." msgstr "" -#: ../NEWS:605 +#: ../NEWS:727 msgid "" ":gh:`109638`: Fix exponential time in :meth:`csv.Sniffer.sniff` for a sample " "which contains many quote characters. A doubled quote character is now also " "detected in a field which contains the delimiter or a line break." msgstr "" -#: ../NEWS:609 +#: ../NEWS:731 msgid "" ":gh:`98820`: Fix quadratic time in :meth:`csv.Sniffer.sniff` for a sample " "which contains quoted fields, in particular for a single column of quoted " "fields." msgstr "" -#: ../NEWS:613 +#: ../NEWS:735 msgid "" ":gh:`154738`: Fix :meth:`!ExternalEntityParserCreate` not propagating the " "reparse-deferral setting to the subparser, which left :meth:`!" @@ -1247,7 +1449,7 @@ msgid "" "tonghuaroot." msgstr "" -#: ../NEWS:618 +#: ../NEWS:740 msgid "" ":gh:`93251`: Fix :exc:`UnicodeDecodeError` in :mod:`socket` functions (such " "as :func:`~socket.getaddrinfo` and :func:`~socket.gethostbyaddr`) when the " @@ -1255,20 +1457,20 @@ msgid "" "locale encoding." msgstr "" -#: ../NEWS:623 +#: ../NEWS:745 msgid "" ":gh:`154551`: Fix :func:`ctypes.util.find_library` returning ``None`` in non-" "UTF-8 locales." msgstr "" -#: ../NEWS:626 +#: ../NEWS:748 msgid "" ":gh:`79366`: Fixed a race condition in :mod:`logging`: if a handler was " "removed while a record was being emitted, the following handlers of the same " "logger could be skipped." msgstr "" -#: ../NEWS:630 +#: ../NEWS:752 msgid "" ":gh:`73458`: Fix :func:`logging.config.listen`: it left the caller waiting " "for the ``ready`` event forever if the server could not be started, for " @@ -1277,66 +1479,66 @@ msgid "" "is only aliased to ``::1``." msgstr "" -#: ../NEWS:636 +#: ../NEWS:758 msgid "" ":gh:`154460`: Fix :func:`time.strftime` and :meth:`datetime.datetime." "strftime` returning a wrong ISO 8601 week number (``%V``) on OpenBSD." msgstr "" -#: ../NEWS:640 +#: ../NEWS:762 msgid "" ":gh:`154435`: Fix :func:`os.posix_fadvise` and :func:`os.posix_fallocate` on " "DragonFly BSD: they raised :exc:`OSError` with a meaningless error code, " "because these functions return -1 and set ``errno`` there." msgstr "" -#: ../NEWS:644 +#: ../NEWS:766 msgid "" ":gh:`154399`: Fix :mod:`venv` activation in a non-interactive csh: " "``activate.csh`` no longer fails when the ``prompt`` variable is not set." msgstr "" -#: ../NEWS:647 +#: ../NEWS:769 msgid "" ":gh:`154389`: Fix :func:`uuid.uuid1` on OpenBSD: it returned a version 4 " "UUID, because ``uuid_create()`` generates random UUIDs on this platform." msgstr "" -#: ../NEWS:650 +#: ../NEWS:772 msgid "" ":gh:`154324`: Fix :func:`os.sendfile` on illumos: it no longer reports a " "successful transfer when the underlying system call failed without writing " "any data." msgstr "" -#: ../NEWS:654 +#: ../NEWS:776 msgid "" ":gh:`154307`: Fix :meth:`tempfile.TemporaryDirectory.cleanup` on DragonFly " "BSD, where removing a file with the ``UF_NOUNLINK`` flag failed with " "``EISDIR`` instead of ``EPERM``." msgstr "" -#: ../NEWS:658 +#: ../NEWS:780 msgid "" ":gh:`154291`: Fix :func:`socket.has_dualstack_ipv6` to return ``False`` on " "platforms such as DragonFly BSD where setting ``IPV6_V6ONLY`` to 0 silently " "has no effect." msgstr "" -#: ../NEWS:662 +#: ../NEWS:784 msgid "" ":gh:`154283`: On DragonFly BSD, :func:`threading.get_native_id` now returns " "a value that is unique across processes, matching the other platforms." msgstr "" -#: ../NEWS:665 +#: ../NEWS:787 msgid "" ":gh:`154258`: Fix a crash in :meth:`mmap.mmap.resize` on NetBSD when growing " "a shared anonymous mapping. :meth:`!resize` now raises :exc:`ValueError` in " "this case, as it already did on Linux." msgstr "" -#: ../NEWS:669 +#: ../NEWS:791 msgid "" ":gh:`131565`: :func:`ctypes.util.dllist` now works on NetBSD. It is " "implemented in the :mod:`!_ctypes` extension module so that " @@ -1345,20 +1547,20 @@ msgid "" "called through ctypes." msgstr "" -#: ../NEWS:675 +#: ../NEWS:797 msgid "" ":gh:`154225`: Fix :func:`os.openpty` on Solaris and illumos: it no longer " "leaves the pseudo-terminal as the controlling terminal of the calling " "process." msgstr "" -#: ../NEWS:679 +#: ../NEWS:801 msgid "" ":gh:`154227`: Fix :func:`os.posix_openpt` on OpenBSD, where it rejected the :" "data:`~os.O_CLOEXEC` flag." msgstr "" -#: ../NEWS:682 +#: ../NEWS:804 msgid "" ":gh:`145030`: Fix :mod:`asyncio` write pipe transports for named FIFOs on " "macOS and Solaris. Unread data sitting in the FIFO made the transport " @@ -1366,23 +1568,23 @@ msgid "" "transport." msgstr "" -#: ../NEWS:687 +#: ../NEWS:809 msgid "" ":gh:`154001`: Fix :func:`random.binomialvariate` raising :exc:" "`ZeroDivisionError` when :func:`random.random` returns zero." msgstr "" -#: ../NEWS:690 +#: ../NEWS:812 msgid "" ":gh:`153908`: Fix data race when calling :func:`repr` on :class:`itertools." "count` under the :term:`free-threaded build`." msgstr "" -#: ../NEWS:693 +#: ../NEWS:815 msgid ":gh:`153896`: Deduplicate unhashable args in :data:`typing.Literal`." msgstr "" -#: ../NEWS:695 +#: ../NEWS:817 msgid "" ":gh:`153864`: On a wide :mod:`curses` build, :meth:`curses.window.insch` now " "inserts a non-ASCII byte as the character it encodes in the window's " @@ -1390,34 +1592,34 @@ msgid "" "code point." msgstr "" -#: ../NEWS:700 +#: ../NEWS:822 msgid "" ":gh:`153862`: On a wide :mod:`curses` build, :meth:`curses.window.inch` now " "returns the locale-encoded byte of a non-ASCII character, matching :meth:" "`~curses.window.instr`, instead of the low byte of its code point." msgstr "" -#: ../NEWS:704 +#: ../NEWS:826 msgid "" ":gh:`146011`: Fix a heap-use-after-free in the C implementation of :mod:" "`decimal` when calling :func:`repr` after deleting the :class:`~decimal." "Context`." msgstr "" -#: ../NEWS:708 +#: ../NEWS:830 msgid "" ":gh:`153761`: Fix cancelling :meth:`asyncio.loop.sock_accept` dropping a " "pending connection." msgstr "" -#: ../NEWS:711 +#: ../NEWS:833 msgid "" ":gh:`153695`: Hashing a :class:`sqlite3.Row` that contains an unhashable " "value now raises :exc:`TypeError` instead of :exc:`SystemError`. Patch by " "tonghuaroot." msgstr "" -#: ../NEWS:715 +#: ../NEWS:837 msgid "" ":gh:`127049`: Fix a race condition in :mod:`asyncio` on Unix where :meth:" "`asyncio.subprocess.Process.send_signal`, :meth:`~asyncio.subprocess.Process." @@ -1426,14 +1628,14 @@ msgid "" "when ThreadedChildWatcher is used. Patch by Kumar Aditya." msgstr "" -#: ../NEWS:722 +#: ../NEWS:844 msgid "" ":gh:`153658`: Fix :meth:`sqlite3.Connection.iterdump` raising :exc:`sqlite3." "OperationalError` when a table name contains a single quote. Patch by " "tonghuaroot." msgstr "" -#: ../NEWS:726 +#: ../NEWS:848 msgid "" ":gh:`85943`: Fix :mod:`struct` functions raising :exc:`BytesWarning` under " "the ``-bb`` command line option when a :class:`str` format is used after an " @@ -1441,7 +1643,7 @@ msgid "" "longer mixes :class:`str` and :class:`bytes` keys." msgstr "" -#: ../NEWS:731 +#: ../NEWS:853 msgid "" ":gh:`153404`: :class:`urllib.robotparser.RobotFileParser` now silently " "ignores a ``Crawl-delay`` or ``Request-rate`` value written with non-decimal " @@ -1449,33 +1651,33 @@ msgid "" "`ValueError` and aborting the parse of the whole ``robots.txt`` file." msgstr "" -#: ../NEWS:736 +#: ../NEWS:858 msgid "" ":gh:`153417`: Error messages from :meth:`imaplib.IMAP4.select` and :meth:" "`imaplib.IMAP4.uid` no longer raise :exc:`BytesWarning` under :option:`!-bb` " "when the mailbox or command argument is :class:`bytes`." msgstr "" -#: ../NEWS:740 +#: ../NEWS:862 msgid "" ":gh:`153406`: :func:`email.utils.parsedate_to_datetime` now raises :exc:" "`ValueError` instead of :exc:`OverflowError` when the parsed year or " "timezone offset is out of range, matching its documented behavior." msgstr "" -#: ../NEWS:744 +#: ../NEWS:866 msgid "" ":gh:`153083`: Defer GC tracking of an :class:`array.array` to the end of its " "construction. Patch by Donghee Na." msgstr "" -#: ../NEWS:747 +#: ../NEWS:869 msgid "" ":gh:`153292`: Fix data race in repr of :class:`threading.RLock` in free-" "threading build." msgstr "" -#: ../NEWS:750 +#: ../NEWS:872 msgid "" ":gh:`143990`: A :class:`tkinter.font.Font` created from a named font, " "including by :meth:`~tkinter.font.Font.copy`, now copies its configured " @@ -1483,37 +1685,37 @@ msgid "" "preserving a size specified in pixels (a negative size)." msgstr "" -#: ../NEWS:755 +#: ../NEWS:877 msgid "" ":gh:`148286`: Fix undefined behavior in :attr:`compression.zstd." "ZstdDecompressor.unused_data` when a complete frame was decompressed in a " "single call." msgstr "" -#: ../NEWS:759 +#: ../NEWS:881 msgid ":gh:`153210`: Fix crash on :mod:`array` import under a memory pressure." msgstr "" -#: ../NEWS:761 +#: ../NEWS:883 msgid "" ":gh:`153200`: Fix :func:`math.isqrt` returning an incorrect result for " "arguments not less than 2**64 that are instances of an :class:`int` subclass " "with an overridden comparison operator." msgstr "" -#: ../NEWS:765 +#: ../NEWS:887 msgid "" ":gh:`153068`: Fix :meth:`!cProfile.Profile.enable` to no longer overwrite " "errors from :mod:`sys.monitoring`." msgstr "" -#: ../NEWS:768 +#: ../NEWS:890 msgid "" ":gh:`153062`: Fix a crash when concurrently iterating an :func:`itertools." "tee` iterator on the free-threaded build." msgstr "" -#: ../NEWS:771 +#: ../NEWS:893 msgid "" ":gh:`153056`: Fix :class:`string.Template` raising a spurious :exc:" "`ValueError` when the *pattern* attribute is a compiled regular expression " @@ -1521,27 +1723,27 @@ msgid "" "also occurred as a data race on the first concurrent use." msgstr "" -#: ../NEWS:776 +#: ../NEWS:898 msgid "" ":gh:`153037`: Fix :class:`~compression.zstd.ZstdFile` raising :exc:" "`AttributeError` instead of :exc:`io.UnsupportedOperation` when iterating " "over a file that is not open for reading." msgstr "" -#: ../NEWS:780 +#: ../NEWS:902 msgid "" ":gh:`135661`: Fix :class:`html.parser.HTMLParser`: an abruptly closed empty " "comment (```` or ````) no longer extends up to a later ``-->`` in " "the same :meth:`~html.parser.HTMLParser.feed` call." msgstr "" -#: ../NEWS:784 +#: ../NEWS:906 msgid "" ":gh:`152851`: Prevent a crash when allocation fails while copying a :func:" "`BLAKE-2s/2b ` object. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:787 +#: ../NEWS:909 msgid "" ":gh:`54930`: Error responses of :class:`http.server.BaseHTTPRequestHandler` " "to malformed request lines now include a status line and headers instead of " @@ -1549,7 +1751,7 @@ msgid "" "word ``GET`` request line) now receives an HTTP/0.9 style response." msgstr "" -#: ../NEWS:792 +#: ../NEWS:914 msgid "" ":gh:`119592`: Fix :class:`concurrent.futures.ProcessPoolExecutor` stranding " "submitted work forever when a worker process exited upon reaching its " @@ -1563,33 +1765,33 @@ msgid "" "crash the executor management thread." msgstr "" -#: ../NEWS:804 +#: ../NEWS:926 msgid "" ":gh:`152951`: :class:`collections.deque` prevent rare crash when calling " "``extend`` under high memory pressure conditions." msgstr "" -#: ../NEWS:807 +#: ../NEWS:929 msgid "" ":gh:`150880`: Normalize non-extended Windows paths before appending the " "wildcard used by ``os.listdir()`` and ``os.scandir()``, making paths with " "trailing spaces behave consistently with other filesystem APIs." msgstr "" -#: ../NEWS:811 +#: ../NEWS:933 msgid "" ":gh:`152849`: Out-of-range float and integer timestamps now raise :exc:" "`OverflowError` with the same message. Patch by tonghuaroot." msgstr "" -#: ../NEWS:814 +#: ../NEWS:936 msgid "" ":gh:`152847`: Reject a POSIX TZ transition rule with non-digit characters in " "the day-of-year field in the pure-Python :mod:`zoneinfo` parser. Patch by " "tonghuaroot." msgstr "" -#: ../NEWS:818 +#: ../NEWS:940 msgid "" ":gh:`108280`: Connecting :mod:`imaplib` to a server that does not send a " "valid IMAP4 greeting (for example a POP3 server answering on the IMAP port) " @@ -1597,7 +1799,7 @@ msgid "" "IMAP4.error: None``." msgstr "" -#: ../NEWS:823 +#: ../NEWS:945 msgid "" ":gh:`63121`: :mod:`imaplib` now refreshes the cached capability list after a " "successful :meth:`~imaplib.IMAP4.login` or :meth:`~imaplib.IMAP4." @@ -1608,7 +1810,7 @@ msgid "" "redundant ``CAPABILITY`` command." msgstr "" -#: ../NEWS:832 +#: ../NEWS:954 msgid "" ":gh:`88574`: :mod:`imaplib` no longer fails when a server sends a spurious " "blank line after the counted data of a literal, including after a literal " @@ -1616,7 +1818,7 @@ msgid "" "Such blank lines are now skipped without swallowing the following line." msgstr "" -#: ../NEWS:837 +#: ../NEWS:959 msgid "" ":gh:`152502`: Detect the :mod:`curses` mouse interface (:func:`~curses." "getmouse`, the ``BUTTON*`` constants, and others) with a configure " @@ -1626,13 +1828,13 @@ msgid "" "``windows-curses``)." msgstr "" -#: ../NEWS:844 +#: ../NEWS:966 msgid "" ":gh:`151842`: Fix a crash in :func:`!_interpreters.capture_exception` when :" "exc:`MemoryError` happens. Patch by Amrutha Modela." msgstr "" -#: ../NEWS:847 +#: ../NEWS:969 msgid "" ":gh:`40038`: :mod:`imaplib` now again quotes command arguments when " "necessary, for example mailbox names containing a space. Such quoting was " @@ -1642,7 +1844,7 @@ msgid "" "unchanged, so code that quotes arguments itself keeps working." msgstr "" -#: ../NEWS:854 +#: ../NEWS:976 msgid "" ":gh:`50966`: Fix unbounded recursion in :mod:`turtle` when a mouse event " "handler that moves the turtle is reentered while the screen is being " @@ -1650,7 +1852,7 @@ msgid "" "previously crash the interpreter." msgstr "" -#: ../NEWS:859 +#: ../NEWS:981 msgid "" ":gh:`152569`: Fix :func:`asyncio.wait` leaking waiting tasks via the await-" "graph when racing a future that never resolves. The waiting task is now " @@ -1658,7 +1860,7 @@ msgid "" "returns, even for pending futures." msgstr "" -#: ../NEWS:864 +#: ../NEWS:986 msgid "" ":gh:`78335`: Update the docstrings of :mod:`tkinter` and :mod:`tkinter.ttk` " "widget classes to list all supported widget options, including options added " @@ -1666,26 +1868,26 @@ msgid "" "previously had no option list at all." msgstr "" -#: ../NEWS:869 +#: ../NEWS:991 msgid "" ":gh:`152431`: Fix ``asyncio.StreamWriter.start_tls()`` to keep the linked " "``StreamReader`` transport in sync with the upgraded transport." msgstr "" -#: ../NEWS:872 +#: ../NEWS:994 msgid "" ":gh:`151126`: Fix two crashes in :mod:`tkinter` and :mod:`socket` modules " "initialization under a memory pressure. Sets missing :exc:`MemoryError`." msgstr "" -#: ../NEWS:875 +#: ../NEWS:997 msgid "" ":gh:`133031`: :class:`curses.textpad.Textbox` now enters and reads back the " "non-ASCII characters of an 8-bit locale encoding, instead of mangling them " "with a 7-bit mask." msgstr "" -#: ../NEWS:879 +#: ../NEWS:1001 msgid "" ":gh:`71880`: :class:`curses.textpad.Textbox` now lets the lower-right cell " "of the window be edited. Writing it with :meth:`~curses.window.addch` would " @@ -1694,7 +1896,7 @@ msgid "" "which keeps the cursor in place." msgstr "" -#: ../NEWS:885 +#: ../NEWS:1007 msgid "" ":gh:`83274`: Deallocating a :mod:`tkinter` application from a thread other " "than the one it was created in no longer crashes the interpreter. The " @@ -1702,14 +1904,14 @@ msgid "" "reported." msgstr "" -#: ../NEWS:890 +#: ../NEWS:1012 msgid "" ":gh:`152305`: Fix the pure-Python :meth:`datetime.time.strftime` " "implementation raising :exc:`AttributeError` for the year directives. Patch " "by tonghuaroot." msgstr "" -#: ../NEWS:894 +#: ../NEWS:1016 msgid "" ":gh:`88758`: :meth:`!tkinter.Misc.focus_get`, :meth:`!focus_displayof`, :" "meth:`!focus_lastfor` and :meth:`!winfo_containing` now return ``None`` " @@ -1717,21 +1919,21 @@ msgid "" "`tkinter` (for example a torn-off menu)." msgstr "" -#: ../NEWS:899 +#: ../NEWS:1021 msgid "" ":gh:`38464`: :meth:`!tkinter.Misc.nametowidget` now resolves the auto-" "generated names of cloned menus (a menu used as a menubar or a cascade) back " "to the original widget." msgstr "" -#: ../NEWS:903 +#: ../NEWS:1025 msgid "" ":gh:`152248`: Make the C and pure-Python :mod:`zoneinfo` parsers validate " "POSIX TZ abbreviations consistently, rejecting unquoted abbreviations with " "non-letter characters and empty quoted abbreviations. Patch by tonghuaroot." msgstr "" -#: ../NEWS:908 +#: ../NEWS:1030 msgid "" ":gh:`80937`: Fix a memory leak in :mod:`tkinter` when a Tcl command created " "with ``createcommand`` was not explicitly removed before the interpreter was " @@ -1739,14 +1941,14 @@ msgid "" "reference cycle." msgstr "" -#: ../NEWS:913 +#: ../NEWS:1035 msgid "" ":gh:`152246`: Fix the pure-Python :mod:`zoneinfo` parser accepting an " "invalid POSIX TZ transition rule with a non-period separator. Patch by " "tonghuaroot." msgstr "" -#: ../NEWS:917 +#: ../NEWS:1039 msgid "" ":gh:`139816`: Fix a hang in :mod:`tkinter` on interactive Python built " "without :mod:`readline`. An exception raised in a callback no longer causes " @@ -1754,7 +1956,7 @@ msgid "" "callbacks now keep running until input is actually available on stdin." msgstr "" -#: ../NEWS:923 +#: ../NEWS:1045 msgid "" ":gh:`139145`: Fix a busy loop in :mod:`tkinter` on interactive Python. When " "a Tcl command running its own event loop (such as ``vwait`` or :meth:`!" @@ -1763,7 +1965,7 @@ msgid "" "is available. Based on a patch by Michiel de Hoon." msgstr "" -#: ../NEWS:929 +#: ../NEWS:1051 msgid "" ":gh:`152212`: Fix the pure-Python :mod:`zoneinfo` parser accepting a POSIX " "TZ string with a ``std`` abbreviation but no offset. This is invalid per " @@ -1771,13 +1973,13 @@ msgid "" "tonghuaroot." msgstr "" -#: ../NEWS:934 +#: ../NEWS:1056 msgid "" ":gh:`152156`: Fix a possible crash in :func:`concurrent.interpreters.create` " "under limited memory conditions." msgstr "" -#: ../NEWS:937 +#: ../NEWS:1059 msgid "" ":gh:`152157`: The C implementations of :meth:`~datetime.datetime." "fromisoformat` and :meth:`~datetime.time.fromisoformat` now reject a decimal " @@ -1785,72 +1987,72 @@ msgid "" "designator." msgstr "" -#: ../NEWS:942 +#: ../NEWS:1064 msgid "" ":gh:`151763`: Fix crash in :func:`!_interpqueues.create` whe :exc:" "`MemoryError` happens on queue creation." msgstr "" -#: ../NEWS:945 +#: ../NEWS:1067 msgid "" ":gh:`105895`: Add :keyword:`match` and :keyword:`case` to the list of " "supported topics by :func:`help`." msgstr "" -#: ../NEWS:948 +#: ../NEWS:1070 msgid "" ":gh:`152079`: Fix :meth:`datetime.datetime.fromisoformat` in the C " "implementation dropping the sub-second part of a UTC offset whose whole-" "second part is zero, matching the pure-Python implementation." msgstr "" -#: ../NEWS:952 +#: ../NEWS:1074 msgid "" ":gh:`152052`: The :mod:`json` C accelerator now correctly reports an " "unterminated string for a ``\\uXXXX`` escape at the end of the input." msgstr "" -#: ../NEWS:955 +#: ../NEWS:1077 msgid "" ":gh:`152060`: Fix :meth:`datetime.datetime.fromisoformat` raising :exc:" "`AssertionError` instead of :exc:`ValueError` for some malformed strings in " "the pure-Python implementation, matching the C implementation." msgstr "" -#: ../NEWS:959 +#: ../NEWS:1081 msgid "" ":gh:`126219`: Fixed a crash in :class:`tkinter.Tk` when *className* contains " "a non-BMP character and tkinter is built against Tcl/Tk 8.x. Such a name is " "now rejected with a :exc:`ValueError`." msgstr "" -#: ../NEWS:963 +#: ../NEWS:1085 msgid "" ":gh:`86165`: Fix :func:`imaplib.Time2Internaldate` to use the local timezone " "offset for ``time.struct_time`` values with ``tm_gmtoff`` set to ``None``, " "as returned by ``datetime.datetime.timetuple()``. Contributed by Xiao Yuan." msgstr "" -#: ../NEWS:968 +#: ../NEWS:1090 msgid "" ":gh:`151814`: Fix unbounded memory growth in :class:`io.TextIOWrapper` when " "repeatedly writing an empty string." msgstr "" -#: ../NEWS:971 +#: ../NEWS:1093 msgid "" ":gh:`151770`: Fix :meth:`datetime.datetime.fromisoformat` raising :exc:" "`AssertionError` instead of :exc:`ValueError` for an out-of-range month " "combined with a ``24:00`` time." msgstr "" -#: ../NEWS:975 +#: ../NEWS:1097 msgid "" ":gh:`151665`: :func:`inspect.signature` now works on the lazy evaluators of " "type aliases and type parameters instead of raising :exc:`ValueError`." msgstr "" -#: ../NEWS:978 +#: ../NEWS:1100 msgid "" ":gh:`151695`: Fix a use-after-free in the :mod:`curses` module. The " "encoding of the initial screen, used by :func:`curses.unctrl` and :func:" @@ -1859,27 +2061,27 @@ msgid "" "deallocated." msgstr "" -#: ../NEWS:984 +#: ../NEWS:1106 msgid "" ":gh:`151596`: Add missing ``size`` positional argument to the pure-Python " "implementation of :meth:`io.TextIOBase.readline`." msgstr "" -#: ../NEWS:987 +#: ../NEWS:1109 msgid "" ":gh:`151640`: Fix a data race in :class:`io.BytesIO` in free-threaded builds " "when whole-buffer reads or peeks, or :meth:`~io.BytesIO.getvalue`, share the " "internal buffer with concurrent writes." msgstr "" -#: ../NEWS:991 +#: ../NEWS:1113 msgid "" ":gh:`148660`: Fix a crash in :meth:`!collections.OrderedDict.copy` when a " "key's ``__eq__`` or a subclass method mutates the dict during the copy. Now " "raises :exc:`RuntimeError` instead, as iteration does." msgstr "" -#: ../NEWS:995 +#: ../NEWS:1117 msgid "" ":gh:`151497`: Opening a :mod:`tarfile` archive no longer attempts to pre-" "allocate a huge buffer when a crafted or truncated member claims an " @@ -1888,26 +2090,26 @@ msgid "" "longer trigger memory exhaustion." msgstr "" -#: ../NEWS:1001 +#: ../NEWS:1123 msgid "" ":gh:`151403`: Fixed a crash in :class:`subprocess.Popen` (and " "``_posixsubprocess.fork_exec``) when an ``argv`` item's :meth:`~os.PathLike." "__fspath__` concurrently mutates the ``args`` sequence being converted." msgstr "" -#: ../NEWS:1006 +#: ../NEWS:1128 msgid "" ":gh:`151390`: Colorize ``match`` in the :term:`REPL` when followed by a " "unary ``+`` or ``-`` operator. Patch by Bartosz Sławecki." msgstr "" -#: ../NEWS:1009 +#: ../NEWS:1131 msgid "" ":gh:`151126`: Fix crash on unset :exc:`MemoryError` on allocation failure " "in :func:`ctypes.get_errno`." msgstr "" -#: ../NEWS:1012 +#: ../NEWS:1134 msgid "" ":gh:`151416`: Fix a crash in :func:`os.spawnv` and :func:`os.spawnve` when " "an *argv* item's :meth:`~os.PathLike.__fspath__` method mutates the *argv* " @@ -1916,17 +2118,17 @@ msgid "" "embedded null, are no longer replaced with a generic :exc:`TypeError`." msgstr "" -#: ../NEWS:1018 +#: ../NEWS:1140 msgid ":gh:`151337`: Avoid possible memory leak in ``tkinter.c`` on Windows." msgstr "" -#: ../NEWS:1020 +#: ../NEWS:1142 msgid "" ":gh:`151126`: Fix a crash when :exc:`MemoryError` in :func:`!os." "_path_splitroot` was not set properly." msgstr "" -#: ../NEWS:1028 +#: ../NEWS:1150 msgid "" ":gh:`119710`: Fix :mod:`asyncio` subprocess :meth:`~asyncio.subprocess." "Process.wait` hanging when the process has exited but one of its pipes is " @@ -1935,7 +2137,7 @@ msgid "" "pipes' state." msgstr "" -#: ../NEWS:1034 +#: ../NEWS:1156 msgid "" ":gh:`151295`: Fixed a crash (use-after-free) in :meth:`bytes.join` and :meth:" "`bytearray.join` that could occur if an item's :meth:`~object.__buffer__` " @@ -1943,50 +2145,50 @@ msgid "" "as a :exc:`RuntimeError` instead." msgstr "" -#: ../NEWS:1039 +#: ../NEWS:1161 msgid "" ":gh:`109940`: Fix Windows :mod:`venv` activation in ``cmd.exe`` to respect " "``VIRTUAL_ENV_DISABLE_PROMPT``." msgstr "" -#: ../NEWS:1042 +#: ../NEWS:1164 msgid "" ":gh:`117807`: Fix :mod:`mimetypes` initialization from MIME map files " "containing invalid UTF-8 bytes." msgstr "" -#: ../NEWS:1045 +#: ../NEWS:1167 msgid "" ":gh:`150583`: Correctly set the default compression level in :mod:" "`compression.zstd` when passing a digested dictionary during compression." msgstr "" -#: ../NEWS:1049 +#: ../NEWS:1171 msgid "" ":gh:`150641`: Fix bug where :func:`typing.evaluate_forward_ref` with the " "``STRING`` format could leak internal names used by the annotation machinery." msgstr "" -#: ../NEWS:1053 +#: ../NEWS:1175 msgid "" ":gh:`150484`: Fix :func:`unittest.mock.mock_open` ``__exit__`` raising " "``TypeError`` when used with :class:`contextlib.ExitStack`." msgstr "" -#: ../NEWS:1056 +#: ../NEWS:1178 msgid "" ":gh:`149816`: Fix a potential use after free condition in :func:`pickle." "dumps` in free-threaded mode when serializing lists." msgstr "" -#: ../NEWS:1059 +#: ../NEWS:1181 msgid "" ":gh:`149319`: The :mod:`asyncio` REPL now ignores :envvar:`PYTHONSTARTUP` " "and :envvar:`PYTHON_BASIC_REPL` when :option:`-E` or :option:`-I` is used. " "Patch by Jonathan Dung." msgstr "" -#: ../NEWS:1063 +#: ../NEWS:1185 msgid "" ":gh:`47005`: Fix :meth:`!urllib.request.AbstractHTTPHandler.do_open` to give " "regular headers set via :meth:`~urllib.request.Request.add_header` priority " @@ -1994,13 +2196,13 @@ msgid "" "get_header` and :meth:`~urllib.request.Request.header_items`." msgstr "" -#: ../NEWS:1069 +#: ../NEWS:1191 msgid "" ":gh:`123471`: Make concurrent iteration over :class:`itertools.zip_longest` " "safe under free-threading." msgstr "" -#: ../NEWS:1072 +#: ../NEWS:1194 msgid "" ":gh:`123720`: asyncio: Fix :func:`asyncio.Server.serve_forever` shutdown " "regression. Since 3.12, cancelling ``serve_forever()`` could hang waiting " @@ -2010,33 +2212,33 @@ msgid "" "observe EOF." msgstr "" -#: ../NEWS:1079 +#: ../NEWS:1201 msgid "" ":gh:`123471`: Make concurrent iteration over :class:`itertools.accumulate` " "safe under free-threading." msgstr "" -#: ../NEWS:1082 +#: ../NEWS:1204 msgid "" ":gh:`123471`: Make concurrent iteration over :class:`itertools." "combinations_with_replacement` and :class:`itertools.permutations` safe " "under free-threading." msgstr "" -#: ../NEWS:1086 +#: ../NEWS:1208 msgid "" ":gh:`143988`: Fixed crashes in :meth:`socket.socket.sendmsg` and :meth:" "`socket.socket.recvmsg_into` that could occur if buffer sequences are " "concurrently mutated." msgstr "" -#: ../NEWS:1090 +#: ../NEWS:1212 msgid "" ":gh:`130796`: Undeprecate the :func:`locale.getdefaultlocale` function. " "Patch by Victor Stinner." msgstr "" -#: ../NEWS:1093 +#: ../NEWS:1215 msgid "" ":gh:`115634`: Fix a deadlock in :class:`concurrent.futures." "ProcessPoolExecutor` when using ``max_tasks_per_child``, present since the " @@ -2045,58 +2247,58 @@ msgid "" "Based on a fix proposed by Tabrez Mohammed." msgstr "" -#: ../NEWS:1100 +#: ../NEWS:1222 msgid "" ":gh:`140326`: Fix the :mod:`asyncio` REPL namespace so that relative imports " "no longer resolve against the :mod:`asyncio` package and ``__file__`` is no " "longer set." msgstr "" -#: ../NEWS:1104 +#: ../NEWS:1226 msgid "" ":gh:`79638`: Disallow all access in :mod:`urllib.robotparser` if the " "``robots.txt`` file is unreachable due to server or network errors." msgstr "" -#: ../NEWS:1107 +#: ../NEWS:1229 msgid "" ":gh:`123471`: Make concurrent iterations over :class:`itertools.chain` safe " "under :term:`free threading`." msgstr "" -#: ../NEWS:1110 +#: ../NEWS:1232 msgid "" ":gh:`123471`: Make concurrent iterations over :class:`itertools." "combinations` and :class:`itertools.product` safe under free-threading." msgstr "" -#: ../NEWS:1113 +#: ../NEWS:1235 msgid "" ":gh:`123471`: Make concurrent iterations over :class:`itertools.cycle` safe " "under free-threading." msgstr "" -#: ../NEWS:1116 +#: ../NEWS:1238 msgid "" ":gh:`120665`: Fixed an issue where ``unittest`` loaders would load and " "instantiate :class:`unittest.TestCase`-derived subclasses that are also " "abstract base classes, which can't be instantiated." msgstr "" -#: ../NEWS:1120 +#: ../NEWS:1242 msgid "" ":gh:`105708`: Accept an uppercase V prefix in IPvFuture addresses in :func:" "`urllib.parse.urlsplit`." msgstr "" -#: ../NEWS:1123 +#: ../NEWS:1245 msgid "" ":gh:`103925`: Fix :meth:`csv.Sniffer.sniff` for a sample with ``\\r\\n`` " "line endings in which a quoted field ends a line: a letter could be detected " "as the delimiter." msgstr "" -#: ../NEWS:1127 +#: ../NEWS:1249 msgid "" ":gh:`101267`: When a worker process terminates unexpectedly, :class:" "`concurrent.futures.ProcessPoolExecutor` now sets a separate :exc:" @@ -2107,34 +2309,34 @@ msgid "" "appending another copy of the traceback to it." msgstr "" -#: ../NEWS:1136 ../NEWS:1551 ../NEWS:1880 ../NEWS:2341 ../NEWS:2752 -#: ../NEWS:3470 ../NEWS:3990 ../NEWS:4339 ../NEWS:4521 ../NEWS:5399 -#: ../NEWS:5989 ../NEWS:6449 ../NEWS:7027 ../NEWS:7874 ../NEWS:8494 -#: ../NEWS:10070 ../NEWS:11665 ../NEWS:12130 ../NEWS:12608 ../NEWS:13145 -#: ../NEWS:13960 ../NEWS:16483 ../NEWS:18010 ../NEWS:18455 ../NEWS:18726 -#: ../NEWS:19005 ../NEWS:19416 ../NEWS:19741 ../NEWS:20173 ../NEWS:21929 -#: ../NEWS:23174 ../NEWS:23780 ../NEWS:24307 ../NEWS:24670 ../NEWS:25134 -#: ../NEWS:25530 ../NEWS:26029 ../NEWS:27692 ../NEWS:28771 ../NEWS:29239 -#: ../NEWS:29531 ../NEWS:29807 ../NEWS:30172 ../NEWS:30633 ../NEWS:31105 -#: ../NEWS:32149 ../NEWS:32697 ../NEWS:33141 ../NEWS:33599 ../NEWS:34003 -#: ../NEWS:34426 ../NEWS:34741 ../NEWS:36086 ../NEWS:37392 ../NEWS:37859 -#: ../NEWS:38337 ../NEWS:38579 ../NEWS:40763 ../NEWS:41739 ../NEWS:41949 -#: ../NEWS:42099 ../NEWS:42317 ../NEWS:42562 ../NEWS:42887 ../NEWS:43227 -#: ../NEWS:43710 ../NEWS:44053 ../NEWS:45663 ../NEWS:46417 ../NEWS:46773 -#: ../NEWS:47170 ../NEWS:47569 ../NEWS:48138 ../NEWS:48458 ../NEWS:48614 -#: ../NEWS:48717 ../NEWS:50076 ../NEWS:50327 ../NEWS:51494 ../NEWS:52054 -#: ../NEWS:52721 ../NEWS:53447 ../NEWS:54008 ../NEWS:54261 ../NEWS:54460 -#: ../NEWS:54771 ../NEWS:56972 +#: ../NEWS:1258 ../NEWS:1673 ../NEWS:2002 ../NEWS:2463 ../NEWS:2874 +#: ../NEWS:3592 ../NEWS:4112 ../NEWS:4461 ../NEWS:4643 ../NEWS:5521 +#: ../NEWS:6111 ../NEWS:6571 ../NEWS:7149 ../NEWS:7996 ../NEWS:8616 +#: ../NEWS:10192 ../NEWS:11787 ../NEWS:12252 ../NEWS:12730 ../NEWS:13267 +#: ../NEWS:14082 ../NEWS:16605 ../NEWS:18132 ../NEWS:18577 ../NEWS:18848 +#: ../NEWS:19127 ../NEWS:19538 ../NEWS:19863 ../NEWS:20295 ../NEWS:22051 +#: ../NEWS:23296 ../NEWS:23902 ../NEWS:24429 ../NEWS:24792 ../NEWS:25256 +#: ../NEWS:25652 ../NEWS:26151 ../NEWS:27814 ../NEWS:28893 ../NEWS:29361 +#: ../NEWS:29653 ../NEWS:29929 ../NEWS:30294 ../NEWS:30755 ../NEWS:31227 +#: ../NEWS:32271 ../NEWS:32819 ../NEWS:33263 ../NEWS:33721 ../NEWS:34125 +#: ../NEWS:34548 ../NEWS:34863 ../NEWS:36208 ../NEWS:37514 ../NEWS:37981 +#: ../NEWS:38459 ../NEWS:38701 ../NEWS:40885 ../NEWS:41861 ../NEWS:42071 +#: ../NEWS:42221 ../NEWS:42439 ../NEWS:42684 ../NEWS:43009 ../NEWS:43349 +#: ../NEWS:43832 ../NEWS:44175 ../NEWS:45785 ../NEWS:46539 ../NEWS:46895 +#: ../NEWS:47292 ../NEWS:47691 ../NEWS:48260 ../NEWS:48580 ../NEWS:48736 +#: ../NEWS:48839 ../NEWS:50198 ../NEWS:50449 ../NEWS:51616 ../NEWS:52176 +#: ../NEWS:52843 ../NEWS:53569 ../NEWS:54130 ../NEWS:54383 ../NEWS:54582 +#: ../NEWS:54893 ../NEWS:57094 msgid "Documentation" msgstr "" -#: ../NEWS:1138 +#: ../NEWS:1260 msgid "" ":gh:`118150`: Clarify in the :mod:`difflib` documentation what *junk* " "actually does, its drawbacks, and how to control it." msgstr "" -#: ../NEWS:1141 +#: ../NEWS:1263 msgid "" ":gh:`86726`: Greatly expand the :mod:`tkinter` documentation to cover the " "full public API of the package and its submodules. The descriptions are " @@ -2142,43 +2344,43 @@ msgid "" "``versionadded``/``versionchanged`` information." msgstr "" -#: ../NEWS:1149 +#: ../NEWS:1271 msgid "" ":gh:`155109`: Add ``test.support.run_with_limited_c_stack()`` and use it in " "tests that exhaust the C stack with a fixed number of recursive calls, so " "that their outcome no longer depends on the C stack size." msgstr "" -#: ../NEWS:1153 +#: ../NEWS:1275 msgid ":gh:`76595`: Add C API tests for :c:func:`PyCapsule_Import`." msgstr "" -#: ../NEWS:1155 +#: ../NEWS:1277 msgid "" ":gh:`154211`: Add ``test.support.skip_if_huge_c_stack()`` and use it to skip " "tests that exhaust the C stack if the stack limit is very large (e.g. on " "DragonFly BSD or with ``ulimit -s unlimited``)." msgstr "" -#: ../NEWS:1159 +#: ../NEWS:1281 msgid "" ":gh:`154167`: The test runner (regrtest) now restores the default SIGINT " "handler if it was inherited as ignored, so the test suite no longer hangs " "when run as a shell background job." msgstr "" -#: ../NEWS:1163 +#: ../NEWS:1285 msgid ":gh:`154144`: Fix building the :mod:`!_testcapi` module on NetBSD." msgstr "" -#: ../NEWS:1165 +#: ../NEWS:1287 msgid "" ":gh:`152548`: Add the :func:`test.support.isolation.runInSubprocess` " "decorator to run a test method or ``TestCase`` subclass in a fresh " "interpreter subprocess, isolated from the rest of the test run." msgstr "" -#: ../NEWS:1169 +#: ../NEWS:1291 msgid "" ":gh:`151626`: Fix several tests in ``test.test_inspect``, ``test." "test_import``, ``test.test_importlib``, ``test.test_py_compile`` and ``test." @@ -2187,19 +2389,19 @@ msgid "" "where they assume the default ``__pycache__`` bytecode layout." msgstr "" -#: ../NEWS:1175 +#: ../NEWS:1297 msgid "" ":gh:`151096`: Fix ``test_embed`` failing when CPython is configured with a " "split exec prefix (``--exec-prefix`` differing from ``--prefix``)." msgstr "" -#: ../NEWS:1178 +#: ../NEWS:1300 msgid "" ":gh:`148853`: Fix tests failing on FreeBSD in test.support's " "in_systemd_nspawn_sync_suppressed() due to unreadable /run directory." msgstr "" -#: ../NEWS:1184 +#: ../NEWS:1306 msgid "" ":gh:`154070`: Build the :mod:`curses` module against a wide-character " "capable ncurses even when it is not named ``ncursesw`` -- for example the " @@ -2207,19 +2409,19 @@ msgid "" "a library previously produced a narrow build." msgstr "" -#: ../NEWS:1189 +#: ../NEWS:1311 msgid "" ":gh:`126877`: Fix the :program:`configure` check for Tcl/Tk which could " "wrongly succeed with optimizing compilers when the libraries are missing." msgstr "" -#: ../NEWS:1192 +#: ../NEWS:1314 msgid "" ":gh:`153438`: Update Windows build and installer tooling and documentation " "to use the current download URL for ``nuget.exe``." msgstr "" -#: ../NEWS:1195 +#: ../NEWS:1317 msgid "" ":gh:`152502`: The :mod:`curses` module now detects ``set_escdelay()``, " "``set_tabsize()`` and the ``ESCDELAY`` and ``TABSIZE`` variables with :" @@ -2228,28 +2430,28 @@ msgid "" "curses implementations such as NetBSD curses that provide them." msgstr "" -#: ../NEWS:1201 +#: ../NEWS:1323 msgid "" ":gh:`148260`: On Linux when Python is linked to the musl C library, use a " "thread stack size of at least 1 MiB instead of musl default which is 128 " "kiB. Patch by Victor Stinner." msgstr "" -#: ../NEWS:1205 +#: ../NEWS:1327 msgid ":gh:`138800`: Fix library name in python3.pc on Android." msgstr "" -#: ../NEWS:1210 +#: ../NEWS:1332 msgid ":gh:`124111`: Updated Windows builds to use Tcl/Tk 9.0.4." msgstr "" -#: ../NEWS:1212 +#: ../NEWS:1334 msgid "" ":gh:`150836`: Make installed tkinter work with Tcl/Tk 9 builds that embed " "the Tk script library in the Tk DLL on Windows." msgstr "" -#: ../NEWS:1215 +#: ../NEWS:1337 msgid "" ":gh:`140146`: Prevent :mod:`tkinter` from hanging on Windows if stdin is " "redirected to a pipe in an interactive session. This is helpful for testing " @@ -2257,80 +2459,80 @@ msgid "" "cpython test suite." msgstr "" -#: ../NEWS:1223 +#: ../NEWS:1345 msgid "" ":gh:`153711`: On macOS, do not attempt to use the :manpage:`dup3(2)` and :" "manpage:`pipe2(2)` system calls introduced in macOS 27 to prevent problems " "when running on older systems." msgstr "" -#: ../NEWS:1227 +#: ../NEWS:1349 msgid ":gh:`124111`: Update macOS installer to use Tcl/Tk 9.0.4." msgstr "" -#: ../NEWS:1232 +#: ../NEWS:1354 msgid "" ":gh:`82183`: When the shell is busy running code, using \"Run... " "Customized\" with \"Restart shell\" unchecked now reports that the shell is " "executing instead of restarting it anyway." msgstr "" -#: ../NEWS:1236 +#: ../NEWS:1358 msgid "" ":gh:`83653`: Blanking an integer entry in IDLE's Settings dialog, such as " "\"Auto squeeze min lines\", no longer saves an empty string as an invalid " "configuration value." msgstr "" -#: ../NEWS:1240 +#: ../NEWS:1362 msgid "" ":gh:`65339`: Saving the IDLE Shell or an Output window now defaults to a ``." "txt`` extension and lists text files before Python files, since their " "content is not Python source." msgstr "" -#: ../NEWS:1244 +#: ../NEWS:1366 msgid "" ":gh:`80504`: The \"In files:\" field of IDLE's Find in Files dialog now " "always contains a full directory path, even for an unsaved editor or the " "Shell. This shows in the grep output which directory was searched." msgstr "" -#: ../NEWS:1248 +#: ../NEWS:1370 msgid "" ":gh:`134300`: Do not add the ``idlelib`` directory to the path of the IDLE " "user process. User code run in IDLE can no longer import ``idlelib`` " "submodules as top-level modules, such as ``import help``." msgstr "" -#: ../NEWS:1252 +#: ../NEWS:1374 msgid "" ":gh:`89360`: Fix a rare crash in the IDLE editor when the completion window " "is closed: deleting a key binding for a sequence that is not bound to the " "virtual event is now ignored instead of raising a ``ValueError``." msgstr "" -#: ../NEWS:1256 +#: ../NEWS:1378 msgid "" ":gh:`71956`: Fix Replace All in the IDLE editor's Replace dialog when the " "search direction is \"Up\" and \"Wrap around\" is off: it now replaces all " "matches above the current position instead of only the first one." msgstr "" -#: ../NEWS:1260 +#: ../NEWS:1382 msgid "" ":gh:`152728`: Move functions run.fix_scaling, editor.fixwordbreaks (as " "fix_word_breaks) and pyshell.fix_x11_paste to idlelib.util." msgstr "" -#: ../NEWS:1263 +#: ../NEWS:1385 msgid "" ":gh:`66331`: Set the ``WM_CLASS`` window property of IDLE's windows to " "``Idle`` on X11, so that window managers group and label them correctly " "instead of using the default ``Toplevel``." msgstr "" -#: ../NEWS:1267 +#: ../NEWS:1389 msgid "" ":gh:`85320`: IDLE now reads and writes its configuration files and the " "breakpoints file using UTF-8 instead of the locale encoding. This keeps non-" @@ -2338,97 +2540,97 @@ msgid "" "files portable between environments." msgstr "" -#: ../NEWS:1272 +#: ../NEWS:1394 msgid "" ":gh:`94523`: Detect file if modified at local disk and prompt to ask " "refresh. Patch by Shixian Li." msgstr "" -#: ../NEWS:1275 +#: ../NEWS:1397 msgid ":gh:`139551`: Support rendering :exc:`BaseExceptionGroup` in IDLE." msgstr "" -#: ../NEWS:1277 +#: ../NEWS:1399 msgid "" ":gh:`89520`: Make IDLE extension configuration look at user config files, " "allowing user-installed extensions to have settings and key bindings defined " "in ~/.idlerc." msgstr "" -#: ../NEWS:1284 +#: ../NEWS:1406 msgid "" ":gh:`155218`: Fix Argument Clinic generating the flags of the optional " "groups in different order on 32-bit and 64-bit platforms." msgstr "" -#: ../NEWS:1287 +#: ../NEWS:1409 msgid "" ":gh:`155207`: Argument Clinic now supports the ``--dry-run`` and ``--diff`` " "options. They list the files which would be changed, or write a unified diff " "of the changes to the standard output, without modifying any file." msgstr "" -#: ../NEWS:1291 +#: ../NEWS:1413 msgid "" ":gh:`154580`: Fix ``python-gdb.py`` raising :exc:`UnicodeEncodeError` when " "pretty-printing a non-ASCII :class:`str` in a locale whose host charset " "cannot encode it, such as any non-ASCII string in the C locale." msgstr "" -#: ../NEWS:1298 +#: ../NEWS:1420 msgid "" ":gh:`152132`: Fix :c:func:`Py_RunMain` to return an exit code, rather than " "calling :c:func:`Py_Exit`, when running a script, a command, or the REPL. " "Patch by Victor Stinner." msgstr "" -#: ../NEWS:1302 +#: ../NEWS:1424 msgid "" ":gh:`153300`: :c:func:`PyConfig_Set()` now also set global configuration " "variables. For example, ``PyConfig_Set(\"inspect\", value)`` now also sets :" "c:var:`Py_InspectFlag`. Patch by Victor Stinner." msgstr "" -#: ../NEWS:1306 +#: ../NEWS:1428 msgid "" ":gh:`123619`: :c:func:`PyUnstable_Object_EnableDeferredRefcount` now returns " "``0`` if the object is not tracked by the garbage collector: if :func:`gc." "is_tracked` is false. Patch by Victor Stinner." msgstr "" -#: ../NEWS:1312 +#: ../NEWS:1434 msgid "Python 3.14.6 final" msgstr "" -#: ../NEWS:1314 +#: ../NEWS:1436 msgid "*Release date: 2026-06-10*" msgstr "" -#: ../NEWS:1319 +#: ../NEWS:1441 msgid ":gh:`151159`: Update Android and iOS installers to use OpenSSL 3.5.7." msgstr "" -#: ../NEWS:1321 +#: ../NEWS:1443 msgid "" ":gh:`150599`: Fix a possible stack buffer overflow in :mod:`bz2` when a :" "class:`bz2.BZ2Decompressor` is reused after a decompression error. The " "decompressor now becomes unusable after libbz2 reports an error." msgstr "" -#: ../NEWS:1325 +#: ../NEWS:1447 msgid "" ":gh:`149835`: :func:`shutil.move` now resolves symlinks via :func:`os.path." "realpath` when checking whether the destination is inside the source " "directory, preventing a symlink-based bypass of that guard." msgstr "" -#: ../NEWS:1329 +#: ../NEWS:1451 msgid "" ":gh:`149698`: Update bundled `libexpat `_ to " "version 2.8.1 for the fix for :cve:`2026-45186`." msgstr "" -#: ../NEWS:1332 +#: ../NEWS:1454 msgid "" ":gh:`87451`: The :mod:`ftplib` module's undocumented ``ftpcp`` function no " "longer trusts the IPv4 address value returned from the source server in " @@ -2439,7 +2641,7 @@ msgid "" "Aurascape AI for the report." msgstr "" -#: ../NEWS:1340 +#: ../NEWS:1462 msgid "" ":gh:`149486`: :func:`tarfile.data_filter` now validates link targets using " "the same normalised value that is written to disk, strips trailing " @@ -2449,7 +2651,7 @@ msgid "" "filter." msgstr "" -#: ../NEWS:1347 +#: ../NEWS:1469 msgid "" ":gh:`149079`: Fix a potential denial of service in :func:`unicodedata." "normalize`. The canonical ordering step of Unicode normalization used a " @@ -2459,34 +2661,34 @@ msgid "" "runs." msgstr "" -#: ../NEWS:1354 +#: ../NEWS:1476 msgid "" ":gh:`149018`: Improved protection against XML hash-flooding attacks in :mod:" "`xml.parsers.expat` and :mod:`xml.etree.ElementTree` when Python is compiled " "with libExpat 2.8.0 or later." msgstr "" -#: ../NEWS:1361 +#: ../NEWS:1483 msgid "" ":gh:`151112`: Fix a crash in the compiler that could occur when running out " "of memory." msgstr "" -#: ../NEWS:1364 +#: ../NEWS:1486 msgid "" ":gh:`151126`: Fix a crash, when there's no memory left on a device, which " "happened in:" msgstr "" -#: ../NEWS:1367 +#: ../NEWS:1489 msgid "code compilation - :func:`!_winapi.CreateProcess`" msgstr "" -#: ../NEWS:1369 +#: ../NEWS:1491 msgid "Now these places raise proper :exc:`MemoryError` errors." msgstr "" -#: ../NEWS:1371 +#: ../NEWS:1493 msgid "" ":gh:`150700`: Fix a :exc:`SystemError` when compiling a class-scope " "comprehension containing a ``lambda`` that references ``__class__``, " @@ -2494,27 +2696,27 @@ msgid "" "Sławecki." msgstr "" -#: ../NEWS:1376 +#: ../NEWS:1498 msgid "" ":gh:`150633`: Fix the frozen importer accepting module names with embedded " "null bytes, which caused it to bypass the :data:`sys.modules` cache and " "create duplicate module objects." msgstr "" -#: ../NEWS:1380 +#: ../NEWS:1502 msgid "" ":gh:`148613`: Fix a data race in the free-threaded build between :func:`gc." "set_threshold` and garbage collection scheduling during object allocation." msgstr "" -#: ../NEWS:1384 +#: ../NEWS:1506 msgid "" ":gh:`149156`: Fix an intermittent crash after :func:`os.fork` when perf " "trampoline profiling is enabled and the child returns through trampoline " "frames inherited from the parent process." msgstr "" -#: ../NEWS:1388 +#: ../NEWS:1510 msgid "" ":gh:`149449`: Fix a use-after-free crash when the :mod:`unicodedata` module " "was removed from :data:`sys.modules` and garbage-collected between calls " @@ -2522,128 +2724,128 @@ msgid "" "handler." msgstr "" -#: ../NEWS:1393 +#: ../NEWS:1515 msgid "" ":gh:`150207`: Fix a crash when a memory allocation fails during tokenizer " "initialization. A proper :exc:`MemoryError` is now raised instead." msgstr "" -#: ../NEWS:1396 +#: ../NEWS:1518 msgid "" ":gh:`150107`: :mod:`asyncio`: ``sendfile()`` and ``sock_sendfile()`` event " "loop methods now call ``file.seek(offset)`` if *file* has a ``seek()`` " "method, even if *offset* is ``0`` (default value)." msgstr "" -#: ../NEWS:1400 +#: ../NEWS:1522 msgid ":gh:`150146`: Fix a crash on a complex type variable substitution." msgstr "" -#: ../NEWS:1402 +#: ../NEWS:1524 msgid "" "``from typing import TypeVar; memoryview[TypeVar(\"\")][*typing." "Mapping[..., ...]]`` used to fail due to missing ``NULL`` check on " "``_unpack_args`` C function call." msgstr "" -#: ../NEWS:1406 +#: ../NEWS:1528 msgid ":gh:`149590`: Fix crash when faulthandler is imported more than once." msgstr "" -#: ../NEWS:1408 +#: ../NEWS:1530 msgid "" ":gh:`149816`: Fix a race condition in ``_PyBytes_FromList`` in free-" "threading mode." msgstr "" -#: ../NEWS:1411 +#: ../NEWS:1533 msgid "" ":gh:`149816`: Fix a race condition in :class:`memoryview` with free-" "threading." msgstr "" -#: ../NEWS:1414 +#: ../NEWS:1536 msgid "" ":gh:`149805`: Fix a :exc:`SystemError` when compiling a compiling " "``__classdict__`` class annotation. Found by OSS-Fuzz in :oss-fuzz:" "`512907042`." msgstr "" -#: ../NEWS:1418 +#: ../NEWS:1540 msgid "" ":gh:`149738`: :mod:`sqlite3`: Disallow removing ``row_factory`` and " "``text_factory`` attributes of a connection to prevent a crash on a query." msgstr "" -#: ../NEWS:1421 +#: ../NEWS:1543 msgid "" ":gh:`139808`: Add branch protections for AArch64 (BTI/PAC) in assembly code " "used by :option:`-X perf_jit <-X>` (Linux perf profiler integration)." msgstr "" -#: ../NEWS:1424 +#: ../NEWS:1546 msgid "" ":gh:`148450`: Fix ``abc.register()`` so it invalidates type version tags for " "registered classes." msgstr "" -#: ../NEWS:1430 +#: ../NEWS:1552 msgid "" ":gh:`151039`: Fix a crash when static :mod:`datetime` types outlive the " "``_datetime`` module." msgstr "" -#: ../NEWS:1433 +#: ../NEWS:1555 msgid "" ":gh:`150913`: Fix :class:`sqlite3.Blob` slice assignment to raise :exc:" "`TypeError` and :exc:`IndexError` for type and size mismatches respectively, " "even when the target slice is empty." msgstr "" -#: ../NEWS:1437 +#: ../NEWS:1559 msgid "" ":gh:`143008`: Fix race conditions when re-initializing a :class:`io." "TextIOWrapper` object." msgstr "" -#: ../NEWS:1440 +#: ../NEWS:1562 msgid "" ":gh:`150750`: Fix a race condition in :meth:`collections.deque.index` with " "free-threading." msgstr "" -#: ../NEWS:1443 +#: ../NEWS:1565 msgid ":gh:`150685`: Update bundled pip to 26.1.2" msgstr "" -#: ../NEWS:1445 +#: ../NEWS:1567 msgid "" ":gh:`150406`: Fix a possible crash occurring during :mod:`socket` module " "initialization when the system is out of memory on platforms without a " "reentrant ``gethostbyname``." msgstr "" -#: ../NEWS:1449 +#: ../NEWS:1571 msgid "" ":gh:`150372`: :mod:`readline`: Fix a potential crash during tab completion " "caused by an out-of-memory error during module initialization." msgstr "" -#: ../NEWS:1452 +#: ../NEWS:1574 msgid "" ":gh:`150157`: Fix a crash in free-threaded builds that occurs when pickling " "by name objects without a ``__module__`` attribute while :data:`sys.modules` " "is concurrently being modified." msgstr "" -#: ../NEWS:1456 +#: ../NEWS:1578 msgid "" ":gh:`150175`: Fix race condition in :class:`unittest.mock.ThreadingMock` " "where concurrent calls could lose increments to ``call_count`` and other " "attributes due to a missing lock in ``_increment_mock_call``." msgstr "" -#: ../NEWS:1460 +#: ../NEWS:1582 msgid "" ":gh:`84353`: Preserve non-UTF-8 encoded filenames when appending to a :class:" "`zipfile.ZipFile`. Previously, non-ASCII names stored in a legacy encoding " @@ -2652,54 +2854,54 @@ msgid "" "UTF-8." msgstr "" -#: ../NEWS:1466 +#: ../NEWS:1588 msgid ":gh:`149816`: Fix race condition in :attr:`ssl.SSLContext.sni_callback`" msgstr "" -#: ../NEWS:1468 +#: ../NEWS:1590 msgid ":gh:`149995`: Update various docstrings in :mod:`typing`." msgstr "" -#: ../NEWS:1470 +#: ../NEWS:1592 msgid "" ":gh:`88726`: The :mod:`email` package now uses standard MIME charset names " "\"gb2312\" and \"big5\" instead of non-standard names \"eucgb2312_cn\" and " "\"big5_tw\"." msgstr "" -#: ../NEWS:1474 +#: ../NEWS:1596 msgid "" ":gh:`149571`: Fix the C implementation of :meth:`xml.etree.ElementTree." "Element.itertext`: it no longer emits text for comments and processing " "instructions." msgstr "" -#: ../NEWS:1478 +#: ../NEWS:1600 msgid "" ":gh:`149921`: Fix reference leaks in error paths of the :mod:`!" "_interpchannels` and :mod:`!_interpqueues` extension modules." msgstr "" -#: ../NEWS:1481 +#: ../NEWS:1603 msgid "" ":gh:`149816`: Fix a race condition in ``_random.Random.__init__`` method in " "free-threading mode." msgstr "" -#: ../NEWS:1484 +#: ../NEWS:1606 msgid "" ":gh:`149801`: Add IANA registered names and aliases with leading zeros " "before number (like IBM00858, CP00858, IBM01140, CP01140) for corresponding " "codecs." msgstr "" -#: ../NEWS:1488 +#: ../NEWS:1610 msgid "" ":gh:`149701`: Fix bad return code from Lib/venv/bin/activate if hashing is " "disabled" msgstr "" -#: ../NEWS:1491 +#: ../NEWS:1613 msgid "" ":gh:`112821`: In the REPL, autocompletion might run arbitrary code in the " "getter of a descriptor. If that getter raised an exception, autocompletion " @@ -2707,7 +2909,7 @@ msgid "" "works as expected for these objects." msgstr "" -#: ../NEWS:1496 +#: ../NEWS:1618 msgid "" ":gh:`149489`: Fix :mod:`~xml.etree.ElementTree` serialization to HTML. The " "content of elements \"xmp\", \"iframe\", \"noembed\", \"noframes\", and " @@ -2715,26 +2917,26 @@ msgid "" "the closing tag." msgstr "" -#: ../NEWS:1501 +#: ../NEWS:1623 msgid "" ":gh:`149231`: In :mod:`tomllib`, the number of parts in TOML keys is now " "limited." msgstr "" -#: ../NEWS:1504 +#: ../NEWS:1626 msgid "" ":gh:`149046`: :mod:`io`: Fix :class:`io.StringIO` serialization: no longer " "call ``str(obj)`` on :class:`str` subclasses. Patch by Thomas Kowalski." msgstr "" -#: ../NEWS:1507 +#: ../NEWS:1629 msgid "" ":gh:`148954`: Fix XML injection vulnerability in :func:`xmlrpc.client.dumps` " "where the ``methodname`` was not being escaped before interpolation into the " "XML body." msgstr "" -#: ../NEWS:1511 +#: ../NEWS:1633 msgid "" ":gh:`148441`: :mod:`xml.parsers.expat`: prevent a crash in :meth:`~xml." "parsers.expat.xmlparser.CharacterDataHandler` when the character data size " @@ -2742,19 +2944,19 @@ msgid "" "buffer_size>`." msgstr "" -#: ../NEWS:1516 +#: ../NEWS:1638 msgid "" ":gh:`146452`: Fix segfault in :mod:`pickle` when pickling a dictionary " "concurrently mutated by another thread in the free-threaded build." msgstr "" -#: ../NEWS:1519 +#: ../NEWS:1641 msgid "" ":gh:`142831`: Fix a crash in the :mod:`json` module where a use-after-free " "could occur if the object being encoded is modified during serialization." msgstr "" -#: ../NEWS:1522 +#: ../NEWS:1644 msgid "" ":gh:`90949`: Add :meth:`~xml.parsers.expat.xmlparser." "SetBillionLaughsAttackProtectionActivationThreshold` and :meth:`~xml.parsers." @@ -2764,13 +2966,13 @@ msgid "" "attacks. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:1531 +#: ../NEWS:1653 msgid "" ":gh:`134261`: zip: On reproducible builds, ZipFile uses UTC instead of the " "local time when writing file datetimes to avoid underflows." msgstr "" -#: ../NEWS:1534 +#: ../NEWS:1656 msgid "" ":gh:`128110`: Fix bug in the parsing of :mod:`email` address headers that " "could result in extraneous spaces in the decoded text when using a modern " @@ -2779,204 +2981,204 @@ msgid "" "unstructured headers like *Subject*)." msgstr "" -#: ../NEWS:1540 +#: ../NEWS:1662 msgid "" ":gh:`107398`: Fix :mod:`tarfile` stream mode exception when process the file " "with the gzip extra field." msgstr "" -#: ../NEWS:1543 +#: ../NEWS:1665 msgid "" ":gh:`123853`: Update the table of Windows language code identifiers (LCIDs) " "used by :func:`locale.getdefaultlocale` on Windows to protocol version 16.0 " "(2024-04-23)." msgstr "" -#: ../NEWS:1547 +#: ../NEWS:1669 msgid "" ":gh:`91099`: :meth:`imaplib.IMAP4.login` now raises exceptions with :class:" "`str` instead of :class:`bytes`. Patch by Florian Best." msgstr "" -#: ../NEWS:1553 +#: ../NEWS:1675 msgid "" ":gh:`150319`: Generic builtin and standard library types now document the " "meaning of their type parameters." msgstr "" -#: ../NEWS:1556 +#: ../NEWS:1678 msgid "" ":gh:`109503`: Fix documentation for :func:`shutil.move` on usage of :func:" "`os.rename` since nonatomic move might be used even if the files are on the " "same filesystem. Patch by Fang Li" msgstr "" -#: ../NEWS:1563 +#: ../NEWS:1685 msgid ":gh:`151130`: Add more tests for ``PyWeakref_*`` C API." msgstr "" -#: ../NEWS:1565 +#: ../NEWS:1687 msgid "" ":gh:`149776`: Fix test_socket on Linux kernel 7.1 and newer: skip UDP Lite " "tests if it's not supported. Patch by Victor Stinner." msgstr "" -#: ../NEWS:1571 +#: ../NEWS:1693 msgid "" ":gh:`148294`: Corrected the use of ``AC_PATH_TOOL`` in ``configure.ac`` to " "allow a C++ compiler to be found on :envvar:`!PATH`." msgstr "" -#: ../NEWS:1577 +#: ../NEWS:1699 msgid ":gh:`151159`: Updated bundled version of OpenSSL to 3.5.7." msgstr "" -#: ../NEWS:1582 +#: ../NEWS:1704 msgid ":gh:`151159`: Update macOS installer to use OpenSSL 3.5.7." msgstr "" -#: ../NEWS:1584 +#: ../NEWS:1706 msgid "" ":gh:`150644`: When system logging is enabled (with ``config." "use_system_logger``, messages are now tagged as public. This allows the " "macOS 26 system logger to view messages without special configuration." msgstr "" -#: ../NEWS:1589 +#: ../NEWS:1711 msgid ":gh:`115119`: Update macOS installer to use libmpdecimal 4.0.1." msgstr "" -#: ../NEWS:1594 +#: ../NEWS:1716 msgid ":issue:`6699`: Warn the user if a file will be overwritten when saving." msgstr "" -#: ../NEWS:1599 +#: ../NEWS:1721 msgid "" ":gh:`150907`: Fix ``dynamic_annotations.h`` header file when built with C++ " "and Valgrind: add ``extern \"C++\" scope`` for the C++ template. Patch by " "Victor Stinner." msgstr "" -#: ../NEWS:1603 +#: ../NEWS:1725 msgid "" ":gh:`145235`: Made :c:func:`PyDict_AddWatcher`, :c:func:" "`PyDict_ClearWatcher`, :c:func:`PyDict_Watch`, and :c:func:`PyDict_Unwatch` " "thread-safe on the :term:`free threaded ` build." msgstr "" -#: ../NEWS:1610 +#: ../NEWS:1732 msgid "Python 3.14.5 final" msgstr "" -#: ../NEWS:1612 +#: ../NEWS:1734 msgid "*Release date: 2026-05-10*" msgstr "" -#: ../NEWS:1617 +#: ../NEWS:1739 msgid "" ":gh:`148178`: Hardened :mod:`!_remote_debugging` by validating remote debug " "offset tables before using them to size memory reads or interpret remote " "layouts." msgstr "" -#: ../NEWS:1624 +#: ../NEWS:1746 msgid ":gh:`146270`: Fix a sequential consistency bug in ``structmember.c``." msgstr "" -#: ../NEWS:1626 +#: ../NEWS:1748 msgid "" ":gh:`137293`: Fix :exc:`SystemError` when searching ELF Files in :func:`sys." "remote_exec`." msgstr "" -#: ../NEWS:1632 +#: ../NEWS:1754 msgid "" ":gh:`149388`: Make :class:`!asyncio.windows_utils.PipeHandle` closing " "idempotent." msgstr "" -#: ../NEWS:1635 +#: ../NEWS:1757 msgid ":gh:`149377`: Update bundled pip to 26.1.1" msgstr "" -#: ../NEWS:1637 +#: ../NEWS:1759 msgid ":gh:`138907`: Support :rfc:`9309` in :mod:`urllib.robotparser`." msgstr "" -#: ../NEWS:1639 +#: ../NEWS:1761 msgid "" ":gh:`148615`: Fix :mod:`pdb` to accept standard -- end of options separator. " "Reported by haampie. Patched by Shrey Naithani." msgstr "" -#: ../NEWS:1642 +#: ../NEWS:1764 msgid "" ":gh:`130750`: Restore quoting of choices in :mod:`argparse` error messages " "for improved clarity and consistency with documentation." msgstr "" -#: ../NEWS:1645 +#: ../NEWS:1767 msgid "" ":gh:`141449`: Improve tests and documentation for non-function callables as :" "term:`annotate functions `." msgstr "" -#: ../NEWS:1651 +#: ../NEWS:1773 msgid "" ":gh:`149425`: Increase time delta in ``test.test_zipfile.test_core." "OtherTests.test_write_without_source_date_epoch``" msgstr "" -#: ../NEWS:1654 +#: ../NEWS:1776 msgid "" ":gh:`145736`: Fix test_tkinter test_configure_values test case backport miss " "for Tk 9." msgstr "" -#: ../NEWS:1660 +#: ../NEWS:1782 msgid "" ":gh:`142295`: For Python macOS framework builds, update Info.plist files to " "be more compliant with current Apple guidelines. Original patch contributed " "by Martinus Verburg." msgstr "" -#: ../NEWS:1664 +#: ../NEWS:1786 msgid ":gh:`124111`: Update macOS installer to use Tcl/Tk 9.0.3." msgstr "" -#: ../NEWS:1668 +#: ../NEWS:1790 msgid "Python 3.14.5 release candidate 1" msgstr "" -#: ../NEWS:1670 +#: ../NEWS:1792 msgid "*Release date: 2026-05-04*" msgstr "" -#: ../NEWS:1675 +#: ../NEWS:1797 msgid ":gh:`149254`: Update Android and iOS installer to use OpenSSL 3.0.20." msgstr "" -#: ../NEWS:1677 +#: ../NEWS:1799 msgid "" ":gh:`149017`: Update bundled `libexpat `_ to " "version 2.8.0." msgstr "" -#: ../NEWS:1680 +#: ../NEWS:1802 msgid "" ":gh:`90309`: Base64-encode values when embedding cookies to JavaScript using " "the :meth:`http.cookies.BaseCookie.js_output` method to avoid injection and " "escaping." msgstr "" -#: ../NEWS:1684 +#: ../NEWS:1806 msgid "" ":gh:`148808`: Added buffer boundary check when using ``nbytes`` parameter " "with :meth:`!asyncio.AbstractEventLoop.sock_recvfrom_into`. Only relevant " "for Windows and the :class:`asyncio.ProactorEventLoop`." msgstr "" -#: ../NEWS:1688 +#: ../NEWS:1810 msgid "" ":gh:`148395`: Fix a dangling input pointer in :class:`lzma." "LZMADecompressor`, :class:`bz2.BZ2Decompressor`, and internal :class:`!zlib." @@ -2985,13 +3187,13 @@ msgid "" "a stale pointer to the already-released caller buffer." msgstr "" -#: ../NEWS:1695 +#: ../NEWS:1817 msgid "" ":gh:`148169`: A bypass in :mod:`webbrowser` allowed URLs prefixed with " "``%action`` to pass the dash-prefix safety check." msgstr "" -#: ../NEWS:1698 +#: ../NEWS:1820 msgid "" ":gh:`146581`: Fix vulnerability in :func:`shutil.unpack_archive` for ZIP " "files on Windows which allowed to write files outside of the destination " @@ -3000,7 +3202,7 @@ msgid "" "\"foo..bar\") are no longer skipped." msgstr "" -#: ../NEWS:1704 +#: ../NEWS:1826 msgid "" ":gh:`146333`: Fix quadratic backtracking in :class:`configparser." "RawConfigParser` option parsing regexes (``OPTCRE`` and ``OPTCRE_NV``). A " @@ -3008,13 +3210,13 @@ msgid "" "excessive CPU usage." msgstr "" -#: ../NEWS:1709 +#: ../NEWS:1831 msgid "" ":gh:`146211`: Reject CR/LF characters in tunnel request headers for the " "HTTPConnection.set_tunnel() method." msgstr "" -#: ../NEWS:1715 +#: ../NEWS:1837 msgid "" ":gh:`149122`: Fix a crash in optimized calls to :func:`all`, :func:`any`, :" "func:`tuple`, :func:`list`, and :func:`set` with an async generator " @@ -3022,7 +3224,7 @@ msgid "" "calls now correctly raise ``TypeError`` instead of crashing." msgstr "" -#: ../NEWS:1720 +#: ../NEWS:1842 msgid "" ":gh:`113956`: Fix a data race in :func:`sys.intern` in the free-threaded " "build when interning a string owned by another thread. An interned copy " @@ -3030,7 +3232,7 @@ msgid "" "immortalize the original." msgstr "" -#: ../NEWS:1725 +#: ../NEWS:1847 msgid "" ":gh:`148820`: Fix a race in :c:type:`!_PyRawMutex` on the free-threaded " "build where a ``Py_PARK_INTR`` return from ``_PySemaphore_Wait`` could let " @@ -3039,20 +3241,20 @@ msgid "" "error." msgstr "" -#: ../NEWS:1731 +#: ../NEWS:1853 msgid "" ":gh:`148653`: Forbid :mod:`marshalling ` recursive code objects " "and :class:`slice` objects which cannot be correctly unmarshalled." msgstr "" -#: ../NEWS:1734 +#: ../NEWS:1856 msgid "" ":gh:`142516`: Forward-port the generational cycle garbage collector to the " "default 3.14 build, replacing the incremental collector while leaving the " "free-threaded collector unchanged." msgstr "" -#: ../NEWS:1738 +#: ../NEWS:1860 msgid "" ":gh:`148390`: Fix an undefined behavior in :class:`memoryview` when using " "the native boolean format (``?``) in :meth:`~memoryview.cast`. Previously, " @@ -3061,33 +3263,33 @@ msgid "" "*b*. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:1744 +#: ../NEWS:1866 msgid "" ":gh:`148418`: Fix a possible reference leak in a corrupted ``TYPE_CODE`` " "marshal stream." msgstr "" -#: ../NEWS:1747 +#: ../NEWS:1869 msgid "" ":gh:`148393`: Fix data races between :c:func:`PyDict_Watch` / :c:func:" "`PyDict_Unwatch` and concurrent dict mutation in the :term:`free-threaded " "build`." msgstr "" -#: ../NEWS:1751 +#: ../NEWS:1873 msgid "" ":gh:`148284`: Fix high stack consumption in Python's interpreter loop on " "Clang 22 by setting function limits for inlining when building with computed " "gotos." msgstr "" -#: ../NEWS:1755 +#: ../NEWS:1877 msgid "" ":gh:`148037`: Remove critical section from :c:func:`!PyCode_Addr2Line` in " "free-threading." msgstr "" -#: ../NEWS:1758 +#: ../NEWS:1880 msgid "" ":gh:`148222`: Fix vectorcall support in :class:`types.GenericAlias` when the " "underlying type does not support the vectorcall protocol. Fix possible leaks " @@ -3095,54 +3297,54 @@ msgid "" "memory error." msgstr "" -#: ../NEWS:1763 +#: ../NEWS:1885 msgid ":gh:`148208`: Fix recursion depth leak in :c:func:`PyObject_Print`" msgstr "" -#: ../NEWS:1765 +#: ../NEWS:1887 msgid "" ":gh:`137814`: Fix the ``__qualname__`` attribute of ``__annotate__`` " "functions on functions." msgstr "" -#: ../NEWS:1768 +#: ../NEWS:1890 msgid "" ":gh:`147998`: Fixed a memory leak in interpreter helper calls so cleanup " "works when an operation falls across interpreter boundaries. Patch by " "Maurycy Pawłowski-Wieroński." msgstr "" -#: ../NEWS:1772 +#: ../NEWS:1894 msgid "" ":gh:`146455`: Fix O(N²) compile-time regression in constant folding after it " "was moved from AST to CFG optimizer." msgstr "" -#: ../NEWS:1778 +#: ../NEWS:1900 msgid "" ":gh:`149221`: Catch rare math domain error for :func:`random." "binomialvariate`." msgstr "" -#: ../NEWS:1781 +#: ../NEWS:1903 msgid "" ":gh:`149117`: Fix :func:`runpy.run_module` and :func:`runpy.run_path` to set " "the :attr:`~ImportError.name` attribute on the :exc:`ImportError` they raise." msgstr "" -#: ../NEWS:1785 +#: ../NEWS:1907 msgid "" ":gh:`149148`: :mod:`ensurepip`: Upgrade bundled pip to 26.1. This version " "fixes the :cve:`2026-3219` vulnerability. Patch by Victor Stinner." msgstr "" -#: ../NEWS:1788 +#: ../NEWS:1910 msgid "" ":gh:`148093`: Fix an out-of-bounds read of one byte in :func:`binascii." "a2b_uu`. Raise :exc:`binascii.Error`, instead of reading past the buffer end." msgstr "" -#: ../NEWS:1792 +#: ../NEWS:1914 msgid "" ":gh:`148914`: Fix memoization of in-band :class:`~pickle.PickleBuffer` in " "the Python implementation of :mod:`pickle`. Previously, identical :class:`!" @@ -3151,14 +3353,14 @@ msgid "" "following references to ``b''`` were unpickled as an empty bytearray object." msgstr "" -#: ../NEWS:1799 +#: ../NEWS:1921 msgid "" ":gh:`148947`: Fix crash in :deco:`dataclasses.dataclass` with ``slots=True`` " "that occurred when a function found within the class had an empty " "``__class__`` cell." msgstr "" -#: ../NEWS:1803 +#: ../NEWS:1925 msgid "" ":gh:`148680`: ``ForwardRef`` objects that contain internal names to " "represent known objects now show the ``type_repr`` of the known object " @@ -3166,44 +3368,44 @@ msgid "" "strings." msgstr "" -#: ../NEWS:1807 +#: ../NEWS:1929 msgid "" ":gh:`148801`: :mod:`xml.etree.ElementTree`: Fix a crash in :meth:`Element." "__deepcopy__ ` on deeply nested trees." msgstr "" -#: ../NEWS:1810 +#: ../NEWS:1932 msgid "" ":gh:`148735`: :mod:`xml.etree.ElementTree`: Fix a use-after-free in :meth:" "`Element.findtext ` when the element " "tree is mutated concurrently during the search." msgstr "" -#: ../NEWS:1814 +#: ../NEWS:1936 msgid "" ":gh:`148740`: Fix usage for :mod:`uuid` command-line interface to support a " "custom namespace be provided for uuid3 and uuid5." msgstr "" -#: ../NEWS:1817 +#: ../NEWS:1939 msgid "" ":gh:`148651`: Fix reference leak in :class:`compression.zstd." "ZstdDecompressor` when an invalid option key is passed." msgstr "" -#: ../NEWS:1821 +#: ../NEWS:1943 msgid "" ":gh:`146553`: Fix infinite loop in :func:`typing.get_type_hints` when " "``__wrapped__`` forms a cycle. Patch by Shamil Abdulaev." msgstr "" -#: ../NEWS:1824 +#: ../NEWS:1946 msgid "" ":gh:`148508`: An intermittent timing error when running SSL tests on iOS has " "been resolved." msgstr "" -#: ../NEWS:1827 +#: ../NEWS:1949 msgid "" ":gh:`148518`: If an email containing an address header that ended in an open " "double quote was parsed with a non-``compat32`` policy, accessing the " @@ -3212,34 +3414,34 @@ msgid "" "as the result." msgstr "" -#: ../NEWS:1833 +#: ../NEWS:1955 msgid "" ":gh:`148464`: Add missing ``__ctype_le/be__`` attributes for :class:`~ctypes." "c_float_complex` and :class:`~ctypes.c_double_complex`. Patch by Sergey B " "Kirpichev." msgstr "" -#: ../NEWS:1837 +#: ../NEWS:1959 msgid "" ":gh:`148370`: :mod:`configparser`: prevent quadratic behavior when a :exc:" "`~configparser.ParsingError` is raised after a parser fails to parse " "multiple lines. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:1841 +#: ../NEWS:1963 msgid "" ":gh:`148254`: Use singular \"sec\" instead of \"secs\" in :mod:`timeit` " "verbose output for consistency with other time units." msgstr "" -#: ../NEWS:1844 +#: ../NEWS:1966 msgid "" ":gh:`148192`: ``email.generator.Generator._make_boundary`` could fail to " "detect a duplicate boundary string if linesep was not \\n. It now correctly " "detects boundary strings when linesep is \\r\\n as well." msgstr "" -#: ../NEWS:1848 +#: ../NEWS:1970 msgid "" ":gh:`146313`: Fix a deadlock in :mod:`multiprocessing`'s resource tracker " "where the parent process could hang indefinitely in :func:`os.waitpid` " @@ -3247,21 +3449,21 @@ msgid "" "held the resource tracker's pipe open." msgstr "" -#: ../NEWS:1853 +#: ../NEWS:1975 msgid "" ":gh:`145831`: Fix :func:`!email.quoprimime.decode` leaving a stray ``\\r`` " "when ``eol='\\r\\n'`` by stripping the full *eol* string instead of one " "character." msgstr "" -#: ../NEWS:1857 +#: ../NEWS:1979 msgid "" ":gh:`145105`: Fix crash in :mod:`csv` reader when iterating with a re-" "entrant iterator that calls :func:`next` on the same reader from within " "``__next__``." msgstr "" -#: ../NEWS:1861 +#: ../NEWS:1983 msgid "" ":gh:`105936`: Attempting to mutate non-field attributes of :mod:" "`dataclasses` with both *frozen* and *slots* being ``True`` now raises :" @@ -3270,56 +3472,56 @@ msgid "" "and the original non-slotted class can be garbage collected." msgstr "" -#: ../NEWS:1867 +#: ../NEWS:1989 msgid "" ":gh:`140287`: The :mod:`asyncio` REPL now handles exceptions when executing :" "envvar:`PYTHONSTARTUP` scripts. Patch by Bartosz Sławecki." msgstr "" -#: ../NEWS:1870 +#: ../NEWS:1992 msgid "" ":gh:`132631`: Fix \"I/O operation on closed file\" when parsing JSON Lines " "file with :mod:`JSON CLI `." msgstr "" -#: ../NEWS:1873 +#: ../NEWS:1995 msgid "" ":gh:`70039`: Fixed bug where :meth:`smtplib.SMTP.starttls` could fail if :" "meth:`smtplib.SMTP.connect` is called explicitly rather than implicitly." msgstr "" -#: ../NEWS:1876 +#: ../NEWS:1998 msgid "" ":gh:`83281`: :mod:`email`: improve handling trailing garbage in address " "lists to avoid throwing AttributeError in certain edge cases" msgstr "" -#: ../NEWS:1882 +#: ../NEWS:2004 msgid "" ":gh:`148663`: Document that :class:`calendar.IllegalMonthError` is a " "subclass of both :exc:`ValueError` and :exc:`IndexError` since Python 3.12." msgstr "" -#: ../NEWS:1885 +#: ../NEWS:2007 msgid "" ":gh:`146646`: Document that :func:`glob.glob`, :func:`glob.iglob`, :meth:" "`pathlib.Path.glob`, and :meth:`pathlib.Path.rglob` silently suppress :exc:" "`OSError` exceptions raised from scanning the filesystem." msgstr "" -#: ../NEWS:1892 +#: ../NEWS:2014 msgid "" ":gh:`149351`: Avoid possible broken macOS framework install names when " "DESTDIR is specified during builds." msgstr "" -#: ../NEWS:1895 +#: ../NEWS:2017 msgid "" ":gh:`146475`: Block Apple Clang from being used to build the JIT as it ships " "without required LLVM tools." msgstr "" -#: ../NEWS:1898 +#: ../NEWS:2020 msgid "" ":gh:`148535`: No longer use the ``gcc -fprofile-update=atomic`` flag on " "i686. The flag has been added to fix a random GCC internal error on PGO " @@ -3329,90 +3531,90 @@ msgid "" "fprofile-update=atomic`` on i686 anymore. Patch by Victor Stinner." msgstr "" -#: ../NEWS:1905 +#: ../NEWS:2027 msgid "" ":gh:`146264`: Fix static module builds on non-WASI targets by linking HACL " "dependencies as static libraries when ``MODULE_BUILDTYPE=static``, " "preventing duplicate ``_Py_LibHacl_*`` symbol errors at link time." msgstr "" -#: ../NEWS:1912 +#: ../NEWS:2034 msgid ":gh:`149254`: Updated bundled version of OpenSSL to 3.0.20." msgstr "" -#: ../NEWS:1914 +#: ../NEWS:2036 msgid "" ":gh:`146458`: Fix incorrect REPL height and width tracking on console window " "resize on Windows." msgstr "" -#: ../NEWS:1920 +#: ../NEWS:2042 msgid ":gh:`149254`: Update macOS installer to use OpenSSL 3.0.20." msgstr "" -#: ../NEWS:1924 +#: ../NEWS:2046 msgid "Python 3.14.4 final" msgstr "" -#: ../NEWS:1926 +#: ../NEWS:2048 msgid "*Release date: 2026-04-07*" msgstr "" -#: ../NEWS:1931 +#: ../NEWS:2053 msgid "" ":gh:`145986`: :mod:`xml.parsers.expat`: Fixed a crash caused by unbounded C " "recursion when converting deeply nested XML content models with :meth:`~xml." "parsers.expat.xmlparser.ElementDeclHandler`. This addresses :cve:`2026-4224`." msgstr "" -#: ../NEWS:1936 +#: ../NEWS:2058 msgid "" ":gh:`145599`: Reject control characters in :class:`http.cookies.Morsel` :" "meth:`~http.cookies.Morsel.update` and :meth:`~http.cookies.BaseCookie." "js_output`. This addresses :cve:`2026-3644`." msgstr "" -#: ../NEWS:1941 +#: ../NEWS:2063 msgid "" ":gh:`145506`: Fixes :cve:`2026-2297` by ensuring that " "``SourcelessFileLoader`` uses :func:`io.open_code` when opening ``.pyc`` " "files." msgstr "" -#: ../NEWS:1945 +#: ../NEWS:2067 msgid "" ":gh:`144370`: Disallow usage of control characters in status in :mod:" "`wsgiref.handlers` to prevent HTTP header injections. Patch by Benedikt " "Johannes." msgstr "" -#: ../NEWS:1949 +#: ../NEWS:2071 msgid "" ":gh:`143930`: Reject leading dashes in URLs passed to :func:`webbrowser." "open`." msgstr "" -#: ../NEWS:1955 +#: ../NEWS:2077 msgid "" ":gh:`148157`: Fix an unlikely crash when parsing an invalid type comments " "for function parameters. Found by OSS Fuzz in :oss-fuzz:`492782951`." msgstr "" -#: ../NEWS:1958 +#: ../NEWS:2080 msgid "" ":gh:`148144`: Initialize ``_PyInterpreterFrame.visited`` when copying " "interpreter frames so incremental GC does not read an uninitialized byte " "from generator and frame-object copies." msgstr "" -#: ../NEWS:1962 +#: ../NEWS:2084 msgid "" ":gh:`146615`: Fix a crash in :meth:`~object.__get__` for :c:expr:" "`METH_METHOD` descriptors when an invalid (non-type) object is passed as the " "second argument. Patch by Steven Sun." msgstr "" -#: ../NEWS:1966 +#: ../NEWS:2088 msgid "" ":gh:`146308`: Fixed several error handling issues in the :mod:`!" "_remote_debugging` module, including safer validation of remote ``int`` " @@ -3421,186 +3623,186 @@ msgid "" "Pablo Galindo." msgstr "" -#: ../NEWS:1972 +#: ../NEWS:2094 msgid "" ":gh:`146128`: Fix a bug which could cause constant values to be partially " "corrupted in AArch64 JIT code. This issue is theoretical, and hasn't " "actually been observed in unmodified Python interpreters." msgstr "" -#: ../NEWS:1976 +#: ../NEWS:2098 msgid "" ":gh:`146250`: Fixed a memory leak in :exc:`SyntaxError` when re-initializing " "it." msgstr "" -#: ../NEWS:1979 +#: ../NEWS:2101 msgid "" ":gh:`146245`: Fixed reference leaks in :mod:`socket` when audit hooks raise " "exceptions in :func:`socket.getaddrinfo` and :meth:`!socket.sendto`." msgstr "" -#: ../NEWS:1982 +#: ../NEWS:2104 msgid "" ":gh:`146196`: Fix potential Undefined Behavior in :c:func:" "`PyUnicodeWriter_WriteASCII` by adding a zero-length check. Patch by Shamil " "Abdulaev." msgstr "" -#: ../NEWS:1986 +#: ../NEWS:2108 msgid "" ":gh:`146227`: Fix wrong type in ``_Py_atomic_load_uint16`` in the C11 " "atomics backend (``pyatomic_std.h``), which used a 32-bit atomic load " "instead of 16-bit. Found by Mohammed Zuhaib." msgstr "" -#: ../NEWS:1990 +#: ../NEWS:2112 msgid "" ":gh:`146056`: Fix :func:`repr` for lists and tuples containing ``NULL``\\ s." msgstr "" -#: ../NEWS:1992 +#: ../NEWS:2114 msgid "" ":gh:`146092`: Handle properly memory allocation failures on str and float " "opcodes. Patch by Victor Stinner." msgstr "" -#: ../NEWS:1995 +#: ../NEWS:2117 msgid "" ":gh:`146041`: Fix free-threading scaling bottleneck in :func:`sys.intern` " "and :c:func:`PyObject_SetAttr` by avoiding the interpreter-wide lock when " "the string is already interned and immortalized." msgstr "" -#: ../NEWS:1999 +#: ../NEWS:2121 msgid "" ":gh:`145990`: ``python --help-env`` sections are now sorted by environment " "variable name." msgstr "" -#: ../NEWS:2002 +#: ../NEWS:2124 msgid "" ":gh:`145990`: ``python --help-xoptions`` is now sorted by ``-X`` option name." msgstr "" -#: ../NEWS:2004 +#: ../NEWS:2126 msgid ":gh:`145376`: Fix GC tracking in ``structseq.__replace__()``." msgstr "" -#: ../NEWS:2006 +#: ../NEWS:2128 msgid "" ":gh:`145792`: Fix out-of-bounds access when invoking faulthandler on a " "CPython build compiled without support for VLAs." msgstr "" -#: ../NEWS:2009 +#: ../NEWS:2131 msgid "" ":gh:`142183`: Avoid a pathological case where repeated calls at a specific " "stack depth could be significantly slower." msgstr "" -#: ../NEWS:2012 +#: ../NEWS:2134 msgid "" ":gh:`145779`: Improve scaling of :func:`classmethod` and :func:" "`staticmethod` calls in the free-threaded build by avoiding the descriptor " "``__get__`` call." msgstr "" -#: ../NEWS:2016 +#: ../NEWS:2138 msgid "" ":gh:`145783`: Fix an unlikely crash in the parser when certain errors were " "erroneously not propagated. Found by OSS Fuzz in :oss-fuzz:`491369109`." msgstr "" -#: ../NEWS:2019 +#: ../NEWS:2141 msgid "" ":gh:`145685`: Improve scaling of type attribute lookups in the :term:`free-" "threaded build` by avoiding contention on the internal type lock." msgstr "" -#: ../NEWS:2023 +#: ../NEWS:2145 msgid "" ":gh:`145701`: Fix :exc:`SystemError` when ``__classdict__`` or " "``__conditional_annotations__`` is in a class-scope inlined comprehension. " "Found by OSS Fuzz in :oss-fuzz:`491105000`." msgstr "" -#: ../NEWS:2027 +#: ../NEWS:2149 msgid "" ":gh:`145713`: Make :meth:`bytearray.resize` thread-safe in the free-threaded " "build by using a critical section and calling the lock-held variant of the " "resize function." msgstr "" -#: ../NEWS:2031 +#: ../NEWS:2153 msgid "" ":gh:`145615`: Fixed a memory leak in the :term:`free-threaded build` where " "mimalloc pages could become permanently unreclaimable until the owning " "thread exited." msgstr "" -#: ../NEWS:2035 +#: ../NEWS:2157 msgid "" ":gh:`145566`: In the free threading build, skip the stop-the-world pause " "when reassigning ``__class__`` on a newly created object." msgstr "" -#: ../NEWS:2038 +#: ../NEWS:2160 msgid "" ":gh:`145335`: Fix a crash in :func:`os.pathconf` when called with ``-1`` as " "the path argument." msgstr "" -#: ../NEWS:2041 +#: ../NEWS:2163 msgid "" ":gh:`145036`: In free-threaded build, fix race condition when calling :meth:" "`!__sizeof__` on a :class:`list`" msgstr "" -#: ../NEWS:2044 +#: ../NEWS:2166 msgid ":gh:`145376`: Fix reference leaks in various unusual error scenarios." msgstr "" -#: ../NEWS:2046 +#: ../NEWS:2168 msgid "" ":gh:`145234`: Fixed a ``SystemError`` in the parser when an encoding cookie " "(for example, UTF-7) decodes to carriage returns (``\\r``). Newlines are now " "normalized after decoding in the string tokenizer." msgstr "" -#: ../NEWS:2050 +#: ../NEWS:2172 msgid "Patch by Pablo Galindo." msgstr "" -#: ../NEWS:2052 +#: ../NEWS:2174 msgid "" ":gh:`130555`: Fix use-after-free in :meth:`dict.clear` when the dictionary " "values are embedded in an object and a destructor causes re-entrant mutation " "of the dictionary." msgstr "" -#: ../NEWS:2056 +#: ../NEWS:2178 msgid "" ":gh:`145187`: Fix compiler assertion fail when a type parameter bound " "contains an invalid expression in a conditional block." msgstr "" -#: ../NEWS:2059 +#: ../NEWS:2181 msgid "" ":gh:`145142`: Fix a crash in the free-threaded build when the dictionary " "argument to :meth:`str.maketrans` is concurrently modified." msgstr "" -#: ../NEWS:2062 +#: ../NEWS:2184 msgid ":gh:`144872`: Fix heap buffer overflow in the parser found by OSS-Fuzz." msgstr "" -#: ../NEWS:2064 +#: ../NEWS:2186 msgid "" ":gh:`144766`: Fix a crash in fork child process when perf support is enabled." msgstr "" -#: ../NEWS:2066 +#: ../NEWS:2188 msgid "" ":gh:`144759`: Fix undefined behavior in the lexer when ``start`` and " "``multi_line_start`` pointers are ``NULL`` in " @@ -3609,7 +3811,7 @@ msgid "" "(``NULL - valid_pointer``) is now guarded with explicit ``NULL`` checks." msgstr "" -#: ../NEWS:2072 +#: ../NEWS:2194 msgid "" ":gh:`144563`: Fix interaction of the Tachyon profiler and :mod:`ctypes` and " "other modules that load the Python shared library (if present) in an " @@ -3617,75 +3819,75 @@ msgid "" "information to be confused. Patch by Pablo Galindo" msgstr "" -#: ../NEWS:2077 +#: ../NEWS:2199 msgid "" ":gh:`144601`: Fix crash when importing a module whose ``PyInit`` function " "raises an exception from a subinterpreter." msgstr "" -#: ../NEWS:2080 +#: ../NEWS:2202 msgid "" ":gh:`144438`: Align the QSBR thread state array to a 64-byte cache line " "boundary to avoid false sharing in the :term:`free-threaded build`." msgstr "" -#: ../NEWS:2083 +#: ../NEWS:2205 msgid "" ":gh:`144513`: Fix potential deadlock when using critical sections during " "stop-the-world pauses in the free-threaded build." msgstr "" -#: ../NEWS:2086 +#: ../NEWS:2208 msgid "" ":gh:`144446`: Fix data races in the free-threaded build when reading frame " "object attributes while another thread is executing the frame." msgstr "" -#: ../NEWS:2089 +#: ../NEWS:2211 msgid "" ":gh:`143636`: Fix a crash when calling :class:`SimpleNamespace.__replace__() " "` on non-namespace instances. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2093 +#: ../NEWS:2215 msgid "" ":gh:`143650`: Fix race condition in :mod:`importlib` where a thread could " "receive a stale module reference when another thread's import fails." msgstr "" -#: ../NEWS:2096 +#: ../NEWS:2218 msgid "" ":gh:`141732`: Ensure the :meth:`~object.__repr__` for :exc:`ExceptionGroup` " "and :exc:`BaseExceptionGroup` does not change when the exception sequence " "that was original passed in to its constructor is subsequently mutated." msgstr "" -#: ../NEWS:2100 +#: ../NEWS:2222 msgid "" ":gh:`140594`: Fix an out of bounds read when a single NUL character is read " "from the standard input. Patch by Shamil Abdulaev." msgstr "" -#: ../NEWS:2103 +#: ../NEWS:2225 msgid "" ":gh:`91636`: While performing garbage collection, clear weakrefs to " "unreachable objects that are created during running of finalizers. If those " "weakrefs were are not cleared, they could reveal unreachable objects." msgstr "" -#: ../NEWS:2108 +#: ../NEWS:2230 msgid "" ":gh:`130327`: Fix erroneous clearing of an object's :attr:`~object.__dict__` " "if overwritten at runtime." msgstr "" -#: ../NEWS:2111 +#: ../NEWS:2233 msgid "" ":gh:`80667`: Literals using the ``\\N{name}`` escape syntax can now " "construct CJK ideographs and Hangul syllables using case-insensitive names." msgstr "" -#: ../NEWS:2117 +#: ../NEWS:2239 msgid "" ":gh:`144503`: Fix a regression introduced in 3.14.3 and 3.13.12 where the :" "mod:`multiprocessing` ``forkserver`` start method would fail with :exc:" @@ -3695,19 +3897,19 @@ msgid "" "the operating system's per-argument length limit." msgstr "" -#: ../NEWS:2124 +#: ../NEWS:2246 msgid "" ":gh:`146613`: :mod:`itertools`: Fix a crash in :func:`itertools.groupby` " "when the grouper iterator is concurrently mutated." msgstr "" -#: ../NEWS:2127 +#: ../NEWS:2249 msgid "" ":gh:`146080`: :mod:`ssl`: fix a crash when an SNI callback tries to use an " "SSL object that has already been garbage-collected. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2131 +#: ../NEWS:2253 msgid "" ":gh:`146556`: Fix :func:`annotationlib.get_annotations` hanging indefinitely " "when called with ``eval_str=True`` on a callable that has a circular " @@ -3716,52 +3918,52 @@ msgid "" "found so far, mirroring the approach of :func:`inspect.unwrap`." msgstr "" -#: ../NEWS:2137 +#: ../NEWS:2259 msgid "" ":gh:`146090`: :mod:`sqlite3`: fix a crash when :meth:`sqlite3.Connection." "create_collation` fails with `SQLITE_BUSY `__. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2141 +#: ../NEWS:2263 msgid "" ":gh:`146090`: :mod:`sqlite3`: properly raise :exc:`MemoryError` instead of :" "exc:`SystemError` when a context callback fails to be allocated. Patch by " "Bénédikt Tran." msgstr "" -#: ../NEWS:2145 +#: ../NEWS:2267 msgid "" ":gh:`145633`: Fix ``struct.pack('f', float)``: use :c:func:`PyFloat_Pack4` " "to raise :exc:`OverflowError`. Patch by Sergey B Kirpichev and Victor " "Stinner." msgstr "" -#: ../NEWS:2149 +#: ../NEWS:2271 msgid "" ":gh:`146310`: The :mod:`ensurepip` module no longer looks for ``pip-*.whl`` " "wheel packages in the current directory." msgstr "" -#: ../NEWS:2152 +#: ../NEWS:2274 msgid "" ":gh:`146083`: Update bundled `libexpat `_ to " "version 2.7.5." msgstr "" -#: ../NEWS:2155 +#: ../NEWS:2277 msgid "" ":gh:`146076`: :mod:`zoneinfo`: fix crashes when deleting ``_weak_cache`` " "from a :class:`zoneinfo.ZoneInfo` subclass." msgstr "" -#: ../NEWS:2158 +#: ../NEWS:2280 msgid "" ":gh:`146054`: Limit the size of :func:`encodings.search_function` cache. " "Found by OSS Fuzz in :oss-fuzz:`493449985`." msgstr "" -#: ../NEWS:2161 +#: ../NEWS:2283 msgid "" ":gh:`146004`: All :option:`-X` options from the Python command line are now " "propagated to child processes spawned by :mod:`multiprocessing`, not just a " @@ -3775,61 +3977,61 @@ msgid "" "``warn_default_encoding``." msgstr "" -#: ../NEWS:2172 +#: ../NEWS:2294 msgid "" ":gh:`145883`: :mod:`zoneinfo`: Fix heap buffer overflow reads from malformed " "TZif data. Found by OSS Fuzz, issues :oss-fuzz:`492245058` and :oss-fuzz:" "`492230068`." msgstr "" -#: ../NEWS:2176 +#: ../NEWS:2298 msgid "" ":gh:`145754`: Request signature during mock autospec with ``FORWARDREF`` " "annotation format. This prevents runtime errors when an annotation uses a " "name that is not defined at runtime." msgstr "" -#: ../NEWS:2180 +#: ../NEWS:2302 msgid "" ":gh:`145750`: Avoid undefined behaviour from signed integer overflow when " "parsing format strings in the :mod:`struct` module. Found by OSS Fuzz in :" "oss-fuzz:`488466741`." msgstr "" -#: ../NEWS:2184 +#: ../NEWS:2306 msgid "" ":gh:`145492`: Fix infinite recursion in :class:`collections.defaultdict` " "``__repr__`` when a ``defaultdict`` contains itself. Based on analysis by " "KowalskiThomas in :gh:`145492`." msgstr "" -#: ../NEWS:2188 +#: ../NEWS:2310 msgid "" ":gh:`145623`: Fix crash in :mod:`struct` when calling :func:`repr` or " "``__sizeof__()`` on an uninitialized :class:`struct.Struct` object created " "via ``Struct.__new__()`` without calling ``__init__()``." msgstr "" -#: ../NEWS:2192 +#: ../NEWS:2314 msgid "" ":gh:`145616`: Detect Android sysconfig ABI correctly on 32-bit ARM Android " "on 64-bit ARM kernel" msgstr "" -#: ../NEWS:2195 +#: ../NEWS:2317 msgid "" ":gh:`145551`: Fix InvalidStateError when cancelling process created by :func:" "`asyncio.create_subprocess_exec` or :func:`asyncio.create_subprocess_shell`. " "Patch by Daan De Meyer." msgstr "" -#: ../NEWS:2199 +#: ../NEWS:2321 msgid "" ":gh:`145446`: Now :mod:`functools` is safer in free-threaded build when " "using keywords in :func:`functools.partial`" msgstr "" -#: ../NEWS:2202 +#: ../NEWS:2324 msgid "" ":gh:`145417`: :mod:`venv`: Prevent incorrect preservation of SELinux context " "when copying the ``Activate.ps1`` script. The script inherited the SELinux " @@ -3837,25 +4039,25 @@ msgid "" "destination project directory." msgstr "" -#: ../NEWS:2207 +#: ../NEWS:2329 msgid "" ":gh:`145376`: Fix double free and null pointer dereference in unusual error " "scenarios in :mod:`hashlib` and :mod:`hmac` modules." msgstr "" -#: ../NEWS:2210 +#: ../NEWS:2332 msgid "" ":gh:`145301`: :mod:`hmac`: fix a crash when the initialization of the " "underlying C extension module fails." msgstr "" -#: ../NEWS:2213 +#: ../NEWS:2335 msgid "" ":gh:`145301`: :mod:`hashlib`: fix a crash when the initialization of the " "underlying C extension module fails." msgstr "" -#: ../NEWS:2216 +#: ../NEWS:2338 msgid "" ":gh:`145264`: Base64 decoder (see :func:`binascii.a2b_base64`, :func:`base64." "b64decode`, etc) no longer ignores excess data after the first padded quad " @@ -3864,13 +4066,13 @@ msgid "" "before the end of the encoded data." msgstr "" -#: ../NEWS:2222 +#: ../NEWS:2344 msgid "" ":gh:`145158`: Avoid undefined behaviour from signed integer overflow when " "parsing format strings in the :mod:`struct` module." msgstr "" -#: ../NEWS:2225 +#: ../NEWS:2347 msgid "" ":gh:`144984`: Fix crash in :meth:`xml.parsers.expat.xmlparser." "ExternalEntityParserCreate` when an allocation fails. The error paths could " @@ -3878,55 +4080,55 @@ msgid "" "reference count." msgstr "" -#: ../NEWS:2230 +#: ../NEWS:2352 msgid "" ":gh:`88091`: Fix :func:`unicodedata.decomposition` for Hangul characters." msgstr "" -#: ../NEWS:2232 +#: ../NEWS:2354 msgid "" ":gh:`144986`: Fix a memory leak in :func:`atexit.register`. Patch by Shamil " "Abdulaev." msgstr "" -#: ../NEWS:2235 +#: ../NEWS:2357 msgid "" ":gh:`144777`: Fix data races in :class:`io.IncrementalNewlineDecoder` in " "the :term:`free-threaded build`." msgstr "" -#: ../NEWS:2238 +#: ../NEWS:2360 msgid "" ":gh:`144809`: Make :class:`collections.deque` copy atomic in the :term:`free-" "threaded build`." msgstr "" -#: ../NEWS:2241 +#: ../NEWS:2363 msgid "" ":gh:`144835`: Added missing explanations for some parameters in :func:`glob." "glob` and :func:`glob.iglob`." msgstr "" -#: ../NEWS:2244 +#: ../NEWS:2366 msgid "" ":gh:`144833`: Fixed a use-after-free in :mod:`ssl` when ``SSL_new()`` " "returns NULL in ``newPySSLSocket()``. The error was reported via a dangling " "pointer after the object had already been freed." msgstr "" -#: ../NEWS:2248 +#: ../NEWS:2370 msgid "" ":gh:`144782`: Fix :class:`argparse.ArgumentParser` to be :mod:`pickleable " "`." msgstr "" -#: ../NEWS:2251 +#: ../NEWS:2373 msgid "" ":gh:`144259`: Fix inconsistent display of long multiline pasted content in " "the REPL." msgstr "" -#: ../NEWS:2254 +#: ../NEWS:2376 msgid "" ":gh:`144156`: Fix the folding of headers by the :mod:`email` library when :" "rfc:`2047` encoded words are used. Now whitespace is correctly preserved " @@ -3935,116 +4137,116 @@ msgid "" "failures to preserve whitespace." msgstr "" -#: ../NEWS:2260 +#: ../NEWS:2382 msgid "" ":gh:`66305`: Fixed a hang on Windows in the :mod:`tempfile` module when " "trying to create a temporary file or subdirectory in a non-writable " "directory." msgstr "" -#: ../NEWS:2264 +#: ../NEWS:2386 msgid "" ":gh:`140814`: :func:`multiprocessing.freeze_support` no longer sets the " "default start method as a side effect, which previously caused a subsequent :" "func:`multiprocessing.set_start_method` call to raise :exc:`RuntimeError`." msgstr "" -#: ../NEWS:2269 +#: ../NEWS:2391 msgid "" ":gh:`144475`: Calling :func:`repr` on :func:`functools.partial` is now safer " "when the partial object's internal attributes are replaced while the string " "representation is being generated." msgstr "" -#: ../NEWS:2273 +#: ../NEWS:2395 msgid "" ":gh:`144538`: Bump the version of pip bundled in ensurepip to version 26.0.1" msgstr "" -#: ../NEWS:2275 +#: ../NEWS:2397 msgid "" ":gh:`144494`: Fix performance regression in :func:`asyncio.all_tasks` on :" "term:`free-threaded builds `. Patch by Kumar Aditya." msgstr "" -#: ../NEWS:2278 +#: ../NEWS:2400 msgid "" ":gh:`144316`: Fix crash in ``_remote_debugging`` that caused " "``test_external_inspection`` to intermittently fail. Patch by Taegyun Kim." msgstr "" -#: ../NEWS:2281 +#: ../NEWS:2403 msgid "" ":gh:`144363`: Update bundled `libexpat `_ to " "2.7.4" msgstr "" -#: ../NEWS:2284 +#: ../NEWS:2406 msgid "" ":gh:`143637`: Fixed a crash in socket.sendmsg() that could occur if " "ancillary data is mutated re-entrantly during argument parsing." msgstr "" -#: ../NEWS:2287 +#: ../NEWS:2409 msgid "" ":gh:`143543`: Fix a crash in itertools.groupby that could occur when a user-" "defined :meth:`~object.__eq__` method re-enters the iterator during key " "comparison." msgstr "" -#: ../NEWS:2291 +#: ../NEWS:2413 msgid "" ":gh:`140652`: Fix a crash in :func:`!_interpchannels.list_all` after closing " "a channel." msgstr "" -#: ../NEWS:2294 +#: ../NEWS:2416 msgid "" ":gh:`143698`: Allow *scheduler* and *setpgroup* arguments to be explicitly :" "const:`None` when calling :func:`os.posix_spawn` or :func:`os.posix_spawnp`. " "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2298 +#: ../NEWS:2420 msgid "" ":gh:`143698`: Raise :exc:`TypeError` instead of :exc:`SystemError` when the " "*scheduler* in :func:`os.posix_spawn` or :func:`os.posix_spawnp` is not a " "tuple. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2302 +#: ../NEWS:2424 msgid "" ":gh:`142516`: :mod:`ssl`: fix reference leaks in :class:`ssl.SSLContext` " "objects. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2305 +#: ../NEWS:2427 msgid "" ":gh:`143304`: Fix :class:`ctypes.CDLL` to honor the ``handle`` parameter on " "POSIX systems." msgstr "" -#: ../NEWS:2308 +#: ../NEWS:2430 msgid "" ":gh:`142781`: :mod:`zoneinfo`: fix a crash when instantiating :class:" "`~zoneinfo.ZoneInfo` objects for which the internal class-level cache is " "inconsistent." msgstr "" -#: ../NEWS:2312 +#: ../NEWS:2434 msgid "" ":gh:`142763`: Fix a race condition between :class:`zoneinfo.ZoneInfo` " "creation and :func:`zoneinfo.ZoneInfo.clear_cache` that could raise :exc:" "`KeyError`." msgstr "" -#: ../NEWS:2316 +#: ../NEWS:2438 msgid "" ":gh:`142787`: Fix assertion failure in :mod:`sqlite3` blob subscript when " "slicing with indices that result in an empty slice." msgstr "" -#: ../NEWS:2319 +#: ../NEWS:2441 msgid "" ":gh:`142352`: Fix :meth:`asyncio.StreamWriter.start_tls` to transfer " "buffered data from :class:`~asyncio.StreamReader` to the SSL layer, " @@ -4052,68 +4254,68 @@ msgid "" "when implementing PROXY protocol support)." msgstr "" -#: ../NEWS:2324 +#: ../NEWS:2446 msgid "" ":gh:`141707`: Don't change :class:`tarfile.TarInfo` type from ``AREGTYPE`` " "to ``DIRTYPE`` when parsing GNU long name or link headers." msgstr "" -#: ../NEWS:2327 +#: ../NEWS:2449 msgid "" ":gh:`139933`: Improve :exc:`AttributeError` suggestions for classes with a " "custom :meth:`~object.__dir__` method returning a list of unsortable values. " "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2331 +#: ../NEWS:2453 msgid "" ":gh:`137335`: Get rid of any possibility of a name conflict for named pipes " "in :mod:`multiprocessing` and :mod:`asyncio` on Windows, no matter how small." msgstr "" -#: ../NEWS:2335 +#: ../NEWS:2457 msgid "" ":gh:`80667`: Support lookup for Tangut Ideographs in :mod:`unicodedata`." msgstr "" -#: ../NEWS:2337 +#: ../NEWS:2459 msgid "" ":issue:`40243`: Fix :meth:`!unicodedata.ucd_3_2_0.numeric` for non-decimal " "values." msgstr "" -#: ../NEWS:2343 +#: ../NEWS:2465 msgid "" ":gh:`126676`: Expand :mod:`argparse` documentation for ``type=bool`` with a " "demonstration of the surprising behavior and pointers to common alternatives." msgstr "" -#: ../NEWS:2347 +#: ../NEWS:2469 msgid "" ":gh:`145649`: Fix text wrapping and formatting of ``-X`` option descriptions " "in the :manpage:`python(1)` man page by using proper roff markup." msgstr "" -#: ../NEWS:2350 +#: ../NEWS:2472 msgid "" ":gh:`145450`: Document missing public :class:`wave.Wave_write` getter " "methods." msgstr "" -#: ../NEWS:2353 +#: ../NEWS:2475 msgid "" ":gh:`136246`: A new \"Improve this page\" link is available in the left-hand " "sidebar of the docs, offering links to create GitHub issues, discussion " "forum posts, or pull requests." msgstr "" -#: ../NEWS:2360 +#: ../NEWS:2482 msgid "" ":gh:`144418`: The Android testbed's emulator RAM has been increased from 2 " "GB to 4 GB." msgstr "" -#: ../NEWS:2363 +#: ../NEWS:2485 msgid "" ":gh:`146202`: Fix a race condition in regrtest: make sure that the temporary " "directory is created in the worker process. Previously, temp_cwd() could " @@ -4121,39 +4323,39 @@ msgid "" "Stinner." msgstr "" -#: ../NEWS:2368 +#: ../NEWS:2490 msgid "" ":gh:`144739`: When Python was compiled with system expat older then 2.7.2 " "but tests run with newer expat, still skip :class:`!test.test_pyexpat." "MemoryProtectionTest`." msgstr "" -#: ../NEWS:2375 +#: ../NEWS:2497 msgid "" ":gh:`146541`: The Android testbed can now be built for 32-bit ARM and x86 " "targets." msgstr "" -#: ../NEWS:2378 +#: ../NEWS:2500 msgid "" ":gh:`146498`: The iOS XCframework build script now ensures libpython isn't " "included in installed app content, and is more robust in identifying " "standard library binary content that requires processing." msgstr "" -#: ../NEWS:2382 +#: ../NEWS:2504 msgid "" ":gh:`146450`: The Android build script was modified to improve parity with " "other platform build scripts." msgstr "" -#: ../NEWS:2385 +#: ../NEWS:2507 msgid "" ":gh:`146446`: The clean target for the Apple/iOS XCframework build script is " "now more selective when targeting a single architecture." msgstr "" -#: ../NEWS:2388 +#: ../NEWS:2510 msgid "" ":gh:`145801`: When Python build is optimized with GCC using PGO, use ``-" "fprofile-update=atomic`` option to use atomic operations when updating " @@ -4161,45 +4363,45 @@ msgid "" "corruption which can cause random GCC crashes. Patch by Victor Stinner." msgstr "" -#: ../NEWS:2397 +#: ../NEWS:2519 msgid "" ":gh:`145307`: Defers loading of the ``psapi.dll`` module until it is used " "by :func:`ctypes.util.dllist`." msgstr "" -#: ../NEWS:2400 +#: ../NEWS:2522 msgid ":gh:`144551`: Updated bundled version of OpenSSL to 3.0.19." msgstr "" -#: ../NEWS:2402 +#: ../NEWS:2524 msgid "" ":gh:`140131`: Fix REPL cursor position on Windows when module completion " "suggestion line hits console width." msgstr "" -#: ../NEWS:2408 +#: ../NEWS:2530 msgid ":gh:`144551`: Update macOS installer to use OpenSSL 3.0.19." msgstr "" -#: ../NEWS:2410 +#: ../NEWS:2532 msgid "" ":gh:`137586`: Invoke :program:`osascript` with absolute path in :mod:" "`webbrowser` and :mod:`!turtledemo`." msgstr "" -#: ../NEWS:2416 +#: ../NEWS:2538 msgid "" ":gh:`146056`: :c:func:`PyUnicodeWriter_WriteRepr` now supports ``NULL`` " "argument." msgstr "" -#: ../NEWS:2419 +#: ../NEWS:2541 msgid "" ":gh:`145010`: Use GCC dialect alternatives for inline assembly in ``object." "h`` so that the Python headers compile correctly with ``-masm=intel``." msgstr "" -#: ../NEWS:2423 +#: ../NEWS:2545 msgid "" ":gh:`144981`: Made :c:func:`PyUnstable_Code_SetExtra`, :c:func:" "`PyUnstable_Code_GetExtra`, and :c:func:" @@ -4207,27 +4409,27 @@ msgid "" "threaded ` build." msgstr "" -#: ../NEWS:2430 +#: ../NEWS:2552 msgid "Python 3.14.3 final" msgstr "" -#: ../NEWS:2432 +#: ../NEWS:2554 msgid "*Release date: 2026-02-03*" msgstr "" -#: ../NEWS:2437 +#: ../NEWS:2559 msgid "" ":gh:`128067`: Fix a bug in PyREPL on Windows where output without a trailing " "newline was overwritten by the next prompt." msgstr "" -#: ../NEWS:2443 +#: ../NEWS:2565 msgid "" ":gh:`142095`: Make gdb 'py-bt' command use frame from thread local state " "when available. Patch by Sam Gross and Victor Stinner." msgstr "" -#: ../NEWS:2449 +#: ../NEWS:2571 msgid "" ":gh:`144415`: The Android testbed now distinguishes between stdout/stderr " "messages which were triggered by a newline, and those triggered by a manual " @@ -4235,38 +4437,38 @@ msgid "" "content." msgstr "" -#: ../NEWS:2454 +#: ../NEWS:2576 msgid "" ":gh:`143460`: Skip tests relying on infinite recusion if stack size is " "unlimited." msgstr "" -#: ../NEWS:2457 +#: ../NEWS:2579 msgid "" ":gh:`65784`: Add support for parametrized resource ``wantobjects`` in " "regrtests, which allows to run Tkinter tests with the specified value of :" "data:`!tkinter.wantobjects`, for example ``-u wantobjects=0``." msgstr "" -#: ../NEWS:2461 +#: ../NEWS:2583 msgid "" ":gh:`143553`: Add support for parametrized resources, such as ``-u " "xpickle=2.7``." msgstr "" -#: ../NEWS:2464 +#: ../NEWS:2586 msgid "" ":gh:`142836`: Accommodated Solaris in ``test_pdb." "test_script_target_anonymous_pipe``." msgstr "" -#: ../NEWS:2467 +#: ../NEWS:2589 msgid "" ":issue:`31391`: Forward-port test_xpickle from Python 2 to Python 3 and add " "the resource back to test's command line." msgstr "" -#: ../NEWS:2473 +#: ../NEWS:2595 msgid "" ":gh:`144125`: :mod:`~email.generator.BytesGenerator` will now refuse to " "serialize (write) headers that are unsafely folded or delimited; see :attr:" @@ -4274,7 +4476,7 @@ msgid "" "Bloemsaat and Petr Viktorin in :gh:`121650`)." msgstr "" -#: ../NEWS:2478 +#: ../NEWS:2600 msgid "" ":gh:`143935`: Fixed a bug in the folding of comments when flattening an " "email message using a modern email policy. Comments consisting of a very " @@ -4284,80 +4486,80 @@ msgid "" "enabled header injection with carefully crafted inputs." msgstr "" -#: ../NEWS:2485 +#: ../NEWS:2607 msgid ":gh:`143925`: Reject control characters in ``data:`` URL media types." msgstr "" -#: ../NEWS:2487 +#: ../NEWS:2609 msgid "" ":gh:`143919`: Reject control characters in :class:`http.cookies.Morsel` " "fields and values." msgstr "" -#: ../NEWS:2490 +#: ../NEWS:2612 msgid "" ":gh:`143916`: Reject C0 control characters within wsgiref.headers.Headers " "fields, values, and parameters." msgstr "" -#: ../NEWS:2496 +#: ../NEWS:2618 msgid "" ":gh:`144380`: Improve performance of :class:`io.BufferedReader` line " "iteration by ~49%." msgstr "" -#: ../NEWS:2499 +#: ../NEWS:2621 msgid "" ":gh:`144169`: Fix three crashes when non-string keyword arguments are " "supplied to objects in the :mod:`ast` module." msgstr "" -#: ../NEWS:2502 +#: ../NEWS:2624 msgid "" ":gh:`144100`: Fixed a crash in ctypes when using a deprecated " "``POINTER(str)`` type in ``argtypes``. Instead of aborting, ctypes now " "raises a proper Python exception when the pointer target type is unresolved." msgstr "" -#: ../NEWS:2507 +#: ../NEWS:2629 msgid "" ":gh:`144050`: Fix :func:`stat.filemode` in the pure-Python implementation to " "avoid misclassifying invalid mode values as block devices." msgstr "" -#: ../NEWS:2510 +#: ../NEWS:2632 msgid "" ":gh:`144023`: Fixed validation of file descriptor 0 in posix functions when " "used with follow_symlinks parameter." msgstr "" -#: ../NEWS:2513 +#: ../NEWS:2635 msgid "" ":gh:`143999`: Fix an issue where :func:`inspect.getgeneratorstate` and :func:" "`inspect.getcoroutinestate` could fail for generators wrapped by :func:" "`types.coroutine` in the suspended state." msgstr "" -#: ../NEWS:2517 +#: ../NEWS:2639 msgid "" ":gh:`143831`: :class:`annotationlib.ForwardRef` objects are now hashable " "when created from annotation scopes with closures. Previously, hashing such " "objects would throw an exception. Patch by Bartosz Sławecki." msgstr "" -#: ../NEWS:2521 +#: ../NEWS:2643 msgid "" ":gh:`143874`: Fixed a bug in :mod:`pdb` where expression results were not " "sent back to remote client." msgstr "" -#: ../NEWS:2524 +#: ../NEWS:2646 msgid "" ":gh:`143880`: Fix data race in :func:`functools.partial` in the :term:`free " "threading` build." msgstr "" -#: ../NEWS:2527 +#: ../NEWS:2649 msgid "" ":gh:`143706`: Fix :mod:`multiprocessing` forkserver so that :data:`sys.argv` " "is correctly set before ``__main__`` is preloaded. Previously, :data:`sys." @@ -4366,7 +4568,7 @@ msgid "" "Aaron Wieczorek, test provided by Thomas Watson, thanks!" msgstr "" -#: ../NEWS:2533 +#: ../NEWS:2655 msgid "" ":gh:`143638`: Forbid reentrant calls of the :class:`pickle.Pickler` and :" "class:`pickle.Unpickler` methods for the C implementation. Previously, this " @@ -4374,40 +4576,40 @@ msgid "" "same object raise :exc:`RuntimeError`." msgstr "" -#: ../NEWS:2538 +#: ../NEWS:2660 msgid "" ":gh:`78724`: Raise :exc:`RuntimeError`'s when user attempts to call methods " "on half-initialized :class:`~struct.Struct` objects, For example, created by " "``Struct.__new__(Struct)``. Patch by Sergey B Kirpichev." msgstr "" -#: ../NEWS:2542 +#: ../NEWS:2664 msgid "" ":gh:`143196`: Fix crash when the internal encoder object returned by " "undocumented function :func:`!json.encoder.c_make_encoder` was called with " "non-zero second (*_current_indent_level*) argument." msgstr "" -#: ../NEWS:2546 +#: ../NEWS:2668 msgid "" ":gh:`143191`: :func:`_thread.stack_size` now raises :exc:`ValueError` if the " "stack size is too small. Patch by Victor Stinner." msgstr "" -#: ../NEWS:2549 +#: ../NEWS:2671 msgid "" ":gh:`143602`: Fix a inconsistency issue in :meth:`~io.RawIOBase.write` that " "leads to unexpected buffer overwrite by deduplicating the buffer exports." msgstr "" -#: ../NEWS:2552 +#: ../NEWS:2674 msgid "" ":gh:`143547`: Fix :func:`sys.unraisablehook` when the hook raises an " "exception and changes :func:`sys.unraisablehook`: hold a strong reference to " "the old hook. Patch by Victor Stinner." msgstr "" -#: ../NEWS:2556 +#: ../NEWS:2678 msgid "" ":gh:`143517`: :func:`annotationlib.get_annotations` no longer raises a :exc:" "`SyntaxError` when evaluating a stringified starred annotation that starts " @@ -4415,67 +4617,67 @@ msgid "" "Sławecki." msgstr "" -#: ../NEWS:2561 +#: ../NEWS:2683 msgid "" ":gh:`143378`: Fix use-after-free crashes when a :class:`~io.BytesIO` object " "is concurrently mutated during :meth:`~io.RawIOBase.write` or :meth:`~io." "IOBase.writelines`." msgstr "" -#: ../NEWS:2565 +#: ../NEWS:2687 msgid "" ":gh:`143346`: Fix incorrect wrapping of the Base64 data in :class:`!plistlib." "_PlistWriter` when the indent contains a mix of tabs and spaces." msgstr "" -#: ../NEWS:2569 +#: ../NEWS:2691 msgid "" ":gh:`143310`: :mod:`tkinter`: fix a crash when a Python :class:`list` is " "mutated during the conversion to a Tcl object (e.g., when setting a Tcl " "variable). Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2573 +#: ../NEWS:2695 msgid "" ":gh:`143309`: Fix a crash in :func:`os.execve` on non-Windows platforms when " "given a custom environment mapping which is then mutated during parsing. " "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2577 +#: ../NEWS:2699 msgid "" ":gh:`143308`: :mod:`pickle`: fix use-after-free crashes when a :class:" "`~pickle.PickleBuffer` is concurrently mutated by a custom buffer callback " "during pickling. Patch by Bénédikt Tran and Aaron Wieczorek." msgstr "" -#: ../NEWS:2581 +#: ../NEWS:2703 msgid "" ":gh:`143237`: Fix support of named pipes in the rotating :mod:`logging` " "handlers." msgstr "" -#: ../NEWS:2584 +#: ../NEWS:2706 msgid "" ":gh:`143249`: Fix possible buffer leaks in Windows overlapped I/O on error " "handling." msgstr "" -#: ../NEWS:2587 +#: ../NEWS:2709 msgid "" ":gh:`143241`: :mod:`zoneinfo`: fix infinite loop in :meth:`ZoneInfo." "from_file ` when parsing a malformed TZif file. " "Patch by Fatih Celik." msgstr "" -#: ../NEWS:2591 +#: ../NEWS:2713 msgid "" ":gh:`142830`: :mod:`sqlite3`: fix use-after-free crashes when the " "connection's callbacks are mutated during a callback execution. Patch by " "Bénédikt Tran." msgstr "" -#: ../NEWS:2595 +#: ../NEWS:2717 msgid "" ":gh:`143200`: :mod:`xml.etree.ElementTree`: fix use-after-free crashes in :" "meth:`~object.__getitem__` and :meth:`~object.__setitem__` methods of :class:" @@ -4483,83 +4685,83 @@ msgid "" "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2600 +#: ../NEWS:2722 msgid "" ":gh:`142195`: Updated timeout evaluation logic in :mod:`subprocess` to be " "compatible with deterministic environments like Shadow where time moves " "exactly as requested." msgstr "" -#: ../NEWS:2604 +#: ../NEWS:2726 msgid "" ":gh:`142164`: Fix the ctypes bitfield overflow error message to report the " "correct offset and size calculation." msgstr "" -#: ../NEWS:2607 +#: ../NEWS:2729 msgid "" ":gh:`143145`: Fixed a possible reference leak in ctypes when constructing " "results with multiple output parameters on error." msgstr "" -#: ../NEWS:2610 +#: ../NEWS:2732 msgid "" ":gh:`122431`: Corrected the error message in :func:`readline." "append_history_file` to state that ``nelements`` must be non-negative " "instead of positive." msgstr "" -#: ../NEWS:2614 +#: ../NEWS:2736 msgid "" ":gh:`143004`: Fix a potential use-after-free in :meth:`collections.Counter." "update` when user code mutates the Counter during an update." msgstr "" -#: ../NEWS:2618 +#: ../NEWS:2740 msgid "" ":gh:`143046`: The :mod:`asyncio` REPL no longer prints copyright and version " "messages in the quiet mode (:option:`-q`). Patch by Bartosz Sławecki." msgstr "" -#: ../NEWS:2621 +#: ../NEWS:2743 msgid "" ":gh:`140648`: The :mod:`asyncio` REPL now respects the :option:`-I` flag " "(isolated mode). Previously, it would load and execute :envvar:" "`PYTHONSTARTUP` even if the flag was set. Contributed by Bartosz Sławecki." msgstr "" -#: ../NEWS:2626 +#: ../NEWS:2748 msgid "" ":gh:`142991`: Fixed socket operations such as recvfrom() and sendto() for " "FreeBSD divert(4) socket." msgstr "" -#: ../NEWS:2629 +#: ../NEWS:2751 msgid "" ":gh:`143010`: Fixed a bug in :mod:`mailbox` where the precise timing of an " "external event could result in the library opening an existing file instead " "of a file it expected to create." msgstr "" -#: ../NEWS:2633 +#: ../NEWS:2755 msgid "" ":gh:`142881`: Fix concurrent and reentrant call of :func:`atexit.unregister`." msgstr "" -#: ../NEWS:2635 +#: ../NEWS:2757 msgid "" ":gh:`112127`: Fix possible use-after-free in :func:`atexit.unregister` when " "the callback is unregistered during comparison." msgstr "" -#: ../NEWS:2638 +#: ../NEWS:2760 msgid "" ":gh:`142783`: Fix zoneinfo use-after-free with descriptor _weak_cache. a " "descriptor as _weak_cache could cause crashes during object creation. The " "fix ensures proper reference counting for descriptor-provided objects." msgstr "" -#: ../NEWS:2642 +#: ../NEWS:2764 msgid "" ":gh:`142754`: Add the *ownerDocument* attribute to :mod:`xml.dom.minidom` " "elements and attributes created by directly instantiating the ``Element`` or " @@ -4568,34 +4770,34 @@ msgid "" "used instead." msgstr "" -#: ../NEWS:2648 +#: ../NEWS:2770 msgid "" ":gh:`142784`: The :mod:`asyncio` REPL now properly closes the loop upon the " "end of interactive session. Previously, it could cause surprising warnings. " "Contributed by Bartosz Sławecki." msgstr "" -#: ../NEWS:2652 +#: ../NEWS:2774 msgid "" ":gh:`142555`: :mod:`array`: fix a crash in ``a[i] = v`` when converting *i* " "to an index via :meth:`i.__index__ ` or :meth:`i.__float__ " "` mutates the array." msgstr "" -#: ../NEWS:2656 +#: ../NEWS:2778 msgid "" ":gh:`142594`: Fix crash in ``TextIOWrapper.close()`` when the underlying " "buffer's ``closed`` property calls :meth:`~io.TextIOBase.detach`." msgstr "" -#: ../NEWS:2659 +#: ../NEWS:2781 msgid "" ":gh:`142451`: :mod:`hmac`: Ensure that the :attr:`HMAC.block_size ` attribute is correctly copied by :meth:`HMAC.copy `. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2663 +#: ../NEWS:2785 msgid "" ":gh:`142495`: :class:`collections.defaultdict` now prioritizes :meth:" "`~object.__setitem__` when inserting default values from " @@ -4603,33 +4805,33 @@ msgid "" "would overwrite a value set before ``default_factory`` returns." msgstr "" -#: ../NEWS:2668 +#: ../NEWS:2790 msgid "" ":gh:`142651`: :mod:`unittest.mock`: fix a thread safety issue where :attr:" "`Mock.call_count ` may return inaccurate " "values when the mock is called concurrently from multiple threads." msgstr "" -#: ../NEWS:2673 +#: ../NEWS:2795 msgid "" ":gh:`142595`: Added type check during initialization of the :mod:`decimal` " "module to prevent a crash in case of broken stdlib. Patch by Sergey B " "Kirpichev." msgstr "" -#: ../NEWS:2677 +#: ../NEWS:2799 msgid "" ":gh:`142556`: Fix crash when a task gets re-registered during finalization " "in :mod:`asyncio`. Patch by Kumar Aditya." msgstr "" -#: ../NEWS:2680 +#: ../NEWS:2802 msgid "" ":gh:`123241`: Avoid reference count operations in garbage collection of :mod:" "`ctypes` objects." msgstr "" -#: ../NEWS:2683 +#: ../NEWS:2805 msgid "" ":gh:`142517`: The non-``compat32`` :mod:`email` policies now correctly " "handle refolding encoded words that contain bytes that can not be decoded in " @@ -4637,174 +4839,174 @@ msgid "" "exception during folding." msgstr "" -#: ../NEWS:2688 +#: ../NEWS:2810 msgid "" ":gh:`112527`: The help text for required options in :mod:`argparse` no " "longer extended with \" (default: None)\"." msgstr "" -#: ../NEWS:2691 +#: ../NEWS:2813 msgid "" ":gh:`142346`: Fix usage formatting for mutually exclusive groups in :mod:" "`argparse` when they are preceded by positional arguments or followed or " "intermixed with other optional arguments." msgstr "" -#: ../NEWS:2695 +#: ../NEWS:2817 msgid "" ":gh:`142315`: Pdb can now run scripts from anonymous pipes used in process " "substitution. Patch by Bartosz Sławecki." msgstr "" -#: ../NEWS:2698 +#: ../NEWS:2820 msgid "" ":gh:`142332`: Fix usage formatting for positional arguments in mutually " "exclusive groups in :mod:`argparse`. in :mod:`argparse`." msgstr "" -#: ../NEWS:2701 +#: ../NEWS:2823 msgid "" ":gh:`142282`: Fix :func:`winreg.QueryValueEx` to not accidentally read " "garbage buffer under race condition." msgstr "" -#: ../NEWS:2704 +#: ../NEWS:2826 msgid "" ":gh:`75949`: Fix :mod:`argparse` to preserve ``|`` separators in mutually " "exclusive groups when the usage line wraps due to length." msgstr "" -#: ../NEWS:2707 +#: ../NEWS:2829 msgid "" ":gh:`142267`: Improve :mod:`argparse` performance by caching the formatter " "used for argument validation." msgstr "" -#: ../NEWS:2710 +#: ../NEWS:2832 msgid "" ":gh:`68552`: ``MisplacedEnvelopeHeaderDefect`` and ``Missing header name`` " "defects are now correctly passed to the ``handle_defect`` method of " "``policy`` in :class:`~email.parser.FeedParser`." msgstr "" -#: ../NEWS:2714 +#: ../NEWS:2836 msgid "" ":gh:`142006`: Fix a bug in the :mod:`email.policy.default` folding algorithm " "which incorrectly resulted in a doubled newline when a line ending at " "exactly max_line_length was followed by an unfoldable token." msgstr "" -#: ../NEWS:2718 +#: ../NEWS:2840 msgid "" ":gh:`105836`: Fix :meth:`asyncio.run_coroutine_threadsafe` leaving " "underlying cancelled asyncio task running." msgstr "" -#: ../NEWS:2721 +#: ../NEWS:2843 msgid "" ":gh:`139971`: :mod:`pydoc`: Ensure that the link to the online documentation " "of a :term:`stdlib` module is correct." msgstr "" -#: ../NEWS:2724 +#: ../NEWS:2846 msgid "" ":gh:`139262`: Some keystrokes can be swallowed in the new ``PyREPL`` on " "Windows, especially when used together with the ALT key. Fix by Chris Eibl." msgstr "" -#: ../NEWS:2728 +#: ../NEWS:2850 msgid "" ":gh:`138897`: Improved :data:`license`/:data:`copyright`/:data:`credits` " "display in the :term:`REPL`: now uses a pager." msgstr "" -#: ../NEWS:2731 +#: ../NEWS:2853 msgid "" ":gh:`79986`: Add parsing for ``References`` and ``In-Reply-To`` headers to " "the :mod:`email` library that parses the header content as lists of message " "id tokens. This prevents them from being folded incorrectly." msgstr "" -#: ../NEWS:2735 +#: ../NEWS:2857 msgid "" ":gh:`136282`: Add support for :const:`~configparser.UNNAMED_SECTION` when " "creating a section via the mapping protocol access" msgstr "" -#: ../NEWS:2738 +#: ../NEWS:2860 msgid "" ":gh:`109263`: Starting a process from spawn context in :mod:" "`multiprocessing` no longer sets the start method globally." msgstr "" -#: ../NEWS:2741 +#: ../NEWS:2863 msgid ":gh:`133253`: Fix thread-safety issues in :mod:`linecache`." msgstr "" -#: ../NEWS:2743 +#: ../NEWS:2865 msgid "" ":gh:`132715`: Skip writing objects during marshalling once a failure has " "occurred." msgstr "" -#: ../NEWS:2749 +#: ../NEWS:2871 msgid "" ":gh:`143774`: Better explain the operation of Format / Format Paragraph." msgstr "" -#: ../NEWS:2754 +#: ../NEWS:2876 msgid ":gh:`140806`: Add documentation for :func:`enum.bin`." msgstr "" -#: ../NEWS:2759 +#: ../NEWS:2881 msgid "" ":gh:`144307`: Prevent a reference leak in module teardown at interpreter " "finalization." msgstr "" -#: ../NEWS:2762 +#: ../NEWS:2884 msgid "" ":gh:`144194`: Fix error handling in perf jitdump initialization on memory " "allocation failure." msgstr "" -#: ../NEWS:2765 +#: ../NEWS:2887 msgid "" ":gh:`144012`: Check if the result is ``NULL`` in ``BINARY_OP_EXTENT`` opcode." msgstr "" -#: ../NEWS:2767 +#: ../NEWS:2889 msgid "" ":gh:`141805`: Fix crash in :class:`set` when objects with the same hash are " "concurrently added to the set after removing an element with the same hash " "while the set still contains elements with the same hash." msgstr "" -#: ../NEWS:2771 +#: ../NEWS:2893 msgid ":gh:`143670`: Fixes a crash in ``ga_repr_items_list`` function." msgstr "" -#: ../NEWS:2773 +#: ../NEWS:2895 msgid "" ":gh:`143377`: Fix a crash in :func:`!_interpreters.capture_exception` when " "the exception is incorrectly formatted. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2776 +#: ../NEWS:2898 msgid "" ":gh:`136924`: The interactive help mode in the :term:`REPL` no longer " "incorrectly syntax highlights text input as Python code. Contributed by Olga " "Matoula." msgstr "" -#: ../NEWS:2780 +#: ../NEWS:2902 msgid "" ":gh:`143189`: Fix crash when inserting a non-:class:`str` key into a split " "table dictionary when the key matches an existing key in the split table but " "has no corresponding value in the dict." msgstr "" -#: ../NEWS:2784 +#: ../NEWS:2906 msgid "" ":gh:`143228`: Fix use-after-free in perf trampoline when toggling profiling " "while threads are running or during interpreter finalization with daemon " @@ -4813,89 +5015,89 @@ msgid "" "Galindo" msgstr "" -#: ../NEWS:2790 +#: ../NEWS:2912 msgid "" ":gh:`142664`: Fix a use-after-free crash in :meth:`memoryview.__hash__ " "` when the ``__hash__`` method of the referenced object " "mutates that object or the view. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2794 +#: ../NEWS:2916 msgid "" ":gh:`142557`: Fix a use-after-free crash in :ref:`bytearray.__mod__ ` when the :class:`!bytearray` is mutated while formatting the " "``%``-style arguments. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2798 +#: ../NEWS:2920 msgid "" ":gh:`143195`: Fix use-after-free crashes in :meth:`bytearray.hex` and :meth:" "`memoryview.hex` when the separator's :meth:`~object.__len__` mutates the " "original object. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2802 +#: ../NEWS:2924 msgid "" ":gh:`142975`: Fix crash after unfreezing all objects tracked by the garbage " "collector on the :term:`free threaded ` build." msgstr "" -#: ../NEWS:2805 +#: ../NEWS:2927 msgid "" ":gh:`143135`: Set :data:`sys.flags.inspect` to ``1`` when :envvar:" "`PYTHONINSPECT` is ``0``. Previously, it was set to ``0`` in this case." msgstr "" -#: ../NEWS:2809 +#: ../NEWS:2931 msgid "" ":gh:`143003`: Fix an overflow of the shared empty buffer in :meth:`bytearray." "extend` when ``__length_hint__()`` returns 0 for non-empty iterator." msgstr "" -#: ../NEWS:2813 +#: ../NEWS:2935 msgid "" ":gh:`143006`: Fix a possible assertion error when comparing negative non-" "integer ``float`` and ``int`` with the same number of bits in the integer " "part." msgstr "" -#: ../NEWS:2817 +#: ../NEWS:2939 msgid "" ":gh:`143057`: Avoid locking in :c:func:`PyTraceMalloc_Track` and :c:func:" "`PyTraceMalloc_Untrack` when :mod:`tracemalloc` is not enabled." msgstr "" -#: ../NEWS:2820 +#: ../NEWS:2942 msgid ":gh:`142776`: Fix a file descriptor leak in import.c" msgstr "" -#: ../NEWS:2822 +#: ../NEWS:2944 msgid "" ":gh:`142829`: Fix a use-after-free crash in :class:`contextvars.Context` " "comparison when a custom ``__eq__`` method modifies the context via :meth:" "`~contextvars.ContextVar.set`." msgstr "" -#: ../NEWS:2826 +#: ../NEWS:2948 msgid "" ":gh:`142766`: Clear the frame of a generator when :meth:`generator.close` is " "called." msgstr "" -#: ../NEWS:2829 +#: ../NEWS:2951 msgid "" ":gh:`142737`: Tracebacks will be displayed in fallback mode even if :func:" "`io.open` is lost. Previously, this would crash the interpreter. Patch by " "Bartosz Sławecki." msgstr "" -#: ../NEWS:2833 +#: ../NEWS:2955 msgid "" ":gh:`142554`: Fix a crash in :func:`divmod` when :func:`!_pylong.int_divmod` " "does not return a tuple of length two exactly. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2836 +#: ../NEWS:2958 msgid "" ":gh:`142560`: Fix use-after-free in :class:`bytearray` search-like methods (:" "meth:`~bytearray.find`, :meth:`~bytearray.count`, :meth:`~bytearray.index`, :" @@ -4906,7 +5108,7 @@ msgid "" "used for this." msgstr "" -#: ../NEWS:2845 +#: ../NEWS:2967 msgid "" ":gh:`142531`: Fix a free-threaded GC performance regression. If there are " "many untracked tuples, the GC will run too often, resulting in poor " @@ -4915,61 +5117,61 @@ msgid "" "free-threaded GC must scan those too." msgstr "" -#: ../NEWS:2851 +#: ../NEWS:2973 msgid "" ":gh:`142402`: Fix reference counting when adjacent literal parts are merged " "while constructing :class:`string.templatelib.Template`, preventing the " "displaced string object from leaking." msgstr "" -#: ../NEWS:2855 +#: ../NEWS:2977 msgid "" ":gh:`133932`: Fix crash in the free threading build when clearing frames " "that hold tagged integers." msgstr "" -#: ../NEWS:2858 +#: ../NEWS:2980 msgid "" ":gh:`142343`: Fix SIGILL crash on m68k due to incorrect assembly constraint." msgstr "" -#: ../NEWS:2860 +#: ../NEWS:2982 msgid "" ":gh:`100964`: Fix reference cycle in exhausted generator frames. Patch by " "Savannah Ostrowski." msgstr "" -#: ../NEWS:2863 +#: ../NEWS:2985 msgid "" ":gh:`69605`: Fix edge-cases around already imported modules in the :term:" "`REPL` auto-completion of imports." msgstr "" -#: ../NEWS:2866 +#: ../NEWS:2988 msgid "" ":gh:`138568`: Adjusted the built-in :func:`help` function so that empty " "inputs are ignored in interactive mode." msgstr "" -#: ../NEWS:2869 +#: ../NEWS:2991 msgid "" ":gh:`137007`: Fix a bug during JIT compilation failure which caused garbage " "collection debug assertions to fail." msgstr "" -#: ../NEWS:2875 +#: ../NEWS:2997 msgid "" ":gh:`142589`: Fix :c:func:`PyUnstable_Object_IsUniqueReferencedTemporary()` " "handling of tagged ints on the interpreter stack." msgstr "" -#: ../NEWS:2878 +#: ../NEWS:3000 msgid "" ":gh:`142571`: :c:func:`!PyUnstable_CopyPerfMapFile` now checks that opening " "the file succeeded before flushing." msgstr "" -#: ../NEWS:2884 +#: ../NEWS:3006 msgid "" ":gh:`142454`: When calculating the digest of the JIT stencils input, sort " "the hashed files by filenames before adding their content to the hasher. " @@ -4977,7 +5179,7 @@ msgid "" "independent on filesystem order." msgstr "" -#: ../NEWS:2889 +#: ../NEWS:3011 msgid "" ":gh:`141808`: When running ``make clean-retain-profile``, keep the generated " "JIT stencils. That way, the stencils are not generated twice when Profile-" @@ -4985,27 +5187,27 @@ msgid "" "their own pre-built JIT stencils." msgstr "" -#: ../NEWS:2894 +#: ../NEWS:3016 msgid "" ":gh:`138061`: Ensure reproducible builds by making JIT stencil header " "generation deterministic." msgstr "" -#: ../NEWS:2899 +#: ../NEWS:3021 msgid "Python 3.14.2 final" msgstr "" -#: ../NEWS:2901 +#: ../NEWS:3023 msgid "*Release date: 2025-12-05*" msgstr "" -#: ../NEWS:2906 +#: ../NEWS:3028 msgid "" ":gh:`142145`: Remove quadratic behavior in ``xml.minidom`` node ID cache " "clearing." msgstr "" -#: ../NEWS:2909 +#: ../NEWS:3031 msgid "" ":gh:`119452`: Fix a potential memory denial of service in the :mod:`http." "server` module. When a malicious user is connected to the CGI server on " @@ -5014,7 +5216,7 @@ msgid "" "memory (OOM) killed processes or containers, or even system crashes." msgstr "" -#: ../NEWS:2919 +#: ../NEWS:3041 msgid "" ":gh:`140797`: Revert changes to the undocumented :class:`!re.Scanner` class. " "Capturing groups are still allowed for backward compatibility, although " @@ -5022,7 +5224,7 @@ msgid "" "Python versions." msgstr "" -#: ../NEWS:2924 +#: ../NEWS:3046 msgid "" ":gh:`142206`: The resource tracker in the :mod:`multiprocessing` module now " "uses the original communication protocol, as in Python 3.14.0 and below, by " @@ -5032,57 +5234,57 @@ msgid "" "using Python 3.13.10, 3.14.1 and 3.15)." msgstr "" -#: ../NEWS:2931 +#: ../NEWS:3053 msgid "" ":gh:`142214`: Fix two regressions in :mod:`dataclasses` in Python 3.14.1 " "related to annotations." msgstr "" -#: ../NEWS:2934 +#: ../NEWS:3056 msgid "" "An exception is no longer raised if ``slots=True`` is used and the " "``__init__`` method does not have an ``__annotate__`` attribute (likely " "because ``init=False`` was used)." msgstr "" -#: ../NEWS:2938 +#: ../NEWS:3060 msgid "" "An exception is no longer raised if annotations are requested on the " "``__init__`` method and one of the fields is not present in the class " "annotations. This can occur in certain dynamic scenarios." msgstr "" -#: ../NEWS:2942 ../NEWS:28656 +#: ../NEWS:3064 ../NEWS:28778 msgid "Patch by Jelle Zijlstra." msgstr "" -#: ../NEWS:2947 +#: ../NEWS:3069 msgid "" ":gh:`142218`: Fix crash when inserting into a split table dictionary with a " "non :class:`str` key that matches an existing key." msgstr "" -#: ../NEWS:2953 +#: ../NEWS:3075 msgid "" ":gh:`116738`: Fix :mod:`cmath` data race when initializing trigonometric " "tables with subinterpreters." msgstr "" -#: ../NEWS:2958 +#: ../NEWS:3080 msgid "Python 3.14.1 final" msgstr "" -#: ../NEWS:2960 +#: ../NEWS:3082 msgid "*Release date: 2025-12-02*" msgstr "" -#: ../NEWS:2965 +#: ../NEWS:3087 msgid "" ":gh:`139810`: Installing with ``py install 3[.x]-dev`` will now select final " "versions as well as prereleases." msgstr "" -#: ../NEWS:2971 +#: ../NEWS:3093 msgid "" ":gh:`141692`: Each slice of an iOS XCframework now contains a ``lib`` folder " "that contains a symlink to the libpython dylib. This allows binary modules " @@ -5090,69 +5292,69 @@ msgid "" "linking." msgstr "" -#: ../NEWS:2976 +#: ../NEWS:3098 msgid "" ":gh:`141442`: The iOS testbed now correctly handles test arguments that " "contain spaces." msgstr "" -#: ../NEWS:2979 +#: ../NEWS:3101 msgid "" ":gh:`140702`: The iOS testbed app will now expose the ``GITHUB_ACTIONS`` " "environment variable to iOS apps being tested." msgstr "" -#: ../NEWS:2982 +#: ../NEWS:3104 msgid "" ":gh:`137484`: Have ``Tools/wasm/wasi`` put the build Python into a directory " "named after the build triple instead of \"build\"." msgstr "" -#: ../NEWS:2985 +#: ../NEWS:3107 msgid "" ":gh:`137248`: Add a ``--logdir`` option to ``Tools/wasm/wasi`` for " "specifying where to write log files." msgstr "" -#: ../NEWS:2988 +#: ../NEWS:3110 msgid "" ":gh:`137243`: Have Tools/wasm/wasi detect a WASI SDK install in /opt when it " "was directly extracted from a release tarball." msgstr "" -#: ../NEWS:2994 +#: ../NEWS:3116 msgid "" ":gh:`140482`: Preserve and restore the state of ``stty echo`` as part of the " "test environment." msgstr "" -#: ../NEWS:2997 +#: ../NEWS:3119 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 "" -#: ../NEWS:3001 +#: ../NEWS:3123 msgid "" ":gh:`139208`: Fix regrtest ``--fast-ci --verbose``: don't ignore the ``--" "verbose`` option anymore. Patch by Victor Stinner." msgstr "" -#: ../NEWS:3004 +#: ../NEWS:3126 msgid "" ":gh:`136442`: Use exitcode ``1`` instead of ``5`` if :func:`unittest." "TestCase.setUpClass` raises an exception" msgstr "" -#: ../NEWS:3010 +#: ../NEWS:3132 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 "" -#: ../NEWS:3014 +#: ../NEWS:3136 msgid "" ":gh:`139283`: :mod:`sqlite3`: correctly handle maximum number of rows to " "fetch in :meth:`Cursor.fetchmany ` and reject " @@ -5160,24 +5362,24 @@ msgid "" "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3019 +#: ../NEWS:3141 msgid "" ":gh:`137836`: Add support of the \"plaintext\" element, RAWTEXT elements " "\"xmp\", \"iframe\", \"noembed\" and \"noframes\", and optionally RAWTEXT " "element \"noscript\" in :class:`html.parser.HTMLParser`." msgstr "" -#: ../NEWS:3023 +#: ../NEWS:3145 msgid "" ":gh:`136063`: :mod:`email.message`: ensure linear complexity for legacy HTTP " "parameters parsing. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3026 +#: ../NEWS:3148 msgid ":gh:`136065`: Fix quadratic complexity in :func:`os.path.expandvars`." msgstr "" -#: ../NEWS:3028 +#: ../NEWS:3150 msgid "" ":gh:`119451`: Fix a potential memory denial of service in the :mod:`http." "client` module. When connecting to a malicious server, it could cause an " @@ -5186,7 +5388,7 @@ msgid "" "processes or containers, or even system crashes." msgstr "" -#: ../NEWS:3034 +#: ../NEWS:3156 msgid "" ":gh:`119342`: Fix a potential memory denial of service in the :mod:" "`plistlib` module. When reading a Plist file received from untrusted source, " @@ -5195,14 +5397,14 @@ msgid "" "(OOM) killed processes or containers, or even system crashes." msgstr "" -#: ../NEWS:3043 +#: ../NEWS:3165 msgid "" ":gh:`74389`: When the stdin being used by a :class:`subprocess.Popen` " "instance is closed, this is now ignored in :meth:`subprocess.Popen." "communicate` instead of leaving the class in an inconsistent state." msgstr "" -#: ../NEWS:3048 +#: ../NEWS:3170 msgid "" ":gh:`87512`: Fix :func:`subprocess.Popen.communicate` timeout handling on " "Windows when writing large input. Previously, the timeout was ignored during " @@ -5211,7 +5413,7 @@ msgid "" "background thread, allowing the timeout to be properly enforced." msgstr "" -#: ../NEWS:3055 +#: ../NEWS:3177 msgid "" ":gh:`141473`: When :meth:`subprocess.Popen.communicate` was called with " "*input* and a *timeout* and is called for a second time after a :exc:" @@ -5219,50 +5421,50 @@ msgid "" "should no longer hang." msgstr "" -#: ../NEWS:3060 +#: ../NEWS:3182 msgid "" ":gh:`59000`: Fix :mod:`pdb` breakpoint resolution for class methods when the " "module defining the class is not imported." msgstr "" -#: ../NEWS:3063 +#: ../NEWS:3185 msgid "" ":gh:`141570`: Support :term:`file-like object` raising :exc:`OSError` from :" "meth:`~io.IOBase.fileno` in color detection (``_colorize.can_colorize()``). " "This can occur when ``sys.stdout`` is redirected." msgstr "" -#: ../NEWS:3068 +#: ../NEWS:3190 msgid "" ":gh:`141659`: Fix bad file descriptor errors from ``_posixsubprocess`` on " "AIX." msgstr "" -#: ../NEWS:3071 +#: ../NEWS:3193 msgid ":gh:`141600`: Fix musl version detection on Void Linux." msgstr "" -#: ../NEWS:3073 +#: ../NEWS:3195 msgid "" ":gh:`141497`: :mod:`ipaddress`: ensure that the methods :meth:`IPv4Network." "hosts() ` and :meth:`IPv6Network.hosts() " "` always return an iterator." msgstr "" -#: ../NEWS:3078 +#: ../NEWS:3200 msgid "" ":gh:`140938`: The :func:`statistics.stdev` and :func:`statistics.pstdev` " "functions now raise a :exc:`ValueError` when the input contains an infinity " "or a NaN." msgstr "" -#: ../NEWS:3082 +#: ../NEWS:3204 msgid "" ":gh:`124111`: Updated Tcl threading configuration in :mod:`_tkinter` to " "assume that threads are always available in Tcl 9 and later." msgstr "" -#: ../NEWS:3085 +#: ../NEWS:3207 msgid "" ":gh:`137109`: The :mod:`os.fork` and related forking APIs will no longer " "warn in the common case where Linux or macOS platform APIs return the number " @@ -5270,39 +5472,39 @@ msgid "" "register_at_fork` ``after_in_parent=`` callback (re)starts a thread." msgstr "" -#: ../NEWS:3091 +#: ../NEWS:3213 msgid "" ":gh:`141314`: Fix assertion failure in :meth:`io.TextIOWrapper.tell` when " "reading files with standalone carriage return (``\\r``) line endings." msgstr "" -#: ../NEWS:3094 +#: ../NEWS:3216 msgid "" ":gh:`141311`: Fix assertion failure in :func:`!io.BytesIO.readinto` and " "undefined behavior arising when read position is above capcity in :class:`io." "BytesIO`." msgstr "" -#: ../NEWS:3098 +#: ../NEWS:3220 msgid "" ":gh:`141141`: Fix a thread safety issue with :func:`base64.b85decode`. " "Contributed by Benel Tayar." msgstr "" -#: ../NEWS:3101 +#: ../NEWS:3223 msgid "" ":gh:`137969`: Fix :meth:`annotationlib.ForwardRef.evaluate` returning :class:" "`~annotationlib.ForwardRef` objects which don't update with new globals." msgstr "" -#: ../NEWS:3105 +#: ../NEWS:3227 msgid "" ":gh:`140911`: :mod:`collections`: Ensure that the methods ``UserString." "rindex()`` and ``UserString.index()`` accept :class:`collections.UserString` " "instances as the sub argument." msgstr "" -#: ../NEWS:3109 +#: ../NEWS:3231 msgid "" ":gh:`140797`: The undocumented :class:`!re.Scanner` class now forbids " "regular expressions containing capturing groups in its lexicon patterns. " @@ -5310,159 +5512,159 @@ msgid "" "segmentation fault. Use non-capturing groups (?:...) instead." msgstr "" -#: ../NEWS:3114 +#: ../NEWS:3236 msgid "" ":gh:`125115`: Refactor the :mod:`pdb` parsing issue so positional arguments " "can pass through intuitively." msgstr "" -#: ../NEWS:3117 +#: ../NEWS:3239 msgid "" ":gh:`140815`: :mod:`faulthandler` now detects if a frame or a code object is " "invalid or freed. Patch by Victor Stinner." msgstr "" -#: ../NEWS:3120 +#: ../NEWS:3242 msgid "" ":gh:`100218`: Correctly set :attr:`~OSError.errno` when :func:`socket." "if_nametoindex` or :func:`socket.if_indextoname` raise an :exc:`OSError`. " "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3124 +#: ../NEWS:3246 msgid "" ":gh:`140875`: Fix handling of unclosed character references (named and " "numerical) followed by the end of file in :class:`html.parser.HTMLParser` " "with ``convert_charrefs=False``." msgstr "" -#: ../NEWS:3128 +#: ../NEWS:3250 msgid "" ":gh:`140734`: :mod:`multiprocessing`: fix off-by-one error when checking the " "length of a temporary socket file path. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3131 +#: ../NEWS:3253 msgid "" ":gh:`140874`: Bump the version of pip bundled in ensurepip to version 25.3" msgstr "" -#: ../NEWS:3133 +#: ../NEWS:3255 msgid "" ":gh:`140691`: In :mod:`urllib.request`, when opening a FTP URL fails because " "a data connection cannot be made, the control connection's socket is now " "closed to avoid a :exc:`ResourceWarning`." msgstr "" -#: ../NEWS:3137 +#: ../NEWS:3259 msgid "" ":gh:`103847`: Fix hang when cancelling process created by :func:`asyncio." "create_subprocess_exec` or :func:`asyncio.create_subprocess_shell`. Patch by " "Kumar Aditya." msgstr "" -#: ../NEWS:3141 +#: ../NEWS:3263 msgid ":gh:`120057`: Add :func:`os.reload_environ` to ``os.__all__``." msgstr "" -#: ../NEWS:3143 +#: ../NEWS:3265 msgid "" ":gh:`140228`: Avoid making unnecessary filesystem calls for frozen modules " "in :mod:`linecache` when the global module cache is not present." msgstr "" -#: ../NEWS:3146 +#: ../NEWS:3268 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 "" -#: ../NEWS:3150 +#: ../NEWS:3272 msgid "" ":gh:`125434`: Display thread name in :mod:`faulthandler` on Windows. Patch " "by Victor Stinner." msgstr "" -#: ../NEWS:3153 +#: ../NEWS:3275 msgid "" ":gh:`140634`: Fix a reference counting bug in :meth:`!os.sched_param." "__reduce__`." msgstr "" -#: ../NEWS:3156 +#: ../NEWS:3278 msgid "" ":gh:`140633`: Ignore :exc:`AttributeError` when setting a module's " "``__file__`` attribute when loading an extension module packaged as Apple " "Framework." msgstr "" -#: ../NEWS:3160 +#: ../NEWS:3282 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 "" -#: ../NEWS:3164 +#: ../NEWS:3286 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 "" -#: ../NEWS:3168 +#: ../NEWS:3290 msgid "" ":gh:`138162`: Fix :class:`logging.LoggerAdapter` with ``merge_extra=True`` " "and without the *extra* argument." msgstr "" -#: ../NEWS:3171 +#: ../NEWS:3293 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 "" -#: ../NEWS:3175 +#: ../NEWS:3297 msgid "" ":gh:`140474`: Fix memory leak in :class:`array.array` when creating arrays " "from an empty :class:`str` and the ``u`` type code." msgstr "" -#: ../NEWS:3178 +#: ../NEWS:3300 msgid "" ":gh:`137530`: :mod:`dataclasses` Fix annotations for generated ``__init__`` " "methods by replacing the annotations that were in-line in the generated " "source code with ``__annotate__`` functions attached to the methods." msgstr "" -#: ../NEWS:3182 +#: ../NEWS:3304 msgid "" ":gh:`140348`: Fix regression in Python 3.14.0 where using the ``|`` operator " "on a :class:`typing.Union` object combined with an object that is not a type " "would raise an error." msgstr "" -#: ../NEWS:3186 +#: ../NEWS:3308 msgid "" ":gh:`140272`: Fix memory leak in the :meth:`!clear` method of the :mod:`dbm." "gnu` database." msgstr "" -#: ../NEWS:3189 +#: ../NEWS:3311 msgid "" ":gh:`140041`: Fix import of :mod:`ctypes` on Android and Cygwin when ABI " "flags are present." msgstr "" -#: ../NEWS:3192 +#: ../NEWS:3314 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 "" -#: ../NEWS:3195 +#: ../NEWS:3317 msgid "" ":gh:`139905`: Add suggestion to error message for :class:`typing.Generic` " "subclasses when ``cls.__parameters__`` is missing due to a parent class " @@ -5470,38 +5672,38 @@ msgid "" "__init_subclass__>` in its ``__init_subclass__``." msgstr "" -#: ../NEWS:3200 +#: ../NEWS:3322 msgid "" ":gh:`139894`: Fix incorrect sharing of current task with the child process " "while forking in :mod:`asyncio`. Patch by Kumar Aditya." msgstr "" -#: ../NEWS:3203 +#: ../NEWS:3325 msgid "" ":gh:`139845`: Fix to not print KeyboardInterrupt twice in default asyncio " "REPL." msgstr "" -#: ../NEWS:3206 +#: ../NEWS:3328 msgid "" ":gh:`139783`: Fix :func:`inspect.getsourcelines` for the case when a " "decorator is followed by a comment or an empty line." msgstr "" -#: ../NEWS:3209 +#: ../NEWS:3331 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 "" -#: ../NEWS:3213 +#: ../NEWS:3335 msgid "" ":gh:`139736`: Fix excessive indentation in the default :mod:`argparse` :" "class:`!HelpFormatter`. Patch by Alexander Edland." msgstr "" -#: ../NEWS:3216 +#: ../NEWS:3338 msgid "" ":gh:`70765`: :mod:`http.server`: fix default handling of HTTP/0.9 requests " "in :class:`~http.server.BaseHTTPRequestHandler`. Previously, :meth:`!" @@ -5509,38 +5711,38 @@ msgid "" "request although those are not supported in HTTP/0.9. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3222 +#: ../NEWS:3344 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 "" -#: ../NEWS:3226 +#: ../NEWS:3348 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 "" -#: ../NEWS:3230 +#: ../NEWS:3352 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 "" -#: ../NEWS:3234 +#: ../NEWS:3356 msgid "" ":gh:`139289`: Do a real lazy-import on :mod:`rlcompleter` in :mod:`pdb` and " "restore the existing completer after importing :mod:`rlcompleter`." msgstr "" -#: ../NEWS:3237 +#: ../NEWS:3359 msgid ":gh:`139246`: fix: paste zero-width in default repl width is wrong." msgstr "" -#: ../NEWS:3239 +#: ../NEWS:3361 msgid "" ":gh:`90949`: Add :meth:`~xml.parsers.expat.xmlparser." "SetAllocTrackerActivationThreshold` and :meth:`~xml.parsers.expat.xmlparser." @@ -5549,112 +5751,112 @@ msgid "" "memory usage from within an Expat parser. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3247 +#: ../NEWS:3369 msgid "" ":gh:`139210`: Fix use-after-free when reporting unknown event in :func:`xml." "etree.ElementTree.iterparse`. Patch by Ken Jin." msgstr "" -#: ../NEWS:3250 +#: ../NEWS:3372 msgid "" ":gh:`138860`: Lazy import :mod:`rlcompleter` in :mod:`pdb` to avoid deadlock " "in subprocess." msgstr "" -#: ../NEWS:3253 +#: ../NEWS:3375 msgid "" ":gh:`112729`: Fix crash when calling :func:`concurrent.interpreters.create` " "when the process is out of memory." msgstr "" -#: ../NEWS:3256 +#: ../NEWS:3378 msgid "" ":gh:`135729`: Fix unraisable exception during finalization when using :mod:" "`concurrent.interpreters` in the REPL." msgstr "" -#: ../NEWS:3259 +#: ../NEWS:3381 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 "" -#: ../NEWS:3263 +#: ../NEWS:3385 msgid "" ":gh:`139065`: Fix trailing space before a wrapped long word if the line " "length is exactly *width* in :mod:`textwrap`." msgstr "" -#: ../NEWS:3266 +#: ../NEWS:3388 msgid "" ":gh:`139001`: Fix race condition in :class:`pathlib.Path` on the internal " "``_raw_paths`` field." msgstr "" -#: ../NEWS:3269 +#: ../NEWS:3391 msgid "" ":gh:`138813`: :class:`!multiprocessing.BaseProcess` defaults ``kwargs`` to " "``None`` instead of a shared dictionary." msgstr "" -#: ../NEWS:3272 +#: ../NEWS:3394 msgid ":gh:`138993`: Dedent :data:`credits` text." msgstr "" -#: ../NEWS:3274 +#: ../NEWS:3396 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 "" -#: ../NEWS:3278 +#: ../NEWS:3400 msgid "" ":gh:`130567`: Fix possible crash in :func:`locale.strxfrm` due to a platform " "bug on macOS." msgstr "" -#: ../NEWS:3281 +#: ../NEWS:3403 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 "" -#: ../NEWS:3285 +#: ../NEWS:3407 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 "" -#: ../NEWS:3290 +#: ../NEWS:3412 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 "" -#: ../NEWS:3294 +#: ../NEWS:3416 msgid "" ":gh:`138775`: Use of ``python -m`` with :mod:`base64` has been fixed to " "detect input from a terminal so that it properly notices EOF." msgstr "" -#: ../NEWS:3297 +#: ../NEWS:3419 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 "" -#: ../NEWS:3301 +#: ../NEWS:3423 msgid "" ":gh:`137706`: Fix the partial evaluation of annotations that use ``typing." "Annotated[T, x]`` where ``T`` is a forward reference." msgstr "" -#: ../NEWS:3304 +#: ../NEWS:3426 msgid "" ":gh:`88375`: Fix normalization of the ``robots.txt`` rules and URLs in the :" "mod:`urllib.robotparser` module. No longer ignore trailing ``?``. " @@ -5662,26 +5864,26 @@ msgid "" "encoded ones." msgstr "" -#: ../NEWS:3309 +#: ../NEWS:3431 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 "" -#: ../NEWS:3313 +#: ../NEWS:3435 msgid "" ":gh:`98896`: Fix a failure in multiprocessing resource_tracker when " "SharedMemory names contain colons. Patch by Rani Pinchuk." msgstr "" -#: ../NEWS:3316 +#: ../NEWS:3438 msgid "" ":gh:`138425`: Fix partial evaluation of :class:`annotationlib.ForwardRef` " "objects which rely on names defined as globals." msgstr "" -#: ../NEWS:3319 +#: ../NEWS:3441 msgid "" ":gh:`138432`: :meth:`zoneinfo.reset_tzpath` will now convert any :class:`os." "PathLike` objects it receives into strings before adding them to ``TZPATH``. " @@ -5691,31 +5893,31 @@ msgid "" "and present a more informative error message." msgstr "" -#: ../NEWS:3326 +#: ../NEWS:3448 msgid "" ":gh:`138008`: Fix segmentation faults in the :mod:`ctypes` module due to " "invalid :attr:`~ctypes._CFuncPtr.argtypes`. Patch by Dung Nguyen." msgstr "" -#: ../NEWS:3329 +#: ../NEWS:3451 msgid "" ":gh:`60462`: Fix :func:`locale.strxfrm` on Solaris (and possibly other " "platforms)." msgstr "" -#: ../NEWS:3332 +#: ../NEWS:3454 msgid "" ":gh:`138239`: The REPL now highlights :keyword:`type` as a soft keyword in :" "ref:`type statements `." msgstr "" -#: ../NEWS:3335 +#: ../NEWS:3457 msgid "" ":gh:`138204`: Forbid expansion of shared anonymous :mod:`memory maps ` " "on Linux, which caused a bus error." msgstr "" -#: ../NEWS:3338 +#: ../NEWS:3460 msgid "" ":gh:`138010`: Fix an issue where defining a class with an :func:`@warnings." "deprecated `-decorated base class may not invoke the " @@ -5723,39 +5925,39 @@ msgid "" "inheritance. Patch by Brian Schubert." msgstr "" -#: ../NEWS:3343 +#: ../NEWS:3465 msgid "" ":gh:`138151`: In :mod:`annotationlib`, improve evaluation of forward " "references to nonlocal variables that are not yet defined when the " "annotations are initially evaluated." msgstr "" -#: ../NEWS:3347 +#: ../NEWS:3469 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 "" -#: ../NEWS:3351 +#: ../NEWS:3473 msgid "" ":gh:`137754`: Fix import of the :mod:`zoneinfo` module if the C " "implementation of the :mod:`datetime` module is not available." msgstr "" -#: ../NEWS:3354 +#: ../NEWS:3476 msgid "" ":gh:`137490`: Handle :data:`~errno.ECANCELED` in the same way as :data:" "`~errno.EINTR` in :func:`signal.sigwaitinfo` on NetBSD." msgstr "" -#: ../NEWS:3357 +#: ../NEWS:3479 msgid "" ":gh:`137477`: Fix :func:`!inspect.getblock`, :func:`inspect.getsourcelines` " "and :func:`inspect.getsource` for generator expressions." msgstr "" -#: ../NEWS:3360 +#: ../NEWS:3482 msgid "" ":gh:`137044`: Return large limit values as positive integers instead of " "negative integers in :func:`resource.getrlimit`. Accept large values and " @@ -5763,14 +5965,14 @@ msgid "" "in :func:`resource.setrlimit`." msgstr "" -#: ../NEWS:3365 +#: ../NEWS:3487 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 "" -#: ../NEWS:3370 +#: ../NEWS:3492 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 " @@ -5778,92 +5980,92 @@ msgid "" "is_alive` calls." msgstr "" -#: ../NEWS:3375 +#: ../NEWS:3497 msgid "" ":gh:`137273`: Fix debug assertion failure in :func:`locale.setlocale` on " "Windows." msgstr "" -#: ../NEWS:3378 +#: ../NEWS:3500 msgid "" ":gh:`137239`: :mod:`heapq`: Update :data:`!heapq.__all__` with ``*_max`` " "functions." msgstr "" -#: ../NEWS:3381 +#: ../NEWS:3503 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 "" -#: ../NEWS:3385 +#: ../NEWS:3507 msgid "" ":gh:`137185`: Fix a potential async-signal-safety issue in :mod:" "`faulthandler` when printing C stack traces." msgstr "" -#: ../NEWS:3388 +#: ../NEWS:3510 msgid "" ":gh:`136914`: Fix retrieval of :attr:`doctest.DocTest.lineno` for objects " "decorated with :func:`functools.cache` or :class:`functools.cached_property`." msgstr "" -#: ../NEWS:3392 +#: ../NEWS:3514 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 "" -#: ../NEWS:3396 +#: ../NEWS:3518 msgid "" ":gh:`83424`: Allows creating a :class:`ctypes.CDLL` without name when " "passing a handle as an argument." msgstr "" -#: ../NEWS:3399 +#: ../NEWS:3521 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 "" -#: ../NEWS:3403 +#: ../NEWS:3525 msgid ":gh:`136507`: Fix mimetypes CLI to handle multiple file parameters." msgstr "" -#: ../NEWS:3405 +#: ../NEWS:3527 msgid "" ":gh:`136057`: Fixed the bug in :mod:`pdb` and :mod:`bdb` where ``next`` and " "``step`` can't go over the line if a loop exists in the line." msgstr "" -#: ../NEWS:3408 +#: ../NEWS:3530 msgid "" ":gh:`135386`: Fix opening a :mod:`dbm.sqlite3` database for reading from " "read-only file or directory." msgstr "" -#: ../NEWS:3411 +#: ../NEWS:3533 msgid "" ":gh:`135444`: Fix :meth:`asyncio.DatagramTransport.sendto` to account for " "datagram header size when data cannot be sent." msgstr "" -#: ../NEWS:3414 +#: ../NEWS:3536 msgid "" ":gh:`126631`: Fix :mod:`multiprocessing` ``forkserver`` bug which prevented " "``__main__`` from being preloaded." msgstr "" -#: ../NEWS:3417 +#: ../NEWS:3539 msgid "" ":gh:`135307`: :mod:`email`: Fix exception in ``set_content()`` when encoding " "text and max_line_length is set to ``0`` or ``None`` (unlimited)." msgstr "" -#: ../NEWS:3420 +#: ../NEWS:3542 msgid "" ":gh:`134453`: Fixed :func:`subprocess.Popen.communicate` ``input=`` handling " "of :class:`memoryview` instances that were non-byte shaped on POSIX " @@ -5871,86 +6073,86 @@ msgid "" "truncating the input. Windows platforms did not have this bug." msgstr "" -#: ../NEWS:3425 +#: ../NEWS:3547 msgid "" ":gh:`134698`: Fix a crash when calling methods of :class:`ssl.SSLContext` " "or :class:`ssl.SSLSocket` across multiple threads." msgstr "" -#: ../NEWS:3428 +#: ../NEWS:3550 msgid "" ":gh:`125996`: Fix thread safety of :class:`collections.OrderedDict`. Patch " "by Kumar Aditya." msgstr "" -#: ../NEWS:3431 +#: ../NEWS:3553 msgid "" ":gh:`133789`: Fix unpickling of :mod:`pathlib` objects that were pickled in " "Python 3.13." msgstr "" -#: ../NEWS:3434 +#: ../NEWS:3556 msgid "" ":gh:`127081`: Fix libc thread safety issues with :mod:`dbm` by performing " "stateful operations in critical sections." msgstr "" -#: ../NEWS:3437 +#: ../NEWS:3559 msgid "" ":gh:`132551`: Make :class:`io.BytesIO` safe in :term:`free-threaded ` build." msgstr "" -#: ../NEWS:3440 +#: ../NEWS:3562 msgid "" ":gh:`131788`: Make ``ResourceTracker.send`` from :mod:`multiprocessing` re-" "entrant safe" msgstr "" -#: ../NEWS:3443 +#: ../NEWS:3565 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 "" -#: ../NEWS:3447 +#: ../NEWS:3569 msgid "" ":gh:`102431`: Clarify constraints for \"logical\" arguments in methods of :" "class:`decimal.Context`." msgstr "" -#: ../NEWS:3450 +#: ../NEWS:3572 msgid "" ":gh:`78319`: UTF8 support for the IMAP APPEND command has been made RFC " "compliant." msgstr "" -#: ../NEWS:3453 +#: ../NEWS:3575 msgid "" ":issue:`38735`: Fix failure when importing a module from the root directory " "on unix-like platforms with sys.pycache_prefix set." msgstr "" -#: ../NEWS:3456 +#: ../NEWS:3578 msgid "" ":issue:`41839`: Allow negative priority values from :func:`os." "sched_get_priority_min` and :func:`os.sched_get_priority_max` functions." msgstr "" -#: ../NEWS:3463 +#: ../NEWS:3585 msgid "" ":gh:`96491`: Deduplicate version number in IDLE shell title bar after saving " "to a file." msgstr "" -#: ../NEWS:3466 +#: ../NEWS:3588 msgid "" ":gh:`139742`: Colorize t-string prefixes for template strings in IDLE, as " "done for f-string prefixes." msgstr "" -#: ../NEWS:3472 +#: ../NEWS:3594 msgid "" ":gh:`141994`: :mod:`xml.sax.handler`: Make Documentation of :data:`xml.sax." "handler.feature_external_ges` warn of opening up to `external entity attacks " @@ -5958,39 +6160,39 @@ msgid "" "Sebastian Pipping." msgstr "" -#: ../NEWS:3478 +#: ../NEWS:3600 msgid "" ":gh:`140578`: Remove outdated sencence in the documentation for :mod:" "`multiprocessing`, that implied that :class:`concurrent.futures." "ThreadPoolExecutor` did not exist." msgstr "" -#: ../NEWS:3485 +#: ../NEWS:3607 msgid "" ":gh:`142048`: Fix quadratically increasing garbage collection delays in free-" "threaded build." msgstr "" -#: ../NEWS:3491 +#: ../NEWS:3613 msgid "" ":gh:`116738`: Fix thread safety issue with :mod:`re` scanner objects in free-" "threaded builds." msgstr "" -#: ../NEWS:3497 +#: ../NEWS:3619 msgid "" ":gh:`141930`: When importing a module, use Python's regular file object to " "ensure that writes to ``.pyc`` files are complete or an appropriate error is " "raised." msgstr "" -#: ../NEWS:3501 +#: ../NEWS:3623 msgid "" ":gh:`120158`: Fix inconsistent state when enabling or disabling monitoring " "events too many times." msgstr "" -#: ../NEWS:3504 +#: ../NEWS:3626 msgid "" ":gh:`139653`: Only raise a ``RecursionError`` or trigger a fatal error if " "the stack pointer is both below the limit pointer *and* above the stack " @@ -5998,96 +6200,96 @@ msgid "" "positives when user-space threads swap stacks." msgstr "" -#: ../NEWS:3509 +#: ../NEWS:3631 msgid "" ":gh:`139103`: Improve multithreaded scaling of dataclasses on the free-" "threaded build." msgstr "" -#: ../NEWS:3512 +#: ../NEWS:3634 msgid "" ":gh:`141579`: Fix :func:`sys.activate_stack_trampoline` to properly support " "the ``perf_jit`` backend. Patch by Pablo Galindo." msgstr "" -#: ../NEWS:3515 +#: ../NEWS:3637 msgid "" ":gh:`114203`: Skip locking if object is already locked by two-mutex critical " "section." msgstr "" -#: ../NEWS:3518 +#: ../NEWS:3640 msgid "" ":gh:`141528`: Suggest using :meth:`concurrent.interpreters.Interpreter." "close` instead of the private ``_interpreters.destroy`` function when " "warning about remaining subinterpreters. Patch by Sergey Miryanov." msgstr "" -#: ../NEWS:3522 +#: ../NEWS:3644 msgid "" ":gh:`141312`: Fix the assertion failure in the ``__setstate__`` method of " "the range iterator when a non-integer argument is passed. Patch by Sergey " "Miryanov." msgstr "" -#: ../NEWS:3529 +#: ../NEWS:3651 msgid "" ":gh:`116738`: Make csv module thread-safe on the :term:`free threaded ` build." msgstr "" -#: ../NEWS:3535 +#: ../NEWS:3657 msgid "" ":gh:`140939`: Fix memory leak when :class:`bytearray` or :class:`bytes` is " "formated with the ``%*b`` format with a large width that results in a :exc:" "`MemoryError`." msgstr "" -#: ../NEWS:3542 +#: ../NEWS:3664 msgid "" ":gh:`140260`: Fix :mod:`struct` data race in endian table initialization " "with subinterpreters. Patch by Shamil Abdulaev." msgstr "" -#: ../NEWS:3548 +#: ../NEWS:3670 msgid "" ":gh:`140530`: Fix a reference leak when ``raise exc from cause`` fails. " "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3551 +#: ../NEWS:3673 msgid "" ":gh:`140373`: Correctly emit ``PY_UNWIND`` event when generator object is " "closed. Patch by Mikhail Efimov." msgstr "" -#: ../NEWS:3554 +#: ../NEWS:3676 msgid "" ":gh:`140576`: Fixed crash in :func:`tokenize.generate_tokens` in case of " "specific incorrect input. Patch by Mikhail Efimov." msgstr "" -#: ../NEWS:3557 +#: ../NEWS:3679 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 "" -#: ../NEWS:3560 +#: ../NEWS:3682 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 "" -#: ../NEWS:3564 +#: ../NEWS:3686 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 "" -#: ../NEWS:3568 +#: ../NEWS:3690 msgid "" ":gh:`140431`: Fix a crash in Python's :term:`garbage collector ` due to partially initialized :term:`coroutine` objects when " @@ -6095,7 +6297,7 @@ msgid "" "set_coroutine_origin_tracking_depth`)." msgstr "" -#: ../NEWS:3576 +#: ../NEWS:3698 msgid "" ":gh:`140398`: Fix memory leaks in :mod:`readline` functions :func:`~readline." "read_init_file`, :func:`~readline.read_history_file`, :func:`~readline." @@ -6103,13 +6305,13 @@ msgid "" "`PySys_Audit` fails." msgstr "" -#: ../NEWS:3584 +#: ../NEWS:3706 msgid "" ":gh:`140406`: Fix memory leak when an object's :meth:`~object.__hash__` " "method returns an object that isn't an :class:`int`." msgstr "" -#: ../NEWS:3587 +#: ../NEWS:3709 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 " @@ -6117,58 +6319,58 @@ msgid "" "unreachable objects. Contributed by Pål Grønås Drange." msgstr "" -#: ../NEWS:3592 +#: ../NEWS:3714 msgid "" ":gh:`140306`: Fix memory leaks in cross-interpreter channel operations and " "shared namespace handling." msgstr "" -#: ../NEWS:3595 +#: ../NEWS:3717 msgid ":gh:`140301`: Fix memory leak of ``PyConfig`` in subinterpreters." msgstr "" -#: ../NEWS:3597 +#: ../NEWS:3719 msgid "" ":gh:`140257`: Fix data race between interpreter_clear() and take_gil() on " "eval_breaker during finalization with daemon threads." msgstr "" -#: ../NEWS:3600 +#: ../NEWS:3722 msgid "" ":gh:`139951`: Fixes a regression in GC performance for a growing heap " "composed mostly of small tuples." msgstr "" -#: ../NEWS:3603 +#: ../NEWS:3725 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 "" -#: ../NEWS:3605 +#: ../NEWS:3727 msgid "" "Does not track most untrackable tuples during creation. This prevents large " "numbers of small tuples causing excessive GCs." msgstr "" -#: ../NEWS:3608 +#: ../NEWS:3730 msgid "" ":gh:`140104`: Fix a bug with exception handling in the JIT. Patch by Ken " "Jin. Bug reported by Daniel Diniz." msgstr "" -#: ../NEWS:3611 +#: ../NEWS:3733 msgid "" ":gh:`140061`: Fixing the checking of whether an object is uniquely " "referenced to ensure free-threaded compatibility. Patch by Sergey Miryanov." msgstr "" -#: ../NEWS:3614 +#: ../NEWS:3736 msgid ":gh:`140067`: Fix memory leak in sub-interpreter creation." msgstr "" -#: ../NEWS:3616 +#: ../NEWS:3738 msgid "" ":gh:`140000`: Fix potential memory leak when a reference cycle exists " "between an instance of :class:`typing.TypeAliasType`, :class:`typing." @@ -6176,46 +6378,46 @@ msgid "" "``__name__`` attribute. Patch by Mikhail Efimov." msgstr "" -#: ../NEWS:3621 +#: ../NEWS:3743 msgid "" ":gh:`139914`: Restore support for HP PA-RISC, which has an upwards-growing " "stack." msgstr "" -#: ../NEWS:3624 +#: ../NEWS:3746 msgid "" ":gh:`139988`: Fix a memory leak when failing to create a :class:`~typing." "Union` type. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3627 +#: ../NEWS:3749 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 "" -#: ../NEWS:3631 +#: ../NEWS:3753 msgid "" ":gh:`139516`: Fix lambda colon erroneously start format spec in f-string in " "tokenizer." msgstr "" -#: ../NEWS:3634 +#: ../NEWS:3756 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 "" -#: ../NEWS:3638 +#: ../NEWS:3760 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 "" -#: ../NEWS:3642 +#: ../NEWS:3764 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 " @@ -6224,65 +6426,65 @@ msgid "" "when it conflicts with the BOM in a traceback." msgstr "" -#: ../NEWS:3651 +#: ../NEWS:3773 msgid "" ":gh:`116738`: Make :mod:`mmap` thread-safe on the :term:`free threaded ` build." msgstr "" -#: ../NEWS:3657 +#: ../NEWS:3779 msgid "" ":gh:`138558`: Fix handling of unusual t-string annotations in annotationlib. " "Patch by Dave Peck." msgstr "" -#: ../NEWS:3660 +#: ../NEWS:3782 msgid "" ":gh:`134466`: Don't run PyREPL in a degraded environment where setting " "termios attributes is not allowed." msgstr "" -#: ../NEWS:3663 +#: ../NEWS:3785 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 "" -#: ../NEWS:3667 +#: ../NEWS:3789 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 "" -#: ../NEWS:3671 +#: ../NEWS:3793 msgid "" ":gh:`69605`: Fix some standard library submodules missing from the :term:" "`REPL` auto-completion of imports." msgstr "" -#: ../NEWS:3677 +#: ../NEWS:3799 msgid "" ":gh:`116738`: Make :mod:`cProfile` thread-safe on the :term:`free threaded " "` build." msgstr "" -#: ../NEWS:3680 +#: ../NEWS:3802 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 "" -#: ../NEWS:3687 +#: ../NEWS:3809 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 "" -#: ../NEWS:3691 ../NEWS:3997 +#: ../NEWS:3813 ../NEWS:4119 msgid "" ":gh:`137400`: Fix a crash in the :term:`free threading` build when disabling " "profiling or tracing across all threads with :c:func:" @@ -6291,31 +6493,31 @@ msgid "" "`threading.setprofile_all_threads`." msgstr "" -#: ../NEWS:3698 +#: ../NEWS:3820 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 "" -#: ../NEWS:3702 +#: ../NEWS:3824 msgid "" ":gh:`132657`: Improve performance of :class:`frozenset` by removing locks in " "the free-threading build." msgstr "" -#: ../NEWS:3705 +#: ../NEWS:3827 msgid "" ":gh:`133400`: Fixed Ctrl+D (^D) behavior in _pyrepl module to match old " "pre-3.13 REPL behavior." msgstr "" -#: ../NEWS:3708 +#: ../NEWS:3830 msgid "" ":gh:`128640`: Fix a crash when using threads inside of a subinterpreter." msgstr "" -#: ../NEWS:3713 +#: ../NEWS:3835 msgid "" ":gh:`137422`: Fix :term:`free threading` race condition in :c:func:" "`PyImport_AddModuleRef`. It was previously possible for two calls to the " @@ -6323,13 +6525,13 @@ msgid "" "`sys.modules`." msgstr "" -#: ../NEWS:3718 +#: ../NEWS:3840 msgid "" ":gh:`140042`: Removed the sqlite3_shutdown call that could cause closing " "connections for sqlite when used with multiple sub interpreters." msgstr "" -#: ../NEWS:3721 +#: ../NEWS:3843 msgid "" ":gh:`141042`: Make qNaN in :c:func:`PyFloat_Pack2` and :c:func:" "`PyFloat_Pack4`, if while conversion to a narrower precision floating-point " @@ -6337,20 +6539,20 @@ msgid "" "Sergey B Kirpichev." msgstr "" -#: ../NEWS:3726 +#: ../NEWS:3848 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 "" -#: ../NEWS:3730 +#: ../NEWS:3852 msgid "" ":gh:`140153`: Fix :c:func:`Py_REFCNT` definition on limited C API 3.11-3.13. " "Patch by Victor Stinner." msgstr "" -#: ../NEWS:3733 +#: ../NEWS:3855 msgid "" ":gh:`139653`: Add :c:func:`PyUnstable_ThreadState_SetStackProtection` and :c:" "func:`PyUnstable_ThreadState_ResetStackProtection` functions to set the " @@ -6358,13 +6560,13 @@ msgid "" "state. Patch by Victor Stinner." msgstr "" -#: ../NEWS:3741 +#: ../NEWS:3863 msgid "" ":gh:`141808`: Do not generate the jit stencils twice in case of PGO builds " "on Windows." msgstr "" -#: ../NEWS:3744 +#: ../NEWS:3866 msgid "" ":gh:`141784`: Fix ``_remote_debugging_module.c`` compilation on 32-bit " "Linux. Include Python.h before system headers to make sure that " @@ -6372,85 +6574,85 @@ msgid "" "by Victor Stinner." msgstr "" -#: ../NEWS:3749 +#: ../NEWS:3871 msgid "" ":gh:`140768`: Warn when the WASI SDK version doesn't match what's supported." msgstr "" -#: ../NEWS:3751 +#: ../NEWS:3873 msgid "" ":gh:`140513`: Generate a clear compilation error when " "``_Py_TAIL_CALL_INTERP`` is enabled but either ``preserve_none`` or " "``musttail`` is not supported." msgstr "" -#: ../NEWS:3755 +#: ../NEWS:3877 msgid ":gh:`140189`: iOS builds were added to CI." msgstr "" -#: ../NEWS:3757 +#: ../NEWS:3879 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 "" -#: ../NEWS:3761 +#: ../NEWS:3883 msgid "" "This fixes the ``libinstall`` task which requires the ``build-details.json`` " "file during the process." msgstr "" -#: ../NEWS:3764 +#: ../NEWS:3886 msgid "" ":gh:`137618`: ``PYTHON_FOR_REGEN`` now requires Python 3.10 to Python 3.15. " "Patch by Adam Turner." msgstr "" -#: ../NEWS:3767 +#: ../NEWS:3889 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 "" -#: ../NEWS:3773 +#: ../NEWS:3895 msgid "Python 3.14.0 final" msgstr "" -#: ../NEWS:3775 +#: ../NEWS:3897 msgid "*Release date: 2025-10-07*" msgstr "" -#: ../NEWS:3780 +#: ../NEWS:3902 msgid ":gh:`124111`: Update macOS installer to use Tcl/Tk 8.6.17." msgstr "" -#: ../NEWS:3782 ../NEWS:3787 +#: ../NEWS:3904 ../NEWS:3909 msgid ":gh:`139573`: Updated bundled version of OpenSSL to 3.0.18." msgstr "" -#: ../NEWS:3792 +#: ../NEWS:3914 msgid "" ":gh:`139330`: SBOM generation tool didn't cross-check the version and " "checksum values against the ``Modules/expat/refresh.sh`` script, leading to " "the values becoming out-of-date during routine updates." msgstr "" -#: ../NEWS:3796 +#: ../NEWS:3918 msgid "" ":gh:`132006`: XCframeworks now include privacy manifests to satisfy Apple " "App Store submission requirements." msgstr "" -#: ../NEWS:3799 +#: ../NEWS:3921 msgid "" ":gh:`138171`: A script for building an iOS XCframework was added. As part of " "this change, the top level ``iOS`` folder has been moved to be a " "subdirectory of the ``Apple`` folder." msgstr "" -#: ../NEWS:3806 +#: ../NEWS:3928 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 " @@ -6458,31 +6660,31 @@ msgid "" "Patch by Sebastian Pipping." msgstr "" -#: ../NEWS:3815 +#: ../NEWS:3937 msgid ":gh:`139312`: Upgrade bundled libexpat to 2.7.3" msgstr "" -#: ../NEWS:3819 +#: ../NEWS:3941 msgid "Python 3.14.0 release candidate 3" msgstr "" -#: ../NEWS:3821 +#: ../NEWS:3943 msgid "*Release date: 2025-09-18*" msgstr "" -#: ../NEWS:3826 +#: ../NEWS:3948 msgid "" ":gh:`138896`: Fix error installing C runtime on non-updated Windows machines" msgstr "" -#: ../NEWS:3831 +#: ../NEWS:3953 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 "" -#: ../NEWS:3838 +#: ../NEWS:3960 msgid "" ":gh:`135661`: Fix CDATA section parsing in :class:`html.parser.HTMLParser` " "according to the HTML5 standard: ``] ]>`` and ``]] >`` no longer end the " @@ -6491,11 +6693,11 @@ msgid "" "content (SVG or MathML) or as a bogus comment in the HTML namespace." msgstr "" -#: ../NEWS:3848 +#: ../NEWS:3970 msgid ":gh:`138998`: Update bundled libexpat to 2.7.2" msgstr "" -#: ../NEWS:3850 +#: ../NEWS:3972 msgid "" ":gh:`118803`: Add back :class:`collections.abc.ByteString` and :class:" "`typing.ByteString`. Both had been removed in prior alpha, beta and release " @@ -6503,67 +6705,67 @@ msgid "" "Python 3.17." msgstr "" -#: ../NEWS:3855 +#: ../NEWS:3977 msgid "" ":gh:`137226`: Fix :func:`typing.get_type_hints` calls on generic :class:" "`typing.TypedDict` classes defined with string annotations." msgstr "" -#: ../NEWS:3858 +#: ../NEWS:3980 msgid "" ":gh:`138804`: Raise :exc:`TypeError` instead of :exc:`AttributeError` when " "an argument of incorrect type is passed to :func:`shlex.quote`. This " "restores the behavior of the function prior to 3.14." msgstr "" -#: ../NEWS:3862 +#: ../NEWS:3984 msgid "" ":gh:`128636`: Fix crash in PyREPL when os.environ is overwritten with an " "invalid value for mac" msgstr "" -#: ../NEWS:3865 +#: ../NEWS:3987 msgid "" ":gh:`138514`: Raise :exc:`ValueError` when a multi-character string is " "passed to the *echo_char* parameter of :func:`getpass.getpass`. Patch by " "Benjamin Johnson." msgstr "" -#: ../NEWS:3869 +#: ../NEWS:3991 msgid ":gh:`138515`: :mod:`email` is added to Emscripten build." msgstr "" -#: ../NEWS:3871 +#: ../NEWS:3993 msgid "" ":gh:`99948`: :func:`ctypes.util.find_library` now works in Emscripten build." msgstr "" -#: ../NEWS:3873 +#: ../NEWS:3995 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 "" -#: ../NEWS:3877 +#: ../NEWS:3999 msgid "" ":gh:`138133`: Prevent infinite traceback loop when sending CTRL^C to Python " "through ``strace``." msgstr "" -#: ../NEWS:3880 +#: ../NEWS:4002 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 "" -#: ../NEWS:3883 +#: ../NEWS:4005 msgid "" ":gh:`90548`: Fix ``musl`` detection for :func:`platform.libc_ver` on Alpine " "Linux if compiled with --strip-all." msgstr "" -#: ../NEWS:3886 +#: ../NEWS:4008 msgid "" ":gh:`136134`: :meth:`!SMTP.auth_cram_md5` now raises an :exc:`~smtplib." "SMTPException` instead of a :exc:`ValueError` if Python has been built " @@ -6572,157 +6774,157 @@ msgid "" "it. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3892 +#: ../NEWS:4014 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 "" -#: ../NEWS:3896 +#: ../NEWS:4018 msgid "" ":gh:`134953`: Expand ``_colorize`` theme with ``keyword_constant`` and " "implement in :term:`repl`." msgstr "" -#: ../NEWS:3902 +#: ../NEWS:4024 msgid "" ":gh:`71810`: Raise :exc:`OverflowError` for ``(-1).to_bytes()`` for signed " "conversions when bytes count is zero. Patch by Sergey B Kirpichev." msgstr "" -#: ../NEWS:3905 +#: ../NEWS:4027 msgid "" ":gh:`138192`: Fix :mod:`contextvars` initialization so that all " "subinterpreters are assigned the :attr:`~contextvars.Token.MISSING` value." msgstr "" -#: ../NEWS:3908 +#: ../NEWS:4030 msgid "" ":gh:`138479`: Fix a crash when a generic object's ``__typing_subst__`` " "returns an object that isn't a :class:`tuple`." msgstr "" -#: ../NEWS:3911 +#: ../NEWS:4033 msgid "" ":gh:`138372`: Fix :exc:`SyntaxWarning` emitted for erroneous subscript " "expressions involving :ref:`template string literals `. Patch by " "Brian Schubert." msgstr "" -#: ../NEWS:3915 +#: ../NEWS:4037 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 "" -#: ../NEWS:3919 +#: ../NEWS:4041 msgid "" ":gh:`138349`: Fix crash in certain cases where a module contains both a " "module-level annotation and a comprehension." msgstr "" -#: ../NEWS:3922 +#: ../NEWS:4044 msgid "" ":gh:`137384`: Fix a crash when using the :mod:`warnings` module in a " "finalizer at shutdown. Patch by Kumar Aditya." msgstr "" -#: ../NEWS:3925 +#: ../NEWS:4047 msgid "" ":gh:`137883`: Fix runaway recursion when calling a function with keyword " "arguments." msgstr "" -#: ../NEWS:3928 +#: ../NEWS:4050 msgid "" ":gh:`137079`: Fix keyword typo recognition when parsing files. Patch by " "Pablo Galindo." msgstr "" -#: ../NEWS:3931 +#: ../NEWS:4053 msgid "" ":gh:`137728`: Fix the JIT's handling of many local variables. This " "previously caused a segfault." msgstr "" -#: ../NEWS:3934 +#: ../NEWS:4056 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 "" -#: ../NEWS:3939 +#: ../NEWS:4061 msgid "Python 3.14.0 release candidate 2" msgstr "" -#: ../NEWS:3941 +#: ../NEWS:4063 msgid "*Release date: 2025-08-14*" msgstr "" -#: ../NEWS:3946 +#: ../NEWS:4068 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 "" -#: ../NEWS:3950 +#: ../NEWS:4072 msgid "" ":gh:`137134`: Update macOS installer to ship with SQLite version 3.50.4." msgstr "" -#: ../NEWS:3955 +#: ../NEWS:4077 msgid ":gh:`137134`: Update Windows installer to ship with SQLite 3.50.4." msgstr "" -#: ../NEWS:3960 +#: ../NEWS:4082 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 "" -#: ../NEWS:3964 +#: ../NEWS:4086 msgid "" ":gh:`137282`: Fix tab completion and :func:`dir` on :mod:`concurrent." "futures`." msgstr "" -#: ../NEWS:3967 +#: ../NEWS:4089 msgid "" ":gh:`137257`: Bump the version of pip bundled in ensurepip to version 25.2" msgstr "" -#: ../NEWS:3969 +#: ../NEWS:4091 msgid "" ":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 "" -#: ../NEWS:3973 +#: ../NEWS:4095 msgid "" ":gh:`130522`: Fix unraisable :exc:`TypeError` raised during :term:" "`interpreter shutdown` in the :mod:`threading` module." msgstr "" -#: ../NEWS:3976 +#: ../NEWS:4098 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:3980 +#: ../NEWS:4102 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:3984 +#: ../NEWS:4106 msgid "" ":gh:`135228`: When :mod:`dataclasses` replaces a class with a slotted " "dataclass, the original class can now be garbage collected again. Earlier " @@ -6730,12 +6932,12 @@ msgid "" "together with the replacement class synthesized by :mod:`dataclasses`." msgstr "" -#: ../NEWS:3992 +#: ../NEWS:4114 msgid "" ":gh:`136155`: We are now checking for fatal errors in EPUB builds in CI." msgstr "" -#: ../NEWS:4004 +#: ../NEWS:4126 msgid "" ":gh:`137314`: Fixed a regression where raw f-strings incorrectly interpreted " "escape sequences in format specifications. Raw f-strings now properly " @@ -6744,74 +6946,74 @@ msgid "" "\\xFF'`` instead of ``'ÿ'``. Patch by Pablo Galindo." msgstr "" -#: ../NEWS:4010 +#: ../NEWS:4132 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 "" -#: ../NEWS:4014 +#: ../NEWS:4136 msgid "" ":gh:`137288`: Fix bug where some bytecode instructions of a boolean " "expression are not associated with the correct exception handler." msgstr "" -#: ../NEWS:4017 +#: ../NEWS:4139 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 "" -#: ../NEWS:4020 +#: ../NEWS:4142 msgid "" ":gh:`131338`: Disable computed stack limit checks on non-glibc linux " "platforms to fix crashes on deep recursion." msgstr "" -#: ../NEWS:4023 +#: ../NEWS:4145 msgid "" ":gh:`136870`: Fix data races while de-instrumenting bytecode of code objects " "running concurrently in threads." msgstr "" -#: ../NEWS:4029 +#: ../NEWS:4151 msgid "" ":gh:`137573`: Mark ``_PyOptimizer_Optimize`` as :c:macro:`Py_NO_INLINE` to " "prevent stack overflow crashes on macOS." msgstr "" -#: ../NEWS:4035 +#: ../NEWS:4157 msgid ":gh:`132339`: Add support for OpenSSL 3.5." msgstr "" -#: ../NEWS:4039 +#: ../NEWS:4161 msgid "Python 3.14.0 release candidate 1" msgstr "" -#: ../NEWS:4041 +#: ../NEWS:4163 msgid "*Release date: 2025-07-22*" msgstr "" -#: ../NEWS:4046 +#: ../NEWS:4168 msgid "" ":gh:`136251`: Fixes and usability improvements for ``Tools/wasm/emscripten/" "web_example``" msgstr "" -#: ../NEWS:4052 +#: ../NEWS:4174 msgid "" ":gh:`135661`: Fix parsing attributes with whitespaces around the ``=`` " "separator in :class:`html.parser.HTMLParser` according to the HTML5 standard." msgstr "" -#: ../NEWS:4056 +#: ../NEWS:4178 msgid "" ":gh:`118350`: Fix support of escapable raw text mode (elements \"textarea\" " "and \"title\") in :class:`html.parser.HTMLParser`." msgstr "" -#: ../NEWS:4062 +#: ../NEWS:4184 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 " @@ -6819,85 +7021,85 @@ msgid "" "expect." msgstr "" -#: ../NEWS:4066 +#: ../NEWS:4188 msgid ":gh:`124621`: pyrepl now works in Emscripten." msgstr "" -#: ../NEWS:4068 +#: ../NEWS:4190 msgid "" ":gh:`136874`: Discard URL query and fragment in :func:`urllib.request." "url2pathname`." msgstr "" -#: ../NEWS:4071 +#: ../NEWS:4193 msgid ":gh:`130645`: Enable color help by default in :mod:`argparse`." msgstr "" -#: ../NEWS:4073 +#: ../NEWS:4195 msgid ":gh:`136549`: Fix signature of :func:`threading.excepthook`." msgstr "" -#: ../NEWS:4075 +#: ../NEWS:4197 msgid "" ":gh:`136523`: Fix :class:`wave.Wave_write` emitting an unraisable when open " "raises." msgstr "" -#: ../NEWS:4078 +#: ../NEWS:4200 msgid "" ":gh:`52876`: Add missing ``keepends`` (default ``True``) parameter to :meth:" "`!codecs.StreamReaderWriter.readline` and :meth:`!codecs.StreamReaderWriter." "readlines`." msgstr "" -#: ../NEWS:4082 +#: ../NEWS:4204 msgid "" ":gh:`136470`: Correct :class:`concurrent.futures.InterpreterPoolExecutor`'s " "default thread name." msgstr "" -#: ../NEWS:4085 +#: ../NEWS:4207 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:4088 +#: ../NEWS:4210 msgid "" ":gh:`136434`: Fix docs generation of ``UnboundItem`` in :mod:`concurrent." "interpreters` when running with :option:`-OO`." msgstr "" -#: ../NEWS:4091 +#: ../NEWS:4213 msgid "" ":gh:`136380`: Raises :exc:`AttributeError` when accessing :class:`concurrent." "futures.InterpreterPoolExecutor` and subinterpreters are not available." msgstr "" -#: ../NEWS:4095 +#: ../NEWS:4217 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." msgstr "" -#: ../NEWS:4099 +#: ../NEWS:4221 msgid "" ":gh:`134657`: :mod:`asyncio`: Remove some private names from ``asyncio." "__all__``." msgstr "" -#: ../NEWS:4105 +#: ../NEWS:4227 msgid "" ":gh:`136801`: Fix PyREPL syntax highlighting on match cases after multi-line " "case. Contributed by Olga Matoula." msgstr "" -#: ../NEWS:4111 +#: ../NEWS:4233 msgid ":gh:`136421`: Fix crash when initializing :mod:`datetime` concurrently." msgstr "" -#: ../NEWS:4116 +#: ../NEWS:4238 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, " @@ -6905,172 +7107,172 @@ msgid "" "Pablo Galindo." msgstr "" -#: ../NEWS:4121 +#: ../NEWS:4243 msgid "" ":gh:`136517`: Fixed a typo that prevented printing of uncollectable objects " "when the :const:`gc.DEBUG_UNCOLLECTABLE` mode was set." msgstr "" -#: ../NEWS:4124 +#: ../NEWS:4246 msgid "" ":gh:`136525`: Fix issue where per-thread bytecode was not instrumented for " "newly created threads." msgstr "" -#: ../NEWS:4127 +#: ../NEWS:4249 msgid "" ":gh:`132661`: ``Interpolation.expression`` now has a default, the empty " "string." msgstr "" -#: ../NEWS:4130 +#: ../NEWS:4252 msgid ":gh:`132661`: Reflect recent :pep:`750` change." msgstr "" -#: ../NEWS:4132 +#: ../NEWS:4254 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:4139 +#: ../NEWS:4261 msgid "" ":gh:`116738`: Make functions in :mod:`grp` thread-safe on the :term:`free " "threaded ` build." msgstr "" -#: ../NEWS:4145 +#: ../NEWS:4267 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:4149 +#: ../NEWS:4271 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:4153 +#: ../NEWS:4275 msgid "" ":gh:`91153`: Fix a crash when a :class:`bytearray` is concurrently mutated " "during item assignment." msgstr "" -#: ../NEWS:4156 +#: ../NEWS:4278 msgid "" ":gh:`127971`: Fix off-by-one read beyond the end of a string in string " "search." msgstr "" -#: ../NEWS:4162 +#: ../NEWS:4284 msgid "" ":gh:`112068`: Revert support of nullable arguments in :c:func:`PyArg_Parse`." msgstr "" -#: ../NEWS:4164 +#: ../NEWS:4286 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:4168 +#: ../NEWS:4290 msgid "" ":gh:`134009`: Expose :c:func:`PyMutex_IsLocked` as part of the public C API." msgstr "" -#: ../NEWS:4173 +#: ../NEWS:4295 msgid "" ":gh:`135621`: PyREPL no longer depends on the :mod:`curses` standard " "library. Contributed by Łukasz Langa." msgstr "" -#: ../NEWS:4178 +#: ../NEWS:4300 msgid "Python 3.14.0 beta 4" msgstr "" -#: ../NEWS:4180 +#: ../NEWS:4302 msgid "*Release date: 2025-07-08*" msgstr "" -#: ../NEWS:4185 +#: ../NEWS:4307 msgid "" ":gh:`135968`: Stubs for ``strip`` are now provided as part of an iOS install." msgstr "" -#: ../NEWS:4187 +#: ../NEWS:4309 msgid ":gh:`133600`: Backport file reorganization for Tools/wasm/wasi." msgstr "" -#: ../NEWS:4189 +#: ../NEWS:4311 msgid "" "This should make backporting future code changes easier. It also simplifies " "instructions around how to do WASI builds in the devguide." msgstr "" -#: ../NEWS:4195 +#: ../NEWS:4317 msgid "" ":gh:`135966`: The iOS testbed now handles the ``app_packages`` folder as a " "site directory." msgstr "" -#: ../NEWS:4198 +#: ../NEWS:4320 msgid "" ":gh:`135494`: Fix regrtest to support excluding tests from ``--pgo`` tests. " "Patch by Victor Stinner." msgstr "" -#: ../NEWS:4204 +#: ../NEWS:4326 msgid "" ":gh:`136053`: :mod:`marshal`: fix a possible crash when deserializing :class:" "`slice` objects." msgstr "" -#: ../NEWS:4207 +#: ../NEWS:4329 msgid "" ":gh:`135661`: Fix parsing start and end tags in :class:`html.parser." "HTMLParser` according to the HTML5 standard." msgstr "" -#: ../NEWS:4210 +#: ../NEWS:4332 msgid "" "Whitespaces no longer accepted between ```` does not end the script section." msgstr "" -#: ../NEWS:4213 +#: ../NEWS:4335 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:4216 +#: ../NEWS:4338 msgid "Null character (U+0000) no longer ends the tag name." msgstr "" -#: ../NEWS:4218 +#: ../NEWS:4340 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:4222 +#: ../NEWS:4344 msgid "" "Multiple slashes and whitespaces between the last attribute and closing " "``>`` are now ignored in both start and end tags. E.g. ````." msgstr "" -#: ../NEWS:4225 +#: ../NEWS:4347 msgid "" "Multiple ``=`` between attribute name and value are no longer collapsed. E." "g. ```` produces attribute \"foo\" with value \"=bar\"." msgstr "" -#: ../NEWS:4228 +#: ../NEWS:4350 msgid "" "[Reverted in :gh:`136927`] Whitespaces between the ``=`` separator and " "attribute name or value are no longer ignored. E.g. ```` " @@ -7079,7 +7281,7 @@ msgid "" "with value None." msgstr "" -#: ../NEWS:4233 +#: ../NEWS:4355 msgid "" ":gh:`102555`: Fix comment parsing in :class:`html.parser.HTMLParser` " "according to the HTML5 standard. ``--!>`` now ends the comment. ``-- >`` no " @@ -7087,46 +7289,46 @@ msgid "" "and ``<--->``." msgstr "" -#: ../NEWS:4241 +#: ../NEWS:4363 msgid "" ":gh:`136286`: Fix pickling failures for protocols 0 and 1 for many objects " "realted to subinterpreters." msgstr "" -#: ../NEWS:4244 +#: ../NEWS:4366 msgid "" ":gh:`136316`: Improve support for evaluating nested forward references in :" "func:`typing.evaluate_forward_ref`." msgstr "" -#: ../NEWS:4247 +#: ../NEWS:4369 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." msgstr "" -#: ../NEWS:4251 +#: ../NEWS:4373 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:4255 +#: ../NEWS:4377 msgid "" ":gh:`135995`: In the palmos encoding, make byte ``0x9b`` decode to ``›`` " "(U+203A - SINGLE RIGHT-POINTING ANGLE QUOTATION MARK)." msgstr "" -#: ../NEWS:4258 +#: ../NEWS:4380 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:4262 +#: ../NEWS:4384 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 " @@ -7134,41 +7336,41 @@ msgid "" "before 3.14.0b2." msgstr "" -#: ../NEWS:4267 +#: ../NEWS:4389 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." msgstr "" -#: ../NEWS:4271 +#: ../NEWS:4393 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`." msgstr "" -#: ../NEWS:4275 +#: ../NEWS:4397 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." msgstr "" -#: ../NEWS:4279 +#: ../NEWS:4401 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." msgstr "" -#: ../NEWS:4283 +#: ../NEWS:4405 msgid "" ":gh:`135815`: :mod:`netrc`: skip security checks if :func:`os.getuid` is " "missing. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:4286 +#: ../NEWS:4408 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 " @@ -7176,84 +7378,84 @@ msgid "" "existed." msgstr "" -#: ../NEWS:4291 +#: ../NEWS:4413 msgid "" ":gh:`135645`: Added ``supports_isolated_interpreters`` field to :data:`sys." "implementation`." msgstr "" -#: ../NEWS:4294 +#: ../NEWS:4416 msgid "" ":gh:`135646`: Raise consistent :exc:`NameError` exceptions in :func:" "`annotationlib.ForwardRef.evaluate`" msgstr "" -#: ../NEWS:4297 +#: ../NEWS:4419 msgid "" ":gh:`135557`: Fix races on :mod:`heapq` updates and :class:`list` reads on " "the :term:`free threaded ` build." msgstr "" -#: ../NEWS:4300 +#: ../NEWS:4422 msgid "" ":gh:`119180`: Only fetch globals and locals if necessary in :func:" "`annotationlib.get_annotations`" msgstr "" -#: ../NEWS:4303 +#: ../NEWS:4425 msgid "" ":gh:`135561`: Fix a crash on DEBUG builds when an HACL* HMAC routine fails. " "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:4306 +#: ../NEWS:4428 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:4310 +#: ../NEWS:4432 msgid "" ":gh:`135335`: :mod:`multiprocessing`: Flush ``stdout`` and ``stderr`` after " "preloading modules in the ``forkserver``." msgstr "" -#: ../NEWS:4313 +#: ../NEWS:4435 msgid "" ":gh:`135069`: Fix the \"Invalid error handling\" exception in :class:`!" "encodings.idna.IncrementalDecoder` to correctly replace the 'errors' " "parameter." msgstr "" -#: ../NEWS:4317 +#: ../NEWS:4439 msgid "" ":gh:`130662`: +Accept leading zeros in precision and width fields for +:" "class:`~decimal.Decimal` formatting, for example ``format(Decimal(1.25), " "'.016f')``." msgstr "" -#: ../NEWS:4321 +#: ../NEWS:4443 msgid "" ":gh:`130662`: Accept leading zeros in precision and width fields for :class:" "`~fractions.Fraction` formatting, for example ``format(Fraction(1, 3), " "'.016f')``." msgstr "" -#: ../NEWS:4325 +#: ../NEWS:4447 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:4329 +#: ../NEWS:4451 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:4333 +#: ../NEWS:4455 msgid "" ":gh:`130664`: Handle corner-case for :class:`~fractions.Fraction`'s " "formatting: treat zero-padding (preceding the width field by a zero " @@ -7261,109 +7463,109 @@ msgid "" "alignment type of ``'='``, just as in case of :class:`float`'s." msgstr "" -#: ../NEWS:4341 +#: ../NEWS:4463 msgid "" ":gh:`136155`: EPUB builds are fixed by excluding non-XHTML-compatible tags." msgstr "" -#: ../NEWS:4346 +#: ../NEWS:4468 msgid ":gh:`109700`: Fix memory error handling in :c:func:`PyDict_SetDefault`." msgstr "" -#: ../NEWS:4348 +#: ../NEWS:4470 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:4352 +#: ../NEWS:4474 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:4355 +#: ../NEWS:4477 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:4359 +#: ../NEWS:4481 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:4363 +#: ../NEWS:4485 msgid "" ":gh:`135607`: Fix potential :mod:`weakref` races in an object's destructor " "on the :term:`free threaded ` build." msgstr "" -#: ../NEWS:4366 +#: ../NEWS:4488 msgid ":gh:`135608`: Fix a crash in the JIT involving attributes of modules." msgstr "" -#: ../NEWS:4368 +#: ../NEWS:4490 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``." msgstr "" -#: ../NEWS:4372 +#: ../NEWS:4494 msgid "" ":gh:`134280`: Disable constant folding for ``~`` with a boolean argument. " "This moves the deprecation warning from compile time to runtime." msgstr "" -#: ../NEWS:4378 +#: ../NEWS:4500 msgid "" ":gh:`135906`: Fix compilation errors when compiling the internal headers " "with a C++ compiler." msgstr "" -#: ../NEWS:4384 +#: ../NEWS:4506 msgid "" ":gh:`134273`: Add support for configuring compiler flags for the JIT with " "``CFLAGS_JIT``" msgstr "" -#: ../NEWS:4389 +#: ../NEWS:4511 msgid "Python 3.14.0 beta 3" msgstr "" -#: ../NEWS:4391 +#: ../NEWS:4513 msgid "*Release date: 2025-06-17*" msgstr "" -#: ../NEWS:4396 +#: ../NEWS:4518 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:4403 +#: ../NEWS:4525 msgid "" ":gh:`132815`: Fix test__opcode: add ``JUMP_BACKWARD`` to specialization " "stats." msgstr "" -#: ../NEWS:4406 +#: ../NEWS:4528 msgid "" ":gh:`135489`: Show verbose output for failing tests during PGO profiling " "step with --enable-optimizations." msgstr "" -#: ../NEWS:4409 +#: ../NEWS:4531 msgid ":gh:`135120`: Add :func:`!test.support.subTests`." msgstr "" -#: ../NEWS:4414 +#: ../NEWS:4536 msgid "" ":gh:`135462`: Fix quadratic complexity in processing specially crafted input " "in :class:`html.parser.HTMLParser`. End-of-file errors are now handled " @@ -7371,63 +7573,63 @@ msgid "" "closed, tags are ignored." msgstr "" -#: ../NEWS:4419 +#: ../NEWS:4541 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:4423 +#: ../NEWS:4545 msgid "" "Addresses :cve:`2024-12718`, :cve:`2025-4138`, :cve:`2025-4330`, and :cve:" "`2025-4517`." msgstr "" -#: ../NEWS:4429 +#: ../NEWS:4551 msgid "" ":gh:`65697`: :class:`configparser`'s error message when attempting to write " "an invalid key is now more helpful." msgstr "" -#: ../NEWS:4432 +#: ../NEWS:4554 msgid "" ":gh:`135497`: Fix :func:`os.getlogin` failing for longer usernames on BSD-" "based platforms." msgstr "" -#: ../NEWS:4435 +#: ../NEWS:4557 msgid "" ":gh:`135429`: Fix the argument mismatch in ``_lsprof`` for ``PY_THROW`` " "event." msgstr "" -#: ../NEWS:4438 +#: ../NEWS:4560 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`." msgstr "" -#: ../NEWS:4442 +#: ../NEWS:4564 msgid "" ":gh:`133967`: Do not normalize :mod:`locale` name 'C.UTF-8' to 'en_US.UTF-8'." msgstr "" -#: ../NEWS:4444 +#: ../NEWS:4566 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:4447 +#: ../NEWS:4569 msgid "" ":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:4451 +#: ../NEWS:4573 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 " @@ -7436,48 +7638,48 @@ msgid "" "uuid6`." msgstr "" -#: ../NEWS:4457 +#: ../NEWS:4579 msgid "" ":gh:`134970`: Fix the \"unknown action\" exception in :meth:`argparse." "ArgumentParser.add_argument_group` to correctly replace the action class." msgstr "" -#: ../NEWS:4461 +#: ../NEWS:4583 msgid "" ":gh:`134718`: :func:`ast.dump` now only omits ``None`` and ``[]`` values if " "they are default values." msgstr "" -#: ../NEWS:4464 +#: ../NEWS:4586 msgid "" ":gh:`134939`: Add the :mod:`concurrent.interpreters` module. See :pep:`734`." msgstr "" -#: ../NEWS:4466 +#: ../NEWS:4588 msgid "" ":gh:`134885`: Fix possible crash in the :mod:`compression.zstd` module " "related to setting parameter types. Patch by Jelle Zijlstra." msgstr "" -#: ../NEWS:4469 +#: ../NEWS:4591 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." msgstr "" -#: ../NEWS:4473 +#: ../NEWS:4595 msgid "" ":gh:`128840`: Fix parsing long IPv6 addresses with embedded IPv4 address." msgstr "" -#: ../NEWS:4475 +#: ../NEWS:4597 msgid "" ":gh:`134637`: Fix performance regression in calling a :mod:`ctypes` function " "pointer in :term:`free threading`." msgstr "" -#: ../NEWS:4478 +#: ../NEWS:4600 msgid "" ":gh:`134696`: Built-in HACL* and OpenSSL implementations of hash function " "constructors now correctly accept the same *documented* named arguments. For " @@ -7486,38 +7688,38 @@ msgid "" "implementation but these calls were not compatible. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:4485 +#: ../NEWS:4607 msgid "" ":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:4489 +#: ../NEWS:4611 msgid "" ":gh:`134210`: :func:`curses.window.getch` now correctly handles signals. " "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:4492 +#: ../NEWS:4614 msgid "" ":gh:`134152`: :mod:`email`: Fix parsing of email message ID with invalid " "domain." msgstr "" -#: ../NEWS:4495 +#: ../NEWS:4617 msgid "" -":gh:`133489`: :func:`random.getrandbits` can now generate more that 2\\ :sup:" +":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:4499 +#: ../NEWS:4621 msgid "" ":gh:`132813`: Improve error messages for incorrect types and values of :" "class:`csv.Dialect` attributes." msgstr "" -#: ../NEWS:4502 +#: ../NEWS:4624 msgid "" ":gh:`132969`: Prevent the :class:`~concurrent.futures.ProcessPoolExecutor` " "executor thread, which remains running when :meth:`shutdown(wait=False) " @@ -7529,43 +7731,43 @@ msgid "" "pool." msgstr "" -#: ../NEWS:4511 +#: ../NEWS:4633 msgid "" ":gh:`127081`: Fix libc thread safety issues with :mod:`os` by replacing " "``getlogin`` with ``getlogin_r`` re-entrant version." msgstr "" -#: ../NEWS:4514 +#: ../NEWS:4636 msgid "" ":gh:`131884`: Fix formatting issues in :func:`json.dump` when both *indent* " "and *skipkeys* are used." msgstr "" -#: ../NEWS:4517 +#: ../NEWS:4639 msgid "" ":gh:`130999`: Avoid exiting the new REPL and offer suggestions even if there " "are non-string candidates when errors occur." msgstr "" -#: ../NEWS:4523 +#: ../NEWS:4645 msgid "" ":gh:`135171`: Document that the :term:`iterator` for the leftmost :keyword:`!" "for` clause in the generator expression is created immediately." msgstr "" -#: ../NEWS:4526 +#: ../NEWS:4648 msgid "" ":issue:`45210`: Document that error indicator may be set in tp_dealloc, and " "how to avoid clobbering it." msgstr "" -#: ../NEWS:4532 +#: ../NEWS:4654 msgid "" ":gh:`135496`: Fix typo in the f-string conversion type error " "(\"exclamanation\" -> \"exclamation\")." msgstr "" -#: ../NEWS:4535 +#: ../NEWS:4657 msgid "" ":gh:`135371`: Fixed :mod:`asyncio` debugging tools to properly display " "internal coroutine call stacks alongside external task dependencies. The " @@ -7573,28 +7775,28 @@ msgid "" "complete execution context. Patch by Pablo Galindo." msgstr "" -#: ../NEWS:4543 +#: ../NEWS:4665 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:4550 +#: ../NEWS:4672 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:4554 +#: ../NEWS:4676 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:4558 +#: ../NEWS:4680 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 " @@ -7604,31 +7806,31 @@ msgid "" "and adding an additional check to ``FOR_ITER``." msgstr "" -#: ../NEWS:4568 +#: ../NEWS:4690 msgid "" ":gh:`116738`: Make methods in :mod:`heapq` thread-safe on the :term:`free " "threaded ` build." msgstr "" -#: ../NEWS:4574 +#: ../NEWS:4696 msgid "" ":gh:`134876`: Add support to :pep:`768` remote debugging for Linux kernels " "which don't have CONFIG_CROSS_MEMORY_ATTACH configured." msgstr "" -#: ../NEWS:4577 +#: ../NEWS:4699 msgid "" ":gh:`134889`: Fix handling of a few opcodes that leave operands on the stack " "when optimizing ``LOAD_FAST``." msgstr "" -#: ../NEWS:4583 +#: ../NEWS:4705 msgid "" ":gh:`134908`: Fix crash when iterating over lines in a text file on the :" "term:`free threaded ` build." msgstr "" -#: ../NEWS:4589 +#: ../NEWS:4711 msgid "" ":gh:`132617`: Fix :meth:`dict.update` modification check that could " "incorrectly raise a \"dict mutated during update\" error when a different " @@ -7636,26 +7838,26 @@ msgid "" "object." msgstr "" -#: ../NEWS:4594 +#: ../NEWS:4716 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:4597 +#: ../NEWS:4719 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:4601 +#: ../NEWS:4723 msgid "" ":gh:`133912`: Fix the C API function ``PyObject_GenericSetDict`` to handle " "extension classes with inline values." msgstr "" -#: ../NEWS:4607 +#: ../NEWS:4729 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 " @@ -7663,14 +7865,14 @@ msgid "" "Stinner." msgstr "" -#: ../NEWS:4612 +#: ../NEWS:4734 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." msgstr "" -#: ../NEWS:4616 +#: ../NEWS:4738 msgid "" ":gh:`133968`: Add :c:func:`PyUnicodeWriter_WriteASCII` function to write an " "ASCII string into a :c:type:`PyUnicodeWriter`. The function is faster than :" @@ -7678,32 +7880,32 @@ msgid "" "input string contains non-ASCII characters. Patch by Victor Stinner." msgstr "" -#: ../NEWS:4624 +#: ../NEWS:4746 msgid "" ":gh:`119132`: Remove \"experimental\" tag from the CPython free-threading " "build." msgstr "" -#: ../NEWS:4627 +#: ../NEWS:4749 msgid "" ":gh:`135497`: Fix the detection of ``MAXLOGNAME`` in the ``configure.ac`` " "script." msgstr "" -#: ../NEWS:4630 +#: ../NEWS:4752 msgid "" ":gh:`134923`: Windows builds with profile-guided optimization enabled now " "use ``/GENPROFILE`` and ``/USEPROFILE`` instead of deprecated ``/LTCG:`` " "options." msgstr "" -#: ../NEWS:4634 +#: ../NEWS:4756 msgid "" ":gh:`134774`: Fix :c:macro:`Py_DEBUG` macro redefinition warnings on Windows " "debug builds. Patch by Chris Eibl." msgstr "" -#: ../NEWS:4637 +#: ../NEWS:4759 msgid "" ":gh:`134632`: Fixed ``build-details.json`` generation to use ``INCLUDEPY``, " "in order to reference the ``pythonX.Y`` subdirectory of the include " @@ -7711,27 +7913,27 @@ msgid "" "directory." msgstr "" -#: ../NEWS:4644 +#: ../NEWS:4766 msgid "Python 3.14.0 beta 2" msgstr "" -#: ../NEWS:4646 +#: ../NEWS:4768 msgid "*Release date: 2025-05-26*" msgstr "" -#: ../NEWS:4651 +#: ../NEWS:4773 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:4654 +#: ../NEWS:4776 msgid "" ":gh:`76023`: Make :func:`os.path.realpath` ignore Windows error 1005 when in " "non-strict mode." msgstr "" -#: ../NEWS:4657 +#: ../NEWS:4779 msgid "" ":gh:`133779`: Reverts the change to generate different :file:`pyconfig.h` " "files based on compiler settings, as it was frequently causing extension " @@ -7742,106 +7944,106 @@ msgid "" "with that flag or not." msgstr "" -#: ../NEWS:4665 +#: ../NEWS:4787 msgid "" ":gh:`133626`: Ensures packages are not accidentally bundled into the " "traditional installer." msgstr "" -#: ../NEWS:4671 +#: ../NEWS:4793 msgid "" ":gh:`134215`: :term:`REPL` import autocomplete only suggests private modules " "when explicitly specified." msgstr "" -#: ../NEWS:4677 +#: ../NEWS:4799 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:4681 +#: ../NEWS:4803 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." msgstr "" -#: ../NEWS:4686 +#: ../NEWS:4808 msgid "" ":gh:`133639`: Fix ``TestPyReplAutoindent.test_auto_indent_default()`` " "doesn't run ``input_code``." msgstr "" -#: ../NEWS:4692 +#: ../NEWS:4814 msgid "" ":gh:`133767`: Fix use-after-free in the \"unicode-escape\" decoder with a " "non-\"strict\" error handler." msgstr "" -#: ../NEWS:4695 +#: ../NEWS:4817 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." msgstr "" -#: ../NEWS:4702 +#: ../NEWS:4824 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:4706 +#: ../NEWS:4828 msgid "" ":gh:`80334`: :func:`multiprocessing.freeze_support` now checks for work on " "any \"spawn\" start method platform rather than only on Windows." msgstr "" -#: ../NEWS:4709 +#: ../NEWS:4831 msgid "" ":gh:`134582`: Fix tokenize.untokenize() round-trip errors related to t-" "strings braces escaping" msgstr "" -#: ../NEWS:4712 +#: ../NEWS:4834 msgid "" ":gh:`134546`: Ensure :mod:`pdb` remote debugging script is readable by " "remote Python process." msgstr "" -#: ../NEWS:4715 +#: ../NEWS:4837 msgid "" ":gh:`134451`: Converted ``asyncio.tools.CycleFoundException`` from dataclass " "to a regular exception type." msgstr "" -#: ../NEWS:4718 +#: ../NEWS:4840 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:4721 +#: ../NEWS:4843 msgid "" ":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:4725 +#: ../NEWS:4847 msgid ":gh:`134323`: Fix the :meth:`threading.RLock.locked` method." msgstr "" -#: ../NEWS:4727 +#: ../NEWS:4849 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:4731 +#: ../NEWS:4853 msgid "" ":gh:`134209`: :mod:`curses`: The :meth:`curses.window.instr` and :meth:" "`curses.window.getstr` methods now allocate their internal buffer on the " @@ -7849,65 +8051,65 @@ msgid "" "from 1023 to 2047." msgstr "" -#: ../NEWS:4736 +#: ../NEWS:4858 msgid "" ":gh:`134235`: Updated tab completion on REPL to include builtin modules. " "Contributed by Tom Wang, Hunter Young" msgstr "" -#: ../NEWS:4739 +#: ../NEWS:4861 msgid "" ":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:4743 +#: ../NEWS:4865 msgid "" ":gh:`134168`: :mod:`http.server`: Fix IPv6 address binding and :option:`--" "directory ` handling when using HTTPS." msgstr "" -#: ../NEWS:4746 +#: ../NEWS:4868 msgid "" ":gh:`62184`: Remove import of C implementation of :class:`io.FileIO` from " "Python implementation which has its own implementation" msgstr "" -#: ../NEWS:4749 +#: ../NEWS:4871 msgid "" ":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:4753 +#: ../NEWS:4875 msgid "" ":gh:`133890`: The :mod:`tarfile` module now handles :exc:" "`UnicodeEncodeError` in the same way as :exc:`OSError` when cannot extract a " "member." msgstr "" -#: ../NEWS:4756 +#: ../NEWS:4878 msgid "" ":gh:`134097`: Fix interaction of the new :term:`REPL` and :option:`-X " "showrefcount <-X>` command line option." msgstr "" -#: ../NEWS:4759 +#: ../NEWS:4881 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." msgstr "" -#: ../NEWS:4763 +#: ../NEWS:4885 msgid "" ":gh:`134098`: Fix handling paths that end with a percent-encoded slash " "(``%2f`` or ``%2F``) in :class:`http.server.SimpleHTTPRequestHandler`." msgstr "" -#: ../NEWS:4766 +#: ../NEWS:4888 msgid "" ":gh:`132124`: On POSIX-compliant systems, :func:`!multiprocessing.util." "get_temp_dir` now ignores :envvar:`TMPDIR` (and similar environment " @@ -7917,27 +8119,27 @@ msgid "" "Tran." msgstr "" -#: ../NEWS:4773 +#: ../NEWS:4895 msgid "" ":gh:`134062`: :mod:`ipaddress`: fix collisions in :meth:`~object.__hash__` " "for :class:`~ipaddress.IPv4Network` and :class:`~ipaddress.IPv6Network` " "objects." msgstr "" -#: ../NEWS:4777 +#: ../NEWS:4899 msgid "" ":gh:`133970`: Make :class:`!string.templatelib.Template` and :class:`!string." "templatelib.Interpolation` generic." msgstr "" -#: ../NEWS:4780 +#: ../NEWS:4902 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:4784 +#: ../NEWS:4906 msgid "" ":gh:`133960`: Simplify and improve :func:`typing.evaluate_forward_ref`. It " "now no longer raises errors on certain invalid types. In several situations, " @@ -7945,12 +8147,12 @@ msgid "" "unsupported." msgstr "" -#: ../NEWS:4789 +#: ../NEWS:4911 msgid "" ":gh:`133925`: Make the private class ``typing._UnionGenericAlias`` hashable." msgstr "" -#: ../NEWS:4791 +#: ../NEWS:4913 msgid "" ":gh:`133653`: Fix :class:`argparse.ArgumentParser` with the " "*formatter_class* argument. Fix TypeError when *formatter_class* is a custom " @@ -7960,46 +8162,46 @@ msgid "" "class:`!HelpFormatter`." msgstr "" -#: ../NEWS:4798 +#: ../NEWS:4920 msgid "" ":gh:`132641`: Fixed a race in :func:`functools.lru_cache` under free-" "threading." msgstr "" -#: ../NEWS:4801 +#: ../NEWS:4923 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:4805 +#: ../NEWS:4927 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:4809 +#: ../NEWS:4931 msgid "" ":gh:`77057`: Fix handling of invalid markup declarations in :class:`html." "parser.HTMLParser`." msgstr "" -#: ../NEWS:4812 +#: ../NEWS:4934 msgid "" ":gh:`130328`: Speedup pasting in ``PyREPL`` on Windows in a legacy console. " "Patch by Chris Eibl." msgstr "" -#: ../NEWS:4815 +#: ../NEWS:4937 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:4819 +#: ../NEWS:4941 msgid "" ":gh:`133581`: Improve unparsing of t-strings in :func:`ast.unparse` and " "``from __future__ import annotations``. Empty t-strings now round-trip " @@ -8007,25 +8209,25 @@ msgid "" "Zijlstra." msgstr "" -#: ../NEWS:4824 +#: ../NEWS:4946 msgid "" ":gh:`133551`: Support t-strings (:pep:`750`) in :mod:`annotationlib`. Patch " "by Jelle Zijlstra." msgstr "" -#: ../NEWS:4827 +#: ../NEWS:4949 msgid "" ":gh:`133439`: Fix dot commands with trailing spaces are mistaken for multi-" "line SQL statements in the sqlite3 command-line interface." msgstr "" -#: ../NEWS:4830 +#: ../NEWS:4952 msgid "" ":gh:`132493`: Avoid accessing ``__annotations__`` unnecessarily in :func:" "`inspect.signature`." msgstr "" -#: ../NEWS:4833 +#: ../NEWS:4955 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 " @@ -8033,227 +8235,227 @@ msgid "" "on Windows versions before 11." msgstr "" -#: ../NEWS:4838 +#: ../NEWS:4960 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." msgstr "" -#: ../NEWS:4842 +#: ../NEWS:4964 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:4846 +#: ../NEWS:4968 msgid "" ":gh:`125028`: :data:`functools.Placeholder` cannot be passed to :func:" "`functools.partial` as a keyword argument." msgstr "" -#: ../NEWS:4849 +#: ../NEWS:4971 msgid "" ":gh:`62824`: Fix aliases for ``iso8859_8`` encoding. Patch by Dave Goncalves." msgstr "" -#: ../NEWS:4851 +#: ../NEWS:4973 msgid "" ":gh:`86155`: :meth:`html.parser.HTMLParser.close` no longer loses data when " "the ``