diff --git a/builtins/threadsafety.po b/builtins/threadsafety.po index 2b18ada5..b191074f 100644 --- a/builtins/threadsafety.po +++ b/builtins/threadsafety.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-28 03:11+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+0000\n" "PO-Revision-Date: 2026-09-23 06:17+0000\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -566,20 +566,15 @@ msgid "" msgstr "" #: ../../builtins/threadsafety.rst:410 -msgid ":meth:`set.update` and :meth:`set.union` lock both objects only when" -msgstr "" - -#: ../../builtins/threadsafety.rst:411 msgid "" -"the other operand is a :class:`set`, :class:`frozenset`, or :class:`dict`." +":meth:`set.update` and :meth:`set.union` lock both objects only when the " +"other operand is a :class:`set`, :class:`frozenset`, or :class:`dict`." msgstr "" #: ../../builtins/threadsafety.rst:412 -msgid ":meth:`set.intersection` and :meth:`set.difference` always try to lock" -msgstr "" - -#: ../../builtins/threadsafety.rst:413 -msgid "all objects." +msgid "" +":meth:`set.intersection` and :meth:`set.difference` always try to lock all " +"objects." msgstr "" #: ../../builtins/threadsafety.rst:415 @@ -593,20 +588,15 @@ msgid "" msgstr "" #: ../../builtins/threadsafety.rst:420 -msgid ":meth:`set.difference_update` and :meth:`set.intersection_update` try" -msgstr "" - -#: ../../builtins/threadsafety.rst:421 -msgid "to lock all objects one-by-one." +msgid "" +":meth:`set.difference_update` and :meth:`set.intersection_update` try to " +"lock all objects one-by-one." msgstr "" #: ../../builtins/threadsafety.rst:422 msgid "" -":meth:`set.symmetric_difference_update` only locks the arguments if it is" -msgstr "" - -#: ../../builtins/threadsafety.rst:423 -msgid "of type :class:`set`, :class:`frozenset`, or :class:`dict`." +":meth:`set.symmetric_difference_update` only locks the arguments if it is of " +"type :class:`set`, :class:`frozenset`, or :class:`dict`." msgstr "" #: ../../builtins/threadsafety.rst:425 diff --git a/c-api/exceptions.po b/c-api/exceptions.po index 8af1e613..c75d01b0 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-15 09:12+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+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" @@ -1099,28 +1099,41 @@ msgstr "" #: ../../c-api/exceptions.rst:1019 msgid "" +"The check is based on the remaining C stack space of the current thread, not " +"on a count of calls, so it is unaffected by :c:func:`Py_SetRecursionLimit` " +"and :func:`sys.setrecursionlimit`." +msgstr "" + +#: ../../c-api/exceptions.rst:1023 +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 +#: ../../c-api/exceptions.rst:1028 msgid "The :c:func:`PyUnstable_ThreadState_SetStackProtection` function." msgstr "" -#: ../../c-api/exceptions.rst:1026 ../../c-api/exceptions.rst:1034 +#: ../../c-api/exceptions.rst:1030 ../../c-api/exceptions.rst:1042 msgid "" "This function is now also available in the :ref:`limited API `." msgstr "" -#: ../../c-api/exceptions.rst:1031 +#: ../../c-api/exceptions.rst:1033 +msgid "" +"The check is based on the remaining C stack space. Previously, a separate " +"counter of C-level calls was used." +msgstr "" + +#: ../../c-api/exceptions.rst:1039 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 +#: ../../c-api/exceptions.rst:1045 msgid "" "Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types " "requires special recursion handling. In addition to protecting the stack, :" @@ -1129,13 +1142,13 @@ msgid "" "Effectively, these are the C equivalent to :deco:`reprlib.recursive_repr`." msgstr "" -#: ../../c-api/exceptions.rst:1045 +#: ../../c-api/exceptions.rst:1053 msgid "" "Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` " "implementation to detect cycles." msgstr "" -#: ../../c-api/exceptions.rst:1048 +#: ../../c-api/exceptions.rst:1056 msgid "" "If the object has already been processed, the function returns a positive " "integer. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " @@ -1143,301 +1156,301 @@ msgid "" "`dict` objects return ``{...}`` and :class:`list` objects return ``[...]``." msgstr "" -#: ../../c-api/exceptions.rst:1054 +#: ../../c-api/exceptions.rst:1062 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 +#: ../../c-api/exceptions.rst:1066 msgid "" "Otherwise, the function returns zero and the :c:member:`~PyTypeObject." "tp_repr` implementation can continue normally." msgstr "" -#: ../../c-api/exceptions.rst:1063 +#: ../../c-api/exceptions.rst:1071 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 +#: ../../c-api/exceptions.rst:1076 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 +#: ../../c-api/exceptions.rst:1080 ../../c-api/exceptions.rst:1090 msgid "" "This function cannot fail, and the caller must hold an :term:`attached " "thread state`." msgstr "" -#: ../../c-api/exceptions.rst:1076 +#: ../../c-api/exceptions.rst:1084 msgid ":py:func:`sys.getrecursionlimit`" msgstr "" -#: ../../c-api/exceptions.rst:1080 +#: ../../c-api/exceptions.rst:1088 msgid "Set the recursion limit for the current interpreter." msgstr "" -#: ../../c-api/exceptions.rst:1086 +#: ../../c-api/exceptions.rst:1094 msgid ":py:func:`sys.setrecursionlimit`" msgstr "" -#: ../../c-api/exceptions.rst:1091 +#: ../../c-api/exceptions.rst:1099 msgid "Exception and warning types" msgstr "" -#: ../../c-api/exceptions.rst:1093 +#: ../../c-api/exceptions.rst:1101 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 +#: ../../c-api/exceptions.rst:1105 msgid "For completeness, here are all the variables:" msgstr "" -#: ../../c-api/exceptions.rst:1100 +#: ../../c-api/exceptions.rst:1108 msgid "Exception types" msgstr "" -#: ../../c-api/exceptions.rst:1107 ../../c-api/exceptions.rst:1253 -#: ../../c-api/exceptions.rst:1283 +#: ../../c-api/exceptions.rst:1115 ../../c-api/exceptions.rst:1261 +#: ../../c-api/exceptions.rst:1291 msgid "C name" msgstr "" -#: ../../c-api/exceptions.rst:1108 ../../c-api/exceptions.rst:1254 -#: ../../c-api/exceptions.rst:1284 +#: ../../c-api/exceptions.rst:1116 ../../c-api/exceptions.rst:1262 +#: ../../c-api/exceptions.rst:1292 msgid "Python name" msgstr "" -#: ../../c-api/exceptions.rst:1110 +#: ../../c-api/exceptions.rst:1118 msgid ":exc:`BaseException`" msgstr "" -#: ../../c-api/exceptions.rst:1112 +#: ../../c-api/exceptions.rst:1120 msgid ":exc:`BaseExceptionGroup`" msgstr "" -#: ../../c-api/exceptions.rst:1114 +#: ../../c-api/exceptions.rst:1122 msgid ":exc:`Exception`" msgstr "" -#: ../../c-api/exceptions.rst:1116 +#: ../../c-api/exceptions.rst:1124 msgid ":exc:`ArithmeticError`" msgstr "" -#: ../../c-api/exceptions.rst:1118 +#: ../../c-api/exceptions.rst:1126 msgid ":exc:`AssertionError`" msgstr "" -#: ../../c-api/exceptions.rst:1120 +#: ../../c-api/exceptions.rst:1128 msgid ":exc:`AttributeError`" msgstr "" -#: ../../c-api/exceptions.rst:1122 +#: ../../c-api/exceptions.rst:1130 msgid ":exc:`BlockingIOError`" msgstr "" -#: ../../c-api/exceptions.rst:1124 +#: ../../c-api/exceptions.rst:1132 msgid ":exc:`BrokenPipeError`" msgstr "" -#: ../../c-api/exceptions.rst:1126 +#: ../../c-api/exceptions.rst:1134 msgid ":exc:`BufferError`" msgstr "" -#: ../../c-api/exceptions.rst:1128 +#: ../../c-api/exceptions.rst:1136 msgid ":exc:`ChildProcessError`" msgstr "" -#: ../../c-api/exceptions.rst:1130 +#: ../../c-api/exceptions.rst:1138 msgid ":exc:`ConnectionAbortedError`" msgstr "" -#: ../../c-api/exceptions.rst:1132 +#: ../../c-api/exceptions.rst:1140 msgid ":exc:`ConnectionError`" msgstr "" -#: ../../c-api/exceptions.rst:1134 +#: ../../c-api/exceptions.rst:1142 msgid ":exc:`ConnectionRefusedError`" msgstr "" -#: ../../c-api/exceptions.rst:1136 +#: ../../c-api/exceptions.rst:1144 msgid ":exc:`ConnectionResetError`" msgstr "" -#: ../../c-api/exceptions.rst:1138 +#: ../../c-api/exceptions.rst:1146 msgid ":exc:`EOFError`" msgstr "" -#: ../../c-api/exceptions.rst:1140 +#: ../../c-api/exceptions.rst:1148 msgid ":exc:`FileExistsError`" msgstr "" -#: ../../c-api/exceptions.rst:1142 +#: ../../c-api/exceptions.rst:1150 msgid ":exc:`FileNotFoundError`" msgstr "" -#: ../../c-api/exceptions.rst:1144 +#: ../../c-api/exceptions.rst:1152 msgid ":exc:`FloatingPointError`" msgstr "" -#: ../../c-api/exceptions.rst:1146 +#: ../../c-api/exceptions.rst:1154 msgid ":exc:`GeneratorExit`" msgstr "" -#: ../../c-api/exceptions.rst:1148 +#: ../../c-api/exceptions.rst:1156 msgid ":exc:`ImportError`" msgstr "" -#: ../../c-api/exceptions.rst:1150 +#: ../../c-api/exceptions.rst:1158 msgid ":exc:`IndentationError`" msgstr "" -#: ../../c-api/exceptions.rst:1152 +#: ../../c-api/exceptions.rst:1160 msgid ":exc:`IndexError`" msgstr "" -#: ../../c-api/exceptions.rst:1154 +#: ../../c-api/exceptions.rst:1162 msgid ":exc:`InterruptedError`" msgstr "" -#: ../../c-api/exceptions.rst:1156 +#: ../../c-api/exceptions.rst:1164 msgid ":exc:`IsADirectoryError`" msgstr "" -#: ../../c-api/exceptions.rst:1158 +#: ../../c-api/exceptions.rst:1166 msgid ":exc:`KeyError`" msgstr "" -#: ../../c-api/exceptions.rst:1160 +#: ../../c-api/exceptions.rst:1168 msgid ":exc:`KeyboardInterrupt`" msgstr "" -#: ../../c-api/exceptions.rst:1162 +#: ../../c-api/exceptions.rst:1170 msgid ":exc:`LookupError`" msgstr "" -#: ../../c-api/exceptions.rst:1164 +#: ../../c-api/exceptions.rst:1172 msgid ":exc:`MemoryError`" msgstr "" -#: ../../c-api/exceptions.rst:1166 +#: ../../c-api/exceptions.rst:1174 msgid ":exc:`ModuleNotFoundError`" msgstr "" -#: ../../c-api/exceptions.rst:1168 +#: ../../c-api/exceptions.rst:1176 msgid ":exc:`NameError`" msgstr "" -#: ../../c-api/exceptions.rst:1170 +#: ../../c-api/exceptions.rst:1178 msgid ":exc:`NotADirectoryError`" msgstr "" -#: ../../c-api/exceptions.rst:1172 +#: ../../c-api/exceptions.rst:1180 msgid ":exc:`NotImplementedError`" msgstr "" -#: ../../c-api/exceptions.rst:1174 ../../c-api/exceptions.rst:1257 -#: ../../c-api/exceptions.rst:1260 ../../c-api/exceptions.rst:1263 +#: ../../c-api/exceptions.rst:1182 ../../c-api/exceptions.rst:1265 +#: ../../c-api/exceptions.rst:1268 ../../c-api/exceptions.rst:1271 msgid ":exc:`OSError`" msgstr "" -#: ../../c-api/exceptions.rst:1176 +#: ../../c-api/exceptions.rst:1184 msgid ":exc:`OverflowError`" msgstr "" -#: ../../c-api/exceptions.rst:1178 +#: ../../c-api/exceptions.rst:1186 msgid ":exc:`PermissionError`" msgstr "" -#: ../../c-api/exceptions.rst:1180 +#: ../../c-api/exceptions.rst:1188 msgid ":exc:`ProcessLookupError`" msgstr "" -#: ../../c-api/exceptions.rst:1182 +#: ../../c-api/exceptions.rst:1190 msgid ":exc:`PythonFinalizationError`" msgstr "" -#: ../../c-api/exceptions.rst:1184 +#: ../../c-api/exceptions.rst:1192 msgid ":exc:`RecursionError`" msgstr "" -#: ../../c-api/exceptions.rst:1186 +#: ../../c-api/exceptions.rst:1194 msgid ":exc:`ReferenceError`" msgstr "" -#: ../../c-api/exceptions.rst:1188 +#: ../../c-api/exceptions.rst:1196 msgid ":exc:`RuntimeError`" msgstr "" -#: ../../c-api/exceptions.rst:1190 +#: ../../c-api/exceptions.rst:1198 msgid ":exc:`StopAsyncIteration`" msgstr "" -#: ../../c-api/exceptions.rst:1192 +#: ../../c-api/exceptions.rst:1200 msgid ":exc:`StopIteration`" msgstr "" -#: ../../c-api/exceptions.rst:1194 +#: ../../c-api/exceptions.rst:1202 msgid ":exc:`SyntaxError`" msgstr "" -#: ../../c-api/exceptions.rst:1196 +#: ../../c-api/exceptions.rst:1204 msgid ":exc:`SystemError`" msgstr "" -#: ../../c-api/exceptions.rst:1198 +#: ../../c-api/exceptions.rst:1206 msgid ":exc:`SystemExit`" msgstr "" -#: ../../c-api/exceptions.rst:1200 +#: ../../c-api/exceptions.rst:1208 msgid ":exc:`TabError`" msgstr "" -#: ../../c-api/exceptions.rst:1202 +#: ../../c-api/exceptions.rst:1210 msgid ":exc:`TimeoutError`" msgstr "" -#: ../../c-api/exceptions.rst:1204 +#: ../../c-api/exceptions.rst:1212 msgid ":exc:`TypeError`" msgstr "" -#: ../../c-api/exceptions.rst:1206 +#: ../../c-api/exceptions.rst:1214 msgid ":exc:`UnboundLocalError`" msgstr "" -#: ../../c-api/exceptions.rst:1208 +#: ../../c-api/exceptions.rst:1216 msgid ":exc:`UnicodeDecodeError`" msgstr "" -#: ../../c-api/exceptions.rst:1210 +#: ../../c-api/exceptions.rst:1218 msgid ":exc:`UnicodeEncodeError`" msgstr "" -#: ../../c-api/exceptions.rst:1212 +#: ../../c-api/exceptions.rst:1220 msgid ":exc:`UnicodeError`" msgstr "" -#: ../../c-api/exceptions.rst:1214 +#: ../../c-api/exceptions.rst:1222 msgid ":exc:`UnicodeTranslateError`" msgstr "" -#: ../../c-api/exceptions.rst:1216 +#: ../../c-api/exceptions.rst:1224 msgid ":exc:`ValueError`" msgstr "" -#: ../../c-api/exceptions.rst:1218 +#: ../../c-api/exceptions.rst:1226 msgid ":exc:`ZeroDivisionError`" msgstr "" -#: ../../c-api/exceptions.rst:1220 +#: ../../c-api/exceptions.rst:1228 msgid "" ":c:data:`PyExc_BlockingIOError`, :c:data:`PyExc_BrokenPipeError`, :c:data:" "`PyExc_ChildProcessError`, :c:data:`PyExc_ConnectionError`, :c:data:" @@ -1449,141 +1462,141 @@ msgid "" "`PyExc_TimeoutError` were introduced following :pep:`3151`." msgstr "" -#: ../../c-api/exceptions.rst:1230 +#: ../../c-api/exceptions.rst:1238 msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." msgstr "" -#: ../../c-api/exceptions.rst:1233 +#: ../../c-api/exceptions.rst:1241 msgid ":c:data:`PyExc_ModuleNotFoundError`." msgstr "" -#: ../../c-api/exceptions.rst:1236 +#: ../../c-api/exceptions.rst:1244 msgid ":c:data:`PyExc_BaseExceptionGroup`." msgstr "" -#: ../../c-api/exceptions.rst:1241 +#: ../../c-api/exceptions.rst:1249 msgid "OSError aliases" msgstr "" -#: ../../c-api/exceptions.rst:1243 +#: ../../c-api/exceptions.rst:1251 msgid "The following are a compatibility aliases to :c:data:`PyExc_OSError`." msgstr "" -#: ../../c-api/exceptions.rst:1245 +#: ../../c-api/exceptions.rst:1253 msgid "These aliases used to be separate exception types." msgstr "" -#: ../../c-api/exceptions.rst:1255 +#: ../../c-api/exceptions.rst:1263 msgid "Notes" msgstr "" -#: ../../c-api/exceptions.rst:1264 +#: ../../c-api/exceptions.rst:1272 msgid "[win]_" msgstr "" -#: ../../c-api/exceptions.rst:1266 +#: ../../c-api/exceptions.rst:1274 msgid "Notes:" msgstr "" -#: ../../c-api/exceptions.rst:1269 +#: ../../c-api/exceptions.rst:1277 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 +#: ../../c-api/exceptions.rst:1284 msgid "Warning types" msgstr "" -#: ../../c-api/exceptions.rst:1286 +#: ../../c-api/exceptions.rst:1294 msgid ":exc:`Warning`" msgstr "" -#: ../../c-api/exceptions.rst:1288 +#: ../../c-api/exceptions.rst:1296 msgid ":exc:`BytesWarning`" msgstr "" -#: ../../c-api/exceptions.rst:1290 +#: ../../c-api/exceptions.rst:1298 msgid ":exc:`DeprecationWarning`" msgstr "" -#: ../../c-api/exceptions.rst:1292 +#: ../../c-api/exceptions.rst:1300 msgid ":exc:`EncodingWarning`" msgstr "" -#: ../../c-api/exceptions.rst:1294 +#: ../../c-api/exceptions.rst:1302 msgid ":exc:`FutureWarning`" msgstr "" -#: ../../c-api/exceptions.rst:1296 +#: ../../c-api/exceptions.rst:1304 msgid ":exc:`ImportWarning`" msgstr "" -#: ../../c-api/exceptions.rst:1298 +#: ../../c-api/exceptions.rst:1306 msgid ":exc:`PendingDeprecationWarning`" msgstr "" -#: ../../c-api/exceptions.rst:1300 +#: ../../c-api/exceptions.rst:1308 msgid ":exc:`ResourceWarning`" msgstr "" -#: ../../c-api/exceptions.rst:1302 +#: ../../c-api/exceptions.rst:1310 msgid ":exc:`RuntimeWarning`" msgstr "" -#: ../../c-api/exceptions.rst:1304 +#: ../../c-api/exceptions.rst:1312 msgid ":exc:`SyntaxWarning`" msgstr "" -#: ../../c-api/exceptions.rst:1306 +#: ../../c-api/exceptions.rst:1314 msgid ":exc:`UnicodeWarning`" msgstr "" -#: ../../c-api/exceptions.rst:1308 +#: ../../c-api/exceptions.rst:1316 msgid ":exc:`UserWarning`" msgstr "" -#: ../../c-api/exceptions.rst:1310 +#: ../../c-api/exceptions.rst:1318 msgid ":c:data:`PyExc_ResourceWarning`." msgstr "" -#: ../../c-api/exceptions.rst:1313 +#: ../../c-api/exceptions.rst:1321 msgid ":c:data:`PyExc_EncodingWarning`." msgstr "" -#: ../../c-api/exceptions.rst:1318 +#: ../../c-api/exceptions.rst:1326 msgid "Tracebacks" msgstr "" -#: ../../c-api/exceptions.rst:1322 +#: ../../c-api/exceptions.rst:1330 msgid "" "Type object for traceback objects. This is available as :class:`types." "TracebackType` in the Python layer." msgstr "" -#: ../../c-api/exceptions.rst:1328 +#: ../../c-api/exceptions.rst:1336 msgid "" "Return true if *op* is a traceback object, false otherwise. This function " "does not account for subtypes." msgstr "" -#: ../../c-api/exceptions.rst:1334 +#: ../../c-api/exceptions.rst:1342 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 +#: ../../c-api/exceptions.rst:1345 msgid "Calling this function without an exception set is undefined behavior." msgstr "" -#: ../../c-api/exceptions.rst:1339 ../../c-api/exceptions.rst:1347 +#: ../../c-api/exceptions.rst:1347 ../../c-api/exceptions.rst:1355 msgid "" "This function returns ``0`` on success, and returns ``-1`` with an exception " "set on failure." msgstr "" -#: ../../c-api/exceptions.rst:1345 +#: ../../c-api/exceptions.rst:1353 msgid "Write the traceback *tb* into the file *f*." msgstr "" diff --git a/c-api/marshal.po b/c-api/marshal.po index 44e30b9b..fd86192e 100644 --- a/c-api/marshal.po +++ b/c-api/marshal.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-15 09:12+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+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" @@ -51,7 +51,7 @@ msgid "" "native :c:expr:`long` type. *version* indicates the file format." msgstr "" -#: ../../c-api/marshal.rst:29 ../../c-api/marshal.rst:37 +#: ../../c-api/marshal.rst:29 ../../c-api/marshal.rst:43 msgid "" "This function can fail, in which case it sets the error indicator. Use :c:" "func:`PyErr_Occurred` to check for that." @@ -59,54 +59,72 @@ msgstr "" #: ../../c-api/marshal.rst:34 msgid "" +"In Python 3.15 and earlier, this function does not set the error indicator " +"if writing to *file* fails. The same caveat applies as for :c:func:" +"`PyMarshal_WriteObjectToFile`." +msgstr "" + +#: ../../c-api/marshal.rst:40 +msgid "" "Marshal a Python object, *value*, to *file*. *version* indicates the file " "format." msgstr "" -#: ../../c-api/marshal.rst:42 +#: ../../c-api/marshal.rst:48 +msgid "" +"In Python 3.15 and earlier, this function can write only part of the data to " +"*file* and return without setting the error indicator, for example if " +"*value* contains an object which cannot be marshalled or if writing to " +"*file* fails (see :gh:`155907`). Code which has to support these versions " +"cannot rely on :c:func:`PyErr_Occurred` alone to know that all the data was " +"written. It can use :c:func:`PyMarshal_WriteObjectToString` and write the " +"result itself, or validate what was written." +msgstr "" + +#: ../../c-api/marshal.rst:59 msgid "" "Return a bytes object containing the marshalled representation of *value*. " "*version* indicates the file format." msgstr "" -#: ../../c-api/marshal.rst:46 +#: ../../c-api/marshal.rst:63 msgid "The following functions allow marshalled values to be read back in." msgstr "" -#: ../../c-api/marshal.rst:51 +#: ../../c-api/marshal.rst:68 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 +#: ../../c-api/marshal.rst:72 ../../c-api/marshal.rst:82 msgid "" "On error, sets the appropriate exception (:exc:`EOFError`) and returns " "``-1``." msgstr "" -#: ../../c-api/marshal.rst:61 +#: ../../c-api/marshal.rst:78 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 +#: ../../c-api/marshal.rst:88 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 +#: ../../c-api/marshal.rst:91 ../../c-api/marshal.rst:105 +#: ../../c-api/marshal.rst:114 msgid "" "On error, sets the appropriate exception (:exc:`EOFError`, :exc:`ValueError` " "or :exc:`TypeError`) and returns ``NULL``." msgstr "" -#: ../../c-api/marshal.rst:80 +#: ../../c-api/marshal.rst:97 msgid "" "Return a Python object from the data stream in a :c:expr:`FILE*` opened for " "reading. Unlike :c:func:`PyMarshal_ReadObjectFromFile`, this function " @@ -117,7 +135,7 @@ msgid "" "anything else from the file." msgstr "" -#: ../../c-api/marshal.rst:94 +#: ../../c-api/marshal.rst:111 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/slice.po b/c-api/slice.po index 335a864b..3ddf939c 100644 --- a/c-api/slice.po +++ b/c-api/slice.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-15 09:12+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+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" @@ -65,7 +65,7 @@ msgstr "" msgid "You probably do not want to use this function." msgstr "" -#: ../../c-api/slice.rst:44 ../../c-api/slice.rst:75 +#: ../../c-api/slice.rst:44 ../../c-api/slice.rst:76 msgid "" "The parameter type for the *slice* parameter was ``PySliceObject*`` before." msgstr "" @@ -76,21 +76,21 @@ msgid "" "stop, and step indices from the slice object *slice* assuming a sequence of " "length *length*, and store the length of the slice in *slicelength*. Out of " "bounds indices are clipped in a manner consistent with the handling of " -"normal slices." +"normal slices. *length* must not be negative." msgstr "" -#: ../../c-api/slice.rst:57 +#: ../../c-api/slice.rst:58 msgid "Return ``0`` on success and ``-1`` on error with an exception set." msgstr "" -#: ../../c-api/slice.rst:60 +#: ../../c-api/slice.rst:61 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 +#: ../../c-api/slice.rst:65 msgid "" "if (PySlice_GetIndicesEx(slice, length, &start, &stop, &step, &slicelength) " "< 0) {\n" @@ -98,11 +98,11 @@ msgid "" "}" msgstr "" -#: ../../c-api/slice.rst:68 +#: ../../c-api/slice.rst:69 msgid "is replaced by ::" msgstr "" -#: ../../c-api/slice.rst:70 +#: ../../c-api/slice.rst:71 msgid "" "if (PySlice_Unpack(slice, &start, &stop, &step) < 0) {\n" " // return error\n" @@ -110,7 +110,7 @@ msgid "" "slicelength = PySlice_AdjustIndices(length, &start, &stop, step);" msgstr "" -#: ../../c-api/slice.rst:79 +#: ../../c-api/slice.rst:80 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:`!" @@ -119,14 +119,14 @@ msgid "" "*stop* and *step* are evaluated more than once." msgstr "" -#: ../../c-api/slice.rst:86 +#: ../../c-api/slice.rst:87 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 +#: ../../c-api/slice.rst:95 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 " @@ -135,39 +135,45 @@ msgid "" "less than ``-PY_SSIZE_T_MAX`` to ``-PY_SSIZE_T_MAX``." msgstr "" -#: ../../c-api/slice.rst:100 +#: ../../c-api/slice.rst:101 msgid "Return ``-1`` with an exception set on error, ``0`` on success." msgstr "" -#: ../../c-api/slice.rst:107 +#: ../../c-api/slice.rst:108 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 +#: ../../c-api/slice.rst:112 +msgid "" +"*length* must not be negative. *step* must not be zero and must not be less " +"than ``-PY_SSIZE_T_MAX``, as guaranteed by :c:func:`PySlice_Unpack`." +msgstr "" + +#: ../../c-api/slice.rst:116 msgid "" "Return the length of the slice. Always successful. Doesn't call Python " "code." msgstr "" -#: ../../c-api/slice.rst:118 +#: ../../c-api/slice.rst:123 msgid "Ellipsis Object" msgstr "" -#: ../../c-api/slice.rst:123 +#: ../../c-api/slice.rst:128 msgid "" "The type of Python :const:`Ellipsis` object. Same as :class:`types." "EllipsisType` in the Python layer." msgstr "" -#: ../../c-api/slice.rst:129 +#: ../../c-api/slice.rst:134 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 +#: ../../c-api/slice.rst:137 msgid ":c:data:`Py_Ellipsis` is immortal." msgstr "" diff --git a/cpython-src b/cpython-src index 24ddd48a..758278c2 160000 --- a/cpython-src +++ b/cpython-src @@ -1 +1 @@ -Subproject commit 24ddd48a2a89e9f3de1245db9b86b6a80ae2d0d2 +Subproject commit 758278c2ebf4a77fc2a92a4d21f58c6a891391f4 diff --git a/extending/extending.po b/extending/extending.po index 5b0852a3..97822309 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -36,27 +36,27 @@ msgstr "" msgid "" "To support extensions, the Python API (Application Programmers Interface) " "defines a set of functions, macros and variables that provide access to most " -"aspects of the Python run-time system. The Python API is incorporated in a C" -" source file by including the header ``\"Python.h\"``." +"aspects of the Python run-time system. The Python API is incorporated in a " +"C source file by including the header ``\"Python.h\"``." msgstr "" #: ../../extending/extending.rst:20 msgid "" -"The compilation of an extension module depends on its intended use as well as" -" on your system setup; details are given in later chapters." +"The compilation of an extension module depends on its intended use as well " +"as on your system setup; details are given in later chapters." msgstr "" #: ../../extending/extending.rst:25 msgid "" "The C extension interface is specific to CPython, and extension modules do " "not work on other Python implementations. In many cases, it is possible to " -"avoid writing C extensions and preserve portability to other implementations." -" For example, if your use case is calling C library functions or system " -"calls, you should consider using the :mod:`ctypes` module or the `cffi " -"`_ library rather than writing custom C code. " -"These modules let you write Python code to interface with C code and are more" -" portable between implementations of Python than writing and compiling a C " -"extension module." +"avoid writing C extensions and preserve portability to other " +"implementations. For example, if your use case is calling C library " +"functions or system calls, you should consider using the :mod:`ctypes` " +"module or the `cffi `_ library rather than " +"writing custom C code. These modules let you write Python code to interface " +"with C code and are more portable between implementations of Python than " +"writing and compiling a C extension module." msgstr "" #: ../../extending/extending.rst:40 @@ -67,9 +67,9 @@ msgstr "" msgid "" "Let's create an extension module called ``spam`` (the favorite food of Monty " "Python fans...) and let's say we want to create a Python interface to the C " -"library function :c:func:`system` [#]_. This function takes a null-terminated" -" character string as argument and returns an integer. We want this function " -"to be callable from Python as follows:" +"library function :c:func:`system` [#]_. This function takes a null-" +"terminated character string as argument and returns an integer. We want " +"this function to be callable from Python as follows:" msgstr "" #: ../../extending/extending.rst:48 @@ -80,10 +80,10 @@ msgstr "" #: ../../extending/extending.rst:53 msgid "" -"Begin by creating a file :file:`spammodule.c`. (Historically, if a module is" -" called ``spam``, the C file containing its implementation is called " -":file:`spammodule.c`; if the module name is very long, like ``spammify``, the" -" module name can be just :file:`spammify.c`.)" +"Begin by creating a file :file:`spammodule.c`. (Historically, if a module " +"is called ``spam``, the C file containing its implementation is called :file:" +"`spammodule.c`; if the module name is very long, like ``spammify``, the " +"module name can be just :file:`spammify.c`.)" msgstr "" #: ../../extending/extending.rst:58 @@ -125,10 +125,10 @@ msgstr "" #: ../../extending/extending.rst:82 msgid "" -"For backward compatibility, :file:`Python.h` includes several standard header" -" files. C extensions should include the standard headers that they use, and " -"should not rely on these implicit includes. If using the limited C API " -"version 3.13 or newer, the implicit includes are:" +"For backward compatibility, :file:`Python.h` includes several standard " +"header files. C extensions should include the standard headers that they " +"use, and should not rely on these implicit includes. If using the limited C " +"API version 3.13 or newer, the implicit includes are:" msgstr "" #: ../../extending/extending.rst:87 @@ -202,8 +202,8 @@ msgstr "" #: ../../extending/extending.rst:110 msgid "" "The next thing we add to our module file is the C function that will be " -"called when the Python expression ``spam.system(string)`` is evaluated (we'll" -" see shortly how it ends up being called)::" +"called when the Python expression ``spam.system(string)`` is evaluated " +"(we'll see shortly how it ends up being called)::" msgstr "" #: ../../extending/extending.rst:114 @@ -237,14 +237,14 @@ msgstr "" #: ../../extending/extending.rst:134 msgid "" -"The *args* argument will be a pointer to a Python tuple object containing the" -" arguments. Each item of the tuple corresponds to an argument in the call's " -"argument list. The arguments are Python objects --- in order to do anything " -"with them in our C function we have to convert them to C values. The " -"function :c:func:`PyArg_ParseTuple` in the Python API checks the argument " -"types and converts them to C values. It uses a template string to determine " -"the required types of the arguments as well as the types of the C variables " -"into which to store the converted values. More about this later." +"The *args* argument will be a pointer to a Python tuple object containing " +"the arguments. Each item of the tuple corresponds to an argument in the " +"call's argument list. The arguments are Python objects --- in order to do " +"anything with them in our C function we have to convert them to C values. " +"The function :c:func:`PyArg_ParseTuple` in the Python API checks the " +"argument types and converts them to C values. It uses a template string to " +"determine the required types of the arguments as well as the types of the C " +"variables into which to store the converted values. More about this later." msgstr "" #: ../../extending/extending.rst:143 @@ -265,8 +265,8 @@ msgstr "" msgid "" "An important convention throughout the Python interpreter is the following: " "when a function fails, it should set an exception condition and return an " -"error value (usually ``-1`` or a ``NULL`` pointer). Exception information is" -" stored in three members of the interpreter's thread state. These are " +"error value (usually ``-1`` or a ``NULL`` pointer). Exception information " +"is stored in three members of the interpreter's thread state. These are " "``NULL`` if there is no exception. Otherwise they are the C equivalents of " "the members of the Python tuple returned by :meth:`sys.exc_info`. These are " "the exception type, exception instance, and a traceback object. It is " @@ -292,41 +292,41 @@ msgstr "" msgid "" "Another useful function is :c:func:`PyErr_SetFromErrno`, which only takes an " "exception argument and constructs the associated value by inspection of the " -"global variable :c:data:`errno`. The most general function is " -":c:func:`PyErr_SetObject`, which takes two object arguments, the exception " -"and its associated value. You don't need to :c:func:`Py_INCREF` the objects " -"passed to any of these functions." +"global variable :c:data:`errno`. The most general function is :c:func:" +"`PyErr_SetObject`, which takes two object arguments, the exception and its " +"associated value. You don't need to :c:func:`Py_INCREF` the objects passed " +"to any of these functions." msgstr "" #: ../../extending/extending.rst:179 msgid "" -"You can test non-destructively whether an exception has been set with " -":c:func:`PyErr_Occurred`. This returns the current exception object, or " -"``NULL`` if no exception has occurred. You normally don't need to call " -":c:func:`PyErr_Occurred` to see whether an error occurred in a function call," -" since you should be able to tell from the return value." +"You can test non-destructively whether an exception has been set with :c:" +"func:`PyErr_Occurred`. This returns the current exception object, or " +"``NULL`` if no exception has occurred. You normally don't need to call :c:" +"func:`PyErr_Occurred` to see whether an error occurred in a function call, " +"since you should be able to tell from the return value." msgstr "" #: ../../extending/extending.rst:185 msgid "" "When a function *f* that calls another function *g* detects that the latter " -"fails, *f* should itself return an error value (usually ``NULL`` or ``-1``)." -" It should *not* call one of the ``PyErr_*`` functions --- one has already " -"been called by *g*. *f*'s caller is then supposed to also return an error " -"indication to *its* caller, again *without* calling ``PyErr_*``, and so on " -"--- the most detailed cause of the error was already reported by the function" -" that first detected it. Once the error reaches the Python interpreter's " -"main loop, this aborts the currently executing Python code and tries to find " -"an exception handler specified by the Python programmer." +"fails, *f* should itself return an error value (usually ``NULL`` or " +"``-1``). It should *not* call one of the ``PyErr_*`` functions --- one has " +"already been called by *g*. *f*'s caller is then supposed to also return an " +"error indication to *its* caller, again *without* calling ``PyErr_*``, and " +"so on --- the most detailed cause of the error was already reported by the " +"function that first detected it. Once the error reaches the Python " +"interpreter's main loop, this aborts the currently executing Python code and " +"tries to find an exception handler specified by the Python programmer." msgstr "" #: ../../extending/extending.rst:195 msgid "" "(There are situations where a module can actually give a more detailed error " -"message by calling another ``PyErr_*`` function, and in such cases it is fine" -" to do so. As a general rule, however, this is not necessary, and can cause " -"information about the cause of the error to be lost: most operations can fail" -" for a variety of reasons.)" +"message by calling another ``PyErr_*`` function, and in such cases it is " +"fine to do so. As a general rule, however, this is not necessary, and can " +"cause information about the cause of the error to be lost: most operations " +"can fail for a variety of reasons.)" msgstr "" #: ../../extending/extending.rst:201 @@ -341,11 +341,10 @@ msgstr "" #: ../../extending/extending.rst:207 msgid "" "Every failing :c:func:`malloc` call must be turned into an exception --- the " -"direct caller of :c:func:`malloc` (or :c:func:`realloc`) must call " -":c:func:`PyErr_NoMemory` and return a failure indicator itself. All the " -"object-creating functions (for example, :c:func:`PyLong_FromLong`) already do" -" this, so this note is only relevant to those who call :c:func:`malloc` " -"directly." +"direct caller of :c:func:`malloc` (or :c:func:`realloc`) must call :c:func:" +"`PyErr_NoMemory` and return a failure indicator itself. All the object-" +"creating functions (for example, :c:func:`PyLong_FromLong`) already do this, " +"so this note is only relevant to those who call :c:func:`malloc` directly." msgstr "" #: ../../extending/extending.rst:213 @@ -358,8 +357,8 @@ msgstr "" #: ../../extending/extending.rst:217 msgid "" -"Finally, be careful to clean up garbage (by making :c:func:`Py_XDECREF` or " -":c:func:`Py_DECREF` calls for objects you have already created) when you " +"Finally, be careful to clean up garbage (by making :c:func:`Py_XDECREF` or :" +"c:func:`Py_DECREF` calls for objects you have already created) when you " "return an error indicator!" msgstr "" @@ -369,10 +368,10 @@ msgid "" "predeclared C objects corresponding to all built-in Python exceptions, such " "as :c:data:`PyExc_ZeroDivisionError`, which you can use directly. Of course, " "you should choose exceptions wisely --- don't use :c:data:`PyExc_TypeError` " -"to mean that a file couldn't be opened (that should probably be " -":c:data:`PyExc_OSError`). If something's wrong with the argument list, the " -":c:func:`PyArg_ParseTuple` function usually raises :c:data:`PyExc_TypeError`." -" If you have an argument whose value must be in a particular range or must " +"to mean that a file couldn't be opened (that should probably be :c:data:" +"`PyExc_OSError`). If something's wrong with the argument list, the :c:func:" +"`PyArg_ParseTuple` function usually raises :c:data:`PyExc_TypeError`. If " +"you have an argument whose value must be in a particular range or must " "satisfy other conditions, :c:data:`PyExc_ValueError` is appropriate." msgstr "" @@ -389,8 +388,8 @@ msgstr "" #: ../../extending/extending.rst:237 msgid "" -"and initialize it by calling :c:func:`PyErr_NewException` in the module's " -":c:data:`Py_mod_exec` function (:c:func:`!spam_module_exec`)::" +"and initialize it by calling :c:func:`PyErr_NewException` in the module's :c:" +"data:`Py_mod_exec` function (:c:func:`!spam_module_exec`)::" msgstr "" #: ../../extending/extending.rst:240 @@ -399,9 +398,9 @@ msgstr "" #: ../../extending/extending.rst:242 msgid "" -"Since :c:data:`!SpamError` is a global variable, it will be overwritten every" -" time the module is reinitialized, when the :c:data:`Py_mod_exec` function is" -" called." +"Since :c:data:`!SpamError` is a global variable, it will be overwritten " +"every time the module is reinitialized, when the :c:data:`Py_mod_exec` " +"function is called." msgstr "" #: ../../extending/extending.rst:245 @@ -462,10 +461,10 @@ msgid "" "Note also that the :c:data:`!SpamError` variable retains a reference to the " "newly created exception class; this is intentional! Since the exception " "could be removed from the module by external code, an owned reference to the " -"class is needed to ensure that it will not be discarded, causing " -":c:data:`!SpamError` to become a dangling pointer. Should it become a " -"dangling pointer, C code which raises the exception could cause a core dump " -"or other unintended side effects." +"class is needed to ensure that it will not be discarded, causing :c:data:`!" +"SpamError` to become a dangling pointer. Should it become a dangling " +"pointer, C code which raises the exception could cause a core dump or other " +"unintended side effects." msgstr "" #: ../../extending/extending.rst:296 @@ -484,8 +483,8 @@ msgstr "" #: ../../extending/extending.rst:304 msgid "" -"The :exc:`!spam.error` exception can be raised in your extension module using" -" a call to :c:func:`PyErr_SetString` as shown below::" +"The :exc:`!spam.error` exception can be raised in your extension module " +"using a call to :c:func:`PyErr_SetString` as shown below::" msgstr "" #: ../../extending/extending.rst:307 @@ -513,8 +512,8 @@ msgstr "" #: ../../extending/extending.rst:329 msgid "" -"Going back to our example function, you should now be able to understand this" -" statement::" +"Going back to our example function, you should now be able to understand " +"this statement::" msgstr "" #: ../../extending/extending.rst:332 @@ -547,8 +546,8 @@ msgstr "" #: ../../extending/extending.rst:348 msgid "" "Our :func:`!spam.system` function must return the value of :c:data:`!sts` as " -"a Python object. This is done using the function :c:func:`PyLong_FromLong`. " -"::" +"a Python object. This is done using the function :c:func:" +"`PyLong_FromLong`. ::" msgstr "" #: ../../extending/extending.rst:351 @@ -565,8 +564,8 @@ msgstr "" msgid "" "If you have a C function that returns no useful argument (a function " "returning :c:expr:`void`), the corresponding Python function must return " -"``None``. You need this idiom to do so (which is implemented by the " -":c:macro:`Py_RETURN_NONE` macro)::" +"``None``. You need this idiom to do so (which is implemented by the :c:" +"macro:`Py_RETURN_NONE` macro)::" msgstr "" #: ../../extending/extending.rst:361 @@ -588,8 +587,8 @@ msgstr "" #: ../../extending/extending.rst:374 msgid "" -"I promised to show how :c:func:`!spam_system` is called from Python programs." -" First, we need to list its name and address in a \"method table\"::" +"I promised to show how :c:func:`!spam_system` is called from Python " +"programs. First, we need to list its name and address in a \"method table\"::" msgstr "" #: ../../extending/extending.rst:377 @@ -614,10 +613,9 @@ msgstr "" #: ../../extending/extending.rst:390 msgid "" -"When using only ``METH_VARARGS``, the function should expect the Python-level" -" parameters to be passed in as a tuple acceptable for parsing via " -":c:func:`PyArg_ParseTuple`; more information on this function is provided " -"below." +"When using only ``METH_VARARGS``, the function should expect the Python-" +"level parameters to be passed in as a tuple acceptable for parsing via :c:" +"func:`PyArg_ParseTuple`; more information on this function is provided below." msgstr "" #: ../../extending/extending.rst:394 @@ -625,8 +623,8 @@ msgid "" "The :c:macro:`METH_KEYWORDS` bit may be set in the third field if keyword " "arguments should be passed to the function. In this case, the C function " "should accept a third ``PyObject *`` parameter which will be a dictionary of " -"keywords. Use :c:func:`PyArg_ParseTupleAndKeywords` to parse the arguments to" -" such a function." +"keywords. Use :c:func:`PyArg_ParseTupleAndKeywords` to parse the arguments " +"to such a function." msgstr "" #: ../../extending/extending.rst:400 @@ -646,9 +644,9 @@ msgstr "" #: ../../extending/extending.rst:408 msgid "" "This structure, in turn, must be passed to the interpreter in the module's " -"initialization function. The initialization function must be named " -":c:func:`!PyInit_name`, where *name* is the name of the module, and should be" -" the only non-\\ ``static`` item defined in the module file::" +"initialization function. The initialization function must be named :c:func:" +"`!PyInit_name`, where *name* is the name of the module, and should be the " +"only non-\\ ``static`` item defined in the module file::" msgstr "" #: ../../extending/extending.rst:413 @@ -669,20 +667,19 @@ msgstr "" #: ../../extending/extending.rst:423 msgid "" -":c:func:`!PyInit_spam` is called when each interpreter imports its module " -":mod:`!spam` for the first time. (See below for comments about embedding " -"Python.) A pointer to the module definition must be returned via " -":c:func:`PyModuleDef_Init`, so that the import machinery can create the " -"module and store it in ``sys.modules``." +":c:func:`!PyInit_spam` is called when each interpreter imports its module :" +"mod:`!spam` for the first time. (See below for comments about embedding " +"Python.) A pointer to the module definition must be returned via :c:func:" +"`PyModuleDef_Init`, so that the import machinery can create the module and " +"store it in ``sys.modules``." msgstr "" #: ../../extending/extending.rst:428 msgid "" "When embedding Python, the :c:func:`!PyInit_spam` function is not called " "automatically unless there's an entry in the :c:data:`PyImport_Inittab` " -"table. To add the module to the initialization table, use " -":c:func:`PyImport_AppendInittab`, optionally followed by an import of the " -"module::" +"table. To add the module to the initialization table, use :c:func:" +"`PyImport_AppendInittab`, optionally followed by an import of the module::" msgstr "" #: ../../extending/extending.rst:433 @@ -699,12 +696,14 @@ msgid "" "\n" " /* Add a built-in module, before Py_Initialize */\n" " if (PyImport_AppendInittab(\"spam\", PyInit_spam) == -1) {\n" -" fprintf(stderr, \"Error: could not extend in-built modules table\\n\");\n" +" fprintf(stderr, \"Error: could not extend in-built modules " +"table\\n\");\n" " exit(1);\n" " }\n" "\n" " /* Pass argv[0] to the Python interpreter */\n" -" status = PyConfig_SetBytesString(&config, &config.program_name, argv[0]);\n" +" status = PyConfig_SetBytesString(&config, &config.program_name, " +"argv[0]);\n" " if (PyStatus_Exception(status)) {\n" " goto exception;\n" " }\n" @@ -741,11 +740,11 @@ msgid "" "If you declare a global variable or a local static one, the module may " "experience unintended side-effects on re-initialisation, for example when " "removing entries from ``sys.modules`` or importing compiled modules into " -"multiple interpreters within a process (or following a :c:func:`fork` without" -" an intervening :c:func:`exec`). If module state is not yet fully " -":ref:`isolated `, authors should consider marking" -" the module as having no support for subinterpreters (via " -":c:macro:`Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED`)." +"multiple interpreters within a process (or following a :c:func:`fork` " +"without an intervening :c:func:`exec`). If module state is not yet fully :" +"ref:`isolated `, authors should consider marking " +"the module as having no support for subinterpreters (via :c:macro:" +"`Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED`)." msgstr "" #: ../../extending/extending.rst:492 @@ -762,11 +761,11 @@ msgstr "" #: ../../extending/extending.rst:502 msgid "" "There are two more things to do before you can use your new extension: " -"compiling and linking it with the Python system. If you use dynamic loading," -" the details may depend on the style of dynamic loading your system uses; see" -" the chapters about building extension modules (chapter :ref:`building`) and " -"additional information that pertains only to building on Windows (chapter " -":ref:`building-on-windows`) for more information about this." +"compiling and linking it with the Python system. If you use dynamic " +"loading, the details may depend on the style of dynamic loading your system " +"uses; see the chapters about building extension modules (chapter :ref:" +"`building`) and additional information that pertains only to building on " +"Windows (chapter :ref:`building-on-windows`) for more information about this." msgstr "" #: ../../extending/extending.rst:509 @@ -775,8 +774,8 @@ msgid "" "permanent part of the Python interpreter, you will have to change the " "configuration setup and rebuild the interpreter. Luckily, this is very " "simple on Unix: just place your file (:file:`spammodule.c` for example) in " -"the :file:`Modules/` directory of an unpacked source distribution, add a line" -" to the file :file:`Modules/Setup.local` describing your file:" +"the :file:`Modules/` directory of an unpacked source distribution, add a " +"line to the file :file:`Modules/Setup.local` describing your file:" msgstr "" #: ../../extending/extending.rst:516 @@ -810,8 +809,8 @@ msgstr "" msgid "" "So far we have concentrated on making C functions callable from Python. The " "reverse is also useful: calling Python functions from C. This is especially " -"the case for libraries that support so-called \"callback\" functions. If a C" -" interface makes use of callbacks, the equivalent Python often needs to " +"the case for libraries that support so-called \"callback\" functions. If a " +"C interface makes use of callbacks, the equivalent Python often needs to " "provide a callback mechanism to the Python programmer; the implementation " "will require calling the Python callback functions from a C callback. Other " "uses are also imaginable." @@ -821,16 +820,16 @@ msgstr "" msgid "" "Fortunately, the Python interpreter is easily called recursively, and there " "is a standard interface to call a Python function. (If you're interested in " -"how to call the Python parser with a particular string as input, see " -":ref:`veryhigh`.)" +"how to call the Python parser with a particular string as input, see :ref:" +"`veryhigh`.)" msgstr "" #: ../../extending/extending.rst:551 msgid "" "Calling a Python function is easy. First, the Python program must somehow " "pass you the Python function object. You should provide a function (or some " -"other interface) to do this. When this function is called, save a pointer to" -" the Python function object (be careful to :c:func:`Py_INCREF` it!) in a " +"other interface) to do this. When this function is called, save a pointer " +"to the Python function object (be careful to :c:func:`Py_INCREF` it!) in a " "global variable --- or wherever you see fit. For example, the following " "function might be part of a module definition::" msgstr "" @@ -847,7 +846,8 @@ msgid "" "\n" " if (PyArg_ParseTuple(args, \"O:set_callback\", &temp)) {\n" " if (!PyCallable_Check(temp)) {\n" -" PyErr_SetString(PyExc_TypeError, \"parameter must be callable\");\n" +" PyErr_SetString(PyExc_TypeError, \"parameter must be " +"callable\");\n" " return NULL;\n" " }\n" " Py_XINCREF(temp); /* Add a reference to new callback */\n" @@ -863,10 +863,10 @@ msgstr "" #: ../../extending/extending.rst:581 msgid "" -"This function must be registered with the interpreter using the " -":c:macro:`METH_VARARGS` flag; this is described in section " -":ref:`methodtable`. The :c:func:`PyArg_ParseTuple` function and its " -"arguments are documented in section :ref:`parsetuple`." +"This function must be registered with the interpreter using the :c:macro:" +"`METH_VARARGS` flag; this is described in section :ref:`methodtable`. The :" +"c:func:`PyArg_ParseTuple` function and its arguments are documented in " +"section :ref:`parsetuple`." msgstr "" #: ../../extending/extending.rst:586 @@ -879,14 +879,14 @@ msgstr "" #: ../../extending/extending.rst:593 msgid "" -"Later, when it is time to call the function, you call the C function " -":c:func:`PyObject_CallObject`. This function has two arguments, both " -"pointers to arbitrary Python objects: the Python function, and the argument " -"list. The argument list must always be a tuple object, whose length is the " -"number of arguments. To call the Python function with no arguments, pass in " -"``NULL``, or an empty tuple; to call it with one argument, pass a singleton " -"tuple. :c:func:`Py_BuildValue` returns a tuple when its format string " -"consists of zero or more format codes between parentheses. For example::" +"Later, when it is time to call the function, you call the C function :c:func:" +"`PyObject_CallObject`. This function has two arguments, both pointers to " +"arbitrary Python objects: the Python function, and the argument list. The " +"argument list must always be a tuple object, whose length is the number of " +"arguments. To call the Python function with no arguments, pass in ``NULL``, " +"or an empty tuple; to call it with one argument, pass a singleton tuple. :c:" +"func:`Py_BuildValue` returns a tuple when its format string consists of zero " +"or more format codes between parentheses. For example::" msgstr "" #: ../../extending/extending.rst:602 @@ -908,18 +908,17 @@ msgid "" ":c:func:`PyObject_CallObject` returns a Python object pointer: this is the " "return value of the Python function. :c:func:`PyObject_CallObject` is " "\"reference-count-neutral\" with respect to its arguments. In the example a " -"new tuple was created to serve as the argument list, which is " -":c:func:`Py_DECREF`\\ -ed immediately after the :c:func:`PyObject_CallObject`" -" call." +"new tuple was created to serve as the argument list, which is :c:func:" +"`Py_DECREF`\\ -ed immediately after the :c:func:`PyObject_CallObject` call." msgstr "" #: ../../extending/extending.rst:620 msgid "" "The return value of :c:func:`PyObject_CallObject` is \"new\": either it is a " "brand new object, or it is an existing object whose reference count has been " -"incremented. So, unless you want to save it in a global variable, you should" -" somehow :c:func:`Py_DECREF` the result, even (especially!) if you are not " -"interested in its value." +"incremented. So, unless you want to save it in a global variable, you " +"should somehow :c:func:`Py_DECREF` the result, even (especially!) if you are " +"not interested in its value." msgstr "" #: ../../extending/extending.rst:626 @@ -976,10 +975,9 @@ msgstr "" #: ../../extending/extending.rst:662 msgid "" -"You may also call a function with keyword arguments by using " -":c:func:`PyObject_Call`, which supports arguments and keyword arguments. As " -"in the above example, we use :c:func:`Py_BuildValue` to construct the " -"dictionary. ::" +"You may also call a function with keyword arguments by using :c:func:" +"`PyObject_Call`, which supports arguments and keyword arguments. As in the " +"above example, we use :c:func:`Py_BuildValue` to construct the dictionary. ::" msgstr "" #: ../../extending/extending.rst:666 @@ -1011,9 +1009,9 @@ msgstr "" msgid "" "The *arg* argument must be a tuple object containing an argument list passed " "from Python to a C function. The *format* argument must be a format string, " -"whose syntax is explained in :ref:`arg-parsing` in the Python/C API Reference" -" Manual. The remaining arguments must be addresses of variables whose type " -"is determined by the format string." +"whose syntax is explained in :ref:`arg-parsing` in the Python/C API " +"Reference Manual. The remaining arguments must be addresses of variables " +"whose type is determined by the format string." msgstr "" #: ../../extending/extending.rst:694 @@ -1054,7 +1052,8 @@ msgstr "" #: ../../extending/extending.rst:725 msgid "" -"ok = PyArg_ParseTuple(args, \"lls\", &k, &l, &s); /* Two longs and a string */\n" +"ok = PyArg_ParseTuple(args, \"lls\", &k, &l, &s); /* Two longs and a string " +"*/\n" " /* Possible Python call: f(1, 2, 'three') */" msgstr "" @@ -1114,26 +1113,27 @@ msgstr "" #: ../../extending/extending.rst:778 msgid "" "int PyArg_ParseTupleAndKeywords(PyObject *arg, PyObject *kwdict,\n" -" const char *format, char * const *kwlist, ...);" +" const char *format, char * const " +"*kwlist, ...);" msgstr "" #: ../../extending/extending.rst:781 msgid "" -"The *arg* and *format* parameters are identical to those of the " -":c:func:`PyArg_ParseTuple` function. The *kwdict* parameter is the " -"dictionary of keywords received as the third parameter from the Python " -"runtime. The *kwlist* parameter is a ``NULL``-terminated list of strings " -"which identify the parameters; the names are matched with the type " -"information from *format* from left to right. On success, " -":c:func:`PyArg_ParseTupleAndKeywords` returns true, otherwise it returns " -"false and raises an appropriate exception." +"The *arg* and *format* parameters are identical to those of the :c:func:" +"`PyArg_ParseTuple` function. The *kwdict* parameter is the dictionary of " +"keywords received as the third parameter from the Python runtime. The " +"*kwlist* parameter is a ``NULL``-terminated list of strings which identify " +"the parameters; the names are matched with the type information from " +"*format* from left to right. On success, :c:func:" +"`PyArg_ParseTupleAndKeywords` returns true, otherwise it returns false and " +"raises an appropriate exception." msgstr "" #: ../../extending/extending.rst:791 msgid "" "Nested tuples cannot be parsed when using keyword arguments! Keyword " -"parameters passed in which are not present in the *kwlist* will cause " -":exc:`TypeError` to be raised." +"parameters passed in which are not present in the *kwlist* will cause :exc:" +"`TypeError` to be raised." msgstr "" #: ../../extending/extending.rst:797 @@ -1155,13 +1155,15 @@ msgid "" " const char *action = \"voom\";\n" " const char *type = \"Norwegian Blue\";\n" "\n" -" static char *kwlist[] = {\"voltage\", \"state\", \"action\", \"type\", NULL};\n" +" static char *kwlist[] = {\"voltage\", \"state\", \"action\", \"type\", " +"NULL};\n" "\n" " if (!PyArg_ParseTupleAndKeywords(args, keywds, \"i|sss\", kwlist,\n" " &voltage, &state, &action, &type))\n" " return NULL;\n" "\n" -" printf(\"-- This parrot wouldn't %s if you put %i Volts through it.\\n\",\n" +" printf(\"-- This parrot wouldn't %s if you put %i Volts through it." +"\\n\",\n" " action, voltage);\n" " printf(\"-- Lovely plumage, the %s -- It's %s!\\n\", type, state);\n" "\n" @@ -1173,7 +1175,8 @@ msgid "" " * only take two PyObject* parameters, and keywdarg_parrot() takes\n" " * three.\n" " */\n" -" {\"parrot\", (PyCFunction)(void(*)(void))keywdarg_parrot, METH_VARARGS | METH_KEYWORDS,\n" +" {\"parrot\", (PyCFunction)(void(*)(void))keywdarg_parrot, METH_VARARGS | " +"METH_KEYWORDS,\n" " \"Print a lovely skit to standard output.\"},\n" " {NULL, NULL, 0, NULL} /* sentinel */\n" "};\n" @@ -1208,16 +1211,16 @@ msgstr "" #: ../../extending/extending.rst:858 msgid "" -"It recognizes a set of format units similar to the ones recognized by " -":c:func:`PyArg_ParseTuple`, but the arguments (which are input to the " -"function, not output) must not be pointers, just values. It returns a new " -"Python object, suitable for returning from a C function called from Python." +"It recognizes a set of format units similar to the ones recognized by :c:" +"func:`PyArg_ParseTuple`, but the arguments (which are input to the function, " +"not output) must not be pointers, just values. It returns a new Python " +"object, suitable for returning from a C function called from Python." msgstr "" #: ../../extending/extending.rst:863 msgid "" -"One difference with :c:func:`PyArg_ParseTuple`: while the latter requires its" -" first argument to be a tuple (since Python argument lists are always " +"One difference with :c:func:`PyArg_ParseTuple`: while the latter requires " +"its first argument to be a tuple (since Python argument lists are always " "represented as tuples internally), :c:func:`Py_BuildValue` does not always " "build a tuple. It builds a tuple only if its format string contains two or " "more format units. If the format string is empty, it returns ``None``; if it " @@ -1268,23 +1271,23 @@ msgstr "" #: ../../extending/extending.rst:905 msgid "" "Every block of memory allocated with :c:func:`malloc` should eventually be " -"returned to the pool of available memory by exactly one call to " -":c:func:`free`. It is important to call :c:func:`free` at the right time. If" -" a block's address is forgotten but :c:func:`free` is not called for it, the " +"returned to the pool of available memory by exactly one call to :c:func:" +"`free`. It is important to call :c:func:`free` at the right time. If a " +"block's address is forgotten but :c:func:`free` is not called for it, the " "memory it occupies cannot be reused until the program terminates. This is " -"called a :dfn:`memory leak`. On the other hand, if a program calls " -":c:func:`free` for a block and then continues to use the block, it creates a " -"conflict with reuse of the block through another :c:func:`malloc` call. This" -" is called :dfn:`using freed memory`. It has the same bad consequences as " -"referencing uninitialized data --- core dumps, wrong results, mysterious " +"called a :dfn:`memory leak`. On the other hand, if a program calls :c:func:" +"`free` for a block and then continues to use the block, it creates a " +"conflict with reuse of the block through another :c:func:`malloc` call. " +"This is called :dfn:`using freed memory`. It has the same bad consequences " +"as referencing uninitialized data --- core dumps, wrong results, mysterious " "crashes." msgstr "" #: ../../extending/extending.rst:916 msgid "" "Common causes of memory leaks are unusual paths through the code. For " -"instance, a function may allocate a block of memory, do some calculation, and" -" then free the block again. Now a change in the requirements for the " +"instance, a function may allocate a block of memory, do some calculation, " +"and then free the block again. Now a change in the requirements for the " "function may add a test to the calculation that detects an error condition " "and can return prematurely from the function. It's easy to forget to free " "the allocated memory block when taking this premature exit, especially when " @@ -1299,13 +1302,13 @@ msgstr "" #: ../../extending/extending.rst:929 msgid "" -"Since Python makes heavy use of :c:func:`malloc` and :c:func:`free`, it needs" -" a strategy to avoid memory leaks as well as the use of freed memory. The " -"chosen method is called :dfn:`reference counting`. The principle is simple: " -"every object contains a counter, which is incremented when a reference to the" -" object is stored somewhere, and which is decremented when a reference to it " -"is deleted. When the counter reaches zero, the last reference to the object " -"has been deleted and the object is freed." +"Since Python makes heavy use of :c:func:`malloc` and :c:func:`free`, it " +"needs a strategy to avoid memory leaks as well as the use of freed memory. " +"The chosen method is called :dfn:`reference counting`. The principle is " +"simple: every object contains a counter, which is incremented when a " +"reference to the object is stored somewhere, and which is decremented when a " +"reference to it is deleted. When the counter reaches zero, the last " +"reference to the object has been deleted and the object is freed." msgstr "" #: ../../extending/extending.rst:937 @@ -1314,12 +1317,12 @@ msgid "" "(Sometimes, reference counting is also referred to as a garbage collection " "strategy, hence the use of \"automatic\" to distinguish the two.) The big " "advantage of automatic garbage collection is that the user doesn't need to " -"call :c:func:`free` explicitly. (Another claimed advantage is an improvement" -" in speed or memory usage --- this is no hard fact however.) The " +"call :c:func:`free` explicitly. (Another claimed advantage is an " +"improvement in speed or memory usage --- this is no hard fact however.) The " "disadvantage is that for C, there is no truly portable automatic garbage " "collector, while reference counting can be implemented portably (as long as " -"the functions :c:func:`malloc` and :c:func:`free` are available --- which the" -" C Standard guarantees). Maybe some day a sufficiently portable automatic " +"the functions :c:func:`malloc` and :c:func:`free` are available --- which " +"the C Standard guarantees). Maybe some day a sufficiently portable automatic " "garbage collector will be available for C. Until then, we'll have to live " "with reference counts." msgstr "" @@ -1340,10 +1343,10 @@ msgstr "" #: ../../extending/extending.rst:960 msgid "" -"The cycle detector is able to detect garbage cycles and can reclaim them. The" -" :mod:`gc` module exposes a way to run the detector (the :func:`~gc.collect` " -"function), as well as configuration interfaces and the ability to disable the" -" detector at runtime." +"The cycle detector is able to detect garbage cycles and can reclaim them. " +"The :mod:`gc` module exposes a way to run the detector (the :func:`~gc." +"collect` function), as well as configuration interfaces and the ability to " +"disable the detector at runtime." msgstr "" #: ../../extending/extending.rst:969 @@ -1352,12 +1355,13 @@ msgstr "" #: ../../extending/extending.rst:971 msgid "" -"There are two macros, ``Py_INCREF(x)`` and ``Py_DECREF(x)``, which handle the" -" incrementing and decrementing of the reference count. :c:func:`Py_DECREF` " -"also frees the object when the count reaches zero. For flexibility, it " -"doesn't call :c:func:`free` directly --- rather, it makes a call through a " -"function pointer in the object's :dfn:`type object`. For this purpose (and " -"others), every object also contains a pointer to its type object." +"There are two macros, ``Py_INCREF(x)`` and ``Py_DECREF(x)``, which handle " +"the incrementing and decrementing of the reference count. :c:func:" +"`Py_DECREF` also frees the object when the count reaches zero. For " +"flexibility, it doesn't call :c:func:`free` directly --- rather, it makes a " +"call through a function pointer in the object's :dfn:`type object`. For " +"this purpose (and others), every object also contains a pointer to its type " +"object." msgstr "" #: ../../extending/extending.rst:978 @@ -1367,10 +1371,10 @@ msgid "" "object; however, you can :dfn:`own a reference` to an object. An object's " "reference count is now defined as the number of owned references to it. The " "owner of a reference is responsible for calling :c:func:`Py_DECREF` when the " -"reference is no longer needed. Ownership of a reference can be transferred." -" There are three ways to dispose of an owned reference: pass it on, store " -"it, or call :c:func:`Py_DECREF`. Forgetting to dispose of an owned reference " -"creates a memory leak." +"reference is no longer needed. Ownership of a reference can be " +"transferred. There are three ways to dispose of an owned reference: pass it " +"on, store it, or call :c:func:`Py_DECREF`. Forgetting to dispose of an owned " +"reference creates a memory leak." msgstr "" #: ../../extending/extending.rst:987 @@ -1378,8 +1382,8 @@ msgid "" "It is also possible to :dfn:`borrow` [#]_ a reference to an object. The " "borrower of a reference should not call :c:func:`Py_DECREF`. The borrower " "must not hold on to the object longer than the owner from which it was " -"borrowed. Using a borrowed reference after the owner has disposed of it risks" -" using freed memory and should be avoided completely [#]_." +"borrowed. Using a borrowed reference after the owner has disposed of it " +"risks using freed memory and should be avoided completely [#]_." msgstr "" #: ../../extending/extending.rst:993 @@ -1395,9 +1399,9 @@ msgstr "" #: ../../extending/extending.rst:1001 msgid "" -"A borrowed reference can be changed into an owned reference by calling " -":c:func:`Py_INCREF`. This does not affect the status of the owner from which" -" the reference was borrowed --- it creates a new owned reference, and gives " +"A borrowed reference can be changed into an owned reference by calling :c:" +"func:`Py_INCREF`. This does not affect the status of the owner from which " +"the reference was borrowed --- it creates a new owned reference, and gives " "full owner responsibilities (the new owner must dispose of the reference " "properly, as well as the previous owner)." msgstr "" @@ -1416,22 +1420,23 @@ msgstr "" #: ../../extending/extending.rst:1017 msgid "" "Most functions that return a reference to an object pass on ownership with " -"the reference. In particular, all functions whose function it is to create a" -" new object, such as :c:func:`PyLong_FromLong` and :c:func:`Py_BuildValue`, " +"the reference. In particular, all functions whose function it is to create " +"a new object, such as :c:func:`PyLong_FromLong` and :c:func:`Py_BuildValue`, " "pass ownership to the receiver. Even if the object is not actually new, you " -"still receive ownership of a new reference to that object. For instance, " -":c:func:`PyLong_FromLong` maintains a cache of popular values and can return " -"a reference to a cached item." +"still receive ownership of a new reference to that object. For instance, :c:" +"func:`PyLong_FromLong` maintains a cache of popular values and can return a " +"reference to a cached item." msgstr "" #: ../../extending/extending.rst:1025 msgid "" "Many functions that extract objects from other objects also transfer " -"ownership with the reference, for instance :c:func:`PyObject_GetAttrString`." -" The picture is less clear, here, however, since a few common routines are " -"exceptions: :c:func:`PyTuple_GetItem`, :c:func:`PyList_GetItem`, " -":c:func:`PyDict_GetItem`, and :c:func:`PyDict_GetItemString` all return " -"references that you borrow from the tuple, list or dictionary." +"ownership with the reference, for instance :c:func:" +"`PyObject_GetAttrString`. The picture is less clear, here, however, since a " +"few common routines are exceptions: :c:func:`PyTuple_GetItem`, :c:func:" +"`PyList_GetItem`, :c:func:`PyDict_GetItem`, and :c:func:" +"`PyDict_GetItemString` all return references that you borrow from the tuple, " +"list or dictionary." msgstr "" #: ../../extending/extending.rst:1032 @@ -1446,17 +1451,17 @@ msgid "" "When you pass an object reference into another function, in general, the " "function borrows the reference from you --- if it needs to store it, it will " "use :c:func:`Py_INCREF` to become an independent owner. There are exactly " -"two important exceptions to this rule: :c:func:`PyTuple_SetItem` and " -":c:func:`PyList_SetItem`. These functions take over ownership of the item " -"passed to them --- even if they fail! (Note that :c:func:`PyDict_SetItem` " -"and friends don't take over ownership --- they are \"normal.\")" +"two important exceptions to this rule: :c:func:`PyTuple_SetItem` and :c:func:" +"`PyList_SetItem`. These functions take over ownership of the item passed to " +"them --- even if they fail! (Note that :c:func:`PyDict_SetItem` and friends " +"don't take over ownership --- they are \"normal.\")" msgstr "" #: ../../extending/extending.rst:1044 msgid "" "When a C function is called from Python, it borrows references to its " -"arguments from the caller. The caller owns a reference to the object, so the" -" borrowed reference's lifetime is guaranteed until the function returns. " +"arguments from the caller. The caller owns a reference to the object, so " +"the borrowed reference's lifetime is guaranteed until the function returns. " "Only when such a borrowed reference must be stored or passed on, it must be " "turned into an owned reference by calling :c:func:`Py_INCREF`." msgstr "" @@ -1509,18 +1514,18 @@ msgstr "" #: ../../extending/extending.rst:1080 msgid "" "Let's follow the control flow into :c:func:`PyList_SetItem`. The list owns " -"references to all its items, so when item 1 is replaced, it has to dispose of" -" the original item 1. Now let's suppose the original item 1 was an instance " -"of a user-defined class, and let's further suppose that the class defined a " -":meth:`!__del__` method. If this class instance has a reference count of 1, " -"disposing of it will call its :meth:`!__del__` method. Internally, " -":c:func:`PyList_SetItem` calls :c:func:`Py_DECREF` on the replaced item, " -"which invokes replaced item's corresponding " -":c:member:`~PyTypeObject.tp_dealloc` function. During deallocation, " -":c:member:`~PyTypeObject.tp_dealloc` calls " -":c:member:`~PyTypeObject.tp_finalize`, which is mapped to the " -":meth:`!__del__` method for class instances (see :pep:`442`). This entire " -"sequence happens synchronously within the :c:func:`PyList_SetItem` call." +"references to all its items, so when item 1 is replaced, it has to dispose " +"of the original item 1. Now let's suppose the original item 1 was an " +"instance of a user-defined class, and let's further suppose that the class " +"defined a :meth:`!__del__` method. If this class instance has a reference " +"count of 1, disposing of it will call its :meth:`!__del__` method. " +"Internally, :c:func:`PyList_SetItem` calls :c:func:`Py_DECREF` on the " +"replaced item, which invokes replaced item's corresponding :c:member:" +"`~PyTypeObject.tp_dealloc` function. During deallocation, :c:member:" +"`~PyTypeObject.tp_dealloc` calls :c:member:`~PyTypeObject.tp_finalize`, " +"which is mapped to the :meth:`!__del__` method for class instances (see :pep:" +"`442`). This entire sequence happens synchronously within the :c:func:" +"`PyList_SetItem` call." msgstr "" #: ../../extending/extending.rst:1094 @@ -1529,9 +1534,9 @@ msgid "" "arbitrary Python code. Could it perhaps do something to invalidate the " "reference to ``item`` in :c:func:`!bug`? You bet! Assuming that the list " "passed into :c:func:`!bug` is accessible to the :meth:`!__del__` method, it " -"could execute a statement to the effect of ``del list[0]``, and assuming this" -" was the last reference to that object, it would free the memory associated " -"with it, thereby invalidating ``item``." +"could execute a statement to the effect of ``del list[0]``, and assuming " +"this was the last reference to that object, it would free the memory " +"associated with it, thereby invalidating ``item``." msgstr "" #: ../../extending/extending.rst:1102 @@ -1557,8 +1562,8 @@ msgstr "" #: ../../extending/extending.rst:1116 msgid "" "This is a true story. An older version of Python contained variants of this " -"bug and someone spent a considerable amount of time in a C debugger to figure" -" out why his :meth:`!__del__` methods would fail..." +"bug and someone spent a considerable amount of time in a C debugger to " +"figure out why his :meth:`!__del__` methods would fail..." msgstr "" #: ../../extending/extending.rst:1120 @@ -1567,11 +1572,11 @@ msgid "" "threads. Normally, multiple threads in the Python interpreter can't get in " "each other's way, because there is a :term:`global lock ` protecting Python's entire object space. However, it is possible to " -"temporarily release this lock using the macro " -":c:macro:`Py_BEGIN_ALLOW_THREADS`, and to re-acquire it using " -":c:macro:`Py_END_ALLOW_THREADS`. This is common around blocking I/O calls, " -"to let other threads use the processor while waiting for the I/O to complete." -" Obviously, the following function has the same problem as the previous one::" +"temporarily release this lock using the macro :c:macro:" +"`Py_BEGIN_ALLOW_THREADS`, and to re-acquire it using :c:macro:" +"`Py_END_ALLOW_THREADS`. This is common around blocking I/O calls, to let " +"other threads use the processor while waiting for the I/O to complete. " +"Obviously, the following function has the same problem as the previous one::" msgstr "" #: ../../extending/extending.rst:1130 @@ -1599,22 +1604,22 @@ msgid "" "return ``NULL`` only to indicate that an exception occurred. The reason for " "not testing for ``NULL`` arguments is that functions often pass the objects " "they receive on to other function --- if each function were to test for " -"``NULL``, there would be a lot of redundant tests and the code would run more" -" slowly." +"``NULL``, there would be a lot of redundant tests and the code would run " +"more slowly." msgstr "" #: ../../extending/extending.rst:1154 msgid "" -"It is better to test for ``NULL`` only at the \"source:\" when a pointer that" -" may be ``NULL`` is received, for example, from :c:func:`malloc` or from a " -"function that may raise an exception." +"It is better to test for ``NULL`` only at the \"source:\" when a pointer " +"that may be ``NULL`` is received, for example, from :c:func:`malloc` or from " +"a function that may raise an exception." msgstr "" #: ../../extending/extending.rst:1158 msgid "" "The macros :c:func:`Py_INCREF` and :c:func:`Py_DECREF` do not check for " -"``NULL`` pointers --- however, their variants :c:func:`Py_XINCREF` and " -":c:func:`Py_XDECREF` do." +"``NULL`` pointers --- however, their variants :c:func:`Py_XINCREF` and :c:" +"func:`Py_XDECREF` do." msgstr "" #: ../../extending/extending.rst:1162 @@ -1647,13 +1652,13 @@ msgstr "" msgid "" "It is possible to write extension modules in C++. Some restrictions apply. " "If the main program (the Python interpreter) is compiled and linked by the C " -"compiler, global or static objects with constructors cannot be used. This is" -" not a problem if the main program is linked by the C++ compiler. Functions " -"that will be called by the Python interpreter (in particular, module " -"initialization functions) have to be declared using ``extern \"C\"``. It is " -"unnecessary to enclose the Python header files in ``extern \"C\" {...}`` --- " -"they use this form already if the symbol ``__cplusplus`` is defined (all " -"recent C++ compilers define this symbol)." +"compiler, global or static objects with constructors cannot be used. This " +"is not a problem if the main program is linked by the C++ compiler. " +"Functions that will be called by the Python interpreter (in particular, " +"module initialization functions) have to be declared using ``extern \"C\"``. " +"It is unnecessary to enclose the Python header files in ``extern \"C\" {...}" +"`` --- they use this form already if the symbol ``__cplusplus`` is defined " +"(all recent C++ compilers define this symbol)." msgstr "" #: ../../extending/extending.rst:1199 @@ -1663,28 +1668,28 @@ msgstr "" #: ../../extending/extending.rst:1204 msgid "" "Many extension modules just provide new functions and types to be used from " -"Python, but sometimes the code in an extension module can be useful for other" -" extension modules. For example, an extension module could implement a type " -"\"collection\" which works like lists without order. Just like the standard " -"Python list type has a C API which permits extension modules to create and " -"manipulate lists, this new collection type should have a set of C functions " -"for direct manipulation from other extension modules." +"Python, but sometimes the code in an extension module can be useful for " +"other extension modules. For example, an extension module could implement a " +"type \"collection\" which works like lists without order. Just like the " +"standard Python list type has a C API which permits extension modules to " +"create and manipulate lists, this new collection type should have a set of C " +"functions for direct manipulation from other extension modules." msgstr "" #: ../../extending/extending.rst:1212 msgid "" "At first sight this seems easy: just write the functions (without declaring " -"them ``static``, of course), provide an appropriate header file, and document" -" the C API. And in fact this would work if all extension modules were always " -"linked statically with the Python interpreter. When modules are used as " -"shared libraries, however, the symbols defined in one module may not be " -"visible to another module. The details of visibility depend on the operating " -"system; some systems use one global namespace for the Python interpreter and " -"all extension modules (Windows, for example), whereas others require an " -"explicit list of imported symbols at module link time (AIX is one example), " -"or offer a choice of different strategies (most Unices). And even if symbols " -"are globally visible, the module whose functions one wishes to call might not" -" have been loaded yet!" +"them ``static``, of course), provide an appropriate header file, and " +"document the C API. And in fact this would work if all extension modules " +"were always linked statically with the Python interpreter. When modules are " +"used as shared libraries, however, the symbols defined in one module may not " +"be visible to another module. The details of visibility depend on the " +"operating system; some systems use one global namespace for the Python " +"interpreter and all extension modules (Windows, for example), whereas others " +"require an explicit list of imported symbols at module link time (AIX is one " +"example), or offer a choice of different strategies (most Unices). And even " +"if symbols are globally visible, the module whose functions one wishes to " +"call might not have been loaded yet!" msgstr "" #: ../../extending/extending.rst:1224 @@ -1713,8 +1718,8 @@ msgstr "" msgid "" "There are many ways in which Capsules can be used to export the C API of an " "extension module. Each function could get its own Capsule, or all C API " -"pointers could be stored in an array whose address is published in a Capsule." -" And the various tasks of storing and retrieving the pointers can be " +"pointers could be stored in an array whose address is published in a " +"Capsule. And the various tasks of storing and retrieving the pointers can be " "distributed in different ways between the module providing the code and the " "client modules." msgstr "" @@ -1724,8 +1729,8 @@ msgid "" "Whichever method you choose, it's important to name your Capsules properly. " "The function :c:func:`PyCapsule_New` takes a name parameter (:c:expr:`const " "char \\*`); you're permitted to pass in a ``NULL`` name, but we strongly " -"encourage you to specify a name. Properly named Capsules provide a degree of" -" runtime type-safety; there is no feasible way to tell one unnamed Capsule " +"encourage you to specify a name. Properly named Capsules provide a degree " +"of runtime type-safety; there is no feasible way to tell one unnamed Capsule " "from another." msgstr "" @@ -1741,8 +1746,8 @@ msgstr "" #: ../../extending/extending.rst:1257 msgid "" -"The convenience function :c:func:`PyCapsule_Import` makes it easy to load a C" -" API provided via a Capsule, but only if the Capsule's name matches this " +"The convenience function :c:func:`PyCapsule_Import` makes it easy to load a " +"C API provided via a Capsule, but only if the Capsule's name matches this " "convention. This behavior gives C API users a high degree of certainty that " "the Capsule they load contains the correct C API." msgstr "" @@ -1750,12 +1755,12 @@ msgstr "" #: ../../extending/extending.rst:1262 msgid "" "The following example demonstrates an approach that puts most of the burden " -"on the writer of the exporting module, which is appropriate for commonly used" -" library modules. It stores all C API pointers (just one in the example!) in " -"an array of :c:expr:`void` pointers which becomes the value of a Capsule. The" -" header file corresponding to the module provides a macro that takes care of " -"importing the module and retrieving its C API pointers; client modules only " -"have to call this macro before accessing the C API." +"on the writer of the exporting module, which is appropriate for commonly " +"used library modules. It stores all C API pointers (just one in the " +"example!) in an array of :c:expr:`void` pointers which becomes the value of " +"a Capsule. The header file corresponding to the module provides a macro that " +"takes care of importing the module and retrieving its C API pointers; client " +"modules only have to call this macro before accessing the C API." msgstr "" #: ../../extending/extending.rst:1270 @@ -1824,9 +1829,9 @@ msgstr "" #: ../../extending/extending.rst:1309 msgid "" "The ``#define`` is used to tell the header file that it is being included in " -"the exporting module, not a client module. Finally, the module's " -":c:data:`mod_exec ` function must take care of initializing the " -"C API pointer array::" +"the exporting module, not a client module. Finally, the module's :c:data:" +"`mod_exec ` function must take care of initializing the C API " +"pointer array::" msgstr "" #: ../../extending/extending.rst:1313 @@ -1841,7 +1846,8 @@ msgid "" " PySpam_API[PySpam_System_NUM] = (void *)PySpam_System;\n" "\n" " /* Create a Capsule containing the API pointer array's address */\n" -" c_api_object = PyCapsule_New((void *)PySpam_API, \"spam._C_API\", NULL);\n" +" c_api_object = PyCapsule_New((void *)PySpam_API, \"spam._C_API\", " +"NULL);\n" "\n" " if (PyModule_Add(m, \"_C_API\", c_api_object) < 0) {\n" " return -1;\n" @@ -1893,7 +1899,8 @@ msgid "" "static void **PySpam_API;\n" "\n" "#define PySpam_System \\\n" -" (*(PySpam_System_RETURN (*)PySpam_System_PROTO) PySpam_API[PySpam_System_NUM])\n" +" (*(PySpam_System_RETURN (*)PySpam_System_PROTO) " +"PySpam_API[PySpam_System_NUM])\n" "\n" "/* Return -1 on error, 0 on success.\n" " * PyCapsule_Import will set an exception if there's an error.\n" @@ -1916,9 +1923,9 @@ msgstr "" #: ../../extending/extending.rst:1386 msgid "" -"All that a client module must do in order to have access to the function " -":c:func:`!PySpam_System` is to call the function (or rather macro) " -":c:func:`!import_spam` in its :c:data:`mod_exec ` function::" +"All that a client module must do in order to have access to the function :c:" +"func:`!PySpam_System` is to call the function (or rather macro) :c:func:`!" +"import_spam` in its :c:data:`mod_exec ` function::" msgstr "" #: ../../extending/extending.rst:1390 @@ -1957,8 +1964,8 @@ msgstr "Fußnoten" #: ../../extending/extending.rst:1413 msgid "" -"An interface for this function already exists in the standard module " -":mod:`os` --- it was chosen as a simple and straightforward example." +"An interface for this function already exists in the standard module :mod:" +"`os` --- it was chosen as a simple and straightforward example." msgstr "" #: ../../extending/extending.rst:1416 @@ -1976,8 +1983,8 @@ msgstr "" #: ../../extending/extending.rst:1423 msgid "" -"These guarantees don't hold when you use the \"old\" style calling convention" -" --- this is still found in much existing code." +"These guarantees don't hold when you use the \"old\" style calling " +"convention --- this is still found in much existing code." msgstr "" #: ../../extending/extending.rst:591 diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po index 00815032..29afe7a1 100644 --- a/extending/newtypes_tutorial.po +++ b/extending/newtypes_tutorial.po @@ -26,11 +26,11 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:14 msgid "" -"Python allows the writer of a C extension module to define new types that can" -" be manipulated from Python code, much like the built-in :class:`str` and " -":class:`list` types. The code for all extension types follows a pattern, but" -" there are some details that you need to understand before you can get " -"started. This document is a gentle introduction to the topic." +"Python allows the writer of a C extension module to define new types that " +"can be manipulated from Python code, much like the built-in :class:`str` " +"and :class:`list` types. The code for all extension types follows a " +"pattern, but there are some details that you need to understand before you " +"can get started. This document is a gentle introduction to the topic." msgstr "" #: ../../extending/newtypes_tutorial.rst:24 @@ -39,11 +39,11 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:26 msgid "" -"The :term:`CPython` runtime sees all Python objects as variables of type " -":c:expr:`PyObject*`, which serves as a \"base type\" for all Python objects. " -"The :c:type:`PyObject` structure itself only contains the object's " -":term:`reference count` and a pointer to the object's \"type object\". This " -"is where the action is; the type object determines which (C) functions get " +"The :term:`CPython` runtime sees all Python objects as variables of type :c:" +"expr:`PyObject*`, which serves as a \"base type\" for all Python objects. " +"The :c:type:`PyObject` structure itself only contains the object's :term:" +"`reference count` and a pointer to the object's \"type object\". This is " +"where the action is; the type object determines which (C) functions get " "called by the interpreter when, for instance, an attribute gets looked up on " "an object, a method called, or it is multiplied by another object. These C " "functions are called \"type methods\"." @@ -51,23 +51,23 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:35 msgid "" -"So, if you want to define a new extension type, you need to create a new type" -" object." +"So, if you want to define a new extension type, you need to create a new " +"type object." msgstr "" #: ../../extending/newtypes_tutorial.rst:38 msgid "" -"This sort of thing can only be explained by example, so here's a minimal, but" -" complete, module that defines a new type named :class:`!Custom` inside a C " -"extension module :mod:`!custom`:" +"This sort of thing can only be explained by example, so here's a minimal, " +"but complete, module that defines a new type named :class:`!Custom` inside a " +"C extension module :mod:`!custom`:" msgstr "" #: ../../extending/newtypes_tutorial.rst:43 msgid "" -"What we're showing here is the traditional way of defining *static* extension" -" types. It should be adequate for most uses. The C API also allows defining" -" heap-allocated extension types using the :c:func:`PyType_FromSpec` function," -" which isn't covered in this tutorial." +"What we're showing here is the traditional way of defining *static* " +"extension types. It should be adequate for most uses. The C API also " +"allows defining heap-allocated extension types using the :c:func:" +"`PyType_FromSpec` function, which isn't covered in this tutorial." msgstr "" #: ../../extending/newtypes_tutorial.rst:48 @@ -97,7 +97,8 @@ msgid "" " return -1;\n" " }\n" "\n" -" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) {\n" +" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " +"{\n" " return -1;\n" " }\n" "\n" @@ -107,7 +108,8 @@ msgid "" "static PyModuleDef_Slot custom_module_slots[] = {\n" " {Py_mod_exec, custom_module_exec},\n" " // Just use this while using static types\n" -" {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" " {0, NULL}\n" "};\n" "\n" @@ -140,9 +142,9 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:55 msgid "" -"How the :class:`!Custom` **type** behaves: this is the ``CustomType`` struct," -" which defines a set of flags and function pointers that the interpreter " -"inspects when specific operations are requested." +"How the :class:`!Custom` **type** behaves: this is the ``CustomType`` " +"struct, which defines a set of flags and function pointers that the " +"interpreter inspects when specific operations are requested." msgstr "" #: ../../extending/newtypes_tutorial.rst:58 @@ -166,8 +168,8 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:69 msgid "" -"This is what a Custom object will contain. ``PyObject_HEAD`` is mandatory at" -" the start of each object struct and defines a field called ``ob_base`` of " +"This is what a Custom object will contain. ``PyObject_HEAD`` is mandatory " +"at the start of each object struct and defines a field called ``ob_base`` of " "type :c:type:`PyObject`, containing a pointer to a type object and a " "reference count (these can be accessed using the macros :c:macro:`Py_TYPE` " "and :c:macro:`Py_REFCNT` respectively). The reason for the macro is to " @@ -177,8 +179,8 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:78 msgid "" -"There is no semicolon above after the :c:macro:`PyObject_HEAD` macro. Be wary" -" of adding one by accident: some compilers will complain." +"There is no semicolon above after the :c:macro:`PyObject_HEAD` macro. Be " +"wary of adding one by accident: some compilers will complain." msgstr "" #: ../../extending/newtypes_tutorial.rst:81 @@ -248,8 +250,8 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:121 msgid "" -"The name of our type. This will appear in the default textual representation" -" of our objects and in some error messages, for example:" +"The name of our type. This will appear in the default textual " +"representation of our objects and in some error messages, for example:" msgstr "" #: ../../extending/newtypes_tutorial.rst:124 @@ -263,10 +265,10 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:131 msgid "" "Note that the name is a dotted name that includes both the module name and " -"the name of the type within the module. The module in this case is " -":mod:`!custom` and the type is :class:`!Custom`, so we set the type name to " -":class:`!custom.Custom`. Using the real dotted import path is important to " -"make your type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::" +"the name of the type within the module. The module in this case is :mod:`!" +"custom` and the type is :class:`!Custom`, so we set the type name to :class:" +"`!custom.Custom`. Using the real dotted import path is important to make " +"your type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::" msgstr "" #: ../../extending/newtypes_tutorial.rst:137 @@ -277,8 +279,8 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:140 msgid "" -"This is so that Python knows how much memory to allocate when creating new " -":class:`!Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is only " +"This is so that Python knows how much memory to allocate when creating new :" +"class:`!Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is only " "used for variable-sized objects and should otherwise be zero." msgstr "" @@ -286,14 +288,14 @@ msgstr "" msgid "" "If you want your type to be subclassable from Python, and your type has the " "same :c:member:`~PyTypeObject.tp_basicsize` as its base type, you may have " -"problems with multiple inheritance. A Python subclass of your type will have" -" to list your type first in its :attr:`~type.__bases__`, or else it will not " -"be able to call your type's :meth:`~object.__new__` method without getting an" -" error. You can avoid this problem by ensuring that your type has a larger " -"value for :c:member:`~PyTypeObject.tp_basicsize` than its base type does. " -"Most of the time, this will be true anyway, because either your base type " -"will be :class:`object`, or else you will be adding data members to your base" -" type, and therefore increasing its size." +"problems with multiple inheritance. A Python subclass of your type will " +"have to list your type first in its :attr:`~type.__bases__`, or else it will " +"not be able to call your type's :meth:`~object.__new__` method without " +"getting an error. You can avoid this problem by ensuring that your type has " +"a larger value for :c:member:`~PyTypeObject.tp_basicsize` than its base type " +"does. Most of the time, this will be true anyway, because either your base " +"type will be :class:`object`, or else you will be adding data members to " +"your base type, and therefore increasing its size." msgstr "" #: ../../extending/newtypes_tutorial.rst:156 @@ -306,9 +308,9 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:160 msgid "" -"All types should include this constant in their flags. It enables all of the" -" members defined until at least Python 3.3. If you need further members, you" -" will need to OR the corresponding flags." +"All types should include this constant in their flags. It enables all of " +"the members defined until at least Python 3.3. If you need further members, " +"you will need to OR the corresponding flags." msgstr "" #: ../../extending/newtypes_tutorial.rst:164 @@ -322,11 +324,11 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:168 msgid "" -"To enable object creation, we have to provide a " -":c:member:`~PyTypeObject.tp_new` handler. This is the equivalent of the " -"Python method :meth:`~object.__new__`, but has to be specified explicitly. " -"In this case, we can just use the default implementation provided by the API " -"function :c:func:`PyType_GenericNew`. ::" +"To enable object creation, we have to provide a :c:member:`~PyTypeObject." +"tp_new` handler. This is the equivalent of the Python method :meth:`~object." +"__new__`, but has to be specified explicitly. In this case, we can just use " +"the default implementation provided by the API function :c:func:" +"`PyType_GenericNew`. ::" msgstr "" #: ../../extending/newtypes_tutorial.rst:173 @@ -335,8 +337,8 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:175 msgid "" -"Everything else in the file should be familiar, except for some code in " -":c:func:`!custom_module_exec`::" +"Everything else in the file should be familiar, except for some code in :c:" +"func:`!custom_module_exec`::" msgstr "" #: ../../extending/newtypes_tutorial.rst:178 @@ -348,9 +350,9 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:182 msgid "" -"This initializes the :class:`!Custom` type, filling in a number of members to" -" the appropriate default values, including :c:member:`~PyObject.ob_type` that" -" we initially set to ``NULL``. ::" +"This initializes the :class:`!Custom` type, filling in a number of members " +"to the appropriate default values, including :c:member:`~PyObject.ob_type` " +"that we initially set to ``NULL``. ::" msgstr "" #: ../../extending/newtypes_tutorial.rst:186 @@ -362,8 +364,8 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:190 msgid "" -"This adds the type to the module dictionary. This allows us to create " -":class:`!Custom` instances by calling the :class:`!Custom` class:" +"This adds the type to the module dictionary. This allows us to create :" +"class:`!Custom` instances by calling the :class:`!Custom` class:" msgstr "" #: ../../extending/newtypes_tutorial.rst:193 @@ -431,9 +433,9 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:229 msgid "" -"Let's extend the basic example to add some data and methods. Let's also make" -" the type usable as a base class. We'll create a new module, :mod:`!custom2` " -"that adds these capabilities:" +"Let's extend the basic example to add some data and methods. Let's also " +"make the type usable as a base class. We'll create a new module, :mod:`!" +"custom2` that adds these capabilities:" msgstr "" #: ../../extending/newtypes_tutorial.rst:233 @@ -553,7 +555,8 @@ msgid "" " return -1;\n" " }\n" "\n" -" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) {\n" +" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " +"{\n" " return -1;\n" " }\n" "\n" @@ -562,7 +565,8 @@ msgid "" "\n" "static PyModuleDef_Slot custom_module_slots[] = {\n" " {Py_mod_exec, custom_module_exec},\n" -" {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" " {0, NULL}\n" "};\n" "\n" @@ -635,13 +639,13 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:267 msgid "" -"This method first clears the reference counts of the two Python attributes. " -":c:func:`Py_XDECREF` correctly handles the case where its argument is " +"This method first clears the reference counts of the two Python attributes. :" +"c:func:`Py_XDECREF` correctly handles the case where its argument is " "``NULL`` (which might happen here if ``tp_new`` failed midway). It then " "calls the :c:member:`~PyTypeObject.tp_free` member of the object's type " "(computed by ``Py_TYPE(self)``) to free the object's memory. Note that the " -"object's type might not be :class:`!CustomType`, because the object may be an" -" instance of a subclass." +"object's type might not be :class:`!CustomType`, because the object may be " +"an instance of a subclass." msgstr "" #: ../../extending/newtypes_tutorial.rst:277 @@ -720,13 +724,12 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:330 msgid "" "The ``tp_new`` handler is responsible for creating (as opposed to " -"initializing) objects of the type. It is exposed in Python as the " -":meth:`~object.__new__` method. It is not required to define a ``tp_new`` " -"member, and indeed many extension types will simply reuse " -":c:func:`PyType_GenericNew` as done in the first version of the " -":class:`!Custom` type above. In this case, we use the ``tp_new`` handler to " -"initialize the ``first`` and ``last`` attributes to non-``NULL`` default " -"values." +"initializing) objects of the type. It is exposed in Python as the :meth:" +"`~object.__new__` method. It is not required to define a ``tp_new`` member, " +"and indeed many extension types will simply reuse :c:func:" +"`PyType_GenericNew` as done in the first version of the :class:`!Custom` " +"type above. In this case, we use the ``tp_new`` handler to initialize the " +"``first`` and ``last`` attributes to non-``NULL`` default values." msgstr "" #: ../../extending/newtypes_tutorial.rst:338 @@ -735,8 +738,8 @@ msgid "" "``CustomType``, if a subclass is instantiated) and any arguments passed when " "the type was called, and is expected to return the instance created. " "``tp_new`` handlers always accept positional and keyword arguments, but they " -"often ignore the arguments, leaving the argument handling to initializer " -"(a.k.a. ``tp_init`` in C or ``__init__`` in Python) methods." +"often ignore the arguments, leaving the argument handling to initializer (a." +"k.a. ``tp_init`` in C or ``__init__`` in Python) methods." msgstr "" #: ../../extending/newtypes_tutorial.rst:346 @@ -757,29 +760,29 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:354 msgid "" -"Since memory allocation may fail, we must check the " -":c:member:`~PyTypeObject.tp_alloc` result against ``NULL`` before proceeding." +"Since memory allocation may fail, we must check the :c:member:`~PyTypeObject." +"tp_alloc` result against ``NULL`` before proceeding." msgstr "" #: ../../extending/newtypes_tutorial.rst:358 msgid "" -"We didn't fill the :c:member:`~PyTypeObject.tp_alloc` slot ourselves. Rather " -":c:func:`PyType_Ready` fills it for us by inheriting it from our base class, " -"which is :class:`object` by default. Most types use the default allocation " -"strategy." +"We didn't fill the :c:member:`~PyTypeObject.tp_alloc` slot ourselves. " +"Rather :c:func:`PyType_Ready` fills it for us by inheriting it from our base " +"class, which is :class:`object` by default. Most types use the default " +"allocation strategy." msgstr "" #: ../../extending/newtypes_tutorial.rst:364 msgid "" -"If you are creating a co-operative :c:member:`~PyTypeObject.tp_new` (one that" -" calls a base type's :c:member:`~PyTypeObject.tp_new` or " -":meth:`~object.__new__`), you must *not* try to determine what method to call" -" using method resolution order at runtime. Always statically determine what " -"type you are going to call, and call its :c:member:`~PyTypeObject.tp_new` " -"directly, or via ``type->tp_base->tp_new``. If you do not do this, Python " -"subclasses of your type that also inherit from other Python-defined classes " -"may not work correctly. (Specifically, you may not be able to create " -"instances of such subclasses without getting a :exc:`TypeError`.)" +"If you are creating a co-operative :c:member:`~PyTypeObject.tp_new` (one " +"that calls a base type's :c:member:`~PyTypeObject.tp_new` or :meth:`~object." +"__new__`), you must *not* try to determine what method to call using method " +"resolution order at runtime. Always statically determine what type you are " +"going to call, and call its :c:member:`~PyTypeObject.tp_new` directly, or " +"via ``type->tp_base->tp_new``. If you do not do this, Python subclasses of " +"your type that also inherit from other Python-defined classes may not work " +"correctly. (Specifically, you may not be able to create instances of such " +"subclasses without getting a :exc:`TypeError`.)" msgstr "" #: ../../extending/newtypes_tutorial.rst:374 @@ -828,21 +831,21 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:408 msgid "" -"The :c:member:`~PyTypeObject.tp_init` slot is exposed in Python as the " -":meth:`~object.__init__` method. It is used to initialize an object after " -"it's created. Initializers always accept positional and keyword arguments, " -"and they should return either ``0`` on success or ``-1`` on error." +"The :c:member:`~PyTypeObject.tp_init` slot is exposed in Python as the :meth:" +"`~object.__init__` method. It is used to initialize an object after it's " +"created. Initializers always accept positional and keyword arguments, and " +"they should return either ``0`` on success or ``-1`` on error." msgstr "" #: ../../extending/newtypes_tutorial.rst:413 msgid "" "Unlike the ``tp_new`` handler, there is no guarantee that ``tp_init`` is " -"called at all (for example, the :mod:`pickle` module by default doesn't call " -":meth:`~object.__init__` on unpickled instances). It can also be called " -"multiple times. Anyone can call the :meth:`!__init__` method on our objects." -" For this reason, we have to be extra careful when assigning the new " -"attribute values. We might be tempted, for example to assign the ``first`` " -"member like this::" +"called at all (for example, the :mod:`pickle` module by default doesn't " +"call :meth:`~object.__init__` on unpickled instances). It can also be " +"called multiple times. Anyone can call the :meth:`!__init__` method on our " +"objects. For this reason, we have to be extra careful when assigning the " +"new attribute values. We might be tempted, for example to assign the " +"``first`` member like this::" msgstr "" #: ../../extending/newtypes_tutorial.rst:421 @@ -856,12 +859,12 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:427 msgid "" -"But this would be risky. Our type doesn't restrict the type of the ``first``" -" member, so it could be any kind of object. It could have a destructor that " -"causes code to be executed that tries to access the ``first`` member; or that" -" destructor could detach the :term:`thread state ` and" -" let arbitrary code run in other threads that accesses and modifies our " -"object." +"But this would be risky. Our type doesn't restrict the type of the " +"``first`` member, so it could be any kind of object. It could have a " +"destructor that causes code to be executed that tries to access the " +"``first`` member; or that destructor could detach the :term:`thread state " +"` and let arbitrary code run in other threads that " +"accesses and modifies our object." msgstr "" #: ../../extending/newtypes_tutorial.rst:434 @@ -877,21 +880,22 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:440 msgid "" -"when we know that deallocation of the object [#]_ will neither detach the " -":term:`thread state ` nor cause any calls back into " +"when we know that deallocation of the object [#]_ will neither detach the :" +"term:`thread state ` nor cause any calls back into " "our type's code;" msgstr "" #: ../../extending/newtypes_tutorial.rst:443 msgid "" -"when decrementing a reference count in a :c:member:`~PyTypeObject.tp_dealloc`" -" handler on a type which doesn't support cyclic garbage collection [#]_." +"when decrementing a reference count in a :c:member:`~PyTypeObject." +"tp_dealloc` handler on a type which doesn't support cyclic garbage " +"collection [#]_." msgstr "" #: ../../extending/newtypes_tutorial.rst:446 msgid "" -"We want to expose our instance variables as attributes. There are a number of" -" ways to do that. The simplest way is to define member definitions::" +"We want to expose our instance variables as attributes. There are a number " +"of ways to do that. The simplest way is to define member definitions::" msgstr "" #: ../../extending/newtypes_tutorial.rst:449 @@ -929,9 +933,9 @@ msgid "" "the types of objects that can be assigned to the Python attributes. We " "expect the first and last names to be strings, but any Python objects can be " "assigned. Further, the attributes can be deleted, setting the C pointers to " -"``NULL``. Even though we can make sure the members are initialized to " -"non-``NULL`` values, the members can be set to ``NULL`` if the attributes are" -" deleted." +"``NULL``. Even though we can make sure the members are initialized to non-" +"``NULL`` values, the members can be set to ``NULL`` if the attributes are " +"deleted." msgstr "" #: ../../extending/newtypes_tutorial.rst:474 @@ -960,8 +964,8 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:492 msgid "" -"The method is implemented as a C function that takes a :class:`!Custom` (or " -":class:`!Custom` subclass) instance as the first argument. Methods always " +"The method is implemented as a C function that takes a :class:`!Custom` (or :" +"class:`!Custom` subclass) instance as the first argument. Methods always " "take an instance as the first argument. Methods often take positional and " "keyword arguments as well, but in this case we don't take any and don't need " "to accept a positional argument tuple or keyword argument dictionary. This " @@ -976,8 +980,8 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:504 msgid "" -"Note that we have to check for the possibility that our :attr:`!first` and " -":attr:`!last` members are ``NULL``. This is because they can be deleted, in " +"Note that we have to check for the possibility that our :attr:`!first` and :" +"attr:`!last` members are ``NULL``. This is because they can be deleted, in " "which case they are set to ``NULL``. It would be better to prevent deletion " "of these attributes and to restrict the attribute values to be strings. " "We'll see how to do that in the next section." @@ -1055,10 +1059,10 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:557 msgid "" -"In this section, we'll provide finer control over how the :attr:`!first` and " -":attr:`!last` attributes are set in the :class:`!Custom` example. In the " -"previous version of our module, the instance variables :attr:`!first` and " -":attr:`!last` could be set to non-string values or even deleted. We want to " +"In this section, we'll provide finer control over how the :attr:`!first` " +"and :attr:`!last` attributes are set in the :class:`!Custom` example. In the " +"previous version of our module, the instance variables :attr:`!first` and :" +"attr:`!last` could be set to non-string values or even deleted. We want to " "make sure that these attributes always contain strings." msgstr "" @@ -1144,7 +1148,8 @@ msgid "" "{\n" " CustomObject *self = (CustomObject *) op;\n" " if (value == NULL) {\n" -" PyErr_SetString(PyExc_TypeError, \"Cannot delete the first attribute\");\n" +" PyErr_SetString(PyExc_TypeError, \"Cannot delete the first " +"attribute\");\n" " return -1;\n" " }\n" " if (!PyUnicode_Check(value)) {\n" @@ -1168,7 +1173,8 @@ msgid "" "{\n" " CustomObject *self = (CustomObject *) op;\n" " if (value == NULL) {\n" -" PyErr_SetString(PyExc_TypeError, \"Cannot delete the last attribute\");\n" +" PyErr_SetString(PyExc_TypeError, \"Cannot delete the last " +"attribute\");\n" " return -1;\n" " }\n" " if (!PyUnicode_Check(value)) {\n" @@ -1224,7 +1230,8 @@ msgid "" " return -1;\n" " }\n" "\n" -" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) {\n" +" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " +"{\n" " return -1;\n" " }\n" "\n" @@ -1233,7 +1240,8 @@ msgid "" "\n" "static PyModuleDef_Slot custom_module_slots[] = {\n" " {Py_mod_exec, custom_module_exec},\n" -" {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" " {0, NULL}\n" "};\n" "\n" @@ -1275,7 +1283,8 @@ msgid "" " CustomObject *self = (CustomObject *) op;\n" " PyObject *tmp;\n" " if (value == NULL) {\n" -" PyErr_SetString(PyExc_TypeError, \"Cannot delete the first attribute\");\n" +" PyErr_SetString(PyExc_TypeError, \"Cannot delete the first " +"attribute\");\n" " return -1;\n" " }\n" " if (!PyUnicode_Check(value)) {\n" @@ -1294,19 +1303,19 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:599 msgid "" "The getter function is passed a :class:`!Custom` object and a \"closure\", " -"which is a void pointer. In this case, the closure is ignored. (The closure" -" supports an advanced usage in which definition data is passed to the getter " -"and setter. This could, for example, be used to allow a single set of getter " -"and setter functions that decide the attribute to get or set based on data in" -" the closure.)" +"which is a void pointer. In this case, the closure is ignored. (The " +"closure supports an advanced usage in which definition data is passed to the " +"getter and setter. This could, for example, be used to allow a single set of " +"getter and setter functions that decide the attribute to get or set based on " +"data in the closure.)" msgstr "" #: ../../extending/newtypes_tutorial.rst:605 msgid "" -"The setter function is passed the :class:`!Custom` object, the new value, and" -" the closure. The new value may be ``NULL``, in which case the attribute is " -"being deleted. In our setter, we raise an error if the attribute is deleted " -"or if its new value is not a string." +"The setter function is passed the :class:`!Custom` object, the new value, " +"and the closure. The new value may be ``NULL``, in which case the attribute " +"is being deleted. In our setter, we raise an error if the attribute is " +"deleted or if its new value is not a string." msgstr "" #: ../../extending/newtypes_tutorial.rst:610 @@ -1390,11 +1399,11 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:665 msgid "" -"With these changes, we can assure that the ``first`` and ``last`` members are" -" never ``NULL`` so we can remove checks for ``NULL`` values in almost all " +"With these changes, we can assure that the ``first`` and ``last`` members " +"are never ``NULL`` so we can remove checks for ``NULL`` values in almost all " "cases. This means that most of the :c:func:`Py_XDECREF` calls can be " -"converted to :c:func:`Py_DECREF` calls. The only place we can't change these" -" calls is in the ``tp_dealloc`` implementation, where there is the " +"converted to :c:func:`Py_DECREF` calls. The only place we can't change " +"these calls is in the ``tp_dealloc`` implementation, where there is the " "possibility that the initialization of these members failed in ``tp_new``." msgstr "" @@ -1425,18 +1434,18 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:690 msgid "" -"In this example, we create a list that contains itself. When we delete it, it" -" still has a reference from itself. Its reference count doesn't drop to zero." -" Fortunately, Python's cyclic garbage collector will eventually figure out " -"that the list is garbage and free it." +"In this example, we create a list that contains itself. When we delete it, " +"it still has a reference from itself. Its reference count doesn't drop to " +"zero. Fortunately, Python's cyclic garbage collector will eventually figure " +"out that the list is garbage and free it." msgstr "" #: ../../extending/newtypes_tutorial.rst:695 msgid "" -"In the second version of the :class:`!Custom` example, we allowed any kind of" -" object to be stored in the :attr:`!first` or :attr:`!last` attributes [#]_. " -"Besides, in the second and third versions, we allowed subclassing " -":class:`!Custom`, and subclasses may add arbitrary attributes. For any of " +"In the second version of the :class:`!Custom` example, we allowed any kind " +"of object to be stored in the :attr:`!first` or :attr:`!last` attributes " +"[#]_. Besides, in the second and third versions, we allowed subclassing :" +"class:`!Custom`, and subclasses may add arbitrary attributes. For any of " "those two reasons, :class:`!Custom` objects can participate in cycles:" msgstr "" @@ -1451,10 +1460,10 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:709 msgid "" -"To allow a :class:`!Custom` instance participating in a reference cycle to be" -" properly detected and collected by the cyclic GC, our :class:`!Custom` type " -"needs to fill two additional slots and to enable a flag that enables these " -"slots:" +"To allow a :class:`!Custom` instance participating in a reference cycle to " +"be properly detected and collected by the cyclic GC, our :class:`!Custom` " +"type needs to fill two additional slots and to enable a flag that enables " +"these slots:" msgstr "" #: ../../extending/newtypes_tutorial.rst:713 @@ -1556,7 +1565,8 @@ msgid "" "{\n" " CustomObject *self = (CustomObject *) op;\n" " if (value == NULL) {\n" -" PyErr_SetString(PyExc_TypeError, \"Cannot delete the first attribute\");\n" +" PyErr_SetString(PyExc_TypeError, \"Cannot delete the first " +"attribute\");\n" " return -1;\n" " }\n" " if (!PyUnicode_Check(value)) {\n" @@ -1580,7 +1590,8 @@ msgid "" "{\n" " CustomObject *self = (CustomObject *) op;\n" " if (value == NULL) {\n" -" PyErr_SetString(PyExc_TypeError, \"Cannot delete the last attribute\");\n" +" PyErr_SetString(PyExc_TypeError, \"Cannot delete the last " +"attribute\");\n" " return -1;\n" " }\n" " if (!PyUnicode_Check(value)) {\n" @@ -1620,7 +1631,8 @@ msgid "" " .tp_doc = PyDoc_STR(\"Custom objects\"),\n" " .tp_basicsize = sizeof(CustomObject),\n" " .tp_itemsize = 0,\n" -" .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC,\n" +" .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | " +"Py_TPFLAGS_HAVE_GC,\n" " .tp_new = Custom_new,\n" " .tp_init = Custom_init,\n" " .tp_dealloc = Custom_dealloc,\n" @@ -1638,7 +1650,8 @@ msgid "" " return -1;\n" " }\n" "\n" -" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) {\n" +" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " +"{\n" " return -1;\n" " }\n" "\n" @@ -1647,7 +1660,8 @@ msgid "" "\n" "static PyModuleDef_Slot custom_module_slots[] = {\n" " {Py_mod_exec, custom_module_exec},\n" -" {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" " {0, NULL}\n" "};\n" "\n" @@ -1695,11 +1709,11 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:737 msgid "" -"For each subobject that can participate in cycles, we need to call the " -":c:func:`!visit` function, which is passed to the traversal method. The " -":c:func:`!visit` function takes as arguments the subobject and the extra " -"argument *arg* passed to the traversal method. It returns an integer value " -"that must be returned if it is non-zero." +"For each subobject that can participate in cycles, we need to call the :c:" +"func:`!visit` function, which is passed to the traversal method. The :c:func:" +"`!visit` function takes as arguments the subobject and the extra argument " +"*arg* passed to the traversal method. It returns an integer value that must " +"be returned if it is non-zero." msgstr "" #: ../../extending/newtypes_tutorial.rst:743 @@ -1748,9 +1762,9 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:772 msgid "" "Notice the use of the :c:func:`Py_CLEAR` macro. It is the recommended and " -"safe way to clear data attributes of arbitrary types while decrementing their" -" reference counts. If you were to call :c:func:`Py_XDECREF` instead on the " -"attribute before setting it to ``NULL``, there is a possibility that the " +"safe way to clear data attributes of arbitrary types while decrementing " +"their reference counts. If you were to call :c:func:`Py_XDECREF` instead on " +"the attribute before setting it to ``NULL``, there is a possibility that the " "attribute's destructor would call back into code that reads the attribute " "again (*especially* if there is a reference cycle)." msgstr "" @@ -1769,9 +1783,9 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:787 msgid "" -"Nevertheless, it is much easier and less error-prone to always use " -":c:func:`Py_CLEAR` when deleting an attribute. Don't try to micro-optimize " -"at the expense of robustness!" +"Nevertheless, it is much easier and less error-prone to always use :c:func:" +"`Py_CLEAR` when deleting an attribute. Don't try to micro-optimize at the " +"expense of robustness!" msgstr "" #: ../../extending/newtypes_tutorial.rst:791 @@ -1780,8 +1794,8 @@ msgid "" "attributes. It means the circular GC can be triggered inside the function. " "Since the GC assumes reference count is not zero, we need to untrack the " "object from the GC by calling :c:func:`PyObject_GC_UnTrack` before clearing " -"members. Here is our reimplemented deallocator using " -":c:func:`PyObject_GC_UnTrack` and ``Custom_clear``::" +"members. Here is our reimplemented deallocator using :c:func:" +"`PyObject_GC_UnTrack` and ``Custom_clear``::" msgstr "" #: ../../extending/newtypes_tutorial.rst:798 @@ -1807,10 +1821,10 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:810 msgid "" -"That's pretty much it. If we had written custom " -":c:member:`~PyTypeObject.tp_alloc` or :c:member:`~PyTypeObject.tp_free` " -"handlers, we'd need to modify them for cyclic garbage collection. Most " -"extensions will use the versions automatically provided." +"That's pretty much it. If we had written custom :c:member:`~PyTypeObject." +"tp_alloc` or :c:member:`~PyTypeObject.tp_free` handlers, we'd need to modify " +"them for cyclic garbage collection. Most extensions will use the versions " +"automatically provided." msgstr "" #: ../../extending/newtypes_tutorial.rst:816 @@ -1899,7 +1913,8 @@ msgid "" " return -1;\n" " }\n" "\n" -" if (PyModule_AddObjectRef(m, \"SubList\", (PyObject *) &SubListType) < 0) {\n" +" if (PyModule_AddObjectRef(m, \"SubList\", (PyObject *) &SubListType) < " +"0) {\n" " return -1;\n" " }\n" "\n" @@ -1908,7 +1923,8 @@ msgid "" "\n" "static PyModuleDef_Slot sublist_module_slots[] = {\n" " {Py_mod_exec, sublist_module_exec},\n" -" {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" " {0, NULL}\n" "};\n" "\n" @@ -1945,8 +1961,8 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:851 msgid "" "The primary difference for derived type objects is that the base type's " -"object structure must be the first value. The base type will already include" -" the :c:func:`PyObject_HEAD` at the beginning of its structure." +"object structure must be the first value. The base type will already " +"include the :c:func:`PyObject_HEAD` at the beginning of its structure." msgstr "" #: ../../extending/newtypes_tutorial.rst:855 @@ -1977,21 +1993,19 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:871 msgid "" -"This pattern is important when writing a type with custom " -":c:member:`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_dealloc` " -"members. The :c:member:`~PyTypeObject.tp_new` handler should not actually " -"create the memory for the object with its :c:member:`~PyTypeObject.tp_alloc`," -" but let the base class handle it by calling its own " -":c:member:`~PyTypeObject.tp_new`." +"This pattern is important when writing a type with custom :c:member:" +"`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_dealloc` members. " +"The :c:member:`~PyTypeObject.tp_new` handler should not actually create the " +"memory for the object with its :c:member:`~PyTypeObject.tp_alloc`, but let " +"the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`." msgstr "" #: ../../extending/newtypes_tutorial.rst:877 msgid "" -"The :c:type:`PyTypeObject` struct supports a " -":c:member:`~PyTypeObject.tp_base` specifying the type's concrete base class." -" Due to cross-platform compiler issues, you can't fill that field directly " -"with a reference to :c:type:`PyList_Type`; it should be done in the " -":c:data:`Py_mod_exec` function::" +"The :c:type:`PyTypeObject` struct supports a :c:member:`~PyTypeObject." +"tp_base` specifying the type's concrete base class. Due to cross-platform " +"compiler issues, you can't fill that field directly with a reference to :c:" +"type:`PyList_Type`; it should be done in the :c:data:`Py_mod_exec` function::" msgstr "" #: ../../extending/newtypes_tutorial.rst:883 @@ -2004,7 +2018,8 @@ msgid "" " return -1;\n" " }\n" "\n" -" if (PyModule_AddObjectRef(m, \"SubList\", (PyObject *) &SubListType) < 0) {\n" +" if (PyModule_AddObjectRef(m, \"SubList\", (PyObject *) &SubListType) < " +"0) {\n" " return -1;\n" " }\n" "\n" @@ -2014,11 +2029,11 @@ msgstr "" #: ../../extending/newtypes_tutorial.rst:898 msgid "" -"Before calling :c:func:`PyType_Ready`, the type structure must have the " -":c:member:`~PyTypeObject.tp_base` slot filled in. When we are deriving an " -"existing type, it is not necessary to fill out the " -":c:member:`~PyTypeObject.tp_alloc` slot with :c:func:`PyType_GenericNew` -- " -"the allocation function from the base type will be inherited." +"Before calling :c:func:`PyType_Ready`, the type structure must have the :c:" +"member:`~PyTypeObject.tp_base` slot filled in. When we are deriving an " +"existing type, it is not necessary to fill out the :c:member:`~PyTypeObject." +"tp_alloc` slot with :c:func:`PyType_GenericNew` -- the allocation function " +"from the base type will be inherited." msgstr "" #: ../../extending/newtypes_tutorial.rst:904 @@ -2033,23 +2048,24 @@ msgstr "Fußnoten" #: ../../extending/newtypes_tutorial.rst:910 msgid "" -"This is true when we know that the object is a basic type, like a string or a" -" float." +"This is true when we know that the object is a basic type, like a string or " +"a float." msgstr "" #: ../../extending/newtypes_tutorial.rst:913 msgid "" -"We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in this" -" example, because our type doesn't support garbage collection." +"We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in " +"this example, because our type doesn't support garbage collection." msgstr "" #: ../../extending/newtypes_tutorial.rst:916 msgid "" "We now know that the first and last members are strings, so perhaps we could " -"be less careful about decrementing their reference counts, however, we accept" -" instances of string subclasses. Even though deallocating normal strings " -"won't call back into our objects, we can't guarantee that deallocating an " -"instance of a string subclass won't call back into our objects." +"be less careful about decrementing their reference counts, however, we " +"accept instances of string subclasses. Even though deallocating normal " +"strings won't call back into our objects, we can't guarantee that " +"deallocating an instance of a string subclass won't call back into our " +"objects." msgstr "" #: ../../extending/newtypes_tutorial.rst:922 diff --git a/faq/design.po b/faq/design.po index 80a301a6..921598a2 100644 --- a/faq/design.po +++ b/faq/design.po @@ -113,9 +113,9 @@ msgstr "" #: ../../faq/design.rst:65 msgid "" -"The :class:`float` type in CPython uses a C ``double`` for storage. A " -":class:`float` object's value is stored in binary floating-point with a fixed" -" precision (typically 53 bits) and Python uses C operations, which in turn " +"The :class:`float` type in CPython uses a C ``double`` for storage. A :" +"class:`float` object's value is stored in binary floating-point with a fixed " +"precision (typically 53 bits) and Python uses C operations, which in turn " "rely on the hardware implementation in the processor, to perform floating-" "point operations. This means that as far as floating-point operations are " "concerned, Python behaves like many popular languages including C and Java." @@ -202,11 +202,11 @@ msgid "" "instead of a local variable. Reading ``self.x`` or ``self.meth()`` makes it " "absolutely clear that an instance variable or method is used even if you " "don't know the class definition by heart. In C++, you can sort of tell by " -"the lack of a local variable declaration (assuming globals are rare or easily" -" recognizable) -- but in Python, there are no local variable declarations, so" -" you'd have to look up the class definition to be sure. Some C++ and Java " -"coding standards call for instance attributes to have an ``m_`` prefix, so " -"this explicitness is still useful in those languages, too." +"the lack of a local variable declaration (assuming globals are rare or " +"easily recognizable) -- but in Python, there are no local variable " +"declarations, so you'd have to look up the class definition to be sure. " +"Some C++ and Java coding standards call for instance attributes to have an " +"``m_`` prefix, so this explicitness is still useful in those languages, too." msgstr "" #: ../../faq/design.rst:127 @@ -215,8 +215,8 @@ msgid "" "explicitly reference or call the method from a particular class. In C++, if " "you want to use a method from a base class which is overridden in a derived " "class, you have to use the ``::`` operator -- in Python you can write " -"``baseclass.methodname(self, )``. This is particularly useful" -" for :meth:`~object.__init__` methods, and in general in cases where a " +"``baseclass.methodname(self, )``. This is particularly " +"useful for :meth:`~object.__init__` methods, and in general in cases where a " "derived class method wants to extend the base class method of the same name " "and thus has to call the base class method somehow." msgstr "" @@ -226,17 +226,17 @@ msgid "" "Finally, for instance variables it solves a syntactic problem with " "assignment: since local variables in Python are (by definition!) those " "variables to which a value is assigned in a function body (and that aren't " -"explicitly declared global), there has to be some way to tell the interpreter" -" that an assignment was meant to assign to an instance variable instead of to" -" a local variable, and it should preferably be syntactic (for efficiency " -"reasons). C++ does this through declarations, but Python doesn't have " -"declarations and it would be a pity having to introduce them just for this " -"purpose. Using the explicit ``self.var`` solves this nicely. Similarly, for" -" using instance variables, having to write ``self.var`` means that references" -" to unqualified names inside a method don't have to search the instance's " -"directories. To put it another way, local variables and instance variables " -"live in two different namespaces, and you need to tell Python which namespace" -" to use." +"explicitly declared global), there has to be some way to tell the " +"interpreter that an assignment was meant to assign to an instance variable " +"instead of to a local variable, and it should preferably be syntactic (for " +"efficiency reasons). C++ does this through declarations, but Python doesn't " +"have declarations and it would be a pity having to introduce them just for " +"this purpose. Using the explicit ``self.var`` solves this nicely. " +"Similarly, for using instance variables, having to write ``self.var`` means " +"that references to unqualified names inside a method don't have to search " +"the instance's directories. To put it another way, local variables and " +"instance variables live in two different namespaces, and you need to tell " +"Python which namespace to use." msgstr "" #: ../../faq/design.rst:154 @@ -286,10 +286,10 @@ msgstr "" msgid "" "(b) When I read code that says len(x) I *know* that it is asking for the " "length of something. This tells me two things: the result is an integer, and " -"the argument is some kind of container. To the contrary, when I read x.len()," -" I have to already know that x is some kind of container implementing an " -"interface or inheriting from a class that has a standard len(). Witness the " -"confusion we occasionally have when a class that is not implementing a " +"the argument is some kind of container. To the contrary, when I read x." +"len(), I have to already know that x is some kind of container implementing " +"an interface or inheriting from a class that has a standard len(). Witness " +"the confusion we occasionally have when a class that is not implementing a " "mapping has a get() or keys() method, or something that isn't a file has a " "write() method." msgstr "" @@ -329,20 +329,19 @@ msgstr "" #: ../../faq/design.rst:209 msgid "" -"The first runs along the lines of: \"It looks really ugly using a method of a" -" string literal (string constant)\", to which the answer is that it might, " +"The first runs along the lines of: \"It looks really ugly using a method of " +"a string literal (string constant)\", to which the answer is that it might, " "but a string literal is just a fixed value. If the methods are to be allowed " -"on names bound to strings there is no logical reason to make them unavailable" -" on literals." +"on names bound to strings there is no logical reason to make them " +"unavailable on literals." msgstr "" #: ../../faq/design.rst:215 msgid "" "The second objection is typically cast as: \"I am really telling a sequence " "to join its members together with a string constant\". Sadly, you aren't. " -"For some reason there seems to be much less difficulty with having " -":meth:`~str.split` as a string method, since in that case it is easy to see " -"that ::" +"For some reason there seems to be much less difficulty with having :meth:" +"`~str.split` as a string method, since in that case it is easy to see that ::" msgstr "" #: ../../faq/design.rst:220 @@ -401,8 +400,8 @@ msgstr "" #: ../../faq/design.rst:254 msgid "" "For this specific case, you could also use ``value = dict.setdefault(key, " -"getvalue(key))``, but only if the ``getvalue()`` call is cheap enough because" -" it is evaluated in all cases." +"getvalue(key))``, but only if the ``getvalue()`` call is cheap enough " +"because it is evaluated in all cases." msgstr "" #: ../../faq/design.rst:260 @@ -412,18 +411,19 @@ msgstr "" #: ../../faq/design.rst:262 msgid "" "In general, structured switch statements execute one block of code when an " -"expression has a particular value or set of values. Since Python 3.10 one can" -" easily match literal values, or constants within a namespace, with a ``match" -" ... case`` statement. See :ref:`the specification ` and :ref:`the " -"tutorial ` for more information about :keyword:`match` statements." -" An older alternative is a sequence of ``if... elif... elif... else``." +"expression has a particular value or set of values. Since Python 3.10 one " +"can easily match literal values, or constants within a namespace, with a " +"``match ... case`` statement. See :ref:`the specification ` and :ref:" +"`the tutorial ` for more information about :keyword:`match` " +"statements. An older alternative is a sequence of ``if... elif... elif... " +"else``." msgstr "" #: ../../faq/design.rst:270 msgid "" -"For cases where you need to choose from a very large number of possibilities," -" you can create a dictionary mapping case values to functions to call. For " -"example::" +"For cases where you need to choose from a very large number of " +"possibilities, you can create a dictionary mapping case values to functions " +"to call. For example::" msgstr "" #: ../../faq/design.rst:274 @@ -438,8 +438,8 @@ msgstr "" #: ../../faq/design.rst:281 msgid "" -"For calling methods on objects, you can simplify yet further by using the " -":func:`getattr` built-in to retrieve methods with a particular name::" +"For calling methods on objects, you can simplify yet further by using the :" +"func:`getattr` built-in to retrieve methods with a particular name::" msgstr "" #: ../../faq/design.rst:284 @@ -456,10 +456,10 @@ msgstr "" #: ../../faq/design.rst:293 msgid "" -"It's suggested that you use a prefix for the method names, such as ``visit_``" -" in this example. Without such a prefix, if values are coming from an " -"untrusted source, an attacker would be able to call any method on your " -"object." +"It's suggested that you use a prefix for the method names, such as " +"``visit_`` in this example. Without such a prefix, if values are coming " +"from an untrusted source, an attacker would be able to call any method on " +"your object." msgstr "" #: ../../faq/design.rst:297 @@ -478,15 +478,15 @@ msgstr "" msgid "" "Answer 1: Unfortunately, the interpreter pushes at least one C stack frame " "for each Python stack frame. Also, extensions can call back into Python at " -"almost random moments. Therefore, a complete threads implementation requires" -" thread support for C." +"almost random moments. Therefore, a complete threads implementation " +"requires thread support for C." msgstr "" #: ../../faq/design.rst:309 msgid "" -"Answer 2: Fortunately, there is `Stackless Python " -"`_, which has a completely " -"redesigned interpreter loop that avoids the C stack." +"Answer 2: Fortunately, there is `Stackless Python `_, which has a completely redesigned " +"interpreter loop that avoids the C stack." msgstr "" #: ../../faq/design.rst:314 @@ -504,12 +504,12 @@ msgstr "" #: ../../faq/design.rst:322 msgid "" -"Functions are already first class objects in Python, and can be declared in a" -" local scope. Therefore the only advantage of using a lambda instead of a " +"Functions are already first class objects in Python, and can be declared in " +"a local scope. Therefore the only advantage of using a lambda instead of a " "locally defined function is that you don't need to invent a name for the " "function -- but that's just a local variable to which the function object " -"(which is exactly the same type of object that a lambda expression yields) is" -" assigned!" +"(which is exactly the same type of object that a lambda expression yields) " +"is assigned!" msgstr "" #: ../../faq/design.rst:330 @@ -520,8 +520,8 @@ msgstr "" msgid "" "`Cython `_ compiles a modified version of Python with " "optional annotations into C extensions. `Nuitka `_ is " -"an up-and-coming compiler of Python into C++ code, aiming to support the full" -" Python language." +"an up-and-coming compiler of Python into C++ code, aiming to support the " +"full Python language." msgstr "" #: ../../faq/design.rst:339 @@ -550,8 +550,8 @@ msgstr "" #: ../../faq/design.rst:355 msgid "" -"In some Python implementations, the following code (which is fine in CPython)" -" will probably run out of file descriptors::" +"In some Python implementations, the following code (which is fine in " +"CPython) will probably run out of file descriptors::" msgstr "" #: ../../faq/design.rst:358 @@ -599,11 +599,12 @@ msgstr "" #: ../../faq/design.rst:385 msgid "" "Traditional GC also becomes a problem when Python is embedded into other " -"applications. While in a standalone Python it's fine to replace the standard" -" ``malloc()`` and ``free()`` with versions provided by the GC library, an " -"application embedding Python may want to have its *own* substitute for " -"``malloc()`` and ``free()``, and may not want Python's. Right now, CPython " -"works with anything that implements ``malloc()`` and ``free()`` properly." +"applications. While in a standalone Python it's fine to replace the " +"standard ``malloc()`` and ``free()`` with versions provided by the GC " +"library, an application embedding Python may want to have its *own* " +"substitute for ``malloc()`` and ``free()``, and may not want Python's. " +"Right now, CPython works with anything that implements ``malloc()`` and " +"``free()`` properly." msgstr "" #: ../../faq/design.rst:394 @@ -622,8 +623,8 @@ msgstr "" #: ../../faq/design.rst:403 msgid "" -"If you want to force Python to delete certain things on deallocation use the " -":mod:`atexit` module to run a function that will force those deletions." +"If you want to force Python to delete certain things on deallocation use " +"the :mod:`atexit` module to run a function that will force those deletions." msgstr "" #: ../../faq/design.rst:408 @@ -642,21 +643,21 @@ msgstr "" #: ../../faq/design.rst:417 msgid "" -"Lists, on the other hand, are more like arrays in other languages. They tend" -" to hold a varying number of objects all of which have the same type and " -"which are operated on one-by-one. For example, :func:`os.listdir('.') " -"` returns a list of strings representing the files in the current" -" directory. Functions which operate on this output would generally not break" -" if you added another file or two to the directory." +"Lists, on the other hand, are more like arrays in other languages. They " +"tend to hold a varying number of objects all of which have the same type and " +"which are operated on one-by-one. For example, :func:`os.listdir('.') ` returns a list of strings representing the files in the current " +"directory. Functions which operate on this output would generally not break " +"if you added another file or two to the directory." msgstr "" #: ../../faq/design.rst:425 msgid "" "Tuples are immutable, meaning that once a tuple has been created, you can't " "replace any of its elements with a new value. Lists are mutable, meaning " -"that you can always change a list's elements. Only immutable elements can be" -" used as dictionary keys, and hence only tuples and not lists can be used as " -"keys." +"that you can always change a list's elements. Only immutable elements can " +"be used as dictionary keys, and hence only tuples and not lists can be used " +"as keys." msgstr "" #: ../../faq/design.rst:434 @@ -673,8 +674,8 @@ msgstr "" #: ../../faq/design.rst:440 msgid "" -"This makes indexing a list ``a[i]`` an operation whose cost is independent of" -" the size of the list or the value of the index." +"This makes indexing a list ``a[i]`` an operation whose cost is independent " +"of the size of the list or the value of the index." msgstr "" #: ../../faq/design.rst:443 @@ -696,22 +697,23 @@ msgstr "" #: ../../faq/design.rst:456 msgid "" -"CPython's dictionaries are implemented as resizable hash tables. Compared to" -" B-trees, this gives better performance for lookup (the most common operation" -" by far) under most circumstances, and the implementation is simpler." +"CPython's dictionaries are implemented as resizable hash tables. Compared " +"to B-trees, this gives better performance for lookup (the most common " +"operation by far) under most circumstances, and the implementation is " +"simpler." msgstr "" #: ../../faq/design.rst:460 msgid "" "Dictionaries work by computing a hash code for each key stored in the " "dictionary using the :func:`hash` built-in function. The hash code varies " -"widely depending on the key and a per-process seed; for example, ``'Python'``" -" could hash to ``-539294296`` while ``'python'``, a string that differs by a " -"single bit, could hash to ``1142331976``. The hash code is then used to " -"calculate a location in an internal array where the value will be stored. " -"Assuming that you're storing keys that all have different hash values, this " -"means that dictionaries take constant time -- *O*\\ (1), in Big-O notation --" -" to retrieve a key." +"widely depending on the key and a per-process seed; for example, " +"``'Python'`` could hash to ``-539294296`` while ``'python'``, a string that " +"differs by a single bit, could hash to ``1142331976``. The hash code is " +"then used to calculate a location in an internal array where the value will " +"be stored. Assuming that you're storing keys that all have different hash " +"values, this means that dictionaries take constant time -- *O*\\ (1), in Big-" +"O notation -- to retrieve a key." msgstr "" #: ../../faq/design.rst:469 @@ -729,12 +731,12 @@ msgid "" "The hash table implementation of dictionaries uses a hash value calculated " "from the key value to find the key. If the key were a mutable object, its " "value could change, and thus its hash could also change. But since whoever " -"changes the key object can't tell that it was being used as a dictionary key," -" it can't move the entry around in the dictionary. Then, when you try to " -"look up the same object in the dictionary it won't be found because its hash " -"value is different. If you tried to look up the old value it wouldn't be " -"found either, because the value of the object found in that hash bin would be" -" different." +"changes the key object can't tell that it was being used as a dictionary " +"key, it can't move the entry around in the dictionary. Then, when you try " +"to look up the same object in the dictionary it won't be found because its " +"hash value is different. If you tried to look up the old value it wouldn't " +"be found either, because the value of the object found in that hash bin " +"would be different." msgstr "" #: ../../faq/design.rst:484 @@ -763,9 +765,10 @@ msgstr "" #: ../../faq/design.rst:496 msgid "" -"would raise a :exc:`KeyError` exception because the id of the ``[1, 2]`` used" -" in the second line differs from that in the first line. In other words, " -"dictionary keys should be compared using ``==``, not using :keyword:`is`." +"would raise a :exc:`KeyError` exception because the id of the ``[1, 2]`` " +"used in the second line differs from that in the first line. In other " +"words, dictionary keys should be compared using ``==``, not using :keyword:" +"`is`." msgstr "" #: ../../faq/design.rst:500 @@ -777,8 +780,8 @@ msgstr "" #: ../../faq/design.rst:504 msgid "" -"Allow lists as keys but tell the user not to modify them. This would allow a" -" class of hard-to-track bugs in programs when you forgot or modified a list " +"Allow lists as keys but tell the user not to modify them. This would allow " +"a class of hard-to-track bugs in programs when you forgot or modified a list " "by accident. It also invalidates an important invariant of dictionaries: " "every value in ``d.keys()`` is usable as a key of the dictionary." msgstr "" @@ -796,11 +799,11 @@ msgstr "" #: ../../faq/design.rst:515 msgid "" "There is a trick to get around this if you need to, but use it at your own " -"risk: You can wrap a mutable structure inside a class instance which has both" -" a :meth:`~object.__eq__` and a :meth:`~object.__hash__` method. You must " -"then make sure that the hash value for all such wrapper objects that reside " -"in a dictionary (or other hash based structure), remain fixed while the " -"object is in the dictionary (or other structure). ::" +"risk: You can wrap a mutable structure inside a class instance which has " +"both a :meth:`~object.__eq__` and a :meth:`~object.__hash__` method. You " +"must then make sure that the hash value for all such wrapper objects that " +"reside in a dictionary (or other hash based structure), remain fixed while " +"the object is in the dictionary (or other structure). ::" msgstr "" #: ../../faq/design.rst:523 @@ -832,9 +835,9 @@ msgstr "" #: ../../faq/design.rst:544 msgid "" -"Furthermore it must always be the case that if ``o1 == o2`` (ie " -"``o1.__eq__(o2) is True``) then ``hash(o1) == hash(o2)`` (ie, ``o1.__hash__()" -" == o2.__hash__()``), regardless of whether the object is in a dictionary or " +"Furthermore it must always be the case that if ``o1 == o2`` (ie ``o1." +"__eq__(o2) is True``) then ``hash(o1) == hash(o2)`` (ie, ``o1.__hash__() == " +"o2.__hash__()``), regardless of whether the object is in a dictionary or " "not. If you fail to meet these restrictions dictionaries and other hash " "based structures will misbehave." msgstr "" @@ -864,8 +867,8 @@ msgstr "" #: ../../faq/design.rst:564 msgid "" "If you want to return a new list, use the built-in :func:`sorted` function " -"instead. This function creates a new list from a provided iterable, sorts it" -" and returns it. For example, here's how to iterate over the keys of a " +"instead. This function creates a new list from a provided iterable, sorts " +"it and returns it. For example, here's how to iterate over the keys of a " "dictionary in sorted order::" msgstr "" @@ -891,10 +894,10 @@ msgstr "" msgid "" "Python 2.6 adds an :mod:`abc` module that lets you define Abstract Base " "Classes (ABCs). You can then use :func:`isinstance` and :func:`issubclass` " -"to check whether an instance or a class implements a particular ABC. The " -":mod:`collections.abc` module defines a set of useful ABCs such as " -":class:`~collections.abc.Iterable`, :class:`~collections.abc.Container`, and " -":class:`~collections.abc.MutableMapping`." +"to check whether an instance or a class implements a particular ABC. The :" +"mod:`collections.abc` module defines a set of useful ABCs such as :class:" +"`~collections.abc.Iterable`, :class:`~collections.abc.Container`, and :class:" +"`~collections.abc.MutableMapping`." msgstr "" #: ../../faq/design.rst:588 @@ -909,10 +912,10 @@ msgid "" "as a module interface specification and a set of examples. Many Python " "modules can be run as a script to provide a simple \"self test.\" Even " "modules which use complex external interfaces can often be tested in " -"isolation using trivial \"stub\" emulations of the external interface. The " -":mod:`doctest` and :mod:`unittest` modules or third-party test frameworks can" -" be used to construct exhaustive test suites that exercise every line of code" -" in a module." +"isolation using trivial \"stub\" emulations of the external interface. The :" +"mod:`doctest` and :mod:`unittest` modules or third-party test frameworks can " +"be used to construct exhaustive test suites that exercise every line of code " +"in a module." msgstr "" #: ../../faq/design.rst:599 @@ -920,10 +923,11 @@ msgid "" "An appropriate testing discipline can help build large complex applications " "in Python as well as having interface specifications would. In fact, it can " "be better because an interface specification cannot test certain properties " -"of a program. For example, the :meth:`list.append` method is expected to add" -" new elements to the end of some internal list; an interface specification " -"cannot test that your :meth:`list.append` implementation will actually do " -"this correctly, but it's trivial to check this property in a test suite." +"of a program. For example, the :meth:`list.append` method is expected to " +"add new elements to the end of some internal list; an interface " +"specification cannot test that your :meth:`list.append` implementation will " +"actually do this correctly, but it's trivial to check this property in a " +"test suite." msgstr "" #: ../../faq/design.rst:607 @@ -943,11 +947,11 @@ msgstr "" msgid "" "In the 1970s people realized that unrestricted goto could lead to messy " "\"spaghetti\" code that was hard to understand and revise. In a high-level " -"language, it is also unneeded as long as there are ways to branch (in Python," -" with :keyword:`if` statements and :keyword:`or`, :keyword:`and`, and " -":keyword:`if`/:keyword:`else` expressions) and loop (with :keyword:`while` " -"and :keyword:`for` statements, possibly containing :keyword:`continue` and " -":keyword:`break`)." +"language, it is also unneeded as long as there are ways to branch (in " +"Python, with :keyword:`if` statements and :keyword:`or`, :keyword:`and`, " +"and :keyword:`if`/:keyword:`else` expressions) and loop (with :keyword:" +"`while` and :keyword:`for` statements, possibly containing :keyword:" +"`continue` and :keyword:`break`)." msgstr "" #: ../../faq/design.rst:624 @@ -984,16 +988,16 @@ msgstr "" #: ../../faq/design.rst:647 msgid "" "More precisely, they can't end with an odd number of backslashes: the " -"unpaired backslash at the end escapes the closing quote character, leaving an" -" unterminated string." +"unpaired backslash at the end escapes the closing quote character, leaving " +"an unterminated string." msgstr "" #: ../../faq/design.rst:651 msgid "" "Raw strings were designed to ease creating input for processors (chiefly " "regular expression engines) that want to do their own backslash escape " -"processing. Such processors consider an unmatched trailing backslash to be an" -" error anyway, so raw strings disallow that. In return, they allow you to " +"processing. Such processors consider an unmatched trailing backslash to be " +"an error anyway, so raw strings disallow that. In return, they allow you to " "pass on the string quote character by escaping it with a backslash. These " "rules work well when r-strings are used for their intended purpose." msgstr "" @@ -1044,10 +1048,10 @@ msgstr "" #: ../../faq/design.rst:683 msgid "" -"Other languages, such as Object Pascal, Delphi, and C++, use static types, so" -" it's possible to know, in an unambiguous way, what member is being assigned " -"to. This is the main point of static typing -- the compiler *always* knows " -"the scope of every variable at compile time." +"Other languages, such as Object Pascal, Delphi, and C++, use static types, " +"so it's possible to know, in an unambiguous way, what member is being " +"assigned to. This is the main point of static typing -- the compiler " +"*always* knows the scope of every variable at compile time." msgstr "" #: ../../faq/design.rst:688 @@ -1127,9 +1131,9 @@ msgstr "" msgid "" "For technical reasons, a generator used directly as a context manager would " "not work correctly. When, as is most common, a generator is used as an " -"iterator run to completion, no closing is needed. When it is, wrap it as " -":func:`contextlib.closing(generator) ` in the " -":keyword:`with` statement." +"iterator run to completion, no closing is needed. When it is, wrap it as :" +"func:`contextlib.closing(generator) ` in the :keyword:" +"`with` statement." msgstr "" #: ../../faq/design.rst:740 @@ -1138,8 +1142,8 @@ msgstr "" #: ../../faq/design.rst:742 msgid "" -"The colon is required primarily to enhance readability (one of the results of" -" the experimental ABC language). Consider this::" +"The colon is required primarily to enhance readability (one of the results " +"of the experimental ABC language). Consider this::" msgstr "" #: ../../faq/design.rst:745 @@ -1169,8 +1173,8 @@ msgstr "" msgid "" "Another minor reason is that the colon makes it easier for editors with " "syntax highlighting; they can look for colons to decide when indentation " -"needs to be increased instead of having to do a more elaborate parsing of the" -" program text." +"needs to be increased instead of having to do a more elaborate parsing of " +"the program text." msgstr "" #: ../../faq/design.rst:762 @@ -1207,8 +1211,8 @@ msgstr "" #: ../../faq/design.rst:782 msgid "" -"Accidentally omitting the comma can lead to errors that are hard to diagnose." -" For example::" +"Accidentally omitting the comma can lead to errors that are hard to " +"diagnose. For example::" msgstr "" #: ../../faq/design.rst:785 diff --git a/faq/extending.po b/faq/extending.po index 80ef9803..5f67f56c 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -35,8 +35,8 @@ msgstr "" #: ../../faq/extending.rst:18 msgid "" "Yes, you can create built-in modules containing functions, variables, " -"exceptions and even new types in C. This is explained in the document " -":ref:`extending-index`." +"exceptions and even new types in C. This is explained in the document :ref:" +"`extending-index`." msgstr "" #: ../../faq/extending.rst:22 @@ -49,10 +49,10 @@ msgstr "" #: ../../faq/extending.rst:28 msgid "" -"Yes, using the C compatibility features found in C++. Place ``extern \"C\" {" -" ... }`` around the Python include files and put ``extern \"C\"`` before each" -" function that is going to be called by the Python interpreter. Global or " -"static C++ objects with constructors are probably not a good idea." +"Yes, using the C compatibility features found in C++. Place ``extern " +"\"C\" { ... }`` around the Python include files and put ``extern \"C\"`` " +"before each function that is going to be called by the Python interpreter. " +"Global or static C++ objects with constructors are probably not a good idea." msgstr "" #: ../../faq/extending.rst:37 @@ -76,8 +76,8 @@ msgid "" "The highest-level function to do this is :c:func:`PyRun_SimpleString` which " "takes a single string argument to be executed in the context of the module " "``__main__`` and returns ``0`` for success and ``-1`` when an exception " -"occurred (including :exc:`SyntaxError`). If you want more control, use " -":c:func:`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` in " +"occurred (including :exc:`SyntaxError`). If you want more control, use :c:" +"func:`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` in " "``Python/pythonrun.c``." msgstr "" @@ -100,23 +100,23 @@ msgstr "" msgid "" "That depends on the object's type. If it's a tuple, :c:func:`PyTuple_Size` " "returns its length and :c:func:`PyTuple_GetItem` returns the item at a " -"specified index. Lists have similar functions, :c:func:`PyList_Size` and " -":c:func:`PyList_GetItem`." +"specified index. Lists have similar functions, :c:func:`PyList_Size` and :c:" +"func:`PyList_GetItem`." msgstr "" #: ../../faq/extending.rst:72 msgid "" -"For bytes, :c:func:`PyBytes_Size` returns its length and " -":c:func:`PyBytes_AsStringAndSize` provides a pointer to its value and its " -"length. Note that Python bytes objects may contain null bytes so C's " -":c:func:`!strlen` should not be used." +"For bytes, :c:func:`PyBytes_Size` returns its length and :c:func:" +"`PyBytes_AsStringAndSize` provides a pointer to its value and its length. " +"Note that Python bytes objects may contain null bytes so C's :c:func:`!" +"strlen` should not be used." msgstr "" #: ../../faq/extending.rst:77 msgid "" "To test the type of an object, first make sure it isn't ``NULL``, and then " -"use :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:`PyList_Check`," -" etc." +"use :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" +"`PyList_Check`, etc." msgstr "" #: ../../faq/extending.rst:80 @@ -145,8 +145,8 @@ msgstr "" msgid "" "The :c:func:`PyObject_CallMethod` function can be used to call an arbitrary " "method of an object. The parameters are the object, the name of the method " -"to call, a format string like that used with :c:func:`Py_BuildValue`, and the" -" argument values::" +"to call, a format string like that used with :c:func:`Py_BuildValue`, and " +"the argument values::" msgstr "" #: ../../faq/extending.rst:102 @@ -165,8 +165,8 @@ msgstr "" #: ../../faq/extending.rst:109 msgid "" -"To call, e.g., a file object's \"seek\" method with arguments 10, 0 (assuming" -" the file object pointer is \"f\")::" +"To call, e.g., a file object's \"seek\" method with arguments 10, 0 " +"(assuming the file object pointer is \"f\")::" msgstr "" #: ../../faq/extending.rst:112 @@ -253,11 +253,11 @@ msgstr "" #: ../../faq/extending.rst:173 msgid "" -"If the module hasn't been imported yet (i.e. it is not yet present in " -":data:`sys.modules`), this initializes the module; otherwise it simply " -"returns the value of ``sys.modules[\"\"]``. Note that it doesn't" -" enter the module into any namespace -- it only ensures it has been " -"initialized and is stored in :data:`sys.modules`." +"If the module hasn't been imported yet (i.e. it is not yet present in :data:" +"`sys.modules`), this initializes the module; otherwise it simply returns the " +"value of ``sys.modules[\"\"]``. Note that it doesn't enter the " +"module into any namespace -- it only ensures it has been initialized and is " +"stored in :data:`sys.modules`." msgstr "" #: ../../faq/extending.rst:179 @@ -272,8 +272,8 @@ msgstr "" #: ../../faq/extending.rst:184 msgid "" -"Calling :c:func:`PyObject_SetAttrString` to assign to variables in the module" -" also works." +"Calling :c:func:`PyObject_SetAttrString` to assign to variables in the " +"module also works." msgstr "" #: ../../faq/extending.rst:189 @@ -284,10 +284,10 @@ msgstr "" msgid "" "Depending on your requirements, there are many approaches. To do this " "manually, begin by reading :ref:`the \"Extending and Embedding\" document " -"`. Realize that for the Python run-time system, there isn't" -" a whole lot of difference between C and C++ -- so the strategy of building a" -" new Python type around a C structure (pointer) type will also work for C++ " -"objects." +"`. Realize that for the Python run-time system, there " +"isn't a whole lot of difference between C and C++ -- so the strategy of " +"building a new Python type around a C structure (pointer) type will also " +"work for C++ objects." msgstr "" #: ../../faq/extending.rst:197 @@ -301,8 +301,8 @@ msgstr "" #: ../../faq/extending.rst:203 msgid "" "Setup must end in a newline, if there is no newline there, the build process " -"fails. (Fixing this requires some ugly shell script hackery, and this bug is" -" so minor that it doesn't seem worth the effort.)" +"fails. (Fixing this requires some ugly shell script hackery, and this bug " +"is so minor that it doesn't seem worth the effort.)" msgstr "" #: ../../faq/extending.rst:209 @@ -311,8 +311,8 @@ msgstr "" #: ../../faq/extending.rst:211 msgid "" -"When using GDB with dynamically loaded extensions, you can't set a breakpoint" -" in your extension until your extension is loaded." +"When using GDB with dynamically loaded extensions, you can't set a " +"breakpoint in your extension until your extension is loaded." msgstr "" #: ../../faq/extending.rst:214 @@ -366,8 +366,8 @@ msgid "" "Sometimes you want to emulate the Python interactive interpreter's behavior, " "where it gives you a continuation prompt when the input is incomplete (e.g. " "you typed the start of an \"if\" statement or you didn't close your " -"parentheses or triple string quotes), but it gives you a syntax error message" -" immediately when the input is invalid." +"parentheses or triple string quotes), but it gives you a syntax error " +"message immediately when the input is invalid." msgstr "" #: ../../faq/extending.rst:250 @@ -380,8 +380,8 @@ msgstr "" msgid "" "The easiest way to do it in C is to call :c:func:`PyRun_InteractiveLoop` " "(perhaps in a separate thread) and let the Python interpreter handle the " -"input for you. You can also set the :c:func:`PyOS_ReadlineFunctionPointer` to" -" point at your custom input function. See ``Modules/readline.c`` and " +"input for you. You can also set the :c:func:`PyOS_ReadlineFunctionPointer` " +"to point at your custom input function. See ``Modules/readline.c`` and " "``Parser/myreadline.c`` for more hints." msgstr "" @@ -398,20 +398,19 @@ msgstr "" #: ../../faq/extending.rst:268 msgid "" -"Can I create an object class with some methods implemented in C and others in" -" Python (e.g. through inheritance)?" +"Can I create an object class with some methods implemented in C and others " +"in Python (e.g. through inheritance)?" msgstr "" #: ../../faq/extending.rst:270 msgid "" -"Yes, you can inherit from built-in classes such as :class:`int`, " -":class:`list`, :class:`dict`, etc." +"Yes, you can inherit from built-in classes such as :class:`int`, :class:" +"`list`, :class:`dict`, etc." msgstr "" #: ../../faq/extending.rst:273 msgid "" -"The Boost Python Library (BPL, " -"https://www.boost.org/libs/python/doc/index.html) provides a way of doing " -"this from C++ (i.e. you can inherit from an extension class written in C++ " -"using the BPL)." +"The Boost Python Library (BPL, https://www.boost.org/libs/python/doc/index." +"html) provides a way of doing this from C++ (i.e. you can inherit from an " +"extension class written in C++ using the BPL)." msgstr "" diff --git a/faq/general.po b/faq/general.po index 1855482c..b668311f 100644 --- a/faq/general.po +++ b/faq/general.po @@ -38,22 +38,22 @@ msgstr "" #: ../../faq/general.rst:18 msgid "" -"Python is an interpreted, interactive, object-oriented programming language." -" It incorporates modules, exceptions, dynamic typing, very high level " -"dynamic data types, and classes. It supports multiple programming paradigms " -"beyond object-oriented programming, such as procedural and functional " -"programming. Python combines remarkable power with very clear syntax. It has " -"interfaces to many system calls and libraries, as well as to various window " -"systems, and is extensible in C or C++. It is also usable as an extension " -"language for applications that need a programmable interface. Finally, Python" -" is portable: it runs on many Unix variants including Linux and macOS, and on" -" Windows." +"Python is an interpreted, interactive, object-oriented programming " +"language. It incorporates modules, exceptions, dynamic typing, very high " +"level dynamic data types, and classes. It supports multiple programming " +"paradigms beyond object-oriented programming, such as procedural and " +"functional programming. Python combines remarkable power with very clear " +"syntax. It has interfaces to many system calls and libraries, as well as to " +"various window systems, and is extensible in C or C++. It is also usable as " +"an extension language for applications that need a programmable interface. " +"Finally, Python is portable: it runs on many Unix variants including Linux " +"and macOS, and on Windows." msgstr "" #: ../../faq/general.rst:28 msgid "" -"To find out more, start with :ref:`tutorial-index`. The `Beginner's Guide to" -" Python `_ links to other " +"To find out more, start with :ref:`tutorial-index`. The `Beginner's Guide " +"to Python `_ links to other " "introductory tutorials and resources for learning Python." msgstr "" @@ -63,18 +63,18 @@ msgstr "" #: ../../faq/general.rst:36 msgid "" -"The Python Software Foundation is an independent non-profit organization that" -" holds the copyright on Python versions 2.1 and newer. The PSF's mission is " -"to advance open source technology related to the Python programming language " -"and to publicize the use of Python. The PSF's home page is at " -"https://www.python.org/psf/." +"The Python Software Foundation is an independent non-profit organization " +"that holds the copyright on Python versions 2.1 and newer. The PSF's " +"mission is to advance open source technology related to the Python " +"programming language and to publicize the use of Python. The PSF's home " +"page is at https://www.python.org/psf/." msgstr "" #: ../../faq/general.rst:42 msgid "" -"Donations to the PSF are tax-exempt in the US. If you use Python and find it" -" helpful, please contribute via `the PSF donation page " -"`_." +"Donations to the PSF are tax-exempt in the US. If you use Python and find " +"it helpful, please contribute via `the PSF donation page `_." msgstr "" #: ../../faq/general.rst:48 @@ -87,9 +87,9 @@ msgid "" "copyrights in and display those copyrights in any documentation about Python " "that you produce. If you honor the copyright rules, it's OK to use Python " "for commercial use, to sell copies of Python in source or binary form " -"(modified or unmodified), or to sell products that incorporate Python in some" -" form. We would still like to know about all commercial use of Python, of " -"course." +"(modified or unmodified), or to sell products that incorporate Python in " +"some form. We would still like to know about all commercial use of Python, " +"of course." msgstr "" #: ../../faq/general.rst:57 @@ -101,8 +101,8 @@ msgstr "" #: ../../faq/general.rst:60 msgid "" "The Python logo is trademarked, and in certain cases permission is required " -"to use it. Consult `the Trademark Usage Policy " -"`__ for more information." +"to use it. Consult `the Trademark Usage Policy `__ for more information." msgstr "" #: ../../faq/general.rst:66 @@ -164,8 +164,8 @@ msgstr "" #: ../../faq/general.rst:104 msgid "" -"In February 1991, after just over a year of development, I decided to post to" -" USENET. The rest is in the ``Misc/HISTORY`` file." +"In February 1991, after just over a year of development, I decided to post " +"to USENET. The rest is in the ``Misc/HISTORY`` file." msgstr "" #: ../../faq/general.rst:109 @@ -183,10 +183,10 @@ msgid "" "The language comes with a large standard library that covers areas such as " "string processing (regular expressions, Unicode, calculating differences " "between files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP), " -"software engineering (unit testing, logging, profiling, parsing Python code)," -" and operating system interfaces (system calls, filesystems, TCP/IP sockets)." -" Look at the table of contents for :ref:`library-index` to get an idea of " -"what's available. A wide variety of third-party extensions are also " +"software engineering (unit testing, logging, profiling, parsing Python " +"code), and operating system interfaces (system calls, filesystems, TCP/IP " +"sockets). Look at the table of contents for :ref:`library-index` to get an " +"idea of what's available. A wide variety of third-party extensions are also " "available. Consult `the Python Package Index `_ to find " "packages of interest to you." msgstr "" @@ -255,18 +255,18 @@ msgstr "" msgid "" "You may also find version numbers with a \"+\" suffix, e.g. \"2.2+\". These " "are unreleased versions, built directly from the CPython development " -"repository. In practice, after a final minor release is made, the version is" -" incremented to the next minor version, which becomes the \"a0\" version, " +"repository. In practice, after a final minor release is made, the version " +"is incremented to the next minor version, which becomes the \"a0\" version, " "e.g. \"2.4a0\"." msgstr "" #: ../../faq/general.rst:160 msgid "" -"See the `Developer's Guide `__ for more information about the development " -"cycle, and :pep:`387` to learn more about Python's backward compatibility " -"policy. See also the documentation for :data:`sys.version`, " -":data:`sys.hexversion`, and :data:`sys.version_info`." +"See the `Developer's Guide `__ for more information about the development cycle, " +"and :pep:`387` to learn more about Python's backward compatibility policy. " +"See also the documentation for :data:`sys.version`, :data:`sys.hexversion`, " +"and :data:`sys.version_info`." msgstr "" #: ../../faq/general.rst:169 @@ -275,8 +275,8 @@ msgstr "" #: ../../faq/general.rst:171 msgid "" -"The latest Python source distribution is always available from python.org, at" -" https://www.python.org/downloads/. The latest development sources can be " +"The latest Python source distribution is always available from python.org, " +"at https://www.python.org/downloads/. The latest development sources can be " "obtained at https://github.com/python/cpython/." msgstr "" @@ -308,9 +308,10 @@ msgstr "" #: ../../faq/general.rst:192 msgid "" -"The documentation is written in reStructuredText and processed by `the Sphinx" -" documentation tool `__. The reStructuredText " -"source for the documentation is part of the Python source distribution." +"The documentation is written in reStructuredText and processed by `the " +"Sphinx documentation tool `__. The " +"reStructuredText source for the documentation is part of the Python source " +"distribution." msgstr "" #: ../../faq/general.rst:198 @@ -319,15 +320,15 @@ msgstr "" #: ../../faq/general.rst:200 msgid "" -"There are numerous tutorials and books available. The standard documentation" -" includes :ref:`tutorial-index`." +"There are numerous tutorials and books available. The standard " +"documentation includes :ref:`tutorial-index`." msgstr "" #: ../../faq/general.rst:203 msgid "" -"Consult `the Beginner's Guide `_" -" to find information for beginning Python programmers, including lists of " -"tutorials." +"Consult `the Beginner's Guide `_ to find information for beginning Python programmers, " +"including lists of tutorials." msgstr "" #: ../../faq/general.rst:208 @@ -339,23 +340,23 @@ msgid "" "There is a newsgroup, :newsgroup:`comp.lang.python`, and a mailing list, " "`python-list `_. The " "newsgroup and mailing list are gatewayed into each other -- if you can read " -"news it's unnecessary to subscribe to the mailing list. " -":newsgroup:`comp.lang.python` is high-traffic, receiving hundreds of postings" -" every day, and Usenet readers are often more able to cope with this volume." +"news it's unnecessary to subscribe to the mailing list. :newsgroup:`comp." +"lang.python` is high-traffic, receiving hundreds of postings every day, and " +"Usenet readers are often more able to cope with this volume." msgstr "" #: ../../faq/general.rst:217 msgid "" -"Announcements of new software releases and events can be found in " -"comp.lang.python.announce, a low-traffic moderated list that receives about " -"five postings per day. It's available as `the python-announce mailing list " +"Announcements of new software releases and events can be found in comp.lang." +"python.announce, a low-traffic moderated list that receives about five " +"postings per day. It's available as `the python-announce mailing list " "`_." msgstr "" #: ../../faq/general.rst:222 msgid "" -"More info about other mailing lists and newsgroups can be found at " -"https://www.python.org/community/lists/." +"More info about other mailing lists and newsgroups can be found at https://" +"www.python.org/community/lists/." msgstr "" #: ../../faq/general.rst:227 @@ -364,10 +365,10 @@ msgstr "" #: ../../faq/general.rst:229 msgid "" -"Alpha and beta releases are available from https://www.python.org/downloads/." -" All releases are announced on the comp.lang.python and " -"comp.lang.python.announce newsgroups and on the Python home page at " -"https://www.python.org/; an RSS feed of news is available." +"Alpha and beta releases are available from https://www.python.org/" +"downloads/. All releases are announced on the comp.lang.python and comp." +"lang.python.announce newsgroups and on the Python home page at https://www." +"python.org/; an RSS feed of news is available." msgstr "" #: ../../faq/general.rst:234 @@ -382,8 +383,8 @@ msgstr "" #: ../../faq/general.rst:241 msgid "" -"To report a bug or submit a patch, use the issue tracker at " -"https://github.com/python/cpython/issues." +"To report a bug or submit a patch, use the issue tracker at https://github." +"com/python/cpython/issues." msgstr "" #: ../../faq/general.rst:244 @@ -425,8 +426,8 @@ msgstr "" #: ../../faq/general.rst:267 msgid "" -"You can also search online bookstores for \"Python\" and filter out the Monty" -" Python references; or perhaps search for \"Python\" and \"language\"." +"You can also search online bookstores for \"Python\" and filter out the " +"Monty Python references; or perhaps search for \"Python\" and \"language\"." msgstr "" #: ../../faq/general.rst:272 @@ -436,8 +437,8 @@ msgstr "" #: ../../faq/general.rst:274 msgid "" "The Python project's infrastructure is located all over the world and is " -"managed by the Python Infrastructure Team. Details `here " -"`__." +"managed by the Python Infrastructure Team. Details `here `__." msgstr "" #: ../../faq/general.rst:279 @@ -447,10 +448,10 @@ msgstr "" #: ../../faq/general.rst:281 msgid "" "When he began implementing Python, Guido van Rossum was also reading the " -"published scripts from `\"Monty Python's Flying Circus\" " -"`__, a BBC comedy series from the" -" 1970s. Van Rossum thought he needed a name that was short, unique, and " -"slightly mysterious, so he decided to call the language Python." +"published scripts from `\"Monty Python's Flying Circus\" `__, a BBC comedy series from the 1970s. " +"Van Rossum thought he needed a name that was short, unique, and slightly " +"mysterious, so he decided to call the language Python." msgstr "" #: ../../faq/general.rst:289 @@ -471,8 +472,8 @@ msgstr "" #: ../../faq/general.rst:300 msgid "" -"Very stable. New, stable releases have been coming out roughly every 6 to 18" -" months since 1991, and this seems likely to continue. As of version 3.9, " +"Very stable. New, stable releases have been coming out roughly every 6 to " +"18 months since 1991, and this seems likely to continue. As of version 3.9, " "Python will have a new feature release every 12 months (:pep:`602`)." msgstr "" @@ -524,19 +525,19 @@ msgstr "" #: ../../faq/general.rst:333 msgid "" "See https://www.python.org/about/success for a list of projects that use " -"Python. Consulting the proceedings for `past Python conferences " -"`_ will reveal contributions " -"from many different companies and organizations." +"Python. Consulting the proceedings for `past Python conferences `_ will reveal contributions from many " +"different companies and organizations." msgstr "" #: ../../faq/general.rst:338 msgid "" "High-profile Python projects include `the Mailman mailing list manager " -"`_ and `the Zope application server " -"`_. Several Linux distributions, most notably `Red Hat" -" `_, have written part or all of their installer and " -"system administration software in Python. Companies that use Python " -"internally include Google, Yahoo, and Lucasfilm Ltd." +"`_ and `the Zope application server `_. Several Linux distributions, most notably `Red Hat `_, have written part or all of their installer and system " +"administration software in Python. Companies that use Python internally " +"include Google, Yahoo, and Lucasfilm Ltd." msgstr "" #: ../../faq/general.rst:347 @@ -554,8 +555,8 @@ msgstr "" #: ../../faq/general.rst:355 msgid "" -"New development is discussed on `the python-dev mailing list " -"`_." +"New development is discussed on `the python-dev mailing list `_." msgstr "" #: ../../faq/general.rst:360 @@ -574,8 +575,8 @@ msgstr "" #: ../../faq/general.rst:369 msgid "" -"Providing a gradual upgrade path is necessary if a feature has to be changed." -" :pep:`5` describes the procedure followed for introducing backward-" +"Providing a gradual upgrade path is necessary if a feature has to be " +"changed. :pep:`5` describes the procedure followed for introducing backward-" "incompatible changes while minimizing disruption for users." msgstr "" @@ -594,21 +595,22 @@ msgid "" "better served by learning Python as their first language. Python has a very " "simple and consistent syntax and a large standard library and, most " "importantly, using Python in a beginning programming course lets students " -"concentrate on important programming skills such as problem decomposition and" -" data type design. With Python, students can be quickly introduced to basic " -"concepts such as loops and procedures. They can probably even work with " -"user-defined objects in their very first course." +"concentrate on important programming skills such as problem decomposition " +"and data type design. With Python, students can be quickly introduced to " +"basic concepts such as loops and procedures. They can probably even work " +"with user-defined objects in their very first course." msgstr "" #: ../../faq/general.rst:389 msgid "" "For a student who has never programmed before, using a statically typed " -"language seems unnatural. It presents additional complexity that the student" -" must master and slows the pace of the course. The students are trying to " -"learn to think like a computer, decompose problems, design consistent " -"interfaces, and encapsulate data. While learning to use a statically typed " -"language is important in the long term, it is not necessarily the best topic " -"to address in the students' first programming course." +"language seems unnatural. It presents additional complexity that the " +"student must master and slows the pace of the course. The students are " +"trying to learn to think like a computer, decompose problems, design " +"consistent interfaces, and encapsulate data. While learning to use a " +"statically typed language is important in the long term, it is not " +"necessarily the best topic to address in the students' first programming " +"course." msgstr "" #: ../../faq/general.rst:397 @@ -619,9 +621,9 @@ msgid "" "Assignments aren't restricted to the standard four-function calculator and " "check balancing programs. By using the standard library, students can gain " "the satisfaction of working on realistic applications as they learn the " -"fundamentals of programming. Using the standard library also teaches students" -" about code reuse. Third-party modules such as PyGame are also helpful in " -"extending the students' reach." +"fundamentals of programming. Using the standard library also teaches " +"students about code reuse. Third-party modules such as PyGame are also " +"helpful in extending the students' reach." msgstr "" #: ../../faq/general.rst:406 @@ -646,7 +648,8 @@ msgid "" "'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove',\n" "'reverse', 'sort']\n" ">>> [d for d in dir(L) if '__' not in d]\n" -"['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']\n" +"['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', " +"'remove', 'reverse', 'sort']\n" "\n" ">>> help(L.append)\n" "Help on built-in function append:\n" @@ -661,24 +664,24 @@ msgstr "" #: ../../faq/general.rst:435 msgid "" -"With the interpreter, documentation is never far from the student as they are" -" programming." +"With the interpreter, documentation is never far from the student as they " +"are programming." msgstr "" #: ../../faq/general.rst:438 msgid "" -"There are also good IDEs for Python. IDLE is a cross-platform IDE for Python" -" that is written in Python using Tkinter. Emacs users will be happy to know " -"that there is a very good Python mode for Emacs. All of these programming " -"environments provide syntax highlighting, auto-indenting, and access to the " -"interactive interpreter while coding. Consult `the Python wiki " -"`_ for a full list of Python " -"editing environments." +"There are also good IDEs for Python. IDLE is a cross-platform IDE for " +"Python that is written in Python using Tkinter. Emacs users will be happy to " +"know that there is a very good Python mode for Emacs. All of these " +"programming environments provide syntax highlighting, auto-indenting, and " +"access to the interactive interpreter while coding. Consult `the Python " +"wiki `_ for a full list of " +"Python editing environments." msgstr "" #: ../../faq/general.rst:446 msgid "" "If you want to discuss Python's use in education, you may be interested in " -"joining `the edu-sig mailing list " -"`_." +"joining `the edu-sig mailing list `_." msgstr "" diff --git a/faq/library.po b/faq/library.po index c54813f8..5f3035fe 100644 --- a/faq/library.po +++ b/faq/library.po @@ -45,10 +45,10 @@ msgstr "" #: ../../faq/library.rst:21 msgid "" -"For third-party packages, search the `Python Package Index " -"`_ or try `Google `_ or another web" -" search engine. Searching for \"Python\" plus a keyword or two for your " -"topic of interest will usually find something helpful." +"For third-party packages, search the `Python Package Index `_ or try `Google `_ or another web search " +"engine. Searching for \"Python\" plus a keyword or two for your topic of " +"interest will usually find something helpful." msgstr "" #: ../../faq/library.rst:28 @@ -59,8 +59,8 @@ msgstr "" msgid "" "If you can't find a source file for a module it may be a built-in or " "dynamically loaded module implemented in C, C++ or other compiled language. " -"In this case you may not have the source file or it may be something like " -":file:`mathmodule.c`, somewhere in a C source directory (not on the Python " +"In this case you may not have the source file or it may be something like :" +"file:`mathmodule.c`, somewhere in a C source directory (not on the Python " "Path)." msgstr "" @@ -79,8 +79,8 @@ msgstr "" #: ../../faq/library.rst:39 msgid "" -"modules written in C and linked with the interpreter; to get a list of these," -" type::" +"modules written in C and linked with the interpreter; to get a list of " +"these, type::" msgstr "" #: ../../faq/library.rst:42 @@ -102,8 +102,8 @@ msgstr "" #: ../../faq/library.rst:53 msgid "" -"The first is done by executing ``chmod +x scriptfile`` or perhaps ``chmod 755" -" scriptfile``." +"The first is done by executing ``chmod +x scriptfile`` or perhaps ``chmod " +"755 scriptfile``." msgstr "" #: ../../faq/library.rst:56 @@ -136,16 +136,16 @@ msgstr "" #: ../../faq/library.rst:71 msgid "" -"*Don't* do this for CGI scripts. The :envvar:`PATH` variable for CGI scripts" -" is often very minimal, so you need to use the actual absolute pathname of " -"the interpreter." +"*Don't* do this for CGI scripts. The :envvar:`PATH` variable for CGI " +"scripts is often very minimal, so you need to use the actual absolute " +"pathname of the interpreter." msgstr "" #: ../../faq/library.rst:75 msgid "" -"Occasionally, a user's environment is so full that the " -":program:`/usr/bin/env` program fails; or there's no env program at all. In " -"that case, you can try the following hack (due to Alex Rezinsky):" +"Occasionally, a user's environment is so full that the :program:`/usr/bin/" +"env` program fails; or there's no env program at all. In that case, you can " +"try the following hack (due to Alex Rezinsky):" msgstr "" #: ../../faq/library.rst:79 @@ -173,18 +173,19 @@ msgstr "" #: ../../faq/library.rst:98 msgid "" "For Unix variants: The standard Python source distribution comes with a " -"curses module in the :source:`Modules` subdirectory, though it's not compiled" -" by default. (Note that this is not available in the Windows distribution -- " -"there is no curses module for Windows.)" +"curses module in the :source:`Modules` subdirectory, though it's not " +"compiled by default. (Note that this is not available in the Windows " +"distribution -- there is no curses module for Windows.)" msgstr "" #: ../../faq/library.rst:103 msgid "" "The :mod:`curses` module supports basic curses features as well as many " -"additional functions from ncurses and SYSV curses such as colour, alternative" -" character set support, pads, and mouse support. This means the module isn't " -"compatible with operating systems that only have BSD curses, but there don't " -"seem to be any currently maintained OSes that fall into this category." +"additional functions from ncurses and SYSV curses such as colour, " +"alternative character set support, pads, and mouse support. This means the " +"module isn't compatible with operating systems that only have BSD curses, " +"but there don't seem to be any currently maintained OSes that fall into this " +"category." msgstr "" #: ../../faq/library.rst:111 @@ -193,8 +194,8 @@ msgstr "" #: ../../faq/library.rst:113 msgid "" -"The :mod:`atexit` module provides a register function that is similar to C's " -":c:func:`!onexit`." +"The :mod:`atexit` module provides a register function that is similar to " +"C's :c:func:`!onexit`." msgstr "" #: ../../faq/library.rst:118 @@ -203,8 +204,8 @@ msgstr "" #: ../../faq/library.rst:120 msgid "" -"The most common problem is that the signal handler is declared with the wrong" -" argument list. It is called as ::" +"The most common problem is that the signal handler is declared with the " +"wrong argument list. It is called as ::" msgstr "" #: ../../faq/library.rst:123 @@ -272,11 +273,11 @@ msgid "" "Once your program is organized as a tractable collection of function and " "class behaviours, you should write test functions that exercise the " "behaviours. A test suite that automates a sequence of tests can be " -"associated with each module. This sounds like a lot of work, but since Python" -" is so terse and flexible it's surprisingly easy. You can make coding much " -"more pleasant and fun by writing your test functions in parallel with the " -"\"production code\", since this makes it easy to find bugs and even design " -"flaws earlier." +"associated with each module. This sounds like a lot of work, but since " +"Python is so terse and flexible it's surprisingly easy. You can make coding " +"much more pleasant and fun by writing your test functions in parallel with " +"the \"production code\", since this makes it easy to find bugs and even " +"design flaws earlier." msgstr "" #: ../../faq/library.rst:167 @@ -306,8 +307,8 @@ msgstr "" msgid "" "The :mod:`pydoc` module can create HTML from the doc strings in your Python " "source code. An alternative for creating API documentation purely from " -"docstrings is `epydoc `_. `Sphinx " -"`_ can also include docstring content." +"docstrings is `epydoc `_. `Sphinx `_ can also include docstring content." msgstr "" #: ../../faq/library.rst:188 @@ -330,9 +331,9 @@ msgstr "" #: ../../faq/library.rst:239 msgid "" -"Be sure to use the :mod:`threading` module and not the :mod:`_thread` module." -" The :mod:`threading` module builds convenient abstractions on top of the " -"low-level primitives provided by the :mod:`_thread` module." +"Be sure to use the :mod:`threading` module and not the :mod:`_thread` " +"module. The :mod:`threading` module builds convenient abstractions on top of " +"the low-level primitives provided by the :mod:`_thread` module." msgstr "" #: ../../faq/library.rst:245 @@ -394,10 +395,10 @@ msgstr "" #: ../../faq/library.rst:282 msgid "" "Instead of trying to guess a good delay value for :func:`time.sleep`, it's " -"better to use some kind of semaphore mechanism. One idea is to use the " -":mod:`queue` module to create a queue object, let each thread append a token " -"to the queue when it finishes, and let the main thread read as many tokens " -"from the queue as there are threads." +"better to use some kind of semaphore mechanism. One idea is to use the :mod:" +"`queue` module to create a queue object, let each thread append a token to " +"the queue when it finishes, and let the main thread read as many tokens from " +"the queue as there are threads." msgstr "" #: ../../faq/library.rst:290 @@ -486,8 +487,8 @@ msgstr "" #: ../../faq/library.rst:358 msgid "" -"Consult the module's documentation for more details; the " -":class:`~queue.Queue` class provides a featureful interface." +"Consult the module's documentation for more details; the :class:`~queue." +"Queue` class provides a featureful interface." msgstr "" #: ../../faq/library.rst:363 @@ -498,8 +499,8 @@ msgstr "" msgid "" "A :term:`global interpreter lock` (GIL) is used internally to ensure that " "only one thread runs in the Python VM at a time. In general, Python offers " -"to switch among threads only between bytecode instructions; how frequently it" -" switches can be set via :func:`sys.setswitchinterval`. Each bytecode " +"to switch among threads only between bytecode instructions; how frequently " +"it switches can be set via :func:`sys.setswitchinterval`. Each bytecode " "instruction and therefore all the C implementation code reached from each " "instruction is therefore atomic from the point of view of a Python program." msgstr "" @@ -508,14 +509,14 @@ msgstr "" msgid "" "In theory, this means an exact accounting requires an exact understanding of " "the PVM bytecode implementation. In practice, it means that operations on " -"shared variables of built-in data types (ints, lists, dicts, etc) that \"look" -" atomic\" really are." +"shared variables of built-in data types (ints, lists, dicts, etc) that " +"\"look atomic\" really are." msgstr "" #: ../../faq/library.rst:377 msgid "" -"For example, the following operations are all atomic (L, L1, L2 are lists, D," -" D1, D2 are dicts, x, y are objects, i, j are ints)::" +"For example, the following operations are all atomic (L, L1, L2 are lists, " +"D, D1, D2 are dicts, x, y are objects, i, j are ints)::" msgstr "" #: ../../faq/library.rst:380 @@ -547,9 +548,9 @@ msgstr "" #: ../../faq/library.rst:399 msgid "" -"Operations that replace other objects may invoke those other objects' " -":meth:`~object.__del__` method when their reference count reaches zero, and " -"that can affect things. This is especially true for the mass updates to " +"Operations that replace other objects may invoke those other objects' :meth:" +"`~object.__del__` method when their reference count reaches zero, and that " +"can affect things. This is especially true for the mass updates to " "dictionaries and lists. When in doubt, use a mutex!" msgstr "" @@ -568,29 +569,28 @@ msgstr "" #: ../../faq/library.rst:413 msgid "" "With the approval of :pep:`703` work is now underway to remove the GIL from " -"the CPython implementation of Python. Initially it will be implemented as an" -" optional compiler flag when building the interpreter, and so separate builds" -" will be available with and without the GIL. Long-term, the hope is to " -"settle on a single build, once the performance implications of removing the " -"GIL are fully understood. Python 3.13 is likely to be the first release " +"the CPython implementation of Python. Initially it will be implemented as " +"an optional compiler flag when building the interpreter, and so separate " +"builds will be available with and without the GIL. Long-term, the hope is " +"to settle on a single build, once the performance implications of removing " +"the GIL are fully understood. Python 3.13 is likely to be the first release " "containing this work, although it may not be completely functional in this " "release." msgstr "" #: ../../faq/library.rst:422 msgid "" -"The current work to remove the GIL is based on a `fork of Python 3.9 with the" -" GIL removed `_ by Sam Gross. Prior to " -"that, in the days of Python 1.5, Greg Stein actually implemented a " -"comprehensive patch set (the \"free threading\" patches) that removed the GIL" -" and replaced it with fine-grained locking. Adam Olsen did a similar " -"experiment in his `python-safethread " -"`_ project. " -"Unfortunately, both of these earlier experiments exhibited a sharp drop in " -"single-thread performance (at least 30% slower), due to the amount of fine-" -"grained locking necessary to compensate for the removal of the GIL. The " -"Python 3.9 fork is the first attempt at removing the GIL with an acceptable " -"performance impact." +"The current work to remove the GIL is based on a `fork of Python 3.9 with " +"the GIL removed `_ by Sam Gross. Prior " +"to that, in the days of Python 1.5, Greg Stein actually implemented a " +"comprehensive patch set (the \"free threading\" patches) that removed the " +"GIL and replaced it with fine-grained locking. Adam Olsen did a similar " +"experiment in his `python-safethread `_ project. Unfortunately, both of these earlier " +"experiments exhibited a sharp drop in single-thread performance (at least " +"30% slower), due to the amount of fine-grained locking necessary to " +"compensate for the removal of the GIL. The Python 3.9 fork is the first " +"attempt at removing the GIL with an acceptable performance impact." msgstr "" #: ../../faq/library.rst:437 @@ -608,9 +608,9 @@ msgstr "" msgid "" "Judicious use of C extensions will also help; if you use a C extension to " "perform a time-consuming task, the extension can release the GIL while the " -"thread of execution is in the C code and allow other threads to get some work" -" done. Some standard library modules such as :mod:`zlib` and :mod:`hashlib` " -"already do this." +"thread of execution is in the C code and allow other threads to get some " +"work done. Some standard library modules such as :mod:`zlib` and :mod:" +"`hashlib` already do this." msgstr "" #: ../../faq/library.rst:452 @@ -618,10 +618,10 @@ msgid "" "An alternative approach to reducing the impact of the GIL is to make the GIL " "a per-interpreter-state lock rather than truly global. This was :ref:`first " "implemented in Python 3.12 ` and is available in the C " -"API. A Python interface to it is expected in Python 3.13. The main limitation" -" to it at the moment is likely to be 3rd party extension modules, since these" -" must be written with multiple interpreters in mind in order to be usable, so" -" many older extension modules will not be usable." +"API. A Python interface to it is expected in Python 3.13. The main " +"limitation to it at the moment is likely to be 3rd party extension modules, " +"since these must be written with multiple interpreters in mind in order to " +"be usable, so many older extension modules will not be usable." msgstr "" #: ../../faq/library.rst:462 @@ -635,9 +635,8 @@ msgstr "" #: ../../faq/library.rst:467 msgid "" "Use ``os.remove(filename)`` or ``os.unlink(filename)``; for documentation, " -"see the :mod:`os` module. The two functions are identical; " -":func:`~os.unlink` is simply the name of the Unix system call for this " -"function." +"see the :mod:`os` module. The two functions are identical; :func:`~os." +"unlink` is simply the name of the Unix system call for this function." msgstr "" #: ../../faq/library.rst:471 @@ -657,15 +656,15 @@ msgstr "" msgid "" "To truncate a file, open it using ``f = open(filename, \"rb+\")``, and use " "``f.truncate(offset)``; offset defaults to the current seek position. " -"There's also ``os.ftruncate(fd, offset)`` for files opened with " -":func:`os.open`, where *fd* is the file descriptor (a small integer)." +"There's also ``os.ftruncate(fd, offset)`` for files opened with :func:`os." +"open`, where *fd* is the file descriptor (a small integer)." msgstr "" #: ../../faq/library.rst:484 msgid "" -"The :mod:`shutil` module also contains a number of functions to work on files" -" including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and " -":func:`~shutil.rmtree`." +"The :mod:`shutil` module also contains a number of functions to work on " +"files including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and :" +"func:`~shutil.rmtree`." msgstr "" #: ../../faq/library.rst:490 @@ -689,8 +688,8 @@ msgstr "" #: ../../faq/library.rst:505 msgid "" -"To read or write complex binary data formats, it's best to use the " -":mod:`struct` module. It allows you to take a string containing binary data " +"To read or write complex binary data formats, it's best to use the :mod:" +"`struct` module. It allows you to take a string containing binary data " "(usually numbers) and convert it to Python objects; and vice versa." msgstr "" @@ -711,9 +710,9 @@ msgstr "" #: ../../faq/library.rst:518 msgid "" -"The '>' in the format string forces big-endian data; the letter 'h' reads one" -" \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 bytes) " -"from the string." +"The '>' in the format string forces big-endian data; the letter 'h' reads " +"one \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 " +"bytes) from the string." msgstr "" #: ../../faq/library.rst:522 @@ -739,8 +738,8 @@ msgid "" ":func:`os.read` is a low-level function which takes a file descriptor, a " "small integer representing the opened file. :func:`os.popen` creates a high-" "level file object, the same type returned by the built-in :func:`open` " -"function. Thus, to read *n* bytes from a pipe *p* created with " -":func:`os.popen`, you need to use ``p.read(n)``." +"function. Thus, to read *n* bytes from a pipe *p* created with :func:`os." +"popen`, you need to use ``p.read(n)``." msgstr "" #: ../../faq/library.rst:545 @@ -785,8 +784,8 @@ msgstr "" #: ../../faq/library.rst:568 msgid "" "But stdin, stdout and stderr are treated specially by Python, because of the " -"special status also given to them by C. Running ``sys.stdout.close()`` marks" -" the Python-level file object as being closed, but does *not* close the " +"special status also given to them by C. Running ``sys.stdout.close()`` " +"marks the Python-level file object as being closed, but does *not* close the " "associated C file descriptor." msgstr "" @@ -825,8 +824,8 @@ msgstr "" #: ../../faq/library.rst:596 msgid "" -"A summary of available frameworks is maintained by Paul Boddie at " -"https://wiki.python.org/moin/WebProgramming\\ ." +"A summary of available frameworks is maintained by Paul Boddie at https://" +"wiki.python.org/moin/WebProgramming\\ ." msgstr "" #: ../../faq/library.rst:601 @@ -876,8 +875,8 @@ msgstr "" #: ../../faq/library.rst:634 msgid "" "A Unix-only alternative uses sendmail. The location of the sendmail program " -"varies between systems; sometimes it is ``/usr/lib/sendmail``, sometimes " -"``/usr/sbin/sendmail``. The sendmail manual page will help you out. Here's " +"varies between systems; sometimes it is ``/usr/lib/sendmail``, sometimes ``/" +"usr/sbin/sendmail``. The sendmail manual page will help you out. Here's " "some sample code::" msgstr "" @@ -910,9 +909,9 @@ msgstr "" #: ../../faq/library.rst:659 msgid "" "To prevent the TCP connect from blocking, you can set the socket to non-" -"blocking mode. Then when you do the :meth:`~socket.socket.connect`, you will" -" either connect immediately (unlikely) or get an exception that contains the " -"error number as ``.errno``. ``errno.EINPROGRESS`` indicates that the " +"blocking mode. Then when you do the :meth:`~socket.socket.connect`, you " +"will either connect immediately (unlikely) or get an exception that contains " +"the error number as ``.errno``. ``errno.EINPROGRESS`` indicates that the " "connection is in progress, but hasn't finished yet. Different OSes will " "return different values, so you're going to have to check what's returned on " "your system." @@ -920,11 +919,11 @@ msgstr "" #: ../../faq/library.rst:667 msgid "" -"You can use the :meth:`~socket.socket.connect_ex` method to avoid creating an" -" exception. It will just return the errno value. To poll, you can call " -":meth:`~socket.socket.connect_ex` again later -- ``0`` or ``errno.EISCONN`` " -"indicate that you're connected -- or you can pass this socket to " -":meth:`select.select` to check if it's writable." +"You can use the :meth:`~socket.socket.connect_ex` method to avoid creating " +"an exception. It will just return the errno value. To poll, you can call :" +"meth:`~socket.socket.connect_ex` again later -- ``0`` or ``errno.EISCONN`` " +"indicate that you're connected -- or you can pass this socket to :meth:" +"`select.select` to check if it's writable." msgstr "" #: ../../faq/library.rst:675 @@ -950,16 +949,16 @@ msgstr "" #: ../../faq/library.rst:690 msgid "" "Interfaces to disk-based hashes such as :mod:`DBM ` and :mod:`GDBM " -"` are also included with standard Python. There is also the " -":mod:`sqlite3` module, which provides a lightweight disk-based relational " +"` are also included with standard Python. There is also the :mod:" +"`sqlite3` module, which provides a lightweight disk-based relational " "database." msgstr "" #: ../../faq/library.rst:695 msgid "" "Support for most relational databases is available. See the " -"`DatabaseProgramming wiki page " -"`_ for details." +"`DatabaseProgramming wiki page `_ for details." msgstr "" #: ../../faq/library.rst:701 @@ -969,8 +968,8 @@ msgstr "" #: ../../faq/library.rst:703 msgid "" "The :mod:`pickle` library module solves this in a very general way (though " -"you still can't store things like open files, sockets or windows), and the " -":mod:`shelve` library module uses pickle and (g)dbm to create persistent " +"you still can't store things like open files, sockets or windows), and the :" +"mod:`shelve` library module uses pickle and (g)dbm to create persistent " "mappings containing arbitrary Python objects." msgstr "" diff --git a/faq/programming.po b/faq/programming.po index 551357f9..86770193 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -43,8 +43,8 @@ msgstr "" #: ../../faq/programming.rst:19 msgid "" -"Several debuggers for Python are described below, and the built-in function " -":func:`breakpoint` allows you to drop into any of them." +"Several debuggers for Python are described below, and the built-in function :" +"func:`breakpoint` allows you to drop into any of them." msgstr "" #: ../../faq/programming.rst:22 @@ -67,8 +67,9 @@ msgid "" "PythonWin is a Python IDE that includes a GUI debugger based on pdb. The " "PythonWin debugger colors breakpoints and has quite a few cool features such " "as debugging non-PythonWin programs. PythonWin is available as part of " -"`pywin32 `_ project and as a part of the" -" `ActivePython `_ distribution." +"`pywin32 `_ project and as a part of " +"the `ActivePython `_ " +"distribution." msgstr "" #: ../../faq/programming.rst:38 @@ -109,18 +110,17 @@ msgstr "" #: ../../faq/programming.rst:58 msgid "" -"`Ruff `__, `Pylint " -"`__ and `Pyflakes " -"`__ do basic checking that will help you " -"catch bugs sooner." +"`Ruff `__, `Pylint `__ and `Pyflakes `__ do basic " +"checking that will help you catch bugs sooner." msgstr "" #: ../../faq/programming.rst:63 msgid "" -"Static type checkers such as `mypy `__, `ty " -"`__, `Pyrefly `__, and " -"`pytype `__ can check type hints in Python " -"source code." +"Static type checkers such as `mypy `__, `ty `__, `Pyrefly `__, and `pytype " +"`__ can check type hints in Python source " +"code." msgstr "" #: ../../faq/programming.rst:73 @@ -130,17 +130,17 @@ msgstr "" #: ../../faq/programming.rst:75 msgid "" "You don't need the ability to compile Python to C code if all you want is a " -"stand-alone program that users can download and run without having to install" -" the Python distribution first. There are a number of tools that determine " -"the set of modules required by a program and bind these modules together with" -" a Python binary to produce a single executable." +"stand-alone program that users can download and run without having to " +"install the Python distribution first. There are a number of tools that " +"determine the set of modules required by a program and bind these modules " +"together with a Python binary to produce a single executable." msgstr "" #: ../../faq/programming.rst:81 msgid "" -"One is to use the freeze tool, which is included in the Python source tree as" -" :source:`Tools/freeze`. It converts Python byte code to C arrays; with a C " -"compiler you can embed all your modules into a new program, which is then " +"One is to use the freeze tool, which is included in the Python source tree " +"as :source:`Tools/freeze`. It converts Python byte code to C arrays; with a " +"C compiler you can embed all your modules into a new program, which is then " "linked with the standard Python modules." msgstr "" @@ -151,10 +151,10 @@ msgid "" "the source directory (for built-in modules). It then turns the bytecode for " "modules written in Python into C code (array initializers that can be turned " "into code objects using the marshal module) and creates a custom-made config " -"file that only contains those built-in modules which are actually used in the" -" program. It then compiles the generated C code and links it with the rest " -"of the Python interpreter to form a self-contained binary which acts exactly " -"like your script." +"file that only contains those built-in modules which are actually used in " +"the program. It then compiles the generated C code and links it with the " +"rest of the Python interpreter to form a self-contained binary which acts " +"exactly like your script." msgstr "" #: ../../faq/programming.rst:96 @@ -195,8 +195,8 @@ msgstr "" #: ../../faq/programming.rst:110 msgid "" -"Yes. The coding style required for standard library modules is documented as" -" :pep:`8`." +"Yes. The coding style required for standard library modules is documented " +"as :pep:`8`." msgstr "" #: ../../faq/programming.rst:115 @@ -229,11 +229,11 @@ msgstr "" #: ../../faq/programming.rst:149 msgid "" "This is because when you make an assignment to a variable in a scope, that " -"variable becomes local to that scope and shadows any similarly named variable" -" in the outer scope. Since the last statement in foo assigns a new value to " -"``x``, the compiler recognizes it as a local variable. Consequently when the" -" earlier ``print(x)`` attempts to print the uninitialized local variable and " -"an error results." +"variable becomes local to that scope and shadows any similarly named " +"variable in the outer scope. Since the last statement in foo assigns a new " +"value to ``x``, the compiler recognizes it as a local variable. " +"Consequently when the earlier ``print(x)`` attempts to print the " +"uninitialized local variable and an error results." msgstr "" #: ../../faq/programming.rst:156 @@ -244,9 +244,9 @@ msgstr "" #: ../../faq/programming.rst:168 msgid "" -"This explicit declaration is required in order to remind you that (unlike the" -" superficially analogous situation with class and instance variables) you are" -" actually modifying the value of the variable in the outer scope:" +"This explicit declaration is required in order to remind you that (unlike " +"the superficially analogous situation with class and instance variables) you " +"are actually modifying the value of the variable in the outer scope:" msgstr "" #: ../../faq/programming.rst:175 @@ -269,9 +269,9 @@ msgstr "" #: ../../faq/programming.rst:199 msgid "" -"Though a bit surprising at first, a moment's consideration explains this. On" -" one hand, requiring :keyword:`global` for assigned variables provides a bar " -"against unintended side-effects. On the other hand, if ``global`` was " +"Though a bit surprising at first, a moment's consideration explains this. " +"On one hand, requiring :keyword:`global` for assigned variables provides a " +"bar against unintended side-effects. On the other hand, if ``global`` was " "required for all global references, you'd be using ``global`` all the time. " "You'd have to declare as global every reference to a built-in function or to " "a component of an imported module. This clutter would defeat the usefulness " @@ -301,8 +301,8 @@ msgstr "" msgid "" "This gives you a list that contains 5 lambdas that calculate ``x**2``. You " "might expect that, when called, they would return, respectively, ``0``, " -"``1``, ``4``, ``9``, and ``16``. However, when you actually try you will see" -" that they all return ``16``::" +"``1``, ``4``, ``9``, and ``16``. However, when you actually try you will " +"see that they all return ``16``::" msgstr "" #: ../../faq/programming.rst:223 @@ -315,11 +315,12 @@ msgstr "" #: ../../faq/programming.rst:228 msgid "" -"This happens because ``x`` is not local to the lambdas, but is defined in the" -" outer scope, and it is accessed when the lambda is called --- not when it is" -" defined. At the end of the loop, the value of ``x`` is ``4``, so all the " -"functions now return ``4**2``, that is ``16``. You can also verify this by " -"changing the value of ``x`` and see how the results of the lambdas change::" +"This happens because ``x`` is not local to the lambdas, but is defined in " +"the outer scope, and it is accessed when the lambda is called --- not when " +"it is defined. At the end of the loop, the value of ``x`` is ``4``, so all " +"the functions now return ``4**2``, that is ``16``. You can also verify this " +"by changing the value of ``x`` and see how the results of the lambdas " +"change::" msgstr "" #: ../../faq/programming.rst:234 @@ -331,8 +332,8 @@ msgstr "" #: ../../faq/programming.rst:238 msgid "" -"In order to avoid this, you need to save the values in variables local to the" -" lambdas, so that they don't rely on the value of the global ``x``::" +"In order to avoid this, you need to save the values in variables local to " +"the lambdas, so that they don't rely on the value of the global ``x``::" msgstr "" #: ../../faq/programming.rst:241 @@ -371,12 +372,12 @@ msgstr "" #: ../../faq/programming.rst:263 msgid "" -"The canonical way to share information across modules within a single program" -" is to create a special module (often called config or cfg). Just import the" -" config module in all modules of your application; the module then becomes " -"available as a global name. Because there is only one instance of each " -"module, any changes made to the module object get reflected everywhere. For " -"example:" +"The canonical way to share information across modules within a single " +"program is to create a special module (often called config or cfg). Just " +"import the config module in all modules of your application; the module then " +"becomes available as a global name. Because there is only one instance of " +"each module, any changes made to the module object get reflected " +"everywhere. For example:" msgstr "" #: ../../faq/programming.rst:269 @@ -428,9 +429,9 @@ msgstr "" #: ../../faq/programming.rst:295 msgid "" "Import modules at the top of a file. Doing so makes it clear what other " -"modules your code requires and avoids questions of whether the module name is" -" in scope. Using one import per line makes it easy to add and delete module " -"imports, but using multiple imports per line uses less screen space." +"modules your code requires and avoids questions of whether the module name " +"is in scope. Using one import per line makes it easy to add and delete " +"module imports, but using multiple imports per line uses less screen space." msgstr "" #: ../../faq/programming.rst:300 @@ -439,8 +440,8 @@ msgstr "" #: ../../faq/programming.rst:302 msgid "" -"standard library modules -- such as :mod:`sys`, :mod:`os`, :mod:`argparse`, " -":mod:`re`" +"standard library modules -- such as :mod:`sys`, :mod:`os`, :mod:`argparse`, :" +"mod:`re`" msgstr "" #: ../../faq/programming.rst:303 @@ -461,9 +462,9 @@ msgstr "" #: ../../faq/programming.rst:310 msgid "" -"Circular imports are fine where both modules use the \"import \" form" -" of import. They fail when the 2nd module wants to grab a name out of the " -"first (\"from module import name\") and the import is at the top level. " +"Circular imports are fine where both modules use the \"import \" " +"form of import. They fail when the 2nd module wants to grab a name out of " +"the first (\"from module import name\") and the import is at the top level. " "That's because names in the 1st are not yet available, because the first " "module is busy importing the 2nd." msgstr "" @@ -478,8 +479,8 @@ msgstr "" #: ../../faq/programming.rst:321 msgid "" -"It may also be necessary to move imports out of the top level of code if some" -" of the modules are platform-specific. In that case, it may not even be " +"It may also be necessary to move imports out of the top level of code if " +"some of the modules are platform-specific. In that case, it may not even be " "possible to import all of the modules at the top of the file. In this case, " "importing the correct modules in the corresponding platform-specific code is " "a good option." @@ -493,10 +494,10 @@ msgid "" "especially helpful if many of the imports are unnecessary depending on how " "the program executes. You may also want to move imports into a function if " "the modules are only ever used in that function. Note that loading a module " -"the first time may be expensive because of the one time initialization of the" -" module, but loading a module multiple times is virtually free, costing only " -"a couple of dictionary lookups. Even if the module name has gone out of " -"scope, the module is probably available in :data:`sys.modules`." +"the first time may be expensive because of the one time initialization of " +"the module, but loading a module multiple times is virtually free, costing " +"only a couple of dictionary lookups. Even if the module name has gone out " +"of scope, the module is probably available in :data:`sys.modules`." msgstr "" #: ../../faq/programming.rst:339 @@ -528,9 +529,9 @@ msgstr "" msgid "" "It is often expected that a function call creates new objects for default " "values. This is not what happens. Default values are created exactly once, " -"when the function is defined. If that object is changed, like the dictionary" -" in this example, subsequent calls to the function will refer to this changed" -" object." +"when the function is defined. If that object is changed, like the " +"dictionary in this example, subsequent calls to the function will refer to " +"this changed object." msgstr "" #: ../../faq/programming.rst:357 @@ -576,7 +577,8 @@ msgstr "" #: ../../faq/programming.rst:380 msgid "" -"# Callers can only provide two parameters and optionally pass _cache by keyword\n" +"# Callers can only provide two parameters and optionally pass _cache by " +"keyword\n" "def expensive(arg1, arg2, *, _cache={}):\n" " if (arg1, arg2) in _cache:\n" " return _cache[(arg1, arg2)]\n" @@ -600,10 +602,10 @@ msgstr "" #: ../../faq/programming.rst:397 msgid "" -"Collect the arguments using the ``*`` and ``**`` specifiers in the function's" -" parameter list; this gives you the positional arguments as a tuple and the " -"keyword arguments as a dictionary. You can then pass these arguments when " -"calling another function by using ``*`` and ``**``::" +"Collect the arguments using the ``*`` and ``**`` specifiers in the " +"function's parameter list; this gives you the positional arguments as a " +"tuple and the keyword arguments as a dictionary. You can then pass these " +"arguments when calling another function by using ``*`` and ``**``::" msgstr "" #: ../../faq/programming.rst:402 @@ -623,9 +625,9 @@ msgstr "" msgid "" ":term:`Parameters ` are defined by the names that appear in a " "function definition, whereas :term:`arguments ` are the values " -"actually passed to a function when calling it. Parameters define what " -":term:`kind of arguments ` a function can accept. For example, " -"given the function definition::" +"actually passed to a function when calling it. Parameters define what :term:" +"`kind of arguments ` a function can accept. For example, given " +"the function definition::" msgstr "" #: ../../faq/programming.rst:424 @@ -691,9 +693,9 @@ msgstr "" #: ../../faq/programming.rst:458 msgid "" -"After the call to :meth:`~sequence.append`, the content of the mutable object" -" has changed from ``[]`` to ``[10]``. Since both the variables refer to the " -"same object, using either name accesses the modified value ``[10]``." +"After the call to :meth:`~sequence.append`, the content of the mutable " +"object has changed from ``[]`` to ``[10]``. Since both the variables refer " +"to the same object, using either name accesses the modified value ``[10]``." msgstr "" #: ../../faq/programming.rst:462 @@ -728,10 +730,10 @@ msgid "" "object, whereas superficially similar operations (for example ``y = y + " "[10]`` and :func:`sorted(y) `) create a new object. In general in " "Python (and in all cases in the standard library) a method that mutates an " -"object will return ``None`` to help avoid getting the two types of operations" -" confused. So if you mistakenly write ``y.sort()`` thinking it will give you" -" a sorted copy of ``y``, you'll instead end up with ``None``, which will " -"likely cause your program to generate an easily diagnosed error." +"object will return ``None`` to help avoid getting the two types of " +"operations confused. So if you mistakenly write ``y.sort()`` thinking it " +"will give you a sorted copy of ``y``, you'll instead end up with ``None``, " +"which will likely cause your program to generate an easily diagnosed error." msgstr "" #: ../../faq/programming.rst:489 @@ -740,8 +742,8 @@ msgid "" "has different behaviors with different types: the augmented assignment " "operators. For example, ``+=`` mutates lists but not tuples or ints " "(``a_list += [1, 2, 3]`` is equivalent to ``a_list.extend([1, 2, 3])`` and " -"mutates ``a_list``, whereas ``some_tuple += (1, 2, 3)`` and ``some_int += 1``" -" create new objects)." +"mutates ``a_list``, whereas ``some_tuple += (1, 2, 3)`` and ``some_int += " +"1`` create new objects)." msgstr "" #: ../../faq/programming.rst:496 @@ -750,23 +752,23 @@ msgstr "" #: ../../faq/programming.rst:498 msgid "" -"If we have a mutable object (such as :class:`list`, :class:`dict`, " -":class:`set`), we can use some specific operations to mutate it and all the " +"If we have a mutable object (such as :class:`list`, :class:`dict`, :class:" +"`set`), we can use some specific operations to mutate it and all the " "variables that refer to it will see the change." msgstr "" #: ../../faq/programming.rst:501 msgid "" -"If we have an immutable object (such as :class:`str`, :class:`int`, " -":class:`tuple`), all the variables that refer to it will always see the same " -"value, but operations that transform that value into a new value always " -"return a new object." +"If we have an immutable object (such as :class:`str`, :class:`int`, :class:" +"`tuple`), all the variables that refer to it will always see the same value, " +"but operations that transform that value into a new value always return a " +"new object." msgstr "" #: ../../faq/programming.rst:506 msgid "" -"If you want to know if two variables refer to the same object or not, you can" -" use the :keyword:`is` operator, or the built-in function :func:`id`." +"If you want to know if two variables refer to the same object or not, you " +"can use the :keyword:`is` operator, or the built-in function :func:`id`." msgstr "" #: ../../faq/programming.rst:511 @@ -775,10 +777,10 @@ msgstr "" #: ../../faq/programming.rst:513 msgid "" -"Remember that arguments are passed by assignment in Python. Since assignment" -" just creates references to objects, there's no alias between an argument " -"name in the caller and callee, and consequently no call-by-reference. You " -"can achieve the desired effect in a number of ways." +"Remember that arguments are passed by assignment in Python. Since " +"assignment just creates references to objects, there's no alias between an " +"argument name in the caller and callee, and consequently no call-by-" +"reference. You can achieve the desired effect in a number of ways." msgstr "" #: ../../faq/programming.rst:518 @@ -916,8 +918,8 @@ msgstr "" #: ../../faq/programming.rst:605 msgid "" -"The callable object approach has the disadvantage that it is a bit slower and" -" results in slightly longer code. However, note that a collection of " +"The callable object approach has the disadvantage that it is a bit slower " +"and results in slightly longer code. However, note that a collection of " "callables can share their signature via inheritance::" msgstr "" @@ -970,8 +972,8 @@ msgstr "" #: ../../faq/programming.rst:642 msgid "" -"Some objects can be copied more easily. Dictionaries have a " -":meth:`~dict.copy` method::" +"Some objects can be copied more easily. Dictionaries have a :meth:`~dict." +"copy` method::" msgstr "" #: ../../faq/programming.rst:645 @@ -1048,9 +1050,9 @@ msgstr "" #: ../../faq/programming.rst:692 msgid "" -"The same way as you get the name of that cat you found on your porch: the cat" -" (object) itself cannot tell you its name, and it doesn't really care -- so " -"the only way to find out what it's called is to ask all your neighbours " +"The same way as you get the name of that cat you found on your porch: the " +"cat (object) itself cannot tell you its name, and it doesn't really care -- " +"so the only way to find out what it's called is to ask all your neighbours " "(namespaces) if it's their cat (object)..." msgstr "" @@ -1138,9 +1140,9 @@ msgstr "" #: ../../faq/programming.rst:745 msgid "" -"Yes. Usually this is done by nesting :keyword:`lambda` within " -":keyword:`!lambda`. See the following three examples, slightly adapted from " -"Ulf Bartelt::" +"Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!" +"lambda`. See the following three examples, slightly adapted from Ulf " +"Bartelt::" msgstr "" #: ../../faq/programming.rst:748 @@ -1156,7 +1158,8 @@ msgid "" "f(x,f), range(10))))\n" "\n" "# Mandelbrot set\n" -"print((lambda Ru,Ro,Iu,Io,IM,Sx,Sy:reduce(lambda x,y:x+'\\n'+y,map(lambda y,\n" +"print((lambda Ru,Ro,Iu,Io,IM,Sx,Sy:reduce(lambda x,y:x+'\\n'+y,map(lambda " +"y,\n" "Iu=Iu,Io=Io,Ru=Ru,Ro=Ro,Sy=Sy,L=lambda yc,Iu=Iu,Io=Io,Ru=Ru,Ro=Ro,i=IM,\n" "Sx=Sx,Sy=Sy:reduce(lambda x,y:x+y,map(lambda x,xc=Ru,yc=yc,Ru=Ru,Ro=Ro,\n" "i=i,Sx=Sx,F=lambda xc,yc,x,y,k,f=lambda xc,yc,x,y,k,f:(k<=0)or (x*x+y*y\n" @@ -1267,9 +1270,9 @@ msgstr "" #: ../../faq/programming.rst:837 msgid "" -"then integer division has to return the floor. C also requires that identity" -" to hold, and then compilers that truncate ``i // j`` need to make ``i % j`` " -"have the same sign as ``i``." +"then integer division has to return the floor. C also requires that " +"identity to hold, and then compilers that truncate ``i // j`` need to make " +"``i % j`` have the same sign as ``i``." msgstr "" #: ../../faq/programming.rst:841 @@ -1287,8 +1290,8 @@ msgstr "" #: ../../faq/programming.rst:851 msgid "" -"Trying to lookup an ``int`` literal attribute in the normal manner gives a " -":exc:`SyntaxError` because the period is seen as a decimal point::" +"Trying to lookup an ``int`` literal attribute in the normal manner gives a :" +"exc:`SyntaxError` because the period is seen as a decimal point::" msgstr "" #: ../../faq/programming.rst:854 @@ -1313,8 +1316,8 @@ msgstr "" #: ../../faq/programming.rst:872 msgid "" "For integers, use the built-in :func:`int` type constructor, for example, " -"``int('144') == 144``. Similarly, :func:`float` converts to a floating-point" -" number, for example, ``float('144') == 144.0``." +"``int('144') == 144``. Similarly, :func:`float` converts to a floating-" +"point number, for example, ``float('144') == 144.0``." msgstr "" #: ../../faq/programming.rst:876 @@ -1353,8 +1356,8 @@ msgid "" "For example, to convert the number ``144`` to the string ``'144'``, use the " "built-in type constructor :func:`str`. If you want a hexadecimal or octal " "representation, use the built-in functions :func:`hex` or :func:`oct`. For " -"fancy formatting, see the :ref:`f-strings` and :ref:`formatstrings` sections." -" For example, ``\"{:04d}\".format(144)`` yields ``'0144'`` and " +"fancy formatting, see the :ref:`f-strings` and :ref:`formatstrings` " +"sections. For example, ``\"{:04d}\".format(144)`` yields ``'0144'`` and " "``\"{:.3f}\".format(1.0/3.0)`` yields ``'0.333'``." msgstr "" @@ -1408,8 +1411,8 @@ msgstr "" msgid "" "The best is to use a dictionary that maps strings to functions. The primary " "advantage of this technique is that the strings do not need to match the " -"names of the functions. This is also the primary technique used to emulate a" -" case construct::" +"names of the functions. This is also the primary technique used to emulate " +"a case construct::" msgstr "" #: ../../faq/programming.rst:948 @@ -1514,11 +1517,11 @@ msgstr "" #: ../../faq/programming.rst:1014 msgid "" "For simple input parsing, the easiest approach is usually to split the line " -"into whitespace-delimited words using the :meth:`~str.split` method of string" -" objects and then convert decimal strings to numeric values using :func:`int`" -" or :func:`float`. :meth:`!split` supports an optional \"sep\" parameter " -"which is useful if the line uses something other than whitespace as a " -"separator." +"into whitespace-delimited words using the :meth:`~str.split` method of " +"string objects and then convert decimal strings to numeric values using :" +"func:`int` or :func:`float`. :meth:`!split` supports an optional \"sep\" " +"parameter which is useful if the line uses something other than whitespace " +"as a separator." msgstr "" #: ../../faq/programming.rst:1020 @@ -1568,8 +1571,8 @@ msgstr "" #: ../../faq/programming.rst:1049 msgid "" -"Another is to concatenate a regular string containing an escaped backslash to" -" the raw string::" +"Another is to concatenate a regular string containing an escaped backslash " +"to the raw string::" msgstr "" #: ../../faq/programming.rst:1052 @@ -1630,8 +1633,8 @@ msgstr "" #: ../../faq/programming.rst:1082 msgid "" -"Behaviour can vary across operating systems, especially when talking about " -"I/O or multi-threading." +"Behaviour can vary across operating systems, especially when talking about I/" +"O or multi-threading." msgstr "" #: ../../faq/programming.rst:1084 @@ -1678,8 +1681,8 @@ msgid "" "When the standard library provides a primitive for doing something, it is " "likely (although not guaranteed) to be faster than any alternative you may " "come up with. This is doubly true for primitives written in C, such as " -"builtins and some extension types. For example, be sure to use either the " -":meth:`list.sort` built-in method or the related :func:`sorted` function to " +"builtins and some extension types. For example, be sure to use either the :" +"meth:`list.sort` built-in method or the related :func:`sorted` function to " "do sorting (and see the :ref:`sortinghowto` for examples of moderately " "advanced usage)." msgstr "" @@ -1707,8 +1710,8 @@ msgstr "" #: ../../faq/programming.rst:1127 msgid "" -"The wiki page devoted to `performance tips " -"`_." +"The wiki page devoted to `performance tips `_." msgstr "" #: ../../faq/programming.rst:1134 @@ -1744,8 +1747,8 @@ msgstr "" #: ../../faq/programming.rst:1151 msgid "" -"To accumulate many :class:`bytes` objects, the recommended idiom is to extend" -" a :class:`bytearray` object using in-place concatenation (the ``+=`` " +"To accumulate many :class:`bytes` objects, the recommended idiom is to " +"extend a :class:`bytearray` object using in-place concatenation (the ``+=`` " "operator)::" msgstr "" @@ -1781,9 +1784,9 @@ msgstr "" #: ../../faq/programming.rst:1173 msgid "" "The type constructor ``list(seq)`` converts any sequence or iterable into a " -"list with the same items in the same order. For example, ``list((1, 2, 3))``" -" yields ``[1, 2, 3]`` and ``list('abc')`` yields ``['a', 'b', 'c']``. If the" -" argument is a list, it makes a copy just like ``seq[:]`` would." +"list with the same items in the same order. For example, ``list((1, 2, " +"3))`` yields ``[1, 2, 3]`` and ``list('abc')`` yields ``['a', 'b', 'c']``. " +"If the argument is a list, it makes a copy just like ``seq[:]`` would." msgstr "" #: ../../faq/programming.rst:1180 @@ -1792,18 +1795,18 @@ msgstr "" #: ../../faq/programming.rst:1182 msgid "" -"Python sequences are indexed with positive numbers and negative numbers. For" -" positive numbers 0 is the first index 1 is the second index and so forth. " -"For negative indices -1 is the last index and -2 is the penultimate (next to " -"last) index and so forth. Think of ``seq[-n]`` as the same as " +"Python sequences are indexed with positive numbers and negative numbers. " +"For positive numbers 0 is the first index 1 is the second index and so " +"forth. For negative indices -1 is the last index and -2 is the penultimate " +"(next to last) index and so forth. Think of ``seq[-n]`` as the same as " "``seq[len(seq)-n]``." msgstr "" #: ../../faq/programming.rst:1187 msgid "" -"Using negative indices can be very convenient. For example ``S[:-1]`` is all" -" of the string except for its last character, which is useful for removing " -"the trailing newline from a string." +"Using negative indices can be very convenient. For example ``S[:-1]`` is " +"all of the string except for its last character, which is useful for " +"removing the trailing newline from a string." msgstr "" #: ../../faq/programming.rst:1193 @@ -1858,8 +1861,8 @@ msgstr "" #: ../../faq/programming.rst:1223 msgid "" -"If all elements of the list may be used as set keys (that is, they are all " -":term:`hashable`) this is often faster::" +"If all elements of the list may be used as set keys (that is, they are all :" +"term:`hashable`) this is often faster::" msgstr "" #: ../../faq/programming.rst:1226 @@ -1868,8 +1871,8 @@ msgstr "" #: ../../faq/programming.rst:1228 msgid "" -"This converts the list into a set, thereby removing duplicates, and then back" -" into a list." +"This converts the list into a set, thereby removing duplicates, and then " +"back into a list." msgstr "" #: ../../faq/programming.rst:1233 @@ -1916,10 +1919,10 @@ msgstr "" #: ../../faq/programming.rst:1257 msgid "" -"The ``array`` module also provides methods for creating arrays of fixed types" -" with compact representations, but they are slower to index than lists. Also" -" note that `NumPy `_ and other third-party packages " -"define array-like structures with various characteristics as well." +"The ``array`` module also provides methods for creating arrays of fixed " +"types with compact representations, but they are slower to index than " +"lists. Also note that `NumPy `_ and other third-party " +"packages define array-like structures with various characteristics as well." msgstr "" #: ../../faq/programming.rst:1263 @@ -2017,8 +2020,8 @@ msgstr "" #: ../../faq/programming.rst:1330 msgid "" -"To call a method or function and accumulate the return values in a list, a " -":term:`list comprehension` is an elegant solution::" +"To call a method or function and accumulate the return values in a list, a :" +"term:`list comprehension` is an elegant solution::" msgstr "" #: ../../faq/programming.rst:1333 @@ -2030,8 +2033,8 @@ msgstr "" #: ../../faq/programming.rst:1337 msgid "" -"To just run the method or function without saving the return values, a plain " -":keyword:`for` loop will suffice::" +"To just run the method or function without saving the return values, a " +"plain :keyword:`for` loop will suffice::" msgstr "" #: ../../faq/programming.rst:1340 @@ -2058,8 +2061,8 @@ msgstr "" #: ../../faq/programming.rst:1356 msgid "" "This discussion applies in general when augmented assignment operators are " -"applied to elements of a tuple that point to mutable objects, but we'll use a" -" ``list`` and ``+=`` as our exemplar." +"applied to elements of a tuple that point to mutable objects, but we'll use " +"a ``list`` and ``+=`` as our exemplar." msgstr "" #: ../../faq/programming.rst:1360 @@ -2079,9 +2082,9 @@ msgstr "" msgid "" "The reason for the exception should be immediately clear: ``1`` is added to " "the object ``a_tuple[0]`` points to (``1``), producing the result object, " -"``2``, but when we attempt to assign the result of the computation, ``2``, to" -" element ``0`` of the tuple, we get an error because we can't change what an " -"element of a tuple points to." +"``2``, but when we attempt to assign the result of the computation, ``2``, " +"to element ``0`` of the tuple, we get an error because we can't change what " +"an element of a tuple points to." msgstr "" #: ../../faq/programming.rst:1374 @@ -2132,13 +2135,13 @@ msgstr "" #: ../../faq/programming.rst:1400 msgid "" -"To see why this happens, you need to know that (a) if an object implements an" -" :meth:`~object.__iadd__` magic method, it gets called when the ``+=`` " +"To see why this happens, you need to know that (a) if an object implements " +"an :meth:`~object.__iadd__` magic method, it gets called when the ``+=`` " "augmented assignment is executed, and its return value is what gets used in " "the assignment statement; and (b) for lists, :meth:`!__iadd__` is equivalent " "to calling :meth:`~sequence.extend` on the list and returning the list. " -"That's why we say that for lists, ``+=`` is a \"shorthand\" for " -":meth:`list.extend`::" +"That's why we say that for lists, ``+=`` is a \"shorthand\" for :meth:`list." +"extend`::" msgstr "" #: ../../faq/programming.rst:1408 @@ -2196,8 +2199,8 @@ msgstr "" #: ../../faq/programming.rst:1439 msgid "" -"The technique, attributed to Randal Schwartz of the Perl community, sorts the" -" elements of a list by a metric which maps each element to its \"sort " +"The technique, attributed to Randal Schwartz of the Perl community, sorts " +"the elements of a list by a metric which maps each element to its \"sort " "value\". In Python, use the ``key`` argument for the :meth:`list.sort` " "method::" msgstr "" @@ -2214,8 +2217,8 @@ msgstr "" #: ../../faq/programming.rst:1450 msgid "" -"Merge them into an iterator of tuples, sort the resulting list, and then pick" -" out the element you want." +"Merge them into an iterator of tuples, sort the resulting list, and then " +"pick out the element you want." msgstr "" #: ../../faq/programming.rst:1465 @@ -2228,18 +2231,19 @@ msgstr "" #: ../../faq/programming.rst:1470 msgid "" -"A class is the particular object type created by executing a class statement." -" Class objects are used as templates to create instance objects, which embody" -" both the data (attributes) and code (methods) specific to a datatype." +"A class is the particular object type created by executing a class " +"statement. Class objects are used as templates to create instance objects, " +"which embody both the data (attributes) and code (methods) specific to a " +"datatype." msgstr "" #: ../../faq/programming.rst:1474 msgid "" -"A class can be based on one or more other classes, called its base class(es)." -" It then inherits the attributes and methods of its base classes. This allows" -" an object model to be successively refined by inheritance. You might have a" -" generic ``Mailbox`` class that provides basic accessor methods for a " -"mailbox, and subclasses such as ``MboxMailbox``, ``MaildirMailbox``, " +"A class can be based on one or more other classes, called its base " +"class(es). It then inherits the attributes and methods of its base classes. " +"This allows an object model to be successively refined by inheritance. You " +"might have a generic ``Mailbox`` class that provides basic accessor methods " +"for a mailbox, and subclasses such as ``MboxMailbox``, ``MaildirMailbox``, " "``OutlookMailbox`` that handle various specific mailbox formats." msgstr "" @@ -2249,8 +2253,8 @@ msgstr "" #: ../../faq/programming.rst:1485 msgid "" -"A method is a function on some object ``x`` that you normally call as " -"``x.name(arguments...)``. Methods are defined as functions inside the class " +"A method is a function on some object ``x`` that you normally call as ``x." +"name(arguments...)``. Methods are defined as functions inside the class " "definition::" msgstr "" @@ -2269,8 +2273,8 @@ msgstr "" msgid "" "Self is merely a conventional name for the first argument of a method. A " "method defined as ``meth(self, a, b, c)`` should be called as ``x.meth(a, b, " -"c)`` for some instance ``x`` of the class in which the definition occurs; the" -" called method will think it is called as ``meth(x, a, b, c)``." +"c)`` for some instance ``x`` of the class in which the definition occurs; " +"the called method will think it is called as ``meth(x, a, b, c)``." msgstr "" #: ../../faq/programming.rst:1502 @@ -2285,20 +2289,20 @@ msgstr "" #: ../../faq/programming.rst:1508 msgid "" -"Use the built-in function :func:`isinstance(obj, cls) `. You can" -" check if an object is an instance of any of a number of classes by providing" -" a tuple instead of a single class, for example, ``isinstance(obj, (class1, " -"class2, ...))``, and can also check whether an object is one of Python's " -"built-in types, for example, ``isinstance(obj, str)`` or ``isinstance(obj, " -"(int, float, complex))``." +"Use the built-in function :func:`isinstance(obj, cls) `. You " +"can check if an object is an instance of any of a number of classes by " +"providing a tuple instead of a single class, for example, ``isinstance(obj, " +"(class1, class2, ...))``, and can also check whether an object is one of " +"Python's built-in types, for example, ``isinstance(obj, str)`` or " +"``isinstance(obj, (int, float, complex))``." msgstr "" #: ../../faq/programming.rst:1515 msgid "" -"Note that :func:`isinstance` also checks for virtual inheritance from an " -":term:`abstract base class`. So, the test will return ``True`` for a " -"registered class even if hasn't directly or indirectly inherited from it. To" -" test for \"true inheritance\", scan the :term:`method resolution order` " +"Note that :func:`isinstance` also checks for virtual inheritance from an :" +"term:`abstract base class`. So, the test will return ``True`` for a " +"registered class even if hasn't directly or indirectly inherited from it. " +"To test for \"true inheritance\", scan the :term:`method resolution order` " "(MRO) of the class:" msgstr "" @@ -2336,12 +2340,12 @@ msgstr "" #: ../../faq/programming.rst:1551 msgid "" -"Note that most programs do not use :func:`isinstance` on user-defined classes" -" very often. If you are developing the classes yourself, a more proper " -"object-oriented style is to define methods on the classes that encapsulate a " -"particular behaviour, instead of checking the object's class and doing a " -"different thing based on what class it is. For example, if you have a " -"function that does something::" +"Note that most programs do not use :func:`isinstance` on user-defined " +"classes very often. If you are developing the classes yourself, a more " +"proper object-oriented style is to define methods on the classes that " +"encapsulate a particular behaviour, instead of checking the object's class " +"and doing a different thing based on what class it is. For example, if you " +"have a function that does something::" msgstr "" #: ../../faq/programming.rst:1558 @@ -2410,19 +2414,19 @@ msgstr "" #: ../../faq/programming.rst:1603 msgid "" "Here the ``UpperOut`` class redefines the ``write()`` method to convert the " -"argument string to uppercase before calling the underlying " -"``self._outfile.write()`` method. All other methods are delegated to the " -"underlying ``self._outfile`` object. The delegation is accomplished via the " -":meth:`~object.__getattr__` method; consult :ref:`the language reference " -"` for more information about controlling attribute access." +"argument string to uppercase before calling the underlying ``self._outfile." +"write()`` method. All other methods are delegated to the underlying ``self." +"_outfile`` object. The delegation is accomplished via the :meth:`~object." +"__getattr__` method; consult :ref:`the language reference ` for more information about controlling attribute access." msgstr "" #: ../../faq/programming.rst:1610 msgid "" -"Note that for more general cases delegation can get trickier. When attributes" -" must be set as well as retrieved, the class must define a " -":meth:`~object.__setattr__` method too, and it must do so carefully. The " -"basic implementation of :meth:`!__setattr__` is roughly equivalent to the " +"Note that for more general cases delegation can get trickier. When " +"attributes must be set as well as retrieved, the class must define a :meth:" +"`~object.__setattr__` method too, and it must do so carefully. The basic " +"implementation of :meth:`!__setattr__` is roughly equivalent to the " "following::" msgstr "" @@ -2437,9 +2441,8 @@ msgstr "" #: ../../faq/programming.rst:1621 msgid "" -"Many :meth:`~object.__setattr__` implementations call " -":meth:`!object.__setattr__` to set an attribute on self without causing " -"infinite recursion::" +"Many :meth:`~object.__setattr__` implementations call :meth:`!object." +"__setattr__` to set an attribute on self without causing infinite recursion::" msgstr "" #: ../../faq/programming.rst:1624 @@ -2452,8 +2455,8 @@ msgstr "" #: ../../faq/programming.rst:1629 msgid "" -"Alternatively, it is possible to set attributes by inserting entries into " -":attr:`self.__dict__ ` directly." +"Alternatively, it is possible to set attributes by inserting entries into :" +"attr:`self.__dict__ ` directly." msgstr "" #: ../../faq/programming.rst:1634 @@ -2489,8 +2492,8 @@ msgstr "" msgid "" "You could assign the base class to an alias and derive from the alias. Then " "all you have to change is the value assigned to the alias. Incidentally, " -"this trick is also handy if you want to decide dynamically (such as depending" -" on availability of resources) which base class to use. Example::" +"this trick is also handy if you want to decide dynamically (such as " +"depending on availability of resources) which base class to use. Example::" msgstr "" #: ../../faq/programming.rst:1656 @@ -2541,10 +2544,10 @@ msgstr "" #: ../../faq/programming.rst:1687 msgid "" -"Caution: within a method of C, an assignment like ``self.count = 42`` creates" -" a new and unrelated instance named \"count\" in ``self``'s own dict. " -"Rebinding of a class-static data name must always specify the class whether " -"inside a method or not::" +"Caution: within a method of C, an assignment like ``self.count = 42`` " +"creates a new and unrelated instance named \"count\" in ``self``'s own " +"dict. Rebinding of a class-static data name must always specify the class " +"whether inside a method or not::" msgstr "" #: ../../faq/programming.rst:1692 @@ -2606,8 +2609,8 @@ msgstr "" #: ../../faq/programming.rst:1727 msgid "" -"In Python you have to write a single constructor that catches all cases using" -" default arguments. For example::" +"In Python you have to write a single constructor that catches all cases " +"using default arguments. For example::" msgstr "" #: ../../faq/programming.rst:1730 @@ -2696,19 +2699,19 @@ msgstr "" #: ../../faq/programming.rst:1788 msgid "" -"The :keyword:`del` statement does not necessarily call " -":meth:`~object.__del__` -- it simply decrements the object's reference count," -" and if this reaches zero :meth:`!__del__` is called." +"The :keyword:`del` statement does not necessarily call :meth:`~object." +"__del__` -- it simply decrements the object's reference count, and if this " +"reaches zero :meth:`!__del__` is called." msgstr "" #: ../../faq/programming.rst:1792 msgid "" "If your data structures contain circular links (for example, a tree where " -"each child has a parent reference and each parent has a list of children) the" -" reference counts will never go back to zero. Once in a while Python runs an" -" algorithm to detect such cycles, but the garbage collector might run some " -"time after the last reference to your data structure vanishes, so your " -":meth:`!__del__` method may be called at an inconvenient and random time. " +"each child has a parent reference and each parent has a list of children) " +"the reference counts will never go back to zero. Once in a while Python " +"runs an algorithm to detect such cycles, but the garbage collector might run " +"some time after the last reference to your data structure vanishes, so your :" +"meth:`!__del__` method may be called at an inconvenient and random time. " "This is inconvenient if you're trying to reproduce a problem. Worse, the " "order in which object's :meth:`!__del__` methods are executed is arbitrary. " "You can run :func:`gc.collect` to force a collection, but there *are* " @@ -2727,10 +2730,10 @@ msgstr "" #: ../../faq/programming.rst:1810 msgid "" -"Another way to avoid cyclical references is to use the :mod:`weakref` module," -" which allows you to point to objects without incrementing their reference " -"count. Tree data structures, for instance, should use weak references for " -"their parent and sibling references (if they need them!)." +"Another way to avoid cyclical references is to use the :mod:`weakref` " +"module, which allows you to point to objects without incrementing their " +"reference count. Tree data structures, for instance, should use weak " +"references for their parent and sibling references (if they need them!)." msgstr "" #: ../../faq/programming.rst:1823 @@ -2746,8 +2749,8 @@ msgstr "" #: ../../faq/programming.rst:1830 msgid "" "Python does not keep track of all instances of a class (or of a built-in " -"type). You can program the class's constructor to keep track of all instances" -" by keeping a list of weak references to each instance." +"type). You can program the class's constructor to keep track of all " +"instances by keeping a list of weak references to each instance." msgstr "" #: ../../faq/programming.rst:1836 @@ -2820,8 +2823,8 @@ msgstr "" msgid "" "In most other circumstances, identity tests are inadvisable and equality " "tests are preferred. In particular, identity tests should not be used to " -"check constants such as :class:`int` and :class:`str` which aren't guaranteed" -" to be singletons::" +"check constants such as :class:`int` and :class:`str` which aren't " +"guaranteed to be singletons::" msgstr "" #: ../../faq/programming.rst:1894 @@ -2895,8 +2898,8 @@ msgstr "" #: ../../faq/programming.rst:1942 msgid "" -"For example, here is the implementation of " -":meth:`!collections.abc.Sequence.__contains__`::" +"For example, here is the implementation of :meth:`!collections.abc.Sequence." +"__contains__`::" msgstr "" #: ../../faq/programming.rst:1945 @@ -2973,16 +2976,15 @@ msgstr "" #: ../../faq/programming.rst:2005 msgid "" -"The two principal tools for caching methods are " -":deco:`functools.cached_property` and :deco:`functools.lru_cache`. The " -"former stores results at the instance level and the latter at the class " -"level." +"The two principal tools for caching methods are :deco:`functools." +"cached_property` and :deco:`functools.lru_cache`. The former stores results " +"at the instance level and the latter at the class level." msgstr "" #: ../../faq/programming.rst:2010 msgid "" -"The ``cached_property`` approach only works with methods that do not take any" -" arguments. It does not create a reference to the instance. The cached " +"The ``cached_property`` approach only works with methods that do not take " +"any arguments. It does not create a reference to the instance. The cached " "method result will be kept only as long as the instance is alive." msgstr "" @@ -2997,8 +2999,8 @@ msgstr "" #: ../../faq/programming.rst:2019 msgid "" "The ``lru_cache`` approach works with methods that have :term:`hashable` " -"arguments. It creates a reference to the instance unless special efforts are" -" made to pass in weak references." +"arguments. It creates a reference to the instance unless special efforts " +"are made to pass in weak references." msgstr "" #: ../../faq/programming.rst:2023 @@ -3046,10 +3048,9 @@ msgstr "" #: ../../faq/programming.rst:2057 msgid "" -"To make the ``lru_cache`` approach work when the *station_id* is mutable, the" -" class needs to define the :meth:`~object.__eq__` and " -":meth:`~object.__hash__` methods so that the cache can detect relevant " -"attribute updates::" +"To make the ``lru_cache`` approach work when the *station_id* is mutable, " +"the class needs to define the :meth:`~object.__eq__` and :meth:`~object." +"__hash__` methods so that the cache can detect relevant attribute updates::" msgstr "" #: ../../faq/programming.rst:2061 @@ -3088,19 +3089,19 @@ msgid "" "When a module is imported for the first time (or when the source file has " "changed since the current compiled file was created) a ``.pyc`` file " "containing the compiled code should be created in a ``__pycache__`` " -"subdirectory of the directory containing the ``.py`` file. The ``.pyc`` file" -" will have a filename that starts with the same name as the ``.py`` file, and" -" ends with ``.pyc``, with a middle component that depends on the particular " -"``python`` binary that created it. (See :pep:`3147` for details.)" +"subdirectory of the directory containing the ``.py`` file. The ``.pyc`` " +"file will have a filename that starts with the same name as the ``.py`` " +"file, and ends with ``.pyc``, with a middle component that depends on the " +"particular ``python`` binary that created it. (See :pep:`3147` for details.)" msgstr "" #: ../../faq/programming.rst:2096 msgid "" "One reason that a ``.pyc`` file may not be created is a permissions problem " "with the directory containing the source file, meaning that the " -"``__pycache__`` subdirectory cannot be created. This can happen, for example," -" if you develop as one user but run as another, such as if you are testing " -"with a web server." +"``__pycache__`` subdirectory cannot be created. This can happen, for " +"example, if you develop as one user but run as another, such as if you are " +"testing with a web server." msgstr "" #: ../../faq/programming.rst:2101 @@ -3114,19 +3115,19 @@ msgstr "" #: ../../faq/programming.rst:2106 msgid "" -"Running Python on a top-level script is not considered an import and no " -"``.pyc`` will be created. For example, if you have a top-level module " -"``foo.py`` that imports another module ``xyz.py``, when you run ``foo`` (by " -"typing ``python foo.py`` as a shell command), a ``.pyc`` will be created for " -"``xyz`` because ``xyz`` is imported, but no ``.pyc`` file will be created for" -" ``foo`` since ``foo.py`` isn't being imported." +"Running Python on a top-level script is not considered an import and no ``." +"pyc`` will be created. For example, if you have a top-level module ``foo." +"py`` that imports another module ``xyz.py``, when you run ``foo`` (by typing " +"``python foo.py`` as a shell command), a ``.pyc`` will be created for " +"``xyz`` because ``xyz`` is imported, but no ``.pyc`` file will be created " +"for ``foo`` since ``foo.py`` isn't being imported." msgstr "" #: ../../faq/programming.rst:2113 msgid "" -"If you need to create a ``.pyc`` file for ``foo`` -- that is, to create a " -"``.pyc`` file for a module that is not imported -- you can, using the " -":mod:`py_compile` and :mod:`compileall` modules." +"If you need to create a ``.pyc`` file for ``foo`` -- that is, to create a ``." +"pyc`` file for a module that is not imported -- you can, using the :mod:" +"`py_compile` and :mod:`compileall` modules." msgstr "" #: ../../faq/programming.rst:2117 @@ -3166,11 +3167,11 @@ msgstr "" #: ../../faq/programming.rst:2138 msgid "" -"A module can find out its own module name by looking at the predefined global" -" variable ``__name__``. If this has the value ``'__main__'``, the program is" -" running as a script. Many modules that are usually used by importing them " -"also provide a command-line interface or a self-test, and only execute this " -"code after checking ``__name__``::" +"A module can find out its own module name by looking at the predefined " +"global variable ``__name__``. If this has the value ``'__main__'``, the " +"program is running as a script. Many modules that are usually used by " +"importing them also provide a command-line interface or a self-test, and " +"only execute this code after checking ``__name__``::" msgstr "" #: ../../faq/programming.rst:2144 @@ -3269,8 +3270,8 @@ msgstr "" #: ../../faq/programming.rst:2186 msgid "" -"Guido van Rossum recommends avoiding all uses of ``from import " -"...``, and placing all code inside functions. Initializations of global " +"Guido van Rossum recommends avoiding all uses of ``from import ..." +"``, and placing all code inside functions. Initializations of global " "variables and class variables should use constants or built-in functions " "only. This means everything from an imported module is referenced as " "``.``." @@ -3318,8 +3319,8 @@ msgstr "" #: ../../faq/programming.rst:2210 msgid "" -"Consider using the convenience function :func:`~importlib.import_module` from" -" :mod:`importlib` instead::" +"Consider using the convenience function :func:`~importlib.import_module` " +"from :mod:`importlib` instead::" msgstr "" #: ../../faq/programming.rst:2213 diff --git a/howto/curses.po b/howto/curses.po index 6fd23f08..20821b7e 100644 --- a/howto/curses.po +++ b/howto/curses.po @@ -71,8 +71,8 @@ msgid "" "that character-cell display terminals are an obsolete technology, but there " "are niches in which being able to do fancy things with them are still " "valuable. One niche is on small-footprint or embedded Unixes that don't run " -"an X server. Another is tools such as OS installers and kernel configurators" -" that may have to run before any graphical support is available." +"an X server. Another is tools such as OS installers and kernel " +"configurators that may have to run before any graphical support is available." msgstr "" #: ../../howto/curses.rst:38 @@ -95,8 +95,8 @@ msgid "" "open-source implementation of the AT&T interface. If you're using an open-" "source Unix such as Linux or FreeBSD, your system almost certainly uses " "ncurses. Since most current commercial Unix versions are based on System V " -"code, all the functions described here will probably be available. The older" -" versions of curses carried by some proprietary Unixes may not support " +"code, all the functions described here will probably be available. The " +"older versions of curses carried by some proprietary Unixes may not support " "everything, though." msgstr "" @@ -113,13 +113,13 @@ msgstr "" #: ../../howto/curses.rst:65 msgid "" -"The Python module is a fairly simple wrapper over the C functions provided by" -" curses; if you're already familiar with curses programming in C, it's really" -" easy to transfer that knowledge to Python. The biggest difference is that " -"the Python interface makes things simpler by merging different C functions " -"such as :c:func:`!addstr`, :c:func:`!mvaddstr`, and :c:func:`!mvwaddstr` into" -" a single :meth:`~curses.window.addstr` method. You'll see this covered in " -"more detail later." +"The Python module is a fairly simple wrapper over the C functions provided " +"by curses; if you're already familiar with curses programming in C, it's " +"really easy to transfer that knowledge to Python. The biggest difference is " +"that the Python interface makes things simpler by merging different C " +"functions such as :c:func:`!addstr`, :c:func:`!mvaddstr`, and :c:func:`!" +"mvwaddstr` into a single :meth:`~curses.window.addstr` method. You'll see " +"this covered in more detail later." msgstr "" #: ../../howto/curses.rst:73 @@ -137,11 +137,11 @@ msgstr "" #: ../../howto/curses.rst:82 msgid "" "Before doing anything, curses must be initialized. This is done by calling " -"the :func:`~curses.initscr` function, which will determine the terminal type," -" send any required setup codes to the terminal, and create various internal " -"data structures. If successful, :func:`!initscr` returns a window object " -"representing the entire screen; this is usually called ``stdscr`` after the " -"name of the corresponding C variable. ::" +"the :func:`~curses.initscr` function, which will determine the terminal " +"type, send any required setup codes to the terminal, and create various " +"internal data structures. If successful, :func:`!initscr` returns a window " +"object representing the entire screen; this is usually called ``stdscr`` " +"after the name of the corresponding C variable. ::" msgstr "" #: ../../howto/curses.rst:90 @@ -152,8 +152,8 @@ msgstr "" #: ../../howto/curses.rst:93 msgid "" -"Usually curses applications turn off automatic echoing of keys to the screen," -" in order to be able to read keys and only display them under certain " +"Usually curses applications turn off automatic echoing of keys to the " +"screen, in order to be able to read keys and only display them under certain " "circumstances. This requires calling the :func:`~curses.noecho` function. ::" msgstr "" @@ -164,8 +164,8 @@ msgstr "" #: ../../howto/curses.rst:100 msgid "" "Applications will also commonly need to react to keys instantly, without " -"requiring the Enter key to be pressed; this is called cbreak mode, as opposed" -" to the usual buffered input mode. ::" +"requiring the Enter key to be pressed; this is called cbreak mode, as " +"opposed to the usual buffered input mode. ::" msgstr "" #: ../../howto/curses.rst:104 @@ -177,9 +177,9 @@ msgid "" "Terminals usually return special keys, such as the cursor keys or navigation " "keys such as Page Up and Home, as a multibyte escape sequence. While you " "could write your application to expect such sequences and process them " -"accordingly, curses can do it for you, returning a special value such as " -":const:`curses.KEY_LEFT`. To get curses to do the job, you'll have to enable" -" keypad mode. ::" +"accordingly, curses can do it for you, returning a special value such as :" +"const:`curses.KEY_LEFT`. To get curses to do the job, you'll have to enable " +"keypad mode. ::" msgstr "" #: ../../howto/curses.rst:113 @@ -201,9 +201,9 @@ msgstr "" #: ../../howto/curses.rst:122 msgid "" -"to reverse the curses-friendly terminal settings. Then call the " -":func:`~curses.endwin` function to restore the terminal to its original " -"operating mode. ::" +"to reverse the curses-friendly terminal settings. Then call the :func:" +"`~curses.endwin` function to restore the terminal to its original operating " +"mode. ::" msgstr "" #: ../../howto/curses.rst:126 @@ -221,8 +221,8 @@ msgstr "" #: ../../howto/curses.rst:134 msgid "" -"In Python you can avoid these complications and make debugging much easier by" -" importing the :func:`curses.wrapper` function and using it like this::" +"In Python you can avoid these complications and make debugging much easier " +"by importing the :func:`curses.wrapper` function and using it like this::" msgstr "" #: ../../howto/curses.rst:137 @@ -247,14 +247,14 @@ msgstr "" #: ../../howto/curses.rst:153 msgid "" "The :func:`~curses.wrapper` function takes a callable object and does the " -"initializations described above, also initializing colors if color support is" -" present. :func:`!wrapper` then runs your provided callable. Once the " +"initializations described above, also initializing colors if color support " +"is present. :func:`!wrapper` then runs your provided callable. Once the " "callable returns, :func:`!wrapper` will restore the original state of the " -"terminal. The callable is called inside a :keyword:`try`...\\ " -":keyword:`except` that catches exceptions, restores the state of the " -"terminal, and then re-raises the exception. Therefore your terminal won't be" -" left in a funny state on exception and you'll be able to read the " -"exception's message and traceback." +"terminal. The callable is called inside a :keyword:`try`...\\ :keyword:" +"`except` that catches exceptions, restores the state of the terminal, and " +"then re-raises the exception. Therefore your terminal won't be left in a " +"funny state on exception and you'll be able to read the exception's message " +"and traceback." msgstr "" #: ../../howto/curses.rst:165 @@ -273,9 +273,9 @@ msgid "" "The ``stdscr`` object returned by the :func:`~curses.initscr` function is a " "window object that covers the entire screen. Many programs may need only " "this single window, but you might wish to divide the screen into smaller " -"windows, in order to redraw or clear them separately. The " -":func:`~curses.newwin` function creates a new window of a given size, " -"returning the new window object. ::" +"windows, in order to redraw or clear them separately. The :func:`~curses." +"newwin` function creates a new window of a given size, returning the new " +"window object. ::" msgstr "" #: ../../howto/curses.rst:178 @@ -289,25 +289,25 @@ msgstr "" msgid "" "Note that the coordinate system used in curses is unusual. Coordinates are " "always passed in the order *y,x*, and the top-left corner of a window is " -"coordinate (0,0). This breaks the normal convention for handling coordinates" -" where the *x* coordinate comes first. This is an unfortunate difference " -"from most other computer applications, but it's been part of curses since it " -"was first written, and it's too late to change things now." +"coordinate (0,0). This breaks the normal convention for handling " +"coordinates where the *x* coordinate comes first. This is an unfortunate " +"difference from most other computer applications, but it's been part of " +"curses since it was first written, and it's too late to change things now." msgstr "" #: ../../howto/curses.rst:190 msgid "" -"Your application can determine the size of the screen by using the " -":data:`curses.LINES` and :data:`curses.COLS` variables to obtain the *y* and " -"*x* sizes. Legal coordinates will then extend from ``(0,0)`` to " -"``(curses.LINES - 1, curses.COLS - 1)``." +"Your application can determine the size of the screen by using the :data:" +"`curses.LINES` and :data:`curses.COLS` variables to obtain the *y* and *x* " +"sizes. Legal coordinates will then extend from ``(0,0)`` to ``(curses.LINES " +"- 1, curses.COLS - 1)``." msgstr "" #: ../../howto/curses.rst:195 msgid "" "When you call a method to display or erase text, the effect doesn't " -"immediately show up on the display. Instead you must call the " -":meth:`~curses.window.refresh` method of window objects to update the screen." +"immediately show up on the display. Instead you must call the :meth:" +"`~curses.window.refresh` method of window objects to update the screen." msgstr "" #: ../../howto/curses.rst:200 @@ -315,8 +315,8 @@ msgid "" "This is because curses was originally written with slow 300-baud terminal " "connections in mind; with these terminals, minimizing the time required to " "redraw the screen was very important. Instead curses accumulates changes to " -"the screen and displays them in the most efficient manner when you call " -":meth:`!refresh`. For example, if your program displays some text in a " +"the screen and displays them in the most efficient manner when you call :" +"meth:`!refresh`. For example, if your program displays some text in a " "window and then clears the window, there's no need to send the original text " "because they're never visible." msgstr "" @@ -327,18 +327,17 @@ msgid "" "complicate programming with curses much. Most programs go into a flurry of " "activity, and then pause waiting for a keypress or some other action on the " "part of the user. All you have to do is to be sure that the screen has been " -"redrawn before pausing to wait for user input, by first calling " -":meth:`!stdscr.refresh` or the :meth:`!refresh` method of some other relevant" -" window." +"redrawn before pausing to wait for user input, by first calling :meth:`!" +"stdscr.refresh` or the :meth:`!refresh` method of some other relevant window." msgstr "" #: ../../howto/curses.rst:217 msgid "" -"A pad is a special case of a window; it can be larger than the actual display" -" screen, and only a portion of the pad displayed at a time. Creating a pad " -"requires the pad's height and width, while refreshing a pad requires giving " -"the coordinates of the on-screen area where a subsection of the pad will be " -"displayed. ::" +"A pad is a special case of a window; it can be larger than the actual " +"display screen, and only a portion of the pad displayed at a time. Creating " +"a pad requires the pad's height and width, while refreshing a pad requires " +"giving the coordinates of the on-screen area where a subsection of the pad " +"will be displayed. ::" msgstr "" #: ../../howto/curses.rst:223 @@ -370,9 +369,9 @@ msgstr "" #: ../../howto/curses.rst:244 msgid "" -"If you have multiple windows and pads on screen there is a more efficient way" -" to update the screen and prevent annoying screen flicker as each part of the" -" screen gets updated. :meth:`!refresh` actually does two things:" +"If you have multiple windows and pads on screen there is a more efficient " +"way to update the screen and prevent annoying screen flicker as each part of " +"the screen gets updated. :meth:`!refresh` actually does two things:" msgstr "" #: ../../howto/curses.rst:249 @@ -403,17 +402,18 @@ msgid "" "maze of functions, all subtly different. For example, :c:func:`!addstr` " "displays a string at the current cursor location in the ``stdscr`` window, " "while :c:func:`!mvaddstr` moves to a given y,x coordinate first before " -"displaying the string. :c:func:`!waddstr` is just like :c:func:`!addstr`, but" -" allows specifying a window to use instead of using ``stdscr`` by default. " -":c:func:`!mvwaddstr` allows specifying both a window and a coordinate." +"displaying the string. :c:func:`!waddstr` is just like :c:func:`!addstr`, " +"but allows specifying a window to use instead of using ``stdscr`` by " +"default. :c:func:`!mvwaddstr` allows specifying both a window and a " +"coordinate." msgstr "" #: ../../howto/curses.rst:272 msgid "" "Fortunately the Python interface hides all these details. ``stdscr`` is a " -"window object like any other, and methods such as " -":meth:`~curses.window.addstr` accept multiple argument forms. Usually there " -"are four different forms." +"window object like any other, and methods such as :meth:`~curses.window." +"addstr` accept multiple argument forms. Usually there are four different " +"forms." msgstr "" #: ../../howto/curses.rst:278 @@ -463,18 +463,18 @@ msgstr "" #: ../../howto/curses.rst:294 msgid "" "Attributes allow displaying text in highlighted forms such as boldface, " -"underline, reverse code, or in color. They'll be explained in more detail in" -" the next subsection." +"underline, reverse code, or in color. They'll be explained in more detail " +"in the next subsection." msgstr "" #: ../../howto/curses.rst:299 msgid "" "The :meth:`~curses.window.addstr` method takes a Python string or bytestring " "as the value to be displayed. The contents of bytestrings are sent to the " -"terminal as-is. On a build without wide-character support strings are encoded" -" using the value of the window's :attr:`~window.encoding` attribute; this " -"defaults to the default system encoding as returned by " -":func:`locale.getencoding`." +"terminal as-is. On a build without wide-character support strings are " +"encoded using the value of the window's :attr:`~window.encoding` attribute; " +"this defaults to the default system encoding as returned by :func:`locale." +"getencoding`." msgstr "" #: ../../howto/curses.rst:307 @@ -486,8 +486,8 @@ msgstr "" #: ../../howto/curses.rst:310 msgid "" "Constants are provided for the characters of the terminal's alternate " -"character set. For example, :const:`ACS_PLMINUS` is a +/- symbol, and " -":const:`ACS_ULCORNER` is the upper left corner of a box (handy for drawing " +"character set. For example, :const:`ACS_PLMINUS` is a +/- symbol, and :const:" +"`ACS_ULCORNER` is the upper left corner of a box (handy for drawing " "borders). You can also use the appropriate Unicode character." msgstr "" @@ -495,20 +495,20 @@ msgstr "" msgid "" "Windows remember where the cursor was left after the last operation, so if " "you leave out the *y,x* coordinates, the string or character will be " -"displayed wherever the last operation left off. You can also move the cursor" -" with the ``move(y,x)`` method. Because some terminals always display a " -"flashing cursor, you may want to ensure that the cursor is positioned in some" -" location where it won't be distracting; it can be confusing to have the " +"displayed wherever the last operation left off. You can also move the " +"cursor with the ``move(y,x)`` method. Because some terminals always display " +"a flashing cursor, you may want to ensure that the cursor is positioned in " +"some location where it won't be distracting; it can be confusing to have the " "cursor blinking at some apparently random location." msgstr "" #: ../../howto/curses.rst:325 msgid "" "If your application doesn't need a blinking cursor at all, you can call " -"``curs_set(False)`` to make it invisible. The window method " -":meth:`~curses.window.leaveok` does something different: when its argument is" -" true, curses leaves the cursor wherever the last update put it, instead of " -"moving it back to the window's cursor position." +"``curs_set(False)`` to make it invisible. The window method :meth:`~curses." +"window.leaveok` does something different: when its argument is true, curses " +"leaves the cursor wherever the last update put it, instead of moving it back " +"to the window's cursor position." msgstr "" #: ../../howto/curses.rst:334 @@ -518,19 +518,19 @@ msgstr "" #: ../../howto/curses.rst:336 msgid "" "Characters can be displayed in different ways. Status lines in a text-based " -"application are commonly shown in reverse video, or a text viewer may need to" -" highlight certain words. curses supports this by allowing you to specify an" -" attribute for each cell on the screen." +"application are commonly shown in reverse video, or a text viewer may need " +"to highlight certain words. curses supports this by allowing you to specify " +"an attribute for each cell on the screen." msgstr "" #: ../../howto/curses.rst:341 msgid "" -"An attribute is an integer, each bit representing a different attribute. You" -" can try to display text with multiple attribute bits set, but curses doesn't" -" guarantee that all the possible combinations are available, or that they're " -"all visually distinct. That depends on the ability of the terminal being " -"used, so it's safest to stick to the most commonly available attributes, " -"listed here." +"An attribute is an integer, each bit representing a different attribute. " +"You can try to display text with multiple attribute bits set, but curses " +"doesn't guarantee that all the possible combinations are available, or that " +"they're all visually distinct. That depends on the ability of the terminal " +"being used, so it's safest to stick to the most commonly available " +"attributes, listed here." msgstr "" #: ../../howto/curses.rst:349 @@ -587,8 +587,8 @@ msgstr "" #: ../../howto/curses.rst:364 msgid "" -"So, to display a reverse-video status line on the top line of the screen, you" -" could code::" +"So, to display a reverse-video status line on the top line of the screen, " +"you could code::" msgstr "" #: ../../howto/curses.rst:367 @@ -610,21 +610,21 @@ msgid "" "To use color, you must call the :func:`~curses.start_color` function soon " "after calling :func:`~curses.initscr`, to initialize the default color set " "(the :func:`curses.wrapper` function does this automatically). Once that's " -"done, the :func:`~curses.has_colors` function returns TRUE if the terminal in" -" use can actually display color. (Note: curses uses the American spelling " +"done, the :func:`~curses.has_colors` function returns TRUE if the terminal " +"in use can actually display color. (Note: curses uses the American spelling " "'color', instead of the Canadian/British spelling 'colour'. If you're used " -"to the British spelling, you'll have to resign yourself to misspelling it for" -" the sake of these functions.)" +"to the British spelling, you'll have to resign yourself to misspelling it " +"for the sake of these functions.)" msgstr "" #: ../../howto/curses.rst:385 msgid "" "The curses library maintains a finite number of color pairs, containing a " -"foreground (or text) color and a background color. You can get the attribute" -" value corresponding to a color pair with the :func:`~curses.color_pair` " -"function; this can be bitwise-OR'ed with other attributes such as " -":const:`A_REVERSE`, but again, such combinations are not guaranteed to work " -"on all terminals." +"foreground (or text) color and a background color. You can get the " +"attribute value corresponding to a color pair with the :func:`~curses." +"color_pair` function; this can be bitwise-OR'ed with other attributes such " +"as :const:`A_REVERSE`, but again, such combinations are not guaranteed to " +"work on all terminals." msgstr "" #: ../../howto/curses.rst:392 @@ -639,19 +639,19 @@ msgstr "" #: ../../howto/curses.rst:397 msgid "" -"As I said before, a color pair consists of a foreground and background color." -" The ``init_pair(n, f, b)`` function changes the definition of color pair " -"*n*, to foreground color f and background color b. Color pair 0 is hard-" -"wired to white on black, and cannot be changed." +"As I said before, a color pair consists of a foreground and background " +"color. The ``init_pair(n, f, b)`` function changes the definition of color " +"pair *n*, to foreground color f and background color b. Color pair 0 is " +"hard-wired to white on black, and cannot be changed." msgstr "" #: ../../howto/curses.rst:402 msgid "" "Colors are numbered, and :func:`start_color` initializes 8 basic colors when " -"it activates color mode. They are: 0:black, 1:red, 2:green, 3:yellow, " -"4:blue, 5:magenta, 6:cyan, and 7:white. The :mod:`curses` module defines " -"named constants for each of these colors: :const:`curses.COLOR_BLACK`, " -":const:`curses.COLOR_RED`, and so forth." +"it activates color mode. They are: 0:black, 1:red, 2:green, 3:yellow, 4:" +"blue, 5:magenta, 6:cyan, and 7:white. The :mod:`curses` module defines " +"named constants for each of these colors: :const:`curses.COLOR_BLACK`, :" +"const:`curses.COLOR_RED`, and so forth." msgstr "" #: ../../howto/curses.rst:408 @@ -679,11 +679,11 @@ msgstr "" msgid "" "Very fancy terminals can change the definitions of the actual colors to a " "given RGB value. This lets you change color 1, which is usually red, to " -"purple or blue or any other color you like. Unfortunately, the Linux console" -" doesn't support this, so I'm unable to try it out, and can't provide any " -"examples. You can check if your terminal can do this by calling " -":func:`~curses.can_change_color`, which returns ``True`` if the capability is" -" there. If you're lucky enough to have such a talented terminal, consult " +"purple or blue or any other color you like. Unfortunately, the Linux " +"console doesn't support this, so I'm unable to try it out, and can't provide " +"any examples. You can check if your terminal can do this by calling :func:" +"`~curses.can_change_color`, which returns ``True`` if the capability is " +"there. If you're lucky enough to have such a talented terminal, consult " "your system's man pages for more information." msgstr "" @@ -693,9 +693,9 @@ msgstr "" #: ../../howto/curses.rst:432 msgid "" -"The C curses library offers only very simple input mechanisms. Python's " -":mod:`curses` module adds a basic text-input widget. (Other libraries such " -"as :pypi:`Urwid` have more extensive collections of widgets.)" +"The C curses library offers only very simple input mechanisms. Python's :mod:" +"`curses` module adds a basic text-input widget. (Other libraries such as :" +"pypi:`Urwid` have more extensive collections of widgets.)" msgstr "" #: ../../howto/curses.rst:436 @@ -705,9 +705,9 @@ msgstr "" #: ../../howto/curses.rst:438 msgid "" ":meth:`~curses.window.get_wch` refreshes the screen and then waits for the " -"user to hit a key, displaying the key if :func:`~curses.echo` has been called" -" earlier. You can optionally specify a coordinate to which the cursor should" -" be moved before pausing." +"user to hit a key, displaying the key if :func:`~curses.echo` has been " +"called earlier. You can optionally specify a coordinate to which the cursor " +"should be moved before pausing." msgstr "" #: ../../howto/curses.rst:443 @@ -727,24 +727,23 @@ msgstr "" #: ../../howto/curses.rst:454 msgid "" -"It's possible to not wait for the user using the " -":meth:`~curses.window.nodelay` window method. After ``nodelay(True)``, the " -"reads for the window become non-blocking. To signal that no input is ready, " -":meth:`!get_wch` and :meth:`!getkey` raise an exception, and :meth:`!getch` " -"returns ``-1``. There's also a :func:`~curses.halfdelay` function, which can " -"be used to (in effect) set a timer on each read; if no input becomes " -"available within a specified delay (measured in tenths of a second), the read" -" fails the same way." +"It's possible to not wait for the user using the :meth:`~curses.window." +"nodelay` window method. After ``nodelay(True)``, the reads for the window " +"become non-blocking. To signal that no input is ready, :meth:`!get_wch` and :" +"meth:`!getkey` raise an exception, and :meth:`!getch` returns ``-1``. " +"There's also a :func:`~curses.halfdelay` function, which can be used to (in " +"effect) set a timer on each read; if no input becomes available within a " +"specified delay (measured in tenths of a second), the read fails the same " +"way." msgstr "" #: ../../howto/curses.rst:465 msgid "" "Special keys such as Page Up, Home, or the cursor keys are returned by all " -"three as one of the :ref:`KEY_* constants `, all larger" -" than 255. You can compare the value returned to constants such as " -":const:`curses.KEY_PPAGE`, :const:`curses.KEY_HOME`, or " -":const:`curses.KEY_LEFT`. The main loop of your program may look something " -"like this::" +"three as one of the :ref:`KEY_* constants `, all " +"larger than 255. You can compare the value returned to constants such as :" +"const:`curses.KEY_PPAGE`, :const:`curses.KEY_HOME`, or :const:`curses." +"KEY_LEFT`. The main loop of your program may look something like this::" msgstr "" #: ../../howto/curses.rst:473 @@ -761,22 +760,21 @@ msgstr "" #: ../../howto/curses.rst:482 msgid "" -"The :mod:`curses.ascii` module supplies ASCII class membership functions that" -" take either integer or 1-character string arguments; these may be useful in " -"writing more readable tests for such loops. It also supplies conversion " -"functions that take either integer or 1-character-string arguments and " -"return the same type. For example, :func:`curses.ascii.ctrl` returns the " -"control character corresponding to its argument." +"The :mod:`curses.ascii` module supplies ASCII class membership functions " +"that take either integer or 1-character string arguments; these may be " +"useful in writing more readable tests for such loops. It also supplies " +"conversion functions that take either integer or 1-character-string " +"arguments and return the same type. For example, :func:`curses.ascii.ctrl` " +"returns the control character corresponding to its argument." msgstr "" #: ../../howto/curses.rst:489 msgid "" -"There's also a method to retrieve an entire line, " -":meth:`~curses.window.getstr`. It isn't used very often, because its " -"functionality is quite limited; the only editing keys available are the erase" -" and kill characters, and the Enter key, which terminates the line. It " -"returns a bytes object, and can optionally be limited to a fixed number of " -"bytes. ::" +"There's also a method to retrieve an entire line, :meth:`~curses.window." +"getstr`. It isn't used very often, because its functionality is quite " +"limited; the only editing keys available are the erase and kill characters, " +"and the Enter key, which terminates the line. It returns a bytes object, and " +"can optionally be limited to a fixed number of bytes. ::" msgstr "" #: ../../howto/curses.rst:496 @@ -790,10 +788,9 @@ msgstr "" #: ../../howto/curses.rst:501 msgid "" "The :mod:`curses.textpad` module supplies a text box that supports an Emacs-" -"like set of keybindings. Various methods of the " -":class:`~curses.textpad.Textbox` class support editing with input validation " -"and gathering the edit results either with or without trailing spaces. " -"Here's an example::" +"like set of keybindings. Various methods of the :class:`~curses.textpad." +"Textbox` class support editing with input validation and gathering the edit " +"results either with or without trailing spaces. Here's an example::" msgstr "" #: ../../howto/curses.rst:507 @@ -830,28 +827,27 @@ msgstr "" msgid "" "This HOWTO doesn't cover some advanced topics, such as reading the contents " "of the screen or capturing mouse events from an xterm instance, but the " -"Python library page for the :mod:`curses` module is now reasonably complete." -" You should browse it next." +"Python library page for the :mod:`curses` module is now reasonably " +"complete. You should browse it next." msgstr "" #: ../../howto/curses.rst:536 msgid "" "If you're in doubt about the detailed behavior of the curses functions, " -"consult the manual pages for your curses implementation, whether it's ncurses" -" or a proprietary Unix vendor's. The manual pages will document any quirks, " -"and provide complete lists of all the functions, attributes, and " -":ref:`ACS_\\* ` characters available to you." +"consult the manual pages for your curses implementation, whether it's " +"ncurses or a proprietary Unix vendor's. The manual pages will document any " +"quirks, and provide complete lists of all the functions, attributes, and :" +"ref:`ACS_\\* ` characters available to you." msgstr "" #: ../../howto/curses.rst:543 msgid "" "Because the curses API is so large, some functions aren't supported in the " "Python interface. Often this isn't because they're difficult to implement, " -"but because no one has needed them yet. Also, Python doesn't yet support the" -" menu library associated with ncurses. Patches adding support for these would" -" be welcome; see `the Python Developer's Guide " -"`_ to learn more about submitting patches to " -"Python." +"but because no one has needed them yet. Also, Python doesn't yet support " +"the menu library associated with ncurses. Patches adding support for these " +"would be welcome; see `the Python Developer's Guide `_ to learn more about submitting patches to Python." msgstr "" #: ../../howto/curses.rst:551 @@ -871,9 +867,9 @@ msgstr "" #: ../../howto/curses.rst:555 msgid "" -"`\"Use curses... don't swear\" " -"`_: video of a PyCon 2013 talk " -"on controlling terminals using curses or Urwid." +"`\"Use curses... don't swear\" `_: video of a PyCon 2013 talk on controlling terminals using " +"curses or Urwid." msgstr "" #: ../../howto/curses.rst:557 diff --git a/howto/descriptor.po b/howto/descriptor.po index 0d4d0f5f..7a01a6b1 100644 --- a/howto/descriptor.po +++ b/howto/descriptor.po @@ -77,9 +77,8 @@ msgstr "" msgid "" "The last section has pure Python equivalents for built-in descriptors that " "are written in C. Read this if you're curious about how functions turn into " -"bound methods or about the implementation of common tools like " -":deco:`classmethod`, :deco:`staticmethod`, :deco:`property`, and " -":term:`__slots__`." +"bound methods or about the implementation of common tools like :deco:" +"`classmethod`, :deco:`staticmethod`, :deco:`property`, and :term:`__slots__`." msgstr "" #: ../../howto/descriptor.rst:36 @@ -140,9 +139,9 @@ msgstr "" #: ../../howto/descriptor.rst:73 msgid "" "In the ``a.x`` attribute lookup, the dot operator finds ``'x': 5`` in the " -"class dictionary. In the ``a.y`` lookup, the dot operator finds a descriptor" -" instance, recognized by its ``__get__`` method. Calling that method returns " -"``10``." +"class dictionary. In the ``a.y`` lookup, the dot operator finds a " +"descriptor instance, recognized by its ``__get__`` method. Calling that " +"method returns ``10``." msgstr "" #: ../../howto/descriptor.rst:78 @@ -199,23 +198,26 @@ msgstr "" msgid "" ">>> s = Directory('songs')\n" ">>> g = Directory('games')\n" -">>> s.size # The songs directory has twenty files\n" +">>> s.size # The songs directory has twenty " +"files\n" "20\n" -">>> g.size # The games directory has three files\n" +">>> g.size # The games directory has three " +"files\n" "3\n" ">>> os.remove('games/chess') # Delete a game\n" -">>> g.size # File count is automatically updated\n" +">>> g.size # File count is automatically " +"updated\n" "2" msgstr "" #: ../../howto/descriptor.rst:122 msgid "" "Besides showing how descriptors can run computations, this example also " -"reveals the purpose of the parameters to :meth:`~object.__get__`. The *self*" -" parameter is *size*, an instance of *DirectorySize*. The *obj* parameter is" -" either *g* or *s*, an instance of *Directory*. It is the *obj* parameter " -"that lets the :meth:`~object.__get__` method learn the target directory. The" -" *objtype* parameter is the class *Directory*." +"reveals the purpose of the parameters to :meth:`~object.__get__`. The " +"*self* parameter is *size*, an instance of *DirectorySize*. The *obj* " +"parameter is either *g* or *s*, an instance of *Directory*. It is the *obj* " +"parameter that lets the :meth:`~object.__get__` method learn the target " +"directory. The *objtype* parameter is the class *Directory*." msgstr "" #: ../../howto/descriptor.rst:131 @@ -226,9 +228,9 @@ msgstr "" msgid "" "A popular use for descriptors is managing access to instance data. The " "descriptor is assigned to a public attribute in the class dictionary while " -"the actual data is stored as a private attribute in the instance dictionary." -" The descriptor's :meth:`~object.__get__` and :meth:`~object.__set__` " -"methods are triggered when the public attribute is accessed." +"the actual data is stored as a private attribute in the instance " +"dictionary. The descriptor's :meth:`~object.__get__` and :meth:`~object." +"__set__` methods are triggered when the public attribute is accessed." msgstr "" #: ../../howto/descriptor.rst:139 @@ -280,21 +282,25 @@ msgid "" ">>> dave = Person('David D', 40)\n" "INFO:root:Updating 'age' to 40\n" "\n" -">>> vars(mary) # The actual data is in a private attribute\n" +">>> vars(mary) # The actual data is in a private " +"attribute\n" "{'name': 'Mary M', '_age': 30}\n" ">>> vars(dave)\n" "{'name': 'David D', '_age': 40}\n" "\n" -">>> mary.age # Access the data and log the lookup\n" +">>> mary.age # Access the data and log the " +"lookup\n" "INFO:root:Accessing 'age' giving 30\n" "30\n" ">>> mary.birthday() # Updates are logged as well\n" "INFO:root:Accessing 'age' giving 30\n" "INFO:root:Updating 'age' to 31\n" "\n" -">>> dave.name # Regular attribute lookup isn't logged\n" +">>> dave.name # Regular attribute lookup isn't " +"logged\n" "'David D'\n" -">>> dave.age # Only the managed attribute is logged\n" +">>> dave.age # Only the managed attribute is " +"logged\n" "INFO:root:Accessing 'age' giving 40\n" "40" msgstr "" @@ -362,9 +368,9 @@ msgstr "" #: ../../howto/descriptor.rst:256 msgid "" -"An interactive session shows that the :class:`!Person` class has called " -":meth:`~object.__set_name__` so that the field names would be recorded. Here" -" we call :func:`vars` to look up the descriptor without triggering it:" +"An interactive session shows that the :class:`!Person` class has called :" +"meth:`~object.__set_name__` so that the field names would be recorded. Here " +"we call :func:`vars` to look up the descriptor without triggering it:" msgstr "" #: ../../howto/descriptor.rst:260 @@ -407,24 +413,23 @@ msgstr "" #: ../../howto/descriptor.rst:297 msgid "" -"A :term:`descriptor` is what we call any object that defines " -":meth:`~object.__get__`, :meth:`~object.__set__`, or " -":meth:`~object.__delete__`." +"A :term:`descriptor` is what we call any object that defines :meth:`~object." +"__get__`, :meth:`~object.__set__`, or :meth:`~object.__delete__`." msgstr "" #: ../../howto/descriptor.rst:300 msgid "" -"Optionally, descriptors can have a :meth:`~object.__set_name__` method. This" -" is only used in cases where a descriptor needs to know either the class " -"where it was created or the name of class variable it was assigned to. (This" -" method, if present, is called even if the class is not a descriptor.)" +"Optionally, descriptors can have a :meth:`~object.__set_name__` method. " +"This is only used in cases where a descriptor needs to know either the class " +"where it was created or the name of class variable it was assigned to. " +"(This method, if present, is called even if the class is not a descriptor.)" msgstr "" #: ../../howto/descriptor.rst:305 msgid "" "Descriptors get invoked by the dot operator during attribute lookup. If a " -"descriptor is accessed indirectly with ``vars(some_class)[descriptor_name]``," -" the descriptor instance is returned without invoking it." +"descriptor is accessed indirectly with ``vars(some_class)" +"[descriptor_name]``, the descriptor instance is returned without invoking it." msgstr "" #: ../../howto/descriptor.rst:309 @@ -449,9 +454,9 @@ msgstr "" #: ../../howto/descriptor.rst:319 msgid "" "Descriptors are used throughout the language. It is how functions turn into " -"bound methods. Common tools like :deco:`classmethod`, :deco:`staticmethod`, " -":deco:`property`, and :deco:`functools.cached_property` are all implemented " -"as descriptors." +"bound methods. Common tools like :deco:`classmethod`, :deco:" +"`staticmethod`, :deco:`property`, and :deco:`functools.cached_property` are " +"all implemented as descriptors." msgstr "" #: ../../howto/descriptor.rst:326 @@ -505,8 +510,8 @@ msgstr "" #: ../../howto/descriptor.rst:363 msgid "" -"Custom validators need to inherit from :class:`!Validator` and must supply a " -":meth:`!validate` method to test various restrictions as needed." +"Custom validators need to inherit from :class:`!Validator` and must supply " +"a :meth:`!validate` method to test various restrictions as needed." msgstr "" #: ../../howto/descriptor.rst:368 @@ -524,9 +529,9 @@ msgstr "" #: ../../howto/descriptor.rst:374 msgid "" -":class:`!Number` verifies that a value is either an :class:`int` or " -":class:`float`. Optionally, it verifies that a value is between a given " -"minimum or maximum." +":class:`!Number` verifies that a value is either an :class:`int` or :class:" +"`float`. Optionally, it verifies that a value is between a given minimum or " +"maximum." msgstr "" #: ../../howto/descriptor.rst:378 @@ -580,7 +585,8 @@ msgid "" " raise TypeError(f'Expected {value!r} to be a str')\n" " if self.minsize is not None and len(value) < self.minsize:\n" " raise ValueError(\n" -" f'Expected {value!r} to be no smaller than {self.minsize!r}'\n" +" f'Expected {value!r} to be no smaller than {self.minsize!" +"r}'\n" " )\n" " if self.maxsize is not None and len(value) > self.maxsize:\n" " raise ValueError(\n" @@ -620,10 +626,12 @@ msgstr "" #: ../../howto/descriptor.rst:458 msgid "" -">>> Component('Widget', 'metal', 5) # Blocked: 'Widget' is not all uppercase\n" +">>> Component('Widget', 'metal', 5) # Blocked: 'Widget' is not all " +"uppercase\n" "Traceback (most recent call last):\n" " ...\n" -"ValueError: Expected to be true for 'Widget'\n" +"ValueError: Expected to be true for " +"'Widget'\n" "\n" ">>> Component('WIDGET', 'metle', 5) # Blocked: 'metle' is misspelled\n" "Traceback (most recent call last):\n" @@ -675,9 +683,9 @@ msgstr "" #: ../../howto/descriptor.rst:503 msgid "" -"In general, a descriptor is an attribute value that has one of the methods in" -" the descriptor protocol. Those methods are :meth:`~object.__get__`, " -":meth:`~object.__set__`, and :meth:`~object.__delete__`. If any of those " +"In general, a descriptor is an attribute value that has one of the methods " +"in the descriptor protocol. Those methods are :meth:`~object.__get__`, :" +"meth:`~object.__set__`, and :meth:`~object.__delete__`. If any of those " "methods are defined for an attribute, it is said to be a :term:`descriptor`." msgstr "" @@ -687,18 +695,18 @@ msgid "" "attribute from an object's dictionary. For instance, ``a.x`` has a lookup " "chain starting with ``a.__dict__['x']``, then ``type(a).__dict__['x']``, and " "continuing through the method resolution order of ``type(a)``. If the looked-" -"up value is an object defining one of the descriptor methods, then Python may" -" override the default behavior and invoke the descriptor method instead. " -"Where this occurs in the precedence chain depends on which descriptor methods" -" were defined." +"up value is an object defining one of the descriptor methods, then Python " +"may override the default behavior and invoke the descriptor method instead. " +"Where this occurs in the precedence chain depends on which descriptor " +"methods were defined." msgstr "" #: ../../howto/descriptor.rst:517 msgid "" -"Descriptors are a powerful, general purpose protocol. They are the mechanism" -" behind properties, methods, static methods, class methods, and " -":func:`super`. They are used throughout Python itself. Descriptors simplify" -" the underlying C code and offer a flexible set of new tools for everyday " +"Descriptors are a powerful, general purpose protocol. They are the " +"mechanism behind properties, methods, static methods, class methods, and :" +"func:`super`. They are used throughout Python itself. Descriptors simplify " +"the underlying C code and offer a flexible set of new tools for everyday " "Python programs." msgstr "" @@ -728,9 +736,9 @@ msgstr "" #: ../../howto/descriptor.rst:537 msgid "" "If an object defines :meth:`~object.__set__` or :meth:`~object.__delete__`, " -"it is considered a data descriptor. Descriptors that only define " -":meth:`~object.__get__` are called non-data descriptors (they are often used " -"for methods but other uses are possible)." +"it is considered a data descriptor. Descriptors that only define :meth:" +"`~object.__get__` are called non-data descriptors (they are often used for " +"methods but other uses are possible)." msgstr "" #: ../../howto/descriptor.rst:542 @@ -744,11 +752,10 @@ msgstr "" #: ../../howto/descriptor.rst:548 msgid "" -"To make a read-only data descriptor, define both :meth:`~object.__get__` and " -":meth:`~object.__set__` with the :meth:`~object.__set__` raising an " -":exc:`AttributeError` when called. Defining the :meth:`~object.__set__` " -"method with an exception raising placeholder is enough to make it a data " -"descriptor." +"To make a read-only data descriptor, define both :meth:`~object.__get__` " +"and :meth:`~object.__set__` with the :meth:`~object.__set__` raising an :exc:" +"`AttributeError` when called. Defining the :meth:`~object.__set__` method " +"with an exception raising placeholder is enough to make it a data descriptor." msgstr "" #: ../../howto/descriptor.rst:555 @@ -757,8 +764,8 @@ msgstr "" #: ../../howto/descriptor.rst:557 msgid "" -"A descriptor can be called directly with ``desc.__get__(obj)`` or " -"``desc.__get__(None, cls)``." +"A descriptor can be called directly with ``desc.__get__(obj)`` or ``desc." +"__get__(None, cls)``." msgstr "" #: ../../howto/descriptor.rst:560 @@ -795,14 +802,14 @@ msgstr "" #: ../../howto/descriptor.rst:580 msgid "" -"If a descriptor is found for ``a.x``, then it is invoked with: " -"``desc.__get__(a, type(a))``." +"If a descriptor is found for ``a.x``, then it is invoked with: ``desc." +"__get__(a, type(a))``." msgstr "" #: ../../howto/descriptor.rst:583 msgid "" -"The logic for a dotted lookup is in :meth:`object.__getattribute__`. Here is" -" a pure Python equivalent:" +"The logic for a dotted lookup is in :meth:`object.__getattribute__`. Here " +"is a pure Python equivalent:" msgstr "" #: ../../howto/descriptor.rst:586 @@ -827,7 +834,8 @@ msgid "" " if hasattr(obj, '__dict__') and name in vars(obj):\n" " return vars(obj)[name] # instance variable\n" " if descr_get is not null:\n" -" return descr_get(cls_var, obj, objtype) # non-data descriptor\n" +" return descr_get(cls_var, obj, objtype) # non-data " +"descriptor\n" " if cls_var is not null:\n" " return cls_var # class variable\n" " raise AttributeError(name)" @@ -835,19 +843,18 @@ msgstr "" #: ../../howto/descriptor.rst:722 msgid "" -"Note, there is no :meth:`~object.__getattr__` hook in the " -":meth:`~object.__getattribute__` code. That is why calling " -":meth:`~object.__getattribute__` directly or with " -"``super().__getattribute__`` will bypass :meth:`~object.__getattr__` " -"entirely." +"Note, there is no :meth:`~object.__getattr__` hook in the :meth:`~object." +"__getattribute__` code. That is why calling :meth:`~object." +"__getattribute__` directly or with ``super().__getattribute__`` will bypass :" +"meth:`~object.__getattr__` entirely." msgstr "" #: ../../howto/descriptor.rst:726 msgid "" "Instead, it is the dot operator and the :func:`getattr` function that are " -"responsible for invoking :meth:`~object.__getattr__` whenever " -":meth:`~object.__getattribute__` raises an :exc:`AttributeError`. Their " -"logic is encapsulated in a helper function:" +"responsible for invoking :meth:`~object.__getattr__` whenever :meth:`~object." +"__getattribute__` raises an :exc:`AttributeError`. Their logic is " +"encapsulated in a helper function:" msgstr "" #: ../../howto/descriptor.rst:731 @@ -868,10 +875,10 @@ msgstr "" #: ../../howto/descriptor.rst:778 msgid "" -"The logic for a dotted lookup such as ``A.x`` is in " -":meth:`!type.__getattribute__`. The steps are similar to those for " -":meth:`!object.__getattribute__` but the instance dictionary lookup is " -"replaced by a search through the class's :term:`method resolution order`." +"The logic for a dotted lookup such as ``A.x`` is in :meth:`!type." +"__getattribute__`. The steps are similar to those for :meth:`!object." +"__getattribute__` but the instance dictionary lookup is replaced by a search " +"through the class's :term:`method resolution order`." msgstr "" #: ../../howto/descriptor.rst:783 @@ -880,8 +887,8 @@ msgstr "" #: ../../howto/descriptor.rst:785 msgid "" -"The full C implementation can be found in :c:func:`!type_getattro` and " -":c:func:`!_PyType_Lookup` in :source:`Objects/typeobject.c`." +"The full C implementation can be found in :c:func:`!type_getattro` and :c:" +"func:`!_PyType_Lookup` in :source:`Objects/typeobject.c`." msgstr "" #: ../../howto/descriptor.rst:790 @@ -890,24 +897,24 @@ msgstr "" #: ../../howto/descriptor.rst:792 msgid "" -"The logic for super's dotted lookup is in the " -":meth:`~object.__getattribute__` method for object returned by :func:`super`." +"The logic for super's dotted lookup is in the :meth:`~object." +"__getattribute__` method for object returned by :func:`super`." msgstr "" #: ../../howto/descriptor.rst:795 msgid "" -"A dotted lookup such as ``super(A, obj).m`` searches " -"``obj.__class__.__mro__`` for the base class ``B`` immediately following " -"``A`` and then returns ``B.__dict__['m'].__get__(obj, A)``. If not a " -"descriptor, ``m`` is returned unchanged." +"A dotted lookup such as ``super(A, obj).m`` searches ``obj.__class__." +"__mro__`` for the base class ``B`` immediately following ``A`` and then " +"returns ``B.__dict__['m'].__get__(obj, A)``. If not a descriptor, ``m`` is " +"returned unchanged." msgstr "" #: ../../howto/descriptor.rst:800 msgid "" -"The full C implementation can be found in :c:func:`!super_getattro` in " -":source:`Objects/typeobject.c`. A pure Python equivalent can be found in " -"`Guido's Tutorial " -"`_." +"The full C implementation can be found in :c:func:`!super_getattro` in :" +"source:`Objects/typeobject.c`. A pure Python equivalent can be found in " +"`Guido's Tutorial `_." msgstr "" #: ../../howto/descriptor.rst:807 @@ -916,9 +923,9 @@ msgstr "" #: ../../howto/descriptor.rst:809 msgid "" -"The mechanism for descriptors is embedded in the " -":meth:`~object.__getattribute__` methods for :class:`object`, :class:`type`, " -"and :func:`super`." +"The mechanism for descriptors is embedded in the :meth:`~object." +"__getattribute__` methods for :class:`object`, :class:`type`, and :func:" +"`super`." msgstr "" #: ../../howto/descriptor.rst:812 @@ -931,8 +938,8 @@ msgstr "" #: ../../howto/descriptor.rst:816 msgid "" -"Classes inherit this machinery from :class:`object`, :class:`type`, or " -":func:`super`." +"Classes inherit this machinery from :class:`object`, :class:`type`, or :func:" +"`super`." msgstr "" #: ../../howto/descriptor.rst:819 @@ -964,8 +971,8 @@ msgstr "" #: ../../howto/descriptor.rst:835 msgid "" "Sometimes it is desirable for a descriptor to know what class variable name " -"it was assigned to. When a new class is created, the :class:`type` metaclass" -" scans the dictionary of the new class. If any of the entries are " +"it was assigned to. When a new class is created, the :class:`type` " +"metaclass scans the dictionary of the new class. If any of the entries are " "descriptors and if they define :meth:`~object.__set_name__`, that method is " "called with two arguments. The *owner* is the class where the descriptor is " "used, and the *name* is the class variable the descriptor was assigned to." @@ -973,8 +980,8 @@ msgstr "" #: ../../howto/descriptor.rst:842 msgid "" -"The implementation details are in :c:func:`!type_new` and " -":c:func:`!set_names` in :source:`Objects/typeobject.c`." +"The implementation details are in :c:func:`!type_new` and :c:func:`!" +"set_names` in :source:`Objects/typeobject.c`." msgstr "" #: ../../howto/descriptor.rst:845 @@ -991,8 +998,8 @@ msgstr "" #: ../../howto/descriptor.rst:853 msgid "" "The following code is a simplified skeleton showing how data descriptors " -"could be used to implement an `object relational mapping " -"`_." +"could be used to implement an `object relational mapping `_." msgstr "" #: ../../howto/descriptor.rst:857 @@ -1007,8 +1014,10 @@ msgid "" "class Field:\n" "\n" " def __set_name__(self, owner, name):\n" -" self.fetch = f'SELECT {name} FROM {owner.table} WHERE {owner.key}=?;'\n" -" self.store = f'UPDATE {owner.table} SET {name}=? WHERE {owner.key}=?;'\n" +" self.fetch = f'SELECT {name} FROM {owner.table} WHERE {owner.key}" +"=?;'\n" +" self.store = f'UPDATE {owner.table} SET {name}=? WHERE {owner.key}" +"=?;'\n" "\n" " def __get__(self, obj, objtype=None):\n" " return conn.execute(self.fetch, [obj.key]).fetchone()[0]\n" @@ -1020,9 +1029,9 @@ msgstr "" #: ../../howto/descriptor.rst:876 msgid "" -"We can use the :class:`!Field` class to define `models " -"`_ that describe the schema for" -" each table in a database:" +"We can use the :class:`!Field` class to define `models `_ that describe the schema for each table in a " +"database:" msgstr "" #: ../../howto/descriptor.rst:880 @@ -1085,9 +1094,9 @@ msgstr "" #: ../../howto/descriptor.rst:957 msgid "" -"The descriptor protocol is simple and offers exciting possibilities. Several" -" use cases are so common that they have been prepackaged into built-in tools." -" Properties, bound methods, static methods, class methods, and " +"The descriptor protocol is simple and offers exciting possibilities. " +"Several use cases are so common that they have been prepackaged into built-" +"in tools. Properties, bound methods, static methods, class methods, and " "\\_\\_slots\\_\\_ are all based on the descriptor protocol." msgstr "" @@ -1097,8 +1106,9 @@ msgstr "" #: ../../howto/descriptor.rst:966 msgid "" -"Calling :func:`property` is a succinct way of building a data descriptor that" -" triggers a function call upon access to an attribute. Its signature is::" +"Calling :func:`property` is a succinct way of building a data descriptor " +"that triggers a function call upon access to an attribute. Its signature " +"is::" msgstr "" #: ../../howto/descriptor.rst:969 @@ -1259,9 +1269,9 @@ msgstr "" #: ../../howto/descriptor.rst:1189 msgid "" -"To support automatic creation of methods, functions include the " -":meth:`~object.__get__` method for binding methods during attribute access. " -"This means that functions are non-data descriptors that return bound methods " +"To support automatic creation of methods, functions include the :meth:" +"`~object.__get__` method for binding methods during attribute access. This " +"means that functions are non-data descriptors that return bound methods " "during dotted lookup from an instance. Here's how it works:" msgstr "" @@ -1306,9 +1316,8 @@ msgstr "" #: ../../howto/descriptor.rst:1233 msgid "" -"Accessing the function through the class dictionary does not invoke " -":meth:`~object.__get__`. Instead, it just returns the underlying function " -"object::" +"Accessing the function through the class dictionary does not invoke :meth:" +"`~object.__get__`. Instead, it just returns the underlying function object::" msgstr "" #: ../../howto/descriptor.rst:1236 @@ -1360,8 +1369,8 @@ msgstr "" #: ../../howto/descriptor.rst:1261 msgid "" -"If you have ever wondered where *self* comes from in regular methods or where" -" *cls* comes from in class methods, this is it!" +"If you have ever wondered where *self* comes from in regular methods or " +"where *cls* comes from in class methods, this is it!" msgstr "" #: ../../howto/descriptor.rst:1266 @@ -1376,10 +1385,10 @@ msgstr "" #: ../../howto/descriptor.rst:1271 msgid "" -"To recap, functions have a :meth:`~object.__get__` method so that they can be" -" converted to a method when accessed as attributes. The non-data descriptor " -"transforms an ``obj.f(*args)`` call into ``f(obj, *args)``. Calling " -"``cls.f(*args)`` becomes ``f(*args)``." +"To recap, functions have a :meth:`~object.__get__` method so that they can " +"be converted to a method when accessed as attributes. The non-data " +"descriptor transforms an ``obj.f(*args)`` call into ``f(obj, *args)``. " +"Calling ``cls.f(*args)`` becomes ``f(*args)``." msgstr "" #: ../../howto/descriptor.rst:1276 @@ -1433,10 +1442,10 @@ msgstr "" #: ../../howto/descriptor.rst:1293 msgid "" "Static methods return the underlying function without changes. Calling " -"either ``c.f`` or ``C.f`` is the equivalent of a direct lookup into " -"``object.__getattribute__(c, \"f\")`` or ``object.__getattribute__(C, " -"\"f\")``. As a result, the function becomes identically accessible from " -"either an object or a class." +"either ``c.f`` or ``C.f`` is the equivalent of a direct lookup into ``object." +"__getattribute__(c, \"f\")`` or ``object.__getattribute__(C, \"f\")``. As a " +"result, the function becomes identically accessible from either an object or " +"a class." msgstr "" #: ../../howto/descriptor.rst:1299 @@ -1481,8 +1490,8 @@ msgstr "" #: ../../howto/descriptor.rst:1328 msgid "" -"Using the non-data descriptor protocol, a pure Python version of " -":deco:`staticmethod` would look like this:" +"Using the non-data descriptor protocol, a pure Python version of :deco:" +"`staticmethod` would look like this:" msgstr "" #: ../../howto/descriptor.rst:1331 @@ -1512,8 +1521,8 @@ msgid "" "The :func:`functools.update_wrapper` call adds a ``__wrapped__`` attribute " "that refers to the underlying function. Also it carries forward the " "attributes necessary to make the wrapper look like the wrapped function, " -"including :attr:`~function.__name__`, :attr:`~function.__qualname__`, and " -":attr:`~function.__doc__`." +"including :attr:`~function.__name__`, :attr:`~function.__qualname__`, and :" +"attr:`~function.__doc__`." msgstr "" #: ../../howto/descriptor.rst:1421 @@ -1548,8 +1557,8 @@ msgid "" "This behavior is useful whenever the method only needs to have a class " "reference and does not rely on data stored in a specific instance. One use " "for class methods is to create alternate class constructors. For example, " -"the classmethod :func:`dict.fromkeys` creates a new dictionary from a list of" -" keys. The pure Python equivalent is:" +"the classmethod :func:`dict.fromkeys` creates a new dictionary from a list " +"of keys. The pure Python equivalent is:" msgstr "" #: ../../howto/descriptor.rst:1447 @@ -1579,8 +1588,8 @@ msgstr "" #: ../../howto/descriptor.rst:1468 msgid "" -"Using the non-data descriptor protocol, a pure Python version of " -":deco:`classmethod` would look like this:" +"Using the non-data descriptor protocol, a pure Python version of :deco:" +"`classmethod` would look like this:" msgstr "" #: ../../howto/descriptor.rst:1471 @@ -1605,8 +1614,9 @@ msgid "" "The :func:`functools.update_wrapper` call in ``ClassMethod`` adds a " "``__wrapped__`` attribute that refers to the underlying function. Also it " "carries forward the attributes necessary to make the wrapper look like the " -"wrapped function: :attr:`~function.__name__`, :attr:`~function.__qualname__`," -" :attr:`~function.__doc__`, and :attr:`~function.__annotations__`." +"wrapped function: :attr:`~function.__name__`, :attr:`~function." +"__qualname__`, :attr:`~function.__doc__`, and :attr:`~function." +"__annotations__`." msgstr "" #: ../../howto/descriptor.rst:1542 @@ -1651,7 +1661,8 @@ msgstr "" msgid "" "class Immutable:\n" "\n" -" __slots__ = ('_dept', '_name') # Replace the instance dictionary\n" +" __slots__ = ('_dept', '_name') # Replace the instance " +"dictionary\n" "\n" " def __init__(self, dept, name):\n" " self._dept = dept # Store to private attribute\n" @@ -1728,8 +1739,8 @@ msgid "" "``__slots__`` because it requires direct access to C structures and control " "over object memory allocation. However, we can build a mostly faithful " "simulation where the actual C structure for slots is emulated by a private " -"``_slotvalues`` list. Reads and writes to that private structure are managed" -" by member descriptors:" +"``_slotvalues`` list. Reads and writes to that private structure are " +"managed by member descriptors:" msgstr "" #: ../../howto/descriptor.rst:1636 @@ -1773,8 +1784,8 @@ msgstr "" #: ../../howto/descriptor.rst:1674 msgid "" -"The :meth:`!type.__new__` method takes care of adding member objects to class" -" variables:" +"The :meth:`!type.__new__` method takes care of adding member objects to " +"class variables:" msgstr "" #: ../../howto/descriptor.rst:1677 @@ -1832,8 +1843,8 @@ msgstr "" #: ../../howto/descriptor.rst:1725 msgid "" -"To use the simulation in a real class, just inherit from :class:`!Object` and" -" set the :term:`metaclass` to :class:`Type`:" +"To use the simulation in a real class, just inherit from :class:`!Object` " +"and set the :term:`metaclass` to :class:`Type`:" msgstr "" #: ../../howto/descriptor.rst:1728 diff --git a/howto/functional.po b/howto/functional.po index 3de80d2b..27bbbe24 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -44,8 +44,8 @@ msgstr "" msgid "" "In this document, we'll take a tour of Python's features suitable for " "implementing programs in a functional style. After an introduction to the " -"concepts of functional programming, we'll look at language features such as " -":term:`iterator`\\s and :term:`generator`\\s and relevant library modules " +"concepts of functional programming, we'll look at language features such as :" +"term:`iterator`\\s and :term:`generator`\\s and relevant library modules " "such as :mod:`itertools` and :mod:`functools`." msgstr "" @@ -84,10 +84,10 @@ msgstr "" #: ../../howto/functional.rst:37 msgid "" -"**Object-oriented** programs manipulate collections of objects. Objects have" -" internal state and support methods that query or modify this internal state " -"in some way. Smalltalk and Java are object-oriented languages. C++ and " -"Python are languages that support object-oriented programming, but don't " +"**Object-oriented** programs manipulate collections of objects. Objects " +"have internal state and support methods that query or modify this internal " +"state in some way. Smalltalk and Java are object-oriented languages. C++ " +"and Python are languages that support object-oriented programming, but don't " "force the use of object-oriented features." msgstr "" @@ -194,29 +194,29 @@ msgstr "" msgid "" "For a long time researchers have been interested in finding ways to " "mathematically prove programs correct. This is different from testing a " -"program on numerous inputs and concluding that its output is usually correct," -" or reading a program's source code and concluding that the code looks right;" -" the goal is instead a rigorous proof that a program produces the right " -"result for all possible inputs." +"program on numerous inputs and concluding that its output is usually " +"correct, or reading a program's source code and concluding that the code " +"looks right; the goal is instead a rigorous proof that a program produces " +"the right result for all possible inputs." msgstr "" #: ../../howto/functional.rst:113 msgid "" -"The technique used to prove programs correct is to write down **invariants**," -" properties of the input data and of the program's variables that are always " -"true. For each line of code, you then show that if invariants X and Y are " -"true **before** the line is executed, the slightly different invariants X' " -"and Y' are true **after** the line is executed. This continues until you " -"reach the end of the program, at which point the invariants should match the " -"desired conditions on the program's output." +"The technique used to prove programs correct is to write down " +"**invariants**, properties of the input data and of the program's variables " +"that are always true. For each line of code, you then show that if " +"invariants X and Y are true **before** the line is executed, the slightly " +"different invariants X' and Y' are true **after** the line is executed. " +"This continues until you reach the end of the program, at which point the " +"invariants should match the desired conditions on the program's output." msgstr "" #: ../../howto/functional.rst:121 msgid "" "Functional programming's avoidance of assignments arose because assignments " -"are difficult to handle with this technique; assignments can break invariants" -" that were true before the assignment without producing any new invariants " -"that can be propagated onward." +"are difficult to handle with this technique; assignments can break " +"invariants that were true before the assignment without producing any new " +"invariants that can be propagated onward." msgstr "" #: ../../howto/functional.rst:126 @@ -224,8 +224,8 @@ msgid "" "Unfortunately, proving programs correct is largely impractical and not " "relevant to Python software. Even trivial programs require proofs that are " "several pages long; the proof of correctness for a moderately complicated " -"program would be enormous, and few or none of the programs you use daily (the" -" Python interpreter, your XML parser, your web browser) could be proven " +"program would be enormous, and few or none of the programs you use daily " +"(the Python interpreter, your XML parser, your web browser) could be proven " "correct. Even if you wrote down or generated a proof, there would then be " "the question of verifying the proof; maybe there's an error in it, and you " "wrongly believe you've proved the program correct." @@ -275,8 +275,8 @@ msgstr "" #: ../../howto/functional.rst:165 msgid "" -"As you work on a functional-style program, you'll write a number of functions" -" with varying inputs and outputs. Some of these functions will be " +"As you work on a functional-style program, you'll write a number of " +"functions with varying inputs and outputs. Some of these functions will be " "unavoidably specialized to a particular application, but others will be " "useful in a wide variety of programs. For example, a function that takes a " "directory path and returns all the XML files in the directory, or a function " @@ -286,9 +286,9 @@ msgstr "" #: ../../howto/functional.rst:172 msgid "" -"Over time you'll form a personal library of utilities. Often you'll assemble" -" new programs by arranging existing functions in a new configuration and " -"writing a few functions specialized for the current task." +"Over time you'll form a personal library of utilities. Often you'll " +"assemble new programs by arranging existing functions in a new configuration " +"and writing a few functions specialized for the current task." msgstr "" #: ../../howto/functional.rst:180 @@ -306,20 +306,20 @@ msgid "" "An iterator is an object representing a stream of data; this object returns " "the data one element at a time. A Python iterator must support a method " "called :meth:`~iterator.__next__` that takes no arguments and always returns " -"the next element of the stream. If there are no more elements in the stream," -" :meth:`~iterator.__next__` must raise the :exc:`StopIteration` exception. " -"Iterators don't have to be finite, though; it's perfectly reasonable to write" -" an iterator that produces an infinite stream of data." +"the next element of the stream. If there are no more elements in the " +"stream, :meth:`~iterator.__next__` must raise the :exc:`StopIteration` " +"exception. Iterators don't have to be finite, though; it's perfectly " +"reasonable to write an iterator that produces an infinite stream of data." msgstr "" #: ../../howto/functional.rst:193 msgid "" "The built-in :func:`iter` function takes an arbitrary object and tries to " "return an iterator that will return the object's contents or elements, " -"raising :exc:`TypeError` if the object doesn't support iteration. Several of" -" Python's built-in data types support iteration, the most common being lists " -"and dictionaries. An object is called :term:`iterable` if you can get an " -"iterator for it." +"raising :exc:`TypeError` if the object doesn't support iteration. Several " +"of Python's built-in data types support iteration, the most common being " +"lists and dictionaries. An object is called :term:`iterable` if you can get " +"an iterator for it." msgstr "" #: ../../howto/functional.rst:200 @@ -345,8 +345,8 @@ msgstr "" #: ../../howto/functional.rst:230 msgid "" -"Iterators can be materialized as lists or tuples by using the :func:`list` or" -" :func:`tuple` constructor functions:" +"Iterators can be materialized as lists or tuples by using the :func:`list` " +"or :func:`tuple` constructor functions:" msgstr "" #: ../../howto/functional.rst:239 @@ -361,20 +361,20 @@ msgid "" "iterator argument and will return the largest or smallest element. The " "``\"in\"`` and ``\"not in\"`` operators also support iterators: ``X in " "iterator`` is true if X is found in the stream returned by the iterator. " -"You'll run into obvious problems if the iterator is infinite; :func:`max`, " -":func:`min` will never return, and if the element X never appears in the " +"You'll run into obvious problems if the iterator is infinite; :func:`max`, :" +"func:`min` will never return, and if the element X never appears in the " "stream, the ``\"in\"`` and ``\"not in\"`` operators won't return either." msgstr "" #: ../../howto/functional.rst:256 msgid "" "Note that you can only go forward in an iterator; there's no way to get the " -"previous element, reset the iterator, or make a copy of it. Iterator objects" -" can optionally provide these additional capabilities, but the iterator " -"protocol only specifies the :meth:`~iterator.__next__` method. Functions may" -" therefore consume all of the iterator's output, and if you need to do " -"something different with the same stream, you'll have to create a new " -"iterator." +"previous element, reset the iterator, or make a copy of it. Iterator " +"objects can optionally provide these additional capabilities, but the " +"iterator protocol only specifies the :meth:`~iterator.__next__` method. " +"Functions may therefore consume all of the iterator's output, and if you " +"need to do something different with the same stream, you'll have to create a " +"new iterator." msgstr "" #: ../../howto/functional.rst:266 @@ -384,8 +384,8 @@ msgstr "" #: ../../howto/functional.rst:268 msgid "" "We've already seen how lists and tuples support iterators. In fact, any " -"Python sequence type, such as strings, will automatically support creation of" -" an iterator." +"Python sequence type, such as strings, will automatically support creation " +"of an iterator." msgstr "" #: ../../howto/functional.rst:272 @@ -417,17 +417,16 @@ msgstr "" #: ../../howto/functional.rst:292 msgid "" "Note that starting with Python 3.7, dictionary iteration order is guaranteed " -"to be the same as the insertion order. In earlier versions, the behaviour was" -" unspecified and could vary between implementations." +"to be the same as the insertion order. In earlier versions, the behaviour " +"was unspecified and could vary between implementations." msgstr "" #: ../../howto/functional.rst:296 msgid "" "Applying :func:`iter` to a dictionary always loops over the keys, but " "dictionaries have methods that return other iterators. If you want to " -"iterate over values or key/value pairs, you can explicitly call the " -":meth:`~dict.values` or :meth:`~dict.items` methods to get an appropriate " -"iterator." +"iterate over values or key/value pairs, you can explicitly call the :meth:" +"`~dict.values` or :meth:`~dict.items` methods to get an appropriate iterator." msgstr "" #: ../../howto/functional.rst:302 @@ -476,10 +475,10 @@ msgstr "" #: ../../howto/functional.rst:335 msgid "" "Two common operations on an iterator's output are 1) performing some " -"operation for every element, 2) selecting a subset of elements that meet some" -" condition. For example, given a list of strings, you might want to strip off" -" trailing whitespace from each line or extract all the strings containing a " -"given substring." +"operation for every element, 2) selecting a subset of elements that meet " +"some condition. For example, given a list of strings, you might want to " +"strip off trailing whitespace from each line or extract all the strings " +"containing a given substring." msgstr "" #: ../../howto/functional.rst:341 @@ -502,7 +501,8 @@ msgid "" msgstr "" #: ../../howto/functional.rst:354 -msgid "You can select only certain elements by adding an ``\"if\"`` condition::" +msgid "" +"You can select only certain elements by adding an ``\"if\"`` condition::" msgstr "" #: ../../howto/functional.rst:356 @@ -513,13 +513,13 @@ msgstr "" #: ../../howto/functional.rst:359 msgid "" -"With a list comprehension, you get back a Python list; ``stripped_list`` is a" -" list containing the resulting lines, not an iterator. Generator expressions" -" return an iterator that computes the values as necessary, not needing to " -"materialize all the values at once. This means that list comprehensions " -"aren't useful if you're working with iterators that return an infinite stream" -" or a very large amount of data. Generator expressions are preferable in " -"these situations." +"With a list comprehension, you get back a Python list; ``stripped_list`` is " +"a list containing the resulting lines, not an iterator. Generator " +"expressions return an iterator that computes the values as necessary, not " +"needing to materialize all the values at once. This means that list " +"comprehensions aren't useful if you're working with iterators that return an " +"infinite stream or a very large amount of data. Generator expressions are " +"preferable in these situations." msgstr "" #: ../../howto/functional.rst:366 @@ -610,8 +610,8 @@ msgstr "" #: ../../howto/functional.rst:428 msgid "" -"To avoid introducing an ambiguity into Python's grammar, if ``expression`` is" -" creating a tuple, it must be surrounded with parentheses. The first list " +"To avoid introducing an ambiguity into Python's grammar, if ``expression`` " +"is creating a tuple, it must be surrounded with parentheses. The first list " "comprehension below is a syntax error, while the second one is correct::" msgstr "" @@ -629,22 +629,22 @@ msgstr "" #: ../../howto/functional.rst:441 msgid "" -"Generators are a special class of functions that simplify the task of writing" -" iterators. Regular functions compute a value and return it, but generators " -"return an iterator that returns a stream of values." +"Generators are a special class of functions that simplify the task of " +"writing iterators. Regular functions compute a value and return it, but " +"generators return an iterator that returns a stream of values." msgstr "" #: ../../howto/functional.rst:445 msgid "" "You're doubtless familiar with how regular function calls work in Python or " "C. When you call a function, it gets a private namespace where its local " -"variables are created. When the function reaches a ``return`` statement, the" -" local variables are destroyed and the value is returned to the caller. A " -"later call to the same function creates a new private namespace and a fresh " -"set of local variables. But, what if the local variables weren't thrown away " -"on exiting a function? What if you could later resume the function where it " -"left off? This is what generators provide; they can be thought of as " -"resumable functions." +"variables are created. When the function reaches a ``return`` statement, " +"the local variables are destroyed and the value is returned to the caller. " +"A later call to the same function creates a new private namespace and a " +"fresh set of local variables. But, what if the local variables weren't " +"thrown away on exiting a function? What if you could later resume the " +"function where it left off? This is what generators provide; they can be " +"thought of as resumable functions." msgstr "" #: ../../howto/functional.rst:454 @@ -660,14 +660,14 @@ msgstr "" #: ../../howto/functional.rst:464 msgid "" -"When you call a generator function, it doesn't return a single value; instead" -" it returns a generator object that supports the iterator protocol. On " -"executing the ``yield`` expression, the generator outputs the value of ``i``," -" similar to a ``return`` statement. The big difference between ``yield`` and" -" a ``return`` statement is that on reaching a ``yield`` the generator's state" -" of execution is suspended and local variables are preserved. On the next " -"call to the generator's :meth:`~generator.__next__` method, the function will" -" resume executing." +"When you call a generator function, it doesn't return a single value; " +"instead it returns a generator object that supports the iterator protocol. " +"On executing the ``yield`` expression, the generator outputs the value of " +"``i``, similar to a ``return`` statement. The big difference between " +"``yield`` and a ``return`` statement is that on reaching a ``yield`` the " +"generator's state of execution is suspended and local variables are " +"preserved. On the next call to the generator's :meth:`~generator.__next__` " +"method, the function will resume executing." msgstr "" #: ../../howto/functional.rst:473 @@ -682,28 +682,28 @@ msgstr "" #: ../../howto/functional.rst:493 msgid "" -"Inside a generator function, ``return value`` causes ``StopIteration(value)``" -" to be raised from the :meth:`~generator.__next__` method. Once this " -"happens, or the bottom of the function is reached, the procession of values " -"ends and the generator cannot yield any further values." +"Inside a generator function, ``return value`` causes " +"``StopIteration(value)`` to be raised from the :meth:`~generator.__next__` " +"method. Once this happens, or the bottom of the function is reached, the " +"procession of values ends and the generator cannot yield any further values." msgstr "" #: ../../howto/functional.rst:498 msgid "" -"You could achieve the effect of generators manually by writing your own class" -" and storing all the local variables of the generator as instance variables." -" For example, returning a list of integers could be done by setting " -"``self.count`` to 0, and having the :meth:`~iterator.__next__` method " -"increment ``self.count`` and return it. However, for a moderately complicated" -" generator, writing a corresponding class can be much messier." +"You could achieve the effect of generators manually by writing your own " +"class and storing all the local variables of the generator as instance " +"variables. For example, returning a list of integers could be done by " +"setting ``self.count`` to 0, and having the :meth:`~iterator.__next__` " +"method increment ``self.count`` and return it. However, for a moderately " +"complicated generator, writing a corresponding class can be much messier." msgstr "" #: ../../howto/functional.rst:506 msgid "" -"The test suite included with Python's library, " -":source:`Lib/test/test_generators.py`, contains a number of more interesting " -"examples. Here's one generator that implements an in-order traversal of a " -"tree using generators recursively. ::" +"The test suite included with Python's library, :source:`Lib/test/" +"test_generators.py`, contains a number of more interesting examples. Here's " +"one generator that implements an in-order traversal of a tree using " +"generators recursively. ::" msgstr "" #: ../../howto/functional.rst:511 @@ -722,10 +722,11 @@ msgstr "" #: ../../howto/functional.rst:522 msgid "" -"Two other examples in ``test_generators.py`` produce solutions for the " -"N-Queens problem (placing N queens on an NxN chess board so that no queen " -"threatens another) and the Knight's Tour (finding a route that takes a knight" -" to every square of an NxN chessboard without visiting any square twice)." +"Two other examples in ``test_generators.py`` produce solutions for the N-" +"Queens problem (placing N queens on an NxN chess board so that no queen " +"threatens another) and the Knight's Tour (finding a route that takes a " +"knight to every square of an NxN chessboard without visiting any square " +"twice)." msgstr "" #: ../../howto/functional.rst:530 @@ -744,9 +745,9 @@ msgstr "" #: ../../howto/functional.rst:539 msgid "" -"In Python 2.5 there's a simple way to pass values into a generator. " -":keyword:`yield` became an expression, returning a value that can be assigned" -" to a variable or otherwise operated on::" +"In Python 2.5 there's a simple way to pass values into a generator. :keyword:" +"`yield` became an expression, returning a value that can be assigned to a " +"variable or otherwise operated on::" msgstr "" #: ../../howto/functional.rst:543 @@ -755,33 +756,33 @@ msgstr "" #: ../../howto/functional.rst:545 msgid "" -"I recommend that you **always** put parentheses around a ``yield`` expression" -" when you're doing something with the returned value, as in the above " -"example. The parentheses aren't always necessary, but it's easier to always " -"add them instead of having to remember when they're needed." +"I recommend that you **always** put parentheses around a ``yield`` " +"expression when you're doing something with the returned value, as in the " +"above example. The parentheses aren't always necessary, but it's easier to " +"always add them instead of having to remember when they're needed." msgstr "" #: ../../howto/functional.rst:550 msgid "" "(:pep:`342` explains the exact rules, which are that a ``yield``-expression " "must always be parenthesized except when it occurs at the top-level " -"expression on the right-hand side of an assignment. This means you can write" -" ``val = yield i`` but have to use parentheses when there's an operation, as " -"in ``val = (yield i) + 12``.)" +"expression on the right-hand side of an assignment. This means you can " +"write ``val = yield i`` but have to use parentheses when there's an " +"operation, as in ``val = (yield i) + 12``.)" msgstr "" #: ../../howto/functional.rst:556 msgid "" "Values are sent into a generator by calling its :meth:`send(value) " "` method. This method resumes the generator's code and the " -"``yield`` expression returns the specified value. If the regular " -":meth:`~generator.__next__` method is called, the ``yield`` returns ``None``." +"``yield`` expression returns the specified value. If the regular :meth:" +"`~generator.__next__` method is called, the ``yield`` returns ``None``." msgstr "" #: ../../howto/functional.rst:561 msgid "" -"Here's a simple counter that increments by 1 and allows changing the value of" -" the internal counter." +"Here's a simple counter that increments by 1 and allows changing the value " +"of the internal counter." msgstr "" #: ../../howto/functional.rst:564 @@ -826,18 +827,18 @@ msgstr "" msgid "" ":meth:`~generator.close` sends a :exc:`GeneratorExit` exception to the " "generator to terminate the iteration. On receiving this exception, the " -"generator's code must either raise :exc:`GeneratorExit` or " -":exc:`StopIteration`; catching the exception and doing anything else is " -"illegal and will trigger a :exc:`RuntimeError`. :meth:`~generator.close` " -"will also be called by Python's garbage collector when the generator is " -"garbage-collected." +"generator's code must either raise :exc:`GeneratorExit` or :exc:" +"`StopIteration`; catching the exception and doing anything else is illegal " +"and will trigger a :exc:`RuntimeError`. :meth:`~generator.close` will also " +"be called by Python's garbage collector when the generator is garbage-" +"collected." msgstr "" #: ../../howto/functional.rst:613 msgid "" -"If you need to run cleanup code when a :exc:`GeneratorExit` occurs, I suggest" -" using a ``try: ... finally:`` suite instead of catching " -":exc:`GeneratorExit`." +"If you need to run cleanup code when a :exc:`GeneratorExit` occurs, I " +"suggest using a ``try: ... finally:`` suite instead of catching :exc:" +"`GeneratorExit`." msgstr "" #: ../../howto/functional.rst:616 @@ -849,9 +850,9 @@ msgstr "" #: ../../howto/functional.rst:619 msgid "" "Generators also become **coroutines**, a more generalized form of " -"subroutines. Subroutines are entered at one point and exited at another point" -" (the top of the function, and a ``return`` statement), but coroutines can be" -" entered, exited, and resumed at many different points (the ``yield`` " +"subroutines. Subroutines are entered at one point and exited at another " +"point (the top of the function, and a ``return`` statement), but coroutines " +"can be entered, exited, and resumed at many different points (the ``yield`` " "statements)." msgstr "" @@ -888,9 +889,9 @@ msgstr "" msgid "" ":func:`filter(predicate, iter) ` returns an iterator over all the " "sequence elements that meet a certain condition, and is similarly duplicated " -"by list comprehensions. A **predicate** is a function that returns the truth" -" value of some condition; for use with :func:`filter`, the predicate must " -"take a single value." +"by list comprehensions. A **predicate** is a function that returns the " +"truth value of some condition; for use with :func:`filter`, the predicate " +"must take a single value." msgstr "" #: ../../howto/functional.rst:659 @@ -915,8 +916,8 @@ msgstr "" #: ../../howto/functional.rst:675 msgid "" -":func:`enumerate` is often used when looping through a list and recording the" -" indexes at which certain conditions are met::" +":func:`enumerate` is often used when looping through a list and recording " +"the indexes at which certain conditions are met::" msgstr "" #: ../../howto/functional.rst:678 @@ -955,16 +956,16 @@ msgstr "" #: ../../howto/functional.rst:701 msgid "" -"The :func:`any(iter) ` and :func:`all(iter) ` built-ins look at the" -" truth values of an iterable's contents. :func:`any` returns ``True`` if any" -" element in the iterable is a true value, and :func:`all` returns ``True`` if" -" all of the elements are true values:" +"The :func:`any(iter) ` and :func:`all(iter) ` built-ins look at " +"the truth values of an iterable's contents. :func:`any` returns ``True`` if " +"any element in the iterable is a true value, and :func:`all` returns " +"``True`` if all of the elements are true values:" msgstr "" #: ../../howto/functional.rst:720 msgid "" -":func:`zip(iterA, iterB, ...) ` takes one element from each iterable and" -" returns them in a tuple::" +":func:`zip(iterA, iterB, ...) ` takes one element from each iterable " +"and returns them in a tuple::" msgstr "" #: ../../howto/functional.rst:723 @@ -977,15 +978,15 @@ msgstr "" msgid "" "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 `__.)" +"returned only if they're requested. (The technical term for this behaviour " +"is `lazy evaluation `__.)" msgstr "" #: ../../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. ::" +"length. If the iterables are of different lengths, the resulting stream " +"will be the same length as the shortest iterable. ::" msgstr "" #: ../../howto/functional.rst:736 @@ -996,8 +997,8 @@ msgstr "" #: ../../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 " +"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 "" @@ -1040,8 +1041,8 @@ msgstr "" msgid "" ":func:`itertools.count(start, step) ` returns an infinite " "stream of evenly spaced values. You can optionally supply the starting " -"number, which defaults to 0, and the interval between numbers, which defaults" -" to 1::" +"number, which defaults to 0, and the interval between numbers, which " +"defaults to 1::" msgstr "" #: ../../howto/functional.rst:765 @@ -1058,8 +1059,8 @@ msgstr "" msgid "" ":func:`itertools.cycle(iter) ` saves a copy of the contents " "of a provided iterable and returns a new iterator that returns its elements " -"from first to last. The new iterator will repeat these elements infinitely. " -"::" +"from first to last. The new iterator will repeat these elements " +"infinitely. ::" msgstr "" #: ../../howto/functional.rst:776 @@ -1071,8 +1072,8 @@ msgstr "" #: ../../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. " -"::" +"element *n* times, or returns the element endlessly if *n* is not " +"provided. ::" msgstr "" #: ../../howto/functional.rst:782 @@ -1101,11 +1102,11 @@ msgstr "" msgid "" ":func:`itertools.islice(iter, [start], stop, [step]) ` " "returns a stream that's a slice of the iterator. With a single *stop* " -"argument, it will return the first *stop* elements. If you supply a starting" -" index, you'll get *stop-start* elements, and if you supply a value for " -"*step*, elements will be skipped accordingly. Unlike Python's string and " -"list slicing, you can't use negative values for *start*, *stop*, or *step*. " -"::" +"argument, it will return the first *stop* elements. If you supply a " +"starting index, you'll get *stop-start* elements, and if you supply a value " +"for *step*, elements will be skipped accordingly. Unlike Python's string " +"and list slicing, you can't use negative values for *start*, *stop*, or " +"*step*. ::" msgstr "" #: ../../howto/functional.rst:802 @@ -1124,8 +1125,8 @@ msgid "" "returns *n* independent iterators that will all return the contents of the " "source iterator. If you don't supply a value for *n*, the default is 2. " "Replicating iterators requires saving some of the contents of the source " -"iterator, so this can consume significant memory if the iterator is large and" -" one of the new iterators is consumed more than the others. ::" +"iterator, so this can consume significant memory if the iterator is large " +"and one of the new iterators is consumed more than the others. ::" msgstr "" #: ../../howto/functional.rst:817 @@ -1147,11 +1148,10 @@ msgstr "" #: ../../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) " -"` (adds two values), :func:`operator.ne(a, b) ` " -"(same as ``a != b``), and :func:`operator.attrgetter('id') " -"` (returns a callable that fetches the ``.id`` " -"attribute)." +"Python's operators. Some examples are :func:`operator.add(a, b) ` (adds two values), :func:`operator.ne(a, b) ` (same as " +"``a != b``), and :func:`operator.attrgetter('id') ` " +"(returns a callable that fetches the ``.id`` attribute)." msgstr "" #: ../../howto/functional.rst:836 @@ -1182,9 +1182,9 @@ msgstr "" #: ../../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::" +":func:`itertools.filterfalse(predicate, iter) ` is " +"the opposite of :func:`filter`, returning all elements for which the " +"predicate returns false::" msgstr "" #: ../../howto/functional.rst:857 @@ -1232,8 +1232,8 @@ msgstr "" 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" -" :term:`exhausted`::" +"corresponding element of *selectors* is true, stopping whenever either one " +"is :term:`exhausted`::" msgstr "" #: ../../howto/functional.rst:887 @@ -1271,10 +1271,9 @@ msgstr "" msgid "" "The elements within each tuple remain in the same order as *iterable* " "returned them. For example, the number 1 is always before 2, 3, 4, or 5 in " -"the examples above. A similar function, " -":func:`itertools.permutations(iterable, r=None) `, " -"removes this constraint on the order, returning all possible arrangements of " -"length *r*::" +"the examples above. A similar function, :func:`itertools." +"permutations(iterable, r=None) `, removes this " +"constraint on the order, returning all possible arrangements of length *r*::" msgstr "" #: ../../howto/functional.rst:916 @@ -1313,17 +1312,17 @@ msgstr "" #: ../../howto/functional.rst:938 msgid "" -"The identical tuple ``('a', 'a', 'b')`` occurs twice, but the two 'a' strings" -" came from different positions." +"The identical tuple ``('a', 'a', 'b')`` occurs twice, but the two 'a' " +"strings came from different positions." msgstr "" #: ../../howto/functional.rst:941 msgid "" -"The :func:`itertools.combinations_with_replacement(iterable, r) " -"` function relaxes a different " -"constraint: elements can be repeated within a single tuple. Conceptually an " -"element is selected for the first position of each tuple and then is replaced" -" before the second element is selected. ::" +"The :func:`itertools.combinations_with_replacement(iterable, r) ` function relaxes a different constraint: " +"elements can be repeated within a single tuple. Conceptually an element is " +"selected for the first position of each tuple and then is replaced before " +"the second element is selected. ::" msgstr "" #: ../../howto/functional.rst:947 @@ -1342,19 +1341,18 @@ msgstr "" #: ../../howto/functional.rst:958 msgid "" -"The last function I'll discuss, :func:`itertools.groupby(iter, key_func=None)" -" `, is the most complicated. ``key_func(elem)`` is a " -"function that can compute a key value for each element returned by the " -"iterable. If you don't supply a key function, the key is simply each element" -" itself." +"The last function I'll discuss, :func:`itertools.groupby(iter, " +"key_func=None) `, is the most complicated. " +"``key_func(elem)`` is a function that can compute a key value for each " +"element returned by the iterable. If you don't supply a key function, the " +"key is simply each element itself." msgstr "" #: ../../howto/functional.rst: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." +"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:969 @@ -1398,8 +1396,8 @@ msgstr "" msgid "" "The :mod:`functools` module contains some higher-order functions. A **higher-" "order function** takes one or more functions as input and returns a new " -"function. The most useful tool in this module is the " -":func:`functools.partial` function." +"function. The most useful tool in this module is the :func:`functools." +"partial` function." msgstr "" #: ../../howto/functional.rst:1005 @@ -1408,16 +1406,16 @@ msgid "" "construct variants of existing functions that have some of the parameters " "filled in. Consider a Python function ``f(a, b, c)``; you may wish to create " "a new function ``g(b, c)`` that's equivalent to ``f(1, b, c)``; you're " -"filling in a value for one of ``f()``'s parameters. This is called \"partial" -" function application\"." +"filling in a value for one of ``f()``'s parameters. This is called " +"\"partial function application\"." msgstr "" #: ../../howto/functional.rst:1011 msgid "" "The constructor for :func:`~functools.partial` takes the arguments " -"``(function, arg1, arg2, ..., kwarg1=value1, kwarg2=value2)``. The resulting" -" object is callable, so you can just call it to invoke ``function`` with the " -"filled-in arguments." +"``(function, arg1, arg2, ..., kwarg1=value1, kwarg2=value2)``. The " +"resulting object is callable, so you can just call it to invoke ``function`` " +"with the filled-in arguments." msgstr "" #: ../../howto/functional.rst:1016 @@ -1442,13 +1440,13 @@ msgid "" ":func:`functools.reduce(func, iter, [initial_value]) ` " "cumulatively performs an operation on all the iterable's elements and, " "therefore, can't be applied to infinite iterables. *func* must be a function " -"that takes two elements and returns a single value. :func:`functools.reduce`" -" takes the first two elements A and B returned by the iterator and calculates" -" ``func(A, B)``. It then requests the third element, C, calculates " -"``func(func(A, B), C)``, combines this result with the fourth element " -"returned, and continues until the iterable is :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 " +"that takes two elements and returns a single value. :func:`functools." +"reduce` takes the first two elements A and B returned by the iterator and " +"calculates ``func(A, B)``. It then requests the third element, C, " +"calculates ``func(func(A, B), C)``, combines this result with the fourth " +"element returned, and continues until the iterable is :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 "" @@ -1494,11 +1492,10 @@ msgstr "" #: ../../howto/functional.rst:1076 msgid "" -"A related function is :func:`itertools.accumulate(iterable, " -"func=operator.add) `. It performs the same " -"calculation, but instead of returning only the final result, " -":func:`~itertools.accumulate` returns an iterator that also yields each " -"partial result::" +"A related function is :func:`itertools.accumulate(iterable, func=operator." +"add) `. It performs the same calculation, but instead " +"of returning only the final result, :func:`~itertools.accumulate` returns an " +"iterator that also yields each partial result::" msgstr "" #: ../../howto/functional.rst:1081 @@ -1528,8 +1525,8 @@ msgstr "" #: ../../howto/functional.rst:1098 msgid "" -"Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, ``abs()``, " -"..." +"Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " +"``abs()``, ..." msgstr "" #: ../../howto/functional.rst:1099 @@ -1578,9 +1575,10 @@ msgstr "" #: ../../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. ``lambda``" -" takes a number of parameters and an expression combining these parameters, " -"and creates an anonymous function that returns the value of the expression::" +"write small functions is to use the :keyword:`lambda` expression. " +"``lambda`` takes a number of parameters and an expression combining these " +"parameters, and creates an anonymous function that returns the value of the " +"expression::" msgstr "" #: ../../howto/functional.rst:1124 @@ -1607,8 +1605,8 @@ msgstr "" #: ../../howto/functional.rst:1137 msgid "" -"Which alternative is preferable? That's a style question; my usual course is" -" to avoid using ``lambda``." +"Which alternative is preferable? That's a style question; my usual course " +"is to avoid using ``lambda``." msgstr "" #: ../../howto/functional.rst:1140 @@ -1708,10 +1706,10 @@ msgstr "" #: ../../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: Ian Bicking," -" Nick Coghlan, Nick Efford, Raymond Hettinger, Jim Jewett, Mike Krell, " -"Leandro Lameiro, Jussi Salmela, Collin Winter, Blake Winton." +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim Jewett, Mike " +"Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake Winton." msgstr "" #: ../../howto/functional.rst:1194 @@ -1750,9 +1748,9 @@ msgstr "" #: ../../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://mitpress.mit.edu/sicp. In this classic textbook of computer science," -" chapters 2 and 3 discuss the use of sequences and streams to organize the " +"Gerald Jay Sussman with Julie Sussman. The book can be found at https://" +"mitpress.mit.edu/sicp. In this classic textbook of computer science, " +"chapters 2 and 3 discuss the use of sequences and streams to organize the " "data flow inside a program. The book uses Scheme for its examples, but many " "of the design approaches described in these chapters are applicable to " "functional-style Python code." @@ -1760,15 +1758,15 @@ msgstr "" #: ../../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 " +"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:1224 msgid "" -"https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia entry" -" describing functional programming." +"https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia " +"entry describing functional programming." msgstr "" #: ../../howto/functional.rst:1227 @@ -1801,10 +1799,9 @@ msgstr "" #: ../../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 " -"`__, `part 2 " -"`__, and `part 3 " -"`__," +"IBM's DeveloperWorks site; see `part 1 `__, `part 2 `__, and " +"`part 3 `__," msgstr "" #: ../../howto/functional.rst:1249 diff --git a/howto/gdb_helpers.po b/howto/gdb_helpers.po index 0776219a..623a2bc1 100644 --- a/howto/gdb_helpers.po +++ b/howto/gdb_helpers.po @@ -57,9 +57,9 @@ msgstr "" #: ../../howto/gdb_helpers.rst:29 msgid "" "This document assumes that you are familiar with the basics of GDB and the " -"CPython C API. It consolidates guidance from the `devguide " -"`_ and the `Python wiki " -"`_." +"CPython C API. It consolidates guidance from the `devguide `_ and the `Python wiki `_." msgstr "" #: ../../howto/gdb_helpers.rst:36 @@ -89,8 +89,8 @@ msgstr "" #: ../../howto/gdb_helpers.rst:46 msgid "" "The extension is built with Python, but might be distributed separately or " -"not at all. Below, we include tips for a few common systems as examples. Note" -" that even if the instructions match your system, they might be outdated." +"not at all. Below, we include tips for a few common systems as examples. " +"Note that even if the instructions match your system, they might be outdated." msgstr "" #: ../../howto/gdb_helpers.rst:52 @@ -171,9 +171,9 @@ msgstr "" #: ../../howto/gdb_helpers.rst:104 msgid "" -"Use a :ref:`debug build ` of Python. (When building from source," -" use ``configure --with-pydebug``. On Linux distros, install and run a " -"package like ``python-debug`` or ``python-dbg``, if available.)" +"Use a :ref:`debug build ` of Python. (When building from " +"source, use ``configure --with-pydebug``. On Linux distros, install and run " +"a package like ``python-debug`` or ``python-dbg``, if available.)" msgstr "" #: ../../howto/gdb_helpers.rst:107 @@ -183,8 +183,8 @@ msgstr "" #: ../../howto/gdb_helpers.rst:109 msgid "" "Both enable extra assertions and disable some optimizations. Sometimes this " -"hides the bug you are trying to find, but in most cases they make the process" -" easier." +"hides the bug you are trying to find, but in most cases they make the " +"process easier." msgstr "" #: ../../howto/gdb_helpers.rst:115 @@ -209,20 +209,32 @@ msgstr "" #: ../../howto/gdb_helpers.rst:126 msgid "" -"#0 0x000000000041a6b1 in PyObject_Malloc (nbytes=Cannot access memory at address 0x7fffff7fefe8\n" +"#0 0x000000000041a6b1 in PyObject_Malloc (nbytes=Cannot access memory at " +"address 0x7fffff7fefe8\n" ") at Objects/obmalloc.c:748\n" -"#1 0x000000000041b7c0 in _PyObject_DebugMallocApi (id=111 'o', nbytes=24) at Objects/obmalloc.c:1445\n" -"#2 0x000000000041b717 in _PyObject_DebugMalloc (nbytes=24) at Objects/obmalloc.c:1412\n" -"#3 0x000000000044060a in _PyUnicode_New (length=11) at Objects/unicodeobject.c:346\n" -"#4 0x00000000004466aa in PyUnicodeUCS2_DecodeUTF8Stateful (s=0x5c2b8d \"__lltrace__\", size=11, errors=0x0, consumed=\n" +"#1 0x000000000041b7c0 in _PyObject_DebugMallocApi (id=111 'o', nbytes=24) " +"at Objects/obmalloc.c:1445\n" +"#2 0x000000000041b717 in _PyObject_DebugMalloc (nbytes=24) at Objects/" +"obmalloc.c:1412\n" +"#3 0x000000000044060a in _PyUnicode_New (length=11) at Objects/" +"unicodeobject.c:346\n" +"#4 0x00000000004466aa in PyUnicodeUCS2_DecodeUTF8Stateful (s=0x5c2b8d " +"\"__lltrace__\", size=11, errors=0x0, consumed=\n" " 0x0) at Objects/unicodeobject.c:2531\n" -"#5 0x0000000000446647 in PyUnicodeUCS2_DecodeUTF8 (s=0x5c2b8d \"__lltrace__\", size=11, errors=0x0)\n" +"#5 0x0000000000446647 in PyUnicodeUCS2_DecodeUTF8 (s=0x5c2b8d " +"\"__lltrace__\", size=11, errors=0x0)\n" " at Objects/unicodeobject.c:2495\n" -"#6 0x0000000000440d1b in PyUnicodeUCS2_FromStringAndSize (u=0x5c2b8d \"__lltrace__\", size=11)\n" +"#6 0x0000000000440d1b in PyUnicodeUCS2_FromStringAndSize (u=0x5c2b8d " +"\"__lltrace__\", size=11)\n" " at Objects/unicodeobject.c:551\n" -"#7 0x0000000000440d94 in PyUnicodeUCS2_FromString (u=0x5c2b8d \"__lltrace__\") at Objects/unicodeobject.c:569\n" +"#7 0x0000000000440d94 in PyUnicodeUCS2_FromString (u=0x5c2b8d " +"\"__lltrace__\") at Objects/unicodeobject.c:569\n" "#8 0x0000000000584abd in PyDict_GetItemString (v=\n" -" {'Yuck': , '__builtins__': , '__file__': 'Lib/test/crashers/nasty_eq_vs_dict.py', '__package__': None, 'y': , 'dict': {0: 0, 1: 1, 2: 2, 3: 3}, '__cached__': None, '__name__': '__main__', 'z': , '__doc__': None}, key=\n" +" {'Yuck': , '__builtins__': , '__file__': 'Lib/test/crashers/nasty_eq_vs_dict.py', " +"'__package__': None, 'y': , 'dict': {0: 0, 1: " +"1, 2: 2, 3: 3}, '__cached__': None, '__name__': '__main__', 'z': , '__doc__': None}, key=\n" " 0x5c2b8d \"__lltrace__\") at Objects/dictobject.c:2171" msgstr "" @@ -234,9 +246,10 @@ msgstr "" #: ../../howto/gdb_helpers.rst:145 msgid "" -"The extension works by supplying a custom printing routine for values of type" -" ``PyObject *``. If you need to access lower-level details of an object, " -"then cast the value to a pointer of the appropriate type. For example::" +"The extension works by supplying a custom printing routine for values of " +"type ``PyObject *``. If you need to access lower-level details of an " +"object, then cast the value to a pointer of the appropriate type. For " +"example::" msgstr "" #: ../../howto/gdb_helpers.rst:149 @@ -294,14 +307,15 @@ msgstr "" #: ../../howto/gdb_helpers.rst:185 msgid "" "(gdb) p *(PyLongObject*)some_python_integer\n" -"$5 = {ob_base = {ob_base = {ob_refcnt = 8, ob_type = 0x3dad39f5e0}, ob_size = 1},\n" +"$5 = {ob_base = {ob_base = {ob_refcnt = 8, ob_type = 0x3dad39f5e0}, ob_size " +"= 1},\n" "ob_digit = {42}}" msgstr "" #: ../../howto/gdb_helpers.rst:189 msgid "" -"A similar confusion can arise with the ``str`` type, where the output looks a" -" lot like gdb's built-in printer for ``char *``::" +"A similar confusion can arise with the ``str`` type, where the output looks " +"a lot like gdb's built-in printer for ``char *``::" msgstr "" #: ../../howto/gdb_helpers.rst:192 @@ -325,8 +339,8 @@ msgstr "" #: ../../howto/gdb_helpers.rst:202 msgid "" -"Again, the implementation details can be revealed with a cast to " -":c:expr:`PyUnicodeObject *`::" +"Again, the implementation details can be revealed with a cast to :c:expr:" +"`PyUnicodeObject *`::" msgstr "" #: ../../howto/gdb_helpers.rst:205 @@ -377,8 +391,8 @@ msgstr "" #: ../../howto/gdb_helpers.rst:236 msgid "" "The ``py-up`` and ``py-down`` commands are analogous to GDB's regular ``up`` " -"and ``down`` commands, but try to move at the level of CPython frames, rather" -" than C frames." +"and ``down`` commands, but try to move at the level of CPython frames, " +"rather than C frames." msgstr "" #: ../../howto/gdb_helpers.rst:240 @@ -406,7 +420,8 @@ msgid "" " u = UI()\n" "(gdb) py-up\n" "#40 Frame 0x948e82c, for file /usr/lib/python2.6/site-packages/\n" -"gnome_sudoku/gnome_sudoku.py, line 22, in start_game(main=)\n" +"gnome_sudoku/gnome_sudoku.py, line 22, in start_game(main=)\n" " main.start_game()\n" "(gdb) py-up\n" "Unable to find an older python frame" @@ -430,7 +445,8 @@ msgstr "" #: ../../howto/gdb_helpers.rst:269 msgid "" "(gdb) py-down\n" -"#37 Frame 0x9420b04, for file /usr/lib/python2.6/site-packages/gnome_sudoku/main.py, line 906, in start_game ()\n" +"#37 Frame 0x9420b04, for file /usr/lib/python2.6/site-packages/gnome_sudoku/" +"main.py, line 906, in start_game ()\n" " u = UI()\n" "(gdb) py-down\n" "#34 (unable to read python frame information)\n" @@ -439,10 +455,27 @@ msgid "" "(gdb) py-down\n" "#19 (unable to read python frame information)\n" "(gdb) py-down\n" -"#14 Frame 0x99262ac, for file /usr/lib/python2.6/site-packages/gnome_sudoku/game_selector.py, line 201, in run_swallowed_dialog (self=, puzzle=None, saved_games=[{'gsd.auto_fills': 0, 'tracking': {}, 'trackers': {}, 'notes': [], 'saved_at': 1270084485, 'game': '7 8 0 0 0 0 0 5 6 0 0 9 0 8 0 1 0 0 0 4 6 0 0 0 0 7 0 6 5 0 0 0 4 7 9 2 0 0 0 9 0 1 0 0 0 3 9 7 6 0 0 0 1 8 0 6 0 0 0 0 2 8 0 0 0 5 0 4 0 6 0 0 2 1 0 0 0 0 0 4 5\\n7 8 0 0 0 0 0 5 6 0 0 9 0 8 0 1 0 0 0 4 6 0 0 0 0 7 0 6 5 1 8 3 4 7 9 2 0 0 0 9 0 1 0 0 0 3 9 7 6 0 0 0 1 8 0 6 0 0 0 0 2 8 0 0 0 5 0 4 0 6 0 0 2 1 0 0 0 0 0 4 5', 'gsd.impossible_hints': 0, 'timer.__absolute_start_time__': , 'gsd.hints': 0, 'timer.active_time': , 'timer.total_time': }], dialog=, saved_game_model=, sudoku_maker=, puzzle=None, saved_games=[{'gsd.auto_fills': 0, 'tracking': {}, " +"'trackers': {}, 'notes': [], 'saved_at': 1270084485, 'game': '7 8 0 0 0 0 0 " +"5 6 0 0 9 0 8 0 1 0 0 0 4 6 0 0 0 0 7 0 6 5 0 0 0 4 7 9 2 0 0 0 9 0 1 0 0 0 " +"3 9 7 6 0 0 0 1 8 0 6 0 0 0 0 2 8 0 0 0 5 0 4 0 6 0 0 2 1 0 0 0 0 0 4 5\\n7 " +"8 0 0 0 0 0 5 6 0 0 9 0 8 0 1 0 0 0 4 6 0 0 0 0 7 0 6 5 1 8 3 4 7 9 2 0 0 0 " +"9 0 1 0 0 0 3 9 7 6 0 0 0 1 8 0 6 0 0 0 0 2 8 0 0 0 5 0 4 0 6 0 0 2 1 0 0 0 " +"0 0 4 5', 'gsd.impossible_hints': 0, 'timer.__absolute_start_time__': , 'gsd.hints': 0, 'timer.active_time': , 'timer.total_time': }], dialog=, saved_game_model=, sudoku_maker=, main_page=0) at remote 0x98fa6e4>, d=)\n" +"#11 Frame 0x9aead74, for file /usr/lib/python2.6/site-packages/gnome_sudoku/" +"dialog_swallower.py, line 48, in run_dialog " +"(self=, main_page=0) " +"at remote 0x98fa6e4>, d=)\n" " gtk.main()\n" "(gdb) py-down\n" "#8 (unable to read python frame information)\n" @@ -464,17 +497,23 @@ msgstr "" #: ../../howto/gdb_helpers.rst:295 msgid "" "(gdb) py-up\n" -"#6 Frame 0x7ffff7fb62b0, for file /tmp/rec.py, line 5, in recursive_function (n=0)\n" +"#6 Frame 0x7ffff7fb62b0, for file /tmp/rec.py, line 5, in recursive_function " +"(n=0)\n" " time.sleep(5)\n" -"#6 Frame 0x7ffff7fb6240, for file /tmp/rec.py, line 7, in recursive_function (n=1)\n" +"#6 Frame 0x7ffff7fb6240, for file /tmp/rec.py, line 7, in recursive_function " +"(n=1)\n" " recursive_function(n-1)\n" -"#6 Frame 0x7ffff7fb61d0, for file /tmp/rec.py, line 7, in recursive_function (n=2)\n" +"#6 Frame 0x7ffff7fb61d0, for file /tmp/rec.py, line 7, in recursive_function " +"(n=2)\n" " recursive_function(n-1)\n" -"#6 Frame 0x7ffff7fb6160, for file /tmp/rec.py, line 7, in recursive_function (n=3)\n" +"#6 Frame 0x7ffff7fb6160, for file /tmp/rec.py, line 7, in recursive_function " +"(n=3)\n" " recursive_function(n-1)\n" -"#6 Frame 0x7ffff7fb60f0, for file /tmp/rec.py, line 7, in recursive_function (n=4)\n" +"#6 Frame 0x7ffff7fb60f0, for file /tmp/rec.py, line 7, in recursive_function " +"(n=4)\n" " recursive_function(n-1)\n" -"#6 Frame 0x7ffff7fb6080, for file /tmp/rec.py, line 7, in recursive_function (n=5)\n" +"#6 Frame 0x7ffff7fb6080, for file /tmp/rec.py, line 7, in recursive_function " +"(n=5)\n" " recursive_function(n-1)\n" "#6 Frame 0x7ffff7fb6020, for file /tmp/rec.py, line 9, in ()\n" " recursive_function(5)\n" @@ -496,16 +535,36 @@ msgstr "" msgid "" "(gdb) py-bt\n" "#8 (unable to read python frame information)\n" -"#11 Frame 0x9aead74, for file /usr/lib/python2.6/site-packages/gnome_sudoku/dialog_swallower.py, line 48, in run_dialog (self=, main_page=0) at remote 0x98fa6e4>, d=)\n" +"#11 Frame 0x9aead74, for file /usr/lib/python2.6/site-packages/gnome_sudoku/" +"dialog_swallower.py, line 48, in run_dialog " +"(self=, main_page=0) " +"at remote 0x98fa6e4>, d=)\n" " gtk.main()\n" -"#14 Frame 0x99262ac, for file /usr/lib/python2.6/site-packages/gnome_sudoku/game_selector.py, line 201, in run_swallowed_dialog (self=, puzzle=None, saved_games=[{'gsd.auto_fills': 0, 'tracking': {}, 'trackers': {}, 'notes': [], 'saved_at': 1270084485, 'game': '7 8 0 0 0 0 0 5 6 0 0 9 0 8 0 1 0 0 0 4 6 0 0 0 0 7 0 6 5 0 0 0 4 7 9 2 0 0 0 9 0 1 0 0 0 3 9 7 6 0 0 0 1 8 0 6 0 0 0 0 2 8 0 0 0 5 0 4 0 6 0 0 2 1 0 0 0 0 0 4 5\\n7 8 0 0 0 0 0 5 6 0 0 9 0 8 0 1 0 0 0 4 6 0 0 0 0 7 0 6 5 1 8 3 4 7 9 2 0 0 0 9 0 1 0 0 0 3 9 7 6 0 0 0 1 8 0 6 0 0 0 0 2 8 0 0 0 5 0 4 0 6 0 0 2 1 0 0 0 0 0 4 5', 'gsd.impossible_hints': 0, 'timer.__absolute_start_time__': , 'gsd.hints': 0, 'timer.active_time': , 'timer.total_time': }], dialog=, saved_game_model=, sudoku_maker=, puzzle=None, saved_games=[{'gsd.auto_fills': 0, 'tracking': {}, " +"'trackers': {}, 'notes': [], 'saved_at': 1270084485, 'game': '7 8 0 0 0 0 0 " +"5 6 0 0 9 0 8 0 1 0 0 0 4 6 0 0 0 0 7 0 6 5 0 0 0 4 7 9 2 0 0 0 9 0 1 0 0 0 " +"3 9 7 6 0 0 0 1 8 0 6 0 0 0 0 2 8 0 0 0 5 0 4 0 6 0 0 2 1 0 0 0 0 0 4 5\\n7 " +"8 0 0 0 0 0 5 6 0 0 9 0 8 0 1 0 0 0 4 6 0 0 0 0 7 0 6 5 1 8 3 4 7 9 2 0 0 0 " +"9 0 1 0 0 0 3 9 7 6 0 0 0 1 8 0 6 0 0 0 0 2 8 0 0 0 5 0 4 0 6 0 0 2 1 0 0 0 " +"0 0 4 5', 'gsd.impossible_hints': 0, 'timer.__absolute_start_time__': , 'gsd.hints': 0, 'timer.active_time': , 'timer.total_time': }], dialog=, saved_game_model=, sudoku_maker=)\n" +"#40 Frame 0x948e82c, for file /usr/lib/python2.6/site-packages/gnome_sudoku/" +"gnome_sudoku.py, line 22, in start_game (main=)\n" " main.start_game()" msgstr "" @@ -565,8 +624,8 @@ msgstr "" #: ../../howto/gdb_helpers.rst:370 msgid "" -"If the current C frame corresponds to multiple Python frames, locals from all" -" of them will be shown::" +"If the current C frame corresponds to multiple Python frames, locals from " +"all of them will be shown::" msgstr "" #: ../../howto/gdb_helpers.rst:373 @@ -594,23 +653,29 @@ msgstr "" #: ../../howto/gdb_helpers.rst:392 msgid "" "The extension commands complement GDB's built-in commands. For example, you " -"can use a frame numbers shown by ``py-bt`` with the ``frame`` command to go a" -" specific frame within the selected thread, like this::" +"can use a frame numbers shown by ``py-bt`` with the ``frame`` command to go " +"a specific frame within the selected thread, like this::" msgstr "" #: ../../howto/gdb_helpers.rst:396 msgid "" "(gdb) py-bt\n" "(output snipped)\n" -"#68 Frame 0xaa4560, for file Lib/test/regrtest.py, line 1548, in ()\n" +"#68 Frame 0xaa4560, for file Lib/test/regrtest.py, line 1548, in " +"()\n" " main()\n" "(gdb) frame 68\n" -"#68 0x00000000004cd1e6 in PyEval_EvalFrameEx (f=Frame 0xaa4560, for file Lib/test/regrtest.py, line 1548, in (), throwflag=0) at Python/ceval.c:2665\n" +"#68 0x00000000004cd1e6 in PyEval_EvalFrameEx (f=Frame 0xaa4560, for file Lib/" +"test/regrtest.py, line 1548, in (), throwflag=0) at Python/ceval." +"c:2665\n" "2665 x = call_function(&sp, oparg);\n" "(gdb) py-list\n" -"1543 # Run the tests in a context manager that temporary changes the CWD to a\n" -"1544 # temporary and writable directory. If it's not possible to create or\n" -"1545 # change the CWD, the original CWD will be used. The original CWD is\n" +"1543 # Run the tests in a context manager that temporary changes the " +"CWD to a\n" +"1544 # temporary and writable directory. If it's not possible to " +"create or\n" +"1545 # change the CWD, the original CWD will be used. The original " +"CWD is\n" "1546 # available from test_support.SAVEDCWD.\n" "1547 with test_support.temp_cwd(TESTCWD, quiet=True):\n" ">1548 main()" @@ -625,9 +690,12 @@ msgstr "" #: ../../howto/gdb_helpers.rst:414 msgid "" "(gdb) info threads\n" -" 105 Thread 0x7fffefa18710 (LWP 10260) sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86\n" -" 104 Thread 0x7fffdf5fe710 (LWP 10259) sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86\n" -"* 1 Thread 0x7ffff7fe2700 (LWP 10145) 0x00000038e46d73e3 in select () at ../sysdeps/unix/syscall-template.S:82" +" 105 Thread 0x7fffefa18710 (LWP 10260) sem_wait () at ../nptl/sysdeps/unix/" +"sysv/linux/x86_64/sem_wait.S:86\n" +" 104 Thread 0x7fffdf5fe710 (LWP 10259) sem_wait () at ../nptl/sysdeps/unix/" +"sysv/linux/x86_64/sem_wait.S:86\n" +"* 1 Thread 0x7ffff7fe2700 (LWP 10145) 0x00000038e46d73e3 in select () at ../" +"sysdeps/unix/syscall-template.S:82" msgstr "" #: ../../howto/gdb_helpers.rst:419 @@ -642,28 +710,78 @@ msgid "" "(gdb) t a a py-bt\n" "\n" "Thread 105 (Thread 0x7fffefa18710 (LWP 10260)):\n" -"#5 Frame 0x7fffd00019d0, for file /home/david/coding/python-svn/Lib/threading.py, line 155, in _acquire_restore (self=<_RLock(_Verbose__verbose=False, _RLock__owner=140737354016512, _RLock__block=, _RLock__count=1) at remote 0xd7ff40>, count_owner=(1, 140737213728528), count=1, owner=140737213728528)\n" +"#5 Frame 0x7fffd00019d0, for file /home/david/coding/python-svn/Lib/" +"threading.py, line 155, in _acquire_restore " +"(self=<_RLock(_Verbose__verbose=False, _RLock__owner=140737354016512, " +"_RLock__block=, _RLock__count=1) at remote " +"0xd7ff40>, count_owner=(1, 140737213728528), count=1, " +"owner=140737213728528)\n" " self.__block.acquire()\n" -"#8 Frame 0x7fffac001640, for file /home/david/coding/python-svn/Lib/threading.py, line 269, in wait (self=<_Condition(_Condition__lock=<_RLock(_Verbose__verbose=False, _RLock__owner=140737354016512, _RLock__block=, _RLock__count=1) at remote 0xd7ff40>, acquire=, _is_owned=, _release_save=, release=, _acquire_restore=, _Verbose__verbose=False, _Condition__waiters=[]) at remote 0xd7fd10>, timeout=None, waiter=, saved_state=(1, 140737213728528))\n" +"#8 Frame 0x7fffac001640, for file /home/david/coding/python-svn/Lib/" +"threading.py, line 269, in wait " +"(self=<_Condition(_Condition__lock=<_RLock(_Verbose__verbose=False, " +"_RLock__owner=140737354016512, _RLock__block=, _RLock__count=1) at remote 0xd7ff40>, acquire=, _is_owned=, " +"_release_save=, release=, _acquire_restore=, " +"_Verbose__verbose=False, _Condition__waiters=[]) at remote 0xd7fd10>, " +"timeout=None, waiter=, saved_state=(1, " +"140737213728528))\n" " self._acquire_restore(saved_state)\n" -"#12 Frame 0x7fffb8001a10, for file /home/david/coding/python-svn/Lib/test/lock_tests.py, line 348, in f ()\n" +"#12 Frame 0x7fffb8001a10, for file /home/david/coding/python-svn/Lib/test/" +"lock_tests.py, line 348, in f ()\n" " cond.wait()\n" -"#16 Frame 0x7fffb8001c40, for file /home/david/coding/python-svn/Lib/test/lock_tests.py, line 37, in task (tid=140737213728528)\n" +"#16 Frame 0x7fffb8001c40, for file /home/david/coding/python-svn/Lib/test/" +"lock_tests.py, line 37, in task (tid=140737213728528)\n" " f()\n" "\n" "Thread 104 (Thread 0x7fffdf5fe710 (LWP 10259)):\n" -"#5 Frame 0x7fffe4001580, for file /home/david/coding/python-svn/Lib/threading.py, line 155, in _acquire_restore (self=<_RLock(_Verbose__verbose=False, _RLock__owner=140737354016512, _RLock__block=, _RLock__count=1) at remote 0xd7ff40>, count_owner=(1, 140736940992272), count=1, owner=140736940992272)\n" +"#5 Frame 0x7fffe4001580, for file /home/david/coding/python-svn/Lib/" +"threading.py, line 155, in _acquire_restore " +"(self=<_RLock(_Verbose__verbose=False, _RLock__owner=140737354016512, " +"_RLock__block=, _RLock__count=1) at remote " +"0xd7ff40>, count_owner=(1, 140736940992272), count=1, " +"owner=140736940992272)\n" " self.__block.acquire()\n" -"#8 Frame 0x7fffc8002090, for file /home/david/coding/python-svn/Lib/threading.py, line 269, in wait (self=<_Condition(_Condition__lock=<_RLock(_Verbose__verbose=False, _RLock__owner=140737354016512, _RLock__block=, _RLock__count=1) at remote 0xd7ff40>, acquire=, _is_owned=, _release_save=, release=, _acquire_restore=, _Verbose__verbose=False, _Condition__waiters=[]) at remote 0xd7fd10>, timeout=None, waiter=, saved_state=(1, 140736940992272))\n" +"#8 Frame 0x7fffc8002090, for file /home/david/coding/python-svn/Lib/" +"threading.py, line 269, in wait " +"(self=<_Condition(_Condition__lock=<_RLock(_Verbose__verbose=False, " +"_RLock__owner=140737354016512, _RLock__block=, _RLock__count=1) at remote 0xd7ff40>, acquire=, _is_owned=, " +"_release_save=, release=, _acquire_restore=, " +"_Verbose__verbose=False, _Condition__waiters=[]) at remote 0xd7fd10>, " +"timeout=None, waiter=, saved_state=(1, " +"140736940992272))\n" " self._acquire_restore(saved_state)\n" -"#12 Frame 0x7fffac001c90, for file /home/david/coding/python-svn/Lib/test/lock_tests.py, line 348, in f ()\n" +"#12 Frame 0x7fffac001c90, for file /home/david/coding/python-svn/Lib/test/" +"lock_tests.py, line 348, in f ()\n" " cond.wait()\n" -"#16 Frame 0x7fffac0011c0, for file /home/david/coding/python-svn/Lib/test/lock_tests.py, line 37, in task (tid=140736940992272)\n" +"#16 Frame 0x7fffac0011c0, for file /home/david/coding/python-svn/Lib/test/" +"lock_tests.py, line 37, in task (tid=140736940992272)\n" " f()\n" "\n" "Thread 1 (Thread 0x7ffff7fe2700 (LWP 10145)):\n" -"#5 Frame 0xcb5380, for file /home/david/coding/python-svn/Lib/test/lock_tests.py, line 16, in _wait ()\n" +"#5 Frame 0xcb5380, for file /home/david/coding/python-svn/Lib/test/" +"lock_tests.py, line 16, in _wait ()\n" " time.sleep(0.01)\n" -"#8 Frame 0x7fffd00024a0, for file /home/david/coding/python-svn/Lib/test/lock_tests.py, line 378, in _check_notify (self=, skipped=[], _mirrorOutput=False, testsRun=39, buffer=False, _original_stderr=, _stdout_buffer=, _stderr_buffer=, _moduleSetUpFailed=False, expectedFailures=[], errors=[], _previousTestClass=, unexpectedSuccesses=[], failures=[], shouldStop=False, failfast=False) at remote 0xc185a0>, _threads=(0,), _cleanups=[], _type_equality_funcs={: , : , : , : , , skipped=[], _mirrorOutput=False, testsRun=39, " +"buffer=False, _original_stderr=, " +"_stdout_buffer=, " +"_stderr_buffer=, " +"_moduleSetUpFailed=False, expectedFailures=[], errors=[], " +"_previousTestClass=, unexpectedSuccesses=[], " +"failures=[], shouldStop=False, failfast=False) at remote 0xc185a0>, " +"_threads=(0,), _cleanups=[], _type_equality_funcs={: , : " +", : " +", : " +", ` " -"extensions who would like to make that extension safer to use in applications" -" where Python itself is used as a library." +"extensions who would like to make that extension safer to use in " +"applications where Python itself is used as a library." msgstr "" #: ../../howto/isolating-extensions.rst:31 @@ -79,16 +79,16 @@ msgstr "" #: ../../howto/isolating-extensions.rst:42 msgid "" -"in parallel, managing \"sub-interpreters\" using " -":c:func:`Py_NewInterpreter`/:c:func:`Py_EndInterpreter`." +"in parallel, managing \"sub-interpreters\" using :c:func:" +"`Py_NewInterpreter`/:c:func:`Py_EndInterpreter`." msgstr "" #: ../../howto/isolating-extensions.rst:45 msgid "" "Both cases (and combinations of them) would be most useful when embedding " -"Python within a library. Libraries generally shouldn't make assumptions about" -" the application that uses them, which include assuming a process-wide \"main" -" Python interpreter\"." +"Python within a library. Libraries generally shouldn't make assumptions " +"about the application that uses them, which include assuming a process-wide " +"\"main Python interpreter\"." msgstr "" #: ../../howto/isolating-extensions.rst:50 @@ -135,10 +135,10 @@ msgstr "" #: ../../howto/isolating-extensions.rst:78 msgid "" "Note that there are use cases for different kinds of \"globals\": per-" -"process, per-interpreter, per-thread or per-task state. With per-module state" -" as the default, these are still possible, but you should treat them as " -"exceptional cases: if you need them, you should give them additional care and" -" testing. (Note that this guide does not cover them.)" +"process, per-interpreter, per-thread or per-task state. With per-module " +"state as the default, these are still possible, but you should treat them as " +"exceptional cases: if you need them, you should give them additional care " +"and testing. (Note that this guide does not cover them.)" msgstr "" #: ../../howto/isolating-extensions.rst:87 @@ -190,8 +190,8 @@ msgid "" "notably, each module object will typically not share its classes and " "exceptions with other similar modules. Continuing from the `example above " "`__, note that ``old_binascii.Error`` and " -"``binascii.Error`` are separate objects. In the following code, the exception" -" is *not* caught:" +"``binascii.Error`` are separate objects. In the following code, the " +"exception is *not* caught:" msgstr "" #: ../../howto/isolating-extensions.rst:126 @@ -274,9 +274,9 @@ msgstr "" #: ../../howto/isolating-extensions.rst:181 msgid "" -"Set ``PyModuleDef.m_size`` to a positive number to request that many bytes of" -" storage local to the module. Usually, this will be set to the size of some " -"module-specific ``struct``, which can store all of the module's C-level " +"Set ``PyModuleDef.m_size`` to a positive number to request that many bytes " +"of storage local to the module. Usually, this will be set to the size of " +"some module-specific ``struct``, which can store all of the module's C-level " "state. In particular, it is where you should put pointers to classes " "(including exceptions, but excluding static types) and settings (e.g. " "``csv``'s :py:data:`~csv.field_size_limit`) which the C code needs to " @@ -287,8 +287,8 @@ msgstr "" msgid "" "Another option is to store state in the module's ``__dict__``, but you must " "avoid crashing when users modify ``__dict__`` from Python code. This usually " -"means error- and type-checking at the C level, which is easy to get wrong and" -" hard to test sufficiently." +"means error- and type-checking at the C level, which is easy to get wrong " +"and hard to test sufficiently." msgstr "" #: ../../howto/isolating-extensions.rst:195 @@ -303,16 +303,15 @@ msgid "" "hold references to those objects and implement the module-level hooks " "``m_traverse``, ``m_clear`` and ``m_free``. These work like ``tp_traverse``, " "``tp_clear`` and ``tp_free`` of a class. Adding them will require some work " -"and make the code longer; this is the price for modules which can be unloaded" -" cleanly." +"and make the code longer; this is the price for modules which can be " +"unloaded cleanly." msgstr "" #: ../../howto/isolating-extensions.rst:205 msgid "" "An example of a module with per-module state is currently available as " -"`xxlimited " -"`__; " -"example module initialization shown at the bottom of the file." +"`xxlimited `__; example module initialization shown at the bottom of the file." msgstr "" #: ../../howto/isolating-extensions.rst:213 @@ -321,9 +320,10 @@ msgstr "" #: ../../howto/isolating-extensions.rst:215 msgid "" -"A non-negative ``PyModuleDef.m_size`` signals that a module supports multiple" -" interpreters correctly. If this is not yet the case for your module, you can" -" explicitly make your module loadable only once per process. For example::" +"A non-negative ``PyModuleDef.m_size`` signals that a module supports " +"multiple interpreters correctly. If this is not yet the case for your " +"module, you can explicitly make your module loadable only once per process. " +"For example::" msgstr "" #: ../../howto/isolating-extensions.rst:220 @@ -365,9 +365,9 @@ msgstr "" #: ../../howto/isolating-extensions.rst:253 msgid "" -"Accessing the state from module-level functions is straightforward. Functions" -" get the module object as their first argument; for extracting the state, you" -" can use ``PyModule_GetState``::" +"Accessing the state from module-level functions is straightforward. " +"Functions get the module object as their first argument; for extracting the " +"state, you can use ``PyModule_GetState``::" msgstr "" #: ../../howto/isolating-extensions.rst:257 @@ -411,20 +411,20 @@ msgstr "" #: ../../howto/isolating-extensions.rst:287 msgid "" -"Sharing truly immutable objects between interpreters is fine, as long as they" -" don't provide access to mutable objects. However, in CPython, every Python " -"object has a mutable implementation detail: the reference count. Changes to " -"the refcount are guarded by the GIL. Thus, code that shares any Python " -"objects across interpreters implicitly depends on CPython's current, process-" -"wide GIL." +"Sharing truly immutable objects between interpreters is fine, as long as " +"they don't provide access to mutable objects. However, in CPython, every " +"Python object has a mutable implementation detail: the reference count. " +"Changes to the refcount are guarded by the GIL. Thus, code that shares any " +"Python objects across interpreters implicitly depends on CPython's current, " +"process-wide GIL." msgstr "" #: ../../howto/isolating-extensions.rst:294 msgid "" "Because they are immutable and process-global, static types cannot access " "\"their\" module state. If any method of such a type requires access to " -"module state, the type must be converted to a *heap-allocated type*, or *heap" -" type* for short. These correspond more closely to classes created by " +"module state, the type must be converted to a *heap-allocated type*, or " +"*heap type* for short. These correspond more closely to classes created by " "Python's ``class`` statement." msgstr "" @@ -442,8 +442,8 @@ msgid "" "was not designed for \"lossless\" conversion from static types—that is, " "creating a type that works exactly like a given static type. So, when " "rewriting the class definition in a new API, you are likely to " -"unintentionally change a few details (e.g. pickleability or inherited slots)." -" Always test the details that are important to you." +"unintentionally change a few details (e.g. pickleability or inherited " +"slots). Always test the details that are important to you." msgstr "" #: ../../howto/isolating-extensions.rst:316 @@ -454,8 +454,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:319 msgid "" -"Unlike static types, heap type objects are mutable by default. Use the " -":c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag to prevent mutability." +"Unlike static types, heap type objects are mutable by default. Use the :c:" +"macro:`Py_TPFLAGS_IMMUTABLETYPE` flag to prevent mutability." msgstr "" #: ../../howto/isolating-extensions.rst:321 @@ -472,8 +472,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:329 msgid "" "Heap types can be created by filling a :c:struct:`PyType_Spec` structure, a " -"description or \"blueprint\" of a class, and calling " -":c:func:`PyType_FromModuleAndSpec` to construct a new class object." +"description or \"blueprint\" of a class, and calling :c:func:" +"`PyType_FromModuleAndSpec` to construct a new class object." msgstr "" #: ../../howto/isolating-extensions.rst:334 @@ -495,8 +495,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:346 msgid "" -"Instances of heap types hold a reference to their type. This ensures that the" -" type isn't destroyed before all its instances are, but may result in " +"Instances of heap types hold a reference to their type. This ensures that " +"the type isn't destroyed before all its instances are, but may result in " "reference cycles that need to be broken by the garbage collector." msgstr "" @@ -518,15 +518,15 @@ msgstr "" #: ../../howto/isolating-extensions.rst:359 msgid "" -"Please refer to the documentation of :c:macro:`Py_TPFLAGS_HAVE_GC` and " -":c:member:`~PyTypeObject.tp_traverse` for additional considerations." +"Please refer to the documentation of :c:macro:`Py_TPFLAGS_HAVE_GC` and :c:" +"member:`~PyTypeObject.tp_traverse` for additional considerations." msgstr "" #: ../../howto/isolating-extensions.rst:363 msgid "" -"The API for defining heap types grew organically, leaving it somewhat awkward" -" to use in its current state. The following sections will guide you through " -"common issues." +"The API for defining heap types grew organically, leaving it somewhat " +"awkward to use in its current state. The following sections will guide you " +"through common issues." msgstr "" #: ../../howto/isolating-extensions.rst:369 @@ -563,8 +563,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:387 msgid "" -":py:data:`sys.version_info` (via :c:func:`PySys_GetObject` and " -":c:func:`PyArg_ParseTuple`)." +":py:data:`sys.version_info` (via :c:func:`PySys_GetObject` and :c:func:" +"`PyArg_ParseTuple`)." msgstr "" #: ../../howto/isolating-extensions.rst:392 @@ -573,10 +573,10 @@ msgstr "" #: ../../howto/isolating-extensions.rst:394 msgid "" -"If your traverse function delegates to the " -":c:member:`~PyTypeObject.tp_traverse` of its base class (or another type), " -"ensure that ``Py_TYPE(self)`` is visited only once. Note that only heap type " -"are expected to visit the type in ``tp_traverse``." +"If your traverse function delegates to the :c:member:`~PyTypeObject." +"tp_traverse` of its base class (or another type), ensure that " +"``Py_TYPE(self)`` is visited only once. Note that only heap type are " +"expected to visit the type in ``tp_traverse``." msgstr "" #: ../../howto/isolating-extensions.rst:399 @@ -604,8 +604,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:413 msgid "" -"It is not necessary to handle the type's reference count in " -":c:member:`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_clear`." +"It is not necessary to handle the type's reference count in :c:member:" +"`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_clear`." msgstr "" #: ../../howto/isolating-extensions.rst:418 @@ -629,8 +629,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:426 msgid "" -"To keep the type valid while ``tp_free`` is called, the type's refcount needs" -" to be decremented *after* the instance is deallocated. For example::" +"To keep the type valid while ``tp_free`` is called, the type's refcount " +"needs to be decremented *after* the instance is deallocated. For example::" msgstr "" #: ../../howto/isolating-extensions.rst:429 @@ -657,8 +657,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:446 msgid "" -"The :c:member:`~PyTypeObject.tp_free` slot of a heap type must be set to " -":c:func:`PyObject_GC_Del`. This is the default; do not override it." +"The :c:member:`~PyTypeObject.tp_free` slot of a heap type must be set to :c:" +"func:`PyObject_GC_Del`. This is the default; do not override it." msgstr "" #: ../../howto/isolating-extensions.rst:452 @@ -691,8 +691,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:466 msgid "" -"If the above is not possible (e.g. inside a custom ``tp_alloc``), call " -":c:func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar`::" +"If the above is not possible (e.g. inside a custom ``tp_alloc``), call :c:" +"func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar`::" msgstr "" #: ../../howto/isolating-extensions.rst:469 @@ -715,8 +715,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:481 msgid "" -"To save a some tedious error-handling boilerplate code, you can combine these" -" two steps with :c:func:`PyType_GetModuleState`, resulting in::" +"To save a some tedious error-handling boilerplate code, you can combine " +"these two steps with :c:func:`PyType_GetModuleState`, resulting in::" msgstr "" #: ../../howto/isolating-extensions.rst:484 @@ -741,8 +741,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:498 msgid "" -"The largest roadblock is getting *the class a method was defined in*, or that" -" method's \"defining class\" for short. The defining class can have a " +"The largest roadblock is getting *the class a method was defined in*, or " +"that method's \"defining class\" for short. The defining class can have a " "reference to the module it is part of." msgstr "" @@ -755,8 +755,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:507 msgid "" -"The following Python code can illustrate the concept. " -"``Base.get_defining_class`` returns ``Base`` even if ``type(self) == Sub``:" +"The following Python code can illustrate the concept. ``Base." +"get_defining_class`` returns ``Base`` even if ``type(self) == Sub``:" msgstr "" #: ../../howto/isolating-extensions.rst:511 @@ -774,10 +774,10 @@ msgstr "" #: ../../howto/isolating-extensions.rst:523 msgid "" -"For a method to get its \"defining class\", it must use the :ref:`METH_METHOD" -" | METH_FASTCALL | METH_KEYWORDS ` " -":c:type:`calling convention ` and the corresponding " -":c:type:`PyCMethod` signature::" +"For a method to get its \"defining class\", it must use the :ref:" +"`METH_METHOD | METH_FASTCALL | METH_KEYWORDS ` :c:type:`calling convention ` and the " +"corresponding :c:type:`PyCMethod` signature::" msgstr "" #: ../../howto/isolating-extensions.rst:528 @@ -792,8 +792,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:535 msgid "" -"Once you have the defining class, call :c:func:`PyType_GetModuleState` to get" -" the state of its associated module." +"Once you have the defining class, call :c:func:`PyType_GetModuleState` to " +"get the state of its associated module." msgstr "" #: ../../howto/isolating-extensions.rst:538 @@ -837,19 +837,19 @@ msgstr "" #: ../../howto/isolating-extensions.rst:578 msgid "" -"Slot methods—the fast C equivalents for special methods, such as " -":c:member:`~PyNumberMethods.nb_add` for :py:attr:`~object.__add__` or " -":c:member:`~PyTypeObject.tp_new` for initialization—have a very simple API " -"that doesn't allow passing in the defining class, unlike with " -":c:type:`PyCMethod`. The same goes for getters and setters defined with " -":c:type:`PyGetSetDef`." +"Slot methods—the fast C equivalents for special methods, such as :c:member:" +"`~PyNumberMethods.nb_add` for :py:attr:`~object.__add__` or :c:member:" +"`~PyTypeObject.tp_new` for initialization—have a very simple API that " +"doesn't allow passing in the defining class, unlike with :c:type:" +"`PyCMethod`. The same goes for getters and setters defined with :c:type:" +"`PyGetSetDef`." msgstr "" #: ../../howto/isolating-extensions.rst:585 msgid "" -"To access the module state in these cases, use the " -":c:func:`PyType_GetModuleByDef` function, and pass in the module definition. " -"Once you have the module, call :c:func:`PyModule_GetState` to get the state::" +"To access the module state in these cases, use the :c:func:" +"`PyType_GetModuleByDef` function, and pass in the module definition. Once " +"you have the module, call :c:func:`PyModule_GetState` to get the state::" msgstr "" #: ../../howto/isolating-extensions.rst:590 @@ -864,8 +864,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:596 msgid "" ":c:func:`!PyType_GetModuleByDef` works by searching the :term:`method " -"resolution order` (i.e. all superclasses) for the first superclass that has a" -" corresponding module." +"resolution order` (i.e. all superclasses) for the first superclass that has " +"a corresponding module." msgstr "" #: ../../howto/isolating-extensions.rst:602 @@ -889,9 +889,9 @@ msgstr "" #: ../../howto/isolating-extensions.rst:616 msgid "" -"Usually this is not an issue, because types created with " -":c:func:`PyType_FromModuleAndSpec`, and their instances, hold a reference to " -"the module. However, you must be careful in reference counting when you " +"Usually this is not an issue, because types created with :c:func:" +"`PyType_FromModuleAndSpec`, and their instances, hold a reference to the " +"module. However, you must be careful in reference counting when you " "reference module state from other places, such as callbacks for external " "libraries." msgstr "" @@ -906,8 +906,8 @@ msgstr "" #: ../../howto/isolating-extensions.rst:629 msgid "" -"Discussions about improving the situation are best held on the `discuss forum" -" under c-api tag `__." +"Discussions about improving the situation are best held on the `discuss " +"forum under c-api tag `__." msgstr "" #: ../../howto/isolating-extensions.rst:633 diff --git a/howto/timerfd.po b/howto/timerfd.po index a20329e8..1d978c09 100644 --- a/howto/timerfd.po +++ b/howto/timerfd.po @@ -90,7 +90,8 @@ msgid "" "# Create an epoll object\n" "ep = select.epoll()\n" "\n" -"# In this example, use loopback address to send \"stop\" command to the server.\n" +"# In this example, use loopback address to send \"stop\" command to the " +"server.\n" "#\n" "# $ telnet 127.0.0.1 1234\n" "# Trying 127.0.0.1...\n" @@ -129,22 +130,29 @@ msgid "" " # Wait for the timer to expire for 3 seconds.\n" " # epoll.poll() returns a list of (fd, event) pairs.\n" " # fd is a file descriptor.\n" -" # sock and conn[=returned value of socket.accept()] are socket objects, not file descriptors.\n" -" # So use sock.fileno() and conn.fileno() to get the file descriptors.\n" +" # sock and conn[=returned value of socket.accept()] are socket " +"objects, not file descriptors.\n" +" # So use sock.fileno() and conn.fileno() to get the file " +"descriptors.\n" " events = ep.poll(timeout)\n" "\n" -" # If more than one timer file descriptors are ready for reading at once,\n" +" # If more than one timer file descriptors are ready for reading at " +"once,\n" " # epoll.poll() returns a list of (fd, event) pairs.\n" " #\n" " # In this example settings,\n" -" # 1st timer fires every 0.25 seconds in 0.25 seconds. (0.25, 0.5, 0.75, 1.0, ...)\n" -" # 2nd timer every 0.5 seconds in 0.5 seconds. (0.5, 1.0, 1.5, 2.0, ...)\n" -" # 3rd timer every 0.75 seconds in 0.75 seconds. (0.75, 1.5, 2.25, 3.0, ...)\n" +" # 1st timer fires every 0.25 seconds in 0.25 seconds. (0.25, 0.5, " +"0.75, 1.0, ...)\n" +" # 2nd timer every 0.5 seconds in 0.5 seconds. (0.5, 1.0, 1.5, " +"2.0, ...)\n" +" # 3rd timer every 0.75 seconds in 0.75 seconds. (0.75, 1.5, 2.25, " +"3.0, ...)\n" " #\n" " # In 0.25 seconds, only 1st timer fires.\n" " # In 0.5 seconds, 1st timer and 2nd timer fires at once.\n" " # In 0.75 seconds, 1st timer and 3rd timer fires at once.\n" -" # In 1.5 seconds, 1st timer, 2nd timer and 3rd timer fires at once.\n" +" # In 1.5 seconds, 1st timer, 2nd timer and 3rd timer fires at " +"once.\n" " #\n" " # If a timer file descriptor is signaled more than once since\n" " # the last os.read() call, os.read() returns the number of signaled\n" @@ -164,7 +172,8 @@ msgid "" " print(f\"Reading data {fd}\")\n" " data = conn.recv(1024)\n" " if data:\n" -" # You should catch UnicodeDecodeError exception for safety.\n" +" # You should catch UnicodeDecodeError exception for " +"safety.\n" " cmd = data.decode()\n" " if cmd.startswith(\"stop\"):\n" " print(f\"Stopping server\")\n" @@ -179,8 +188,10 @@ msgid "" " conn = None\n" " elif fd in fds:\n" " print(f\"Reading timer {fd}\")\n" -" count = int.from_bytes(os.read(fd, 8), byteorder=sys.byteorder)\n" -" print(f\"Timer {fds.index(fd) + 1} expired {count} times\")\n" +" count = int.from_bytes(os.read(fd, 8), byteorder=sys." +"byteorder)\n" +" print(f\"Timer {fds.index(fd) + 1} expired {count} " +"times\")\n" " else:\n" " print(f\"Unknown file descriptor {fd}\")\n" "finally:\n" @@ -200,7 +211,8 @@ msgstr "" msgid "" "import os, time, select, socket, sys\n" "\n" -"# In this example, use loopback address to send \"stop\" command to the server.\n" +"# In this example, use loopback address to send \"stop\" command to the " +"server.\n" "#\n" "# $ telnet 127.0.0.1 1234\n" "# Trying 127.0.0.1...\n" @@ -232,7 +244,8 @@ msgid "" " while is_active:\n" " # Wait for the timer to expire for 3 seconds.\n" " # select.select() returns a list of file descriptors or objects.\n" -" rfd, wfd, xfd = select.select(select_fds, select_fds, select_fds, timeout)\n" +" rfd, wfd, xfd = select.select(select_fds, select_fds, select_fds, " +"timeout)\n" " for fd in rfd:\n" " if fd == sock:\n" " # Check if there is a connection request.\n" @@ -246,7 +259,8 @@ msgid "" " print(f\"Reading data {fd}\")\n" " data = conn.recv(1024)\n" " if data:\n" -" # You should catch UnicodeDecodeError exception for safety.\n" +" # You should catch UnicodeDecodeError exception for " +"safety.\n" " cmd = data.decode()\n" " if cmd.startswith(\"stop\"):\n" " print(f\"Stopping server\")\n" @@ -261,7 +275,8 @@ msgid "" " conn = None\n" " elif fd in fds:\n" " print(f\"Reading timer {fd}\")\n" -" count = int.from_bytes(os.read(fd, 8), byteorder=sys.byteorder)\n" +" count = int.from_bytes(os.read(fd, 8), byteorder=sys." +"byteorder)\n" " print(f\"Timer {fds.index(fd) + 1} expired {count} times\")\n" " else:\n" " print(f\"Unknown file descriptor {fd}\")\n" diff --git a/howto/urllib2.po b/howto/urllib2.po index a7145b0d..03a17493 100644 --- a/howto/urllib2.po +++ b/howto/urllib2.po @@ -42,14 +42,14 @@ msgstr "" #: ../../howto/urllib2.rst:15 msgid "" -"You may also find useful the following article on fetching web resources with" -" Python:" +"You may also find useful the following article on fetching web resources " +"with Python:" msgstr "" #: ../../howto/urllib2.rst:18 msgid "" -"`Basic Authentication " -"`__" +"`Basic Authentication `__" msgstr "" #: ../../howto/urllib2.rst:20 @@ -68,10 +68,11 @@ msgstr "" #: ../../howto/urllib2.rst:29 msgid "" -"urllib.request supports fetching URLs for many \"URL schemes\" (identified by" -" the string before the ``\":\"`` in URL - for example ``\"ftp\"`` is the URL " -"scheme of ``\"ftp://python.org/\"``) using their associated network protocols" -" (e.g. FTP, HTTP). This tutorial focuses on the most common case, HTTP." +"urllib.request supports fetching URLs for many \"URL schemes\" (identified " +"by the string before the ``\":\"`` in URL - for example ``\"ftp\"`` is the " +"URL scheme of ``\"ftp://python.org/\"``) using their associated network " +"protocols (e.g. FTP, HTTP). This tutorial focuses on the most common case, " +"HTTP." msgstr "" #: ../../howto/urllib2.rst:34 @@ -81,9 +82,9 @@ msgid "" "need some understanding of the HyperText Transfer Protocol. The most " "comprehensive and authoritative reference to HTTP is :rfc:`2616`. This is a " "technical document and not intended to be easy to read. This HOWTO aims to " -"illustrate using *urllib*, with enough detail about HTTP to help you through." -" It is not intended to replace the :mod:`urllib.request` docs, but is " -"supplementary to them." +"illustrate using *urllib*, with enough detail about HTTP to help you " +"through. It is not intended to replace the :mod:`urllib.request` docs, but " +"is supplementary to them." msgstr "" #: ../../howto/urllib2.rst:44 @@ -104,8 +105,8 @@ msgstr "" #: ../../howto/urllib2.rst:52 msgid "" "If you wish to retrieve a resource via URL and store it in a temporary " -"location, you can do so via the :func:`shutil.copyfileobj` and " -":func:`tempfile.NamedTemporaryFile` functions::" +"location, you can do so via the :func:`shutil.copyfileobj` and :func:" +"`tempfile.NamedTemporaryFile` functions::" msgstr "" #: ../../howto/urllib2.rst:56 @@ -125,20 +126,20 @@ msgstr "" #: ../../howto/urllib2.rst:67 msgid "" "Many uses of urllib will be that simple (note that instead of an 'http:' URL " -"we could have used a URL starting with 'ftp:', 'file:', etc.). However, it's" -" the purpose of this tutorial to explain the more complicated cases, " +"we could have used a URL starting with 'ftp:', 'file:', etc.). However, " +"it's the purpose of this tutorial to explain the more complicated cases, " "concentrating on HTTP." msgstr "" #: ../../howto/urllib2.rst:72 msgid "" "HTTP is based on requests and responses - the client makes requests and " -"servers send responses. urllib.request mirrors this with a ``Request`` object" -" which represents the HTTP request you are making. In its simplest form you " -"create a Request object that specifies the URL you want to fetch. Calling " -"``urlopen`` with this Request object returns a response object for the URL " -"requested. This response is a file-like object, which means you can for " -"example call ``.read()`` on the response::" +"servers send responses. urllib.request mirrors this with a ``Request`` " +"object which represents the HTTP request you are making. In its simplest " +"form you create a Request object that specifies the URL you want to fetch. " +"Calling ``urlopen`` with this Request object returns a response object for " +"the URL requested. This response is a file-like object, which means you can " +"for example call ``.read()`` on the response::" msgstr "" #: ../../howto/urllib2.rst:80 @@ -165,8 +166,8 @@ msgid "" "In the case of HTTP, there are two extra things that Request objects allow " "you to do: First, you can pass data to be sent to the server. Second, you " "can pass extra information (\"metadata\") *about* the data or about the " -"request itself, to the server - this information is sent as HTTP \"headers\"." -" Let's look at each of these in turn." +"request itself, to the server - this information is sent as HTTP " +"\"headers\". Let's look at each of these in turn." msgstr "" #: ../../howto/urllib2.rst:98 @@ -180,10 +181,10 @@ msgid "" "is often done using what's known as a **POST** request. This is often what " "your browser does when you submit a HTML form that you filled in on the web. " "Not all POSTs have to come from forms: you can use a POST to transmit " -"arbitrary data to your own application. In the common case of HTML forms, the" -" data needs to be encoded in a standard way, and then passed to the Request " -"object as the ``data`` argument. The encoding is done using a function from " -"the :mod:`urllib.parse` library. ::" +"arbitrary data to your own application. In the common case of HTML forms, " +"the data needs to be encoded in a standard way, and then passed to the " +"Request object as the ``data`` argument. The encoding is done using a " +"function from the :mod:`urllib.parse` library. ::" msgstr "" #: ../../howto/urllib2.rst:110 @@ -206,9 +207,8 @@ msgstr "" #: ../../howto/urllib2.rst:124 msgid "" "Note that other encodings are sometimes required (e.g. for file upload from " -"HTML forms - see `HTML Specification, Form Submission " -"`_ for more " -"details)." +"HTML forms - see `HTML Specification, Form Submission `_ for more details)." msgstr "" #: ../../howto/urllib2.rst:129 @@ -246,8 +246,8 @@ msgstr "" #: ../../howto/urllib2.rst:154 msgid "" -"Notice that the full URL is created by adding a ``?`` to the URL, followed by" -" the encoded values." +"Notice that the full URL is created by adding a ``?`` to the URL, followed " +"by the encoded values." msgstr "" #: ../../howto/urllib2.rst:158 @@ -265,12 +265,12 @@ msgid "" "Some websites [#]_ dislike being browsed by programs, or send different " "versions to different browsers [#]_. By default urllib identifies itself as " "``Python-urllib/x.y`` (where ``x`` and ``y`` are the major and minor version " -"numbers of the Python release, e.g. ``Python-urllib/2.5``), which may confuse" -" the site, or just plain not work. The way a browser identifies itself is " -"through the ``User-Agent`` header [#]_. When you create a Request object you " -"can pass a dictionary of headers in. The following example makes the same " -"request as above, but identifies itself as a version of Internet Explorer " -"[#]_. ::" +"numbers of the Python release, e.g. ``Python-urllib/2.5``), which may " +"confuse the site, or just plain not work. The way a browser identifies " +"itself is through the ``User-Agent`` header [#]_. When you create a Request " +"object you can pass a dictionary of headers in. The following example makes " +"the same request as above, but identifies itself as a version of Internet " +"Explorer [#]_. ::" msgstr "" #: ../../howto/urllib2.rst:174 @@ -306,14 +306,14 @@ msgstr "Behandlung von Ausnahmen" #: ../../howto/urllib2.rst:197 msgid "" "*urlopen* raises :exc:`~urllib.error.URLError` when it cannot handle a " -"response (though as usual with Python APIs, built-in exceptions such as " -":exc:`ValueError`, :exc:`TypeError` etc. may also be raised)." +"response (though as usual with Python APIs, built-in exceptions such as :exc:" +"`ValueError`, :exc:`TypeError` etc. may also be raised)." msgstr "" #: ../../howto/urllib2.rst:201 msgid "" -":exc:`~urllib.error.HTTPError` is the subclass of " -":exc:`~urllib.error.URLError` raised in the specific case of HTTP URLs." +":exc:`~urllib.error.HTTPError` is the subclass of :exc:`~urllib.error." +"URLError` raised in the specific case of HTTP URLs." msgstr "" #: ../../howto/urllib2.rst:204 @@ -326,9 +326,9 @@ msgstr "" #: ../../howto/urllib2.rst:209 msgid "" -"Often, URLError is raised because there is no network connection (no route to" -" the specified server), or the specified server doesn't exist. In this case," -" the exception raised will have a 'reason' attribute, which is a tuple " +"Often, URLError is raised because there is no network connection (no route " +"to the specified server), or the specified server doesn't exist. In this " +"case, the exception raised will have a 'reason' attribute, which is a tuple " "containing an error code and a text error message." msgstr "" @@ -357,9 +357,9 @@ msgid "" "request. The default handlers will handle some of these responses for you " "(for example, if the response is a \"redirection\" that requests the client " "fetch the document from a different URL, urllib will handle that for you). " -"For those it can't handle, urlopen will raise an " -":exc:`~urllib.error.HTTPError`. Typical errors include '404' (page not " -"found), '403' (request forbidden), and '401' (authentication required)." +"For those it can't handle, urlopen will raise an :exc:`~urllib.error." +"HTTPError`. Typical errors include '404' (page not found), '403' (request " +"forbidden), and '401' (authentication required)." msgstr "" #: ../../howto/urllib2.rst:235 @@ -380,8 +380,8 @@ msgstr "" #: ../../howto/urllib2.rst:243 msgid "" "Because the default handlers handle redirects (codes in the 300 range), and " -"codes in the 100--299 range indicate success, you will usually only see error" -" codes in the 400--599 range." +"codes in the 100--299 range indicate success, you will usually only see " +"error codes in the 400--599 range." msgstr "" #: ../../howto/urllib2.rst:247 @@ -398,17 +398,20 @@ msgid "" " : ('OK', 'Request fulfilled, document follows'),\n" " ...\n" " : ('Forbidden',\n" -" 'Request forbidden -- authorization will '\n" +" 'Request forbidden -- authorization will " +"'\n" " 'not help'),\n" " : ('Not Found',\n" " 'Nothing matches the given URI'),\n" " ...\n" " : (\"I'm a Teapot\",\n" -" 'Server refuses to brew coffee because '\n" +" 'Server refuses to brew coffee because " +"'\n" " 'it is a teapot'),\n" " ...\n" " : ('Service Unavailable',\n" -" 'The server cannot process the '\n" +" 'The server cannot process the " +"'\n" " 'request due to a high load'),\n" " ...\n" " }" @@ -434,7 +437,8 @@ msgid "" "...\n" "404\n" "b'\\n\\n\\n\\n\\n\\nPage Not Found\\n\n" " ..." @@ -446,9 +450,9 @@ msgstr "" #: ../../howto/urllib2.rst:293 msgid "" -"So if you want to be prepared for :exc:`~urllib.error.HTTPError` *or* " -":exc:`~urllib.error.URLError` there are two basic approaches. I prefer the " -"second approach." +"So if you want to be prepared for :exc:`~urllib.error.HTTPError` *or* :exc:" +"`~urllib.error.URLError` there are two basic approaches. I prefer the second " +"approach." msgstr "" #: ../../howto/urllib2.rst:297 @@ -514,15 +518,16 @@ msgstr "" #: ../../howto/urllib2.rst:350 msgid "" "**geturl** - this returns the real URL of the page fetched. This is useful " -"because ``urlopen`` (or the opener object used) may have followed a redirect." -" The URL of the page fetched may not be the same as the URL requested." +"because ``urlopen`` (or the opener object used) may have followed a " +"redirect. The URL of the page fetched may not be the same as the URL " +"requested." msgstr "" #: ../../howto/urllib2.rst:354 msgid "" "**info** - this returns a dictionary-like object that describes the page " -"fetched, particularly the headers sent by the server. It is currently an " -":class:`http.client.HTTPMessage` instance." +"fetched, particularly the headers sent by the server. It is currently an :" +"class:`http.client.HTTPMessage` instance." msgstr "" #: ../../howto/urllib2.rst:358 @@ -557,22 +562,22 @@ msgstr "" #: ../../howto/urllib2.rst:379 msgid "" -"To create an opener, instantiate an ``OpenerDirector``, and then call " -"``.add_handler(some_handler_instance)`` repeatedly." +"To create an opener, instantiate an ``OpenerDirector``, and then call ``." +"add_handler(some_handler_instance)`` repeatedly." msgstr "" #: ../../howto/urllib2.rst:382 msgid "" "Alternatively, you can use ``build_opener``, which is a convenience function " "for creating opener objects with a single function call. ``build_opener`` " -"adds several handlers by default, but provides a quick way to add more and/or" -" override the default handlers." +"adds several handlers by default, but provides a quick way to add more and/" +"or override the default handlers." msgstr "" #: ../../howto/urllib2.rst:387 msgid "" -"Other sorts of handlers you might want to can handle proxies, authentication," -" and other common but slightly specialised situations." +"Other sorts of handlers you might want to can handle proxies, " +"authentication, and other common but slightly specialised situations." msgstr "" #: ../../howto/urllib2.rst:390 @@ -584,9 +589,9 @@ msgstr "" #: ../../howto/urllib2.rst:394 msgid "" -"Opener objects have an ``open`` method, which can be called directly to fetch" -" urls in the same way as the ``urlopen`` function: there's no need to call " -"``install_opener``, except as a convenience." +"Opener objects have an ``open`` method, which can be called directly to " +"fetch urls in the same way as the ``urlopen`` function: there's no need to " +"call ``install_opener``, except as a convenience." msgstr "" #: ../../howto/urllib2.rst:400 @@ -598,16 +603,16 @@ msgid "" "To illustrate creating and installing a handler we will use the " "``HTTPBasicAuthHandler``. For a more detailed discussion of this subject -- " "including an explanation of how Basic Authentication works - see the `Basic " -"Authentication Tutorial " -"`__." +"Authentication Tutorial `__." msgstr "" #: ../../howto/urllib2.rst:408 msgid "" "When authentication is required, the server sends a header (as well as the " -"401 error code) requesting authentication. This specifies the authentication" -" scheme and a 'realm'. The header looks like: ``WWW-Authenticate: SCHEME " -"realm=\"REALM\"``." +"401 error code) requesting authentication. This specifies the " +"authentication scheme and a 'realm'. The header looks like: ``WWW-" +"Authenticate: SCHEME realm=\"REALM\"``." msgstr "" #: ../../howto/urllib2.rst:413 @@ -629,10 +634,10 @@ msgstr "" #: ../../howto/urllib2.rst:425 msgid "" "The ``HTTPBasicAuthHandler`` uses an object called a password manager to " -"handle the mapping of URLs and realms to passwords and usernames. If you know" -" what the realm is (from the authentication header sent by the server), then " -"you can use a ``HTTPPasswordMgr``. Frequently one doesn't care what the realm" -" is. In that case, it is convenient to use " +"handle the mapping of URLs and realms to passwords and usernames. If you " +"know what the realm is (from the authentication header sent by the server), " +"then you can use a ``HTTPPasswordMgr``. Frequently one doesn't care what the " +"realm is. In that case, it is convenient to use " "``HTTPPasswordMgrWithDefaultRealm``. This allows you to specify a default " "username and password for a URL. This will be supplied in the absence of you " "providing an alternative combination for a specific realm. We indicate this " @@ -698,9 +703,9 @@ msgid "" "**urllib** will auto-detect your proxy settings and use those. This is " "through the ``ProxyHandler``, which is part of the normal handler chain when " "a proxy setting is detected. Normally that's a good thing, but there are " -"occasions when it may not be helpful [#]_. One way to do this is to setup our" -" own ``ProxyHandler``, with no proxies defined. This is done using similar " -"steps to setting up a `Basic Authentication`_ handler: ::" +"occasions when it may not be helpful [#]_. One way to do this is to setup " +"our own ``ProxyHandler``, with no proxies defined. This is done using " +"similar steps to setting up a `Basic Authentication`_ handler: ::" msgstr "" #: ../../howto/urllib2.rst:486 @@ -713,8 +718,8 @@ msgstr "" #: ../../howto/urllib2.rst:492 msgid "" "Currently ``urllib.request`` *does not* support fetching of ``https`` " -"locations through a proxy. However, this can be enabled by extending " -"urllib.request as shown in the recipe [#]_." +"locations through a proxy. However, this can be enabled by extending urllib." +"request as shown in the recipe [#]_." msgstr "" #: ../../howto/urllib2.rst:498 @@ -735,12 +740,12 @@ msgstr "" #: ../../howto/urllib2.rst:508 msgid "" -"As of Python 2.3 you can specify how long a socket should wait for a response" -" before timing out. This can be useful in applications which have to fetch " -"web pages. By default the socket module has *no timeout* and can hang. " -"Currently, the socket timeout is not exposed at the http.client or " -"urllib.request levels. However, you can set the default timeout globally for " -"all sockets using ::" +"As of Python 2.3 you can specify how long a socket should wait for a " +"response before timing out. This can be useful in applications which have to " +"fetch web pages. By default the socket module has *no timeout* and can hang. " +"Currently, the socket timeout is not exposed at the http.client or urllib." +"request levels. However, you can set the default timeout globally for all " +"sockets using ::" msgstr "" #: ../../howto/urllib2.rst:514 @@ -773,8 +778,8 @@ msgstr "" #: ../../howto/urllib2.rst:536 msgid "" "Browser sniffing is a very bad practice for website design - building sites " -"using web standards is much more sensible. Unfortunately a lot of sites still" -" send different versions to different browsers." +"using web standards is much more sensible. Unfortunately a lot of sites " +"still send different versions to different browsers." msgstr "" #: ../../howto/urllib2.rst:539 @@ -793,13 +798,13 @@ msgstr "" msgid "" "In my case I have to use a proxy to access the internet at work. If you " "attempt to fetch *localhost* URLs through this proxy it blocks them. IE is " -"set to use the proxy, which urllib picks up on. In order to test scripts with" -" a localhost server, I have to prevent urllib from using the proxy." +"set to use the proxy, which urllib picks up on. In order to test scripts " +"with a localhost server, I have to prevent urllib from using the proxy." msgstr "" #: ../../howto/urllib2.rst:548 msgid "" -"urllib opener for SSL proxy (CONNECT method): `ASPN Cookbook Recipe " -"`_." +"urllib opener for SSL proxy (CONNECT method): `ASPN Cookbook Recipe `_." msgstr "" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index 017ed567..00cc6f59 100644 --- a/library/asyncio-eventloop.po +++ b/library/asyncio-eventloop.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-28 03:11+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+0000\n" "PO-Revision-Date: 2026-05-08 17:17+0000\n" "Last-Translator: Swen Bachmann, 2026\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -266,8 +266,8 @@ msgid "" msgstr "" #: ../../library/asyncio-eventloop.rst:183 -#: ../../library/asyncio-eventloop.rst:1397 -#: ../../library/asyncio-eventloop.rst:1859 +#: ../../library/asyncio-eventloop.rst:1401 +#: ../../library/asyncio-eventloop.rst:1863 msgid "Example::" msgstr "Beispiel::" @@ -632,8 +632,8 @@ msgid "The socket type will be :py:const:`~socket.SOCK_STREAM`." msgstr "" #: ../../library/asyncio-eventloop.rst:466 -#: ../../library/asyncio-eventloop.rst:1274 -#: ../../library/asyncio-eventloop.rst:1293 +#: ../../library/asyncio-eventloop.rst:1278 +#: ../../library/asyncio-eventloop.rst:1297 msgid "" "*protocol_factory* must be a callable returning an :ref:`asyncio protocol " "` implementation." @@ -677,7 +677,7 @@ msgid "" msgstr "" #: ../../library/asyncio-eventloop.rst:488 -#: ../../library/asyncio-eventloop.rst:621 +#: ../../library/asyncio-eventloop.rst:625 msgid "Other arguments:" msgstr "" @@ -743,8 +743,8 @@ msgid "" msgstr "" #: ../../library/asyncio-eventloop.rst:536 -#: ../../library/asyncio-eventloop.rst:658 -#: ../../library/asyncio-eventloop.rst:906 +#: ../../library/asyncio-eventloop.rst:662 +#: ../../library/asyncio-eventloop.rst:910 msgid "" "The *sock* argument transfers ownership of the socket to the transport " "created. To close the socket, call the transport's :meth:`~asyncio." @@ -759,7 +759,7 @@ msgid "" msgstr "" #: ../../library/asyncio-eventloop.rst:544 -#: ../../library/asyncio-eventloop.rst:1002 +#: ../../library/asyncio-eventloop.rst:1006 msgid "" "*ssl_handshake_timeout* is (for a TLS connection) the time in seconds to " "wait for the TLS handshake to complete before aborting the connection. " @@ -767,9 +767,9 @@ msgid "" msgstr "" #: ../../library/asyncio-eventloop.rst:548 -#: ../../library/asyncio-eventloop.rst:813 -#: ../../library/asyncio-eventloop.rst:917 -#: ../../library/asyncio-eventloop.rst:1006 +#: ../../library/asyncio-eventloop.rst:817 +#: ../../library/asyncio-eventloop.rst:921 +#: ../../library/asyncio-eventloop.rst:1010 msgid "" "*ssl_shutdown_timeout* is the time in seconds to wait for the SSL shutdown " "to complete before aborting the connection. ``30.0`` seconds if ``None`` " @@ -787,7 +787,7 @@ msgid "" msgstr "" #: ../../library/asyncio-eventloop.rst:562 -#: ../../library/asyncio-eventloop.rst:825 +#: ../../library/asyncio-eventloop.rst:829 msgid "Added support for SSL/TLS in :class:`ProactorEventLoop`." msgstr "" @@ -798,7 +798,7 @@ msgid "" msgstr "" #: ../../library/asyncio-eventloop.rst:571 -#: ../../library/asyncio-eventloop.rst:927 +#: ../../library/asyncio-eventloop.rst:931 msgid "Added the *ssl_handshake_timeout* parameter." msgstr "" @@ -822,11 +822,11 @@ msgid "For more information: https://datatracker.ietf.org/doc/html/rfc6555" msgstr "" #: ../../library/asyncio-eventloop.rst:590 -#: ../../library/asyncio-eventloop.rst:722 -#: ../../library/asyncio-eventloop.rst:839 -#: ../../library/asyncio-eventloop.rst:879 -#: ../../library/asyncio-eventloop.rst:931 -#: ../../library/asyncio-eventloop.rst:1014 +#: ../../library/asyncio-eventloop.rst:726 +#: ../../library/asyncio-eventloop.rst:843 +#: ../../library/asyncio-eventloop.rst:883 +#: ../../library/asyncio-eventloop.rst:935 +#: ../../library/asyncio-eventloop.rst:1018 msgid "Added the *ssl_shutdown_timeout* parameter." msgstr "" @@ -834,62 +834,68 @@ msgstr "" msgid "*all_errors* was added." msgstr "" -#: ../../library/asyncio-eventloop.rst:597 +#: ../../library/asyncio-eventloop.rst:595 +msgid "" +"Raises a ``ValueError`` if ``ssl.check_hostname`` is ``True`` and " +"``server_hostname`` is not supplied." +msgstr "" + +#: ../../library/asyncio-eventloop.rst:601 msgid "" "The :func:`open_connection` function is a high-level alternative API. It " "returns a pair of (:class:`StreamReader`, :class:`StreamWriter`) that can be " "used directly in async/await code." msgstr "" -#: ../../library/asyncio-eventloop.rst:608 +#: ../../library/asyncio-eventloop.rst:612 msgid "Create a datagram connection." msgstr "" -#: ../../library/asyncio-eventloop.rst:610 +#: ../../library/asyncio-eventloop.rst:614 msgid "" "The socket family can be either :py:const:`~socket.AF_INET`, :py:const:" "`~socket.AF_INET6`, or :py:const:`~socket.AF_UNIX`, depending on *host* (or " "the *family* argument, if provided)." msgstr "" -#: ../../library/asyncio-eventloop.rst:614 +#: ../../library/asyncio-eventloop.rst:618 msgid "The socket type will be :py:const:`~socket.SOCK_DGRAM`." msgstr "" -#: ../../library/asyncio-eventloop.rst:616 -#: ../../library/asyncio-eventloop.rst:749 -#: ../../library/asyncio-eventloop.rst:898 +#: ../../library/asyncio-eventloop.rst:620 +#: ../../library/asyncio-eventloop.rst:753 +#: ../../library/asyncio-eventloop.rst:902 msgid "" "*protocol_factory* must be a callable returning a :ref:`protocol ` implementation." msgstr "" -#: ../../library/asyncio-eventloop.rst:619 -#: ../../library/asyncio-eventloop.rst:704 +#: ../../library/asyncio-eventloop.rst:623 +#: ../../library/asyncio-eventloop.rst:708 msgid "A tuple of ``(transport, protocol)`` is returned on success." msgstr "" -#: ../../library/asyncio-eventloop.rst:623 +#: ../../library/asyncio-eventloop.rst:627 msgid "" "*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " "the socket locally. The *local_host* and *local_port* are looked up using :" "meth:`getaddrinfo`." msgstr "" -#: ../../library/asyncio-eventloop.rst:629 +#: ../../library/asyncio-eventloop.rst:633 msgid "" "On Windows, when using the proactor event loop with ``local_addr=None``, an :" "exc:`OSError` with :attr:`!errno.WSAEINVAL` will be raised when running it." msgstr "" -#: ../../library/asyncio-eventloop.rst:633 +#: ../../library/asyncio-eventloop.rst:637 msgid "" "*remote_addr*, if given, is a ``(remote_host, remote_port)`` tuple used to " "connect the socket to a remote address. The *remote_host* and *remote_port* " "are looked up using :meth:`getaddrinfo`." msgstr "" -#: ../../library/asyncio-eventloop.rst:637 +#: ../../library/asyncio-eventloop.rst:641 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to :meth:`getaddrinfo` for *host* resolution. If " @@ -897,7 +903,7 @@ msgid "" "module constants." msgstr "" -#: ../../library/asyncio-eventloop.rst:642 +#: ../../library/asyncio-eventloop.rst:646 msgid "" "*reuse_port* tells the kernel to allow this endpoint to be bound to the same " "port as other existing endpoints are bound to, so long as they all set this " @@ -906,13 +912,13 @@ msgid "" "is not defined then this capability is unsupported." msgstr "" -#: ../../library/asyncio-eventloop.rst:648 +#: ../../library/asyncio-eventloop.rst:652 msgid "" "*allow_broadcast* tells the kernel to allow this endpoint to send messages " "to the broadcast address." msgstr "" -#: ../../library/asyncio-eventloop.rst:651 +#: ../../library/asyncio-eventloop.rst:655 msgid "" "*sock* can optionally be specified in order to use a preexisting, already " "connected, :class:`socket.socket` object to be used by the transport. If " @@ -920,37 +926,37 @@ msgid "" "`None`)." msgstr "" -#: ../../library/asyncio-eventloop.rst:662 +#: ../../library/asyncio-eventloop.rst:666 msgid "" "See :ref:`UDP echo client protocol ` and :" "ref:`UDP echo server protocol ` examples." msgstr "" -#: ../../library/asyncio-eventloop.rst:665 +#: ../../library/asyncio-eventloop.rst:669 msgid "" "The *family*, *proto*, *flags*, *reuse_address*, *reuse_port*, " "*allow_broadcast*, and *sock* parameters were added." msgstr "" -#: ../../library/asyncio-eventloop.rst:669 +#: ../../library/asyncio-eventloop.rst:673 msgid "Added support for Windows." msgstr "" -#: ../../library/asyncio-eventloop.rst:672 +#: ../../library/asyncio-eventloop.rst:676 msgid "" "The *reuse_address* parameter is no longer supported, as using :ref:`socket." "SO_REUSEADDR ` poses a significant security concern " "for UDP. Explicitly passing ``reuse_address=True`` will raise an exception." msgstr "" -#: ../../library/asyncio-eventloop.rst:678 +#: ../../library/asyncio-eventloop.rst:682 msgid "" "When multiple processes with differing UIDs assign sockets to an identical " "UDP socket address with ``SO_REUSEADDR``, incoming packets can become " "randomly distributed among the sockets." msgstr "" -#: ../../library/asyncio-eventloop.rst:682 +#: ../../library/asyncio-eventloop.rst:686 msgid "" "For supported platforms, *reuse_port* can be used as a replacement for " "similar functionality. With *reuse_port*, :ref:`socket.SO_REUSEPORT ` is set by default " "for all TCP connections." msgstr "" -#: ../../library/asyncio-eventloop.rst:843 +#: ../../library/asyncio-eventloop.rst:847 msgid "" "The :func:`start_server` function is a higher-level alternative API that " "returns a pair of :class:`StreamReader` and :class:`StreamWriter` that can " "be used in an async/await code." msgstr "" -#: ../../library/asyncio-eventloop.rst:855 +#: ../../library/asyncio-eventloop.rst:859 msgid "" "Similar to :meth:`loop.create_server` but works with the :py:const:`~socket." "AF_UNIX` socket family." msgstr "" -#: ../../library/asyncio-eventloop.rst:858 +#: ../../library/asyncio-eventloop.rst:862 msgid "" "*path* is the name of a Unix domain socket, and is required, unless a *sock* " "argument is provided. Abstract Unix sockets, :class:`str`, :class:`bytes`, " "and :class:`~pathlib.Path` paths are supported." msgstr "" -#: ../../library/asyncio-eventloop.rst:863 +#: ../../library/asyncio-eventloop.rst:867 msgid "" "If *cleanup_socket* is true then the Unix socket will automatically be " "removed from the filesystem when the server is closed, unless the socket has " "been replaced after the server has been created." msgstr "" -#: ../../library/asyncio-eventloop.rst:867 +#: ../../library/asyncio-eventloop.rst:871 msgid "" "See the documentation of the :meth:`loop.create_server` method for " "information about arguments to this method." msgstr "" -#: ../../library/asyncio-eventloop.rst:874 +#: ../../library/asyncio-eventloop.rst:878 msgid "" "Added the *ssl_handshake_timeout* and *start_serving* parameters. The *path* " "parameter can now be a :class:`~pathlib.Path` object." msgstr "" -#: ../../library/asyncio-eventloop.rst:883 +#: ../../library/asyncio-eventloop.rst:887 msgid "Added the *cleanup_socket* parameter." msgstr "" -#: ../../library/asyncio-eventloop.rst:891 +#: ../../library/asyncio-eventloop.rst:895 msgid "Wrap an already accepted connection into a transport/protocol pair." msgstr "" -#: ../../library/asyncio-eventloop.rst:893 +#: ../../library/asyncio-eventloop.rst:897 msgid "" "This method can be used by servers that accept connections outside of " "asyncio but that use asyncio to handle them." msgstr "" -#: ../../library/asyncio-eventloop.rst:896 -#: ../../library/asyncio-eventloop.rst:988 +#: ../../library/asyncio-eventloop.rst:900 +#: ../../library/asyncio-eventloop.rst:992 msgid "Parameters:" msgstr "" -#: ../../library/asyncio-eventloop.rst:901 +#: ../../library/asyncio-eventloop.rst:905 msgid "" "*sock* is a preexisting socket object returned from :meth:`socket.accept " "`." msgstr "" -#: ../../library/asyncio-eventloop.rst:910 +#: ../../library/asyncio-eventloop.rst:914 msgid "" "*ssl* can be set to an :class:`~ssl.SSLContext` to enable SSL over the " "accepted connections." msgstr "" -#: ../../library/asyncio-eventloop.rst:913 +#: ../../library/asyncio-eventloop.rst:917 msgid "" "*ssl_handshake_timeout* is (for an SSL connection) the time in seconds to " "wait for the SSL handshake to complete before aborting the connection. " "``60.0`` seconds if ``None`` (default)." msgstr "" -#: ../../library/asyncio-eventloop.rst:921 +#: ../../library/asyncio-eventloop.rst:925 msgid "Returns a ``(transport, protocol)`` pair." msgstr "" -#: ../../library/asyncio-eventloop.rst:935 +#: ../../library/asyncio-eventloop.rst:939 msgid "Transferring files" msgstr "" -#: ../../library/asyncio-eventloop.rst:941 +#: ../../library/asyncio-eventloop.rst:945 msgid "" "Send a *file* over a *transport*. Return the total number of bytes sent." msgstr "" -#: ../../library/asyncio-eventloop.rst:944 +#: ../../library/asyncio-eventloop.rst:948 msgid "The method uses high-performance :meth:`os.sendfile` if available." msgstr "" -#: ../../library/asyncio-eventloop.rst:946 +#: ../../library/asyncio-eventloop.rst:950 msgid "*file* must be a regular file object opened in binary mode." msgstr "" -#: ../../library/asyncio-eventloop.rst:948 -#: ../../library/asyncio-eventloop.rst:1218 +#: ../../library/asyncio-eventloop.rst:952 +#: ../../library/asyncio-eventloop.rst:1222 msgid "" "*offset* tells from where to start reading the file. If specified, *count* " "is the total number of bytes to transmit as opposed to sending the file " @@ -1245,35 +1251,35 @@ msgid "" "obtain the actual number of bytes sent." msgstr "" -#: ../../library/asyncio-eventloop.rst:955 +#: ../../library/asyncio-eventloop.rst:959 msgid "" "*fallback* set to ``True`` makes asyncio to manually read and send the file " "when the platform does not support the sendfile system call (e.g. Windows or " "SSL socket on Unix)." msgstr "" -#: ../../library/asyncio-eventloop.rst:959 +#: ../../library/asyncio-eventloop.rst:963 msgid "" "Raise :exc:`SendfileNotAvailableError` if the system does not support the " "*sendfile* syscall and *fallback* is ``False``." msgstr "" -#: ../../library/asyncio-eventloop.rst:966 +#: ../../library/asyncio-eventloop.rst:970 msgid "TLS upgrade" msgstr "" -#: ../../library/asyncio-eventloop.rst:974 +#: ../../library/asyncio-eventloop.rst:978 msgid "Upgrade an existing transport-based connection to TLS." msgstr "" -#: ../../library/asyncio-eventloop.rst:976 +#: ../../library/asyncio-eventloop.rst:980 msgid "" "Create a TLS coder/decoder instance and insert it between the *transport* " "and the *protocol*. The coder/decoder implements both *transport*-facing " "protocol and *protocol*-facing transport." msgstr "" -#: ../../library/asyncio-eventloop.rst:980 +#: ../../library/asyncio-eventloop.rst:984 msgid "" "Return the created two-interface instance. After *await*, the *protocol* " "must stop using the original *transport* and communicate with the returned " @@ -1281,88 +1287,88 @@ msgid "" "exchanges extra TLS session packets with *transport*." msgstr "" -#: ../../library/asyncio-eventloop.rst:985 +#: ../../library/asyncio-eventloop.rst:989 msgid "" "In some situations (e.g. when the passed transport is already closing) this " "may return ``None``." msgstr "" -#: ../../library/asyncio-eventloop.rst:990 +#: ../../library/asyncio-eventloop.rst:994 msgid "" "*transport* and *protocol* instances that methods like :meth:`~loop." "create_server` and :meth:`~loop.create_connection` return." msgstr "" -#: ../../library/asyncio-eventloop.rst:994 +#: ../../library/asyncio-eventloop.rst:998 msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." msgstr "" -#: ../../library/asyncio-eventloop.rst:996 +#: ../../library/asyncio-eventloop.rst:1000 msgid "" "*server_side* pass ``True`` when a server-side connection is being upgraded " "(like the one created by :meth:`~loop.create_server`)." msgstr "" -#: ../../library/asyncio-eventloop.rst:999 +#: ../../library/asyncio-eventloop.rst:1003 msgid "" "*server_hostname*: sets or overrides the host name that the target server's " "certificate will be matched against." msgstr "" -#: ../../library/asyncio-eventloop.rst:1019 +#: ../../library/asyncio-eventloop.rst:1023 msgid "Watching file descriptors" msgstr "" -#: ../../library/asyncio-eventloop.rst:1023 +#: ../../library/asyncio-eventloop.rst:1027 msgid "" "Start monitoring the *fd* file descriptor for read availability and invoke " "*callback* with the specified arguments once *fd* is available for reading." msgstr "" -#: ../../library/asyncio-eventloop.rst:1027 -#: ../../library/asyncio-eventloop.rst:1041 +#: ../../library/asyncio-eventloop.rst:1031 +#: ../../library/asyncio-eventloop.rst:1045 msgid "" "Any preexisting callback registered for *fd* is cancelled and replaced by " "*callback*." msgstr "" -#: ../../library/asyncio-eventloop.rst:1032 +#: ../../library/asyncio-eventloop.rst:1036 msgid "" "Stop monitoring the *fd* file descriptor for read availability. Returns " "``True`` if *fd* was previously being monitored for reads." msgstr "" -#: ../../library/asyncio-eventloop.rst:1037 +#: ../../library/asyncio-eventloop.rst:1041 msgid "" "Start monitoring the *fd* file descriptor for write availability and invoke " "*callback* with the specified arguments *args* once *fd* is available for " "writing." msgstr "" -#: ../../library/asyncio-eventloop.rst:1044 -#: ../../library/asyncio-eventloop.rst:1363 +#: ../../library/asyncio-eventloop.rst:1048 +#: ../../library/asyncio-eventloop.rst:1367 msgid "" "Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *callback*." msgstr "" -#: ../../library/asyncio-eventloop.rst:1049 +#: ../../library/asyncio-eventloop.rst:1053 msgid "" "Stop monitoring the *fd* file descriptor for write availability. Returns " "``True`` if *fd* was previously being monitored for writes." msgstr "" -#: ../../library/asyncio-eventloop.rst:1052 +#: ../../library/asyncio-eventloop.rst:1056 msgid "" "See also :ref:`Platform Support ` section for some " "limitations of these methods." msgstr "" -#: ../../library/asyncio-eventloop.rst:1057 +#: ../../library/asyncio-eventloop.rst:1061 msgid "Working with socket objects directly" msgstr "" -#: ../../library/asyncio-eventloop.rst:1059 +#: ../../library/asyncio-eventloop.rst:1063 msgid "" "In general, protocol implementations that use transport-based APIs such as :" "meth:`loop.create_connection` and :meth:`loop.create_server` are faster than " @@ -1371,72 +1377,72 @@ msgid "" "socket` objects directly is more convenient." msgstr "" -#: ../../library/asyncio-eventloop.rst:1069 +#: ../../library/asyncio-eventloop.rst:1073 msgid "" "Receive up to *nbytes* from *sock*. Asynchronous version of :meth:`socket." "recv() `." msgstr "" -#: ../../library/asyncio-eventloop.rst:1072 +#: ../../library/asyncio-eventloop.rst:1076 msgid "Return the received data as a bytes object." msgstr "" -#: ../../library/asyncio-eventloop.rst:1074 -#: ../../library/asyncio-eventloop.rst:1089 -#: ../../library/asyncio-eventloop.rst:1101 -#: ../../library/asyncio-eventloop.rst:1114 -#: ../../library/asyncio-eventloop.rst:1130 -#: ../../library/asyncio-eventloop.rst:1146 -#: ../../library/asyncio-eventloop.rst:1157 -#: ../../library/asyncio-eventloop.rst:1193 -#: ../../library/asyncio-eventloop.rst:1232 +#: ../../library/asyncio-eventloop.rst:1078 +#: ../../library/asyncio-eventloop.rst:1093 +#: ../../library/asyncio-eventloop.rst:1105 +#: ../../library/asyncio-eventloop.rst:1118 +#: ../../library/asyncio-eventloop.rst:1134 +#: ../../library/asyncio-eventloop.rst:1150 +#: ../../library/asyncio-eventloop.rst:1161 +#: ../../library/asyncio-eventloop.rst:1197 +#: ../../library/asyncio-eventloop.rst:1236 msgid "*sock* must be a non-blocking socket." msgstr "" -#: ../../library/asyncio-eventloop.rst:1076 +#: ../../library/asyncio-eventloop.rst:1080 msgid "" "Even though this method was always documented as a coroutine method, " "releases before Python 3.7 returned a :class:`Future`. Since Python 3.7 this " "is an ``async def`` method." msgstr "" -#: ../../library/asyncio-eventloop.rst:1084 +#: ../../library/asyncio-eventloop.rst:1088 msgid "" "Receive data from *sock* into the *buf* buffer. Modeled after the blocking :" "meth:`socket.recv_into() ` method." msgstr "" -#: ../../library/asyncio-eventloop.rst:1087 +#: ../../library/asyncio-eventloop.rst:1091 msgid "Return the number of bytes written to the buffer." msgstr "" -#: ../../library/asyncio-eventloop.rst:1096 +#: ../../library/asyncio-eventloop.rst:1100 msgid "" "Receive a datagram of up to *bufsize* from *sock*. Asynchronous version of :" "meth:`socket.recvfrom() `." msgstr "" -#: ../../library/asyncio-eventloop.rst:1099 +#: ../../library/asyncio-eventloop.rst:1103 msgid "Return a tuple of (received data, remote address)." msgstr "" -#: ../../library/asyncio-eventloop.rst:1108 +#: ../../library/asyncio-eventloop.rst:1112 msgid "" "Receive a datagram of up to *nbytes* from *sock* into *buf*. Asynchronous " "version of :meth:`socket.recvfrom_into() `." msgstr "" -#: ../../library/asyncio-eventloop.rst:1112 +#: ../../library/asyncio-eventloop.rst:1116 msgid "Return a tuple of (number of bytes received, remote address)." msgstr "" -#: ../../library/asyncio-eventloop.rst:1121 +#: ../../library/asyncio-eventloop.rst:1125 msgid "" "Send *data* to the *sock* socket. Asynchronous version of :meth:`socket." "sendall() `." msgstr "" -#: ../../library/asyncio-eventloop.rst:1124 +#: ../../library/asyncio-eventloop.rst:1128 msgid "" "This method continues to send to the socket until either all data in *data* " "has been sent or an error occurs. ``None`` is returned on success. On " @@ -1445,34 +1451,34 @@ msgid "" "the connection." msgstr "" -#: ../../library/asyncio-eventloop.rst:1132 -#: ../../library/asyncio-eventloop.rst:1195 +#: ../../library/asyncio-eventloop.rst:1136 +#: ../../library/asyncio-eventloop.rst:1199 msgid "" "Even though the method was always documented as a coroutine method, before " "Python 3.7 it returned a :class:`Future`. Since Python 3.7, this is an " "``async def`` method." msgstr "" -#: ../../library/asyncio-eventloop.rst:1140 +#: ../../library/asyncio-eventloop.rst:1144 msgid "" "Send a datagram from *sock* to *address*. Asynchronous version of :meth:" "`socket.sendto() `." msgstr "" -#: ../../library/asyncio-eventloop.rst:1144 +#: ../../library/asyncio-eventloop.rst:1148 msgid "Return the number of bytes sent." msgstr "" -#: ../../library/asyncio-eventloop.rst:1153 +#: ../../library/asyncio-eventloop.rst:1157 msgid "Connect *sock* to a remote socket at *address*." msgstr "" -#: ../../library/asyncio-eventloop.rst:1155 +#: ../../library/asyncio-eventloop.rst:1159 msgid "" "Asynchronous version of :meth:`socket.connect() `." msgstr "" -#: ../../library/asyncio-eventloop.rst:1159 +#: ../../library/asyncio-eventloop.rst:1163 msgid "" "With :class:`SelectorEventLoop`, *address* does not need to be resolved: " "for :const:`~socket.AF_INET` and :const:`~socket.AF_INET6` sockets, " @@ -1481,7 +1487,7 @@ msgid "" "resolve it if it is not." msgstr "" -#: ../../library/asyncio-eventloop.rst:1165 +#: ../../library/asyncio-eventloop.rst:1169 msgid "" ":class:`ProactorEventLoop`, the default event loop on Windows, does not " "resolve *address*. The host must already be a numeric IP address; passing a " @@ -1490,24 +1496,24 @@ msgid "" "the address on every platform." msgstr "" -#: ../../library/asyncio-eventloop.rst:1171 +#: ../../library/asyncio-eventloop.rst:1175 msgid "" "With :class:`SelectorEventLoop`, ``address`` no longer needs to be resolved." msgstr "" -#: ../../library/asyncio-eventloop.rst:1177 +#: ../../library/asyncio-eventloop.rst:1181 msgid "" ":meth:`loop.create_connection` and :func:`asyncio.open_connection() " "`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1184 +#: ../../library/asyncio-eventloop.rst:1188 msgid "" "Accept a connection. Modeled after the blocking :meth:`socket.accept() " "` method." msgstr "" -#: ../../library/asyncio-eventloop.rst:1187 +#: ../../library/asyncio-eventloop.rst:1191 msgid "" "The socket must be bound to an address and listening for connections. The " "return value is a pair ``(conn, address)`` where *conn* is a *new* socket " @@ -1515,57 +1521,57 @@ msgid "" "the address bound to the socket on the other end of the connection." msgstr "" -#: ../../library/asyncio-eventloop.rst:1202 +#: ../../library/asyncio-eventloop.rst:1206 msgid ":meth:`loop.create_server` and :func:`start_server`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1208 +#: ../../library/asyncio-eventloop.rst:1212 msgid "" "Send a file using high-performance :mod:`os.sendfile` if possible. Return " "the total number of bytes sent." msgstr "" -#: ../../library/asyncio-eventloop.rst:1211 +#: ../../library/asyncio-eventloop.rst:1215 msgid "" "Asynchronous version of :meth:`socket.sendfile() `." msgstr "" -#: ../../library/asyncio-eventloop.rst:1213 +#: ../../library/asyncio-eventloop.rst:1217 msgid "" "*sock* must be a non-blocking :const:`socket.SOCK_STREAM` :class:`~socket." "socket`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1216 +#: ../../library/asyncio-eventloop.rst:1220 msgid "*file* must be a regular file object open in binary mode." msgstr "" -#: ../../library/asyncio-eventloop.rst:1225 +#: ../../library/asyncio-eventloop.rst:1229 msgid "" "*fallback*, when set to ``True``, makes asyncio manually read and send the " "file when the platform does not support the sendfile syscall (e.g. Windows " "or SSL socket on Unix)." msgstr "" -#: ../../library/asyncio-eventloop.rst:1229 +#: ../../library/asyncio-eventloop.rst:1233 msgid "" "Raise :exc:`SendfileNotAvailableError` if the system does not support " "*sendfile* syscall and *fallback* is ``False``." msgstr "" -#: ../../library/asyncio-eventloop.rst:1238 +#: ../../library/asyncio-eventloop.rst:1242 msgid "DNS" msgstr "" -#: ../../library/asyncio-eventloop.rst:1244 +#: ../../library/asyncio-eventloop.rst:1248 msgid "Asynchronous version of :meth:`socket.getaddrinfo`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1249 +#: ../../library/asyncio-eventloop.rst:1253 msgid "Asynchronous version of :meth:`socket.getnameinfo`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1252 +#: ../../library/asyncio-eventloop.rst:1256 msgid "" "Both *getaddrinfo* and *getnameinfo* internally utilize their synchronous " "versions through the loop's default thread pool executor. When this executor " @@ -1575,7 +1581,7 @@ msgid "" "executor with a larger number of workers." msgstr "" -#: ../../library/asyncio-eventloop.rst:1259 +#: ../../library/asyncio-eventloop.rst:1263 msgid "" "Both *getaddrinfo* and *getnameinfo* methods were always documented to " "return a coroutine, but prior to Python 3.7 they were, in fact, returning :" @@ -1583,51 +1589,51 @@ msgid "" "coroutines." msgstr "" -#: ../../library/asyncio-eventloop.rst:1267 +#: ../../library/asyncio-eventloop.rst:1271 msgid "Working with pipes" msgstr "" -#: ../../library/asyncio-eventloop.rst:1272 +#: ../../library/asyncio-eventloop.rst:1276 msgid "Register the read end of *pipe* in the event loop." msgstr "" -#: ../../library/asyncio-eventloop.rst:1277 -#: ../../library/asyncio-eventloop.rst:1296 +#: ../../library/asyncio-eventloop.rst:1281 +#: ../../library/asyncio-eventloop.rst:1300 msgid "" "*pipe* is a :term:`file-like object `. See :ref:`Supported " "pipe objects ` for the objects supported as *pipe*." msgstr "" -#: ../../library/asyncio-eventloop.rst:1281 +#: ../../library/asyncio-eventloop.rst:1285 msgid "" "Return pair ``(transport, protocol)``, where *transport* supports the :class:" "`ReadTransport` interface and *protocol* is an object instantiated by the " "*protocol_factory*." msgstr "" -#: ../../library/asyncio-eventloop.rst:1285 -#: ../../library/asyncio-eventloop.rst:1304 +#: ../../library/asyncio-eventloop.rst:1289 +#: ../../library/asyncio-eventloop.rst:1308 msgid "" "With :class:`SelectorEventLoop` event loop, the *pipe* is set to non-" "blocking mode." msgstr "" -#: ../../library/asyncio-eventloop.rst:1291 +#: ../../library/asyncio-eventloop.rst:1295 msgid "Register the write end of *pipe* in the event loop." msgstr "" -#: ../../library/asyncio-eventloop.rst:1300 +#: ../../library/asyncio-eventloop.rst:1304 msgid "" "Return pair ``(transport, protocol)``, where *transport* supports :class:" "`WriteTransport` interface and *protocol* is an object instantiated by the " "*protocol_factory*." msgstr "" -#: ../../library/asyncio-eventloop.rst:1310 +#: ../../library/asyncio-eventloop.rst:1314 msgid "Supported pipe objects" msgstr "" -#: ../../library/asyncio-eventloop.rst:1311 +#: ../../library/asyncio-eventloop.rst:1315 msgid "" "These methods only work with objects the operating system can poll for " "readiness or perform overlapped I/O on. Regular files on disk are **not** " @@ -1636,27 +1642,27 @@ msgid "" "blocking the event loop." msgstr "" -#: ../../library/asyncio-eventloop.rst:1317 +#: ../../library/asyncio-eventloop.rst:1321 msgid "" "On Unix, with :class:`SelectorEventLoop`, *pipe* must wrap one of the " "following:" msgstr "" -#: ../../library/asyncio-eventloop.rst:1320 +#: ../../library/asyncio-eventloop.rst:1324 msgid "" "a pipe, such as an end of an :func:`os.pipe` pair or a FIFO created with :" "func:`os.mkfifo`;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1322 +#: ../../library/asyncio-eventloop.rst:1326 msgid "a socket;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1323 +#: ../../library/asyncio-eventloop.rst:1327 msgid "a character device, such as a terminal." msgstr "" -#: ../../library/asyncio-eventloop.rst:1325 +#: ../../library/asyncio-eventloop.rst:1329 msgid "" "On Windows, where only :class:`ProactorEventLoop` implements these methods, " "*pipe* must wrap a handle opened for overlapped I/O (that is, created with " @@ -1668,28 +1674,28 @@ msgid "" "therefore cannot be used with these methods." msgstr "" -#: ../../library/asyncio-eventloop.rst:1336 +#: ../../library/asyncio-eventloop.rst:1340 msgid "" ":class:`SelectorEventLoop` does not support the above methods on Windows. " "Use :class:`ProactorEventLoop` instead for Windows." msgstr "" -#: ../../library/asyncio-eventloop.rst:1341 +#: ../../library/asyncio-eventloop.rst:1345 msgid "" "The :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` methods." msgstr "" -#: ../../library/asyncio-eventloop.rst:1346 +#: ../../library/asyncio-eventloop.rst:1350 msgid "Unix signals" msgstr "" -#: ../../library/asyncio-eventloop.rst:1352 +#: ../../library/asyncio-eventloop.rst:1356 msgid "" "Set *callback* as the handler for the *signum* signal, passing *args* as " "positional arguments." msgstr "" -#: ../../library/asyncio-eventloop.rst:1355 +#: ../../library/asyncio-eventloop.rst:1359 msgid "" "The callback will be invoked by *loop*, along with other queued callbacks " "and runnable coroutines of that event loop. Unlike signal handlers " @@ -1697,42 +1703,42 @@ msgid "" "function is allowed to interact with the event loop." msgstr "" -#: ../../library/asyncio-eventloop.rst:1360 +#: ../../library/asyncio-eventloop.rst:1364 msgid "" "Raise :exc:`ValueError` if the signal number is invalid or uncatchable. " "Raise :exc:`RuntimeError` if there is a problem setting up the handler." msgstr "" -#: ../../library/asyncio-eventloop.rst:1366 +#: ../../library/asyncio-eventloop.rst:1370 msgid "" "Like :func:`signal.signal`, this function must be invoked in the main thread." msgstr "" -#: ../../library/asyncio-eventloop.rst:1371 +#: ../../library/asyncio-eventloop.rst:1375 msgid "Remove the handler for the *sig* signal." msgstr "" -#: ../../library/asyncio-eventloop.rst:1373 +#: ../../library/asyncio-eventloop.rst:1377 msgid "" "Return ``True`` if the signal handler was removed, or ``False`` if no " "handler was set for the given signal." msgstr "" -#: ../../library/asyncio-eventloop.rst:1380 +#: ../../library/asyncio-eventloop.rst:1384 msgid "The :mod:`signal` module." msgstr "" -#: ../../library/asyncio-eventloop.rst:1384 +#: ../../library/asyncio-eventloop.rst:1388 msgid "Executing code in thread or process pools" msgstr "" -#: ../../library/asyncio-eventloop.rst:1388 +#: ../../library/asyncio-eventloop.rst:1392 msgid "" "Arrange for *func* to be called in the specified executor passing *args* as " "positional arguments." msgstr "" -#: ../../library/asyncio-eventloop.rst:1391 +#: ../../library/asyncio-eventloop.rst:1395 msgid "" "The *executor* argument should be an :class:`concurrent.futures.Executor` " "instance. The default executor is used if *executor* is ``None``. The " @@ -1741,7 +1747,7 @@ msgid "" "and used by :func:`run_in_executor` if needed." msgstr "" -#: ../../library/asyncio-eventloop.rst:1399 +#: ../../library/asyncio-eventloop.rst:1403 msgid "" "import asyncio\n" "import concurrent.futures\n" @@ -1790,7 +1796,7 @@ msgid "" " asyncio.run(main())" msgstr "" -#: ../../library/asyncio-eventloop.rst:1445 +#: ../../library/asyncio-eventloop.rst:1449 msgid "" "Note that the entry point guard (``if __name__ == '__main__'``) is required " "for option 3 due to the peculiarities of :mod:`multiprocessing`, which is " @@ -1798,17 +1804,17 @@ msgid "" "importing of main module `." msgstr "" -#: ../../library/asyncio-eventloop.rst:1450 +#: ../../library/asyncio-eventloop.rst:1454 msgid "This method returns a :class:`asyncio.Future` object." msgstr "" -#: ../../library/asyncio-eventloop.rst:1452 +#: ../../library/asyncio-eventloop.rst:1456 msgid "" "Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *func*." msgstr "" -#: ../../library/asyncio-eventloop.rst:1455 +#: ../../library/asyncio-eventloop.rst:1459 msgid "" ":meth:`loop.run_in_executor` no longer configures the ``max_workers`` of the " "thread pool executor it creates, instead leaving it up to the thread pool " @@ -1816,7 +1822,7 @@ msgid "" "default." msgstr "" -#: ../../library/asyncio-eventloop.rst:1464 +#: ../../library/asyncio-eventloop.rst:1468 msgid "" "Set *executor* as the default executor used by :meth:`run_in_executor`. " "*executor* must be an instance of :class:`~concurrent.futures." @@ -1824,25 +1830,25 @@ msgid "" "InterpreterPoolExecutor`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1469 +#: ../../library/asyncio-eventloop.rst:1473 msgid "" "*executor* must be an instance of :class:`~concurrent.futures." "ThreadPoolExecutor`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1475 +#: ../../library/asyncio-eventloop.rst:1479 msgid "Error handling API" msgstr "" -#: ../../library/asyncio-eventloop.rst:1477 +#: ../../library/asyncio-eventloop.rst:1481 msgid "Allows customizing how exceptions are handled in the event loop." msgstr "" -#: ../../library/asyncio-eventloop.rst:1481 +#: ../../library/asyncio-eventloop.rst:1485 msgid "Set *handler* as the new event loop exception handler." msgstr "" -#: ../../library/asyncio-eventloop.rst:1483 +#: ../../library/asyncio-eventloop.rst:1487 msgid "" "If *handler* is ``None``, the default exception handler will be set. " "Otherwise, *handler* must be a callable with the signature matching ``(loop, " @@ -1851,190 +1857,190 @@ msgid "" "(see :meth:`call_exception_handler` documentation for details about context)." msgstr "" -#: ../../library/asyncio-eventloop.rst:1491 +#: ../../library/asyncio-eventloop.rst:1495 msgid "" "If the handler is called on behalf of a :class:`~asyncio.Task` or :class:" "`~asyncio.Handle`, it is run in the :class:`contextvars.Context` of that " "task or callback handle." msgstr "" -#: ../../library/asyncio-eventloop.rst:1497 +#: ../../library/asyncio-eventloop.rst:1501 msgid "" "The handler may be called in the :class:`~contextvars.Context` of the task " "or handle where the exception originated." msgstr "" -#: ../../library/asyncio-eventloop.rst:1502 +#: ../../library/asyncio-eventloop.rst:1506 msgid "" "Return the current exception handler, or ``None`` if no custom exception " "handler was set." msgstr "" -#: ../../library/asyncio-eventloop.rst:1509 +#: ../../library/asyncio-eventloop.rst:1513 msgid "Default exception handler." msgstr "" -#: ../../library/asyncio-eventloop.rst:1511 +#: ../../library/asyncio-eventloop.rst:1515 msgid "" "This is called when an exception occurs and no exception handler is set. " "This can be called by a custom exception handler that wants to defer to the " "default handler behavior." msgstr "" -#: ../../library/asyncio-eventloop.rst:1515 +#: ../../library/asyncio-eventloop.rst:1519 msgid "" "*context* parameter has the same meaning as in :meth:" "`call_exception_handler`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1520 +#: ../../library/asyncio-eventloop.rst:1524 msgid "Call the current event loop exception handler." msgstr "" -#: ../../library/asyncio-eventloop.rst:1522 +#: ../../library/asyncio-eventloop.rst:1526 msgid "" "*context* is a ``dict`` object containing the following keys (new keys may " "be introduced in future Python versions):" msgstr "" -#: ../../library/asyncio-eventloop.rst:1525 +#: ../../library/asyncio-eventloop.rst:1529 msgid "'message': Error message;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1526 +#: ../../library/asyncio-eventloop.rst:1530 msgid "'exception' (optional): Exception object;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1527 +#: ../../library/asyncio-eventloop.rst:1531 msgid "'future' (optional): :class:`asyncio.Future` instance;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1528 +#: ../../library/asyncio-eventloop.rst:1532 msgid "'task' (optional): :class:`asyncio.Task` instance;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1529 +#: ../../library/asyncio-eventloop.rst:1533 msgid "'handle' (optional): :class:`asyncio.Handle` instance;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1530 +#: ../../library/asyncio-eventloop.rst:1534 msgid "'protocol' (optional): :ref:`Protocol ` instance;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1531 +#: ../../library/asyncio-eventloop.rst:1535 msgid "'transport' (optional): :ref:`Transport ` instance;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1532 +#: ../../library/asyncio-eventloop.rst:1536 msgid "'socket' (optional): :class:`socket.socket` instance;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1533 +#: ../../library/asyncio-eventloop.rst:1537 msgid "'source_traceback' (optional): Traceback of the source;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1534 +#: ../../library/asyncio-eventloop.rst:1538 msgid "'handle_traceback' (optional): Traceback of the handle;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1535 +#: ../../library/asyncio-eventloop.rst:1539 msgid "'asyncgen' (optional): Asynchronous generator that caused" msgstr "" -#: ../../library/asyncio-eventloop.rst:1536 +#: ../../library/asyncio-eventloop.rst:1540 msgid "the exception." msgstr "" -#: ../../library/asyncio-eventloop.rst:1540 +#: ../../library/asyncio-eventloop.rst:1544 msgid "" "This method should not be overloaded in subclassed event loops. For custom " "exception handling, use the :meth:`set_exception_handler` method." msgstr "" -#: ../../library/asyncio-eventloop.rst:1545 +#: ../../library/asyncio-eventloop.rst:1549 msgid "Enabling debug mode" msgstr "" -#: ../../library/asyncio-eventloop.rst:1549 +#: ../../library/asyncio-eventloop.rst:1553 msgid "Get the debug mode (:class:`bool`) of the event loop." msgstr "" -#: ../../library/asyncio-eventloop.rst:1551 +#: ../../library/asyncio-eventloop.rst:1555 msgid "" "The default value is ``True`` if the environment variable :envvar:" "`PYTHONASYNCIODEBUG` is set to a non-empty string, ``False`` otherwise." msgstr "" -#: ../../library/asyncio-eventloop.rst:1557 +#: ../../library/asyncio-eventloop.rst:1561 msgid "Set the debug mode of the event loop." msgstr "" -#: ../../library/asyncio-eventloop.rst:1561 +#: ../../library/asyncio-eventloop.rst:1565 msgid "" "The new :ref:`Python Development Mode ` can now also be used to " "enable the debug mode." msgstr "" -#: ../../library/asyncio-eventloop.rst:1566 +#: ../../library/asyncio-eventloop.rst:1570 msgid "" "This attribute can be used to set the minimum execution duration in seconds " "that is considered \"slow\". When debug mode is enabled, \"slow\" callbacks " "are logged." msgstr "" -#: ../../library/asyncio-eventloop.rst:1570 +#: ../../library/asyncio-eventloop.rst:1574 msgid "Default value is 100 milliseconds." msgstr "" -#: ../../library/asyncio-eventloop.rst:1574 +#: ../../library/asyncio-eventloop.rst:1578 msgid "The :ref:`debug mode of asyncio `." msgstr "" -#: ../../library/asyncio-eventloop.rst:1578 +#: ../../library/asyncio-eventloop.rst:1582 msgid "Running subprocesses" msgstr "" -#: ../../library/asyncio-eventloop.rst:1580 +#: ../../library/asyncio-eventloop.rst:1584 msgid "" "Methods described in this subsections are low-level. In regular async/await " "code consider using the high-level :func:`asyncio.create_subprocess_shell` " "and :func:`asyncio.create_subprocess_exec` convenience functions instead." msgstr "" -#: ../../library/asyncio-eventloop.rst:1587 +#: ../../library/asyncio-eventloop.rst:1591 msgid "" "On Windows, the default event loop :class:`ProactorEventLoop` supports " "subprocesses, whereas :class:`SelectorEventLoop` does not. See :ref:" "`Subprocess Support on Windows ` for details." msgstr "" -#: ../../library/asyncio-eventloop.rst:1599 +#: ../../library/asyncio-eventloop.rst:1603 msgid "" "Create a subprocess from one or more string arguments specified by *args*." msgstr "" -#: ../../library/asyncio-eventloop.rst:1602 +#: ../../library/asyncio-eventloop.rst:1606 msgid "*args* must be a list of strings represented by:" msgstr "" -#: ../../library/asyncio-eventloop.rst:1604 +#: ../../library/asyncio-eventloop.rst:1608 msgid ":class:`str`;" msgstr "" -#: ../../library/asyncio-eventloop.rst:1605 +#: ../../library/asyncio-eventloop.rst:1609 msgid "" "or :class:`bytes`, encoded to the :ref:`filesystem encoding `." msgstr "" -#: ../../library/asyncio-eventloop.rst:1608 +#: ../../library/asyncio-eventloop.rst:1612 msgid "" "The first string specifies the program executable, and the remaining strings " "specify the arguments. Together, string arguments form the ``argv`` of the " "program." msgstr "" -#: ../../library/asyncio-eventloop.rst:1612 +#: ../../library/asyncio-eventloop.rst:1616 msgid "" "This is similar to the standard library :class:`subprocess.Popen` class " "called with ``shell=False`` and the list of strings passed as the first " @@ -2042,85 +2048,85 @@ msgid "" "which is list of strings, *subprocess_exec* takes multiple string arguments." msgstr "" -#: ../../library/asyncio-eventloop.rst:1618 +#: ../../library/asyncio-eventloop.rst:1622 msgid "" "The *protocol_factory* must be a callable returning a subclass of the :class:" "`asyncio.SubprocessProtocol` class." msgstr "" -#: ../../library/asyncio-eventloop.rst:1621 +#: ../../library/asyncio-eventloop.rst:1625 msgid "Other parameters:" msgstr "" -#: ../../library/asyncio-eventloop.rst:1623 +#: ../../library/asyncio-eventloop.rst:1627 msgid "*stdin* can be any of these:" msgstr "" -#: ../../library/asyncio-eventloop.rst:1625 -#: ../../library/asyncio-eventloop.rst:1636 -#: ../../library/asyncio-eventloop.rst:1646 +#: ../../library/asyncio-eventloop.rst:1629 +#: ../../library/asyncio-eventloop.rst:1640 +#: ../../library/asyncio-eventloop.rst:1650 msgid "a file-like object" msgstr "" -#: ../../library/asyncio-eventloop.rst:1626 +#: ../../library/asyncio-eventloop.rst:1630 msgid "" "an existing file descriptor (a positive integer), for example those created " "with :meth:`os.pipe`" msgstr "" -#: ../../library/asyncio-eventloop.rst:1627 -#: ../../library/asyncio-eventloop.rst:1637 -#: ../../library/asyncio-eventloop.rst:1647 +#: ../../library/asyncio-eventloop.rst:1631 +#: ../../library/asyncio-eventloop.rst:1641 +#: ../../library/asyncio-eventloop.rst:1651 msgid "" "the :const:`subprocess.PIPE` constant (default) which will create a new pipe " "and connect it," msgstr "" -#: ../../library/asyncio-eventloop.rst:1629 -#: ../../library/asyncio-eventloop.rst:1639 -#: ../../library/asyncio-eventloop.rst:1649 +#: ../../library/asyncio-eventloop.rst:1633 +#: ../../library/asyncio-eventloop.rst:1643 +#: ../../library/asyncio-eventloop.rst:1653 msgid "" "the value ``None`` which will make the subprocess inherit the file " "descriptor from this process" msgstr "" -#: ../../library/asyncio-eventloop.rst:1631 -#: ../../library/asyncio-eventloop.rst:1641 -#: ../../library/asyncio-eventloop.rst:1651 +#: ../../library/asyncio-eventloop.rst:1635 +#: ../../library/asyncio-eventloop.rst:1645 +#: ../../library/asyncio-eventloop.rst:1655 msgid "" "the :const:`subprocess.DEVNULL` constant which indicates that the special :" "data:`os.devnull` file will be used" msgstr "" -#: ../../library/asyncio-eventloop.rst:1634 +#: ../../library/asyncio-eventloop.rst:1638 msgid "*stdout* can be any of these:" msgstr "" -#: ../../library/asyncio-eventloop.rst:1644 +#: ../../library/asyncio-eventloop.rst:1648 msgid "*stderr* can be any of these:" msgstr "" -#: ../../library/asyncio-eventloop.rst:1653 +#: ../../library/asyncio-eventloop.rst:1657 msgid "" "the :const:`subprocess.STDOUT` constant which will connect the standard " "error stream to the process' standard output stream" msgstr "" -#: ../../library/asyncio-eventloop.rst:1656 +#: ../../library/asyncio-eventloop.rst:1660 msgid "" "All other keyword arguments are passed to :class:`subprocess.Popen` without " "interpretation, except for *bufsize*, *universal_newlines*, *shell*, *text*, " "*encoding* and *errors*, which should not be specified at all." msgstr "" -#: ../../library/asyncio-eventloop.rst:1661 +#: ../../library/asyncio-eventloop.rst:1665 msgid "" "The ``asyncio`` subprocess API does not support decoding the streams as " "text. :func:`bytes.decode` can be used to convert the bytes returned from " "the stream to text." msgstr "" -#: ../../library/asyncio-eventloop.rst:1665 +#: ../../library/asyncio-eventloop.rst:1669 msgid "" "If a file-like object passed as *stdin*, *stdout* or *stderr* represents a " "pipe, then the other side of this pipe should be registered with :meth:" @@ -2128,59 +2134,59 @@ msgid "" "the event loop." msgstr "" -#: ../../library/asyncio-eventloop.rst:1670 +#: ../../library/asyncio-eventloop.rst:1674 msgid "" "See the constructor of the :class:`subprocess.Popen` class for documentation " "on other arguments." msgstr "" -#: ../../library/asyncio-eventloop.rst:1673 +#: ../../library/asyncio-eventloop.rst:1677 msgid "" "Returns a pair of ``(transport, protocol)``, where *transport* conforms to " "the :class:`asyncio.SubprocessTransport` base class and *protocol* is an " "object instantiated by the *protocol_factory*." msgstr "" -#: ../../library/asyncio-eventloop.rst:1677 -#: ../../library/asyncio-eventloop.rst:1703 +#: ../../library/asyncio-eventloop.rst:1681 +#: ../../library/asyncio-eventloop.rst:1707 msgid "" "If the transport is closed or is garbage collected, the child process is " "killed if it is still running." msgstr "" -#: ../../library/asyncio-eventloop.rst:1685 +#: ../../library/asyncio-eventloop.rst:1689 msgid "" "Create a subprocess from *cmd*, which can be a :class:`str` or a :class:" "`bytes` string encoded to the :ref:`filesystem encoding `, using the platform's \"shell\" syntax." msgstr "" -#: ../../library/asyncio-eventloop.rst:1690 +#: ../../library/asyncio-eventloop.rst:1694 msgid "" "This is similar to the standard library :class:`subprocess.Popen` class " "called with ``shell=True``." msgstr "" -#: ../../library/asyncio-eventloop.rst:1693 +#: ../../library/asyncio-eventloop.rst:1697 msgid "" "The *protocol_factory* must be a callable returning a subclass of the :class:" "`SubprocessProtocol` class." msgstr "" -#: ../../library/asyncio-eventloop.rst:1696 +#: ../../library/asyncio-eventloop.rst:1700 msgid "" "See :meth:`~loop.subprocess_exec` for more details about the remaining " "arguments." msgstr "" -#: ../../library/asyncio-eventloop.rst:1699 +#: ../../library/asyncio-eventloop.rst:1703 msgid "" "Returns a pair of ``(transport, protocol)``, where *transport* conforms to " "the :class:`SubprocessTransport` base class and *protocol* is an object " "instantiated by the *protocol_factory*." msgstr "" -#: ../../library/asyncio-eventloop.rst:1707 +#: ../../library/asyncio-eventloop.rst:1711 msgid "" "It is the application's responsibility to ensure that all whitespace and " "special characters are quoted appropriately to avoid `shell injection " @@ -2190,74 +2196,74 @@ msgid "" "used to construct shell commands." msgstr "" -#: ../../library/asyncio-eventloop.rst:1716 +#: ../../library/asyncio-eventloop.rst:1720 msgid "Callback handles" msgstr "" -#: ../../library/asyncio-eventloop.rst:1720 +#: ../../library/asyncio-eventloop.rst:1724 msgid "" "A callback wrapper object returned by :meth:`loop.call_soon`, :meth:`loop." "call_soon_threadsafe`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1725 +#: ../../library/asyncio-eventloop.rst:1729 msgid "" "Return the :class:`contextvars.Context` object associated with the handle." msgstr "" -#: ../../library/asyncio-eventloop.rst:1732 +#: ../../library/asyncio-eventloop.rst:1736 msgid "" "Cancel the callback. If the callback has already been canceled or executed, " "this method has no effect." msgstr "" -#: ../../library/asyncio-eventloop.rst:1737 +#: ../../library/asyncio-eventloop.rst:1741 msgid "Return ``True`` if the callback was cancelled." msgstr "" -#: ../../library/asyncio-eventloop.rst:1743 +#: ../../library/asyncio-eventloop.rst:1747 msgid "" "A callback wrapper object returned by :meth:`loop.call_later`, and :meth:" "`loop.call_at`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1746 +#: ../../library/asyncio-eventloop.rst:1750 msgid "This class is a subclass of :class:`Handle`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1750 +#: ../../library/asyncio-eventloop.rst:1754 msgid "Return a scheduled callback time as :class:`float` seconds." msgstr "" -#: ../../library/asyncio-eventloop.rst:1752 +#: ../../library/asyncio-eventloop.rst:1756 msgid "" "The time is an absolute timestamp, using the same time reference as :meth:" "`loop.time`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1759 +#: ../../library/asyncio-eventloop.rst:1763 msgid "Server objects" msgstr "" -#: ../../library/asyncio-eventloop.rst:1761 +#: ../../library/asyncio-eventloop.rst:1765 msgid "" "Server objects are created by :meth:`loop.create_server`, :meth:`loop." "create_unix_server`, :func:`start_server`, and :func:`start_unix_server` " "functions." msgstr "" -#: ../../library/asyncio-eventloop.rst:1765 +#: ../../library/asyncio-eventloop.rst:1769 msgid "Do not instantiate the :class:`Server` class directly." msgstr "" -#: ../../library/asyncio-eventloop.rst:1769 +#: ../../library/asyncio-eventloop.rst:1773 msgid "" "*Server* objects are asynchronous context managers. When used in an ``async " "with`` statement, it's guaranteed that the Server object is closed and not " "accepting new connections when the ``async with`` statement is completed::" msgstr "" -#: ../../library/asyncio-eventloop.rst:1774 +#: ../../library/asyncio-eventloop.rst:1778 msgid "" "srv = await loop.create_server(...)\n" "\n" @@ -2267,81 +2273,81 @@ msgid "" "# At this point, srv is closed and no longer accepts new connections." msgstr "" -#: ../../library/asyncio-eventloop.rst:1782 +#: ../../library/asyncio-eventloop.rst:1786 msgid "Server object is an asynchronous context manager since Python 3.7." msgstr "" -#: ../../library/asyncio-eventloop.rst:1785 +#: ../../library/asyncio-eventloop.rst:1789 msgid "" "This class was exposed publicly as ``asyncio.Server`` in Python 3.9.11, " "3.10.3 and 3.11." msgstr "" -#: ../../library/asyncio-eventloop.rst:1790 +#: ../../library/asyncio-eventloop.rst:1794 msgid "" "Stop serving: close listening sockets and set the :attr:`sockets` attribute " "to ``None``." msgstr "" -#: ../../library/asyncio-eventloop.rst:1793 +#: ../../library/asyncio-eventloop.rst:1797 msgid "" "The sockets that represent existing incoming client connections are left " "open." msgstr "" -#: ../../library/asyncio-eventloop.rst:1796 +#: ../../library/asyncio-eventloop.rst:1800 msgid "" "The server is closed asynchronously; use the :meth:`wait_closed` coroutine " "to wait until the server is closed (and no more connections are active)." msgstr "" -#: ../../library/asyncio-eventloop.rst:1802 +#: ../../library/asyncio-eventloop.rst:1806 msgid "Close all existing incoming client connections." msgstr "" -#: ../../library/asyncio-eventloop.rst:1804 +#: ../../library/asyncio-eventloop.rst:1808 msgid "" "Calls :meth:`~asyncio.BaseTransport.close` on all associated transports." msgstr "" -#: ../../library/asyncio-eventloop.rst:1807 +#: ../../library/asyncio-eventloop.rst:1811 msgid "" ":meth:`close` should be called before :meth:`close_clients` when closing the " "server to avoid races with new clients connecting." msgstr "" -#: ../../library/asyncio-eventloop.rst:1814 +#: ../../library/asyncio-eventloop.rst:1818 msgid "" "Close all existing incoming client connections immediately, without waiting " "for pending operations to complete." msgstr "" -#: ../../library/asyncio-eventloop.rst:1817 +#: ../../library/asyncio-eventloop.rst:1821 msgid "" "Calls :meth:`~asyncio.WriteTransport.abort` on all associated transports." msgstr "" -#: ../../library/asyncio-eventloop.rst:1820 +#: ../../library/asyncio-eventloop.rst:1824 msgid "" ":meth:`close` should be called before :meth:`abort_clients` when closing the " "server to avoid races with new clients connecting." msgstr "" -#: ../../library/asyncio-eventloop.rst:1827 +#: ../../library/asyncio-eventloop.rst:1831 msgid "Return the event loop associated with the server object." msgstr "" -#: ../../library/asyncio-eventloop.rst:1834 +#: ../../library/asyncio-eventloop.rst:1838 msgid "Start accepting connections." msgstr "" -#: ../../library/asyncio-eventloop.rst:1836 +#: ../../library/asyncio-eventloop.rst:1840 msgid "" "This method is idempotent, so it can be called when the server is already " "serving." msgstr "" -#: ../../library/asyncio-eventloop.rst:1839 +#: ../../library/asyncio-eventloop.rst:1843 msgid "" "The *start_serving* keyword-only parameter to :meth:`loop.create_server` " "and :meth:`asyncio.start_server` allows creating a Server object that is not " @@ -2350,19 +2356,19 @@ msgid "" "accepting connections." msgstr "" -#: ../../library/asyncio-eventloop.rst:1851 +#: ../../library/asyncio-eventloop.rst:1855 msgid "" "Start accepting connections until the coroutine is cancelled. Cancellation " "of ``serve_forever`` task causes the server to be closed." msgstr "" -#: ../../library/asyncio-eventloop.rst:1855 +#: ../../library/asyncio-eventloop.rst:1859 msgid "" "This method can be called if the server is already accepting connections. " "Only one ``serve_forever`` task can exist per one *Server* object." msgstr "" -#: ../../library/asyncio-eventloop.rst:1861 +#: ../../library/asyncio-eventloop.rst:1865 msgid "" "async def client_connected(reader, writer):\n" " # Communicate with the client with\n" @@ -2377,63 +2383,63 @@ msgid "" "asyncio.run(main('127.0.0.1', 0))" msgstr "" -#: ../../library/asyncio-eventloop.rst:1877 +#: ../../library/asyncio-eventloop.rst:1881 msgid "Return ``True`` if the server is accepting new connections." msgstr "" -#: ../../library/asyncio-eventloop.rst:1884 +#: ../../library/asyncio-eventloop.rst:1888 msgid "" "Wait until the :meth:`close` method completes and all active connections " "have finished." msgstr "" -#: ../../library/asyncio-eventloop.rst:1887 +#: ../../library/asyncio-eventloop.rst:1891 msgid "" "``wait_closed()`` now waits until the server is closed and all active " "connections have finished. Previously, it returned immediately if the " "server was already closed, even if connections were still active." msgstr "" -#: ../../library/asyncio-eventloop.rst:1895 +#: ../../library/asyncio-eventloop.rst:1899 msgid "" "List of socket-like objects, ``asyncio.trsock.TransportSocket``, which the " "server is listening on." msgstr "" -#: ../../library/asyncio-eventloop.rst:1898 +#: ../../library/asyncio-eventloop.rst:1902 msgid "" "Prior to Python 3.7 ``Server.sockets`` used to return an internal list of " "server sockets directly. In 3.7 a copy of that list is returned." msgstr "" -#: ../../library/asyncio-eventloop.rst:1908 +#: ../../library/asyncio-eventloop.rst:1912 msgid "Event loop implementations" msgstr "" -#: ../../library/asyncio-eventloop.rst:1910 +#: ../../library/asyncio-eventloop.rst:1914 msgid "" "asyncio ships with two different event loop implementations: :class:" "`SelectorEventLoop` and :class:`ProactorEventLoop`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1913 +#: ../../library/asyncio-eventloop.rst:1917 msgid "By default asyncio is configured to use :class:`EventLoop`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1918 +#: ../../library/asyncio-eventloop.rst:1922 msgid "" "A subclass of :class:`AbstractEventLoop` based on the :mod:`selectors` " "module." msgstr "" -#: ../../library/asyncio-eventloop.rst:1921 +#: ../../library/asyncio-eventloop.rst:1925 msgid "" "Uses the most efficient *selector* available for the given platform. It is " "also possible to manually configure the exact selector implementation to be " "used::" msgstr "" -#: ../../library/asyncio-eventloop.rst:1925 +#: ../../library/asyncio-eventloop.rst:1929 msgid "" "import asyncio\n" "import selectors\n" @@ -2446,45 +2452,45 @@ msgid "" "asyncio.run(main(), loop_factory=loop_factory)" msgstr "" -#: ../../library/asyncio-eventloop.rst:1940 +#: ../../library/asyncio-eventloop.rst:1944 msgid "" "A subclass of :class:`AbstractEventLoop` for Windows that uses \"I/O " "Completion Ports\" (IOCP)." msgstr "" -#: ../../library/asyncio-eventloop.rst:1946 +#: ../../library/asyncio-eventloop.rst:1950 msgid "" "`MSDN documentation on I/O Completion Ports `_." msgstr "" -#: ../../library/asyncio-eventloop.rst:1951 +#: ../../library/asyncio-eventloop.rst:1955 msgid "" "An alias to the most efficient available subclass of :class:" "`AbstractEventLoop` for the given platform." msgstr "" -#: ../../library/asyncio-eventloop.rst:1954 +#: ../../library/asyncio-eventloop.rst:1958 msgid "" "It is an alias to :class:`SelectorEventLoop` on Unix and :class:" "`ProactorEventLoop` on Windows." msgstr "" -#: ../../library/asyncio-eventloop.rst:1960 +#: ../../library/asyncio-eventloop.rst:1964 msgid "Abstract base class for asyncio-compliant event loops." msgstr "" -#: ../../library/asyncio-eventloop.rst:1962 +#: ../../library/asyncio-eventloop.rst:1966 msgid "" "The :ref:`asyncio-event-loop-methods` section lists all methods that an " "alternative implementation of ``AbstractEventLoop`` should have defined." msgstr "" -#: ../../library/asyncio-eventloop.rst:1968 +#: ../../library/asyncio-eventloop.rst:1972 msgid "Examples" msgstr "Beispiele" -#: ../../library/asyncio-eventloop.rst:1970 +#: ../../library/asyncio-eventloop.rst:1974 msgid "" "Note that all examples in this section **purposefully** show how to use the " "low-level event loop APIs, such as :meth:`loop.run_forever` and :meth:`loop." @@ -2492,17 +2498,17 @@ msgid "" "consider using the high-level functions like :func:`asyncio.run`." msgstr "" -#: ../../library/asyncio-eventloop.rst:1980 +#: ../../library/asyncio-eventloop.rst:1984 msgid "Hello World with call_soon()" msgstr "" -#: ../../library/asyncio-eventloop.rst:1982 +#: ../../library/asyncio-eventloop.rst:1986 msgid "" "An example using the :meth:`loop.call_soon` method to schedule a callback. " "The callback displays ``\"Hello World\"`` and then stops the event loop::" msgstr "" -#: ../../library/asyncio-eventloop.rst:1986 +#: ../../library/asyncio-eventloop.rst:1990 msgid "" "import asyncio\n" "\n" @@ -2523,24 +2529,24 @@ msgid "" " loop.close()" msgstr "" -#: ../../library/asyncio-eventloop.rst:2006 +#: ../../library/asyncio-eventloop.rst:2010 msgid "" "A similar :ref:`Hello World ` example created with a coroutine " "and the :func:`run` function." msgstr "" -#: ../../library/asyncio-eventloop.rst:2013 +#: ../../library/asyncio-eventloop.rst:2017 msgid "Display the current date with call_later()" msgstr "" -#: ../../library/asyncio-eventloop.rst:2015 +#: ../../library/asyncio-eventloop.rst:2019 msgid "" "An example of a callback displaying the current date every second. The " "callback uses the :meth:`loop.call_later` method to reschedule itself after " "5 seconds, and then stops the event loop::" msgstr "" -#: ../../library/asyncio-eventloop.rst:2019 +#: ../../library/asyncio-eventloop.rst:2023 msgid "" "import asyncio\n" "import datetime as dt\n" @@ -2565,23 +2571,23 @@ msgid "" " loop.close()" msgstr "" -#: ../../library/asyncio-eventloop.rst:2043 +#: ../../library/asyncio-eventloop.rst:2047 msgid "" "A similar :ref:`current date ` example created with a " "coroutine and the :func:`run` function." msgstr "" -#: ../../library/asyncio-eventloop.rst:2050 +#: ../../library/asyncio-eventloop.rst:2054 msgid "Watch a file descriptor for read events" msgstr "" -#: ../../library/asyncio-eventloop.rst:2052 +#: ../../library/asyncio-eventloop.rst:2056 msgid "" "Wait until a file descriptor received some data using the :meth:`loop." "add_reader` method and then close the event loop::" msgstr "" -#: ../../library/asyncio-eventloop.rst:2055 +#: ../../library/asyncio-eventloop.rst:2059 msgid "" "import asyncio\n" "from socket import socketpair\n" @@ -2617,33 +2623,33 @@ msgid "" " loop.close()" msgstr "" -#: ../../library/asyncio-eventloop.rst:2090 +#: ../../library/asyncio-eventloop.rst:2094 msgid "" "A similar :ref:`example ` using " "transports, protocols, and the :meth:`loop.create_connection` method." msgstr "" -#: ../../library/asyncio-eventloop.rst:2094 +#: ../../library/asyncio-eventloop.rst:2098 msgid "" "Another similar :ref:`example ` " "using the high-level :func:`asyncio.open_connection` function and streams." msgstr "" -#: ../../library/asyncio-eventloop.rst:2102 +#: ../../library/asyncio-eventloop.rst:2106 msgid "Set signal handlers for SIGINT and SIGTERM" msgstr "" -#: ../../library/asyncio-eventloop.rst:2104 +#: ../../library/asyncio-eventloop.rst:2108 msgid "(This ``signal`` example only works on Unix.)" msgstr "" -#: ../../library/asyncio-eventloop.rst:2106 +#: ../../library/asyncio-eventloop.rst:2110 msgid "" "Register handlers for signals :const:`~signal.SIGINT` and :const:`~signal." "SIGTERM` using the :meth:`loop.add_signal_handler` method::" msgstr "" -#: ../../library/asyncio-eventloop.rst:2109 +#: ../../library/asyncio-eventloop.rst:2113 msgid "" "import asyncio\n" "import functools\n" diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po index ea768633..6ac388c8 100644 --- a/library/asyncio-stream.po +++ b/library/asyncio-stream.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-28 03:11+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+0000\n" "PO-Revision-Date: 2026-05-08 17:17+0000\n" "Last-Translator: Jyst Breisgau, 2026\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -40,7 +40,7 @@ msgstr "" msgid "Here is an example of a TCP echo client written using asyncio streams::" msgstr "" -#: ../../library/asyncio-stream.rst:22 ../../library/asyncio-stream.rst:451 +#: ../../library/asyncio-stream.rst:22 ../../library/asyncio-stream.rst:455 msgid "" "import asyncio\n" "\n" @@ -480,50 +480,56 @@ msgid "" "(default)." msgstr "" -#: ../../library/asyncio-stream.rst:424 +#: ../../library/asyncio-stream.rst:421 +msgid "" +"Raises a ``ValueError`` if ``sslcontext.check_hostname`` is ``True`` and " +"``server_hostname`` is not supplied." +msgstr "" + +#: ../../library/asyncio-stream.rst:428 msgid "" "Return ``True`` if the stream is closed or in the process of being closed." msgstr "" -#: ../../library/asyncio-stream.rst:432 +#: ../../library/asyncio-stream.rst:436 msgid "Wait until the stream is closed." msgstr "" -#: ../../library/asyncio-stream.rst:434 +#: ../../library/asyncio-stream.rst:438 msgid "" "Should be called after :meth:`close` to wait until the underlying connection " "is closed, ensuring that all data has been flushed before e.g. exiting the " "program." msgstr "" -#: ../../library/asyncio-stream.rst:442 +#: ../../library/asyncio-stream.rst:446 msgid "Examples" msgstr "Beispiele" -#: ../../library/asyncio-stream.rst:447 +#: ../../library/asyncio-stream.rst:451 msgid "TCP echo client using streams" msgstr "" -#: ../../library/asyncio-stream.rst:449 +#: ../../library/asyncio-stream.rst:453 msgid "TCP echo client using the :func:`asyncio.open_connection` function::" msgstr "" -#: ../../library/asyncio-stream.rst:473 +#: ../../library/asyncio-stream.rst:477 msgid "" "The :ref:`TCP echo client protocol " "` example uses the low-level :meth:" "`loop.create_connection` method." msgstr "" -#: ../../library/asyncio-stream.rst:480 +#: ../../library/asyncio-stream.rst:484 msgid "TCP echo server using streams" msgstr "" -#: ../../library/asyncio-stream.rst:482 +#: ../../library/asyncio-stream.rst:486 msgid "TCP echo server using the :func:`asyncio.start_server` function::" msgstr "" -#: ../../library/asyncio-stream.rst:484 +#: ../../library/asyncio-stream.rst:488 msgid "" "import asyncio\n" "\n" @@ -555,23 +561,23 @@ msgid "" "asyncio.run(main())" msgstr "" -#: ../../library/asyncio-stream.rst:516 +#: ../../library/asyncio-stream.rst:520 msgid "" "The :ref:`TCP echo server protocol " "` example uses the :meth:`loop." "create_server` method." msgstr "" -#: ../../library/asyncio-stream.rst:521 +#: ../../library/asyncio-stream.rst:525 msgid "Get HTTP headers" msgstr "" -#: ../../library/asyncio-stream.rst:523 +#: ../../library/asyncio-stream.rst:527 msgid "" "Simple example querying HTTP headers of the URL passed on the command line::" msgstr "" -#: ../../library/asyncio-stream.rst:525 +#: ../../library/asyncio-stream.rst:529 msgid "" "import asyncio\n" "import urllib.parse\n" @@ -610,33 +616,33 @@ msgid "" "asyncio.run(print_http_headers(url))" msgstr "" -#: ../../library/asyncio-stream.rst:562 +#: ../../library/asyncio-stream.rst:566 msgid "Usage::" msgstr "" -#: ../../library/asyncio-stream.rst:564 +#: ../../library/asyncio-stream.rst:568 msgid "python example.py http://example.com/path/page.html" msgstr "" -#: ../../library/asyncio-stream.rst:566 +#: ../../library/asyncio-stream.rst:570 msgid "or with HTTPS::" msgstr "" -#: ../../library/asyncio-stream.rst:568 +#: ../../library/asyncio-stream.rst:572 msgid "python example.py https://example.com/path/page.html" msgstr "" -#: ../../library/asyncio-stream.rst:574 +#: ../../library/asyncio-stream.rst:578 msgid "Register an open socket to wait for data using streams" msgstr "" -#: ../../library/asyncio-stream.rst:576 +#: ../../library/asyncio-stream.rst:580 msgid "" "Coroutine waiting until a socket receives data using the :func:" "`open_connection` function::" msgstr "" -#: ../../library/asyncio-stream.rst:579 +#: ../../library/asyncio-stream.rst:583 msgid "" "import asyncio\n" "import socket\n" @@ -669,14 +675,14 @@ msgid "" "asyncio.run(wait_for_data())" msgstr "" -#: ../../library/asyncio-stream.rst:611 +#: ../../library/asyncio-stream.rst:615 msgid "" "The :ref:`register an open socket to wait for data using a protocol " "` example uses a low-level protocol and " "the :meth:`loop.create_connection` method." msgstr "" -#: ../../library/asyncio-stream.rst:615 +#: ../../library/asyncio-stream.rst:619 msgid "" "The :ref:`watch a file descriptor for read events " "` example uses the low-level :meth:`loop." diff --git a/library/ctypes.po b/library/ctypes.po index cbb8e70b..f8875804 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-28 03:11+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+0000\n" "PO-Revision-Date: 2026-05-08 17:17+0000\n" "Last-Translator: Swen Bachmann, 2026\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -347,7 +347,7 @@ msgid "" "learn more about :mod:`!ctypes` data types." msgstr "" -#: ../../library/ctypes.rst:228 ../../library/ctypes.rst:2554 +#: ../../library/ctypes.rst:228 ../../library/ctypes.rst:2555 msgid "Fundamental data types" msgstr "" @@ -2370,7 +2370,7 @@ msgid "" "If no library can be found, returns ``None``." msgstr "" -#: ../../library/ctypes.rst:1495 ../../library/ctypes.rst:2257 +#: ../../library/ctypes.rst:1495 ../../library/ctypes.rst:2258 msgid "The exact functionality is system dependent." msgstr "" @@ -2681,13 +2681,13 @@ msgstr "" #: ../../library/ctypes.rst:1704 ../../library/ctypes.rst:1718 #: ../../library/ctypes.rst:1781 ../../library/ctypes.rst:1788 -#: ../../library/ctypes.rst:1961 ../../library/ctypes.rst:2013 -#: ../../library/ctypes.rst:2165 ../../library/ctypes.rst:2237 -#: ../../library/ctypes.rst:2246 ../../library/ctypes.rst:2273 -#: ../../library/ctypes.rst:2287 ../../library/ctypes.rst:2296 -#: ../../library/ctypes.rst:2305 ../../library/ctypes.rst:2320 -#: ../../library/ctypes.rst:2387 ../../library/ctypes.rst:2414 -#: ../../library/ctypes.rst:2846 ../../library/ctypes.rst:3269 +#: ../../library/ctypes.rst:1962 ../../library/ctypes.rst:2014 +#: ../../library/ctypes.rst:2166 ../../library/ctypes.rst:2238 +#: ../../library/ctypes.rst:2247 ../../library/ctypes.rst:2274 +#: ../../library/ctypes.rst:2288 ../../library/ctypes.rst:2297 +#: ../../library/ctypes.rst:2306 ../../library/ctypes.rst:2321 +#: ../../library/ctypes.rst:2388 ../../library/ctypes.rst:2415 +#: ../../library/ctypes.rst:2847 ../../library/ctypes.rst:3270 msgid "Availability" msgstr "" @@ -2794,38 +2794,36 @@ msgid "" "correct :attr:`!restype` attribute to use these functions." msgstr "" -#: ../../library/ctypes.rst:1806 -msgid "" -"Note that if the Python interpreter is statically linked, this will be " -"``None``, as ``dlopen`` is not possible in this case." +#: ../../library/ctypes.rst:1808 +msgid "If the Python interpreter is statically linked, this may be ``None``." msgstr "" -#: ../../library/ctypes.rst:1809 ../../library/ctypes.rst:1811 +#: ../../library/ctypes.rst:1810 ../../library/ctypes.rst:1812 msgid "" "Loading a library through any of these objects raises an :ref:`auditing " "event ` ``ctypes.dlopen`` with string argument ``name``, the name " "used to load the library." msgstr "" -#: ../../library/ctypes.rst:1815 ../../library/ctypes.rst:1817 +#: ../../library/ctypes.rst:1816 ../../library/ctypes.rst:1818 msgid "" "Accessing a function on a loaded library raises an auditing event ``ctypes." "dlsym`` with arguments ``library`` (the library object) and ``name`` (the " "symbol's name as a string or integer)." msgstr "" -#: ../../library/ctypes.rst:1821 ../../library/ctypes.rst:1823 +#: ../../library/ctypes.rst:1822 ../../library/ctypes.rst:1824 msgid "" "In cases when only the library handle is available rather than the object, " "accessing a function raises an auditing event ``ctypes.dlsym/handle`` with " "arguments ``handle`` (the raw library handle) and ``name``." msgstr "" -#: ../../library/ctypes.rst:1830 +#: ../../library/ctypes.rst:1831 msgid "Foreign functions" msgstr "" -#: ../../library/ctypes.rst:1832 +#: ../../library/ctypes.rst:1833 msgid "" "As explained in the previous section, foreign functions can be accessed as " "attributes of loaded shared libraries. The function objects created in this " @@ -2834,13 +2832,13 @@ msgid "" "library loader." msgstr "" -#: ../../library/ctypes.rst:1837 +#: ../../library/ctypes.rst:1838 msgid "" "They are instances of a private local class :class:`!_FuncPtr` (not exposed " "in :mod:`!ctypes`) which inherits from the private :class:`_CFuncPtr` class:" msgstr "" -#: ../../library/ctypes.rst:1840 +#: ../../library/ctypes.rst:1841 msgid "" ">>> import ctypes\n" ">>> lib = ctypes.CDLL(None)\n" @@ -2850,29 +2848,29 @@ msgid "" "False" msgstr "" -#: ../../library/ctypes.rst:1851 +#: ../../library/ctypes.rst:1852 msgid "Base class for C callable foreign functions." msgstr "" -#: ../../library/ctypes.rst:1853 +#: ../../library/ctypes.rst:1854 msgid "" "Instances of foreign functions are also C compatible data types; they " "represent C function pointers." msgstr "" -#: ../../library/ctypes.rst:1856 +#: ../../library/ctypes.rst:1857 msgid "" "This behavior can be customized by assigning to special attributes of the " "foreign function object." msgstr "" -#: ../../library/ctypes.rst:1861 +#: ../../library/ctypes.rst:1862 msgid "" "Assign a ctypes type to specify the result type of the foreign function. Use " "``None`` for :c:expr:`void`, a function not returning anything." msgstr "" -#: ../../library/ctypes.rst:1864 +#: ../../library/ctypes.rst:1865 msgid "" "It is possible to assign a callable Python object that is not a ctypes type, " "in this case the function is assumed to return a C :c:expr:`int`, and the " @@ -2882,7 +2880,7 @@ msgid "" "callable to the :attr:`errcheck` attribute." msgstr "" -#: ../../library/ctypes.rst:1873 +#: ../../library/ctypes.rst:1874 msgid "" "Assign a tuple of ctypes types to specify the argument types that the " "function accepts. Functions using the ``stdcall`` calling convention can " @@ -2891,7 +2889,7 @@ msgid "" "unspecified arguments as well." msgstr "" -#: ../../library/ctypes.rst:1879 +#: ../../library/ctypes.rst:1880 msgid "" "When a foreign function is called, each actual argument is passed to the :" "meth:`~_CData.from_param` class method of the items in the :attr:`argtypes` " @@ -2901,7 +2899,7 @@ msgid "" "object using ctypes conversion rules." msgstr "" -#: ../../library/ctypes.rst:1886 +#: ../../library/ctypes.rst:1887 msgid "" "New: It is now possible to put items in argtypes which are not ctypes types, " "but each item must have a :meth:`~_CData.from_param` method which returns a " @@ -2909,38 +2907,38 @@ msgid "" "defining adapters that can adapt custom objects as function parameters." msgstr "" -#: ../../library/ctypes.rst:1893 +#: ../../library/ctypes.rst:1894 msgid "" "Assign a Python function or another callable to this attribute. The callable " "will be called with three or more arguments:" msgstr "" -#: ../../library/ctypes.rst:1900 +#: ../../library/ctypes.rst:1901 msgid "" "*result* is what the foreign function returns, as specified by the :attr:`!" "restype` attribute." msgstr "" -#: ../../library/ctypes.rst:1903 +#: ../../library/ctypes.rst:1904 msgid "" "*func* is the foreign function object itself, this allows reusing the same " "callable object to check or post process the results of several functions." msgstr "" -#: ../../library/ctypes.rst:1907 +#: ../../library/ctypes.rst:1908 msgid "" "*arguments* is a tuple containing the parameters originally passed to the " "function call, this allows specializing the behavior on the arguments used." msgstr "" -#: ../../library/ctypes.rst:1911 +#: ../../library/ctypes.rst:1912 msgid "" "The object that this function returns will be returned from the foreign " "function call, but it can also check the result value and raise an exception " "if the foreign function call failed." msgstr "" -#: ../../library/ctypes.rst:1916 ../../library/ctypes.rst:1918 +#: ../../library/ctypes.rst:1917 ../../library/ctypes.rst:1919 msgid "" "On Windows, when a foreign function call raises a system exception (for " "example, due to an access violation), it will be captured and replaced with " @@ -2949,18 +2947,18 @@ msgid "" "hook to replace the exception with its own." msgstr "" -#: ../../library/ctypes.rst:1924 ../../library/ctypes.rst:1926 +#: ../../library/ctypes.rst:1925 ../../library/ctypes.rst:1927 msgid "" "Some ways to invoke foreign function calls as well as some of the functions " "in this module may raise an auditing event ``ctypes.call_function`` with " "arguments ``function pointer`` and ``arguments``." msgstr "" -#: ../../library/ctypes.rst:1933 +#: ../../library/ctypes.rst:1934 msgid "Function prototypes" msgstr "" -#: ../../library/ctypes.rst:1935 +#: ../../library/ctypes.rst:1936 msgid "" "Foreign functions can also be created by instantiating function prototypes. " "Function prototypes are similar to function prototypes in C; they describe a " @@ -2971,7 +2969,7 @@ msgid "" "``@wrapper`` syntax. See :ref:`ctypes-callback-functions` for examples." msgstr "" -#: ../../library/ctypes.rst:1946 +#: ../../library/ctypes.rst:1947 msgid "" "The returned function prototype creates functions that use the standard C " "calling convention. The function will release the GIL during the call. If " @@ -2980,37 +2978,37 @@ msgid "" "after the call; *use_last_error* does the same for the Windows error code." msgstr "" -#: ../../library/ctypes.rst:1956 +#: ../../library/ctypes.rst:1957 msgid "" "The returned function prototype creates functions that use the ``stdcall`` " "calling convention. The function will release the GIL during the call. " "*use_errno* and *use_last_error* have the same meaning as above." msgstr "" -#: ../../library/ctypes.rst:1966 +#: ../../library/ctypes.rst:1967 msgid "" "The returned function prototype creates functions that use the Python " "calling convention. The function will *not* release the GIL during the call." msgstr "" -#: ../../library/ctypes.rst:1969 +#: ../../library/ctypes.rst:1970 msgid "" "Function prototypes created by these factory functions can be instantiated " "in different ways, depending on the type and number of the parameters in the " "call:" msgstr "" -#: ../../library/ctypes.rst:1976 +#: ../../library/ctypes.rst:1977 msgid "" "Returns a foreign function at the specified address which must be an integer." msgstr "" -#: ../../library/ctypes.rst:1983 +#: ../../library/ctypes.rst:1984 msgid "" "Create a C callable function (a callback function) from a Python *callable*." msgstr "" -#: ../../library/ctypes.rst:1990 +#: ../../library/ctypes.rst:1991 msgid "" "Returns a foreign function exported by a shared library. *func_spec* must be " "a 2-tuple ``(name_or_ordinal, library)``. The first item is the name of the " @@ -3018,7 +3016,7 @@ msgid "" "small integer. The second item is the shared library instance." msgstr "" -#: ../../library/ctypes.rst:2000 +#: ../../library/ctypes.rst:2001 msgid "" "Returns a foreign function that will call a COM method. *vtbl_index* is the " "index into the virtual function table, a small non-negative integer. *name* " @@ -3026,86 +3024,86 @@ msgid "" "identifier which is used in extended error reporting." msgstr "" -#: ../../library/ctypes.rst:2005 +#: ../../library/ctypes.rst:2006 msgid "" "If *iid* is not specified, an :exc:`OSError` is raised if the COM method " "call fails. If *iid* is specified, a :exc:`~ctypes.COMError` is raised " "instead." msgstr "" -#: ../../library/ctypes.rst:2009 +#: ../../library/ctypes.rst:2010 msgid "" "COM methods use a special calling convention: They require a pointer to the " "COM interface as first argument, in addition to those parameters that are " "specified in the :attr:`!argtypes` tuple." msgstr "" -#: ../../library/ctypes.rst:2016 +#: ../../library/ctypes.rst:2017 msgid "" "The optional *paramflags* parameter creates foreign function wrappers with " "much more functionality than the features described above." msgstr "" -#: ../../library/ctypes.rst:2019 +#: ../../library/ctypes.rst:2020 msgid "" "*paramflags* must be a tuple of the same length as :attr:`~_CFuncPtr." "argtypes`." msgstr "" -#: ../../library/ctypes.rst:2021 +#: ../../library/ctypes.rst:2022 msgid "" "Each item in this tuple contains further information about a parameter, it " "must be a tuple containing one, two, or three items." msgstr "" -#: ../../library/ctypes.rst:2024 +#: ../../library/ctypes.rst:2025 msgid "" "The first item is an integer containing a combination of direction flags for " "the parameter:" msgstr "" -#: ../../library/ctypes.rst:2027 +#: ../../library/ctypes.rst:2028 msgid "1" msgstr "" -#: ../../library/ctypes.rst:2028 +#: ../../library/ctypes.rst:2029 msgid "Specifies an input parameter to the function." msgstr "" -#: ../../library/ctypes.rst:2030 +#: ../../library/ctypes.rst:2031 msgid "2" msgstr "" -#: ../../library/ctypes.rst:2031 +#: ../../library/ctypes.rst:2032 msgid "Output parameter. The foreign function fills in a value." msgstr "" -#: ../../library/ctypes.rst:2033 +#: ../../library/ctypes.rst:2034 msgid "4" msgstr "4" -#: ../../library/ctypes.rst:2034 +#: ../../library/ctypes.rst:2035 msgid "Input parameter which defaults to the integer zero." msgstr "" -#: ../../library/ctypes.rst:2036 +#: ../../library/ctypes.rst:2037 msgid "" "The optional second item is the parameter name as string. If this is " "specified, the foreign function can be called with named parameters." msgstr "" -#: ../../library/ctypes.rst:2039 +#: ../../library/ctypes.rst:2040 msgid "The optional third item is the default value for this parameter." msgstr "" -#: ../../library/ctypes.rst:2042 +#: ../../library/ctypes.rst:2043 msgid "" "The following example demonstrates how to wrap the Windows ``MessageBoxW`` " "function so that it supports default parameters and named arguments. The C " "declaration from the windows header file is this::" msgstr "" -#: ../../library/ctypes.rst:2046 +#: ../../library/ctypes.rst:2047 msgid "" "WINUSERAPI int WINAPI\n" "MessageBoxW(\n" @@ -3115,11 +3113,11 @@ msgid "" " UINT uType);" msgstr "" -#: ../../library/ctypes.rst:2053 ../../library/ctypes.rst:2076 +#: ../../library/ctypes.rst:2054 ../../library/ctypes.rst:2077 msgid "Here is the wrapping with :mod:`!ctypes`::" msgstr "" -#: ../../library/ctypes.rst:2055 +#: ../../library/ctypes.rst:2056 msgid "" ">>> from ctypes import c_int, WINFUNCTYPE, windll\n" ">>> from ctypes.wintypes import HWND, LPCWSTR, UINT\n" @@ -3129,18 +3127,18 @@ msgid "" ">>> MessageBox = prototype((\"MessageBoxW\", windll.user32), paramflags)" msgstr "" -#: ../../library/ctypes.rst:2061 +#: ../../library/ctypes.rst:2062 msgid "The ``MessageBox`` foreign function can now be called in these ways::" msgstr "" -#: ../../library/ctypes.rst:2063 +#: ../../library/ctypes.rst:2064 msgid "" ">>> MessageBox()\n" ">>> MessageBox(text=\"Spam, spam, spam\")\n" ">>> MessageBox(flags=2, text=\"foo bar\")" msgstr "" -#: ../../library/ctypes.rst:2067 +#: ../../library/ctypes.rst:2068 msgid "" "A second example demonstrates output parameters. The win32 " "``GetWindowRect`` function retrieves the dimensions of a specified window by " @@ -3148,7 +3146,7 @@ msgid "" "the C declaration::" msgstr "" -#: ../../library/ctypes.rst:2071 +#: ../../library/ctypes.rst:2072 msgid "" "WINUSERAPI BOOL WINAPI\n" "GetWindowRect(\n" @@ -3156,7 +3154,7 @@ msgid "" " LPRECT lpRect);" msgstr "" -#: ../../library/ctypes.rst:2078 +#: ../../library/ctypes.rst:2079 msgid "" ">>> from ctypes import POINTER, WINFUNCTYPE, windll, WinError\n" ">>> from ctypes.wintypes import BOOL, HWND, RECT\n" @@ -3167,7 +3165,7 @@ msgid "" ">>>" msgstr "" -#: ../../library/ctypes.rst:2085 +#: ../../library/ctypes.rst:2086 msgid "" "Functions with output parameters will automatically return the output " "parameter value if there is a single one, or a tuple containing the output " @@ -3175,7 +3173,7 @@ msgid "" "now returns a RECT instance, when called." msgstr "" -#: ../../library/ctypes.rst:2090 +#: ../../library/ctypes.rst:2091 msgid "" "Output parameters can be combined with the :attr:`~_CFuncPtr.errcheck` " "protocol to do further output processing and error checking. The win32 " @@ -3184,7 +3182,7 @@ msgid "" "exception when the api call failed::" msgstr "" -#: ../../library/ctypes.rst:2095 +#: ../../library/ctypes.rst:2096 msgid "" ">>> def errcheck(result, func, args):\n" "... if not result:\n" @@ -3195,7 +3193,7 @@ msgid "" ">>>" msgstr "" -#: ../../library/ctypes.rst:2103 +#: ../../library/ctypes.rst:2104 msgid "" "If the :attr:`~_CFuncPtr.errcheck` function returns the argument tuple it " "receives unchanged, :mod:`!ctypes` continues the normal processing it does " @@ -3205,7 +3203,7 @@ msgid "" "take place::" msgstr "" -#: ../../library/ctypes.rst:2109 +#: ../../library/ctypes.rst:2110 msgid "" ">>> def errcheck(result, func, args):\n" "... if not result:\n" @@ -3217,62 +3215,62 @@ msgid "" ">>>" msgstr "" -#: ../../library/ctypes.rst:2122 +#: ../../library/ctypes.rst:2123 msgid "Utility functions" msgstr "" -#: ../../library/ctypes.rst:2126 +#: ../../library/ctypes.rst:2127 msgid "" "Returns the address of the memory buffer as integer. *obj* must be an " "instance of a ctypes type." msgstr "" -#: ../../library/ctypes.rst:2129 +#: ../../library/ctypes.rst:2130 msgid "" "Raises an :ref:`auditing event ` ``ctypes.addressof`` with " "argument ``obj``." msgstr "" -#: ../../library/ctypes.rst:2134 +#: ../../library/ctypes.rst:2135 msgid "" "Returns the alignment requirements of a ctypes type. *obj_or_type* must be a " "ctypes type or instance." msgstr "" -#: ../../library/ctypes.rst:2140 +#: ../../library/ctypes.rst:2141 msgid "" "Returns a light-weight pointer to *obj*, which must be an instance of a " "ctypes type. *offset* defaults to zero, and must be an integer that will be " "added to the internal pointer value." msgstr "" -#: ../../library/ctypes.rst:2144 +#: ../../library/ctypes.rst:2145 msgid "``byref(obj, offset)`` corresponds to this C code::" msgstr "" -#: ../../library/ctypes.rst:2146 +#: ../../library/ctypes.rst:2147 msgid "(((char *)&obj) + offset)" msgstr "" -#: ../../library/ctypes.rst:2148 +#: ../../library/ctypes.rst:2149 msgid "" "The returned object can only be used as a foreign function call parameter. " "It behaves similar to ``pointer(obj)``, but the construction is a lot faster." msgstr "" -#: ../../library/ctypes.rst:2154 +#: ../../library/ctypes.rst:2155 msgid "" "Copies a COM pointer from *src* to *dst* and returns the Windows specific :c:" "type:`!HRESULT` value." msgstr "" -#: ../../library/ctypes.rst:2157 +#: ../../library/ctypes.rst:2158 msgid "" "If *src* is not ``NULL``, its ``AddRef`` method is called, incrementing the " "reference count." msgstr "" -#: ../../library/ctypes.rst:2160 +#: ../../library/ctypes.rst:2161 msgid "" "In contrast, the reference count of *dst* will not be decremented before " "assigning the new value. Unless *dst* is ``NULL``, the caller is responsible " @@ -3280,7 +3278,7 @@ msgid "" "necessary." msgstr "" -#: ../../library/ctypes.rst:2172 +#: ../../library/ctypes.rst:2173 msgid "" "This function is similar to the cast operator in C. It returns a new " "instance of *type* which points to the same memory block as *obj*. *type* " @@ -3288,47 +3286,47 @@ msgid "" "as a pointer." msgstr "" -#: ../../library/ctypes.rst:2181 +#: ../../library/ctypes.rst:2182 msgid "" "This function creates a mutable character buffer. The returned object is a " "ctypes array of :class:`c_char`." msgstr "" -#: ../../library/ctypes.rst:2184 +#: ../../library/ctypes.rst:2185 msgid "" "If *size* is given (and not ``None``), it must be an :class:`int`. It " "specifies the size of the returned array." msgstr "" -#: ../../library/ctypes.rst:2187 +#: ../../library/ctypes.rst:2188 msgid "" "If the *init* argument is given, it must be :class:`bytes`. It is used to " "initialize the array items. Bytes not initialized this way are set to zero " "(NUL)." msgstr "" -#: ../../library/ctypes.rst:2191 +#: ../../library/ctypes.rst:2192 msgid "" "If *size* is not given (or if it is ``None``), the buffer is made one " "element larger than *init*, effectively adding a NUL terminator." msgstr "" -#: ../../library/ctypes.rst:2194 +#: ../../library/ctypes.rst:2195 msgid "" "If both arguments are given, *size* must not be less than ``len(init)``." msgstr "" -#: ../../library/ctypes.rst:2198 +#: ../../library/ctypes.rst:2199 msgid "" "If *size* is equal to ``len(init)``, a NUL terminator is not added. Do not " "treat such a buffer as a C string." msgstr "" -#: ../../library/ctypes.rst:2201 +#: ../../library/ctypes.rst:2202 msgid "For example::" msgstr "Zum Beispiel::" -#: ../../library/ctypes.rst:2203 +#: ../../library/ctypes.rst:2204 msgid "" ">>> bytes(create_string_buffer(2))\n" "b'\\x00\\x00'\n" @@ -3344,45 +3342,45 @@ msgid "" "ValueError: byte string too long" msgstr "" -#: ../../library/ctypes.rst:2216 +#: ../../library/ctypes.rst:2217 msgid "" "Raises an :ref:`auditing event ` ``ctypes.create_string_buffer`` " "with arguments ``init``, ``size``." msgstr "" -#: ../../library/ctypes.rst:2222 +#: ../../library/ctypes.rst:2223 msgid "" "This function creates a mutable unicode character buffer. The returned " "object is a ctypes array of :class:`c_wchar`." msgstr "" -#: ../../library/ctypes.rst:2225 +#: ../../library/ctypes.rst:2226 msgid "" "The function takes the same arguments as :func:`~create_string_buffer` " "except *init* must be a string and *size* counts :class:`c_wchar`." msgstr "" -#: ../../library/ctypes.rst:2228 +#: ../../library/ctypes.rst:2229 msgid "" "Raises an :ref:`auditing event ` ``ctypes.create_unicode_buffer`` " "with arguments ``init``, ``size``." msgstr "" -#: ../../library/ctypes.rst:2233 +#: ../../library/ctypes.rst:2234 msgid "" "This function is a hook which allows implementing in-process COM servers " "with ctypes. It is called from the DllCanUnloadNow function that the " "_ctypes extension dll exports." msgstr "" -#: ../../library/ctypes.rst:2242 +#: ../../library/ctypes.rst:2243 msgid "" "This function is a hook which allows implementing in-process COM servers " "with ctypes. It is called from the DllGetClassObject function that the " "``_ctypes`` extension dll exports." msgstr "" -#: ../../library/ctypes.rst:2252 +#: ../../library/ctypes.rst:2253 msgid "" "Try to find a library and return a pathname. *name* is the library name " "without any prefix like ``lib``, suffix like ``.so``, ``.dylib`` or version " @@ -3390,25 +3388,25 @@ msgid "" "If no library can be found, returns ``None``." msgstr "" -#: ../../library/ctypes.rst:2259 +#: ../../library/ctypes.rst:2260 msgid "See :ref:`ctypes-finding-shared-libraries` for complete documentation." msgstr "" -#: ../../library/ctypes.rst:2265 +#: ../../library/ctypes.rst:2266 msgid "" "Returns the filename of the VC runtime library used by Python, and by the " "extension modules. If the name of the library cannot be determined, " "``None`` is returned." msgstr "" -#: ../../library/ctypes.rst:2269 +#: ../../library/ctypes.rst:2270 msgid "" "If you need to free memory, for example, allocated by an extension module " "with a call to the ``free(void *)``, it is important that you use the " "function in the same library that allocated the memory." msgstr "" -#: ../../library/ctypes.rst:2279 +#: ../../library/ctypes.rst:2280 msgid "" "Try to provide a list of paths of the shared libraries loaded into the " "current process. These paths are not normalized or processed in any way. " @@ -3416,72 +3414,72 @@ msgid "" "The exact functionality is system dependent." msgstr "" -#: ../../library/ctypes.rst:2284 +#: ../../library/ctypes.rst:2285 msgid "" "On most platforms, the first element of the list represents the current " "executable file. It may be an empty string." msgstr "" -#: ../../library/ctypes.rst:2292 +#: ../../library/ctypes.rst:2293 msgid "" "Returns a textual description of the error code *code*. If no error code is " "specified, the last error code is used by calling the Windows API function :" "func:`GetLastError`." msgstr "" -#: ../../library/ctypes.rst:2301 +#: ../../library/ctypes.rst:2302 msgid "" "Returns the last error code set by Windows in the calling thread. This " "function calls the Windows ``GetLastError()`` function directly, it does not " "return the ctypes-private copy of the error code." msgstr "" -#: ../../library/ctypes.rst:2310 +#: ../../library/ctypes.rst:2311 msgid "" "Returns the current value of the ctypes-private copy of the system :data:" "`errno` variable in the calling thread." msgstr "" -#: ../../library/ctypes.rst:2313 +#: ../../library/ctypes.rst:2314 msgid "" "Raises an :ref:`auditing event ` ``ctypes.get_errno`` with no " "arguments." msgstr "" -#: ../../library/ctypes.rst:2317 +#: ../../library/ctypes.rst:2318 msgid "" "Returns the current value of the ctypes-private copy of the system :data:`!" "LastError` variable in the calling thread." msgstr "" -#: ../../library/ctypes.rst:2322 +#: ../../library/ctypes.rst:2323 msgid "" "Raises an :ref:`auditing event ` ``ctypes.get_last_error`` with no " "arguments." msgstr "" -#: ../../library/ctypes.rst:2327 +#: ../../library/ctypes.rst:2328 msgid "" "Same as the standard C memmove library function: copies *count* bytes from " "*src* to *dst*. *dst* and *src* must be integers or ctypes instances that " "can be converted to pointers." msgstr "" -#: ../../library/ctypes.rst:2334 +#: ../../library/ctypes.rst:2335 msgid "" "Same as the standard C memset library function: fills the memory block at " "address *dst* with *count* bytes of value *c*. *dst* must be an integer " "specifying an address, or a ctypes instance." msgstr "" -#: ../../library/ctypes.rst:2341 +#: ../../library/ctypes.rst:2342 msgid "" "Create or return a ctypes pointer type. Pointer types are cached and reused " "internally, so calling this function repeatedly is cheap. *type* must be a " "ctypes type." msgstr "" -#: ../../library/ctypes.rst:2347 +#: ../../library/ctypes.rst:2348 msgid "" "The resulting pointer type is cached in the ``__pointer_type__`` attribute " "of *type*. It is possible to set this attribute before the first call to " @@ -3490,19 +3488,19 @@ msgid "" "relying on implementation details that may change in future Python versions." msgstr "" -#: ../../library/ctypes.rst:2358 +#: ../../library/ctypes.rst:2359 msgid "" "Create a new pointer instance, pointing to *obj*. The returned object is of " "the type ``POINTER(type(obj))``." msgstr "" -#: ../../library/ctypes.rst:2361 +#: ../../library/ctypes.rst:2362 msgid "" "Note: If you just want to pass a pointer to an object to a foreign function " "call, you should use ``byref(obj)`` which is much faster." msgstr "" -#: ../../library/ctypes.rst:2367 +#: ../../library/ctypes.rst:2368 msgid "" "This function resizes the internal memory buffer of *obj*, which must be an " "instance of a ctypes type. It is not possible to make the buffer smaller " @@ -3510,50 +3508,50 @@ msgid "" "but it is possible to enlarge the buffer." msgstr "" -#: ../../library/ctypes.rst:2375 +#: ../../library/ctypes.rst:2376 msgid "" "Set the current value of the ctypes-private copy of the system :data:`errno` " "variable in the calling thread to *value* and return the previous value." msgstr "" -#: ../../library/ctypes.rst:2378 +#: ../../library/ctypes.rst:2379 msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_errno`` with " "argument ``errno``." msgstr "" -#: ../../library/ctypes.rst:2383 +#: ../../library/ctypes.rst:2384 msgid "" "Sets the current value of the ctypes-private copy of the system :data:`!" "LastError` variable in the calling thread to *value* and return the previous " "value." msgstr "" -#: ../../library/ctypes.rst:2389 +#: ../../library/ctypes.rst:2390 msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_last_error`` with " "argument ``error``." msgstr "" -#: ../../library/ctypes.rst:2394 +#: ../../library/ctypes.rst:2395 msgid "" "Returns the size in bytes of a ctypes type or instance memory buffer. Does " "the same as the C ``sizeof`` operator." msgstr "" -#: ../../library/ctypes.rst:2400 +#: ../../library/ctypes.rst:2401 msgid "" "Return the byte string at *void \\*ptr*. If *size* is specified, it is used " "as size, otherwise the string is assumed to be zero-terminated." msgstr "" -#: ../../library/ctypes.rst:2404 +#: ../../library/ctypes.rst:2405 msgid "" "Raises an :ref:`auditing event ` ``ctypes.string_at`` with " "arguments ``ptr``, ``size``." msgstr "" -#: ../../library/ctypes.rst:2409 +#: ../../library/ctypes.rst:2410 msgid "" "Creates an instance of :exc:`OSError`. If *code* is not specified, :func:" "`GetLastError` is called to determine the error code. If *descr* is not " @@ -3561,39 +3559,39 @@ msgid "" "error." msgstr "" -#: ../../library/ctypes.rst:2416 +#: ../../library/ctypes.rst:2417 msgid "" "An instance of :exc:`WindowsError` used to be created, which is now an alias " "of :exc:`OSError`." msgstr "" -#: ../../library/ctypes.rst:2423 +#: ../../library/ctypes.rst:2424 msgid "" "Return the wide-character string at *void \\*ptr*. If *size* is specified, " "it is used as the number of characters of the string, otherwise the string " "is assumed to be zero-terminated." msgstr "" -#: ../../library/ctypes.rst:2428 +#: ../../library/ctypes.rst:2429 msgid "" "Raises an :ref:`auditing event ` ``ctypes.wstring_at`` with " "arguments ``ptr``, ``size``." msgstr "" -#: ../../library/ctypes.rst:2433 +#: ../../library/ctypes.rst:2434 msgid "" "Return a :class:`memoryview` object of length *size* that references memory " "starting at *void \\*ptr*." msgstr "" -#: ../../library/ctypes.rst:2436 +#: ../../library/ctypes.rst:2437 msgid "" "If *readonly* is true, the returned :class:`!memoryview` object can not be " "used to modify the underlying memory. (Changes made by other means will " "still be reflected in the returned object.)" msgstr "" -#: ../../library/ctypes.rst:2441 +#: ../../library/ctypes.rst:2442 msgid "" "This function is similar to :func:`string_at` with the key difference of not " "making a copy of the specified memory. It is a semantically equivalent (but " @@ -3603,17 +3601,17 @@ msgid "" "`~ctypes.byref` object.)" msgstr "" -#: ../../library/ctypes.rst:2448 +#: ../../library/ctypes.rst:2449 msgid "" "Raises an :ref:`auditing event ` ``ctypes.memoryview_at`` with " "arguments ``address``, ``size``, ``readonly``." msgstr "" -#: ../../library/ctypes.rst:2456 +#: ../../library/ctypes.rst:2457 msgid "Data types" msgstr "" -#: ../../library/ctypes.rst:2461 +#: ../../library/ctypes.rst:2462 msgid "" "This non-public class is the common base class of all ctypes data types. " "Among other things, all ctypes type instances contain a memory block that " @@ -3623,13 +3621,13 @@ msgid "" "alive in case the memory block contains pointers." msgstr "" -#: ../../library/ctypes.rst:2468 +#: ../../library/ctypes.rst:2469 msgid "" "Common methods of ctypes data types, these are all class methods (to be " "exact, they are methods of the :term:`metaclass`):" msgstr "" -#: ../../library/ctypes.rst:2473 +#: ../../library/ctypes.rst:2474 msgid "" "This method returns a ctypes instance that shares the buffer of the *source* " "object. The *source* object must support the writeable buffer interface. " @@ -3638,13 +3636,13 @@ msgid "" "exc:`ValueError` is raised." msgstr "" -#: ../../library/ctypes.rst:2479 ../../library/ctypes.rst:2489 +#: ../../library/ctypes.rst:2480 ../../library/ctypes.rst:2490 msgid "" "Raises an :ref:`auditing event ` ``ctypes.cdata/buffer`` with " "arguments ``pointer``, ``size``, ``offset``." msgstr "" -#: ../../library/ctypes.rst:2483 +#: ../../library/ctypes.rst:2484 msgid "" "This method creates a ctypes instance, copying the buffer from the *source* " "object buffer which must be readable. The optional *offset* parameter " @@ -3652,19 +3650,19 @@ msgid "" "If the source buffer is not large enough a :exc:`ValueError` is raised." msgstr "" -#: ../../library/ctypes.rst:2493 +#: ../../library/ctypes.rst:2494 msgid "" "This method returns a ctypes type instance using the memory specified by " "*address* which must be an integer." msgstr "" -#: ../../library/ctypes.rst:2496 ../../library/ctypes.rst:2498 +#: ../../library/ctypes.rst:2497 ../../library/ctypes.rst:2499 msgid "" "This method, and others that indirectly call this method, raises an :ref:" "`auditing event ` ``ctypes.cdata`` with argument ``address``." msgstr "" -#: ../../library/ctypes.rst:2504 +#: ../../library/ctypes.rst:2505 msgid "" "This method adapts *obj* to a ctypes type. It is called with the actual " "object used in a foreign function call when the type is present in the " @@ -3672,36 +3670,36 @@ msgid "" "object that can be used as a function call parameter." msgstr "" -#: ../../library/ctypes.rst:2509 +#: ../../library/ctypes.rst:2510 msgid "" "All ctypes data types have a default implementation of this classmethod that " "normally returns *obj* if that is an instance of the type. Some types " "accept other objects as well." msgstr "" -#: ../../library/ctypes.rst:2515 +#: ../../library/ctypes.rst:2516 msgid "" "This method returns a ctypes type instance exported by a shared library. " "*name* is the name of the symbol that exports the data, *library* is the " "loaded shared library." msgstr "" -#: ../../library/ctypes.rst:2519 +#: ../../library/ctypes.rst:2520 msgid "Common class variables of ctypes data types:" msgstr "" -#: ../../library/ctypes.rst:2523 +#: ../../library/ctypes.rst:2524 msgid "" "The pointer type that was created by calling :func:`POINTER` for " "corresponding ctypes data type. If a pointer type was not yet created, the " "attribute is missing." msgstr "" -#: ../../library/ctypes.rst:2529 +#: ../../library/ctypes.rst:2530 msgid "Common instance variables of ctypes data types:" msgstr "" -#: ../../library/ctypes.rst:2533 +#: ../../library/ctypes.rst:2534 msgid "" "Sometimes ctypes data instances do not own the memory block they contain, " "instead they share part of the memory block of a base object. The :attr:" @@ -3709,13 +3707,13 @@ msgid "" "block." msgstr "" -#: ../../library/ctypes.rst:2540 +#: ../../library/ctypes.rst:2541 msgid "" "This read-only variable is true when the ctypes data instance has allocated " "the memory block itself, false otherwise." msgstr "" -#: ../../library/ctypes.rst:2545 +#: ../../library/ctypes.rst:2546 msgid "" "This member is either ``None`` or a dictionary containing Python objects " "that need to be kept alive so that the memory block contents is kept valid. " @@ -3723,7 +3721,7 @@ msgid "" "dictionary." msgstr "" -#: ../../library/ctypes.rst:2558 +#: ../../library/ctypes.rst:2559 msgid "" "This non-public class is the base class of all fundamental ctypes data " "types. It is mentioned here because it contains the common attributes of the " @@ -3732,11 +3730,11 @@ msgid "" "types that are not and do not contain pointers can now be pickled." msgstr "" -#: ../../library/ctypes.rst:2564 +#: ../../library/ctypes.rst:2565 msgid "Instances have a single attribute:" msgstr "" -#: ../../library/ctypes.rst:2568 +#: ../../library/ctypes.rst:2569 msgid "" "This attribute contains the actual value of the instance. For integer and " "pointer types, it is an integer, for character types, it is a single " @@ -3744,7 +3742,7 @@ msgid "" "bytes object or string." msgstr "" -#: ../../library/ctypes.rst:2573 +#: ../../library/ctypes.rst:2574 msgid "" "When the ``value`` attribute is retrieved from a ctypes instance, usually a " "new object is returned each time. :mod:`!ctypes` does *not* implement " @@ -3752,17 +3750,17 @@ msgid "" "true for all other ctypes object instances." msgstr "" -#: ../../library/ctypes.rst:2578 +#: ../../library/ctypes.rst:2579 msgid "Each subclass has a class attribute:" msgstr "" -#: ../../library/ctypes.rst:2582 +#: ../../library/ctypes.rst:2583 msgid "" "Class attribute that contains an internal type code, as a single-character " "string. See :ref:`ctypes-fundamental-data-types` for a summary." msgstr "" -#: ../../library/ctypes.rst:2586 +#: ../../library/ctypes.rst:2587 msgid "" "Types marked \\* in the summary may be (or always are) aliases of a " "different :class:`_SimpleCData` subclass, and will not necessarily use the " @@ -3773,7 +3771,7 @@ msgid "" "code will be unused." msgstr "" -#: ../../library/ctypes.rst:2597 +#: ../../library/ctypes.rst:2598 msgid "" "The :mod:`array` and :ref:`struct ` modules, as well as " "third-party modules like `numpy >> class Color(Structure):\n" "... _fields_ = (\n" @@ -4356,100 +4354,100 @@ msgid "" "1" msgstr "" -#: ../../library/ctypes.rst:3099 +#: ../../library/ctypes.rst:3100 msgid "All attributes are read-only." msgstr "" -#: ../../library/ctypes.rst:3101 +#: ../../library/ctypes.rst:3102 msgid "" ":class:`!CField` objects are created via :attr:`~Structure._fields_`; do not " "instantiate the class directly." msgstr "" -#: ../../library/ctypes.rst:3106 +#: ../../library/ctypes.rst:3107 msgid "" "Previously, descriptors only had ``offset`` and ``size`` attributes and a " "readable string representation; the :class:`!CField` class was not available " "directly." msgstr "" -#: ../../library/ctypes.rst:3112 +#: ../../library/ctypes.rst:3113 msgid "Name of the field, as a string." msgstr "" -#: ../../library/ctypes.rst:3116 +#: ../../library/ctypes.rst:3117 msgid "Type of the field, as a :ref:`ctypes class `." msgstr "" -#: ../../library/ctypes.rst:3121 +#: ../../library/ctypes.rst:3122 msgid "Offset of the field, in bytes." msgstr "" -#: ../../library/ctypes.rst:3123 +#: ../../library/ctypes.rst:3124 msgid "" "For bitfields, this is the offset of the underlying byte-aligned *storage " "unit*; see :attr:`~CField.bit_offset`." msgstr "" -#: ../../library/ctypes.rst:3128 +#: ../../library/ctypes.rst:3129 msgid "Size of the field, in bytes." msgstr "" -#: ../../library/ctypes.rst:3130 +#: ../../library/ctypes.rst:3131 msgid "" "For bitfields, this is the size of the underlying *storage unit*. Typically, " "it has the same size as the bitfield's type." msgstr "" -#: ../../library/ctypes.rst:3135 +#: ../../library/ctypes.rst:3136 msgid "For non-bitfields, equivalent to :attr:`~CField.byte_size`." msgstr "" -#: ../../library/ctypes.rst:3137 +#: ../../library/ctypes.rst:3138 msgid "" "For bitfields, this contains a backwards-compatible bit-packed value that " "combines :attr:`~CField.bit_size` and :attr:`~CField.bit_offset`. Prefer " "using the explicit attributes instead." msgstr "" -#: ../../library/ctypes.rst:3144 +#: ../../library/ctypes.rst:3145 msgid "True if this is a bitfield." msgstr "" -#: ../../library/ctypes.rst:3149 +#: ../../library/ctypes.rst:3150 msgid "" "The location of a bitfield within its *storage unit*, that is, within :attr:" "`~CField.byte_size` bytes of memory starting at :attr:`~CField.byte_offset`." msgstr "" -#: ../../library/ctypes.rst:3153 +#: ../../library/ctypes.rst:3154 msgid "" "To get the field's value, read the storage unit as an integer, :ref:`shift " "left ` by :attr:`!bit_offset` and take the :attr:`!bit_size` least " "significant bits." msgstr "" -#: ../../library/ctypes.rst:3157 +#: ../../library/ctypes.rst:3158 msgid "" "For non-bitfields, :attr:`!bit_offset` is zero and :attr:`!bit_size` is " "equal to ``byte_size * 8``." msgstr "" -#: ../../library/ctypes.rst:3162 +#: ../../library/ctypes.rst:3163 msgid "" "True if this field is anonymous, that is, it contains nested sub-fields that " "should be merged into a containing structure or union." msgstr "" -#: ../../library/ctypes.rst:3169 +#: ../../library/ctypes.rst:3170 msgid "Arrays and pointers" msgstr "" -#: ../../library/ctypes.rst:3173 +#: ../../library/ctypes.rst:3174 msgid "Abstract base class for arrays." msgstr "" -#: ../../library/ctypes.rst:3175 +#: ../../library/ctypes.rst:3176 msgid "" "The recommended way to create concrete array types is by multiplying any :" "mod:`!ctypes` data type with a non-negative integer. Alternatively, you can " @@ -4459,48 +4457,48 @@ msgid "" "an :class:`Array`." msgstr "" -#: ../../library/ctypes.rst:3182 +#: ../../library/ctypes.rst:3183 msgid "Arrays are :ref:`generic ` over the type of their elements." msgstr "" -#: ../../library/ctypes.rst:3187 +#: ../../library/ctypes.rst:3188 msgid "" "A positive integer specifying the number of elements in the array. Out-of-" "range subscripts result in an :exc:`IndexError`. Will be returned by :func:" "`len`." msgstr "" -#: ../../library/ctypes.rst:3194 +#: ../../library/ctypes.rst:3195 msgid "Specifies the type of each element in the array." msgstr "" -#: ../../library/ctypes.rst:3197 +#: ../../library/ctypes.rst:3198 msgid "" "Array subclass constructors accept positional arguments, used to initialize " "the elements in order." msgstr "" -#: ../../library/ctypes.rst:3202 +#: ../../library/ctypes.rst:3203 msgid "" "Create an array. Equivalent to ``type * length``, where *type* is a :mod:`!" "ctypes` data type and *length* an integer." msgstr "" -#: ../../library/ctypes.rst:3206 +#: ../../library/ctypes.rst:3207 msgid "In favor of multiplication." msgstr "" -#: ../../library/ctypes.rst:3212 +#: ../../library/ctypes.rst:3213 msgid "Private, abstract base class for pointers." msgstr "" -#: ../../library/ctypes.rst:3214 +#: ../../library/ctypes.rst:3215 msgid "" "Concrete pointer types are created by calling :func:`POINTER` with the type " "that will be pointed to; this is done automatically by :func:`pointer`." msgstr "" -#: ../../library/ctypes.rst:3218 +#: ../../library/ctypes.rst:3219 msgid "" "If a pointer points to an array, its elements can be read and written using " "standard subscript and slice accesses. Pointer objects have no size, so :" @@ -4509,43 +4507,43 @@ msgid "" "probably crash with an access violation (if you're lucky)." msgstr "" -#: ../../library/ctypes.rst:3228 +#: ../../library/ctypes.rst:3229 msgid "Specifies the type pointed to." msgstr "" -#: ../../library/ctypes.rst:3232 +#: ../../library/ctypes.rst:3233 msgid "" "Returns the object to which to pointer points. Assigning to this attribute " "changes the pointer to point to the assigned object." msgstr "" -#: ../../library/ctypes.rst:3239 +#: ../../library/ctypes.rst:3240 msgid "Exceptions" msgstr "Ausnahmen" -#: ../../library/ctypes.rst:3243 +#: ../../library/ctypes.rst:3244 msgid "" "This exception is raised when a foreign function call cannot convert one of " "the passed arguments." msgstr "" -#: ../../library/ctypes.rst:3249 +#: ../../library/ctypes.rst:3250 msgid "This exception is raised when a COM method call failed." msgstr "" -#: ../../library/ctypes.rst:3253 +#: ../../library/ctypes.rst:3254 msgid "The integer value representing the error code." msgstr "" -#: ../../library/ctypes.rst:3257 +#: ../../library/ctypes.rst:3258 msgid "The error message." msgstr "" -#: ../../library/ctypes.rst:3261 +#: ../../library/ctypes.rst:3262 msgid "The 5-tuple ``(descr, source, helpfile, helpcontext, progid)``." msgstr "" -#: ../../library/ctypes.rst:3263 +#: ../../library/ctypes.rst:3264 msgid "" "*descr* is the textual description. *source* is the language-dependent " "``ProgID`` for the class or application that raised the error. *helpfile* " diff --git a/library/idle.po b/library/idle.po index e907c98b..47ce15c5 100644 --- a/library/idle.po +++ b/library/idle.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-28 03:11+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+0000\n" "PO-Revision-Date: 2026-05-08 17:18+0000\n" "Last-Translator: Swen Bachmann, 2026\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -1558,11 +1558,11 @@ msgid "" "mainloop call when running in standard Python." msgstr "" -#: ../../library/idle.rst:937 +#: ../../library/idle.rst:939 msgid "Running without a subprocess" msgstr "" -#: ../../library/idle.rst:939 +#: ../../library/idle.rst:941 msgid "" "By default, IDLE executes user code in a separate subprocess via a socket, " "which uses the internal loopback interface. This connection is not " @@ -1570,7 +1570,7 @@ msgid "" "firewall software complains anyway, you can ignore it." msgstr "" -#: ../../library/idle.rst:944 +#: ../../library/idle.rst:946 msgid "" "If the attempt to make the socket connection fails, Idle will notify you. " "Such failures are sometimes transient, but if persistent, the problem may be " @@ -1579,7 +1579,7 @@ msgid "" "command line switch." msgstr "" -#: ../../library/idle.rst:950 +#: ../../library/idle.rst:952 msgid "" "If IDLE is started with the -n command line switch it will run in a single " "process and will not create the subprocess which runs the RPC Python " @@ -1593,15 +1593,15 @@ msgid "" "at all possible." msgstr "" -#: ../../library/idle.rst:965 +#: ../../library/idle.rst:967 msgid "Help and Preferences" msgstr "" -#: ../../library/idle.rst:970 +#: ../../library/idle.rst:972 msgid "Help sources" msgstr "" -#: ../../library/idle.rst:972 +#: ../../library/idle.rst:974 msgid "" "Help menu entry \"IDLE Help\" displays a formatted html version of the IDLE " "chapter of the Library Reference. The result, in a read-only tkinter text " @@ -1611,7 +1611,7 @@ msgid "" "the opened box." msgstr "" -#: ../../library/idle.rst:980 +#: ../../library/idle.rst:982 msgid "" "Help menu entry \"Python Docs\" opens the extensive sources of help, " "including tutorials, available at ``docs.python.org/x.y``, where 'x.y' is " @@ -1620,17 +1620,17 @@ msgid "" "instead." msgstr "" -#: ../../library/idle.rst:986 +#: ../../library/idle.rst:988 msgid "" "Selected URLs can be added or removed from the help menu at any time using " "the General tab of the Configure IDLE dialog." msgstr "" -#: ../../library/idle.rst:992 +#: ../../library/idle.rst:994 msgid "Setting preferences" msgstr "" -#: ../../library/idle.rst:994 +#: ../../library/idle.rst:996 msgid "" "The font preferences, highlighting, keys, and general preferences can be " "changed via Configure IDLE on the Option menu. Non-default user settings are " @@ -1639,7 +1639,7 @@ msgid "" "or more of the files in ``.idlerc``." msgstr "" -#: ../../library/idle.rst:1000 +#: ../../library/idle.rst:1002 msgid "" "On the Font tab, see the text sample for the effect of font face and size on " "multiple characters in multiple languages. Edit the sample to add other " @@ -1648,7 +1648,7 @@ msgid "" "them to the top of the sample and try changing first size and then font." msgstr "" -#: ../../library/idle.rst:1007 +#: ../../library/idle.rst:1009 msgid "" "On the Highlights and Keys tab, select a built-in or custom color theme and " "key set. To use a newer built-in color theme or key set with older IDLEs, " @@ -1656,22 +1656,22 @@ msgid "" "IDLEs." msgstr "" -#: ../../library/idle.rst:1013 +#: ../../library/idle.rst:1015 msgid "IDLE on macOS" msgstr "" -#: ../../library/idle.rst:1015 +#: ../../library/idle.rst:1017 msgid "" "Under System Preferences: Dock, one can set \"Prefer tabs when opening " "documents\" to \"Always\". This setting is not compatible with the tk/" "tkinter GUI framework used by IDLE, and it breaks a few IDLE features." msgstr "" -#: ../../library/idle.rst:1020 +#: ../../library/idle.rst:1022 msgid "Extensions" msgstr "" -#: ../../library/idle.rst:1022 +#: ../../library/idle.rst:1024 msgid "" "IDLE contains an extension facility. Preferences for extensions can be " "changed with the Extensions tab of the preferences dialog. See the beginning " @@ -1680,21 +1680,21 @@ msgid "" "testing." msgstr "" -#: ../../library/idle.rst:1030 +#: ../../library/idle.rst:1032 msgid "idlelib --- implementation of IDLE application" msgstr "" -#: ../../library/idle.rst:1035 +#: ../../library/idle.rst:1037 msgid "**Source code:** :source:`Lib/idlelib`" msgstr "" -#: ../../library/idle.rst:1039 +#: ../../library/idle.rst:1041 msgid "" "The Lib/idlelib package implements the IDLE application. See the rest of " "this page for how to use IDLE." msgstr "" -#: ../../library/idle.rst:1042 +#: ../../library/idle.rst:1044 msgid "" "The files in idlelib are described in idlelib/README.txt. Access it either " "in idlelib or click Help => About IDLE on the IDLE menu. This file also " diff --git a/library/ssl.po b/library/ssl.po index ffd6400a..c83bfab4 100644 --- a/library/ssl.po +++ b/library/ssl.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-28 03:11+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+0000\n" "PO-Revision-Date: 2026-05-08 17:18+0000\n" "Last-Translator: Swen Bachmann, 2026\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -582,7 +582,7 @@ msgid "" msgstr "" #: ../../library/ssl.rst:450 ../../library/ssl.rst:1610 -#: ../../library/ssl.rst:1910 +#: ../../library/ssl.rst:1932 msgid "Example::" msgstr "Beispiel::" @@ -630,7 +630,7 @@ msgid "" "does not send any for client cert authentication." msgstr "" -#: ../../library/ssl.rst:494 ../../library/ssl.rst:2412 +#: ../../library/ssl.rst:494 ../../library/ssl.rst:2434 msgid "See the discussion of :ref:`ssl-security` below." msgstr "" @@ -2067,6 +2067,14 @@ msgstr "" #: ../../library/ssl.rst:1724 msgid "" +"If the callback assigns a new context to :attr:`SSLSocket.context`, any " +"further ClientHello message on the same connection (for example after a TLS " +"1.3 HelloRetryRequest) is dispatched to the new context's *sni_callback*, if " +"it has one; the original callback is not called again for that connection." +msgstr "" + +#: ../../library/ssl.rst:1730 +msgid "" "Due to the early negotiation phase of the TLS connection, only limited " "methods and attributes are usable like :meth:`SSLSocket." "selected_alpn_protocol` and :attr:`SSLSocket.context`. The :meth:`SSLSocket." @@ -2077,7 +2085,7 @@ msgid "" "they be called safely." msgstr "" -#: ../../library/ssl.rst:1733 +#: ../../library/ssl.rst:1739 msgid "" "The *sni_callback* function must return ``None`` to allow the TLS " "negotiation to continue. If a TLS failure is required, a constant :const:" @@ -2086,20 +2094,27 @@ msgid "" "`ALERT_DESCRIPTION_INTERNAL_ERROR`." msgstr "" -#: ../../library/ssl.rst:1739 +#: ../../library/ssl.rst:1745 msgid "" "If an exception is raised from the *sni_callback* function the TLS " "connection will terminate with a fatal TLS alert message :const:" "`ALERT_DESCRIPTION_HANDSHAKE_FAILURE`." msgstr "" -#: ../../library/ssl.rst:1743 +#: ../../library/ssl.rst:1749 msgid "" "This method will raise :exc:`NotImplementedError` if the OpenSSL library had " "OPENSSL_NO_TLSEXT defined when it was built." msgstr "" -#: ../../library/ssl.rst:1750 +#: ../../library/ssl.rst:1754 +msgid "" +"After the callback assigns a new :attr:`SSLSocket.context`, later " +"ClientHello messages on the connection are dispatched to the new context's " +"*sni_callback*." +msgstr "" + +#: ../../library/ssl.rst:1761 msgid "" "This is a legacy API retained for backwards compatibility. When possible, " "you should use :attr:`sni_callback` instead. The given " @@ -2108,14 +2123,14 @@ msgid "" "*server_name_callback* receives a decoded U-label (``\"pythön.org\"``)." msgstr "" -#: ../../library/ssl.rst:1756 +#: ../../library/ssl.rst:1767 msgid "" "If there is a decoding error on the server name, the TLS connection will " "terminate with an :const:`ALERT_DESCRIPTION_INTERNAL_ERROR` fatal TLS alert " "message to the client." msgstr "" -#: ../../library/ssl.rst:1764 +#: ../../library/ssl.rst:1775 msgid "" "Load the key generation parameters for Diffie-Hellman (DH) key exchange. " "Using DH key exchange improves forward secrecy at the expense of " @@ -2124,13 +2139,13 @@ msgid "" "format." msgstr "" -#: ../../library/ssl.rst:1770 +#: ../../library/ssl.rst:1781 msgid "" "This setting doesn't apply to client sockets. You can also use the :data:" "`OP_SINGLE_DH_USE` option to further improve security." msgstr "" -#: ../../library/ssl.rst:1777 +#: ../../library/ssl.rst:1788 msgid "" "Set the curve name for Elliptic Curve-based Diffie-Hellman (ECDH) key " "exchange. ECDH is significantly faster than regular DH while arguably as " @@ -2139,27 +2154,27 @@ msgid "" "curve." msgstr "" -#: ../../library/ssl.rst:1783 +#: ../../library/ssl.rst:1794 msgid "" "This setting doesn't apply to client sockets. You can also use the :data:" "`OP_SINGLE_ECDH_USE` option to further improve security." msgstr "" -#: ../../library/ssl.rst:1786 +#: ../../library/ssl.rst:1797 msgid "This method is not available if :data:`HAS_ECDH` is ``False``." msgstr "" -#: ../../library/ssl.rst:1791 +#: ../../library/ssl.rst:1802 msgid "" "`SSL/TLS & Perfect Forward Secrecy `_" msgstr "" -#: ../../library/ssl.rst:1792 +#: ../../library/ssl.rst:1803 msgid "Vincent Bernat." msgstr "" -#: ../../library/ssl.rst:1798 +#: ../../library/ssl.rst:1809 msgid "" "Wrap an existing Python socket *sock* and return an instance of :attr:" "`SSLContext.sslsocket_class` (default :class:`SSLSocket`). The returned SSL " @@ -2167,13 +2182,13 @@ msgid "" "a :const:`~socket.SOCK_STREAM` socket; other socket types are unsupported." msgstr "" -#: ../../library/ssl.rst:1804 +#: ../../library/ssl.rst:1815 msgid "" "The parameter ``server_side`` is a boolean which identifies whether server-" "side or client-side behavior is desired from this socket." msgstr "" -#: ../../library/ssl.rst:1807 +#: ../../library/ssl.rst:1818 msgid "" "For client-side sockets, the context construction is lazy; if the underlying " "socket isn't connected yet, the context construction will be performed " @@ -2184,7 +2199,7 @@ msgid "" "exc:`SSLError`." msgstr "" -#: ../../library/ssl.rst:1815 +#: ../../library/ssl.rst:1826 msgid "" "On client connections, the optional parameter *server_hostname* specifies " "the hostname of the service which we are connecting to. This allows a " @@ -2193,7 +2208,7 @@ msgid "" "*server_hostname* will raise a :exc:`ValueError` if *server_side* is true." msgstr "" -#: ../../library/ssl.rst:1821 +#: ../../library/ssl.rst:1832 msgid "" "The parameter ``do_handshake_on_connect`` specifies whether to do the SSL " "handshake automatically after doing a :meth:`socket.connect`, or whether the " @@ -2203,7 +2218,7 @@ msgid "" "socket I/O involved in the handshake." msgstr "" -#: ../../library/ssl.rst:1828 +#: ../../library/ssl.rst:1839 msgid "" "The parameter ``suppress_ragged_eofs`` specifies how the :meth:`SSLSocket." "recv` method should signal unexpected EOF from the other end of the " @@ -2213,40 +2228,40 @@ msgid "" "exceptions back to the caller." msgstr "" -#: ../../library/ssl.rst:1835 +#: ../../library/ssl.rst:1846 msgid "*session*, see :attr:`~SSLSocket.session`." msgstr "" -#: ../../library/ssl.rst:1837 +#: ../../library/ssl.rst:1848 msgid "" "To wrap an :class:`SSLSocket` in another :class:`SSLSocket`, use :meth:" "`SSLContext.wrap_bio`." msgstr "" -#: ../../library/ssl.rst:1840 +#: ../../library/ssl.rst:1851 msgid "" "Always allow a server_hostname to be passed, even if OpenSSL does not have " "SNI." msgstr "" -#: ../../library/ssl.rst:1844 ../../library/ssl.rst:1871 +#: ../../library/ssl.rst:1855 ../../library/ssl.rst:1886 msgid "*session* argument was added." msgstr "" -#: ../../library/ssl.rst:1847 +#: ../../library/ssl.rst:1858 msgid "" "The method returns an instance of :attr:`SSLContext.sslsocket_class` instead " "of hard-coded :class:`SSLSocket`." msgstr "" -#: ../../library/ssl.rst:1853 +#: ../../library/ssl.rst:1864 msgid "" "The return type of :meth:`SSLContext.wrap_socket`, defaults to :class:" "`SSLSocket`. The attribute can be assigned to on instances of :class:" "`SSLContext` in order to return a custom subclass of :class:`SSLSocket`." msgstr "" -#: ../../library/ssl.rst:1863 +#: ../../library/ssl.rst:1874 msgid "" "Wrap the BIO objects *incoming* and *outgoing* and return an instance of :" "attr:`SSLContext.sslobject_class` (default :class:`SSLObject`). The SSL " @@ -2254,26 +2269,38 @@ msgid "" "outgoing BIO." msgstr "" -#: ../../library/ssl.rst:1868 +#: ../../library/ssl.rst:1879 msgid "" "The *server_side*, *server_hostname* and *session* parameters have the same " -"meaning as in :meth:`SSLContext.wrap_socket`." +"meaning as in :meth:`SSLContext.wrap_socket`, and are validated in the same " +"way: in particular a :exc:`ValueError` is raised when :attr:`~SSLContext." +"check_hostname` is enabled but no *server_hostname* is given, since there " +"would be no name to match the peer's certificate against." msgstr "" -#: ../../library/ssl.rst:1874 +#: ../../library/ssl.rst:1889 msgid "" "The method returns an instance of :attr:`SSLContext.sslobject_class` instead " "of hard-coded :class:`SSLObject`." msgstr "" -#: ../../library/ssl.rst:1880 +#: ../../library/ssl.rst:1893 +msgid "" +"The *server_side*, *server_hostname* and *session* parameters are now " +"validated as :meth:`SSLContext.wrap_socket` validates them. Previously a " +"context with :attr:`~SSLContext.check_hostname` enabled and no " +"*server_hostname* was accepted, and verified the certificate chain but never " +"the peer's identity." +msgstr "" + +#: ../../library/ssl.rst:1902 msgid "" "The return type of :meth:`SSLContext.wrap_bio`, defaults to :class:" "`SSLObject`. The attribute can be overridden on instance of class in order " "to return a custom subclass of :class:`SSLObject`." msgstr "" -#: ../../library/ssl.rst:1888 +#: ../../library/ssl.rst:1910 msgid "" "Get statistics about the SSL sessions created or managed by this context. A " "dictionary is returned which maps the names of each `piece of information " @@ -2282,14 +2309,14 @@ msgid "" "the session cache since the context was created::" msgstr "" -#: ../../library/ssl.rst:1893 +#: ../../library/ssl.rst:1915 msgid "" ">>> stats = context.session_stats()\n" ">>> stats['hits'], stats['misses']\n" "(0, 0)" msgstr "" -#: ../../library/ssl.rst:1899 +#: ../../library/ssl.rst:1921 msgid "" "Whether to match the peer cert's hostname in :meth:`SSLSocket.do_handshake`. " "The context's :attr:`~SSLContext.verify_mode` must be set to :data:" @@ -2302,7 +2329,7 @@ msgid "" "With other protocols, hostname checking must be enabled explicitly." msgstr "" -#: ../../library/ssl.rst:1912 +#: ../../library/ssl.rst:1934 msgid "" "import socket, ssl\n" "\n" @@ -2316,7 +2343,7 @@ msgid "" "ssl_sock.connect(('www.verisign.com', 443))" msgstr "" -#: ../../library/ssl.rst:1927 +#: ../../library/ssl.rst:1949 msgid "" ":attr:`~SSLContext.verify_mode` is now automatically changed to :data:" "`CERT_REQUIRED` when hostname checking is enabled and :attr:`~SSLContext." @@ -2324,7 +2351,7 @@ msgid "" "failed with a :exc:`ValueError`." msgstr "" -#: ../../library/ssl.rst:1934 +#: ../../library/ssl.rst:1956 msgid "" "Write TLS keys to a keylog file, whenever key material is generated or " "received. The keylog file is designed for debugging purposes only. The file " @@ -2333,7 +2360,7 @@ msgid "" "synchronized between threads, but not between processes." msgstr "" -#: ../../library/ssl.rst:1944 +#: ../../library/ssl.rst:1966 msgid "" "A :class:`TLSVersion` enum member representing the highest supported TLS " "version. The value defaults to :attr:`TLSVersion.MAXIMUM_SUPPORTED`. The " @@ -2341,7 +2368,7 @@ msgid "" "const:`PROTOCOL_TLS_CLIENT`, and :const:`PROTOCOL_TLS_SERVER`." msgstr "" -#: ../../library/ssl.rst:1949 +#: ../../library/ssl.rst:1971 msgid "" "The attributes :attr:`~SSLContext.maximum_version`, :attr:`~SSLContext." "minimum_version` and :attr:`SSLContext.options` all affect the supported SSL " @@ -2351,38 +2378,38 @@ msgid "" "`TLSVersion.TLSv1_2` will not be able to establish a TLS 1.2 connection." msgstr "" -#: ../../library/ssl.rst:1962 +#: ../../library/ssl.rst:1984 msgid "" "Like :attr:`SSLContext.maximum_version` except it is the lowest supported " "version or :attr:`TLSVersion.MINIMUM_SUPPORTED`." msgstr "" -#: ../../library/ssl.rst:1969 +#: ../../library/ssl.rst:1991 msgid "" "Control the number of TLS 1.3 session tickets of a :const:" "`PROTOCOL_TLS_SERVER` context. The setting has no impact on TLS 1.0 to 1.2 " "connections." msgstr "" -#: ../../library/ssl.rst:1977 +#: ../../library/ssl.rst:1999 msgid "" "An integer representing the set of SSL options enabled on this context. The " "default value is :data:`OP_ALL`, but you can specify other options such as :" "data:`OP_NO_SSLv2` by ORing them together." msgstr "" -#: ../../library/ssl.rst:1981 +#: ../../library/ssl.rst:2003 msgid ":attr:`SSLContext.options` returns :class:`Options` flags:" msgstr "" -#: ../../library/ssl.rst:1989 +#: ../../library/ssl.rst:2011 msgid "" "All ``OP_NO_SSL*`` and ``OP_NO_TLS*`` options have been deprecated since " "Python 3.7. Use :attr:`SSLContext.minimum_version` and :attr:`SSLContext." "maximum_version` instead." msgstr "" -#: ../../library/ssl.rst:1995 +#: ../../library/ssl.rst:2017 msgid "" "Enable TLS 1.3 post-handshake client authentication. Post-handshake auth is " "disabled by default and a server can only request a TLS client certificate " @@ -2390,13 +2417,13 @@ msgid "" "client certificate at any time after the handshake." msgstr "" -#: ../../library/ssl.rst:2000 +#: ../../library/ssl.rst:2022 msgid "" "When enabled on client-side sockets, the client signals the server that it " "supports post-handshake authentication." msgstr "" -#: ../../library/ssl.rst:2003 +#: ../../library/ssl.rst:2025 msgid "" "When enabled on server-side sockets, :attr:`SSLContext.verify_mode` must be " "set to :data:`CERT_OPTIONAL` or :data:`CERT_REQUIRED`, too. The actual " @@ -2404,66 +2431,66 @@ msgid "" "verify_client_post_handshake` is called and some I/O is performed." msgstr "" -#: ../../library/ssl.rst:2013 +#: ../../library/ssl.rst:2035 msgid "" "The protocol version chosen when constructing the context. This attribute " "is read-only." msgstr "" -#: ../../library/ssl.rst:2018 +#: ../../library/ssl.rst:2040 msgid "" "Whether :attr:`~SSLContext.check_hostname` falls back to verify the cert's " "subject common name in the absence of a subject alternative name extension " "(default: true)." msgstr "" -#: ../../library/ssl.rst:2026 +#: ../../library/ssl.rst:2048 msgid "" "The flag had no effect with OpenSSL before version 1.1.1l. Python 3.8.9, " "3.9.3, and 3.10 include workarounds for previous versions." msgstr "" -#: ../../library/ssl.rst:2031 +#: ../../library/ssl.rst:2053 msgid "" "An integer representing the `security level `_ for the context. This attribute is read-" "only." msgstr "" -#: ../../library/ssl.rst:2039 +#: ../../library/ssl.rst:2061 msgid "" "The flags for certificate verification operations. You can set flags like :" "data:`VERIFY_CRL_CHECK_LEAF` by ORing them together. By default OpenSSL does " "neither require nor verify certificate revocation lists (CRLs)." msgstr "" -#: ../../library/ssl.rst:2045 +#: ../../library/ssl.rst:2067 msgid ":attr:`SSLContext.verify_flags` returns :class:`VerifyFlags` flags:" msgstr "" -#: ../../library/ssl.rst:2053 +#: ../../library/ssl.rst:2075 msgid "" "Whether to try to verify other peers' certificates and how to behave if " "verification fails. This attribute must be one of :data:`CERT_NONE`, :data:" "`CERT_OPTIONAL` or :data:`CERT_REQUIRED`." msgstr "" -#: ../../library/ssl.rst:2057 +#: ../../library/ssl.rst:2079 msgid ":attr:`SSLContext.verify_mode` returns :class:`VerifyMode` enum:" msgstr "" -#: ../../library/ssl.rst:2065 +#: ../../library/ssl.rst:2087 msgid "" "Enables TLS-PSK (pre-shared key) authentication on a client-side connection." msgstr "" -#: ../../library/ssl.rst:2067 ../../library/ssl.rst:2116 +#: ../../library/ssl.rst:2089 ../../library/ssl.rst:2138 msgid "" "In general, certificate based authentication should be preferred over this " "method." msgstr "" -#: ../../library/ssl.rst:2069 +#: ../../library/ssl.rst:2091 msgid "" "The parameter ``callback`` is a callable object with the signature: ``def " "callback(hint: str | None) -> tuple[str | None, bytes]``. The ``hint`` " @@ -2475,27 +2502,27 @@ msgid "" "shared key. Return a zero length PSK to reject the connection." msgstr "" -#: ../../library/ssl.rst:2079 ../../library/ssl.rst:2125 +#: ../../library/ssl.rst:2101 ../../library/ssl.rst:2147 msgid "Setting ``callback`` to :const:`None` removes any existing callback." msgstr "" -#: ../../library/ssl.rst:2082 +#: ../../library/ssl.rst:2104 msgid "When using TLS 1.3:" msgstr "" -#: ../../library/ssl.rst:2084 +#: ../../library/ssl.rst:2106 msgid "the ``hint`` parameter is always :const:`None`." msgstr "" -#: ../../library/ssl.rst:2085 +#: ../../library/ssl.rst:2107 msgid "client-identity must be a non-empty string." msgstr "" -#: ../../library/ssl.rst:2087 ../../library/ssl.rst:2134 +#: ../../library/ssl.rst:2109 ../../library/ssl.rst:2156 msgid "Example usage::" msgstr "" -#: ../../library/ssl.rst:2089 +#: ../../library/ssl.rst:2111 msgid "" "context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n" "context.check_hostname = False\n" @@ -2516,18 +2543,18 @@ msgid "" "context.set_psk_client_callback(callback)" msgstr "" -#: ../../library/ssl.rst:2107 ../../library/ssl.rst:2152 +#: ../../library/ssl.rst:2129 ../../library/ssl.rst:2174 msgid "" "This method will raise :exc:`NotImplementedError` if :data:`HAS_PSK` is " "``False``." msgstr "" -#: ../../library/ssl.rst:2114 +#: ../../library/ssl.rst:2136 msgid "" "Enables TLS-PSK (pre-shared key) authentication on a server-side connection." msgstr "" -#: ../../library/ssl.rst:2118 +#: ../../library/ssl.rst:2140 msgid "" "The parameter ``callback`` is a callable object with the signature: ``def " "callback(identity: str | None) -> bytes``. The ``identity`` parameter is an " @@ -2537,19 +2564,19 @@ msgid "" "connection." msgstr "" -#: ../../library/ssl.rst:2127 +#: ../../library/ssl.rst:2149 msgid "" "The parameter ``identity_hint`` is an optional identity hint string sent to " "the client. The string must be less than or equal to ``256`` octets when " "UTF-8 encoded." msgstr "" -#: ../../library/ssl.rst:2132 +#: ../../library/ssl.rst:2154 msgid "" "When using TLS 1.3 the ``identity_hint`` parameter is not sent to the client." msgstr "" -#: ../../library/ssl.rst:2136 +#: ../../library/ssl.rst:2158 msgid "" "context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)\n" "context.maximum_version = ssl.TLSVersion.TLSv1_2\n" @@ -2568,11 +2595,11 @@ msgid "" "context.set_psk_server_callback(callback, 'ServerId_1')" msgstr "" -#: ../../library/ssl.rst:2164 +#: ../../library/ssl.rst:2186 msgid "Certificates" msgstr "" -#: ../../library/ssl.rst:2166 +#: ../../library/ssl.rst:2188 msgid "" "Certificates in general are part of a public-key / private-key system. In " "this system, each *principal*, (which may be a machine, or a person, or an " @@ -2583,7 +2610,7 @@ msgid "" "other part, and **only** with the other part." msgstr "" -#: ../../library/ssl.rst:2174 +#: ../../library/ssl.rst:2196 msgid "" "A certificate contains information about two principals. It contains the " "name of a *subject*, and the subject's public key. It also contains a " @@ -2597,7 +2624,7 @@ msgid "" "as two fields, called \"notBefore\" and \"notAfter\"." msgstr "" -#: ../../library/ssl.rst:2184 +#: ../../library/ssl.rst:2206 msgid "" "In the Python use of certificates, a client or server can use a certificate " "to prove who they are. The other side of a network connection can also be " @@ -2610,25 +2637,25 @@ msgid "" "take place." msgstr "" -#: ../../library/ssl.rst:2194 +#: ../../library/ssl.rst:2216 msgid "" "Python uses files to contain certificates. They should be formatted as " "\"PEM\" (see :rfc:`1422`), which is a base-64 encoded form wrapped with a " "header line and a footer line::" msgstr "" -#: ../../library/ssl.rst:2198 +#: ../../library/ssl.rst:2220 msgid "" "-----BEGIN CERTIFICATE-----\n" "... (certificate in base64 PEM encoding) ...\n" "-----END CERTIFICATE-----" msgstr "" -#: ../../library/ssl.rst:2203 +#: ../../library/ssl.rst:2225 msgid "Certificate chains" msgstr "" -#: ../../library/ssl.rst:2205 +#: ../../library/ssl.rst:2227 msgid "" "The Python files which contain certificates can contain a sequence of " "certificates, sometimes called a *certificate chain*. This chain should " @@ -2644,7 +2671,7 @@ msgid "" "agency which issued the certification authority's certificate::" msgstr "" -#: ../../library/ssl.rst:2218 +#: ../../library/ssl.rst:2240 msgid "" "-----BEGIN CERTIFICATE-----\n" "... (certificate for your server)...\n" @@ -2657,11 +2684,11 @@ msgid "" "-----END CERTIFICATE-----" msgstr "" -#: ../../library/ssl.rst:2229 +#: ../../library/ssl.rst:2251 msgid "CA certificates" msgstr "" -#: ../../library/ssl.rst:2231 +#: ../../library/ssl.rst:2253 msgid "" "If you are going to require validation of the other side of the connection's " "certificate, you need to provide a \"CA certs\" file, filled with the " @@ -2673,11 +2700,11 @@ msgid "" "create_default_context`." msgstr "" -#: ../../library/ssl.rst:2240 +#: ../../library/ssl.rst:2262 msgid "Combined key and certificate" msgstr "" -#: ../../library/ssl.rst:2242 +#: ../../library/ssl.rst:2264 msgid "" "Often the private key is stored in the same file as the certificate; in this " "case, only the ``certfile`` parameter to :meth:`SSLContext.load_cert_chain` " @@ -2685,7 +2712,7 @@ msgid "" "should come before the first certificate in the certificate chain::" msgstr "" -#: ../../library/ssl.rst:2248 +#: ../../library/ssl.rst:2270 msgid "" "-----BEGIN RSA PRIVATE KEY-----\n" "... (private key in base64 encoding) ...\n" @@ -2695,11 +2722,11 @@ msgid "" "-----END CERTIFICATE-----" msgstr "" -#: ../../library/ssl.rst:2256 +#: ../../library/ssl.rst:2278 msgid "Self-signed certificates" msgstr "" -#: ../../library/ssl.rst:2258 +#: ../../library/ssl.rst:2280 msgid "" "If you are going to create a server that provides SSL-encrypted connection " "services, you will need to acquire a certificate for that service. There " @@ -2709,7 +2736,7 @@ msgid "" "package, using something like the following::" msgstr "" -#: ../../library/ssl.rst:2265 +#: ../../library/ssl.rst:2287 msgid "" "% openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.pem\n" "Generating a 1024 bit RSA private key\n" @@ -2735,28 +2762,28 @@ msgid "" "%" msgstr "" -#: ../../library/ssl.rst:2287 +#: ../../library/ssl.rst:2309 msgid "" "The disadvantage of a self-signed certificate is that it is its own root " "certificate, and no one else will have it in their cache of known (and " "trusted) root certificates." msgstr "" -#: ../../library/ssl.rst:2293 +#: ../../library/ssl.rst:2315 msgid "Examples" msgstr "Beispiele" -#: ../../library/ssl.rst:2296 +#: ../../library/ssl.rst:2318 msgid "Testing for SSL support" msgstr "" -#: ../../library/ssl.rst:2298 +#: ../../library/ssl.rst:2320 msgid "" "To test for the presence of SSL support in a Python installation, user code " "should use the following idiom::" msgstr "" -#: ../../library/ssl.rst:2301 +#: ../../library/ssl.rst:2323 msgid "" "try:\n" " import ssl\n" @@ -2766,40 +2793,40 @@ msgid "" " ... # do something that requires SSL support" msgstr "" -#: ../../library/ssl.rst:2309 +#: ../../library/ssl.rst:2331 msgid "Client-side operation" msgstr "" -#: ../../library/ssl.rst:2311 +#: ../../library/ssl.rst:2333 msgid "" "This example creates a SSL context with the recommended security settings " "for client sockets, including automatic certificate verification::" msgstr "" -#: ../../library/ssl.rst:2314 +#: ../../library/ssl.rst:2336 msgid ">>> context = ssl.create_default_context()" msgstr "" -#: ../../library/ssl.rst:2316 +#: ../../library/ssl.rst:2338 msgid "" "If you prefer to tune security settings yourself, you might create a context " "from scratch (but beware that you might not get the settings right)::" msgstr "" -#: ../../library/ssl.rst:2320 +#: ../../library/ssl.rst:2342 msgid "" ">>> context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n" ">>> context.load_verify_locations(\"/etc/ssl/certs/ca-bundle.crt\")" msgstr "" -#: ../../library/ssl.rst:2323 +#: ../../library/ssl.rst:2345 msgid "" "(this snippet assumes your operating system places a bundle of all CA " "certificates in ``/etc/ssl/certs/ca-bundle.crt``; if not, you'll get an " "error and have to adjust the location)" msgstr "" -#: ../../library/ssl.rst:2327 +#: ../../library/ssl.rst:2349 msgid "" "The :data:`PROTOCOL_TLS_CLIENT` protocol configures the context for cert " "validation and hostname verification. :attr:`~SSLContext.verify_mode` is set " @@ -2807,7 +2834,7 @@ msgid "" "``True``. All other protocols create SSL contexts with insecure defaults." msgstr "" -#: ../../library/ssl.rst:2332 +#: ../../library/ssl.rst:2354 msgid "" "When you use the context to connect to a server, :const:`CERT_REQUIRED` and :" "attr:`~SSLContext.check_hostname` validate the server certificate: it " @@ -2816,28 +2843,28 @@ msgid "" "properties like validity and identity of the hostname::" msgstr "" -#: ../../library/ssl.rst:2338 +#: ../../library/ssl.rst:2360 msgid "" ">>> conn = context.wrap_socket(socket.socket(socket.AF_INET),\n" "... server_hostname=\"www.python.org\")\n" ">>> conn.connect((\"www.python.org\", 443))" msgstr "" -#: ../../library/ssl.rst:2342 +#: ../../library/ssl.rst:2364 msgid "You may then fetch the certificate::" msgstr "" -#: ../../library/ssl.rst:2344 +#: ../../library/ssl.rst:2366 msgid ">>> cert = conn.getpeercert()" msgstr "" -#: ../../library/ssl.rst:2346 +#: ../../library/ssl.rst:2368 msgid "" "Visual inspection shows that the certificate does identify the desired " "service (that is, the HTTPS host ``www.python.org``)::" msgstr "" -#: ../../library/ssl.rst:2349 +#: ../../library/ssl.rst:2371 msgid "" ">>> pprint.pprint(cert)\n" "{'OCSP': ('http://ocsp.digicert.com',),\n" @@ -2884,13 +2911,13 @@ msgid "" " 'version': 3}" msgstr "" -#: ../../library/ssl.rst:2389 +#: ../../library/ssl.rst:2411 msgid "" "Now the SSL channel is established and the certificate verified, you can " "proceed to talk with the server::" msgstr "" -#: ../../library/ssl.rst:2392 +#: ../../library/ssl.rst:2414 msgid "" ">>> conn.sendall(b\"HEAD / HTTP/1.0\\r\\nHost: linuxfr.org\\r\\n\\r\\n\")\n" ">>> pprint.pprint(conn.recv(1024).split(b\"\\r\\n\"))\n" @@ -2913,11 +2940,11 @@ msgid "" " b'']" msgstr "" -#: ../../library/ssl.rst:2416 +#: ../../library/ssl.rst:2438 msgid "Server-side operation" msgstr "" -#: ../../library/ssl.rst:2418 +#: ../../library/ssl.rst:2440 msgid "" "For server operation, typically you'll need to have a server certificate, " "and private key, each in a file. You'll first create a context holding the " @@ -2926,7 +2953,7 @@ msgid "" "start waiting for clients to connect::" msgstr "" -#: ../../library/ssl.rst:2424 +#: ../../library/ssl.rst:2446 msgid "" "import socket, ssl\n" "\n" @@ -2938,14 +2965,14 @@ msgid "" "bindsocket.listen(5)" msgstr "" -#: ../../library/ssl.rst:2433 +#: ../../library/ssl.rst:2455 msgid "" "When a client connects, you'll call :meth:`accept` on the socket to get the " "new socket from the other end, and use the context's :meth:`SSLContext." "wrap_socket` method to create a server-side SSL socket for the connection::" msgstr "" -#: ../../library/ssl.rst:2437 +#: ../../library/ssl.rst:2459 msgid "" "while True:\n" " newsocket, fromaddr = bindsocket.accept()\n" @@ -2957,13 +2984,13 @@ msgid "" " connstream.close()" msgstr "" -#: ../../library/ssl.rst:2446 +#: ../../library/ssl.rst:2468 msgid "" "Then you'll read data from the ``connstream`` and do something with it till " "you are finished with the client (or the client is finished with you)::" msgstr "" -#: ../../library/ssl.rst:2449 +#: ../../library/ssl.rst:2471 msgid "" "def deal_with_client(connstream):\n" " data = connstream.recv(1024)\n" @@ -2977,7 +3004,7 @@ msgid "" " # finished with client" msgstr "" -#: ../../library/ssl.rst:2460 +#: ../../library/ssl.rst:2482 msgid "" "And go back to listening for new client connections (of course, a real " "server would probably handle each client connection in a separate thread, or " @@ -2985,18 +3012,18 @@ msgid "" "event loop)." msgstr "" -#: ../../library/ssl.rst:2468 +#: ../../library/ssl.rst:2490 msgid "Notes on non-blocking sockets" msgstr "" -#: ../../library/ssl.rst:2470 +#: ../../library/ssl.rst:2492 msgid "" "SSL sockets behave slightly different than regular sockets in non-blocking " "mode. When working with non-blocking sockets, there are thus several things " "you need to be aware of:" msgstr "" -#: ../../library/ssl.rst:2474 +#: ../../library/ssl.rst:2496 msgid "" "Most :class:`SSLSocket` methods will raise either :exc:`SSLWantWriteError` " "or :exc:`SSLWantReadError` instead of :exc:`BlockingIOError` if an I/O " @@ -3008,13 +3035,13 @@ msgid "" "require a prior *write* to the underlying socket." msgstr "" -#: ../../library/ssl.rst:2486 +#: ../../library/ssl.rst:2508 msgid "" "In earlier Python versions, the :meth:`!SSLSocket.send` method returned zero " "instead of raising :exc:`SSLWantWriteError` or :exc:`SSLWantReadError`." msgstr "" -#: ../../library/ssl.rst:2490 +#: ../../library/ssl.rst:2512 msgid "" "Calling :func:`~select.select` tells you that the OS-level socket can be " "read from (or written to), but it does not imply that there is sufficient " @@ -3024,7 +3051,7 @@ msgid "" "`~select.select`." msgstr "" -#: ../../library/ssl.rst:2497 +#: ../../library/ssl.rst:2519 msgid "" "Conversely, since the SSL layer has its own framing, a SSL socket may still " "have data available for reading without :func:`~select.select` being aware " @@ -3033,13 +3060,13 @@ msgid "" "call if still necessary." msgstr "" -#: ../../library/ssl.rst:2503 +#: ../../library/ssl.rst:2525 msgid "" "(of course, similar provisions apply when using other primitives such as :" "func:`~select.poll`, or those in the :mod:`selectors` module)" msgstr "" -#: ../../library/ssl.rst:2506 +#: ../../library/ssl.rst:2528 msgid "" "The SSL handshake itself will be non-blocking: the :meth:`SSLSocket." "do_handshake` method has to be retried until it returns successfully. Here " @@ -3047,7 +3074,7 @@ msgid "" "readiness::" msgstr "" -#: ../../library/ssl.rst:2511 +#: ../../library/ssl.rst:2533 msgid "" "while True:\n" " try:\n" @@ -3059,7 +3086,7 @@ msgid "" " select.select([], [sock], [])" msgstr "" -#: ../../library/ssl.rst:2522 +#: ../../library/ssl.rst:2544 msgid "" "The :mod:`asyncio` module supports :ref:`non-blocking SSL sockets ` and provides a higher level :ref:`Streams API `. " "This means that for example :meth:`~SSLSocket.read` will raise an :exc:" "`SSLWantReadError` if it needs more data than the incoming BIO has available." msgstr "" -#: ../../library/ssl.rst:2625 +#: ../../library/ssl.rst:2647 msgid "" ":class:`SSLObject` instances must be created with :meth:`~SSLContext." "wrap_bio`. In earlier versions, it was possible to create instances " "directly. This was never documented or officially supported." msgstr "" -#: ../../library/ssl.rst:2631 +#: ../../library/ssl.rst:2653 msgid "" "An SSLObject communicates with the outside world using memory buffers. The " "class :class:`MemoryBIO` provides a memory buffer that can be used for this " "purpose. It wraps an OpenSSL memory BIO (Basic IO) object:" msgstr "" -#: ../../library/ssl.rst:2637 +#: ../../library/ssl.rst:2659 msgid "" "A memory buffer that can be used to pass data between Python and an SSL " "protocol instance." msgstr "" -#: ../../library/ssl.rst:2642 +#: ../../library/ssl.rst:2664 msgid "Return the number of bytes currently in the memory buffer." msgstr "" -#: ../../library/ssl.rst:2646 +#: ../../library/ssl.rst:2668 msgid "" "A boolean indicating whether the memory BIO is current at the end-of-file " "position." msgstr "" -#: ../../library/ssl.rst:2651 +#: ../../library/ssl.rst:2673 msgid "" "Read up to *n* bytes from the memory buffer. If *n* is not specified or " "negative, all bytes are returned." msgstr "" -#: ../../library/ssl.rst:2656 +#: ../../library/ssl.rst:2678 msgid "" "Write the bytes from *buf* to the memory BIO. The *buf* argument must be an " "object supporting the buffer protocol." msgstr "" -#: ../../library/ssl.rst:2659 +#: ../../library/ssl.rst:2681 msgid "" "The return value is the number of bytes written, which is always equal to " "the length of *buf*." msgstr "" -#: ../../library/ssl.rst:2664 +#: ../../library/ssl.rst:2686 msgid "" "Write an EOF marker to the memory BIO. After this method has been called, it " "is illegal to call :meth:`~MemoryBIO.write`. The attribute :attr:`eof` will " "become true after all data currently in the buffer has been read." msgstr "" -#: ../../library/ssl.rst:2670 +#: ../../library/ssl.rst:2692 msgid "SSL session" msgstr "" -#: ../../library/ssl.rst:2676 +#: ../../library/ssl.rst:2698 msgid "Session object used by :attr:`~SSLSocket.session`." msgstr "" -#: ../../library/ssl.rst:2688 +#: ../../library/ssl.rst:2710 msgid "Security considerations" msgstr "" -#: ../../library/ssl.rst:2691 +#: ../../library/ssl.rst:2713 msgid "Best defaults" msgstr "" -#: ../../library/ssl.rst:2693 +#: ../../library/ssl.rst:2715 msgid "" "For **client use**, if you don't have any special requirements for your " "security policy, it is highly recommended that you use the :func:" @@ -3351,13 +3378,13 @@ msgid "" "settings." msgstr "" -#: ../../library/ssl.rst:2700 +#: ../../library/ssl.rst:2722 msgid "" "For example, here is how you would use the :class:`smtplib.SMTP` class to " "create a trusted, secure connection to a SMTP server::" msgstr "" -#: ../../library/ssl.rst:2703 +#: ../../library/ssl.rst:2725 msgid "" ">>> import ssl, smtplib\n" ">>> smtp = smtplib.SMTP(\"mail.python.org\", port=587)\n" @@ -3366,13 +3393,13 @@ msgid "" "(220, b'2.0.0 Ready to start TLS')" msgstr "" -#: ../../library/ssl.rst:2709 +#: ../../library/ssl.rst:2731 msgid "" "If a client certificate is needed for the connection, it can be added with :" "meth:`SSLContext.load_cert_chain`." msgstr "" -#: ../../library/ssl.rst:2712 +#: ../../library/ssl.rst:2734 msgid "" "By contrast, if you create the SSL context by calling the :class:" "`SSLContext` constructor yourself, it will not have certificate validation " @@ -3380,15 +3407,15 @@ msgid "" "paragraphs below to achieve a good security level." msgstr "" -#: ../../library/ssl.rst:2718 +#: ../../library/ssl.rst:2740 msgid "Manual settings" msgstr "" -#: ../../library/ssl.rst:2721 +#: ../../library/ssl.rst:2743 msgid "Verifying certificates" msgstr "" -#: ../../library/ssl.rst:2723 +#: ../../library/ssl.rst:2745 msgid "" "When calling the :class:`SSLContext` constructor directly, :const:" "`CERT_NONE` is the default. Since it does not authenticate the other peer, " @@ -3403,13 +3430,13 @@ msgid "" "enabled." msgstr "" -#: ../../library/ssl.rst:2735 +#: ../../library/ssl.rst:2757 msgid "" "Hostname matchings is now performed by OpenSSL. Python no longer uses :func:" "`!match_hostname`." msgstr "" -#: ../../library/ssl.rst:2739 +#: ../../library/ssl.rst:2761 msgid "" "In server mode, if you want to authenticate your clients using the SSL layer " "(rather than using a higher-level authentication mechanism), you'll also " @@ -3417,11 +3444,11 @@ msgid "" "certificate." msgstr "" -#: ../../library/ssl.rst:2745 +#: ../../library/ssl.rst:2767 msgid "Protocol versions" msgstr "" -#: ../../library/ssl.rst:2747 +#: ../../library/ssl.rst:2769 msgid "" "SSL versions 2 and 3 are considered insecure and are therefore dangerous to " "use. If you want maximum compatibility between clients and servers, it is " @@ -3430,14 +3457,14 @@ msgid "" "by default." msgstr "" -#: ../../library/ssl.rst:2755 +#: ../../library/ssl.rst:2777 msgid "" ">>> client_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n" ">>> client_context.minimum_version = ssl.TLSVersion.TLSv1_2\n" ">>> client_context.maximum_version = ssl.TLSVersion.TLSv1_3" msgstr "" -#: ../../library/ssl.rst:2760 +#: ../../library/ssl.rst:2782 msgid "" "The SSL client context created above will only allow TLSv1.2 and TLSv1.3 (if " "supported by your system) connections to a server. :const:" @@ -3445,11 +3472,11 @@ msgid "" "default. You have to load certificates into the context." msgstr "" -#: ../../library/ssl.rst:2767 +#: ../../library/ssl.rst:2789 msgid "Cipher selection" msgstr "" -#: ../../library/ssl.rst:2769 +#: ../../library/ssl.rst:2791 msgid "" "If you have advanced security requirements, fine-tuning of the ciphers " "enabled when negotiating a SSL session is possible through the :meth:" @@ -3462,11 +3489,11 @@ msgid "" "command on your system." msgstr "" -#: ../../library/ssl.rst:2780 +#: ../../library/ssl.rst:2802 msgid "Multi-processing" msgstr "" -#: ../../library/ssl.rst:2782 +#: ../../library/ssl.rst:2804 msgid "" "If using this module as part of a multi-processed application (using, for " "example the :mod:`multiprocessing` or :mod:`concurrent.futures` modules), be " @@ -3477,17 +3504,17 @@ msgid "" "sufficient." msgstr "" -#: ../../library/ssl.rst:2794 +#: ../../library/ssl.rst:2816 msgid "TLS 1.3" msgstr "" -#: ../../library/ssl.rst:2798 +#: ../../library/ssl.rst:2820 msgid "" "The TLS 1.3 protocol behaves slightly differently than previous version of " "TLS/SSL. Some new TLS 1.3 features are not yet available." msgstr "" -#: ../../library/ssl.rst:2801 +#: ../../library/ssl.rst:2823 msgid "" "TLS 1.3 uses a disjunct set of cipher suites. All AES-GCM and ChaCha20 " "cipher suites are enabled by default. The method :meth:`SSLContext." @@ -3495,14 +3522,14 @@ msgid "" "`SSLContext.get_ciphers` returns them." msgstr "" -#: ../../library/ssl.rst:2805 +#: ../../library/ssl.rst:2827 msgid "" "Session tickets are no longer sent as part of the initial handshake and are " "handled differently. :attr:`SSLSocket.session` and :class:`SSLSession` are " "not compatible with TLS 1.3." msgstr "" -#: ../../library/ssl.rst:2808 +#: ../../library/ssl.rst:2830 msgid "" "Client-side certificates are also no longer verified during the initial " "handshake. A server can request a certificate at any time. Clients process " @@ -3510,103 +3537,103 @@ msgid "" "server." msgstr "" -#: ../../library/ssl.rst:2812 +#: ../../library/ssl.rst:2834 msgid "" "TLS 1.3 features like early data, deferred TLS client cert request, " "signature algorithm configuration, and rekeying are not supported yet." msgstr "" -#: ../../library/ssl.rst:2818 +#: ../../library/ssl.rst:2840 msgid "Class :class:`socket.socket`" msgstr "" -#: ../../library/ssl.rst:2819 +#: ../../library/ssl.rst:2841 msgid "Documentation of underlying :mod:`socket` class" msgstr "" -#: ../../library/ssl.rst:2821 +#: ../../library/ssl.rst:2843 msgid "" "`SSL/TLS Strong Encryption: An Introduction `_" msgstr "" -#: ../../library/ssl.rst:2822 +#: ../../library/ssl.rst:2844 msgid "Intro from the Apache HTTP Server documentation" msgstr "" -#: ../../library/ssl.rst:2824 +#: ../../library/ssl.rst:2846 msgid "" ":rfc:`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: " "Certificate-Based Key Management <1422>`" msgstr "" -#: ../../library/ssl.rst:2825 +#: ../../library/ssl.rst:2847 msgid "Steve Kent" msgstr "" -#: ../../library/ssl.rst:2827 +#: ../../library/ssl.rst:2849 msgid ":rfc:`RFC 4086: Randomness Requirements for Security <4086>`" msgstr "" -#: ../../library/ssl.rst:2828 +#: ../../library/ssl.rst:2850 msgid "Donald E. Eastlake, Jeffrey I. Schiller, Steve Crocker" msgstr "" -#: ../../library/ssl.rst:2830 +#: ../../library/ssl.rst:2852 msgid "" ":rfc:`RFC 5280: Internet X.509 Public Key Infrastructure Certificate and " "Certificate Revocation List (CRL) Profile <5280>`" msgstr "" -#: ../../library/ssl.rst:2831 +#: ../../library/ssl.rst:2853 msgid "David Cooper et al." msgstr "" -#: ../../library/ssl.rst:2833 +#: ../../library/ssl.rst:2855 msgid "" ":rfc:`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 " "<5246>`" msgstr "" -#: ../../library/ssl.rst:2834 +#: ../../library/ssl.rst:2856 msgid "Tim Dierks and Eric Rescorla." msgstr "" -#: ../../library/ssl.rst:2836 +#: ../../library/ssl.rst:2858 msgid ":rfc:`RFC 6066: Transport Layer Security (TLS) Extensions <6066>`" msgstr "" -#: ../../library/ssl.rst:2837 +#: ../../library/ssl.rst:2859 msgid "Donald E. Eastlake" msgstr "" -#: ../../library/ssl.rst:2839 +#: ../../library/ssl.rst:2861 msgid "" "`IANA TLS: Transport Layer Security (TLS) Parameters `_" msgstr "" -#: ../../library/ssl.rst:2840 +#: ../../library/ssl.rst:2862 msgid "IANA" msgstr "" -#: ../../library/ssl.rst:2842 +#: ../../library/ssl.rst:2864 msgid "" ":rfc:`RFC 7525: Recommendations for Secure Use of Transport Layer Security " "(TLS) and Datagram Transport Layer Security (DTLS) <7525>`" msgstr "" -#: ../../library/ssl.rst:2843 +#: ../../library/ssl.rst:2865 msgid "IETF" msgstr "" -#: ../../library/ssl.rst:2845 +#: ../../library/ssl.rst:2867 msgid "" "`Mozilla's Server Side TLS recommendations `_" msgstr "" -#: ../../library/ssl.rst:2846 +#: ../../library/ssl.rst:2868 msgid "Mozilla" msgstr "" @@ -3634,10 +3661,10 @@ msgstr "" msgid "Secure Sockets Layer" msgstr "" -#: ../../library/ssl.rst:2157 +#: ../../library/ssl.rst:2179 msgid "certificates" msgstr "" -#: ../../library/ssl.rst:2159 +#: ../../library/ssl.rst:2181 msgid "X509 certificate" msgstr "" diff --git a/library/tempfile.po b/library/tempfile.po index ee83299c..d39e408c 100644 --- a/library/tempfile.po +++ b/library/tempfile.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-28 03:11+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+0000\n" "PO-Revision-Date: 2026-05-08 17:18+0000\n" "Last-Translator: Swen Bachmann, 2026\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" @@ -109,7 +109,7 @@ msgid "" msgstr "" #: ../../library/tempfile.rst:68 ../../library/tempfile.rst:137 -#: ../../library/tempfile.rst:266 +#: ../../library/tempfile.rst:275 msgid "" "Raises an :ref:`auditing event ` ``tempfile.mkstemp`` with " "argument ``fullpath``." @@ -302,21 +302,34 @@ msgid "" "based on other logic." msgstr "" -#: ../../library/tempfile.rst:210 ../../library/tempfile.rst:292 +#: ../../library/tempfile.rst:212 +msgid "" +"Cleanup is not robust against the tree being modified while it is removed. " +"Files outside of the tree may have their permissions and file flags reset." +msgstr "" + +#: ../../library/tempfile.rst:215 +msgid "" +"On systems where :data:`shutil.rmtree.avoids_symlink_attacks` is false, " +"manipulating symbolic links during cleanup may cause files outside of the " +"tree to be removed." +msgstr "" + +#: ../../library/tempfile.rst:219 ../../library/tempfile.rst:301 msgid "" "Raises an :ref:`auditing event ` ``tempfile.mkdtemp`` with " "argument ``fullpath``." msgstr "" -#: ../../library/tempfile.rst:214 +#: ../../library/tempfile.rst:223 msgid "Added *ignore_cleanup_errors* parameter." msgstr "" -#: ../../library/tempfile.rst:217 +#: ../../library/tempfile.rst:226 msgid "Added the *delete* parameter." msgstr "" -#: ../../library/tempfile.rst:223 +#: ../../library/tempfile.rst:232 msgid "" "Creates a temporary file in the most secure manner possible. There are no " "race conditions in the file's creation, assuming that the platform properly " @@ -326,20 +339,20 @@ msgid "" "executable by no one." msgstr "" -#: ../../library/tempfile.rst:230 +#: ../../library/tempfile.rst:239 msgid "" "The file descriptor is :ref:`not inherited by child processes " "`." msgstr "" -#: ../../library/tempfile.rst:232 +#: ../../library/tempfile.rst:241 msgid "" "Unlike :func:`TemporaryFile`, the user of :func:`mkstemp` is responsible for " "closing the file descriptor (for example, using :func:`os.close`) and " "deleting the temporary file (for example, using :func:`os.remove`)." msgstr "" -#: ../../library/tempfile.rst:236 +#: ../../library/tempfile.rst:245 msgid "" "If *suffix* is not ``None``, the file name will end with that suffix, " "otherwise there will be no suffix. :func:`mkstemp` does not put a dot " @@ -347,14 +360,14 @@ msgid "" "beginning of *suffix*." msgstr "" -#: ../../library/tempfile.rst:241 +#: ../../library/tempfile.rst:250 msgid "" "If *prefix* is not ``None``, the file name will begin with that prefix; " "otherwise, a default prefix is used. The default is the return value of :" "func:`gettempprefix` or :func:`gettempprefixb`, as appropriate." msgstr "" -#: ../../library/tempfile.rst:245 +#: ../../library/tempfile.rst:254 msgid "" "If *dir* is not ``None``, the file will be created in that directory; " "otherwise, a default directory is used. The default directory is chosen " @@ -365,7 +378,7 @@ msgid "" "commands via ``os.popen()``." msgstr "" -#: ../../library/tempfile.rst:253 +#: ../../library/tempfile.rst:262 msgid "" "If any of *suffix*, *prefix*, and *dir* are not ``None``, they must be the " "same type. If they are bytes, the returned name will be bytes instead of " @@ -373,20 +386,20 @@ msgid "" "behavior, pass ``suffix=b''``." msgstr "" -#: ../../library/tempfile.rst:259 +#: ../../library/tempfile.rst:268 msgid "" "If *text* is specified and true, the file is opened in text mode. Otherwise, " "(the default) the file is opened in binary mode." msgstr "" -#: ../../library/tempfile.rst:262 +#: ../../library/tempfile.rst:271 msgid "" ":func:`mkstemp` returns a tuple containing an OS-level handle to an open " "file (as would be returned by :func:`os.open`) and the absolute pathname of " "that file, in that order." msgstr "" -#: ../../library/tempfile.rst:268 ../../library/tempfile.rst:294 +#: ../../library/tempfile.rst:277 ../../library/tempfile.rst:303 msgid "" "*suffix*, *prefix*, and *dir* may now be supplied in bytes in order to " "obtain a bytes return value. Prior to this, only str was allowed. *suffix* " @@ -394,111 +407,111 @@ msgid "" "default value to be used." msgstr "" -#: ../../library/tempfile.rst:274 ../../library/tempfile.rst:300 +#: ../../library/tempfile.rst:283 ../../library/tempfile.rst:309 msgid "The *dir* parameter now accepts a :term:`path-like object`." msgstr "" -#: ../../library/tempfile.rst:280 +#: ../../library/tempfile.rst:289 msgid "" "Creates a temporary directory in the most secure manner possible. There are " "no race conditions in the directory's creation. The directory is readable, " "writable, and searchable only by the creating user ID." msgstr "" -#: ../../library/tempfile.rst:284 +#: ../../library/tempfile.rst:293 msgid "" "The user of :func:`mkdtemp` is responsible for deleting the temporary " "directory and its contents when done with it." msgstr "" -#: ../../library/tempfile.rst:287 +#: ../../library/tempfile.rst:296 msgid "" "The *prefix*, *suffix*, and *dir* arguments are the same as for :func:" "`mkstemp`." msgstr "" -#: ../../library/tempfile.rst:290 +#: ../../library/tempfile.rst:299 msgid ":func:`mkdtemp` returns the absolute pathname of the new directory." msgstr "" -#: ../../library/tempfile.rst:303 +#: ../../library/tempfile.rst:312 msgid "" ":func:`mkdtemp` now always returns an absolute path, even if *dir* is " "relative." msgstr "" -#: ../../library/tempfile.rst:309 +#: ../../library/tempfile.rst:318 msgid "" "Return the name of the directory used for temporary files. This defines the " "default value for the *dir* argument to all functions in this module." msgstr "" -#: ../../library/tempfile.rst:313 +#: ../../library/tempfile.rst:322 msgid "" "Python searches a standard list of directories to find one which the calling " "user can create files in. The list is:" msgstr "" -#: ../../library/tempfile.rst:316 +#: ../../library/tempfile.rst:325 msgid "The directory named by the :envvar:`TMPDIR` environment variable." msgstr "" -#: ../../library/tempfile.rst:318 +#: ../../library/tempfile.rst:327 msgid "The directory named by the :envvar:`TEMP` environment variable." msgstr "" -#: ../../library/tempfile.rst:320 +#: ../../library/tempfile.rst:329 msgid "The directory named by the :envvar:`TMP` environment variable." msgstr "" -#: ../../library/tempfile.rst:322 +#: ../../library/tempfile.rst:331 msgid "A platform-specific location:" msgstr "" -#: ../../library/tempfile.rst:324 +#: ../../library/tempfile.rst:333 msgid "" "On Windows, the directories :file:`%USERPROFILE%\\\\AppData\\\\Local\\" "\\Temp`, :file:`%SYSTEMROOT%\\\\Temp`, :file:`C:\\\\TEMP`, :file:`C:\\" "\\TMP`, :file:`\\\\TEMP`, and :file:`\\\\TMP`, in that order." msgstr "" -#: ../../library/tempfile.rst:330 +#: ../../library/tempfile.rst:339 msgid "" "On all other platforms, the directories :file:`/tmp`, :file:`/var/tmp`, and :" "file:`/usr/tmp`, in that order." msgstr "" -#: ../../library/tempfile.rst:333 +#: ../../library/tempfile.rst:342 msgid "As a last resort, the current working directory." msgstr "" -#: ../../library/tempfile.rst:335 +#: ../../library/tempfile.rst:344 msgid "" "The result of this search is cached, see the description of :data:`tempdir` " "below." msgstr "" -#: ../../library/tempfile.rst:340 +#: ../../library/tempfile.rst:349 msgid "" "Always returns a str. Previously it would return any :data:`tempdir` value " "regardless of type so long as it was not ``None``." msgstr "" -#: ../../library/tempfile.rst:345 +#: ../../library/tempfile.rst:354 msgid "Same as :func:`gettempdir` but the return value is in bytes." msgstr "" -#: ../../library/tempfile.rst:351 +#: ../../library/tempfile.rst:360 msgid "" "Return the filename prefix used to create temporary files. This does not " "contain the directory component." msgstr "" -#: ../../library/tempfile.rst:356 +#: ../../library/tempfile.rst:365 msgid "Same as :func:`gettempprefix` but the return value is in bytes." msgstr "" -#: ../../library/tempfile.rst:360 +#: ../../library/tempfile.rst:369 msgid "" "The module uses a global variable to store the name of the directory used " "for temporary files returned by :func:`gettempdir`. It can be set directly " @@ -508,21 +521,21 @@ msgid "" "unsuspecting code by changing global API behavior." msgstr "" -#: ../../library/tempfile.rst:369 +#: ../../library/tempfile.rst:378 msgid "" "When set to a value other than ``None``, this variable defines the default " "value for the *dir* argument to the functions defined in this module, " "including its type, bytes or str. It cannot be a :term:`path-like object`." msgstr "" -#: ../../library/tempfile.rst:374 +#: ../../library/tempfile.rst:383 msgid "" "If ``tempdir`` is ``None`` (the default) at any call to any of the above " "functions except :func:`gettempprefix` it is initialized following the " "algorithm described in :func:`gettempdir`." msgstr "" -#: ../../library/tempfile.rst:380 +#: ../../library/tempfile.rst:389 msgid "" "Beware that if you set ``tempdir`` to a bytes value, there is a nasty side " "effect: The global default return type of :func:`mkstemp` and :func:" @@ -532,16 +545,16 @@ msgid "" "compatibility with the historical implementation." msgstr "" -#: ../../library/tempfile.rst:391 +#: ../../library/tempfile.rst:400 msgid "Examples" msgstr "Beispiele" -#: ../../library/tempfile.rst:393 +#: ../../library/tempfile.rst:402 msgid "" "Here are some examples of typical usage of the :mod:`!tempfile` module::" msgstr "" -#: ../../library/tempfile.rst:395 +#: ../../library/tempfile.rst:404 msgid "" ">>> import tempfile\n" "\n" @@ -584,11 +597,11 @@ msgid "" "# directory and contents have been removed" msgstr "" -#: ../../library/tempfile.rst:438 +#: ../../library/tempfile.rst:447 msgid "Deprecated functions and variables" msgstr "" -#: ../../library/tempfile.rst:440 +#: ../../library/tempfile.rst:449 msgid "" "A historical way to create temporary files was to first generate a file name " "with the :func:`mktemp` function and then create a file using this name. " @@ -599,11 +612,11 @@ msgid "" "used by :func:`mkstemp` and the other functions described above." msgstr "" -#: ../../library/tempfile.rst:451 +#: ../../library/tempfile.rst:460 msgid "Use :func:`mkstemp` instead." msgstr "" -#: ../../library/tempfile.rst:454 +#: ../../library/tempfile.rst:463 msgid "" "Return an absolute pathname of a file that did not exist at the time the " "call is made. The *prefix*, *suffix*, and *dir* arguments are similar to " @@ -611,7 +624,7 @@ msgid "" "``prefix=None`` are not supported." msgstr "" -#: ../../library/tempfile.rst:461 +#: ../../library/tempfile.rst:470 msgid "" "Use of this function may introduce a security hole in your program. By the " "time you get around to doing anything with the file name it returns, someone " @@ -620,7 +633,7 @@ msgid "" "parameter::" msgstr "" -#: ../../library/tempfile.rst:467 +#: ../../library/tempfile.rst:476 msgid "" ">>> f = NamedTemporaryFile(delete=False)\n" ">>> f.name\n" diff --git a/library/turtle.po b/library/turtle.po index 4846d54f..fda5e9f0 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-28 03:11+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+0000\n" "PO-Revision-Date: 2026-09-25 22:09+0200\n" "Last-Translator: Transifex\n" "Language-Team: German (https://github.com/python/python-docs-de)\n" @@ -38,7 +38,11 @@ msgstr "" "Turtle kann komplizierte Formen zeichnen, indem es Programme verwendet, die " "einfache Bewegungen wiederholen." -#: ../../library/turtle.rst:34 +#: ../../library/turtle.rst:31 +msgid "A yellow starburst of thin spikes with a red outline, drawn by turtle." +msgstr "" + +#: ../../library/turtle.rst:35 msgid "" "Imagine a robotic turtle starting at (0, 0) in the x-y plane. After an " "``import turtle``, give it the command ``turtle.forward(15)``, and it moves " @@ -52,10 +56,11 @@ msgstr "" "schaut, und zeichnet dabei eine Linie. Gib ihr den Befehl ``turtle." "right(25)``, und sie dreht sich auf der Stelle um 25 Grad im Uhrzeigersinn." -#: ../../library/turtle.rst:40 +#: ../../library/turtle.rst:41 +#, fuzzy msgid "" "Turtle graphics is an implementation of `the drawing tools introduced in " -"Logo `_ in 1967. It was " +"Logo `__ in 1967. It was " "created as an educational tool, and its instant, visible feedback makes it " "an effective way for learners to encounter programming concepts. It is also " "a convenient way to produce simple graphical output without bringing in " @@ -68,17 +73,17 @@ msgstr "" "Berührung kommen. Außerdem ist sie eine bequeme Möglichkeit, einfache " "grafische Ausgaben zu erzeugen, ohne externe Bibliotheken einzubinden." -#: ../../library/turtle.rst:46 +#: ../../library/turtle.rst:47 msgid "This document includes four main sections:" msgstr "Dieses Dokument umfasst vier Hauptabschnitte:" -#: ../../library/turtle.rst:48 +#: ../../library/turtle.rst:49 msgid ":ref:`turtle-tutorial` teaches the basics of turtle drawing." msgstr "" ":ref:`turtle-tutorial` vermittelt die Grundlagen des Zeichnens mit der " "Turtle." -#: ../../library/turtle.rst:49 +#: ../../library/turtle.rst:50 msgid "" ":ref:`turtle-reference` describes the functions, methods and classes this " "module defines." @@ -86,13 +91,14 @@ msgstr "" ":ref:`turtle-reference` beschreibt die Funktionen, Methoden und Klassen, die " "dieses Modul definiert." -#: ../../library/turtle.rst:51 -msgid ":ref:`turtle-howtos` details how to handle specific tasks." +#: ../../library/turtle.rst:52 +#, fuzzy +msgid ":ref:`turtle-howtos` detail how to handle specific tasks." msgstr "" ":ref:`turtle-howtos` beschreibt im Detail, wie bestimmte Aufgaben zu lösen " "sind." -#: ../../library/turtle.rst:52 +#: ../../library/turtle.rst:53 msgid "" ":ref:`turtle-explanation` provides background on the object-oriented " "interface." @@ -100,7 +106,7 @@ msgstr "" ":ref:`turtle-explanation` liefert Hintergrundinformationen zur " "objektorientierten Schnittstelle." -#: ../../library/turtle.rst:57 +#: ../../library/turtle.rst:58 msgid "" "Turtle graphics requires the :mod:`tkinter` :term:`optional module`. The " "python.org installers for Windows and macOS include it, but some Linux " @@ -117,11 +123,11 @@ msgstr "" "(also dessen, der dir Python bereitgestellt hat). Prüfe das vorab, wenn du " "Turtle-Grafik mit Lernenden einsetzen willst." -#: ../../library/turtle.rst:70 +#: ../../library/turtle.rst:71 msgid "Tutorial" msgstr "Tutorial" -#: ../../library/turtle.rst:72 +#: ../../library/turtle.rst:73 msgid "" "New users should start here. In this tutorial we'll explore some of the " "basics of turtle drawing." @@ -129,19 +135,19 @@ msgstr "" "Neue Benutzer sollten hier beginnen. In diesem Tutorial erkunden wir einige " "der Grundlagen des Turtle-Zeichnens." -#: ../../library/turtle.rst:77 +#: ../../library/turtle.rst:78 msgid "Starting a turtle environment" msgstr "Eine Turtle-Umgebung starten" -#: ../../library/turtle.rst:79 +#: ../../library/turtle.rst:80 msgid "In a Python shell, import all the objects of the ``turtle`` module::" msgstr "Importiere in einer Python-Shell alle Objekte des Moduls ``turtle``::" -#: ../../library/turtle.rst:81 +#: ../../library/turtle.rst:82 msgid "from turtle import *" msgstr "from turtle import *" -#: ../../library/turtle.rst:83 +#: ../../library/turtle.rst:84 msgid "" "If you run into a ``No module named '_tkinter'`` error, you'll have to " "install the :mod:`Tk interface package ` on your system." @@ -149,38 +155,54 @@ msgstr "" "Falls du auf einen Fehler ``No module named '_tkinter'`` stößt, musst du " "das :mod:`Tk-Interface-Paket ` auf deinem System installieren." -#: ../../library/turtle.rst:88 +#: ../../library/turtle.rst:87 +msgid "" +"Nothing appears yet. To open the turtle window, make the turtle visible::" +msgstr "" + +#: ../../library/turtle.rst:89 +#, fuzzy +msgid "showturtle()" +msgstr ">>> turtle.showturtle()" + +#: ../../library/turtle.rst:91 +msgid "" +"A new window opens, with the turtle in the middle, shown as an arrow heading " +"East." +msgstr "" + +#: ../../library/turtle.rst:96 msgid "Basic drawing" msgstr "Einfaches Zeichnen" -#: ../../library/turtle.rst:90 +#: ../../library/turtle.rst:98 msgid "Send the turtle forward 100 steps::" msgstr "Schicke die Turtle 100 Schritte vorwärts::" -#: ../../library/turtle.rst:92 +#: ../../library/turtle.rst:100 msgid "forward(100)" msgstr "forward(100)" -#: ../../library/turtle.rst:94 +#: ../../library/turtle.rst:102 +#, fuzzy msgid "" -"You should see (most likely, in a new window on your display) a line drawn " -"by the turtle, heading East. Change the direction of the turtle, so that it " -"turns 120 degrees left (anti-clockwise)::" +"You should see a line drawn by the turtle, heading East. Change the " +"direction of the turtle, so that it turns 120 degrees left (anti-clockwise)::" msgstr "" "Du solltest (höchstwahrscheinlich in einem neuen Fenster auf deinem " "Bildschirm) eine von der Turtle gezeichnete Linie sehen, die nach Osten " "zeigt. Ändere die Richtung der Turtle, sodass sie sich um 120 Grad nach " "links dreht (gegen den Uhrzeigersinn)::" -#: ../../library/turtle.rst:98 +#: ../../library/turtle.rst:106 msgid "left(120)" msgstr "left(120)" -#: ../../library/turtle.rst:100 +#: ../../library/turtle.rst:108 msgid "Let's continue by drawing a triangle::" msgstr "Lass uns fortfahren, indem wir ein Dreieck zeichnen::" -#: ../../library/turtle.rst:102 +#: ../../library/turtle.rst:110 msgid "" "forward(100)\n" "left(120)\n" @@ -190,7 +212,7 @@ msgstr "" "left(120)\n" "forward(100)" -#: ../../library/turtle.rst:106 +#: ../../library/turtle.rst:114 msgid "" "Notice how the turtle, represented by an arrow, points in different " "directions as you steer it." @@ -198,22 +220,22 @@ msgstr "" "Beachte, wie die Turtle, dargestellt durch einen Pfeil, in unterschiedliche " "Richtungen zeigt, während du sie steuerst." -#: ../../library/turtle.rst:109 +#: ../../library/turtle.rst:117 +#, fuzzy msgid "" "Experiment with those commands, and also with ``backward()`` and " -"``right()``. Many commands also have terser aliases, such as ``fd()`` for :" +"``right()``. Many commands also have shorter aliases, such as ``fd()`` for :" "func:`forward`." msgstr "" "Experimentiere mit diesen Befehlen und auch mit ``backward()`` und " "``right()``. Viele Befehle haben außerdem knappere Aliasnamen, etwa ``fd()`` " "für :func:`forward`." -#: ../../library/turtle.rst:115 ../../library/turtle.rst:352 -#: ../../library/turtle.rst:1052 +#: ../../library/turtle.rst:123 ../../library/turtle.rst:810 msgid "Pen control" msgstr "Stiftsteuerung" -#: ../../library/turtle.rst:117 +#: ../../library/turtle.rst:125 msgid "" "Try changing the color - for example, ``color('blue')`` - and width of the " "line - for example, ``width(3)`` - and then drawing again." @@ -221,7 +243,7 @@ msgstr "" "Versuche, die Farbe zu ändern – zum Beispiel ``color('blue')`` – sowie die " "Breite der Linie – zum Beispiel ``width(3)`` – und zeichne dann erneut." -#: ../../library/turtle.rst:120 +#: ../../library/turtle.rst:128 msgid "" "You can also move the turtle around without drawing, by lifting up the pen: " "``up()`` before moving. To start drawing again, use ``down()``." @@ -230,11 +252,11 @@ msgstr "" "anhebst: ``up()`` vor dem Bewegen. Um wieder mit dem Zeichnen zu beginnen, " "verwende ``down()``." -#: ../../library/turtle.rst:125 +#: ../../library/turtle.rst:133 msgid "The turtle's position" msgstr "Die Position der Turtle" -#: ../../library/turtle.rst:127 +#: ../../library/turtle.rst:135 msgid "" "Send your turtle back to its starting-point (useful if it has disappeared " "off-screen)::" @@ -242,11 +264,11 @@ msgstr "" "Schicke deine Turtle zurück zu ihrem Startpunkt (nützlich, falls sie " "außerhalb des Bildschirms verschwunden ist)::" -#: ../../library/turtle.rst:130 +#: ../../library/turtle.rst:138 msgid "home()" msgstr "home()" -#: ../../library/turtle.rst:132 +#: ../../library/turtle.rst:140 msgid "" "The home position is at the center of the turtle's screen. If you ever need " "to know them, get the turtle's x-y coordinates with::" @@ -254,15 +276,15 @@ msgstr "" "Die Home-Position befindet sich in der Mitte des Turtle-Bildschirms. Falls " "du sie jemals wissen musst, erhältst du die x-y-Koordinaten der Turtle mit::" -#: ../../library/turtle.rst:135 +#: ../../library/turtle.rst:143 msgid "pos()" msgstr "pos()" -#: ../../library/turtle.rst:137 +#: ../../library/turtle.rst:145 msgid "Home is at ``(0, 0)``." msgstr "Home liegt bei ``(0, 0)``." -#: ../../library/turtle.rst:139 +#: ../../library/turtle.rst:147 msgid "" "And after a while, it will probably help to clear the window so we can start " "anew::" @@ -270,20 +292,20 @@ msgstr "" "Und nach einer Weile wird es wahrscheinlich helfen, das Fenster zu leeren, " "damit wir von vorne beginnen können::" -#: ../../library/turtle.rst:142 +#: ../../library/turtle.rst:150 msgid "clearscreen()" msgstr "clearscreen()" -#: ../../library/turtle.rst:146 +#: ../../library/turtle.rst:154 msgid "Making algorithmic patterns" msgstr "Algorithmische Muster erstellen" -#: ../../library/turtle.rst:148 +#: ../../library/turtle.rst:156 msgid "Using loops, it's possible to build up geometric patterns::" msgstr "" "Mithilfe von Schleifen ist es möglich, geometrische Muster aufzubauen::" -#: ../../library/turtle.rst:150 +#: ../../library/turtle.rst:158 msgid "" "for steps in range(100):\n" " for c in ('blue', 'red', 'green'):\n" @@ -297,11 +319,11 @@ msgstr "" " forward(steps)\n" " right(30)" -#: ../../library/turtle.rst:157 +#: ../../library/turtle.rst:165 msgid "\\ - which of course, are limited only by the imagination!" msgstr "\\ - die natürlich nur durch die Fantasie begrenzt werden!" -#: ../../library/turtle.rst:159 +#: ../../library/turtle.rst:167 msgid "" "Let's draw the star shape at the top of this page. We want red lines, filled " "in with yellow::" @@ -309,7 +331,7 @@ msgstr "" "Lass uns die Sternform am Anfang dieser Seite zeichnen. Wir wollen rote " "Linien, gefüllt mit Gelb::" -#: ../../library/turtle.rst:162 +#: ../../library/turtle.rst:170 msgid "" "color('red')\n" "fillcolor('yellow')" @@ -317,7 +339,7 @@ msgstr "" "color('red')\n" "fillcolor('yellow')" -#: ../../library/turtle.rst:165 +#: ../../library/turtle.rst:173 msgid "" "Just as ``up()`` and ``down()`` determine whether lines will be drawn, " "filling can be turned on and off::" @@ -325,15 +347,15 @@ msgstr "" "Genau wie ``up()`` und ``down()`` bestimmen, ob Linien gezeichnet werden, " "kann das Füllen ein- und ausgeschaltet werden::" -#: ../../library/turtle.rst:168 +#: ../../library/turtle.rst:176 msgid "begin_fill()" msgstr "begin_fill()" -#: ../../library/turtle.rst:170 +#: ../../library/turtle.rst:178 msgid "Next we'll create a loop::" msgstr "Als Nächstes erstellen wir eine Schleife::" -#: ../../library/turtle.rst:172 +#: ../../library/turtle.rst:180 msgid "" "start = pos()\n" "\n" @@ -351,7 +373,7 @@ msgstr "" " if distance(start) < 1:\n" " break" -#: ../../library/turtle.rst:180 +#: ../../library/turtle.rst:188 msgid "" "``distance(start) < 1`` is a good way to know when the turtle is back at its " "start position." @@ -359,15 +381,15 @@ msgstr "" "``distance(start) < 1`` ist eine gute Möglichkeit zu erkennen, wann die " "Turtle wieder an ihrer Startposition ist." -#: ../../library/turtle.rst:183 +#: ../../library/turtle.rst:191 msgid "Finally, complete the filling::" msgstr "Schließlich vervollständige das Füllen::" -#: ../../library/turtle.rst:185 +#: ../../library/turtle.rst:193 msgid "end_fill()" msgstr "end_fill()" -#: ../../library/turtle.rst:187 +#: ../../library/turtle.rst:195 msgid "" "(Note that filling only actually takes place when you give the " "``end_fill()`` command.)" @@ -375,875 +397,179 @@ msgstr "" "(Beachte, dass das Füllen erst tatsächlich stattfindet, wenn du den Befehl " "``end_fill()`` gibst.)" -#: ../../library/turtle.rst:196 -msgid "How-to guides" -msgstr "How-to-Anleitungen" - -#: ../../library/turtle.rst:198 -msgid "This section covers some typical turtle use-cases and approaches." -msgstr "" -"Dieser Abschnitt behandelt einige typische Anwendungsfälle und " -"Vorgehensweisen für Turtle." +#: ../../library/turtle.rst:203 +msgid "Reference" +msgstr "Referenz" -#: ../../library/turtle.rst:202 -msgid "Automatically begin and end filling" -msgstr "Füllen automatisch beginnen und beenden" +#: ../../library/turtle.rst:209 +#, fuzzy +msgid "Turtle methods and functions" +msgstr "Turtle-Methoden" -#: ../../library/turtle.rst:204 +#: ../../library/turtle.rst:211 msgid "" -"Starting with Python 3.14, you can use the :func:`fill` :term:`context " -"manager` instead of :func:`begin_fill` and :func:`end_fill` to automatically " -"begin and end fill. Here is an example::" -msgstr "" -"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::" +"Most of the examples in this section refer to a Turtle instance called " +"``turtle``." +msgstr "Turtle-Instanz namens ``turtle``." -#: ../../library/turtle.rst:208 -msgid "" -"with fill():\n" -" for i in range(4):\n" -" forward(100)\n" -" right(90)\n" -"\n" -"forward(200)" -msgstr "" -"with fill():\n" -" for i in range(4):\n" -" forward(100)\n" -" right(90)\n" -"\n" -"forward(200)" +#: ../../library/turtle.rst:217 +msgid "Move and draw" +msgstr "Bewegen und zeichnen" -#: ../../library/turtle.rst:215 -msgid "The code above is equivalent to::" -msgstr "Der obige Code ist äquivalent zu::" +#: ../../library/turtle.rst:0 +msgid "Parameters" +msgstr "Parameter" -#: ../../library/turtle.rst:217 +#: ../../library/turtle.rst:222 ../../library/turtle.rst:244 +#: ../../library/turtle.rst:268 ../../library/turtle.rst:294 +#: ../../library/turtle.rst:392 ../../library/turtle.rst:414 +#: ../../library/turtle.rst:437 ../../library/turtle.rst:488 +#: ../../library/turtle.rst:763 ../../library/turtle.rst:1297 +#: ../../library/turtle.rst:1744 ../../library/turtle.rst:1745 +#: ../../library/turtle.rst:1746 ../../library/turtle.rst:1747 +msgid "a number" +msgstr "eine Zahl" + +#: ../../library/turtle.rst:224 msgid "" -"begin_fill()\n" -"for i in range(4):\n" -" forward(100)\n" -" right(90)\n" -"end_fill()\n" -"\n" -"forward(200)" +"Move the turtle forward by the specified *distance*, in the direction the " +"turtle is headed." msgstr "" -"begin_fill()\n" -"for i in range(4):\n" -" forward(100)\n" -" right(90)\n" -"end_fill()\n" -"\n" -"forward(200)" +"Bewege die Turtle um die angegebene *distance* vorwärts, in die Richtung, in " +"die die Turtle blickt." #: ../../library/turtle.rst:227 -msgid "Use the ``turtle`` module namespace" -msgstr "Das ``turtle``-Modul im eigenen Namensraum verwenden" - -#: ../../library/turtle.rst:229 msgid "" -"Using ``from turtle import *`` is convenient - but be warned that it imports " -"a rather large collection of objects, and if you're doing anything but " -"turtle graphics you run the risk of a name conflict (this becomes even more " -"an issue if you're using turtle graphics in a script where other modules " -"might be imported)." +">>> turtle.position()\n" +"(0.00,0.00)\n" +">>> turtle.forward(25)\n" +">>> turtle.position()\n" +"(25.00,0.00)\n" +">>> turtle.forward(-75)\n" +">>> turtle.position()\n" +"(-50.00,0.00)" msgstr "" -"Es ist praktisch, ``from turtle import *`` zu verwenden – aber sei gewarnt, " -"dass dadurch eine recht große Sammlung von Objekten importiert wird, und " -"wenn du irgendetwas außer Turtle-Grafik machst, läufst du Gefahr eines " -"Namenskonflikts (dies wird noch problematischer, wenn du Turtle-Grafik in " -"einem Skript verwendest, in dem auch andere Module importiert werden " -"könnten)." +">>> turtle.position()\n" +"(0.00,0.00)\n" +">>> turtle.forward(25)\n" +">>> turtle.position()\n" +"(25.00,0.00)\n" +">>> turtle.forward(-75)\n" +">>> turtle.position()\n" +"(-50.00,0.00)" -#: ../../library/turtle.rst:235 +#: ../../library/turtle.rst:246 +#, fuzzy msgid "" -"The solution is to use ``import turtle`` - ``fd()`` becomes ``turtle.fd()``, " -"``width()`` becomes ``turtle.width()`` and so on. (If typing \"turtle\" over " -"and over again becomes tedious, use for example ``import turtle as t`` " -"instead.)" +"Move the turtle backward by *distance*, opposite to the direction the turtle " +"is headed. The turtle's heading does not change." msgstr "" -"Die Lösung besteht darin, ``import turtle`` zu verwenden - ``fd()`` wird zu " -"``turtle.fd()``, ``width()`` wird zu ``turtle.width()`` und so weiter. " -"(Falls es lästig wird, immer wieder \"turtle\" zu tippen, verwende " -"stattdessen zum Beispiel ``import turtle as t``.)" - -#: ../../library/turtle.rst:242 -msgid "Use turtle graphics in a script" -msgstr "Turtle-Grafik in einem Skript verwenden" +"Bewege die Turtle um *distance* rückwärts, entgegen der Richtung, in die die " +"Turtle blickt. Die Ausrichtung der Turtle wird dabei nicht verändert." -#: ../../library/turtle.rst:244 +#: ../../library/turtle.rst:255 msgid "" -"It's recommended to use the ``turtle`` module namespace as described " -"immediately above, for example::" +">>> turtle.position()\n" +"(0.00,0.00)\n" +">>> turtle.backward(30)\n" +">>> turtle.position()\n" +"(-30.00,0.00)" msgstr "" -"Es wird empfohlen, den Namensraum des Moduls ``turtle`` wie unmittelbar oben " -"beschrieben zu verwenden, zum Beispiel::" +">>> turtle.position()\n" +"(0.00,0.00)\n" +">>> turtle.backward(30)\n" +">>> turtle.position()\n" +"(-30.00,0.00)" -#: ../../library/turtle.rst:247 +#: ../../library/turtle.rst:270 +#, fuzzy msgid "" -"import turtle as t\n" -"from random import random\n" -"\n" -"for i in range(100):\n" -" steps = int(random() * 100)\n" -" angle = int(random() * 360)\n" -" t.right(angle)\n" -" t.fd(steps)" +"Turn the turtle right by the specified *angle*. The angle is measured in " +"degrees by default; the unit can be changed with :func:`degrees` or :func:" +"`radians`. How the heading is measured depends on the turtle mode, see :func:" +"`mode`." msgstr "" -"import turtle as t\n" -"from random import random\n" -"\n" -"for i in range(100):\n" -" steps = int(random() * 100)\n" -" angle = int(random() * 360)\n" -" t.right(angle)\n" -" t.fd(steps)" +"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`." -#: ../../library/turtle.rst:256 +#: ../../library/turtle.rst:281 msgid "" -"Another step is also required though - as soon as the script ends, Python " -"will also close the turtle's window. Add::" +">>> turtle.heading()\n" +"22.0\n" +">>> turtle.right(45)\n" +">>> turtle.heading()\n" +"337.0" msgstr "" -"Ein weiterer Schritt ist jedoch ebenfalls erforderlich - sobald das Skript " -"endet, wird Python auch das Fenster der Turtle schließen. Füge Folgendes " -"hinzu::" - -#: ../../library/turtle.rst:259 -msgid "t.mainloop()" -msgstr "t.mainloop()" +">>> turtle.heading()\n" +"22.0\n" +">>> turtle.right(45)\n" +">>> turtle.heading()\n" +"337.0" -#: ../../library/turtle.rst:261 +#: ../../library/turtle.rst:296 +#, fuzzy msgid "" -"to the end of the script. The script will now wait to be dismissed and will " -"not exit until it is terminated, for example by closing the turtle graphics " -"window." +"Turn the turtle left by the specified *angle*. The angle is measured in " +"degrees by default; the unit can be changed with :func:`degrees` or :func:" +"`radians`. How the heading is measured depends on the turtle mode, see :func:" +"`mode`." msgstr "" -"am Ende des Skripts. Das Skript wartet nun darauf, geschlossen zu werden, " -"und beendet sich nicht, bis es beendet wird, zum Beispiel durch Schließen " -"des Turtle-Grafikfensters." - -#: ../../library/turtle.rst:267 -msgid "Use object-oriented turtle graphics" -msgstr "Objektorientierte Turtle-Grafik verwenden" +"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`." -#: ../../library/turtle.rst:269 +#: ../../library/turtle.rst:307 msgid "" -":ref:`Explanation of the object-oriented interface `" +">>> turtle.heading()\n" +"22.0\n" +">>> turtle.left(45)\n" +">>> turtle.heading()\n" +"67.0" msgstr "" -":ref:`Erklärung der objektorientierten Schnittstelle `" +">>> turtle.heading()\n" +"22.0\n" +">>> turtle.left(45)\n" +">>> turtle.heading()\n" +"67.0" -#: ../../library/turtle.rst:271 -msgid "" -"Other than for very basic introductory purposes, or for trying things out as " -"quickly as possible, it's more usual and much more powerful to use the " -"object-oriented approach to turtle graphics. For example, this allows " -"multiple turtles on screen at once." -msgstr "" -"Abgesehen von sehr grundlegenden Einführungszwecken oder um Dinge so schnell " -"wie möglich auszuprobieren, ist es üblicher und deutlich leistungsfähiger, " -"den objektorientierten Ansatz für Turtle-Grafik zu verwenden. Dies " -"ermöglicht zum Beispiel mehrere Turtles gleichzeitig auf dem Bildschirm." +#: ../../library/turtle.rst:321 +msgid "a number or a pair/vector of numbers" +msgstr "eine Zahl oder ein Paar/Vektor von Zahlen" -#: ../../library/turtle.rst:276 +#: ../../library/turtle.rst:322 ../../library/turtle.rst:354 +#: ../../library/turtle.rst:355 ../../library/turtle.rst:489 +#: ../../library/turtle.rst:1972 ../../library/turtle.rst:1973 +#: ../../library/turtle.rst:1974 ../../library/turtle.rst:2020 +msgid "a number or ``None``" +msgstr "eine Zahl oder ``None``" + +#: ../../library/turtle.rst:324 +#, fuzzy msgid "" -"In this approach, the various turtle commands are methods of objects (mostly " -"of ``Turtle`` objects). You *can* use the object-oriented approach in the " -"shell, but it would be more typical in a Python script." +"Move the turtle to an absolute position. If *y* is ``None``, *x* must be a " +"pair of coordinates or a :class:`Vec2D`, for example as returned by :func:" +"`pos`. If the pen is down, a line is drawn. The turtle's heading does not " +"change." msgstr "" -"Bei diesem Ansatz sind die verschiedenen Turtle-Befehle Methoden von " -"Objekten (meist von ``Turtle``-Objekten). Du *kannst* den objektorientierten " -"Ansatz auch in der Shell verwenden, typischer wäre es aber in einem Python-" -"Skript." - -#: ../../library/turtle.rst:280 -msgid "The example above then becomes::" -msgstr "Das obige Beispiel wird dann zu::" +"Wenn *y* ``None`` ist, muss *x* ein Koordinatenpaar oder ein :class:`Vec2D` " +"sein (z. B. wie von :func:`pos` zurückgegeben)." -#: ../../library/turtle.rst:282 -msgid "" -"from turtle import Turtle\n" -"from random import random\n" -"\n" -"t = Turtle()\n" -"for i in range(100):\n" -" steps = int(random() * 100)\n" -" angle = int(random() * 360)\n" -" t.right(angle)\n" -" t.fd(steps)\n" -"\n" -"t.screen.mainloop()" -msgstr "" -"from turtle import Turtle\n" -"from random import random\n" -"\n" -"t = Turtle()\n" -"for i in range(100):\n" -" steps = int(random() * 100)\n" -" angle = int(random() * 360)\n" -" t.right(angle)\n" -" t.fd(steps)\n" -"\n" -"t.screen.mainloop()" - -#: ../../library/turtle.rst:294 -msgid "" -"Note the last line. ``t.screen`` is an instance of the :class:`Screen` that " -"a Turtle instance exists on; it's created automatically along with the " -"turtle." -msgstr "" -"Beachte die letzte Zeile. ``t.screen`` ist eine Instanz der :class:`Screen`, " -"auf der eine Turtle-Instanz existiert; sie wird automatisch zusammen mit der " -"Turtle erstellt." - -#: ../../library/turtle.rst:298 -msgid "The turtle's screen can be customised, for example::" -msgstr "Der Turtle-Scree kann angepasst werden, zum Beispiel::" - -#: ../../library/turtle.rst:300 -msgid "" -"t.screen.title('Object-oriented turtle demo')\n" -"t.screen.bgcolor(\"orange\")" -msgstr "" -"t.screen.title('Object-oriented turtle demo')\n" -"t.screen.bgcolor(\"orange\")" - -#: ../../library/turtle.rst:308 -msgid "Reference" -msgstr "Referenz" - -#: ../../library/turtle.rst:312 -msgid "" -"In the following documentation the argument list for functions is given. " -"Methods, of course, have the additional first argument *self* which is " -"omitted here." -msgstr "" -"In der folgenden Dokumentation wird die Argumentliste für Funktionen " -"angegeben. Methoden haben natürlich das zusätzliche erste Argument *self*, " -"das hier weggelassen wird." - -#: ../../library/turtle.rst:318 -msgid "Turtle methods" -msgstr "Turtle-Methoden" - -#: ../../library/turtle.rst:320 ../../library/turtle.rst:463 -msgid "Turtle motion" -msgstr "Turtle-Bewegung" - -#: ../../library/turtle.rst:321 -msgid "Move and draw" -msgstr "Bewegen und zeichnen" - -#: ../../library/turtle.rst:322 -msgid ":func:`forward` | :func:`fd`" -msgstr ":func:`forward` | :func:`fd`" - -#: ../../library/turtle.rst:323 -msgid ":func:`backward` | :func:`bk` | :func:`back`" -msgstr ":func:`backward` | :func:`bk` | :func:`back`" - -#: ../../library/turtle.rst:324 -msgid ":func:`right` | :func:`rt`" -msgstr ":func:`right` | :func:`rt`" - -#: ../../library/turtle.rst:325 -msgid ":func:`left` | :func:`lt`" -msgstr ":func:`left` | :func:`lt`" - -#: ../../library/turtle.rst:326 -msgid ":func:`goto` | :func:`setpos` | :func:`setposition`" -msgstr ":func:`goto` | :func:`setpos` | :func:`setposition`" - -#: ../../library/turtle.rst:327 -msgid ":func:`teleport`" -msgstr ":func:`teleport`" - -#: ../../library/turtle.rst:328 -msgid ":func:`setx`" -msgstr ":func:`setx`" - -#: ../../library/turtle.rst:329 -msgid ":func:`sety`" -msgstr ":func:`sety`" - -#: ../../library/turtle.rst:330 -msgid ":func:`setheading` | :func:`seth`" -msgstr ":func:`setheading` | :func:`seth`" - -#: ../../library/turtle.rst:331 -msgid ":func:`home`" -msgstr ":func:`home`" - -#: ../../library/turtle.rst:332 ../../library/turtle.rst:2880 -msgid ":func:`circle`" -msgstr ":func:`circle`" - -#: ../../library/turtle.rst:333 -msgid ":func:`dot`" -msgstr ":func:`dot`" - -#: ../../library/turtle.rst:334 ../../library/turtle.rst:2858 -msgid ":func:`stamp`" -msgstr ":func:`stamp`" - -#: ../../library/turtle.rst:335 -msgid ":func:`clearstamp`" -msgstr ":func:`clearstamp`" - -#: ../../library/turtle.rst:336 -msgid ":func:`clearstamps`" -msgstr ":func:`clearstamps`" - -#: ../../library/turtle.rst:337 -msgid ":func:`undo`" -msgstr ":func:`undo`" - -#: ../../library/turtle.rst:338 -msgid ":func:`speed`" -msgstr ":func:`speed`" - -#: ../../library/turtle.rst:340 ../../library/turtle.rst:901 -msgid "Tell Turtle's state" -msgstr "Zustand der Turtle abfragen" - -#: ../../library/turtle.rst:341 -msgid ":func:`position` | :func:`pos`" -msgstr ":func:`position` | :func:`pos`" - -#: ../../library/turtle.rst:342 -msgid ":func:`towards`" -msgstr ":func:`towards`" - -#: ../../library/turtle.rst:343 -msgid ":func:`xcor`" -msgstr ":func:`xcor`" - -#: ../../library/turtle.rst:344 -msgid ":func:`ycor`" -msgstr ":func:`ycor`" - -#: ../../library/turtle.rst:345 -msgid ":func:`heading`" -msgstr ":func:`heading`" - -#: ../../library/turtle.rst:346 -msgid ":func:`distance`" -msgstr ":func:`distance`" - -#: ../../library/turtle.rst:348 -msgid "Setting and measurement" -msgstr "Einstellung und Maß" - -#: ../../library/turtle.rst:349 -msgid ":func:`degrees`" -msgstr ":func:`degrees`" - -#: ../../library/turtle.rst:350 -msgid ":func:`radians`" -msgstr ":func:`radians`" - -#: ../../library/turtle.rst:353 ../../library/turtle.rst:1055 -msgid "Drawing state" -msgstr "Zeichenzustand" - -#: ../../library/turtle.rst:354 -msgid ":func:`pendown` | :func:`pd` | :func:`down`" -msgstr ":func:`pendown` | :func:`pd` | :func:`down`" - -#: ../../library/turtle.rst:355 -msgid ":func:`penup` | :func:`pu` | :func:`up`" -msgstr ":func:`penup` | :func:`pu` | :func:`up`" - -#: ../../library/turtle.rst:356 -msgid ":func:`pensize` | :func:`width`" -msgstr ":func:`pensize` | :func:`width`" - -#: ../../library/turtle.rst:357 -msgid ":func:`pen`" -msgstr ":func:`pen`" - -#: ../../library/turtle.rst:358 -msgid ":func:`isdown`" -msgstr ":func:`isdown`" - -#: ../../library/turtle.rst:360 ../../library/turtle.rst:1147 -msgid "Color control" -msgstr "Farbkontrolle" - -#: ../../library/turtle.rst:361 -msgid ":func:`color`" -msgstr ":func:`color`" - -#: ../../library/turtle.rst:362 -msgid ":func:`pencolor`" -msgstr ":func:`pencolor`" - -#: ../../library/turtle.rst:363 -msgid ":func:`fillcolor`" -msgstr ":func:`fillcolor`" - -#: ../../library/turtle.rst:365 ../../library/turtle.rst:1286 -msgid "Filling" -msgstr "Füllen" - -#: ../../library/turtle.rst:366 -msgid ":func:`filling`" -msgstr ":func:`filling`" - -#: ../../library/turtle.rst:367 -msgid ":func:`fill`" -msgstr ":func:`fill`" - -#: ../../library/turtle.rst:368 -msgid ":func:`begin_fill`" -msgstr ":func:`begin_fill`" - -#: ../../library/turtle.rst:369 -msgid ":func:`end_fill`" -msgstr ":func:`end_fill`" - -#: ../../library/turtle.rst:371 ../../library/turtle.rst:1356 -msgid "More drawing control" -msgstr "Mehr Zeichenkontrolle" - -#: ../../library/turtle.rst:372 -msgid ":func:`reset`" -msgstr ":func:`reset`" - -#: ../../library/turtle.rst:373 -msgid ":func:`clear`" -msgstr ":func:`clear`" - -#: ../../library/turtle.rst:374 -msgid ":func:`write`" -msgstr ":func:`write`" - -#: ../../library/turtle.rst:376 ../../library/turtle.rst:1405 -msgid "Turtle state" -msgstr "Turtle-Status" - -#: ../../library/turtle.rst:377 ../../library/turtle.rst:1408 -msgid "Visibility" -msgstr "Sichtbarkeit" - -#: ../../library/turtle.rst:378 -msgid ":func:`showturtle` | :func:`st`" -msgstr ":func:`showturtle` | :func:`st`" - -#: ../../library/turtle.rst:379 -msgid ":func:`hideturtle` | :func:`ht`" -msgstr ":func:`hideturtle` | :func:`ht`" - -#: ../../library/turtle.rst:380 -msgid ":func:`isvisible`" -msgstr ":func:`isvisible`" - -#: ../../library/turtle.rst:382 ../../library/turtle.rst:1450 -msgid "Appearance" -msgstr "Erscheinungsbild" - -#: ../../library/turtle.rst:383 -msgid ":func:`shape`" -msgstr ":func:`shape`" - -#: ../../library/turtle.rst:384 -msgid ":func:`resizemode`" -msgstr ":func:`resizemode`" - -#: ../../library/turtle.rst:385 -msgid ":func:`shapesize` | :func:`turtlesize`" -msgstr ":func:`shapesize` | :func:`turtlesize`" - -#: ../../library/turtle.rst:386 -msgid ":func:`shearfactor`" -msgstr ":func:`shearfactor`" - -#: ../../library/turtle.rst:387 -msgid ":func:`tiltangle`" -msgstr ":func:`tiltangle`" - -#: ../../library/turtle.rst:388 -msgid ":func:`tilt`" -msgstr ":func:`tilt`" - -#: ../../library/turtle.rst:389 -msgid ":func:`shapetransform`" -msgstr ":func:`shapetransform`" - -#: ../../library/turtle.rst:390 -msgid ":func:`get_shapepoly`" -msgstr ":func:`get_shapepoly`" - -#: ../../library/turtle.rst:392 ../../library/turtle.rst:1633 -msgid "Using events" -msgstr "Ereignisse verwenden" - -#: ../../library/turtle.rst:393 ../../library/turtle.rst:2852 -msgid ":func:`onclick`" -msgstr ":func:`onclick`" - -#: ../../library/turtle.rst:394 -msgid ":func:`onrelease`" -msgstr ":func:`onrelease`" - -#: ../../library/turtle.rst:395 ../../library/turtle.rst:2835 -msgid ":func:`ondrag`" -msgstr ":func:`ondrag`" - -#: ../../library/turtle.rst:397 ../../library/turtle.rst:1707 -msgid "Special Turtle methods" -msgstr "Spezielle Turtle-Methoden" - -#: ../../library/turtle.rst:398 -msgid ":func:`poly`" -msgstr ":func:`poly`" - -#: ../../library/turtle.rst:399 -msgid ":func:`begin_poly`" -msgstr ":func:`begin_poly`" - -#: ../../library/turtle.rst:400 -msgid ":func:`end_poly`" -msgstr ":func:`end_poly`" - -#: ../../library/turtle.rst:401 -msgid ":func:`get_poly`" -msgstr ":func:`get_poly`" - -#: ../../library/turtle.rst:402 ../../library/turtle.rst:2874 -msgid ":func:`clone`" -msgstr ":func:`clone`" - -#: ../../library/turtle.rst:403 -msgid ":func:`getturtle` | :func:`getpen`" -msgstr ":func:`getturtle` | :func:`getpen`" - -#: ../../library/turtle.rst:404 -msgid ":func:`getscreen`" -msgstr ":func:`getscreen`" - -#: ../../library/turtle.rst:405 -msgid ":func:`setundobuffer`" -msgstr ":func:`setundobuffer`" - -#: ../../library/turtle.rst:406 -msgid ":func:`undobufferentries`" -msgstr ":func:`undobufferentries`" - -#: ../../library/turtle.rst:410 -msgid "Methods of TurtleScreen/Screen" -msgstr "Methoden von TurtleScreen/Screen" - -#: ../../library/turtle.rst:412 ../../library/turtle.rst:1878 -msgid "Window control" -msgstr "Fenstersteuerung" - -#: ../../library/turtle.rst:413 -msgid ":func:`bgcolor`" -msgstr ":func:`bgcolor`" - -#: ../../library/turtle.rst:414 -msgid ":func:`bgpic`" -msgstr ":func:`bgpic`" - -#: ../../library/turtle.rst:415 -msgid ":func:`clearscreen`" -msgstr ":func:`clearscreen`" - -#: ../../library/turtle.rst:416 -msgid ":func:`resetscreen`" -msgstr ":func:`resetscreen`" - -#: ../../library/turtle.rst:417 -msgid ":func:`screensize`" -msgstr ":func:`screensize`" - -#: ../../library/turtle.rst:418 -msgid ":func:`setworldcoordinates`" -msgstr ":func:`setworldcoordinates`" - -#: ../../library/turtle.rst:420 ../../library/turtle.rst:2024 -msgid "Animation control" -msgstr "Animationskontrolle" - -#: ../../library/turtle.rst:421 -msgid ":func:`no_animation`" -msgstr ":func:`no_animation`" - -#: ../../library/turtle.rst:422 -msgid ":func:`delay`" -msgstr ":func:`delay`" - -#: ../../library/turtle.rst:423 -msgid ":func:`tracer`" -msgstr ":func:`tracer`" - -#: ../../library/turtle.rst:424 -msgid ":func:`update`" -msgstr ":func:`update`" - -#: ../../library/turtle.rst:426 ../../library/turtle.rst:2094 -msgid "Using screen events" -msgstr "Screen-Events verwenden" - -#: ../../library/turtle.rst:427 -msgid ":func:`listen`" -msgstr ":func:`listen`" - -#: ../../library/turtle.rst:428 -msgid ":func:`onkey` | :func:`onkeyrelease`" -msgstr ":func:`onkey` | :func:`onkeyrelease`" - -#: ../../library/turtle.rst:429 -msgid ":func:`onkeypress`" -msgstr ":func:`onkeypress`" - -#: ../../library/turtle.rst:430 -msgid ":func:`onclick` | :func:`onscreenclick`" -msgstr ":func:`onclick` | :func:`onscreenclick`" - -#: ../../library/turtle.rst:431 -msgid ":func:`ontimer`" -msgstr ":func:`ontimer`" - -#: ../../library/turtle.rst:432 -msgid ":func:`mainloop` | :func:`done`" -msgstr ":func:`mainloop` | :func:`done`" - -#: ../../library/turtle.rst:434 ../../library/turtle.rst:2239 -msgid "Settings and special methods" -msgstr "Einstellungen und spezielle Methoden" - -#: ../../library/turtle.rst:435 -msgid ":func:`mode`" -msgstr ":func:`mode`" - -#: ../../library/turtle.rst:436 -msgid ":func:`colormode`" -msgstr ":func:`colormode`" - -#: ../../library/turtle.rst:437 -msgid ":func:`getcanvas`" -msgstr ":func:`getcanvas`" - -#: ../../library/turtle.rst:438 -msgid ":func:`getshapes`" -msgstr ":func:`getshapes`" - -#: ../../library/turtle.rst:439 -msgid ":func:`register_shape` | :func:`addshape`" -msgstr ":func:`register_shape` | :func:`addshape`" - -#: ../../library/turtle.rst:440 -msgid ":func:`turtles`" -msgstr ":func:`turtles`" - -#: ../../library/turtle.rst:441 -msgid ":func:`window_height`" -msgstr ":func:`window_height`" - -#: ../../library/turtle.rst:442 -msgid ":func:`window_width`" -msgstr ":func:`window_width`" - -#: ../../library/turtle.rst:444 ../../library/turtle.rst:2203 -msgid "Input methods" -msgstr "Eingabemethoden" - -#: ../../library/turtle.rst:445 -msgid ":func:`textinput`" -msgstr ":func:`textinput`" - -#: ../../library/turtle.rst:446 -msgid ":func:`numinput`" -msgstr ":func:`numinput`" - -#: ../../library/turtle.rst:448 -msgid "Methods specific to Screen" -msgstr "Spezifische Methoden zum Screen" - -#: ../../library/turtle.rst:449 -msgid ":func:`bye`" -msgstr ":func:`bye`" - -#: ../../library/turtle.rst:450 -msgid ":func:`exitonclick`" -msgstr ":func:`exitonclick`" - -#: ../../library/turtle.rst:451 -msgid ":func:`save`" -msgstr ":func:`save`" - -#: ../../library/turtle.rst:452 -msgid ":func:`setup`" -msgstr ":func:`setup`" - -#: ../../library/turtle.rst:453 -msgid ":func:`title`" -msgstr ":func:`title`" - -#: ../../library/turtle.rst:457 -msgid "Methods of RawTurtle/Turtle and corresponding functions" -msgstr "Methoden von RawTurtle/Turtle und entsprechende Funktionen" - -#: ../../library/turtle.rst:459 -msgid "" -"Most of the examples in this section refer to a Turtle instance called " -"``turtle``." -msgstr "Turtle-Instanz namens ``turtle``." - -#: ../../library/turtle.rst:0 -msgid "Parameters" -msgstr "Parameter" - -#: ../../library/turtle.rst:468 ../../library/turtle.rst:514 -#: ../../library/turtle.rst:539 ../../library/turtle.rst:637 -#: ../../library/turtle.rst:660 ../../library/turtle.rst:683 -msgid "a number (integer or float)" -msgstr "eine Zahl (Ganzzahl oder Gleitkommazahl)" - -#: ../../library/turtle.rst:470 -msgid "" -"Move the turtle forward by the specified *distance*, in the direction the " -"turtle is headed." -msgstr "" -"Bewege die Turtle um die angegebene *distance* vorwärts, in die Richtung, in " -"die die Turtle blickt." - -#: ../../library/turtle.rst:473 -msgid "" -">>> turtle.position()\n" -"(0.00,0.00)\n" -">>> turtle.forward(25)\n" -">>> turtle.position()\n" -"(25.00,0.00)\n" -">>> turtle.forward(-75)\n" -">>> turtle.position()\n" -"(-50.00,0.00)" -msgstr "" -">>> turtle.position()\n" -"(0.00,0.00)\n" -">>> turtle.forward(25)\n" -">>> turtle.position()\n" -"(25.00,0.00)\n" -">>> turtle.forward(-75)\n" -">>> turtle.position()\n" -"(-50.00,0.00)" - -#: ../../library/turtle.rst:490 ../../library/turtle.rst:733 -#: ../../library/turtle.rst:1005 ../../library/turtle.rst:1549 -msgid "a number" -msgstr "eine Zahl" - -#: ../../library/turtle.rst:492 -msgid "" -"Move the turtle backward by *distance*, opposite to the direction the turtle " -"is headed. Do not change the turtle's heading." -msgstr "" -"Bewege die Turtle um *distance* rückwärts, entgegen der Richtung, in die die " -"Turtle blickt. Die Ausrichtung der Turtle wird dabei nicht verändert." - -#: ../../library/turtle.rst:501 -msgid "" -">>> turtle.position()\n" -"(0.00,0.00)\n" -">>> turtle.backward(30)\n" -">>> turtle.position()\n" -"(-30.00,0.00)" -msgstr "" -">>> turtle.position()\n" -"(0.00,0.00)\n" -">>> turtle.backward(30)\n" -">>> turtle.position()\n" -"(-30.00,0.00)" - -#: ../../library/turtle.rst:516 -msgid "" -"Turn turtle right by *angle* units. (Units are by default degrees, but can " -"be set via the :func:`degrees` and :func:`radians` functions.) Angle " -"orientation depends on the turtle mode, see :func:`mode`." -msgstr "" -"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`." - -#: ../../library/turtle.rst:526 -msgid "" -">>> turtle.heading()\n" -"22.0\n" -">>> turtle.right(45)\n" -">>> turtle.heading()\n" -"337.0" -msgstr "" -">>> turtle.heading()\n" -"22.0\n" -">>> turtle.right(45)\n" -">>> turtle.heading()\n" -"337.0" - -#: ../../library/turtle.rst:541 -msgid "" -"Turn turtle left by *angle* units. (Units are by default degrees, but can " -"be set via the :func:`degrees` and :func:`radians` functions.) Angle " -"orientation depends on the turtle mode, see :func:`mode`." -msgstr "" -"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`." - -#: ../../library/turtle.rst:551 -msgid "" -">>> turtle.heading()\n" -"22.0\n" -">>> turtle.left(45)\n" -">>> turtle.heading()\n" -"67.0" -msgstr "" -">>> turtle.heading()\n" -"22.0\n" -">>> turtle.left(45)\n" -">>> turtle.heading()\n" -"67.0" - -#: ../../library/turtle.rst:565 -msgid "a number or a pair/vector of numbers" -msgstr "eine Zahl oder ein Paar/Vektor von Zahlen" - -#: ../../library/turtle.rst:566 ../../library/turtle.rst:599 -#: ../../library/turtle.rst:600 -msgid "a number or ``None``" -msgstr "eine Zahl oder ``None``" - -#: ../../library/turtle.rst:568 -msgid "" -"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)." - -#: ../../library/turtle.rst:571 -msgid "" -"Move turtle to an absolute position. If the pen is down, draw line. Do not " -"change the turtle's orientation." -msgstr "" -"Bewege die Turtle zu einer absoluten Position. Wenn der Stift unten ist, " -"zeichne eine Linie. Die Ausrichtung der Turtle wird dabei nicht verändert." - -#: ../../library/turtle.rst:580 +#: ../../library/turtle.rst:335 +#, fuzzy msgid "" ">>> tp = turtle.pos()\n" ">>> tp\n" "(0.00,0.00)\n" -">>> turtle.setpos(60,30)\n" +">>> turtle.goto(60,30)\n" ">>> turtle.pos()\n" "(60.00,30.00)\n" -">>> turtle.setpos((20,80))\n" +">>> turtle.goto((20,80))\n" ">>> turtle.pos()\n" "(20.00,80.00)\n" -">>> turtle.setpos(tp)\n" +">>> turtle.goto(tp)\n" ">>> turtle.pos()\n" "(0.00,0.00)" msgstr "" @@ -1260,11 +586,11 @@ msgstr "" ">>> turtle.pos()\n" "(0.00,0.00)" -#: ../../library/turtle.rst:601 +#: ../../library/turtle.rst:356 msgid "a boolean" msgstr "Ein Boolean" -#: ../../library/turtle.rst:603 +#: ../../library/turtle.rst:358 msgid "" "Move turtle to an absolute position. Unlike goto(x, y), a line will not be " "drawn. The turtle's orientation does not change. If currently filling, the " @@ -1281,7 +607,7 @@ msgstr "" "wodurch die gedachte Linie, die während des Teleportierens zurückgelegt " "wird, wie bei goto(x, y) als Füllbarriere wirkt." -#: ../../library/turtle.rst:616 +#: ../../library/turtle.rst:371 msgid "" ">>> tp = turtle.pos()\n" ">>> tp\n" @@ -1309,14 +635,14 @@ msgstr "" ">>> turtle.pos()\n" "(20.00,30.00)" -#: ../../library/turtle.rst:639 -msgid "" -"Set the turtle's first coordinate to *x*, leave second coordinate unchanged." +#: ../../library/turtle.rst:394 +#, fuzzy +msgid "Set the turtle's x coordinate to *x*. The y coordinate is unchanged." msgstr "" "Setze die erste Koordinate der Turtle auf *x*, die zweite Koordinate bleibt " "unverändert." -#: ../../library/turtle.rst:648 +#: ../../library/turtle.rst:402 msgid "" ">>> turtle.position()\n" "(0.00,240.00)\n" @@ -1330,14 +656,14 @@ msgstr "" ">>> turtle.position()\n" "(10.00,240.00)" -#: ../../library/turtle.rst:662 -msgid "" -"Set the turtle's second coordinate to *y*, leave first coordinate unchanged." +#: ../../library/turtle.rst:416 +#, fuzzy +msgid "Set the turtle's y coordinate to *y*. The x coordinate is unchanged." msgstr "" "Setze die zweite Koordinate der Turtle auf *y*, die erste Koordinate bleibt " "unverändert." -#: ../../library/turtle.rst:670 +#: ../../library/turtle.rst:424 msgid "" ">>> turtle.position()\n" "(0.00,40.00)\n" @@ -1351,55 +677,56 @@ msgstr "" ">>> turtle.position()\n" "(0.00,-10.00)" -#: ../../library/turtle.rst:685 +#: ../../library/turtle.rst:439 +#, fuzzy msgid "" -"Set the orientation of the turtle to *to_angle*. Here are some common " -"directions in degrees:" +"Set the turtle's heading to *to_angle*. Here are some common directions in " +"degrees:" msgstr "" "Setze die Ausrichtung der Turtle auf *to_angle*. Hier sind einige gängige " "Richtungen in Grad:" -#: ../../library/turtle.rst:689 +#: ../../library/turtle.rst:443 msgid "standard mode" msgstr "Standardmodus" -#: ../../library/turtle.rst:689 +#: ../../library/turtle.rst:443 msgid "logo mode" msgstr "Logo-Modus" -#: ../../library/turtle.rst:691 +#: ../../library/turtle.rst:445 msgid "0 - east" msgstr "0 - Ost" -#: ../../library/turtle.rst:691 +#: ../../library/turtle.rst:445 msgid "0 - north" msgstr "0 - Nord" -#: ../../library/turtle.rst:692 +#: ../../library/turtle.rst:446 msgid "90 - north" msgstr "90 - Nord" -#: ../../library/turtle.rst:692 +#: ../../library/turtle.rst:446 msgid "90 - east" msgstr "90 - Ost" -#: ../../library/turtle.rst:693 +#: ../../library/turtle.rst:447 msgid "180 - west" msgstr "180 - West" -#: ../../library/turtle.rst:693 +#: ../../library/turtle.rst:447 msgid "180 - south" msgstr "180 - Süd" -#: ../../library/turtle.rst:694 +#: ../../library/turtle.rst:448 msgid "270 - south" msgstr "270 - Süd" -#: ../../library/turtle.rst:694 +#: ../../library/turtle.rst:448 msgid "270 - west" msgstr "270 - West" -#: ../../library/turtle.rst:697 +#: ../../library/turtle.rst:451 msgid "" ">>> turtle.setheading(90)\n" ">>> turtle.heading()\n" @@ -1409,16 +736,18 @@ msgstr "" ">>> turtle.heading()\n" "90.0" -#: ../../library/turtle.rst:707 +#: ../../library/turtle.rst:461 +#, fuzzy msgid "" -"Move turtle to the origin -- coordinates (0,0) -- and set its heading to its " -"start-orientation (which depends on the mode, see :func:`mode`)." +"Move the turtle to the origin, coordinates (0,0). The turtle's heading is " +"set to its start orientation, which depends on the turtle 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`)." -#: ../../library/turtle.rst:717 +#: ../../library/turtle.rst:472 msgid "" ">>> turtle.heading()\n" "90.0\n" @@ -1440,23 +769,19 @@ msgstr "" ">>> turtle.heading()\n" "0.0" -#: ../../library/turtle.rst:734 -msgid "a number (or ``None``)" -msgstr "eine Zahl (oder ``None``)" - -#: ../../library/turtle.rst:735 ../../library/turtle.rst:832 -msgid "an integer (or ``None``)" -msgstr "eine Ganzzahl (oder ``None``)" +#: ../../library/turtle.rst:490 ../../library/turtle.rst:1549 +msgid "an integer or ``None``" +msgstr "eine Ganzzahl oder ``None``" -#: ../../library/turtle.rst:737 +#: ../../library/turtle.rst:492 +#, fuzzy msgid "" -"Draw a circle with given *radius*. The center is *radius* units left of the " -"turtle; *extent* -- an angle -- determines which part of the circle is " -"drawn. If *extent* is not given, draw the entire circle. If *extent* is " -"not a full circle, one endpoint of the arc is the current pen position. " -"Draw the arc in counterclockwise direction if *radius* is positive, " -"otherwise in clockwise direction. Finally the direction of the turtle is " -"changed by the amount of *extent*." +"Draw a circle with the given *radius*. The center is *radius* units left of " +"the turtle; *extent*, an angle, determines which part of the circle is " +"drawn. If *extent* is not given, draw the entire circle. If *extent* is not " +"a full circle, one endpoint of the arc is the current pen position. Draw the " +"arc in counterclockwise direction if *radius* is positive, otherwise in " +"clockwise direction. Finally, the turtle's heading is changed by *extent*." msgstr "" "Zeichne einen Kreis mit dem angegebenen *radius*. Der Mittelpunkt liegt " "*radius* Einheiten links von der Turtle, *extent* – ein Winkel – bestimmt, " @@ -1467,18 +792,19 @@ msgstr "" "Abschließend wird die Richtung der Turtle um den Betrag von *extent* " "geändert." -#: ../../library/turtle.rst:745 +#: ../../library/turtle.rst:500 +#, fuzzy msgid "" "As the circle is approximated by an inscribed regular polygon, *steps* " -"determines the number of steps to use. If not given, it will be calculated " -"automatically. May be used to draw regular polygons." +"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." -#: ../../library/turtle.rst:749 +#: ../../library/turtle.rst:504 msgid "" ">>> turtle.home()\n" ">>> turtle.position()\n" @@ -1512,15 +838,15 @@ msgstr "" ">>> turtle.heading()\n" "180.0" -#: ../../library/turtle.rst:775 +#: ../../library/turtle.rst:530 msgid "an integer >= 1 (if given)" msgstr "eine Ganzzahl >= 1 (falls angegeben)" -#: ../../library/turtle.rst:776 +#: ../../library/turtle.rst:531 msgid "a colorstring or a numeric color tuple" msgstr "ein Farbstring oder ein numerisches Farb-Tupel" -#: ../../library/turtle.rst:778 +#: ../../library/turtle.rst:533 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." @@ -1529,7 +855,7 @@ msgstr "" "*color*. Wird *size* nicht angegeben, wird das Maximum aus ``pensize+4`` und " "``2*pensize`` verwendet." -#: ../../library/turtle.rst:782 +#: ../../library/turtle.rst:537 msgid "" ">>> turtle.home()\n" ">>> turtle.dot()\n" @@ -1547,7 +873,7 @@ msgstr "" ">>> turtle.heading()\n" "0.0" -#: ../../library/turtle.rst:796 +#: ../../library/turtle.rst:551 msgid "" "Stamp a copy of the turtle shape onto the canvas at the current turtle " "position. Return a stamp_id for that stamp, which can be used to delete it " @@ -1557,7 +883,7 @@ msgstr "" "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:800 +#: ../../library/turtle.rst:555 msgid "" ">>> turtle.color(\"blue\")\n" ">>> stamp_id = turtle.stamp()\n" @@ -1567,17 +893,17 @@ msgstr "" ">>> stamp_id = turtle.stamp()\n" ">>> turtle.fd(50)" -#: ../../library/turtle.rst:810 +#: ../../library/turtle.rst:565 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" -#: ../../library/turtle.rst:813 +#: ../../library/turtle.rst:568 msgid "Delete stamp with given *stampid*." msgstr "Lösche den Stempel mit der angegebenen *stampid*." -#: ../../library/turtle.rst:815 +#: ../../library/turtle.rst:570 msgid "" ">>> turtle.position()\n" "(150.00,-0.00)\n" @@ -1601,7 +927,11 @@ msgstr "" ">>> turtle.position()\n" "(200.00,-0.00)" -#: ../../library/turtle.rst:834 +#: ../../library/turtle.rst:587 +msgid "an integer (or ``None``)" +msgstr "eine Ganzzahl (oder ``None``)" + +#: ../../library/turtle.rst:589 msgid "" "Delete all or first/last *n* of turtle's stamps. If *n* is ``None``, delete " "all stamps, if *n* > 0 delete first *n* stamps, else if *n* < 0 delete last " @@ -1612,7 +942,7 @@ msgstr "" "ersten *n* Stempel gelöscht, andernfalls, wenn *n* < 0 ist, werden die " "letzten *n* Stempel gelöscht." -#: ../../library/turtle.rst:838 +#: ../../library/turtle.rst:593 msgid "" ">>> for i in range(8):\n" "... unused_stamp_id = turtle.stamp()\n" @@ -1628,7 +958,7 @@ msgstr "" ">>> turtle.clearstamps(-2)\n" ">>> turtle.clearstamps()" -#: ../../library/turtle.rst:851 +#: ../../library/turtle.rst:606 msgid "" "Undo (repeatedly) the last turtle action(s). Number of available undo " "actions is determined by the size of the undobuffer." @@ -1637,7 +967,7 @@ msgstr "" "der verfügbaren Rückgängig-Aktionen wird durch die Größe des Undo-Puffers " "bestimmt." -#: ../../library/turtle.rst:854 +#: ../../library/turtle.rst:609 msgid "" ">>> for i in range(4):\n" "... turtle.fd(50); turtle.lt(80)\n" @@ -1651,11 +981,11 @@ msgstr "" ">>> for i in range(8):\n" "... turtle.undo()" -#: ../../library/turtle.rst:866 +#: ../../library/turtle.rst:621 msgid "an integer in the range 0..10 or a speedstring (see below)" msgstr "eine Ganzzahl im Bereich 0..10 oder ein speedstring (siehe unten)" -#: ../../library/turtle.rst:868 +#: ../../library/turtle.rst:623 msgid "" "Set the turtle's speed to an integer value in the range 0..10. If no " "argument is given, return current speed." @@ -1664,7 +994,7 @@ msgstr "" "0..10. Wird kein Argument angegeben, wird die aktuelle Geschwindigkeit " "zurückgegeben." -#: ../../library/turtle.rst:871 +#: ../../library/turtle.rst:626 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:" @@ -1673,27 +1003,27 @@ msgstr "" "Geschwindigkeit auf 0 gesetzt. Speedstrings werden wie folgt auf Speedvalues " "abgebildet:" -#: ../../library/turtle.rst:874 +#: ../../library/turtle.rst:629 msgid "\"fastest\": 0" msgstr "\"fastest\": 0" -#: ../../library/turtle.rst:875 +#: ../../library/turtle.rst:630 msgid "\"fast\": 10" msgstr "\"fast\": 10" -#: ../../library/turtle.rst:876 +#: ../../library/turtle.rst:631 msgid "\"normal\": 6" msgstr "\"normal\": 6" -#: ../../library/turtle.rst:877 +#: ../../library/turtle.rst:632 msgid "\"slow\": 3" msgstr "\"slow\": 3" -#: ../../library/turtle.rst:878 +#: ../../library/turtle.rst:633 msgid "\"slowest\": 1" msgstr "\"slowest\": 1" -#: ../../library/turtle.rst:880 +#: ../../library/turtle.rst:635 msgid "" "Speeds from 1 to 10 enforce increasingly faster animation of line drawing " "and turtle turning." @@ -1701,7 +1031,7 @@ msgstr "" "Geschwindigkeiten von 1 bis 10 erzwingen eine zunehmend schnellere Animation " "beim Linienzeichnen und Drehen der Turtle." -#: ../../library/turtle.rst:883 +#: ../../library/turtle.rst:638 msgid "" "Attention: *speed* = 0 means that *no* animation takes place. forward/back " "makes turtle jump and likewise left/right make the turtle turn instantly." @@ -1710,7 +1040,7 @@ msgstr "" "back lässt die Turtle springen, und ebenso lassen left/right die Turtle " "sofort drehen." -#: ../../library/turtle.rst:887 +#: ../../library/turtle.rst:642 msgid "" ">>> turtle.speed()\n" "3\n" @@ -1730,14 +1060,18 @@ msgstr "" ">>> turtle.speed()\n" "9" -#: ../../library/turtle.rst:906 -msgid "" -"Return the turtle's current location (x,y) (as a :class:`Vec2D` vector)." +#: ../../library/turtle.rst:656 +msgid "Tell Turtle's state" +msgstr "Zustand der Turtle abfragen" + +#: ../../library/turtle.rst:661 +#, fuzzy +msgid "Return the turtle's current location (x,y) as a :class:`Vec2D` vector." msgstr "" "Gib die aktuelle Position der Turtle (x,y) (als :class:`Vec2D`-Vektor) " "zurück." -#: ../../library/turtle.rst:908 +#: ../../library/turtle.rst:663 msgid "" ">>> turtle.pos()\n" "(440.00,-0.00)" @@ -1745,27 +1079,29 @@ msgstr "" ">>> turtle.pos()\n" "(440.00,-0.00)" -#: ../../library/turtle.rst:917 ../../library/turtle.rst:980 +#: ../../library/turtle.rst:672 ../../library/turtle.rst:737 msgid "a number or a pair/vector of numbers or a turtle instance" msgstr "eine Zahl oder ein Paar/Vektor von Zahlen oder eine Turtle-Instanz" -#: ../../library/turtle.rst:918 ../../library/turtle.rst:981 +#: ../../library/turtle.rst:673 ../../library/turtle.rst:738 msgid "a number if *x* is a number, else ``None``" msgstr "eine Zahl, falls *x* eine Zahl ist, andernfalls ``None``" -#: ../../library/turtle.rst:920 +#: ../../library/turtle.rst:675 +#, fuzzy msgid "" -"Return the angle between the line from turtle position to position specified " -"by (x,y), the vector or the other turtle. This depends on the turtle's " -"start orientation which depends on the mode - \"standard\"/\"world\" or " -"\"logo\"." +"Return the angle of the line from the turtle's position to (x,y). If *y* is " +"``None``, *x* must be a pair of coordinates, a :class:`Vec2D`, for example " +"as returned by :func:`pos`, or another turtle. The angle is measured from " +"the turtle's start orientation, which depends on the turtle mode, see :func:" +"`mode`." 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\"." -#: ../../library/turtle.rst:924 +#: ../../library/turtle.rst:681 msgid "" ">>> turtle.goto(10, 10)\n" ">>> turtle.towards(0,0)\n" @@ -1775,11 +1111,11 @@ msgstr "" ">>> turtle.towards(0,0)\n" "225.0" -#: ../../library/turtle.rst:934 +#: ../../library/turtle.rst:691 msgid "Return the turtle's x coordinate." msgstr "Gib die x-Koordinate der Turtle zurück." -#: ../../library/turtle.rst:936 +#: ../../library/turtle.rst:693 msgid "" ">>> turtle.home()\n" ">>> turtle.left(50)\n" @@ -1797,11 +1133,11 @@ msgstr "" ">>> print(round(turtle.xcor(), 5))\n" "64.27876" -#: ../../library/turtle.rst:950 +#: ../../library/turtle.rst:707 msgid "Return the turtle's y coordinate." msgstr "Gib die y-Koordinate der Turtle zurück." -#: ../../library/turtle.rst:952 +#: ../../library/turtle.rst:709 msgid "" ">>> turtle.home()\n" ">>> turtle.left(60)\n" @@ -1819,15 +1155,16 @@ msgstr "" ">>> print(round(turtle.ycor(), 5))\n" "86.60254" -#: ../../library/turtle.rst:966 +#: ../../library/turtle.rst:723 +#, fuzzy msgid "" -"Return the turtle's current heading (value depends on the turtle mode, see :" -"func:`mode`)." +"Return the turtle's current heading. The 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`)." -#: ../../library/turtle.rst:969 +#: ../../library/turtle.rst:726 msgid "" ">>> turtle.home()\n" ">>> turtle.left(67)\n" @@ -1839,15 +1176,17 @@ msgstr "" ">>> turtle.heading()\n" "67.0" -#: ../../library/turtle.rst:983 +#: ../../library/turtle.rst:740 +#, fuzzy msgid "" -"Return the distance from the turtle to (x,y), the given vector, or the given " -"other turtle, in turtle step units." +"Return the distance from the turtle to (x,y) in turtle step units. If *y* is " +"``None``, *x* must be a pair of coordinates, a :class:`Vec2D`, for example " +"as returned by :func:`pos`, or another turtle." msgstr "" -"Gib die Entfernung von der Turtle zu (x,y), dem angegebenen Vektor oder der " -"angegebenen anderen Turtle in Turtle-Schrittweiten zurück." +"Wenn *y* ``None`` ist, muss *x* ein Koordinatenpaar oder ein :class:`Vec2D` " +"sein (z. B. wie von :func:`pos` zurückgegeben)." -#: ../../library/turtle.rst:986 +#: ../../library/turtle.rst:744 msgid "" ">>> turtle.home()\n" ">>> turtle.distance(30,40)\n" @@ -1869,19 +1208,20 @@ msgstr "" ">>> turtle.distance(joe)\n" "77.0" -#: ../../library/turtle.rst:1001 +#: ../../library/turtle.rst:759 msgid "Settings for measurement" msgstr "Einstellungen für Messungen" -#: ../../library/turtle.rst:1007 +#: ../../library/turtle.rst:765 +#, fuzzy msgid "" -"Set angle measurement units, i.e. set number of \"degrees\" for a full " -"circle. Default value is 360 degrees." +"Set the angle measurement units to degrees. The number of degrees in a full " +"circle is set to *fullcircle*, which defaults to 360." msgstr "" "Setze die Winkelmesseinheiten, d. h. setze die Anzahl der \"Grad\" für einen " "vollen Kreis. Der Standardwert ist 360 Grad." -#: ../../library/turtle.rst:1010 +#: ../../library/turtle.rst:768 msgid "" ">>> turtle.home()\n" ">>> turtle.left(90)\n" @@ -1911,14 +1251,15 @@ msgstr "" ">>> turtle.heading()\n" "90.0" -#: ../../library/turtle.rst:1030 +#: ../../library/turtle.rst:788 +#, fuzzy 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)``." -#: ../../library/turtle.rst:1033 +#: ../../library/turtle.rst:791 msgid "" ">>> turtle.home()\n" ">>> turtle.left(90)\n" @@ -1936,19 +1277,23 @@ msgstr "" ">>> turtle.heading()\n" "1.5707963267948966" -#: ../../library/turtle.rst:1061 +#: ../../library/turtle.rst:813 +msgid "Drawing state" +msgstr "Zeichenzustand" + +#: ../../library/turtle.rst:819 msgid "Pull the pen down -- drawing when moving." msgstr "Senke den Stift -- zeichnet beim Bewegen." -#: ../../library/turtle.rst:1068 +#: ../../library/turtle.rst:826 msgid "Pull the pen up -- no drawing when moving." msgstr "Hebe den Stift -- zeichnet nicht beim Bewegen." -#: ../../library/turtle.rst:1074 +#: ../../library/turtle.rst:832 msgid "a positive number" msgstr "eine positive Zahl" -#: ../../library/turtle.rst:1076 +#: ../../library/turtle.rst:834 msgid "" "Set the line thickness to *width* or return it. If resizemode is set to " "\"auto\" and turtleshape is a polygon, that polygon is drawn with the same " @@ -1959,7 +1304,7 @@ msgstr "" "mit derselben Liniendicke gezeichnet. Wird kein Argument angegeben, wird die " "aktuelle Stiftgröße zurückgegeben." -#: ../../library/turtle.rst:1080 +#: ../../library/turtle.rst:838 msgid "" ">>> turtle.pensize()\n" "1\n" @@ -1969,17 +1314,17 @@ msgstr "" "1\n" ">>> turtle.pensize(10) # from here on lines of width 10 are drawn" -#: ../../library/turtle.rst:1090 +#: ../../library/turtle.rst:848 msgid "a dictionary with some or all of the below listed keys" msgstr "ein Dictionary mit einigen oder allen der unten aufgeführten Schlüssel" -#: ../../library/turtle.rst:1091 +#: ../../library/turtle.rst:849 msgid "one or more keyword-arguments with the below listed keys as keywords" msgstr "" "ein oder mehrere Schlüsselwortargumente mit den unten aufgeführten " "Schlüsseln als Schlüsselwörter" -#: ../../library/turtle.rst:1093 +#: ../../library/turtle.rst:851 msgid "" "Return or set the pen's attributes in a \"pen-dictionary\" with the " "following key/value pairs:" @@ -1987,47 +1332,47 @@ msgstr "" "Gib die Attribute des Stifts in einem \"Stift-Dictionary\" zurück oder setze " "sie, mit den folgenden Schlüssel/Wert-Paaren:" -#: ../../library/turtle.rst:1096 +#: ../../library/turtle.rst:854 msgid "\"shown\": True/False" msgstr "\"shown\": True/False" -#: ../../library/turtle.rst:1097 +#: ../../library/turtle.rst:855 msgid "\"pendown\": True/False" msgstr "\"pendown\": True/False" -#: ../../library/turtle.rst:1098 +#: ../../library/turtle.rst:856 msgid "\"pencolor\": color-string or color-tuple" msgstr "\"pencolor\": Farbstring oder Farb-Tupel" -#: ../../library/turtle.rst:1099 +#: ../../library/turtle.rst:857 msgid "\"fillcolor\": color-string or color-tuple" msgstr "\"fillcolor\": Farbstring oder Farb-Tupel" -#: ../../library/turtle.rst:1100 +#: ../../library/turtle.rst:858 msgid "\"pensize\": positive number" msgstr "\"pensize\": positive Zahl" -#: ../../library/turtle.rst:1101 +#: ../../library/turtle.rst:859 msgid "\"speed\": number in range 0..10" msgstr "\"speed\": Zahl im Bereich 0..10" -#: ../../library/turtle.rst:1102 +#: ../../library/turtle.rst:860 msgid "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" msgstr "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" -#: ../../library/turtle.rst:1103 +#: ../../library/turtle.rst:861 msgid "\"stretchfactor\": (positive number, positive number)" msgstr "\"stretchfactor\": (positive Zahl, positive Zahl)" -#: ../../library/turtle.rst:1104 +#: ../../library/turtle.rst:862 msgid "\"outline\": positive number" msgstr "\"outline\": positive Zahl" -#: ../../library/turtle.rst:1105 +#: ../../library/turtle.rst:863 msgid "\"tilt\": number" msgstr "\"tilt\": Zahl" -#: ../../library/turtle.rst:1107 +#: ../../library/turtle.rst:865 msgid "" "This dictionary can be used as argument for a subsequent call to :func:`pen` " "to restore the former pen-state. Moreover one or more of these attributes " @@ -2040,7 +1385,7 @@ msgstr "" "angegeben werden. Dies kann verwendet werden, um mehrere Stiftattribute in " "einer einzigen Anweisung zu setzen." -#: ../../library/turtle.rst:1112 +#: ../../library/turtle.rst:870 msgid "" ">>> turtle.pen(fillcolor=\"black\", pencolor=\"red\", pensize=10)\n" ">>> sorted(turtle.pen().items())\n" @@ -2072,12 +1417,12 @@ msgstr "" ">>> sorted(turtle.pen().items())[:3]\n" "[('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]" -#: ../../library/turtle.rst:1133 +#: ../../library/turtle.rst:891 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." -#: ../../library/turtle.rst:1135 +#: ../../library/turtle.rst:893 msgid "" ">>> turtle.penup()\n" ">>> turtle.isdown()\n" @@ -2093,34 +1438,39 @@ msgstr "" ">>> turtle.isdown()\n" "True" -#: ../../library/turtle.rst:1153 +#: ../../library/turtle.rst:905 +msgid "Color control" +msgstr "Farbkontrolle" + +#: ../../library/turtle.rst:911 msgid "Return or set the pencolor." msgstr "Gib die Stiftfarbe zurück oder setze sie." -#: ../../library/turtle.rst:1155 ../../library/turtle.rst:1206 -#: ../../library/turtle.rst:1886 +#: ../../library/turtle.rst:913 ../../library/turtle.rst:965 +#: ../../library/turtle.rst:1638 msgid "Four input formats are allowed:" msgstr "Vier Eingabeformate sind erlaubt:" -#: ../../library/turtle.rst:1157 +#: ../../library/turtle.rst:915 msgid "``pencolor()``" msgstr "``pencolor()``" -#: ../../library/turtle.rst:1158 +#: ../../library/turtle.rst:916 +#, fuzzy msgid "" "Return the current pencolor as color specification string or as a tuple (see " -"example). May be used as input to another color/pencolor/fillcolor/bgcolor " -"call." +"example). May be used as input to another :func:`color`, :func:`pencolor`, :" +"func:`fillcolor` or :func:`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." -#: ../../library/turtle.rst:1162 +#: ../../library/turtle.rst:921 msgid "``pencolor(colorstring)``" msgstr "``pencolor(colorstring)``" -#: ../../library/turtle.rst:1163 +#: ../../library/turtle.rst:922 msgid "" "Set pencolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." @@ -2128,11 +1478,11 @@ msgstr "" "Setze die Stiftfarbe auf *colorstring*, was ein Tk-Farbangabe-String ist, " "wie zum Beispiel ``\"red\"``, ``\"yellow\"`` oder ``\"#33cc8c\"``." -#: ../../library/turtle.rst:1166 +#: ../../library/turtle.rst:925 msgid "``pencolor((r, g, b))``" msgstr "``pencolor((r, g, b))``" -#: ../../library/turtle.rst:1167 +#: ../../library/turtle.rst:926 msgid "" "Set pencolor to the RGB color represented by the tuple of *r*, *g*, and " "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " @@ -2143,11 +1493,11 @@ msgstr "" "colormode liegen, wobei colormode entweder 1.0 oder 255 ist (siehe :func:" "`colormode`)." -#: ../../library/turtle.rst:1171 +#: ../../library/turtle.rst:930 msgid "``pencolor(r, g, b)``" msgstr "``pencolor(r, g, b)``" -#: ../../library/turtle.rst:1172 +#: ../../library/turtle.rst:931 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." @@ -2155,7 +1505,7 @@ 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." -#: ../../library/turtle.rst:1175 +#: ../../library/turtle.rst:934 msgid "" "If turtleshape is a polygon, the outline of that polygon is drawn with the " "newly set pencolor." @@ -2163,7 +1513,7 @@ msgstr "" "Ist die Form der Turtle ein Polygon, wird der Umriss dieses Polygons mit der " "neu gesetzten Stiftfarbe gezeichnet." -#: ../../library/turtle.rst:1178 +#: ../../library/turtle.rst:937 msgid "" ">>> colormode()\n" "1.0\n" @@ -2201,29 +1551,30 @@ msgstr "" ">>> turtle.pencolor()\n" "(50.0, 193.0, 143.0)" -#: ../../library/turtle.rst:1204 +#: ../../library/turtle.rst:963 msgid "Return or set the fillcolor." msgstr "Gib die Füllfarbe zurück oder setze sie." -#: ../../library/turtle.rst:1208 +#: ../../library/turtle.rst:967 msgid "``fillcolor()``" msgstr "``fillcolor()``" -#: ../../library/turtle.rst:1209 +#: ../../library/turtle.rst:968 +#, fuzzy msgid "" "Return the current fillcolor as color specification string, possibly in " -"tuple format (see example). May be used as input to another color/pencolor/" -"fillcolor/bgcolor call." +"tuple format (see example). May be used as input to another :func:`color`, :" +"func:`pencolor`, :func:`fillcolor` or :func:`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." -#: ../../library/turtle.rst:1213 +#: ../../library/turtle.rst:973 msgid "``fillcolor(colorstring)``" msgstr "``fillcolor(colorstring)``" -#: ../../library/turtle.rst:1214 +#: ../../library/turtle.rst:974 msgid "" "Set fillcolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." @@ -2231,11 +1582,11 @@ msgstr "" "Setze die Füllfarbe auf *colorstring*, was ein Tk-Farbangabe-String ist, wie " "zum Beispiel ``\"red\"``, ``\"yellow\"`` oder ``\"#33cc8c\"``." -#: ../../library/turtle.rst:1217 +#: ../../library/turtle.rst:977 msgid "``fillcolor((r, g, b))``" msgstr "``fillcolor((r, g, b))``" -#: ../../library/turtle.rst:1218 +#: ../../library/turtle.rst:978 msgid "" "Set fillcolor to the RGB color represented by the tuple of *r*, *g*, and " "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " @@ -2246,11 +1597,11 @@ msgstr "" "colormode liegen, wobei colormode entweder 1.0 oder 255 ist (siehe :func:" "`colormode`)." -#: ../../library/turtle.rst:1222 +#: ../../library/turtle.rst:982 msgid "``fillcolor(r, g, b)``" msgstr "``fillcolor(r, g, b)``" -#: ../../library/turtle.rst:1223 +#: ../../library/turtle.rst:983 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." @@ -2258,7 +1609,7 @@ 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." -#: ../../library/turtle.rst:1226 +#: ../../library/turtle.rst:986 msgid "" "If turtleshape is a polygon, the interior of that polygon is drawn with the " "newly set fillcolor." @@ -2266,7 +1617,7 @@ msgstr "" "Ist die Form der Turtle ein Polygon, wird das Innere dieses Polygons mit der " "neu gesetzten Füllfarbe gezeichnet." -#: ../../library/turtle.rst:1229 +#: ../../library/turtle.rst:989 msgid "" ">>> turtle.fillcolor(\"violet\")\n" ">>> turtle.fillcolor()\n" @@ -2292,22 +1643,22 @@ msgstr "" ">>> turtle.fillcolor()\n" "(255.0, 255.0, 255.0)" -#: ../../library/turtle.rst:1250 +#: ../../library/turtle.rst:1010 msgid "Return or set pencolor and fillcolor." msgstr "Gib die Stiftfarbe und die Füllfarbe zurück oder setze sie." -#: ../../library/turtle.rst:1252 +#: ../../library/turtle.rst:1012 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:" -#: ../../library/turtle.rst:1255 +#: ../../library/turtle.rst:1015 msgid "``color()``" msgstr "``color()``" -#: ../../library/turtle.rst:1256 +#: ../../library/turtle.rst:1016 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:" @@ -2317,11 +1668,11 @@ msgstr "" "Farbangabe-Strings oder Tupeln zurück, wie sie von :func:`pencolor` und :" "func:`fillcolor` zurückgegeben werden." -#: ../../library/turtle.rst:1260 +#: ../../library/turtle.rst:1020 msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" msgstr "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" -#: ../../library/turtle.rst:1261 +#: ../../library/turtle.rst:1021 msgid "" "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the " "given value." @@ -2329,13 +1680,13 @@ msgstr "" "Eingaben wie bei :func:`pencolor`, setzt sowohl fillcolor als auch pencolor " "auf den angegebenen Wert." -#: ../../library/turtle.rst:1264 +#: ../../library/turtle.rst:1024 msgid "" "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" msgstr "" "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" -#: ../../library/turtle.rst:1265 +#: ../../library/turtle.rst:1025 msgid "" "Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and " "analogously if the other input format is used." @@ -2343,7 +1694,7 @@ msgstr "" "Entspricht ``pencolor(colorstring1)`` und ``fillcolor(colorstring2)`` und " "analog, wenn das andere Eingabeformat verwendet wird." -#: ../../library/turtle.rst:1268 +#: ../../library/turtle.rst:1028 msgid "" "If turtleshape is a polygon, outline and interior of that polygon is drawn " "with the newly set colors." @@ -2351,7 +1702,7 @@ msgstr "" "Ist die Form der Turtle ein Polygon, werden Umriss und Inneres dieses " "Polygons mit den neu gesetzten Farben gezeichnet." -#: ../../library/turtle.rst:1271 +#: ../../library/turtle.rst:1031 msgid "" ">>> turtle.color(\"red\", \"green\")\n" ">>> turtle.color()\n" @@ -2367,16 +1718,20 @@ msgstr "" ">>> color()\n" "((40.0, 80.0, 120.0), (160.0, 200.0, 240.0))" -#: ../../library/turtle.rst:1282 +#: ../../library/turtle.rst:1042 msgid "See also: Screen method :func:`colormode`." msgstr "Siehe auch: Screen-Methode :func:`colormode`." -#: ../../library/turtle.rst:1296 +#: ../../library/turtle.rst:1046 +msgid "Filling" +msgstr "Füllen" + +#: ../../library/turtle.rst:1056 msgid "Return fillstate (``True`` if filling, ``False`` else)." msgstr "" "Gib den Füllstatus zurück (``True``, wenn gefüllt wird, sonst ``False``)." -#: ../../library/turtle.rst:1298 +#: ../../library/turtle.rst:1058 msgid "" ">>> turtle.begin_fill()\n" ">>> if turtle.filling():\n" @@ -2390,11 +1745,11 @@ msgstr "" "... else:\n" "... turtle.pensize(3)" -#: ../../library/turtle.rst:1309 +#: ../../library/turtle.rst:1069 msgid "Fill the shape drawn in the ``with turtle.fill():`` block." msgstr "Fülle die Form, die im ``with turtle.fill():``-Block gezeichnet wurde." -#: ../../library/turtle.rst:1311 +#: ../../library/turtle.rst:1071 msgid "" ">>> turtle.color(\"black\", \"red\")\n" ">>> with turtle.fill():\n" @@ -2404,7 +1759,7 @@ msgstr "" ">>> with turtle.fill():\n" "... turtle.circle(80)" -#: ../../library/turtle.rst:1318 +#: ../../library/turtle.rst:1078 msgid "" "Using :func:`!fill` is equivalent to adding the :func:`begin_fill` before " "the fill-block and :func:`end_fill` after the fill-block:" @@ -2412,7 +1767,7 @@ 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:" -#: ../../library/turtle.rst:1321 ../../library/turtle.rst:1346 +#: ../../library/turtle.rst:1081 ../../library/turtle.rst:1106 msgid "" ">>> turtle.color(\"black\", \"red\")\n" ">>> turtle.begin_fill()\n" @@ -2424,18 +1779,18 @@ msgstr "" ">>> turtle.circle(80)\n" ">>> turtle.end_fill()" -#: ../../library/turtle.rst:1334 +#: ../../library/turtle.rst:1094 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." -#: ../../library/turtle.rst:1339 +#: ../../library/turtle.rst:1099 msgid "Fill the shape drawn after the last call to :func:`begin_fill`." msgstr "" "Fülle die Form, die seit dem letzten Aufruf von :func:`begin_fill` " "gezeichnet wurde." -#: ../../library/turtle.rst:1341 +#: ../../library/turtle.rst:1101 msgid "" "Whether or not overlap regions for self-intersecting polygons or multiple " "shapes are filled depends on the operating system graphics, type of overlap, " @@ -2448,15 +1803,20 @@ msgstr "" "gezeigte Turtle-Stern entweder komplett gelb sein oder einige weiße Bereiche " "aufweisen." -#: ../../library/turtle.rst:1360 +#: ../../library/turtle.rst:1116 +msgid "More drawing control" +msgstr "Mehr Zeichenkontrolle" + +#: ../../library/turtle.rst:1120 +#, fuzzy msgid "" -"Delete the turtle's drawings from the screen, re-center the turtle and set " -"variables to the default values." +"Delete the turtle's drawings and re-center the turtle. The turtle's settings " +"are restored to their default values." msgstr "" "Lösche die Zeichnungen der Turtle vom Bildschirm, zentriere die Turtle neu " "und setze die Variablen auf ihre Standardwerte zurück." -#: ../../library/turtle.rst:1363 +#: ../../library/turtle.rst:1123 msgid "" ">>> turtle.goto(0,-22)\n" ">>> turtle.left(100)\n" @@ -2482,32 +1842,32 @@ msgstr "" ">>> turtle.heading()\n" "0.0" -#: ../../library/turtle.rst:1381 +#: ../../library/turtle.rst:1141 +#, fuzzy msgid "" -"Delete the turtle's drawings from the screen. Do not move turtle. State " -"and position of the turtle as well as drawings of other turtles are not " -"affected." +"Delete the turtle's drawings from the screen. The state and position of the " +"turtle as well as the 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." -#: ../../library/turtle.rst:1387 +#: ../../library/turtle.rst:1147 msgid "object to be written to the TurtleScreen" msgstr "Objekt, das auf den TurtleScreen geschrieben werden soll" -#: ../../library/turtle.rst:1388 +#: ../../library/turtle.rst:1148 msgid "True/False" msgstr "True/False" -#: ../../library/turtle.rst:1389 +#: ../../library/turtle.rst:1149 msgid "one of the strings \"left\", \"center\" or right\"" msgstr "eine der Zeichenketten \"left\", \"center\" oder \"right\"" -#: ../../library/turtle.rst:1390 +#: ../../library/turtle.rst:1150 msgid "a triple (fontname, fontsize, fonttype)" msgstr "ein Tripel (fontname, fontsize, fonttype)" -#: ../../library/turtle.rst:1392 +#: ../../library/turtle.rst:1152 msgid "" "Write text - the string representation of *arg* - at the current turtle " "position according to *align* (\"left\", \"center\" or \"right\") and with " @@ -2519,7 +1879,7 @@ msgstr "" "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:1397 +#: ../../library/turtle.rst:1157 msgid "" ">>> turtle.write(\"Home = \", True, align=\"center\")\n" ">>> turtle.write((0,0), True)" @@ -2527,35 +1887,30 @@ msgstr "" ">>> turtle.write(\"Home = \", True, align=\"center\")\n" ">>> turtle.write((0,0), True)" -#: ../../library/turtle.rst:1413 -msgid "" -"Make the turtle invisible. It's a good idea to do this while you're in the " -"middle of doing some complex drawing, because hiding the turtle speeds up " -"the drawing observably." -msgstr "" -"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:1165 +msgid "Turtle state" +msgstr "Turtle-Status" -#: ../../library/turtle.rst:1417 -msgid ">>> turtle.hideturtle()" -msgstr ">>> turtle.hideturtle()" +#: ../../library/turtle.rst:1168 +msgid "Visibility" +msgstr "Sichtbarkeit" + +#: ../../library/turtle.rst:1173 +msgid "Make the turtle invisible. If the pen is down, movement still draws." +msgstr "" -#: ../../library/turtle.rst:1426 +#: ../../library/turtle.rst:1179 msgid "Make the turtle visible." msgstr "Mache die Turtle sichtbar." -#: ../../library/turtle.rst:1428 -msgid ">>> turtle.showturtle()" -msgstr ">>> turtle.showturtle()" - -#: ../../library/turtle.rst:1436 -msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." +#: ../../library/turtle.rst:1184 +#, fuzzy +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." -#: ../../library/turtle.rst:1438 +#: ../../library/turtle.rst:1186 msgid "" ">>> turtle.hideturtle()\n" ">>> turtle.isvisible()\n" @@ -2571,11 +1926,15 @@ msgstr "" ">>> turtle.isvisible()\n" "True" -#: ../../library/turtle.rst:1454 +#: ../../library/turtle.rst:1198 +msgid "Appearance" +msgstr "Erscheinungsbild" + +#: ../../library/turtle.rst:1202 msgid "a string which is a valid shapename" msgstr "eine Zeichenkette, die ein gültiger Formname ist" -#: ../../library/turtle.rst:1456 +#: ../../library/turtle.rst:1204 msgid "" "Set turtle shape to shape with given *name* or, if name is not given, return " "name of current shape. Shape with *name* must exist in the TurtleScreen's " @@ -2591,7 +1950,7 @@ msgstr "" "\"circle\", \"square\", \"triangle\", \"classic\". Um mehr über den Umgang " "mit Formen zu erfahren, siehe die Screen-Methode :func:`register_shape`." -#: ../../library/turtle.rst:1462 +#: ../../library/turtle.rst:1210 msgid "" ">>> turtle.shape()\n" "'classic'\n" @@ -2605,11 +1964,11 @@ msgstr "" ">>> turtle.shape()\n" "'turtle'" -#: ../../library/turtle.rst:1474 +#: ../../library/turtle.rst:1222 msgid "one of the strings \"auto\", \"user\", \"noresize\"" msgstr "eine der Zeichenketten \"auto\", \"user\", \"noresize\"" -#: ../../library/turtle.rst:1476 +#: ../../library/turtle.rst:1224 msgid "" "Set resizemode to one of the values: \"auto\", \"user\", \"noresize\". If " "*rmode* is not given, return current resizemode. Different resizemodes have " @@ -2619,7 +1978,7 @@ msgstr "" "*rmode* nicht angegeben, wird der aktuelle resizemode zurückgegeben. Die " "verschiedenen resizemodes haben folgende Auswirkungen:" -#: ../../library/turtle.rst:1480 +#: ../../library/turtle.rst:1228 msgid "" "\"auto\": adapts the appearance of the turtle corresponding to the value of " "pensize." @@ -2627,7 +1986,7 @@ msgstr "" "\"auto\": passt das Erscheinungsbild der Turtle entsprechend dem Wert von " "pensize an." -#: ../../library/turtle.rst:1481 +#: ../../library/turtle.rst:1229 msgid "" "\"user\": adapts the appearance of the turtle according to the values of " "stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." @@ -2636,13 +1995,13 @@ msgstr "" "stretchfactor und outlinewidth (outline) an, die durch :func:`shapesize` " "gesetzt werden." -#: ../../library/turtle.rst:1484 +#: ../../library/turtle.rst:1232 msgid "\"noresize\": no adaption of the turtle's appearance takes place." msgstr "" "\"noresize\": es findet keine Anpassung des Erscheinungsbilds der Turtle " "statt." -#: ../../library/turtle.rst:1486 +#: ../../library/turtle.rst:1234 msgid "" "``resizemode(\"user\")`` is called by :func:`shapesize` when used with " "arguments." @@ -2650,7 +2009,7 @@ msgstr "" "``resizemode(\"user\")`` wird von :func:`shapesize` aufgerufen, wenn es mit " "Argumenten verwendet wird." -#: ../../library/turtle.rst:1488 +#: ../../library/turtle.rst:1236 msgid "" ">>> turtle.resizemode()\n" "'noresize'\n" @@ -2664,12 +2023,12 @@ msgstr "" ">>> turtle.resizemode()\n" "'auto'" -#: ../../library/turtle.rst:1501 ../../library/turtle.rst:1502 -#: ../../library/turtle.rst:1503 +#: ../../library/turtle.rst:1249 ../../library/turtle.rst:1250 +#: ../../library/turtle.rst:1251 msgid "positive number" msgstr "Positive Zahl" -#: ../../library/turtle.rst:1505 +#: ../../library/turtle.rst:1253 msgid "" "Return or set the pen's attributes x/y-stretchfactors and/or outline. Set " "resizemode to \"user\". If and only if resizemode is set to \"user\", the " @@ -2685,7 +2044,7 @@ msgstr "" "Ausrichtung, *stretch_len* ist der Streckfaktor in Richtung ihrer " "Ausrichtung, *outline* bestimmt die Breite des Umrisses der Form." -#: ../../library/turtle.rst:1512 +#: ../../library/turtle.rst:1260 msgid "" ">>> turtle.shapesize()\n" "(1.0, 1.0, 1)\n" @@ -2707,12 +2066,11 @@ msgstr "" ">>> turtle.shapesize()\n" "(5, 5, 8)" -#: ../../library/turtle.rst:1528 ../../library/turtle.rst:2222 -#: ../../library/turtle.rst:2223 ../../library/turtle.rst:2224 +#: ../../library/turtle.rst:1276 msgid "number (optional)" msgstr "Zahl (optional)" -#: ../../library/turtle.rst:1530 +#: ../../library/turtle.rst:1278 msgid "" "Set or return the current shearfactor. Shear the turtleshape according to " "the given shearfactor shear, which is the tangent of the shear angle. Do " @@ -2727,7 +2085,7 @@ msgstr "" "Scherfaktor zurück, d. h. den Tangens des Scherwinkels, um den Linien " "parallel zur Ausrichtung der Turtle geschert werden." -#: ../../library/turtle.rst:1537 +#: ../../library/turtle.rst:1285 msgid "" ">>> turtle.shape(\"circle\")\n" ">>> turtle.shapesize(5,2)\n" @@ -2741,7 +2099,7 @@ msgstr "" ">>> turtle.shearfactor()\n" "0.5" -#: ../../library/turtle.rst:1551 +#: ../../library/turtle.rst:1299 msgid "" "Rotate the turtleshape by *angle* from its current tilt-angle, but do *not* " "change the turtle's heading (direction of movement)." @@ -2749,7 +2107,7 @@ msgstr "" "Drehe die Form der Turtle um *angle* von ihrem aktuellen Kippwinkel aus, " "ändere aber *nicht* die Ausrichtung der Turtle (Bewegungsrichtung)." -#: ../../library/turtle.rst:1554 +#: ../../library/turtle.rst:1302 msgid "" ">>> turtle.reset()\n" ">>> turtle.shape(\"circle\")\n" @@ -2767,13 +2125,13 @@ msgstr "" ">>> turtle.tilt(30)\n" ">>> turtle.fd(50)" -#: ../../library/turtle.rst:1568 ../../library/turtle.rst:1591 -#: ../../library/turtle.rst:1592 ../../library/turtle.rst:1593 -#: ../../library/turtle.rst:1594 +#: ../../library/turtle.rst:1316 ../../library/turtle.rst:1339 +#: ../../library/turtle.rst:1340 ../../library/turtle.rst:1341 +#: ../../library/turtle.rst:1342 msgid "a number (optional)" msgstr "eine Zahl (optional)" -#: ../../library/turtle.rst:1570 +#: ../../library/turtle.rst:1318 msgid "" "Set or return the current tilt-angle. If angle is given, rotate the " "turtleshape to point in the direction specified by angle, regardless of its " @@ -2790,7 +2148,7 @@ msgstr "" "Ausrichtung der Form der Turtle und der Ausrichtung der Turtle (ihrer " "Bewegungsrichtung)." -#: ../../library/turtle.rst:1578 +#: ../../library/turtle.rst:1326 msgid "" ">>> turtle.reset()\n" ">>> turtle.shape(\"circle\")\n" @@ -2806,12 +2164,12 @@ msgstr "" ">>> turtle.tiltangle()\n" "45.0" -#: ../../library/turtle.rst:1596 +#: ../../library/turtle.rst:1344 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." -#: ../../library/turtle.rst:1598 +#: ../../library/turtle.rst:1346 msgid "" "If none of the matrix elements are given, return the transformation matrix " "as a tuple of 4 elements. Otherwise set the given elements and transform the " @@ -2828,7 +2186,7 @@ msgstr "" "andernfalls wird ein Fehler ausgelöst. Ändert stretchfactor, shearfactor und " "tiltangle entsprechend der angegebenen Matrix." -#: ../../library/turtle.rst:1607 +#: ../../library/turtle.rst:1355 msgid "" ">>> turtle = Turtle()\n" ">>> turtle.shape(\"square\")\n" @@ -2844,7 +2202,7 @@ msgstr "" ">>> turtle.shapetransform()\n" "(4.0, -1.0, -0.0, 2.0)" -#: ../../library/turtle.rst:1620 +#: ../../library/turtle.rst:1368 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." @@ -2853,7 +2211,7 @@ msgstr "" "kann verwendet werden, um eine neue Form oder Komponenten einer " "zusammengesetzten Form zu definieren." -#: ../../library/turtle.rst:1623 +#: ../../library/turtle.rst:1371 msgid "" ">>> turtle.shape(\"square\")\n" ">>> turtle.shapetransform(4, -1, 0, 2)\n" @@ -2865,40 +2223,36 @@ msgstr "" ">>> turtle.get_shapepoly()\n" "((50, -20), (30, 20), (-50, 20), (-30, -20))" -#: ../../library/turtle.rst:1638 ../../library/turtle.rst:1660 -#: ../../library/turtle.rst:1685 ../../library/turtle.rst:2146 -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" +#: ../../library/turtle.rst:1381 +msgid "Using events" +msgstr "Ereignisse verwenden" -#: ../../library/turtle.rst:1640 ../../library/turtle.rst:1662 -#: ../../library/turtle.rst:1687 ../../library/turtle.rst:2148 -msgid "number of the mouse-button, defaults to 1 (left mouse button)" -msgstr "Nummer der Maustaste, standardmäßig 1 (linke Maustaste)" +#: ../../library/turtle.rst:1386 ../../library/turtle.rst:1898 +#, fuzzy +msgid "a function with two arguments or ``None``" +msgstr "eine Funktion ohne Argumente oder ``None``" -#: ../../library/turtle.rst:1641 ../../library/turtle.rst:1663 -#: ../../library/turtle.rst:1688 ../../library/turtle.rst:2149 -msgid "" -"``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise " -"it will replace a former binding" -msgstr "" -"``True`` oder ``False`` -- ist es ``True``, wird eine neue Bindung " -"hinzugefügt, andernfalls ersetzt sie eine vorherige Bindung" +#: ../../library/turtle.rst:1387 ../../library/turtle.rst:1899 +#, fuzzy +msgid "an integer" +msgstr "eine Ganzzahl oder ``None``" + +#: ../../library/turtle.rst:1388 ../../library/turtle.rst:1900 +#, fuzzy +msgid "a boolean or ``None``" +msgstr "eine Zahl oder ``None``" -#: ../../library/turtle.rst:1644 +#: ../../library/turtle.rst:1390 msgid "" -"Bind *fun* to mouse-click events on this turtle. If *fun* is ``None``, " -"existing bindings are removed. Example for the anonymous turtle, i.e. the " -"procedural way:" +"Bind *fun* to mouse-click events on this turtle. *fun* is called with the " +"coordinates of the clicked point on the canvas. If *fun* is ``None``, " +"existing bindings are removed. *btn* is the number of the mouse button and " +"defaults to 1, the left mouse button. If *add* is ``True``, a new binding is " +"added, otherwise it replaces a former binding. Example for the anonymous " +"turtle, that is, 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:" -#: ../../library/turtle.rst:1648 +#: ../../library/turtle.rst:1397 msgid "" ">>> def turn(x, y):\n" "... left(180)\n" @@ -2912,7 +2266,27 @@ msgstr "" ">>> onclick(turn) # Now clicking into the turtle will turn it.\n" ">>> onclick(None) # event-binding will be removed" -#: ../../library/turtle.rst:1666 +#: ../../library/turtle.rst:1409 ../../library/turtle.rst:1434 +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" + +#: ../../library/turtle.rst:1411 ../../library/turtle.rst:1436 +msgid "number of the mouse-button, defaults to 1 (left mouse button)" +msgstr "Nummer der Maustaste, standardmäßig 1 (linke Maustaste)" + +#: ../../library/turtle.rst:1412 ../../library/turtle.rst:1437 +msgid "" +"``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise " +"it will replace a former binding" +msgstr "" +"``True`` oder ``False`` -- ist es ``True``, wird eine neue Bindung " +"hinzugefügt, andernfalls ersetzt sie eine vorherige Bindung" + +#: ../../library/turtle.rst:1415 msgid "" "Bind *fun* to mouse-button-release events on this turtle. If *fun* is " "``None``, existing bindings are removed." @@ -2920,7 +2294,7 @@ msgstr "" "Binde *fun* an Loslassen-der-Maustaste-Ereignisse dieser Turtle. Ist *fun* " "``None``, werden bestehende Bindungen entfernt." -#: ../../library/turtle.rst:1669 +#: ../../library/turtle.rst:1418 msgid "" ">>> class MyTurtle(Turtle):\n" "... def glow(self,x,y):\n" @@ -2944,7 +2318,7 @@ msgstr "" "red,\n" ">>> turtle.onrelease(turtle.unglow) # releasing turns it to transparent." -#: ../../library/turtle.rst:1691 +#: ../../library/turtle.rst:1440 msgid "" "Bind *fun* to mouse-move events on this turtle. If *fun* is ``None``, " "existing bindings are removed." @@ -2952,7 +2326,7 @@ msgstr "" "Binde *fun* an Mausbewegungs-Ereignisse dieser Turtle. Ist *fun* ``None``, " "werden bestehende Bindungen entfernt." -#: ../../library/turtle.rst:1694 +#: ../../library/turtle.rst:1443 msgid "" "Remark: Every sequence of mouse-move-events on a turtle is preceded by a " "mouse-click event on that turtle." @@ -2960,11 +2334,11 @@ msgstr "" "Anmerkung: Jeder Abfolge von Mausbewegungs-Ereignissen auf einer Turtle geht " "ein Mausklick-Ereignis auf dieser Turtle voraus." -#: ../../library/turtle.rst:1697 +#: ../../library/turtle.rst:1446 msgid ">>> turtle.ondrag(turtle.goto)" msgstr ">>> turtle.ondrag(turtle.goto)" -#: ../../library/turtle.rst:1702 +#: ../../library/turtle.rst:1451 msgid "" "Subsequently, clicking and dragging the Turtle will move it across the " "screen thereby producing handdrawings (if pen is down)." @@ -2972,7 +2346,11 @@ msgstr "" "Anschließend bewegt das Klicken und Ziehen der Turtle diese über den " "Bildschirm und erzeugt dabei Handzeichnungen (wenn der Stift unten ist)." -#: ../../library/turtle.rst:1712 +#: ../../library/turtle.rst:1456 +msgid "Special Turtle methods" +msgstr "Spezielle Turtle-Methoden" + +#: ../../library/turtle.rst:1461 msgid "" "Record the vertices of a polygon drawn in the ``with turtle.poly():`` block. " "The first and last vertices will be connected." @@ -2980,7 +2358,7 @@ msgstr "" "Zeichne die Eckpunkte eines Polygons auf, das im ``with turtle.poly():``-" "Block gezeichnet wird. Der erste und letzte Eckpunkt werden verbunden." -#: ../../library/turtle.rst:1715 +#: ../../library/turtle.rst:1464 msgid "" ">>> with turtle.poly():\n" "... turtle.forward(100)\n" @@ -2992,28 +2370,30 @@ msgstr "" "... turtle.right(60)\n" "... turtle.forward(100)" -#: ../../library/turtle.rst:1728 +#: ../../library/turtle.rst:1477 +#, fuzzy msgid "" -"Start recording the vertices of a polygon. Current turtle position is first " -"vertex of polygon." +"Start recording the vertices of a polygon. The current turtle position is " +"the first vertex of the polygon." msgstr "" "Beginne mit dem Aufzeichnen der Eckpunkte eines Polygons. Die aktuelle " "Position der Turtle ist der erste Eckpunkt des Polygons." -#: ../../library/turtle.rst:1734 +#: ../../library/turtle.rst:1483 +#, fuzzy msgid "" -"Stop recording the vertices of a polygon. Current turtle position is last " -"vertex of polygon. This will be connected with the first vertex." +"Stop recording the vertices of a polygon. The current turtle position is the " +"last vertex of the 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." -#: ../../library/turtle.rst:1740 +#: ../../library/turtle.rst:1489 msgid "Return the last recorded polygon." msgstr "Gib das zuletzt aufgezeichnete Polygon zurück." -#: ../../library/turtle.rst:1742 +#: ../../library/turtle.rst:1491 msgid "" ">>> turtle.home()\n" ">>> turtle.begin_poly()\n" @@ -3037,7 +2417,7 @@ msgstr "" ">>> p = turtle.get_poly()\n" ">>> register_shape(\"myFavouriteShape\", p)" -#: ../../library/turtle.rst:1759 +#: ../../library/turtle.rst:1508 msgid "" "Create and return a clone of the turtle with same position, heading and " "turtle properties." @@ -3045,7 +2425,7 @@ msgstr "" "Erstelle und gib einen Klon der Turtle mit derselben Position, Ausrichtung " "und denselben Turtle-Eigenschaften zurück." -#: ../../library/turtle.rst:1762 +#: ../../library/turtle.rst:1511 msgid "" ">>> mick = Turtle()\n" ">>> joe = mick.clone()" @@ -3053,7 +2433,7 @@ msgstr "" ">>> mick = Turtle()\n" ">>> joe = mick.clone()" -#: ../../library/turtle.rst:1772 +#: ../../library/turtle.rst:1521 msgid "" "Return the Turtle object itself. Only reasonable use: as a function to " "return the \"anonymous turtle\":" @@ -3061,7 +2441,7 @@ msgstr "" "Gib das Turtle-Objekt selbst zurück. Einzig sinnvolle Verwendung: als " "Funktion, um die \"anonyme Turtle\" zurückzugeben:" -#: ../../library/turtle.rst:1775 +#: ../../library/turtle.rst:1524 msgid "" ">>> pet = getturtle()\n" ">>> pet.fd(50)\n" @@ -3073,7 +2453,7 @@ msgstr "" ">>> pet\n" "" -#: ../../library/turtle.rst:1786 +#: ../../library/turtle.rst:1535 msgid "" "Return the :class:`TurtleScreen` object the turtle is drawing on. " "TurtleScreen methods can then be called for that object." @@ -3081,7 +2461,7 @@ msgstr "" "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:1789 +#: ../../library/turtle.rst:1538 msgid "" ">>> ts = turtle.getscreen()\n" ">>> ts\n" @@ -3093,11 +2473,7 @@ msgstr "" "\n" ">>> ts.bgcolor(\"pink\")" -#: ../../library/turtle.rst:1800 -msgid "an integer or ``None``" -msgstr "eine Ganzzahl oder ``None``" - -#: ../../library/turtle.rst:1802 +#: ../../library/turtle.rst:1551 msgid "" "Set or disable undobuffer. If *size* is an integer, an empty undobuffer of " "given size is installed. *size* gives the maximum number of turtle actions " @@ -3110,15 +2486,15 @@ msgstr "" "`undo` rückgängig gemacht werden können. Ist *size* ``None``, wird der Undo-" "Puffer deaktiviert." -#: ../../library/turtle.rst:1807 +#: ../../library/turtle.rst:1556 msgid ">>> turtle.setundobuffer(42)" msgstr ">>> turtle.setundobuffer(42)" -#: ../../library/turtle.rst:1815 +#: ../../library/turtle.rst:1564 msgid "Return number of entries in the undobuffer." msgstr "Gib die Anzahl der Einträge im Undo-Puffer zurück." -#: ../../library/turtle.rst:1817 +#: ../../library/turtle.rst:1566 msgid "" ">>> while undobufferentries():\n" "... undo()" @@ -3126,11 +2502,11 @@ msgstr "" ">>> while undobufferentries():\n" "... undo()" -#: ../../library/turtle.rst:1828 +#: ../../library/turtle.rst:1577 msgid "Compound shapes" msgstr "Zusammengesetzte Formen" -#: ../../library/turtle.rst:1830 +#: ../../library/turtle.rst:1579 msgid "" "To use compound turtle shapes, which consist of several polygons of " "different color, you must use the helper class :class:`Shape` explicitly as " @@ -3140,11 +2516,11 @@ msgstr "" "unterschiedlicher Farbe bestehen, musst du die Hilfsklasse :class:`Shape` " "explizit verwenden, wie unten beschrieben:" -#: ../../library/turtle.rst:1834 +#: ../../library/turtle.rst:1583 msgid "Create an empty Shape object of type \"compound\"." msgstr "Erstelle ein leeres Shape-Objekt vom Typ \"compound\"." -#: ../../library/turtle.rst:1835 +#: ../../library/turtle.rst:1584 msgid "" "Add as many components to this object as desired, using the :meth:`~Shape." "addcomponent` method." @@ -3152,11 +2528,11 @@ msgstr "" "Füge diesem Objekt beliebig viele Komponenten hinzu, indem du die Methode :" "meth:`~Shape.addcomponent` verwendest." -#: ../../library/turtle.rst:1838 +#: ../../library/turtle.rst:1587 msgid "For example:" msgstr "Zum Beispiel:" -#: ../../library/turtle.rst:1840 +#: ../../library/turtle.rst:1589 msgid "" ">>> s = Shape(\"compound\")\n" ">>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))\n" @@ -3170,11 +2546,11 @@ msgstr "" ">>> poly2 = ((0,0),(10,-5),(-10,-5))\n" ">>> s.addcomponent(poly2, \"blue\", \"red\")" -#: ../../library/turtle.rst:1849 +#: ../../library/turtle.rst:1598 msgid "Now add the Shape to the Screen's shapelist and use it:" msgstr "Füge nun die Shape zur Formenliste des Screens hinzu und verwende sie:" -#: ../../library/turtle.rst:1851 +#: ../../library/turtle.rst:1600 msgid "" ">>> register_shape(\"myshape\", s)\n" ">>> shape(\"myshape\")" @@ -3182,7 +2558,7 @@ msgstr "" ">>> register_shape(\"myshape\", s)\n" ">>> shape(\"myshape\")" -#: ../../library/turtle.rst:1860 +#: ../../library/turtle.rst:1609 msgid "" "The :class:`Shape` class is used internally by the :func:`register_shape` " "method in different ways. The application programmer has to deal with the " @@ -3193,11 +2569,11 @@ msgstr "" "Shape-Klasse *nur* dann befassen, wenn zusammengesetzte Formen wie oben " "gezeigt verwendet werden!" -#: ../../library/turtle.rst:1866 -msgid "Methods of TurtleScreen/Screen and corresponding functions" -msgstr "Methoden von TurtleScreen/Screen und entsprechende Funktionen" +#: ../../library/turtle.rst:1618 +msgid "Screen methods and functions" +msgstr "" -#: ../../library/turtle.rst:1868 +#: ../../library/turtle.rst:1620 msgid "" "Most of the examples in this section refer to a TurtleScreen instance called " "``screen``." @@ -3205,29 +2581,34 @@ msgstr "" "Die meisten Beispiele in diesem Abschnitt beziehen sich auf eine " "TurtleScreen-Instanz namens ``screen``." -#: ../../library/turtle.rst:1884 +#: ../../library/turtle.rst:1630 +msgid "Window control" +msgstr "Fenstersteuerung" + +#: ../../library/turtle.rst:1636 msgid "Return or set the background color of the TurtleScreen." msgstr "Gib die Hintergrundfarbe des TurtleScreen zurück oder setze sie." -#: ../../library/turtle.rst:1888 +#: ../../library/turtle.rst:1640 msgid "``bgcolor()``" msgstr "``bgcolor()``" -#: ../../library/turtle.rst:1889 +#: ../../library/turtle.rst:1641 +#, fuzzy msgid "" -"Return the current background color as color specification string or as a " -"tuple (see example). May be used as input to another color/pencolor/" -"fillcolor/bgcolor call." +"Return the current background color as a color specification string or as a " +"tuple (see example). May be used as input to another :func:`color`, :func:" +"`pencolor`, :func:`fillcolor` or :func:`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." -#: ../../library/turtle.rst:1893 +#: ../../library/turtle.rst:1646 msgid "``bgcolor(colorstring)``" msgstr "``bgcolor(colorstring)``" -#: ../../library/turtle.rst:1894 +#: ../../library/turtle.rst:1647 msgid "" "Set the background color to *colorstring*, which is a Tk color specification " "string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." @@ -3235,14 +2616,15 @@ msgstr "" "Setzt die Hintergrundfarbe auf *colorstring*, eine Tk-Farbangabe als " "Zeichenkette, etwa ``\"red\"``, ``\"yellow\"`` oder ``\"#33cc8c\"``." -#: ../../library/turtle.rst:1897 +#: ../../library/turtle.rst:1650 msgid "``bgcolor((r, g, b))``" msgstr "``bgcolor((r, g, b))``" -#: ../../library/turtle.rst:1898 +#: ../../library/turtle.rst:1651 +#, fuzzy msgid "" "Set the background color to the RGB color represented by the tuple of *r*, " -"*g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, " +"*g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode, " "where colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" "Setze die Hintergrundfarbe auf die durch das Tupel aus *r*, *g* und *b* " @@ -3250,19 +2632,20 @@ msgstr "" "colormode liegen, wobei colormode entweder 1.0 oder 255 ist (siehe :func:" "`colormode`)." -#: ../../library/turtle.rst:1903 +#: ../../library/turtle.rst:1656 msgid "``bgcolor(r, g, b)``" msgstr "``bgcolor(r, g, b)``" -#: ../../library/turtle.rst:1904 +#: ../../library/turtle.rst:1657 +#, fuzzy 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." +"Set the background color to the RGB color represented by *r*, *g*, and *b*. " +"Each of *r*, *g*, and *b* must be between 0 and 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." -#: ../../library/turtle.rst:1907 +#: ../../library/turtle.rst:1660 msgid "" ">>> screen.bgcolor(\"orange\")\n" ">>> screen.bgcolor()\n" @@ -3278,7 +2661,7 @@ msgstr "" ">>> screen.bgcolor()\n" "(128.0, 0.0, 128.0)" -#: ../../library/turtle.rst:1920 +#: ../../library/turtle.rst:1673 msgid "" "a string, name of an image file (PNG, GIF, PGM, and PPM) or ``\"nopic\"``, " "or ``None``" @@ -3286,7 +2669,7 @@ msgstr "" "eine Zeichenkette, Name einer Bilddatei (PNG, GIF, PGM und PPM) oder " "``\"nopic\"``, oder ``None``" -#: ../../library/turtle.rst:1923 +#: ../../library/turtle.rst:1676 msgid "" "Set background image or return name of current backgroundimage. If " "*picname* is a filename, set the corresponding image as background. If " @@ -3299,7 +2682,7 @@ msgstr "" "gelöscht, falls vorhanden. Ist *picname* ``None``, wird der Dateiname des " "aktuellen Hintergrundbilds zurückgegeben. ::" -#: ../../library/turtle.rst:1928 +#: ../../library/turtle.rst:1681 msgid "" ">>> screen.bgpic()\n" "'nopic'\n" @@ -3313,7 +2696,7 @@ msgstr "" ">>> screen.bgpic()\n" "\"landscape.gif\"" -#: ../../library/turtle.rst:1939 +#: ../../library/turtle.rst:1692 msgid "" "This TurtleScreen method is available as a global function only under the " "name ``clearscreen``. The global function ``clear`` is a different one " @@ -3323,7 +2706,7 @@ msgstr "" "``clearscreen`` verfügbar. Die globale Funktion ``clear`` ist eine andere, " "die von der Turtle-Methode ``clear`` abgeleitet ist." -#: ../../library/turtle.rst:1946 +#: ../../library/turtle.rst:1699 msgid "" "Delete all drawings and all turtles from the TurtleScreen. Reset the now " "empty TurtleScreen to its initial state: white background, no background " @@ -3333,7 +2716,7 @@ msgstr "" "leeren TurtleScreen auf seinen Ausgangszustand zurück: weißer Hintergrund, " "kein Hintergrundbild, keine Ereignisbindungen und Tracing aktiviert." -#: ../../library/turtle.rst:1955 +#: ../../library/turtle.rst:1708 msgid "" "This TurtleScreen method is available as a global function only under the " "name ``resetscreen``. The global function ``reset`` is another one derived " @@ -3343,23 +2726,24 @@ msgstr "" "``resetscreen`` verfügbar. Die globale Funktion ``reset`` ist eine andere, " "die von der Turtle-Methode ``reset`` abgeleitet ist." -#: ../../library/turtle.rst:1962 -msgid "Reset all Turtles on the Screen to their initial state." +#: ../../library/turtle.rst:1715 +#, fuzzy +msgid "Reset all turtles on the screen to their initial state." msgstr "Setze alle Turtles auf dem Screen auf ihren Ausgangszustand zurück." -#: ../../library/turtle.rst:1967 +#: ../../library/turtle.rst:1720 msgid "positive integer, new width of canvas in pixels" msgstr "positive Ganzzahl, neue Breite der Zeichenfläche in Pixeln" -#: ../../library/turtle.rst:1968 +#: ../../library/turtle.rst:1721 msgid "positive integer, new height of canvas in pixels" msgstr "positive Ganzzahl, neue Höhe der Zeichenfläche in Pixeln" -#: ../../library/turtle.rst:1969 +#: ../../library/turtle.rst:1722 msgid "colorstring or color-tuple, new background color" msgstr "Farbstring oder Farb-Tupel, neue Hintergrundfarbe" -#: ../../library/turtle.rst:1971 +#: ../../library/turtle.rst:1724 msgid "" "If no arguments are given, return current (canvaswidth, canvasheight). Else " "resize the canvas the turtles are drawing on. Do not alter the drawing " @@ -3375,7 +2759,7 @@ msgstr "" "Zeichnung sichtbar gemacht werden, die zuvor außerhalb der Zeichenfläche " "lagen." -#: ../../library/turtle.rst:1977 +#: ../../library/turtle.rst:1730 msgid "" ">>> screen.screensize()\n" "(400, 300)\n" @@ -3389,46 +2773,21 @@ msgstr "" ">>> screen.screensize()\n" "(2000, 1500)" -#: ../../library/turtle.rst:1986 +#: ../../library/turtle.rst:1739 msgid "e.g. to search for an erroneously escaped turtle ;-)" msgstr "z. B. um nach einer fälschlicherweise entkommenen Turtle zu suchen ;-)" -#: ../../library/turtle.rst:1991 -msgid "a number, x-coordinate of lower left corner of canvas" -msgstr "eine Zahl, x-Koordinate der unteren linken Ecke der Zeichenfläche" - -#: ../../library/turtle.rst:1992 -msgid "a number, y-coordinate of lower left corner of canvas" -msgstr "eine Zahl, y-Koordinate der unteren linken Ecke der Zeichenfläche" - -#: ../../library/turtle.rst:1993 -msgid "a number, x-coordinate of upper right corner of canvas" -msgstr "eine Zahl, x-Koordinate der oberen rechten Ecke der Zeichenfläche" - -#: ../../library/turtle.rst:1994 -msgid "a number, y-coordinate of upper right corner of canvas" -msgstr "eine Zahl, y-Koordinate der oberen rechten Ecke der Zeichenfläche" - -#: ../../library/turtle.rst:1996 -msgid "" -"Set up user-defined coordinate system and switch to mode \"world\" if " -"necessary. This performs a ``screen.reset()``. If mode \"world\" is " -"already active, all drawings are redrawn according to the new coordinates." -msgstr "" -"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:2000 +#: ../../library/turtle.rst:1749 msgid "" -"**ATTENTION**: in user-defined coordinate systems angles may appear " -"distorted." +"Set up a user-defined coordinate system. *llx* and *lly* are the x and y " +"coordinates of the lower left corner of the canvas. *urx* and *ury* are the " +"x and y coordinates of the upper right corner. Switch to mode \"world\" if " +"necessary, which performs a reset. If mode \"world\" is already active, all " +"drawings are redrawn according to the new coordinates. In user-defined " +"coordinate systems, angles may appear distorted, see :func:`mode`." msgstr "" -"**ACHTUNG**: In benutzerdefinierten Koordinatensystemen können Winkel " -"verzerrt erscheinen." -#: ../../library/turtle.rst:2003 +#: ../../library/turtle.rst:1756 msgid "" ">>> screen.reset()\n" ">>> screen.setworldcoordinates(-50,-7.5,50,7.5)\n" @@ -3446,17 +2805,23 @@ msgstr "" ">>> for _ in range(8):\n" "... left(45); fd(2) # a regular octagon" -#: ../../library/turtle.rst:2028 +#: ../../library/turtle.rst:1777 +msgid "Animation control" +msgstr "Animationskontrolle" + +#: ../../library/turtle.rst:1781 +#, fuzzy msgid "" -"Temporarily disable turtle animation. The code written inside the " -"``no_animation`` block will not be animated; once the code block is exited, " -"the drawing will appear." +"Temporarily turn off turtle animation. The code inside the :keyword:`with` " +"block is not animated. Once the block is exited, the drawing appears. This " +"is useful for drawing complex shapes where even the fastest speed setting is " +"too slow." 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." -#: ../../library/turtle.rst:2032 +#: ../../library/turtle.rst:1786 msgid "" ">>> with screen.no_animation():\n" "... for dist in range(2, 400, 2):\n" @@ -3468,26 +2833,25 @@ msgstr "" "... fd(dist)\n" "... rt(90)" -#: ../../library/turtle.rst:2045 -msgid "positive integer" -msgstr "positive Ganzzahl" +#: ../../library/turtle.rst:1799 ../../library/turtle.rst:1817 +#: ../../library/turtle.rst:1818 +#, fuzzy +msgid "a nonnegative integer or ``None``" +msgstr "eine Ganzzahl oder ``None``" -#: ../../library/turtle.rst:2047 +#: ../../library/turtle.rst:1801 +#, fuzzy msgid "" -"Set or return the drawing *delay* in milliseconds. (This is approximately " -"the time interval between two consecutive canvas updates.) The longer the " -"drawing delay, the slower the animation." +"Return or set the drawing delay in milliseconds. This is approximately the " +"time interval between two consecutive canvas updates. The longer the drawing " +"delay, the slower the animation." msgstr "" "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:2051 -msgid "Optional argument:" -msgstr "Optionales Argument:" - -#: ../../library/turtle.rst:2053 +#: ../../library/turtle.rst:1805 msgid "" ">>> screen.delay()\n" "10\n" @@ -3501,17 +2865,15 @@ msgstr "" ">>> screen.delay()\n" "5" -#: ../../library/turtle.rst:2065 ../../library/turtle.rst:2066 -msgid "nonnegative integer" -msgstr "nichtnegative Ganzzahl" - -#: ../../library/turtle.rst:2068 +#: ../../library/turtle.rst:1820 +#, fuzzy msgid "" -"Turn turtle animation on/off and set delay for update drawings. If *n* is " -"given, only each n-th regular screen update is really performed. (Can be " -"used to accelerate the drawing of complex graphics.) When called without " -"arguments, returns the currently stored value of n. Second argument sets " -"delay value (see :func:`delay`)." +"Turn turtle animation on or off and set the drawing delay. If *n* is given, " +"only every n-th regular screen update is performed, which can be used to " +"speed up the drawing of complex graphics. If *n* is 0, animation is turned " +"off and the screen is only updated by calling :func:`update`. If *delay* is " +"given, it sets the drawing delay, see :func:`delay`. When called without " +"arguments, return the current value of *n*." 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 " @@ -3520,7 +2882,7 @@ msgstr "" "aufgerufen, wird der aktuell gespeicherte Wert von n zurückgegeben. Das " "zweite Argument setzt den Verzögerungswert (siehe :func:`delay`)." -#: ../../library/turtle.rst:2075 +#: ../../library/turtle.rst:1827 msgid "" ">>> screen.tracer(8, 25)\n" ">>> dist = 2\n" @@ -3536,17 +2898,21 @@ msgstr "" "... rt(90)\n" "... dist += 2" -#: ../../library/turtle.rst:2088 +#: ../../library/turtle.rst:1840 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." -#: ../../library/turtle.rst:2090 +#: ../../library/turtle.rst:1842 msgid "See also the RawTurtle/Turtle method :func:`speed`." msgstr "Siehe auch die RawTurtle/Turtle-Methode :func:`speed`." -#: ../../library/turtle.rst:2098 +#: ../../library/turtle.rst:1846 +msgid "Using screen events" +msgstr "Screen-Events verwenden" + +#: ../../library/turtle.rst:1850 msgid "" "Set focus on TurtleScreen (in order to collect key-events). Dummy arguments " "are provided in order to be able to pass :func:`listen` to the onclick " @@ -3556,16 +2922,16 @@ msgstr "" "Argumente werden bereitgestellt, um :func:`listen` an die onclick-Methode " "übergeben zu können." -#: ../../library/turtle.rst:2105 ../../library/turtle.rst:2125 +#: ../../library/turtle.rst:1857 ../../library/turtle.rst:1877 msgid "a function with no arguments or ``None``" msgstr "eine Funktion ohne Argumente oder ``None``" -#: ../../library/turtle.rst:2106 ../../library/turtle.rst:2126 +#: ../../library/turtle.rst:1858 ../../library/turtle.rst:1878 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:2108 +#: ../../library/turtle.rst:1860 msgid "" "Bind *fun* to key-release event of key. If *fun* is ``None``, event " "bindings are removed. Remark: in order to be able to register key-events, " @@ -3576,7 +2942,7 @@ msgstr "" "registrieren zu können, muss TurtleScreen den Fokus haben. (Siehe Methode :" "func:`listen`.)" -#: ../../library/turtle.rst:2112 +#: ../../library/turtle.rst:1864 msgid "" ">>> def f():\n" "... fd(50)\n" @@ -3592,7 +2958,7 @@ msgstr "" ">>> screen.onkey(f, \"Up\")\n" ">>> screen.listen()" -#: ../../library/turtle.rst:2128 +#: ../../library/turtle.rst:1880 msgid "" "Bind *fun* to key-press event of key if key is given, or to any key-press-" "event if no key is given. Remark: in order to be able to register key-" @@ -3603,7 +2969,7 @@ msgstr "" "Um Tastatur-Ereignisse registrieren zu können, muss TurtleScreen den Fokus " "haben. (Siehe Methode :func:`listen`.)" -#: ../../library/turtle.rst:2133 +#: ../../library/turtle.rst:1885 msgid "" ">>> def f():\n" "... fd(50)\n" @@ -3617,15 +2983,16 @@ msgstr "" ">>> screen.onkey(f, \"Up\")\n" ">>> screen.listen()" -#: ../../library/turtle.rst:2152 +#: ../../library/turtle.rst:1902 msgid "" -"Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, " -"existing bindings are removed." +"Bind *fun* to mouse-click events on this screen. *fun* is called with the " +"coordinates of the clicked point on the canvas. If *fun* is ``None``, " +"existing bindings are removed. *btn* is the number of the mouse button and " +"defaults to 1, the left mouse button. If *add* is ``True``, a new binding is " +"added, otherwise it replaces a former binding." msgstr "" -"Binde *fun* an Mausklick-Ereignisse auf diesem Screen. Ist *fun* ``None``, " -"werden bestehende Bindungen entfernt." -#: ../../library/turtle.rst:2155 +#: ../../library/turtle.rst:1908 msgid "" "Example for a TurtleScreen instance named ``screen`` and a Turtle instance " "named ``turtle``:" @@ -3633,7 +3000,7 @@ msgstr "" "Beispiel für eine TurtleScreen-Instanz namens ``screen`` und eine Turtle-" "Instanz namens ``turtle``:" -#: ../../library/turtle.rst:2158 +#: ../../library/turtle.rst:1911 msgid "" ">>> screen.onclick(turtle.goto) # Subsequently clicking into the " "TurtleScreen will\n" @@ -3647,7 +3014,7 @@ msgstr "" "point.\n" ">>> screen.onclick(None) # remove event binding again" -#: ../../library/turtle.rst:2166 +#: ../../library/turtle.rst:1919 msgid "" "This TurtleScreen method is available as a global function only under the " "name ``onscreenclick``. The global function ``onclick`` is another one " @@ -3657,19 +3024,19 @@ msgstr "" "``onscreenclick`` verfügbar. Die globale Funktion ``onclick`` ist eine " "andere, die von der Turtle-Methode ``onclick`` abgeleitet ist." -#: ../../library/turtle.rst:2173 +#: ../../library/turtle.rst:1926 msgid "a function with no arguments" msgstr "eine Funktion ohne Argumente" -#: ../../library/turtle.rst:2174 +#: ../../library/turtle.rst:1927 msgid "a number >= 0" msgstr "eine Zahl >= 0" -#: ../../library/turtle.rst:2176 +#: ../../library/turtle.rst:1929 msgid "Install a timer that calls *fun* after *t* milliseconds." msgstr "Installiere einen Timer, der *fun* nach *t* Millisekunden aufruft." -#: ../../library/turtle.rst:2178 +#: ../../library/turtle.rst:1931 msgid "" ">>> running = True\n" ">>> def f():\n" @@ -3689,12 +3056,13 @@ msgstr "" ">>> f() ### makes the turtle march around\n" ">>> running = False" -#: ../../library/turtle.rst:2194 +#: ../../library/turtle.rst:1947 +#, fuzzy msgid "" -"Starts event loop - calling Tkinter's mainloop function. Must be the last " -"statement in a turtle graphics program. Must *not* be used if a script is " -"run from within IDLE in -n mode (No subprocess) - for interactive use of " -"turtle graphics. ::" +"Start the event loop by calling Tkinter's :meth:`~tkinter.Misc.mainloop` " +"method. Must be the last statement in a turtle graphics program. Must *not* " +"be used if a script is run from within IDLE in -n mode (see :ref:`idle-no-" +"subprocess`)." msgstr "" "Startet die Ereignisschleife – ruft die mainloop-Funktion von Tkinter auf. " "Muss die letzte Anweisung in einem Turtle-Grafikprogramm sein. Darf *nicht* " @@ -3702,40 +3070,44 @@ msgstr "" "Subprozess) ausgeführt wird – für die interaktive Verwendung von Turtle-" "Grafik. ::" -#: ../../library/turtle.rst:2199 -msgid ">>> screen.mainloop()" -msgstr ">>> screen.mainloop()" +#: ../../library/turtle.rst:1954 +msgid "Input methods" +msgstr "Eingabemethoden" -#: ../../library/turtle.rst:2207 ../../library/turtle.rst:2208 -#: ../../library/turtle.rst:2220 ../../library/turtle.rst:2221 -msgid "string" +#: ../../library/turtle.rst:1958 ../../library/turtle.rst:1959 +#: ../../library/turtle.rst:1970 ../../library/turtle.rst:1971 +#: ../../library/turtle.rst:2068 ../../library/turtle.rst:2201 +#: ../../library/turtle.rst:2257 +#, fuzzy +msgid "a string" msgstr "Zeichenkette" -#: ../../library/turtle.rst:2210 +#: ../../library/turtle.rst:1961 +#, fuzzy msgid "" -"Pop up a dialog window for input of a string. Parameter title is the title " -"of the dialog window, prompt is a text mostly describing what information to " -"input. Return the string input. If the dialog is canceled, return " -"``None``. ::" +"Pop up a dialog window for input of a string. *title* is the title of the " +"dialog window and *prompt* is a text describing what information to input. " +"Return the string entered. 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. ::" -#: ../../library/turtle.rst:2215 +#: ../../library/turtle.rst:1965 msgid ">>> screen.textinput(\"NIM\", \"Name of first player:\")" msgstr ">>> screen.textinput(\"NIM\", \"Name of first player:\")" -#: ../../library/turtle.rst:2226 +#: ../../library/turtle.rst:1976 +#, fuzzy msgid "" -"Pop up a dialog window for input of a number. title is the title of the " -"dialog window, prompt is a text mostly describing what numerical information " -"to input. default: default value, minval: minimum value for input, maxval: " -"maximum value for input. The number input must be in the range minval .. " -"maxval if these are given. If not, a hint is issued and the dialog remains " -"open for correction. Return the number input. If the dialog is canceled, " -"return ``None``. ::" +"Pop up a dialog window for input of a number. *title* is the title of the " +"dialog window and *prompt* is a text describing what numerical information " +"to input. *default* is the default value, *minval* and *maxval* are the " +"minimum and maximum values for input. If these are given, the number entered " +"must be between *minval* and *maxval*. If not, a hint is issued and the " +"dialog remains open for correction. Return the number entered. 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 " @@ -3746,7 +3118,7 @@ msgstr "" "Korrektur geöffnet. Gib die eingegebene Zahl zurück. Wird der Dialog " "abgebrochen, wird ``None`` zurückgegeben. ::" -#: ../../library/turtle.rst:2235 +#: ../../library/turtle.rst:1984 msgid "" ">>> screen.numinput(\"Poker\", \"Your stakes:\", 1000, minval=10, " "maxval=10000)" @@ -3754,25 +3126,33 @@ msgstr "" ">>> screen.numinput(\"Poker\", \"Your stakes:\", 1000, minval=10, " "maxval=10000)" -#: ../../library/turtle.rst:2243 -msgid "one of the strings \"standard\", \"logo\" or \"world\"" -msgstr "eine der Zeichenketten \"standard\", \"logo\" oder \"world\"" +#: ../../library/turtle.rst:1988 +msgid "Settings and special methods" +msgstr "Einstellungen und spezielle Methoden" + +#: ../../library/turtle.rst:1992 +#, fuzzy +msgid "a string or ``None``" +msgstr "eine Ganzzahl oder ``None``" -#: ../../library/turtle.rst:2245 +#: ../../library/turtle.rst:1994 +#, fuzzy msgid "" -"Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If " -"mode is not given, current mode is returned." +"Set the turtle mode and perform a reset. *mode* is one of the strings " +"\"standard\", \"logo\" or \"world\". If *mode* is not given, return the " +"current mode." 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." -#: ../../library/turtle.rst:2248 +#: ../../library/turtle.rst:1998 +#, fuzzy msgid "" -"Mode \"standard\" is compatible with old :mod:`!turtle`. Mode \"logo\" is " -"compatible with most Logo turtle graphics. Mode \"world\" uses user-defined " -"\"world coordinates\". **Attention**: in this mode angles appear distorted " -"if ``x/y`` unit-ratio doesn't equal 1." +"Mode \"standard\" is compatible with the old :mod:`!turtle` module. Mode " +"\"logo\" is compatible with most Logo turtle graphics. Mode \"world\" uses " +"user-defined world coordinates, see :func:`setworldcoordinates`. In this " +"mode, angles appear distorted if the x and y units are not of equal length." msgstr "" "Der Modus \"standard\" ist kompatibel mit dem alten :mod:`!turtle`. Der " "Modus \"logo\" ist kompatibel mit den meisten Logo-Turtle-Grafiken. Der " @@ -3780,45 +3160,46 @@ msgstr "" "**Achtung**: In diesem Modus erscheinen Winkel verzerrt, wenn das ``x/y``-" "Einheitsverhältnis nicht gleich 1 ist." -#: ../../library/turtle.rst:2254 +#: ../../library/turtle.rst:2004 msgid "Mode" msgstr "Modus" -#: ../../library/turtle.rst:2254 +#: ../../library/turtle.rst:2004 msgid "Initial turtle heading" msgstr "Anfängliche Ausrichtung der Turtle" -#: ../../library/turtle.rst:2254 +#: ../../library/turtle.rst:2004 msgid "positive angles" msgstr "positive Winkel" -#: ../../library/turtle.rst:2256 +#: ../../library/turtle.rst:2006 msgid "\"standard\"" msgstr "\"standard\"" -#: ../../library/turtle.rst:2256 +#: ../../library/turtle.rst:2006 msgid "to the right (east)" msgstr "nach rechts (Osten)" -#: ../../library/turtle.rst:2256 +#: ../../library/turtle.rst:2006 msgid "counterclockwise" msgstr "gegen den Uhrzeigersinn" -#: ../../library/turtle.rst:2257 +#: ../../library/turtle.rst:2007 msgid "\"logo\"" msgstr "\"logo\"" -#: ../../library/turtle.rst:2257 +#: ../../library/turtle.rst:2007 msgid "upward (north)" msgstr "nach oben (Norden)" -#: ../../library/turtle.rst:2257 +#: ../../library/turtle.rst:2007 msgid "clockwise" msgstr "im Uhrzeigersinn" -#: ../../library/turtle.rst:2260 +#: ../../library/turtle.rst:2010 +#, fuzzy msgid "" -">>> mode(\"logo\") # resets turtle heading to north\n" +">>> mode(\"logo\") # resets turtle heading to north\n" ">>> mode()\n" "'logo'" msgstr "" @@ -3826,19 +3207,16 @@ msgstr "" ">>> mode()\n" "'logo'" -#: ../../library/turtle.rst:2270 -msgid "one of the values 1.0 or 255" -msgstr "einer der Werte 1.0 oder 255" - -#: ../../library/turtle.rst:2272 +#: ../../library/turtle.rst:2022 +#, fuzzy 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*." +"Return the colormode or set it to 1.0 or 255. After setting it, the *r*, *g* " +"and *b* values of color triples have to be between 0 and *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." -#: ../../library/turtle.rst:2275 +#: ../../library/turtle.rst:2025 msgid "" ">>> screen.colormode(1)\n" ">>> turtle.pencolor(240, 160, 80)\n" @@ -3864,7 +3242,7 @@ msgstr "" "255\n" ">>> turtle.pencolor(240,160,80)" -#: ../../library/turtle.rst:2293 +#: ../../library/turtle.rst:2043 msgid "" "Return the Canvas of this TurtleScreen. Useful for insiders who know what " "to do with a Tkinter Canvas." @@ -3872,7 +3250,7 @@ msgstr "" "Gib die Canvas dieses TurtleScreen zurück. Nützlich für Insider, die wissen, " "was mit einer Tkinter-Canvas anzufangen ist." -#: ../../library/turtle.rst:2296 +#: ../../library/turtle.rst:2046 msgid "" ">>> cv = screen.getcanvas()\n" ">>> cv\n" @@ -3882,12 +3260,12 @@ msgstr "" ">>> cv\n" "" -#: ../../library/turtle.rst:2306 +#: ../../library/turtle.rst:2056 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." -#: ../../library/turtle.rst:2308 +#: ../../library/turtle.rst:2058 msgid "" ">>> screen.getshapes()\n" "['arrow', 'blank', 'circle', ..., 'turtle']" @@ -3895,11 +3273,19 @@ msgstr "" ">>> screen.getshapes()\n" "['arrow', 'blank', 'circle', ..., 'turtle']" -#: ../../library/turtle.rst:2318 -msgid "There are four different ways to call this function:" -msgstr "Es gibt vier verschiedene Möglichkeiten, diese Funktion aufzurufen:" +#: ../../library/turtle.rst:2069 +msgid "" +"a string, a tuple of pairs of numbers, a :class:`Shape` object or ``None``" +msgstr "" + +#: ../../library/turtle.rst:2072 +#, fuzzy +msgid "" +"Add a turtle shape to the TurtleScreen's shape list. It can be called in " +"four different ways:" +msgstr "Füge nun die Shape zur Formenliste des Screens hinzu und verwende sie:" -#: ../../library/turtle.rst:2320 +#: ../../library/turtle.rst:2075 msgid "" "*name* is the name of an image file (PNG, GIF, PGM, and PPM) and *shape* is " "``None``: Install the corresponding image shape. ::" @@ -3907,19 +3293,11 @@ msgstr "" "*name* ist der Name einer Bilddatei (PNG, GIF, PGM und PPM) und *shape* ist " "``None``: Installiere die entsprechende Bildform. ::" -#: ../../library/turtle.rst:2323 +#: ../../library/turtle.rst:2078 msgid ">>> screen.register_shape(\"turtle.gif\")" msgstr ">>> screen.register_shape(\"turtle.gif\")" -#: ../../library/turtle.rst:2326 ../../library/turtle.rst:2335 -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!" - -#: ../../library/turtle.rst:2329 +#: ../../library/turtle.rst:2080 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. ::" @@ -3927,11 +3305,11 @@ msgstr "" "*name* ist eine beliebige Zeichenkette und *shape* ist der Name einer " "Bilddatei (PNG, GIF, PGM und PPM): Installiere die entsprechende Bildform. ::" -#: ../../library/turtle.rst:2332 +#: ../../library/turtle.rst:2083 msgid ">>> screen.register_shape(\"turtle\", \"turtle.gif\")" msgstr ">>> screen.register_shape(\"turtle\", \"turtle.gif\")" -#: ../../library/turtle.rst:2338 +#: ../../library/turtle.rst:2085 msgid "" "*name* is an arbitrary string and *shape* is a tuple of pairs of " "coordinates: Install the corresponding polygon shape." @@ -3939,11 +3317,11 @@ msgstr "" "*name* ist eine beliebige Zeichenkette und *shape* ist ein Tupel aus " "Koordinatenpaaren: Installiere die entsprechende Polygonform." -#: ../../library/turtle.rst:2341 +#: ../../library/turtle.rst:2088 msgid ">>> screen.register_shape(\"triangle\", ((5,-3), (0,5), (-5,-3)))" msgstr ">>> screen.register_shape(\"triangle\", ((5,-3), (0,5), (-5,-3)))" -#: ../../library/turtle.rst:2346 +#: ../../library/turtle.rst:2093 msgid "" "*name* is an arbitrary string and *shape* is a (compound) :class:`Shape` " "object: Install the corresponding compound shape." @@ -3952,16 +3330,17 @@ msgstr "" "(zusammengesetztes) :class:`Shape`-Objekt: Installiere die entsprechende " "zusammengesetzte Form." -#: ../../library/turtle.rst:2349 +#: ../../library/turtle.rst:2096 +#, fuzzy msgid "" -"Add a turtle shape to TurtleScreen's shapelist. Only thusly registered " -"shapes can be used by issuing the command ``shape(shapename)``." +"Image shapes do not rotate when turning the turtle, so they do not display " +"the heading of the turtle. To use a registered shape, call :func:`shape` " +"with its name." msgstr "" -"Füge eine Turtle-Form zur Formenliste des TurtleScreen hinzu. Nur so " -"registrierte Formen können durch den Befehl ``shape(shapename)`` verwendet " -"werden." +"Bildformen drehen sich *nicht* mit, wenn die Turtle gedreht wird, sie zeigen " +"also nicht die Ausrichtung der Turtle an!" -#: ../../library/turtle.rst:2352 +#: ../../library/turtle.rst:2100 msgid "" "Added support for PNG, PGM, and PPM image formats. Both a shape name and an " "image file name can be specified." @@ -3969,11 +3348,11 @@ msgstr "" "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:2359 +#: ../../library/turtle.rst:2107 msgid "Return the list of turtles on the screen." msgstr "Gib die Liste der Turtles auf dem Screen zurück." -#: ../../library/turtle.rst:2361 +#: ../../library/turtle.rst:2109 msgid "" ">>> for turtle in screen.turtles():\n" "... turtle.color(\"red\")" @@ -3981,11 +3360,11 @@ msgstr "" ">>> for turtle in screen.turtles():\n" "... turtle.color(\"red\")" -#: ../../library/turtle.rst:2370 +#: ../../library/turtle.rst:2118 msgid "Return the height of the turtle window. ::" msgstr "Gib die Höhe des Turtle-Fensters zurück. ::" -#: ../../library/turtle.rst:2372 +#: ../../library/turtle.rst:2120 msgid "" ">>> screen.window_height()\n" "480" @@ -3993,11 +3372,11 @@ msgstr "" ">>> screen.window_height()\n" "480" -#: ../../library/turtle.rst:2378 +#: ../../library/turtle.rst:2126 msgid "Return the width of the turtle window. ::" msgstr "Gib die Weite des Turtle-Fensters zurück. ::" -#: ../../library/turtle.rst:2380 +#: ../../library/turtle.rst:2128 msgid "" ">>> screen.window_width()\n" "640" @@ -4005,19 +3384,21 @@ msgstr "" ">>> screen.window_width()\n" "640" -#: ../../library/turtle.rst:2387 -msgid "Methods specific to Screen, not inherited from TurtleScreen" -msgstr "Methoden spezifisch für Screen, nicht von TurtleScreen geerbt" +#: ../../library/turtle.rst:2136 +#, fuzzy +msgid "Screen-only methods" +msgstr "Turtle-Methoden" -#: ../../library/turtle.rst:2391 -msgid "Shut the turtlegraphics window." +#: ../../library/turtle.rst:2140 +#, fuzzy +msgid "Close the turtle graphics window." msgstr "Schließe das Turtle-Grafikfenster." -#: ../../library/turtle.rst:2396 +#: ../../library/turtle.rst:2145 msgid "Bind ``bye()`` method to mouse clicks on the Screen." msgstr "Binde die Methode ``bye()`` an Mausklicks auf dem Screen." -#: ../../library/turtle.rst:2399 +#: ../../library/turtle.rst:2148 msgid "" "If the value \"using_IDLE\" in the configuration dictionary is ``False`` " "(default value), also enter mainloop. Remark: If IDLE with the ``-n`` " @@ -4031,16 +3412,16 @@ msgstr "" "`turtle.cfg` auf ``True`` gesetzt werden. In diesem Fall ist IDLEs eigene " "mainloop auch für das Client-Skript aktiv." -#: ../../library/turtle.rst:2408 +#: ../../library/turtle.rst:2157 msgid "Save the current turtle drawing (and turtles) as a PostScript file." msgstr "" "Speichere die aktuelle Turtle-Zeichnung (und Turtles) als PostScript-Datei." -#: ../../library/turtle.rst:2410 +#: ../../library/turtle.rst:2159 msgid "the path of the saved PostScript file" msgstr "der Pfad der gespeicherten PostScript-Datei" -#: ../../library/turtle.rst:2411 +#: ../../library/turtle.rst:2160 msgid "" "if ``False`` and there already exists a file with the given filename, then " "the function will raise a ``FileExistsError``. If it is ``True``, the file " @@ -4050,7 +3431,7 @@ msgstr "" "Dateinamen, löst die Funktion einen ``FileExistsError`` aus. Ist es " "``True``, wird die Datei überschrieben." -#: ../../library/turtle.rst:2416 +#: ../../library/turtle.rst:2165 msgid "" ">>> screen.save(\"my_drawing.ps\")\n" ">>> screen.save(\"my_drawing.ps\", overwrite=True)" @@ -4058,7 +3439,7 @@ msgstr "" ">>> screen.save(\"my_drawing.ps\")\n" ">>> screen.save(\"my_drawing.ps\", overwrite=True)" -#: ../../library/turtle.rst:2426 +#: ../../library/turtle.rst:2175 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:" @@ -4068,7 +3449,7 @@ msgstr "" "sind im Konfigurations-Dictionary gespeichert und können über eine :file:" "`turtle.cfg`-Datei geändert werden." -#: ../../library/turtle.rst:2430 +#: ../../library/turtle.rst:2179 msgid "" "if an integer, a size in pixels, if a float, a fraction of the screen; " "default is 50% of screen" @@ -4076,7 +3457,7 @@ msgstr "" "bei einer Ganzzahl eine Größe in Pixeln, bei einer Gleitkommazahl ein Anteil " "des Bildschirms; Standard ist 50 % des Bildschirms" -#: ../../library/turtle.rst:2432 +#: ../../library/turtle.rst:2181 msgid "" "if an integer, the height in pixels, if a float, a fraction of the screen; " "default is 75% of screen" @@ -4084,7 +3465,7 @@ msgstr "" "bei einer Ganzzahl die Höhe in Pixeln, bei einer Gleitkommazahl ein Anteil " "des Bildschirms; Standard ist 75 % des Bildschirms" -#: ../../library/turtle.rst:2434 +#: ../../library/turtle.rst:2183 msgid "" "if positive, starting position in pixels from the left edge of the screen, " "if negative from the right edge, if ``None``, center window horizontally" @@ -4093,7 +3474,7 @@ msgstr "" "Bildschirmrand aus, bei einem negativen Wert vom rechten Rand aus, bei " "``None`` wird das Fenster horizontal zentriert" -#: ../../library/turtle.rst:2437 +#: ../../library/turtle.rst:2186 msgid "" "if positive, starting position in pixels from the top edge of the screen, if " "negative from the bottom edge, if ``None``, center window vertically" @@ -4102,7 +3483,7 @@ msgstr "" "Bildschirmrand aus, bei einem negativen Wert vom unteren Rand aus, bei " "``None`` wird das Fenster vertikal zentriert" -#: ../../library/turtle.rst:2441 +#: ../../library/turtle.rst:2190 msgid "" ">>> screen.setup (width=200, height=200, startx=0, starty=0)\n" ">>> # sets window to 200x200 pixels, in upper left of screen\n" @@ -4114,25 +3495,24 @@ msgstr "" ">>> screen.setup(width=.75, height=0.5, startx=None, starty=None)\n" ">>> # sets window to 75% of screen by 50% of screen and centers" -#: ../../library/turtle.rst:2452 -msgid "a string that is shown in the titlebar of the turtle graphics window" +#: ../../library/turtle.rst:2203 +#, fuzzy +msgid "" +"Set the title of the turtle window to *titlestring*. The title is shown in " +"the title bar of the turtle graphics window." msgstr "" "eine Zeichenkette, die in der Titelleiste des Turtle-Grafikfensters " "angezeigt wird" -#: ../../library/turtle.rst:2455 -msgid "Set title of turtle window to *titlestring*." -msgstr "Setze den Titel des Turtle-Fensters auf *titlestring*." - -#: ../../library/turtle.rst:2457 +#: ../../library/turtle.rst:2206 msgid ">>> screen.title(\"Welcome to the turtle zoo!\")" msgstr ">>> screen.title(\"Welcome to the turtle zoo!\")" -#: ../../library/turtle.rst:2464 +#: ../../library/turtle.rst:2213 msgid "Public classes" msgstr "Öffentliche Klassen" -#: ../../library/turtle.rst:2470 +#: ../../library/turtle.rst:2219 msgid "" "a :class:`!tkinter.Canvas`, a :class:`ScrolledCanvas` or a :class:" "`TurtleScreen`" @@ -4140,7 +3520,7 @@ msgstr "" "ein :class:`!tkinter.Canvas`, ein :class:`ScrolledCanvas` oder ein :class:" "`TurtleScreen`" -#: ../../library/turtle.rst:2473 +#: ../../library/turtle.rst:2222 msgid "" "Create a turtle. The turtle has all methods described above as \"methods of " "Turtle/RawTurtle\"." @@ -4148,7 +3528,7 @@ msgstr "" "Erstelle eine Turtle. Die Turtle hat alle oben als \"Methoden von Turtle/" "RawTurtle\" beschriebenen Methoden." -#: ../../library/turtle.rst:2479 +#: ../../library/turtle.rst:2228 msgid "" "Subclass of RawTurtle, has the same interface but draws on a default :class:" "`Screen` object created automatically when needed for the first time." @@ -4157,11 +3537,11 @@ msgstr "" "einem Standard-:class:`Screen`-Objekt, das automatisch erstellt wird, wenn " "es zum ersten Mal benötigt wird." -#: ../../library/turtle.rst:2485 +#: ../../library/turtle.rst:2234 msgid "a :class:`!tkinter.Canvas`" msgstr "a :class:`!tkinter.Canvas`" -#: ../../library/turtle.rst:2487 +#: ../../library/turtle.rst:2236 msgid "" "Provides screen oriented methods like :func:`bgcolor` etc. that are " "described above." @@ -4169,256 +3549,389 @@ msgstr "" "Stellt bildschirmorientierte Methoden wie :func:`bgcolor` usw. bereit, die " "oben beschrieben sind." -#: ../../library/turtle.rst:2492 +#: ../../library/turtle.rst:2241 msgid "" -"Subclass of TurtleScreen, with :ref:`four methods added `." +"Subclass of :class:`TurtleScreen`, with :ref:`four methods added " +"`. Calling ``Screen()`` returns the single screen object. If " +"it does not exist yet, it is created. Otherwise the existing one is returned." msgstr "" -"Unterklasse von TurtleScreen, mit :ref:`vier hinzugefügten Methoden " -"`." -#: ../../library/turtle.rst:2497 +#: ../../library/turtle.rst:2249 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:2252 +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." + +#: ../../library/turtle.rst:2258 +msgid "depends on *type_*" +msgstr "" + +#: ../../library/turtle.rst:2260 +msgid "" +"Data structure modeling shapes. *type_* is one of the strings \"polygon\", " +"\"image\" or \"compound\". What *data* must be depends on *type_*: for " +"\"polygon\" a tuple of pairs of coordinates, for \"image\" an image (only " +"used internally), and for \"compound\" ``None``, as a compound shape is " +"built up using the :meth:`addcomponent` method." +msgstr "" + +#: ../../library/turtle.rst:2268 +#, fuzzy +msgid "a tuple of pairs of numbers" +msgstr "ein Polygon, d.h. ein Tupel aus Zahlenpaaren" + +#: ../../library/turtle.rst:2269 +msgid "a color" +msgstr "" + +#: ../../library/turtle.rst:2270 +#, fuzzy +msgid "a color or ``None``" +msgstr "eine Zahl oder ``None``" + +#: ../../library/turtle.rst:2272 +msgid "" +"Add a component to a shape of type \"compound\". *poly* is a polygon, a " +"tuple of pairs of numbers. *fill* is the color the polygon is filled with " +"and *outline* is the color of its outline. If *outline* is not given, *fill* " +"is used for it as well." +msgstr "" + +#: ../../library/turtle.rst:2277 +msgid "Example:" +msgstr "Beispiel:" + +#: ../../library/turtle.rst:2279 +#, fuzzy +msgid "" +">>> poly = ((0,0), (10,-5), (0,10), (-10,-5))\n" +">>> s = Shape(\"compound\")\n" +">>> s.addcomponent(poly, \"red\", \"blue\")\n" +">>> # ... add more components and then use register_shape()" +msgstr "" +">>> poly = ((0,0),(10,-5),(0,10),(-10,-5))\n" +">>> s = Shape(\"compound\")\n" +">>> s.addcomponent(poly, \"red\", \"blue\")\n" +">>> # ... add more components and then use register_shape()" + +#: ../../library/turtle.rst:2287 +msgid "See :ref:`compoundshapes`." +msgstr "Siehe :ref:`compoundshapes`." + +#: ../../library/turtle.rst:2292 +msgid "" +"A two-dimensional vector class, used as a helper class for implementing " +"turtle graphics. May be useful for turtle graphics programs too. Derived " +"from tuple, so a vector is a tuple!" +msgstr "" +"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:2296 +msgid "Provides (for *a*, *b* vectors, *k* number):" +msgstr "Bietet (für Vektoren *a*, *b*, Zahl *k*):" + +#: ../../library/turtle.rst:2298 +msgid "``a + b`` vector addition" +msgstr "``a + b`` Vectoraddition" + +#: ../../library/turtle.rst:2299 +msgid "``a - b`` vector subtraction" +msgstr "``a - b`` Vectorsubtraction" + +#: ../../library/turtle.rst:2300 +msgid "``a * b`` inner product" +msgstr "``a * b`` Skalarprodukt" + +#: ../../library/turtle.rst:2301 +msgid "``k * a`` and ``a * k`` multiplication with scalar" +msgstr "``k * a`` und ``a * k`` Multiplikation mit Skalar" + +#: ../../library/turtle.rst:2302 +msgid "``abs(a)`` absolute value of a" +msgstr "``abs(a)`` Absolutwert von a" + +#: ../../library/turtle.rst:2303 +msgid "``a.rotate(angle)`` rotation" +msgstr "``a.rotate(angle)`` Rotation" + +#: ../../library/turtle.rst:2307 +msgid "Exceptions" +msgstr "Erklärungen" + +#: ../../library/turtle.rst:2309 +msgid "The :mod:`!turtle` module defines the following exception:" +msgstr "Das Modul :mod:`!turtle` definiert die folgende Ausnahme:" + +#: ../../library/turtle.rst:2313 +msgid "" +"Raised for invalid arguments or operations. For example, a malformed color " +"string:" +msgstr "" +"Wird bei ungültigen Argumenten oder Operationen ausgelöst. Zum Beispiel bei " +"einer fehlerhaften Farbzeichenkette:" + +#: ../../library/turtle.rst:2316 +msgid "" +">>> turtle.color(\"blau\")\n" +"Traceback (most recent call last):\n" +" ...\n" +"turtle.TurtleGraphicsError: bad color string: blau" +msgstr "" +">>> turtle.color(\"blau\")\n" +"Traceback (most recent call last):\n" +" ...\n" +"turtle.TurtleGraphicsError: bad color string: blau" + +#: ../../library/turtle.rst:2330 +msgid "How-to guides" +msgstr "How-to-Anleitungen" + +#: ../../library/turtle.rst:2332 +msgid "This section covers some typical turtle use-cases and approaches." +msgstr "" +"Dieser Abschnitt behandelt einige typische Anwendungsfälle und " +"Vorgehensweisen für Turtle." + +#: ../../library/turtle.rst:2336 +msgid "Automatically begin and end filling" +msgstr "Füllen automatisch beginnen und beenden" + +#: ../../library/turtle.rst:2338 +msgid "" +"Starting with Python 3.14, you can use the :func:`fill` :term:`context " +"manager` instead of :func:`begin_fill` and :func:`end_fill` to automatically " +"begin and end fill. Here is an example::" +msgstr "" +"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:2342 +msgid "" +"with fill():\n" +" for i in range(4):\n" +" forward(100)\n" +" right(90)\n" +"\n" +"forward(200)" +msgstr "" +"with fill():\n" +" for i in range(4):\n" +" forward(100)\n" +" right(90)\n" +"\n" +"forward(200)" + +#: ../../library/turtle.rst:2349 +msgid "The code above is equivalent to::" +msgstr "Der obige Code ist äquivalent zu::" + +#: ../../library/turtle.rst:2351 +msgid "" +"begin_fill()\n" +"for i in range(4):\n" +" forward(100)\n" +" right(90)\n" +"end_fill()\n" +"\n" +"forward(200)" +msgstr "" +"begin_fill()\n" +"for i in range(4):\n" +" forward(100)\n" +" right(90)\n" +"end_fill()\n" +"\n" +"forward(200)" + +#: ../../library/turtle.rst:2361 +msgid "Use the ``turtle`` module namespace" +msgstr "Das ``turtle``-Modul im eigenen Namensraum verwenden" + +#: ../../library/turtle.rst:2363 +msgid "" +"Using ``from turtle import *`` is convenient - but be warned that it imports " +"a rather large collection of objects, and if you're doing anything but " +"turtle graphics you run the risk of a name conflict (this becomes even more " +"an issue if you're using turtle graphics in a script where other modules " +"might be imported)." +msgstr "" +"Es ist praktisch, ``from turtle import *`` zu verwenden – aber sei gewarnt, " +"dass dadurch eine recht große Sammlung von Objekten importiert wird, und " +"wenn du irgendetwas außer Turtle-Grafik machst, läufst du Gefahr eines " +"Namenskonflikts (dies wird noch problematischer, wenn du Turtle-Grafik in " +"einem Skript verwendest, in dem auch andere Module importiert werden " +"könnten)." -#: ../../library/turtle.rst:2500 +#: ../../library/turtle.rst:2369 msgid "" -"Used by class Screen, which thus automatically provides a ScrolledCanvas as " -"playground for the turtles." +"The solution is to use ``import turtle`` - ``fd()`` becomes ``turtle.fd()``, " +"``width()`` becomes ``turtle.width()`` and so on. (If typing \"turtle\" over " +"and over again becomes tedious, use for example ``import turtle as t`` " +"instead.)" msgstr "" -"Wird von der Klasse Screen verwendet, die dadurch automatisch einen " -"ScrolledCanvas als Spielfläche für die Turtles bereitstellt." +"Die Lösung besteht darin, ``import turtle`` zu verwenden - ``fd()`` wird zu " +"``turtle.fd()``, ``width()`` wird zu ``turtle.width()`` und so weiter. " +"(Falls es lästig wird, immer wieder \"turtle\" zu tippen, verwende " +"stattdessen zum Beispiel ``import turtle as t``.)" -#: ../../library/turtle.rst:2505 -msgid "one of the strings \"polygon\", \"image\", \"compound\"" -msgstr "eine der Zeichenketten \"polygon\", \"image\", \"compound\"" +#: ../../library/turtle.rst:2376 +msgid "Use turtle graphics in a script" +msgstr "Turtle-Grafik in einem Skript verwenden" -#: ../../library/turtle.rst:2507 +#: ../../library/turtle.rst:2378 msgid "" -"Data structure modeling shapes. The pair ``(type_, data)`` must follow this " -"specification:" +"It's recommended to use the ``turtle`` module namespace as described " +"immediately above, for example::" msgstr "" -"Datenstruktur zur Modellierung von Formen. Das Paar ``(type_, data)`` muss " -"dieser Spezifikation folgen:" - -#: ../../library/turtle.rst:2512 -msgid "*type_*" -msgstr "*type_*" - -#: ../../library/turtle.rst:2512 -msgid "*data*" -msgstr "*data*" - -#: ../../library/turtle.rst:2514 -msgid "\"polygon\"" -msgstr "\"polygon\"" - -#: ../../library/turtle.rst:2514 -msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" -msgstr "ein Polygon-Tupel, d. h. ein Tupel aus Koordinatenpaaren" - -#: ../../library/turtle.rst:2515 -msgid "\"image\"" -msgstr "\"image\"" - -#: ../../library/turtle.rst:2515 -msgid "an image (in this form only used internally!)" -msgstr "ein Bild (in dieser Form nur intern verwendet!)" - -#: ../../library/turtle.rst:2516 -msgid "\"compound\"" -msgstr "\"compound\"" +"Es wird empfohlen, den Namensraum des Moduls ``turtle`` wie unmittelbar oben " +"beschrieben zu verwenden, zum Beispiel::" -#: ../../library/turtle.rst:2516 +#: ../../library/turtle.rst:2381 msgid "" -"``None`` (a compound shape has to be constructed using the :meth:" -"`addcomponent` method)" +"import turtle as t\n" +"from random import random\n" +"\n" +"for i in range(100):\n" +" steps = int(random() * 100)\n" +" angle = int(random() * 360)\n" +" t.right(angle)\n" +" t.fd(steps)" msgstr "" -"``None`` (eine zusammengesetzte Form muss mit der Methode :meth:" -"`addcomponent` erstellt werden)" - -#: ../../library/turtle.rst:2522 -msgid "a polygon, i.e. a tuple of pairs of numbers" -msgstr "ein Polygon, d.h. ein Tupel aus Zahlenpaaren" - -#: ../../library/turtle.rst:2523 -msgid "a color the *poly* will be filled with" -msgstr "eine Farbe, mit der das *poly* gefüllt wird" - -#: ../../library/turtle.rst:2524 -msgid "a color for the poly's outline (if given)" -msgstr "eine Farbe für den Umriss des poly (falls angegeben)" - -#: ../../library/turtle.rst:2526 -msgid "Example:" -msgstr "Beispiel:" +"import turtle as t\n" +"from random import random\n" +"\n" +"for i in range(100):\n" +" steps = int(random() * 100)\n" +" angle = int(random() * 360)\n" +" t.right(angle)\n" +" t.fd(steps)" -#: ../../library/turtle.rst:2528 +#: ../../library/turtle.rst:2390 msgid "" -">>> poly = ((0,0),(10,-5),(0,10),(-10,-5))\n" -">>> s = Shape(\"compound\")\n" -">>> s.addcomponent(poly, \"red\", \"blue\")\n" -">>> # ... add more components and then use register_shape()" +"Another step is also required though - as soon as the script ends, Python " +"will also close the turtle's window. Add::" msgstr "" -">>> poly = ((0,0),(10,-5),(0,10),(-10,-5))\n" -">>> s = Shape(\"compound\")\n" -">>> s.addcomponent(poly, \"red\", \"blue\")\n" -">>> # ... add more components and then use register_shape()" +"Ein weiterer Schritt ist jedoch ebenfalls erforderlich - sobald das Skript " +"endet, wird Python auch das Fenster der Turtle schließen. Füge Folgendes " +"hinzu::" -#: ../../library/turtle.rst:2536 -msgid "See :ref:`compoundshapes`." -msgstr "Siehe :ref:`compoundshapes`." +#: ../../library/turtle.rst:2393 +msgid "t.mainloop()" +msgstr "t.mainloop()" -#: ../../library/turtle.rst:2541 +#: ../../library/turtle.rst:2395 msgid "" -"A two-dimensional vector class, used as a helper class for implementing " -"turtle graphics. May be useful for turtle graphics programs too. Derived " -"from tuple, so a vector is a tuple!" +"to the end of the script. The script will now wait to be dismissed and will " +"not exit until it is terminated, for example by closing the turtle graphics " +"window." msgstr "" -"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:2545 -msgid "Provides (for *a*, *b* vectors, *k* number):" -msgstr "Bietet (für Vektoren *a*, *b*, Zahl *k*):" - -#: ../../library/turtle.rst:2547 -msgid "``a + b`` vector addition" -msgstr "``a + b`` Vectoraddition" - -#: ../../library/turtle.rst:2548 -msgid "``a - b`` vector subtraction" -msgstr "``a - b`` Vectorsubtraction" - -#: ../../library/turtle.rst:2549 -msgid "``a * b`` inner product" -msgstr "``a * b`` Skalarprodukt" - -#: ../../library/turtle.rst:2550 -msgid "``k * a`` and ``a * k`` multiplication with scalar" -msgstr "``k * a`` und ``a * k`` Multiplikation mit Skalar" - -#: ../../library/turtle.rst:2551 -msgid "``abs(a)`` absolute value of a" -msgstr "``abs(a)`` Absolutwert von a" - -#: ../../library/turtle.rst:2552 -msgid "``a.rotate(angle)`` rotation" -msgstr "``a.rotate(angle)`` Rotation" - -#: ../../library/turtle.rst:2556 -msgid "Exceptions" -msgstr "Erklärungen" +"am Ende des Skripts. Das Skript wartet nun darauf, geschlossen zu werden, " +"und beendet sich nicht, bis es beendet wird, zum Beispiel durch Schließen " +"des Turtle-Grafikfensters." -#: ../../library/turtle.rst:2558 -msgid "The :mod:`!turtle` module defines the following exception:" -msgstr "Das Modul :mod:`!turtle` definiert die folgende Ausnahme:" +#: ../../library/turtle.rst:2401 +msgid "Use object-oriented turtle graphics" +msgstr "Objektorientierte Turtle-Grafik verwenden" -#: ../../library/turtle.rst:2562 +#: ../../library/turtle.rst:2403 msgid "" -"Raised for invalid arguments or operations. For example, a malformed color " -"string:" +":ref:`Explanation of the object-oriented interface `" msgstr "" -"Wird bei ungültigen Argumenten oder Operationen ausgelöst. Zum Beispiel bei " -"einer fehlerhaften Farbzeichenkette:" +":ref:`Erklärung der objektorientierten Schnittstelle `" -#: ../../library/turtle.rst:2565 +#: ../../library/turtle.rst:2405 msgid "" -">>> turtle.color(\"blau\")\n" -"Traceback (most recent call last):\n" -" ...\n" -"turtle.TurtleGraphicsError: bad color string: blau" +"Other than for very basic introductory purposes, or for trying things out as " +"quickly as possible, it's more usual and much more powerful to use the " +"object-oriented approach to turtle graphics. For example, this allows " +"multiple turtles on screen at once." msgstr "" -">>> turtle.color(\"blau\")\n" -"Traceback (most recent call last):\n" -" ...\n" -"turtle.TurtleGraphicsError: bad color string: blau" - -#: ../../library/turtle.rst:2577 -msgid "Explanation" -msgstr "Erklärung" +"Abgesehen von sehr grundlegenden Einführungszwecken oder um Dinge so schnell " +"wie möglich auszuprobieren, ist es üblicher und deutlich leistungsfähiger, " +"den objektorientierten Ansatz für Turtle-Grafik zu verwenden. Dies " +"ermöglicht zum Beispiel mehrere Turtles gleichzeitig auf dem Bildschirm." -#: ../../library/turtle.rst:2579 +#: ../../library/turtle.rst:2410 msgid "" -"A turtle object draws on a screen object, and there a number of key classes " -"in the turtle object-oriented interface that can be used to create them and " -"relate them to each other." +"In this approach, the various turtle commands are methods of objects (mostly " +"of ``Turtle`` objects). You *can* use the object-oriented approach in the " +"shell, but it would be more typical in a Python script." msgstr "" -"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." +"Bei diesem Ansatz sind die verschiedenen Turtle-Befehle Methoden von " +"Objekten (meist von ``Turtle``-Objekten). Du *kannst* den objektorientierten " +"Ansatz auch in der Shell verwenden, typischer wäre es aber in einem Python-" +"Skript." -#: ../../library/turtle.rst:2583 -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." +#: ../../library/turtle.rst:2414 +msgid "The example above then becomes::" +msgstr "Das obige Beispiel wird dann zu::" -#: ../../library/turtle.rst:2586 +#: ../../library/turtle.rst:2416 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`." +"from turtle import Turtle\n" +"from random import random\n" +"\n" +"t = Turtle()\n" +"for i in range(100):\n" +" steps = int(random() * 100)\n" +" angle = int(random() * 360)\n" +" t.right(angle)\n" +" t.fd(steps)\n" +"\n" +"t.screen.mainloop()" 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." +"from turtle import Turtle\n" +"from random import random\n" +"\n" +"t = Turtle()\n" +"for i in range(100):\n" +" steps = int(random() * 100)\n" +" angle = int(random() * 360)\n" +" t.right(angle)\n" +" t.fd(steps)\n" +"\n" +"t.screen.mainloop()" -#: ../../library/turtle.rst:2592 +#: ../../library/turtle.rst:2428 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." +"Note the last line. ``t.screen`` is an instance of the :class:`Screen` that " +"a Turtle instance exists on; it's created automatically along with the " +"turtle." msgstr "" -":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." +"Beachte die letzte Zeile. ``t.screen`` ist eine Instanz der :class:`Screen`, " +"auf der eine Turtle-Instanz existiert; sie wird automatisch zusammen mit der " +"Turtle erstellt." -#: ../../library/turtle.rst:2599 -msgid "" -"The functional interface for turtle graphics uses the various methods of " -"``Turtle`` and ``TurtleScreen``/``Screen``. Behind the scenes, a screen " -"object is automatically created whenever a function derived from a " -"``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." +#: ../../library/turtle.rst:2432 +msgid "The turtle's screen can be customised, for example::" +msgstr "Der Turtle-Scree kann angepasst werden, zum Beispiel::" -#: ../../library/turtle.rst:2605 +#: ../../library/turtle.rst:2434 msgid "" -"To use multiple turtles on a screen, the object-oriented interface must be " -"used." +"t.screen.title('Object-oriented turtle demo')\n" +"t.screen.bgcolor(\"orange\")" msgstr "" -"Um mehrere Turtles auf einem Screen zu verwenden, muss die objektorientierte " -"Schnittstelle genutzt werden." - -#: ../../library/turtle.rst:2610 -msgid "Help and configuration" -msgstr "Hilfe und Konfiguration" +"t.screen.title('Object-oriented turtle demo')\n" +"t.screen.bgcolor(\"orange\")" -#: ../../library/turtle.rst:2613 +#: ../../library/turtle.rst:2441 msgid "How to use help" msgstr "Wie man die Hilfe verwendet" -#: ../../library/turtle.rst:2615 +#: ../../library/turtle.rst:2443 msgid "" "The public methods of the Screen and Turtle classes are documented " "extensively via docstrings. So these can be used as online-help via the " @@ -4428,7 +3941,7 @@ msgstr "" "über Docstrings dokumentiert. Diese können daher über die Python-" "Hilfefunktionen als Online-Hilfe verwendet werden:" -#: ../../library/turtle.rst:2619 +#: ../../library/turtle.rst:2447 msgid "" "When using IDLE, tooltips show the signatures and first lines of the " "docstrings of typed in function-/method calls." @@ -4436,13 +3949,13 @@ msgstr "" "Bei Verwendung von IDLE zeigen Tooltips die Signaturen und die ersten Zeilen " "der Docstrings eingetippter Funktions-/Methodenaufrufe." -#: ../../library/turtle.rst:2622 +#: ../../library/turtle.rst:2450 msgid "Calling :func:`help` on methods or functions displays the docstrings::" msgstr "" "Der Aufruf von :func:`help` für Methoden oder Funktionen zeigt die " "Docstrings an::" -#: ../../library/turtle.rst:2624 +#: ../../library/turtle.rst:2452 msgid "" ">>> help(Screen.bgcolor)\n" "Help on method bgcolor in module turtle:\n" @@ -4502,7 +4015,7 @@ msgstr "" "\n" " >>> turtle.penup()" -#: ../../library/turtle.rst:2653 +#: ../../library/turtle.rst:2481 msgid "" "The docstrings of the functions which are derived from methods have a " "modified form::" @@ -4510,7 +4023,7 @@ msgstr "" "Die Docstrings der Funktionen, die von Methoden abgeleitet sind, haben eine " "abgewandelte Form::" -#: ../../library/turtle.rst:2656 +#: ../../library/turtle.rst:2484 msgid "" ">>> help(bgcolor)\n" "Help on function bgcolor in module turtle:\n" @@ -4574,7 +4087,7 @@ msgstr "" " Example:\n" " >>> penup()" -#: ../../library/turtle.rst:2687 +#: ../../library/turtle.rst:2515 msgid "" "These modified docstrings are created automatically together with the " "function definitions that are derived from the methods at import time." @@ -4583,11 +4096,11 @@ msgstr "" "Funktionsdefinitionen erstellt, die zur Importzeit von den Methoden " "abgeleitet werden." -#: ../../library/turtle.rst:2692 +#: ../../library/turtle.rst:2520 msgid "Translation of docstrings into different languages" msgstr "Übersetzung von Docstrings in verschiedene Sprachen" -#: ../../library/turtle.rst:2694 +#: ../../library/turtle.rst:2522 msgid "" "There is a utility to create a dictionary the keys of which are the method " "names and the values of which are the docstrings of the public methods of " @@ -4597,11 +4110,11 @@ msgstr "" "die Methodennamen und dessen Werte die Docstrings der öffentlichen Methoden " "der Klassen Screen und Turtle sind." -#: ../../library/turtle.rst:2700 +#: ../../library/turtle.rst:2528 msgid "a string, used as filename" msgstr "eine Zeichenkette, verwendet als Dateiname" -#: ../../library/turtle.rst:2702 +#: ../../library/turtle.rst:2530 msgid "" "Create and write docstring-dictionary to a Python script with the given " "filename. This function has to be called explicitly (it is not used by the " @@ -4616,7 +4129,7 @@ msgstr "" "ist als Vorlage für die Übersetzung der Docstrings in verschiedene Sprachen " "gedacht." -#: ../../library/turtle.rst:2708 +#: ../../library/turtle.rst:2536 msgid "" "If you (or your students) want to use :mod:`!turtle` with online help in " "your native language, you have to translate the docstrings and save the " @@ -4626,7 +4139,7 @@ msgstr "" "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:2712 +#: ../../library/turtle.rst:2540 msgid "" "If you have an appropriate entry in your :file:`turtle.cfg` file this " "dictionary will be read in at import time and will replace the original " @@ -4636,7 +4149,7 @@ msgstr "" "hast, wird dieses Dictionary zur Importzeit eingelesen und ersetzt die " "ursprünglichen englischen Docstrings." -#: ../../library/turtle.rst:2715 +#: ../../library/turtle.rst:2543 msgid "" "At the time of this writing there are docstring dictionaries in German and " "in Italian. (Requests please to glingl@aon.at.)" @@ -4644,11 +4157,11 @@ msgstr "" "Zum Zeitpunkt der Erstellung dieses Textes gibt es Docstring-Dictionaries " "auf Deutsch und auf Italienisch. (Anfragen bitte an glingl@aon.at.)" -#: ../../library/turtle.rst:2721 +#: ../../library/turtle.rst:2549 msgid "How to configure Screen and Turtles" msgstr "Wie man Screen und Turtles konfiguriert" -#: ../../library/turtle.rst:2723 +#: ../../library/turtle.rst:2551 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." @@ -4657,7 +4170,7 @@ msgstr "" "Verhalten des alten turtle-Moduls nach, um eine möglichst gute " "Kompatibilität damit zu bewahren." -#: ../../library/turtle.rst:2726 +#: ../../library/turtle.rst:2554 msgid "" "If you want to use a different configuration which better reflects the " "features of this module or which better fits to your needs, e.g. for use in " @@ -4671,13 +4184,13 @@ msgstr "" "``turtle.cfg`` vorbereiten, die zur Importzeit eingelesen wird und die " "Konfiguration entsprechend ihrer Einstellungen ändert." -#: ../../library/turtle.rst:2731 +#: ../../library/turtle.rst:2559 msgid "" "The built in configuration would correspond to the following ``turtle.cfg``:" msgstr "" "Die integrierte Konfiguration würde der folgenden ``turtle.cfg`` entsprechen:" -#: ../../library/turtle.rst:2733 +#: ../../library/turtle.rst:2561 msgid "" "width = 0.5\n" "height = 0.75\n" @@ -4721,11 +4234,11 @@ msgstr "" "title = Python Turtle Graphics\n" "using_IDLE = False" -#: ../../library/turtle.rst:2756 +#: ../../library/turtle.rst:2584 msgid "Short explanation of selected entries:" msgstr "Kurze Erklärung ausgewählter Einträge:" -#: ../../library/turtle.rst:2758 +#: ../../library/turtle.rst:2586 msgid "" "The first four lines correspond to the arguments of the :func:`Screen.setup " "` method." @@ -4733,7 +4246,7 @@ msgstr "" "Die ersten vier Zeilen entsprechen den Argumenten der Methode :func:`Screen." "setup `." -#: ../../library/turtle.rst:2760 +#: ../../library/turtle.rst:2588 msgid "" "Line 5 and 6 correspond to the arguments of the method :func:`Screen." "screensize `." @@ -4741,7 +4254,7 @@ msgstr "" "Zeile 5 und 6 entsprechen den Argumenten der Methode :func:`Screen." "screensize `." -#: ../../library/turtle.rst:2762 +#: ../../library/turtle.rst:2590 msgid "" "*shape* can be any of the built-in shapes, e.g: arrow, turtle, etc. For " "more info try ``help(shape)``." @@ -4749,7 +4262,7 @@ msgstr "" "*shape* kann eine der integrierten Formen sein, z. B.: arrow, turtle usw. " "Für weitere Informationen versuche ``help(shape)``." -#: ../../library/turtle.rst:2764 +#: ../../library/turtle.rst:2592 msgid "" "If you want to use no fill color (i.e. make the turtle transparent), you " "have to write ``fillcolor = \"\"`` (but all nonempty strings must not have " @@ -4760,7 +4273,7 @@ msgstr "" "nichtleeren Zeichenketten dürfen in der cfg-Datei keine Anführungszeichen " "haben)." -#: ../../library/turtle.rst:2767 +#: ../../library/turtle.rst:2595 msgid "" "If you want to reflect the turtle its state, you have to use ``resizemode = " "auto``." @@ -4768,7 +4281,7 @@ msgstr "" "Wenn die Turtle ihren Zustand widerspiegeln soll, musst du ``resizemode = " "auto`` verwenden." -#: ../../library/turtle.rst:2769 +#: ../../library/turtle.rst:2597 msgid "" "If you set e.g. ``language = italian`` the docstringdict :file:" "`turtle_docstringdict_italian.py` will be loaded at import time (if present " @@ -4778,7 +4291,7 @@ msgstr "" "`turtle_docstringdict_italian.py` zur Importzeit geladen (sofern es im " "Importpfad vorhanden ist, z. B. im selben Verzeichnis wie :mod:`!turtle`)." -#: ../../library/turtle.rst:2772 +#: ../../library/turtle.rst:2600 msgid "" "The entries *exampleturtle* and *examplescreen* define the names of these " "objects as they occur in the docstrings. The transformation of method-" @@ -4790,7 +4303,7 @@ msgstr "" "Methoden-Docstrings in Funktions-Docstrings werden diese Namen aus den " "Docstrings entfernt." -#: ../../library/turtle.rst:2776 +#: ../../library/turtle.rst:2604 msgid "" "*using_IDLE*: Set this to ``True`` if you regularly work with IDLE and its " "``-n`` switch (\"no subprocess\"). This will prevent :func:`exitonclick` to " @@ -4800,7 +4313,7 @@ msgstr "" "dessen Schalter ``-n`` (\"no subprocess\") arbeitest. Dies verhindert, dass :" "func:`exitonclick` die mainloop aufruft." -#: ../../library/turtle.rst:2780 +#: ../../library/turtle.rst:2608 msgid "" "There can be a :file:`turtle.cfg` file in the directory where :mod:`!turtle` " "is stored and an additional one in the current working directory. The " @@ -4810,7 +4323,7 @@ msgstr "" "turtle` gespeichert ist, sowie eine zusätzliche im aktuellen " "Arbeitsverzeichnis. Letztere überschreibt die Einstellungen der ersten." -#: ../../library/turtle.rst:2784 +#: ../../library/turtle.rst:2612 msgid "" "The :file:`Lib/turtledemo` directory contains a :file:`turtle.cfg` file. " "You can study it as an example and see its effects when running the demos " @@ -4820,11 +4333,83 @@ msgstr "" "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:2790 +#: ../../library/turtle.rst:2620 +msgid "Explanation" +msgstr "Erklärung" + +#: ../../library/turtle.rst:2622 +msgid "" +"A turtle object draws on a screen object, and there a number of key classes " +"in the turtle object-oriented interface that can be used to create them and " +"relate them to each other." +msgstr "" +"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:2626 +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." + +#: ../../library/turtle.rst:2629 +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`." +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." + +#: ../../library/turtle.rst:2635 +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." + +#: ../../library/turtle.rst:2642 +msgid "" +"The functional interface for turtle graphics uses the various methods of " +"``Turtle`` and ``TurtleScreen``/``Screen``. Behind the scenes, a screen " +"object is automatically created whenever a function derived from a " +"``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." + +#: ../../library/turtle.rst:2648 +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." + +#: ../../library/turtle.rst:2653 msgid ":mod:`!turtledemo` --- Demo scripts" msgstr ":mod:`!turtledemo` --- Demo-Skripte" -#: ../../library/turtle.rst:2795 +#: ../../library/turtle.rst:2658 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::" @@ -4833,26 +4418,26 @@ msgstr "" "Skripte können mit dem mitgelieferten Demo-Viewer wie folgt ausgeführt und " "betrachtet werden::" -#: ../../library/turtle.rst:2798 +#: ../../library/turtle.rst:2661 msgid "python -m turtledemo" msgstr "python -m turtledemo" -#: ../../library/turtle.rst:2800 +#: ../../library/turtle.rst:2663 msgid "" "Alternatively, you can run the demo scripts individually. For example, ::" msgstr "" "Alternativ kannst du die Demo-Skripte auch einzeln ausführen. Zum " "Beispiel: ::" -#: ../../library/turtle.rst:2802 +#: ../../library/turtle.rst:2665 msgid "python -m turtledemo.bytedesign" msgstr "python -m turtledemo.bytedesign" -#: ../../library/turtle.rst:2804 +#: ../../library/turtle.rst:2667 msgid "The :mod:`!turtledemo` package directory contains:" msgstr "Das Paketverzeichnis :mod:`!turtledemo` enthält:" -#: ../../library/turtle.rst:2806 +#: ../../library/turtle.rst:2669 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." @@ -4860,7 +4445,7 @@ msgstr "" "Einen Demo-Viewer :file:`__main__.py`, mit dem der Quellcode der Skripte " "betrachtet und gleichzeitig ausgeführt werden kann." -#: ../../library/turtle.rst:2808 +#: ../../library/turtle.rst:2671 msgid "" "Multiple scripts demonstrating different features of the :mod:`!turtle` " "module. Examples can be accessed via the Examples menu. They can also be " @@ -4870,7 +4455,7 @@ msgstr "" "demonstrieren. Auf die Beispiele kann über das Menü Examples zugegriffen " "werden. Sie können auch eigenständig ausgeführt werden." -#: ../../library/turtle.rst:2811 +#: ../../library/turtle.rst:2674 msgid "" "A :file:`turtle.cfg` file which serves as an example of how to write and use " "such files." @@ -4878,39 +4463,39 @@ msgstr "" "Eine :file:`turtle.cfg`-Datei, die als Beispiel dient, wie solche Dateien " "geschrieben und verwendet werden." -#: ../../library/turtle.rst:2814 +#: ../../library/turtle.rst:2677 msgid "The demo scripts are:" msgstr "Die Demo-Skripte sind:" -#: ../../library/turtle.rst:2821 +#: ../../library/turtle.rst:2684 msgid "Name" msgstr "Name" -#: ../../library/turtle.rst:2821 +#: ../../library/turtle.rst:2684 msgid "Description" msgstr "Beschreibung" -#: ../../library/turtle.rst:2821 +#: ../../library/turtle.rst:2684 msgid "Features" msgstr "Feature" -#: ../../library/turtle.rst:2823 +#: ../../library/turtle.rst:2686 msgid "``bytedesign``" msgstr "``bytedesign``" -#: ../../library/turtle.rst:2823 +#: ../../library/turtle.rst:2686 msgid "complex classical turtle graphics pattern" msgstr "komplexes klassisches Turtle-Grafik-Muster" -#: ../../library/turtle.rst:2823 +#: ../../library/turtle.rst:2686 msgid ":func:`tracer`, :func:`delay`, :func:`update`" msgstr ":func:`tracer`, :func:`delay`, :func:`update`" -#: ../../library/turtle.rst:2826 +#: ../../library/turtle.rst:2689 msgid "``chaos``" msgstr "``chaos``" -#: ../../library/turtle.rst:2826 +#: ../../library/turtle.rst:2689 msgid "" "graphs Verhulst dynamics, shows that computer's computations can generate " "results sometimes against the common sense expectations" @@ -4919,156 +4504,168 @@ msgstr "" "Computerberechnungen manchmal Ergebnisse liefern können, die dem gesunden " "Menschenverstand widersprechen" -#: ../../library/turtle.rst:2826 +#: ../../library/turtle.rst:2689 msgid "world coordinates" msgstr "Welt Koordinaten" -#: ../../library/turtle.rst:2832 +#: ../../library/turtle.rst:2695 msgid "``clock``" msgstr "``clock``" -#: ../../library/turtle.rst:2832 +#: ../../library/turtle.rst:2695 msgid "analog clock showing time of your computer" msgstr "analoge Uhr, die die Zeit deines Computers anzeigt" -#: ../../library/turtle.rst:2832 +#: ../../library/turtle.rst:2695 msgid "turtles as clock's hands, :func:`ontimer`" msgstr "Turtles als Uhrzeiger, :func:`ontimer`" -#: ../../library/turtle.rst:2835 +#: ../../library/turtle.rst:2698 msgid "``colormixer``" msgstr "``colormixer``" -#: ../../library/turtle.rst:2835 +#: ../../library/turtle.rst:2698 msgid "experiment with r, g, b" msgstr "Experiment mit r, g, b" -#: ../../library/turtle.rst:2837 +#: ../../library/turtle.rst:2698 +msgid ":func:`ondrag`" +msgstr ":func:`ondrag`" + +#: ../../library/turtle.rst:2700 msgid "``forest``" msgstr "``forest``" -#: ../../library/turtle.rst:2837 +#: ../../library/turtle.rst:2700 msgid "3 breadth-first trees" msgstr "3 Breitensuche-Bäume" -#: ../../library/turtle.rst:2837 +#: ../../library/turtle.rst:2700 msgid "randomization" msgstr "Zufallsgenerierung" -#: ../../library/turtle.rst:2839 +#: ../../library/turtle.rst:2702 msgid "``fractalcurves``" msgstr "``fractalcurves``" -#: ../../library/turtle.rst:2839 +#: ../../library/turtle.rst:2702 msgid "Hilbert & Koch curves" msgstr "Hilbert & Koch Kurven" -#: ../../library/turtle.rst:2839 +#: ../../library/turtle.rst:2702 msgid "recursion" msgstr "Rekursion" -#: ../../library/turtle.rst:2841 +#: ../../library/turtle.rst:2704 msgid "``lindenmayer``" msgstr "``lindenmayer``" -#: ../../library/turtle.rst:2841 +#: ../../library/turtle.rst:2704 msgid "ethnomathematics (indian kolams)" msgstr "Ethnomathematik (indische Kolams)" -#: ../../library/turtle.rst:2841 +#: ../../library/turtle.rst:2704 msgid "L-System" msgstr "L-System" -#: ../../library/turtle.rst:2844 +#: ../../library/turtle.rst:2707 msgid "``minimal_hanoi``" msgstr "``minimal_hanoi``" -#: ../../library/turtle.rst:2844 +#: ../../library/turtle.rst:2707 msgid "Towers of Hanoi" msgstr "Türme von Hannoi" -#: ../../library/turtle.rst:2844 +#: ../../library/turtle.rst:2707 msgid "Rectangular Turtles as Hanoi discs (:func:`shape`, :func:`shapesize`)" msgstr "" "Rechteckige Turtles als Hanoi-Scheiben (:func:`shape`, :func:`shapesize`)" -#: ../../library/turtle.rst:2848 +#: ../../library/turtle.rst:2711 msgid "``nim``" msgstr "``nim``" -#: ../../library/turtle.rst:2848 +#: ../../library/turtle.rst:2711 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." -#: ../../library/turtle.rst:2848 +#: ../../library/turtle.rst:2711 msgid "turtles as nimsticks, event driven (mouse, keyboard)" msgstr "Turtles als Nim-Stäbchen, ereignisgesteuert (Maus, Tastatur)" -#: ../../library/turtle.rst:2852 +#: ../../library/turtle.rst:2715 msgid "``paint``" msgstr "``paint``" -#: ../../library/turtle.rst:2852 +#: ../../library/turtle.rst:2715 msgid "super minimalistic drawing program" msgstr "super minimalistisches Zeichenprogramm" -#: ../../library/turtle.rst:2855 +#: ../../library/turtle.rst:2715 +msgid ":func:`onclick`" +msgstr ":func:`onclick`" + +#: ../../library/turtle.rst:2718 msgid "``peace``" msgstr "``peace``" -#: ../../library/turtle.rst:2855 +#: ../../library/turtle.rst:2718 msgid "elementary" msgstr "Elementar" -#: ../../library/turtle.rst:2855 +#: ../../library/turtle.rst:2718 msgid "turtle: appearance and animation" msgstr "Turtle: Erscheinungsbild und Animation" -#: ../../library/turtle.rst:2858 +#: ../../library/turtle.rst:2721 msgid "``penrose``" msgstr "``penrose``" -#: ../../library/turtle.rst:2858 +#: ../../library/turtle.rst:2721 msgid "aperiodic tiling with kites and darts" msgstr "aperiodische Kachelung mit Drachen und Pfeilen" -#: ../../library/turtle.rst:2861 +#: ../../library/turtle.rst:2721 +msgid ":func:`stamp`" +msgstr ":func:`stamp`" + +#: ../../library/turtle.rst:2724 msgid "``planet_and_moon``" msgstr "``planet_and_moon``" -#: ../../library/turtle.rst:2861 +#: ../../library/turtle.rst:2724 msgid "simulation of gravitational system" msgstr "Simulation eines Gravitationssystems" -#: ../../library/turtle.rst:2861 +#: ../../library/turtle.rst:2724 msgid "compound shapes, :class:`Vec2D`" msgstr "zusammengesetzte Formen, :class:`Vec2D`" -#: ../../library/turtle.rst:2864 +#: ../../library/turtle.rst:2727 msgid "``rosette``" msgstr "``rosette``" -#: ../../library/turtle.rst:2864 +#: ../../library/turtle.rst:2727 msgid "a pattern from the wikipedia article on turtle graphics" msgstr "ein Muster aus dem Wikipedia-Artikel über Turtle-Grafik" -#: ../../library/turtle.rst:2864 +#: ../../library/turtle.rst:2727 msgid ":func:`clone`, :func:`undo`" msgstr ":func:`clone`, :func:`undo`" -#: ../../library/turtle.rst:2867 +#: ../../library/turtle.rst:2730 msgid "``round_dance``" msgstr "``round_dance``" -#: ../../library/turtle.rst:2867 +#: ../../library/turtle.rst:2730 msgid "dancing turtles rotating pairwise in opposite direction" msgstr "" "tanzende Turtles, die sich paarweise in entgegengesetzter Richtung drehen" -#: ../../library/turtle.rst:2867 +#: ../../library/turtle.rst:2730 msgid "" "compound shapes, :func:`clone` :func:`shapesize`, :func:`tilt`, :func:" "`get_shapepoly`, :func:`update`" @@ -5076,50 +4673,517 @@ msgstr "" "zusammengesetzte Formen, :func:`clone` :func:`shapesize`, :func:`tilt`, :" "func:`get_shapepoly`, :func:`update`" -#: ../../library/turtle.rst:2871 +#: ../../library/turtle.rst:2734 msgid "``sorting_animate``" msgstr "``sorting_animate``" -#: ../../library/turtle.rst:2871 +#: ../../library/turtle.rst:2734 msgid "visual demonstration of different sorting methods" msgstr "visuelle Demonstration verschiedener Sortiermethoden" -#: ../../library/turtle.rst:2871 +#: ../../library/turtle.rst:2734 msgid "simple alignment, randomization" msgstr "einfache Ausrichtung, Zufallsgenerierung" -#: ../../library/turtle.rst:2874 +#: ../../library/turtle.rst:2737 msgid "``tree``" msgstr "``tree``" -#: ../../library/turtle.rst:2874 +#: ../../library/turtle.rst:2737 msgid "a (graphical) breadth first tree (using generators)" msgstr "ein (grafischer) Breitensuche-Baum (unter Verwendung von Generatoren)" -#: ../../library/turtle.rst:2877 +#: ../../library/turtle.rst:2737 +msgid ":func:`clone`" +msgstr ":func:`clone`" + +#: ../../library/turtle.rst:2740 msgid "``two_canvases``" msgstr "``two_canvases``" -#: ../../library/turtle.rst:2877 +#: ../../library/turtle.rst:2740 msgid "simple design" msgstr "einfaches Design" -#: ../../library/turtle.rst:2877 +#: ../../library/turtle.rst:2740 msgid "turtles on two canvases" msgstr "Turtles auf zwei Canvas" -#: ../../library/turtle.rst:2880 +#: ../../library/turtle.rst:2743 msgid "``yinyang``" msgstr "``yinyang``" -#: ../../library/turtle.rst:2880 +#: ../../library/turtle.rst:2743 msgid "another elementary example" msgstr "ein weiteres elementares Beispiel" -#: ../../library/turtle.rst:2883 +#: ../../library/turtle.rst:2743 +msgid ":func:`circle`" +msgstr ":func:`circle`" + +#: ../../library/turtle.rst:2746 msgid "Have fun!" msgstr "Viel Spaß!" +#~ msgid "" +#~ "In the following documentation the argument list for functions is given. " +#~ "Methods, of course, have the additional first argument *self* which is " +#~ "omitted here." +#~ msgstr "" +#~ "In der folgenden Dokumentation wird die Argumentliste für Funktionen " +#~ "angegeben. Methoden haben natürlich das zusätzliche erste Argument " +#~ "*self*, das hier weggelassen wird." + +#~ msgid "Turtle motion" +#~ msgstr "Turtle-Bewegung" + +#~ msgid ":func:`forward` | :func:`fd`" +#~ msgstr ":func:`forward` | :func:`fd`" + +#~ msgid ":func:`backward` | :func:`bk` | :func:`back`" +#~ msgstr ":func:`backward` | :func:`bk` | :func:`back`" + +#~ msgid ":func:`right` | :func:`rt`" +#~ msgstr ":func:`right` | :func:`rt`" + +#~ msgid ":func:`left` | :func:`lt`" +#~ msgstr ":func:`left` | :func:`lt`" + +#~ msgid ":func:`goto` | :func:`setpos` | :func:`setposition`" +#~ msgstr ":func:`goto` | :func:`setpos` | :func:`setposition`" + +#~ msgid ":func:`teleport`" +#~ msgstr ":func:`teleport`" + +#~ msgid ":func:`setx`" +#~ msgstr ":func:`setx`" + +#~ msgid ":func:`sety`" +#~ msgstr ":func:`sety`" + +#~ msgid ":func:`setheading` | :func:`seth`" +#~ msgstr ":func:`setheading` | :func:`seth`" + +#~ msgid ":func:`home`" +#~ msgstr ":func:`home`" + +#~ msgid ":func:`dot`" +#~ msgstr ":func:`dot`" + +#~ msgid ":func:`clearstamp`" +#~ msgstr ":func:`clearstamp`" + +#~ msgid ":func:`clearstamps`" +#~ msgstr ":func:`clearstamps`" + +#~ msgid ":func:`undo`" +#~ msgstr ":func:`undo`" + +#~ msgid ":func:`speed`" +#~ msgstr ":func:`speed`" + +#~ msgid ":func:`position` | :func:`pos`" +#~ msgstr ":func:`position` | :func:`pos`" + +#~ msgid ":func:`towards`" +#~ msgstr ":func:`towards`" + +#~ msgid ":func:`xcor`" +#~ msgstr ":func:`xcor`" + +#~ msgid ":func:`ycor`" +#~ msgstr ":func:`ycor`" + +#~ msgid ":func:`heading`" +#~ msgstr ":func:`heading`" + +#~ msgid ":func:`distance`" +#~ msgstr ":func:`distance`" + +#~ msgid "Setting and measurement" +#~ msgstr "Einstellung und Maß" + +#~ msgid ":func:`degrees`" +#~ msgstr ":func:`degrees`" + +#~ msgid ":func:`radians`" +#~ msgstr ":func:`radians`" + +#~ msgid ":func:`pendown` | :func:`pd` | :func:`down`" +#~ msgstr ":func:`pendown` | :func:`pd` | :func:`down`" + +#~ msgid ":func:`penup` | :func:`pu` | :func:`up`" +#~ msgstr ":func:`penup` | :func:`pu` | :func:`up`" + +#~ msgid ":func:`pensize` | :func:`width`" +#~ msgstr ":func:`pensize` | :func:`width`" + +#~ msgid ":func:`pen`" +#~ msgstr ":func:`pen`" + +#~ msgid ":func:`isdown`" +#~ msgstr ":func:`isdown`" + +#~ msgid ":func:`color`" +#~ msgstr ":func:`color`" + +#~ msgid ":func:`pencolor`" +#~ msgstr ":func:`pencolor`" + +#~ msgid ":func:`fillcolor`" +#~ msgstr ":func:`fillcolor`" + +#~ msgid ":func:`filling`" +#~ msgstr ":func:`filling`" + +#~ msgid ":func:`fill`" +#~ msgstr ":func:`fill`" + +#~ msgid ":func:`begin_fill`" +#~ msgstr ":func:`begin_fill`" + +#~ msgid ":func:`end_fill`" +#~ msgstr ":func:`end_fill`" + +#~ msgid ":func:`reset`" +#~ msgstr ":func:`reset`" + +#~ msgid ":func:`clear`" +#~ msgstr ":func:`clear`" + +#~ msgid ":func:`write`" +#~ msgstr ":func:`write`" + +#~ msgid ":func:`showturtle` | :func:`st`" +#~ msgstr ":func:`showturtle` | :func:`st`" + +#~ msgid ":func:`hideturtle` | :func:`ht`" +#~ msgstr ":func:`hideturtle` | :func:`ht`" + +#~ msgid ":func:`isvisible`" +#~ msgstr ":func:`isvisible`" + +#~ msgid ":func:`shape`" +#~ msgstr ":func:`shape`" + +#~ msgid ":func:`resizemode`" +#~ msgstr ":func:`resizemode`" + +#~ msgid ":func:`shapesize` | :func:`turtlesize`" +#~ msgstr ":func:`shapesize` | :func:`turtlesize`" + +#~ msgid ":func:`shearfactor`" +#~ msgstr ":func:`shearfactor`" + +#~ msgid ":func:`tiltangle`" +#~ msgstr ":func:`tiltangle`" + +#~ msgid ":func:`tilt`" +#~ msgstr ":func:`tilt`" + +#~ msgid ":func:`shapetransform`" +#~ msgstr ":func:`shapetransform`" + +#~ msgid ":func:`get_shapepoly`" +#~ msgstr ":func:`get_shapepoly`" + +#~ msgid ":func:`onrelease`" +#~ msgstr ":func:`onrelease`" + +#~ msgid ":func:`poly`" +#~ msgstr ":func:`poly`" + +#~ msgid ":func:`begin_poly`" +#~ msgstr ":func:`begin_poly`" + +#~ msgid ":func:`end_poly`" +#~ msgstr ":func:`end_poly`" + +#~ msgid ":func:`get_poly`" +#~ msgstr ":func:`get_poly`" + +#~ msgid ":func:`getturtle` | :func:`getpen`" +#~ msgstr ":func:`getturtle` | :func:`getpen`" + +#~ msgid ":func:`getscreen`" +#~ msgstr ":func:`getscreen`" + +#~ msgid ":func:`setundobuffer`" +#~ msgstr ":func:`setundobuffer`" + +#~ msgid ":func:`undobufferentries`" +#~ msgstr ":func:`undobufferentries`" + +#~ msgid "Methods of TurtleScreen/Screen" +#~ msgstr "Methoden von TurtleScreen/Screen" + +#~ msgid ":func:`bgcolor`" +#~ msgstr ":func:`bgcolor`" + +#~ msgid ":func:`bgpic`" +#~ msgstr ":func:`bgpic`" + +#~ msgid ":func:`clearscreen`" +#~ msgstr ":func:`clearscreen`" + +#~ msgid ":func:`resetscreen`" +#~ msgstr ":func:`resetscreen`" + +#~ msgid ":func:`screensize`" +#~ msgstr ":func:`screensize`" + +#~ msgid ":func:`setworldcoordinates`" +#~ msgstr ":func:`setworldcoordinates`" + +#~ msgid ":func:`no_animation`" +#~ msgstr ":func:`no_animation`" + +#~ msgid ":func:`delay`" +#~ msgstr ":func:`delay`" + +#~ msgid ":func:`tracer`" +#~ msgstr ":func:`tracer`" + +#~ msgid ":func:`update`" +#~ msgstr ":func:`update`" + +#~ msgid ":func:`listen`" +#~ msgstr ":func:`listen`" + +#~ msgid ":func:`onkey` | :func:`onkeyrelease`" +#~ msgstr ":func:`onkey` | :func:`onkeyrelease`" + +#~ msgid ":func:`onkeypress`" +#~ msgstr ":func:`onkeypress`" + +#~ msgid ":func:`onclick` | :func:`onscreenclick`" +#~ msgstr ":func:`onclick` | :func:`onscreenclick`" + +#~ msgid ":func:`ontimer`" +#~ msgstr ":func:`ontimer`" + +#~ msgid ":func:`mainloop` | :func:`done`" +#~ msgstr ":func:`mainloop` | :func:`done`" + +#~ msgid ":func:`mode`" +#~ msgstr ":func:`mode`" + +#~ msgid ":func:`colormode`" +#~ msgstr ":func:`colormode`" + +#~ msgid ":func:`getcanvas`" +#~ msgstr ":func:`getcanvas`" + +#~ msgid ":func:`getshapes`" +#~ msgstr ":func:`getshapes`" + +#~ msgid ":func:`register_shape` | :func:`addshape`" +#~ msgstr ":func:`register_shape` | :func:`addshape`" + +#~ msgid ":func:`turtles`" +#~ msgstr ":func:`turtles`" + +#~ msgid ":func:`window_height`" +#~ msgstr ":func:`window_height`" + +#~ msgid ":func:`window_width`" +#~ msgstr ":func:`window_width`" + +#~ msgid ":func:`textinput`" +#~ msgstr ":func:`textinput`" + +#~ msgid ":func:`numinput`" +#~ msgstr ":func:`numinput`" + +#~ msgid "Methods specific to Screen" +#~ msgstr "Spezifische Methoden zum Screen" + +#~ msgid ":func:`bye`" +#~ msgstr ":func:`bye`" + +#~ msgid ":func:`exitonclick`" +#~ msgstr ":func:`exitonclick`" + +#~ msgid ":func:`save`" +#~ msgstr ":func:`save`" + +#~ msgid ":func:`setup`" +#~ msgstr ":func:`setup`" + +#~ msgid ":func:`title`" +#~ msgstr ":func:`title`" + +#~ msgid "Methods of RawTurtle/Turtle and corresponding functions" +#~ msgstr "Methoden von RawTurtle/Turtle und entsprechende Funktionen" + +#~ msgid "a number (integer or float)" +#~ msgstr "eine Zahl (Ganzzahl oder Gleitkommazahl)" + +#~ msgid "" +#~ "Move turtle to an absolute position. If the pen is down, draw line. Do " +#~ "not change the turtle's orientation." +#~ msgstr "" +#~ "Bewege die Turtle zu einer absoluten Position. Wenn der Stift unten ist, " +#~ "zeichne eine Linie. Die Ausrichtung der Turtle wird dabei nicht verändert." + +#~ msgid "a number (or ``None``)" +#~ msgstr "eine Zahl (oder ``None``)" + +#~ 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." + +#~ msgid "" +#~ "Make the turtle invisible. It's a good idea to do this while you're in " +#~ "the middle of doing some complex drawing, because hiding the turtle " +#~ "speeds up the drawing observably." +#~ msgstr "" +#~ "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." + +#~ msgid ">>> turtle.hideturtle()" +#~ msgstr ">>> turtle.hideturtle()" + +#~ msgid "" +#~ "Bind *fun* to mouse-click events on this turtle. If *fun* is ``None``, " +#~ "existing bindings are removed. Example for the anonymous turtle, i.e. " +#~ "the procedural way:" +#~ msgstr "" +#~ "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:" + +#~ msgid "Methods of TurtleScreen/Screen and corresponding functions" +#~ msgstr "Methoden von TurtleScreen/Screen und entsprechende Funktionen" + +#~ msgid "a number, x-coordinate of lower left corner of canvas" +#~ msgstr "eine Zahl, x-Koordinate der unteren linken Ecke der Zeichenfläche" + +#~ msgid "a number, y-coordinate of lower left corner of canvas" +#~ msgstr "eine Zahl, y-Koordinate der unteren linken Ecke der Zeichenfläche" + +#~ msgid "a number, x-coordinate of upper right corner of canvas" +#~ msgstr "eine Zahl, x-Koordinate der oberen rechten Ecke der Zeichenfläche" + +#~ msgid "a number, y-coordinate of upper right corner of canvas" +#~ msgstr "eine Zahl, y-Koordinate der oberen rechten Ecke der Zeichenfläche" + +#~ msgid "" +#~ "Set up user-defined coordinate system and switch to mode \"world\" if " +#~ "necessary. This performs a ``screen.reset()``. If mode \"world\" is " +#~ "already active, all drawings are redrawn according to the new coordinates." +#~ msgstr "" +#~ "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." + +#~ msgid "" +#~ "**ATTENTION**: in user-defined coordinate systems angles may appear " +#~ "distorted." +#~ msgstr "" +#~ "**ACHTUNG**: In benutzerdefinierten Koordinatensystemen können Winkel " +#~ "verzerrt erscheinen." + +#~ msgid "positive integer" +#~ msgstr "positive Ganzzahl" + +#~ msgid "Optional argument:" +#~ msgstr "Optionales Argument:" + +#~ msgid "nonnegative integer" +#~ msgstr "nichtnegative Ganzzahl" + +#~ 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." + +#~ msgid ">>> screen.mainloop()" +#~ msgstr ">>> screen.mainloop()" + +#~ msgid "one of the strings \"standard\", \"logo\" or \"world\"" +#~ msgstr "eine der Zeichenketten \"standard\", \"logo\" oder \"world\"" + +#~ msgid "one of the values 1.0 or 255" +#~ msgstr "einer der Werte 1.0 oder 255" + +#~ msgid "There are four different ways to call this function:" +#~ msgstr "Es gibt vier verschiedene Möglichkeiten, diese Funktion aufzurufen:" + +#~ 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." + +#~ msgid "Methods specific to Screen, not inherited from TurtleScreen" +#~ msgstr "Methoden spezifisch für Screen, nicht von TurtleScreen geerbt" + +#~ msgid "Set title of turtle window to *titlestring*." +#~ msgstr "Setze den Titel des Turtle-Fensters auf *titlestring*." + +#~ msgid "" +#~ "Subclass of TurtleScreen, with :ref:`four methods added `." +#~ msgstr "" +#~ "Unterklasse von TurtleScreen, mit :ref:`vier hinzugefügten Methoden " +#~ "`." + +#~ msgid "one of the strings \"polygon\", \"image\", \"compound\"" +#~ msgstr "eine der Zeichenketten \"polygon\", \"image\", \"compound\"" + +#~ 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:" + +#~ msgid "*type_*" +#~ msgstr "*type_*" + +#~ msgid "*data*" +#~ msgstr "*data*" + +#~ msgid "\"polygon\"" +#~ msgstr "\"polygon\"" + +#~ msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" +#~ msgstr "ein Polygon-Tupel, d. h. ein Tupel aus Koordinatenpaaren" + +#~ msgid "\"image\"" +#~ msgstr "\"image\"" + +#~ msgid "an image (in this form only used internally!)" +#~ msgstr "ein Bild (in dieser Form nur intern verwendet!)" + +#~ msgid "\"compound\"" +#~ msgstr "\"compound\"" + +#~ msgid "" +#~ "``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)" + +#~ msgid "a color the *poly* will be filled with" +#~ msgstr "eine Farbe, mit der das *poly* gefüllt wird" + +#~ msgid "a color for the poly's outline (if given)" +#~ msgstr "eine Farbe für den Umriss des poly (falls angegeben)" + +#~ msgid "Help and configuration" +#~ msgstr "Hilfe und Konfiguration" + #~ msgid "Introduction" #~ msgstr "Einführung" diff --git a/using/configure.po b/using/configure.po index 5fb442c2..d97ad324 100644 --- a/using/configure.po +++ b/using/configure.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-15 09:12+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+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" @@ -35,9 +35,8 @@ msgstr "" #: ../../using/configure.rst:15 msgid "" "A `C11 `_ compiler. `Optional C11 " -"features " -"`_" -" are not required." +"features `_ are not required." msgstr "" #: ../../using/configure.rst:20 @@ -47,8 +46,8 @@ msgstr "" #: ../../using/configure.rst:22 msgid "" "Support for `IEEE 754 `_ floating-" -"point numbers and `floating-point Not-a-Number (NaN) " -"`_." +"point numbers and `floating-point Not-a-Number (NaN) `_." msgstr "" #: ../../using/configure.rst:26 @@ -77,8 +76,8 @@ msgstr "" #: ../../using/configure.rst:42 msgid "" -"See also :pep:`7` \"Style Guide for C Code\" and :pep:`11` \"CPython platform" -" support\"." +"See also :pep:`7` \"Style Guide for C Code\" and :pep:`11` \"CPython " +"platform support\"." msgstr "" #: ../../using/configure.rst:49 @@ -194,158 +193,165 @@ msgid "`OpenSSL `_" msgstr "" #: ../../using/configure.rst:97 -msgid "3.0.18 recommended" +msgid "[6]_" msgstr "" #: ../../using/configure.rst:98 -msgid "(1.1.1 minimum)" -msgstr "" - -#: ../../using/configure.rst:99 msgid ":mod:`ssl`, :mod:`hashlib` [5]_" msgstr "" -#: ../../using/configure.rst:100 +#: ../../using/configure.rst:99 msgid "`SQLite `_" msgstr "" -#: ../../using/configure.rst:101 +#: ../../using/configure.rst:100 msgid "3.15.2" msgstr "" -#: ../../using/configure.rst:102 +#: ../../using/configure.rst:101 msgid ":mod:`sqlite3`" msgstr "" -#: ../../using/configure.rst:103 +#: ../../using/configure.rst:102 msgid "`Tcl/Tk `_" msgstr "" -#: ../../using/configure.rst:104 +#: ../../using/configure.rst:103 msgid "8.5.12" msgstr "" -#: ../../using/configure.rst:105 +#: ../../using/configure.rst:104 msgid ":mod:`tkinter`, :ref:`IDLE `, :mod:`turtle`" msgstr "" -#: ../../using/configure.rst:106 +#: ../../using/configure.rst:105 msgid "`zlib `_" msgstr "" -#: ../../using/configure.rst:107 +#: ../../using/configure.rst:106 msgid "1.2.2.1" msgstr "" -#: ../../using/configure.rst:108 +#: ../../using/configure.rst:107 msgid ":mod:`zlib`, :mod:`gzip`, :mod:`ensurepip`" msgstr "" -#: ../../using/configure.rst:109 +#: ../../using/configure.rst:108 msgid "`zstd `_" msgstr "" -#: ../../using/configure.rst:110 +#: ../../using/configure.rst:109 msgid "1.4.5" msgstr "" -#: ../../using/configure.rst:111 +#: ../../using/configure.rst:110 msgid ":mod:`compression.zstd`" msgstr "" -#: ../../using/configure.rst:113 +#: ../../using/configure.rst:112 msgid "" "If *libmpdec* is not available, the :mod:`decimal` module will use a pure-" "Python implementation. See :option:`--with-system-libmpdec` for details." msgstr "" -#: ../../using/configure.rst:116 +#: ../../using/configure.rst:115 msgid "" -"See :option:`--with-readline` for choosing the backend for the " -":mod:`readline` module." +"See :option:`--with-readline` for choosing the backend for the :mod:" +"`readline` module." msgstr "" -#: ../../using/configure.rst:118 +#: ../../using/configure.rst:117 msgid "" "The :mod:`uuid` module uses ``_uuid`` to generate \"safe\" UUIDs. See the " "module documentation for details." msgstr "" -#: ../../using/configure.rst:120 +#: ../../using/configure.rst:119 msgid "" "The :mod:`curses` module requires the ``libncurses`` or ``libncursesw`` " "library. The :mod:`curses.panel` module additionally requires the " "``libpanel`` or ``libpanelw`` library." msgstr "" -#: ../../using/configure.rst:124 +#: ../../using/configure.rst:123 msgid "" "If OpenSSL is not available, the :mod:`hashlib` module will use bundled " "implementations of several hash functions. See :option:`--with-builtin-" "hashlib-hashes` for *forcing* usage of OpenSSL." msgstr "" -#: ../../using/configure.rst:128 +#: ../../using/configure.rst:126 +msgid "" +"OpenSSL 1.1.1 is the minimum possible version to build against, but the " +"series is end-of-life and no longer receives public security fixes. Use the " +"latest patch release of a currently supported LTS release series (see the " +"`OpenSSL Roadmap `__), or " +"the package provided by your operating system if available. Other libraries " +"that offer an API compatible with OpenSSL 1.1.1 or later may work, but are " +"not officially supported." +msgstr "" + +#: ../../using/configure.rst:135 msgid "" "Note that the table does not include all optional modules; in particular, " "platform-specific modules like :mod:`winreg` are not listed here." msgstr "" -#: ../../using/configure.rst:133 +#: ../../using/configure.rst:140 msgid "" -"The `devguide `_ includes a full list of dependencies " -"required to build all modules and instructions on how to install them on " -"common platforms." +"The `devguide `_ includes a full list of dependencies required to " +"build all modules and instructions on how to install them on common " +"platforms." msgstr "" -#: ../../using/configure.rst:136 +#: ../../using/configure.rst:143 msgid "" ":option:`--with-system-expat` allows building with an external `libexpat " "`_ library." msgstr "" -#: ../../using/configure.rst:138 +#: ../../using/configure.rst:145 msgid ":ref:`configure-options-for-dependencies`" msgstr "" -#: ../../using/configure.rst:140 +#: ../../using/configure.rst:147 msgid "Tcl/Tk version 8.3.1 is now required for :mod:`tkinter`." msgstr "" -#: ../../using/configure.rst:143 +#: ../../using/configure.rst:150 msgid "Tcl/Tk version 8.4 is now required for :mod:`tkinter`." msgstr "" -#: ../../using/configure.rst:146 +#: ../../using/configure.rst:153 msgid "OpenSSL 1.0.2 is now required for :mod:`hashlib` and :mod:`ssl`." msgstr "" -#: ../../using/configure.rst:149 +#: ../../using/configure.rst:156 msgid "" "OpenSSL 1.1.1 is now required for :mod:`hashlib` and :mod:`ssl`. SQLite " "3.7.15 is now required for :mod:`sqlite3`." msgstr "" -#: ../../using/configure.rst:153 +#: ../../using/configure.rst:160 msgid "Tcl/Tk version 8.5.12 is now required for :mod:`tkinter`." msgstr "" -#: ../../using/configure.rst:156 +#: ../../using/configure.rst:163 msgid "SQLite 3.15.2 is now required for :mod:`sqlite3`." msgstr "" -#: ../../using/configure.rst:161 +#: ../../using/configure.rst:168 msgid "Generated files" msgstr "" -#: ../../using/configure.rst:163 +#: ../../using/configure.rst:170 msgid "" "To reduce build dependencies, Python source code contains multiple generated " "files. Commands to regenerate all generated files::" msgstr "" -#: ../../using/configure.rst:166 +#: ../../using/configure.rst:173 msgid "" "make regen-all\n" "make regen-stdlib-module-names\n" @@ -353,761 +359,760 @@ msgid "" "make regen-configure" msgstr "" -#: ../../using/configure.rst:171 +#: ../../using/configure.rst:178 msgid "" "The ``Makefile.pre.in`` file documents generated files, their inputs, and " "tools used to regenerate them. Search for ``regen-*`` make targets." msgstr "" -#: ../../using/configure.rst:175 +#: ../../using/configure.rst:182 msgid "configure script" msgstr "" -#: ../../using/configure.rst:177 +#: ../../using/configure.rst:184 msgid "" "The ``make regen-configure`` command regenerates the ``aclocal.m4`` file and " "the ``configure`` script using the ``Tools/build/regen-configure.sh`` shell " -"script which uses an Ubuntu container to get the same tools versions and have" -" a reproducible output." +"script which uses an Ubuntu container to get the same tools versions and " +"have a reproducible output." msgstr "" -#: ../../using/configure.rst:182 +#: ../../using/configure.rst:189 msgid "The container is optional, the following command can be run locally::" msgstr "" -#: ../../using/configure.rst:184 +#: ../../using/configure.rst:191 msgid "autoreconf -ivf -Werror" msgstr "" -#: ../../using/configure.rst:186 +#: ../../using/configure.rst:193 msgid "" "The generated files can change depending on the exact versions of the tools " -"used. The container that CPython uses has `Autoconf " -"`_ 2.72, ``aclocal`` from `Automake " -"`_ 1.16.5, and `pkg-config " -"`_ 1.8.1." +"used. The container that CPython uses has `Autoconf `_ 2.72, ``aclocal`` from `Automake `_ 1.16.5, and `pkg-config `_ 1.8.1." msgstr "" -#: ../../using/configure.rst:193 +#: ../../using/configure.rst:200 msgid "" -"Autoconf 2.71 and aclocal 1.16.5 and are now used to regenerate " -":file:`configure`." +"Autoconf 2.71 and aclocal 1.16.5 and are now used to regenerate :file:" +"`configure`." msgstr "" -#: ../../using/configure.rst:197 +#: ../../using/configure.rst:204 msgid "Autoconf 2.72 is now used to regenerate :file:`configure`." msgstr "" -#: ../../using/configure.rst:204 +#: ../../using/configure.rst:211 msgid "Configure Options" msgstr "" -#: ../../using/configure.rst:206 +#: ../../using/configure.rst:213 msgid "List all :file:`configure` script options using::" msgstr "" -#: ../../using/configure.rst:208 +#: ../../using/configure.rst:215 msgid "./configure --help" msgstr "" -#: ../../using/configure.rst:210 +#: ../../using/configure.rst:217 msgid "" "See also the :file:`Misc/SpecialBuilds.txt` in the Python source " "distribution." msgstr "" -#: ../../using/configure.rst:213 +#: ../../using/configure.rst:220 msgid "General Options" msgstr "" -#: ../../using/configure.rst:217 +#: ../../using/configure.rst:224 msgid "" "Support loadable extensions in the :mod:`!_sqlite` extension module (default " "is no) of the :mod:`sqlite3` module." msgstr "" -#: ../../using/configure.rst:220 +#: ../../using/configure.rst:227 msgid "" -"See the :meth:`sqlite3.Connection.enable_load_extension` method of the " -":mod:`sqlite3` module." +"See the :meth:`sqlite3.Connection.enable_load_extension` method of the :mod:" +"`sqlite3` module." msgstr "" -#: ../../using/configure.rst:227 +#: ../../using/configure.rst:234 msgid "" -"Disable IPv6 support (enabled by default if supported), see the :mod:`socket`" -" module." +"Disable IPv6 support (enabled by default if supported), see the :mod:" +"`socket` module." msgstr "" -#: ../../using/configure.rst:232 +#: ../../using/configure.rst:239 msgid "Define the size in bits of Python :class:`int` digits: 15 or 30 bits." msgstr "" -#: ../../using/configure.rst:234 +#: ../../using/configure.rst:241 msgid "By default, the digit size is 30." msgstr "" -#: ../../using/configure.rst:236 +#: ../../using/configure.rst:243 msgid "Define the ``PYLONG_BITS_IN_DIGIT`` to ``15`` or ``30``." msgstr "" -#: ../../using/configure.rst:238 +#: ../../using/configure.rst:245 msgid "See :data:`sys.int_info.bits_per_digit `." msgstr "" -#: ../../using/configure.rst:242 +#: ../../using/configure.rst:249 msgid "Set the Python executable suffix to *SUFFIX*." msgstr "" -#: ../../using/configure.rst:244 +#: ../../using/configure.rst:251 msgid "" "The default suffix is ``.exe`` on Windows and macOS (``python.exe`` " -"executable), ``.js`` on Emscripten node, ``.html`` on Emscripten browser, " -"``.wasm`` on WASI, and an empty string on other platforms (``python`` " +"executable), ``.js`` on Emscripten node, ``.html`` on Emscripten browser, ``." +"wasm`` on WASI, and an empty string on other platforms (``python`` " "executable)." msgstr "" -#: ../../using/configure.rst:249 +#: ../../using/configure.rst:256 msgid "" -"The default suffix on WASM platform is one of ``.js``, ``.html`` or " -"``.wasm``." +"The default suffix on WASM platform is one of ``.js``, ``.html`` or ``." +"wasm``." msgstr "" -#: ../../using/configure.rst:255 +#: ../../using/configure.rst:262 msgid "" "Select the default time zone search path for :const:`zoneinfo.TZPATH`. See " "the :ref:`Compile-time configuration ` of " "the :mod:`zoneinfo` module." msgstr "" -#: ../../using/configure.rst:259 +#: ../../using/configure.rst:266 msgid "" -"Default: " -"``/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo``." +"Default: ``/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/" +"etc/zoneinfo``." msgstr "" -#: ../../using/configure.rst:261 +#: ../../using/configure.rst:268 msgid "See :data:`os.pathsep` path separator." msgstr "" -#: ../../using/configure.rst:267 +#: ../../using/configure.rst:274 msgid "" "Build the ``_decimal`` extension module using a thread-local context rather " "than a coroutine-local context (default), see the :mod:`decimal` module." msgstr "" -#: ../../using/configure.rst:270 +#: ../../using/configure.rst:277 msgid "See :const:`decimal.HAVE_CONTEXTVAR` and the :mod:`contextvars` module." msgstr "" -#: ../../using/configure.rst:276 +#: ../../using/configure.rst:283 msgid "Override order to check db backends for the :mod:`dbm` module" msgstr "" -#: ../../using/configure.rst:278 +#: ../../using/configure.rst:285 msgid "" "A valid value is a colon (``:``) separated string with the backend names:" msgstr "" -#: ../../using/configure.rst:280 +#: ../../using/configure.rst:287 msgid "``ndbm``;" msgstr "" -#: ../../using/configure.rst:281 +#: ../../using/configure.rst:288 msgid "``gdbm``;" msgstr "" -#: ../../using/configure.rst:282 +#: ../../using/configure.rst:289 msgid "``bdb``." msgstr "" -#: ../../using/configure.rst:286 +#: ../../using/configure.rst:293 msgid "Disable C locale coercion to a UTF-8 based locale (enabled by default)." msgstr "" -#: ../../using/configure.rst:288 +#: ../../using/configure.rst:295 msgid "Don't define the ``PY_COERCE_C_LOCALE`` macro." msgstr "" -#: ../../using/configure.rst:290 +#: ../../using/configure.rst:297 msgid "See :envvar:`PYTHONCOERCECLOCALE` and the :pep:`538`." msgstr "" -#: ../../using/configure.rst:294 +#: ../../using/configure.rst:301 msgid "Python library directory name (default is ``lib``)." msgstr "" -#: ../../using/configure.rst:296 +#: ../../using/configure.rst:303 msgid "Fedora and SuSE use ``lib64`` on 64-bit platforms." msgstr "" -#: ../../using/configure.rst:298 +#: ../../using/configure.rst:305 msgid "See :data:`sys.platlibdir`." msgstr "" -#: ../../using/configure.rst:304 +#: ../../using/configure.rst:311 msgid "" "Directory of wheel packages used by the :mod:`ensurepip` module (none by " "default)." msgstr "" -#: ../../using/configure.rst:307 +#: ../../using/configure.rst:314 msgid "" "Some Linux distribution packaging policies recommend against bundling " -"dependencies. For example, Fedora installs wheel packages in the " -"``/usr/share/python-wheels/`` directory and don't install the " -":mod:`!ensurepip._bundled` package." +"dependencies. For example, Fedora installs wheel packages in the ``/usr/" +"share/python-wheels/`` directory and don't install the :mod:`!ensurepip." +"_bundled` package." msgstr "" -#: ../../using/configure.rst:316 +#: ../../using/configure.rst:323 msgid "" "Whether configure should use :program:`pkg-config` to detect build " "dependencies." msgstr "" -#: ../../using/configure.rst:319 +#: ../../using/configure.rst:326 msgid "``check`` (default): :program:`pkg-config` is optional" msgstr "" -#: ../../using/configure.rst:320 +#: ../../using/configure.rst:327 msgid "``yes``: :program:`pkg-config` is mandatory" msgstr "" -#: ../../using/configure.rst:321 +#: ../../using/configure.rst:328 msgid "``no``: configure does not use :program:`pkg-config` even when present" msgstr "" -#: ../../using/configure.rst:327 +#: ../../using/configure.rst:334 msgid "Turn on internal Python performance statistics gathering." msgstr "" -#: ../../using/configure.rst:329 +#: ../../using/configure.rst:336 msgid "" "By default, statistics gathering is off. Use ``python3 -X pystats`` command " -"or set ``PYTHONSTATS=1`` environment variable to turn on statistics gathering" -" at Python startup." +"or set ``PYTHONSTATS=1`` environment variable to turn on statistics " +"gathering at Python startup." msgstr "" -#: ../../using/configure.rst:333 +#: ../../using/configure.rst:340 msgid "" "At Python exit, dump statistics if statistics gathering was on and not " "cleared." msgstr "" -#: ../../using/configure.rst:336 ../../using/configure.rst:860 +#: ../../using/configure.rst:343 ../../using/configure.rst:867 msgid "Effects:" msgstr "" -#: ../../using/configure.rst:338 +#: ../../using/configure.rst:345 msgid "Add :option:`-X pystats <-X>` command line option." msgstr "" -#: ../../using/configure.rst:339 +#: ../../using/configure.rst:346 msgid "Add :envvar:`!PYTHONSTATS` environment variable." msgstr "" -#: ../../using/configure.rst:340 +#: ../../using/configure.rst:347 msgid "Define the ``Py_STATS`` macro." msgstr "" -#: ../../using/configure.rst:341 +#: ../../using/configure.rst:348 msgid "Add functions to the :mod:`sys` module:" msgstr "" -#: ../../using/configure.rst:343 +#: ../../using/configure.rst:350 msgid ":func:`!sys._stats_on`: Turns on statistics gathering." msgstr "" -#: ../../using/configure.rst:344 +#: ../../using/configure.rst:351 msgid ":func:`!sys._stats_off`: Turns off statistics gathering." msgstr "" -#: ../../using/configure.rst:345 +#: ../../using/configure.rst:352 msgid ":func:`!sys._stats_clear`: Clears the statistics." msgstr "" -#: ../../using/configure.rst:346 +#: ../../using/configure.rst:353 msgid "" ":func:`!sys._stats_dump`: Dump statistics to file, and clears the statistics." msgstr "" -#: ../../using/configure.rst:348 +#: ../../using/configure.rst:355 msgid "" -"The statistics will be dumped to a arbitrary (probably unique) file in " -"``/tmp/py_stats/`` (Unix) or ``C:\\temp\\py_stats\\`` (Windows). If that " +"The statistics will be dumped to a arbitrary (probably unique) file in ``/" +"tmp/py_stats/`` (Unix) or ``C:\\temp\\py_stats\\`` (Windows). If that " "directory does not exist, results will be printed on stderr." msgstr "" -#: ../../using/configure.rst:352 +#: ../../using/configure.rst:359 msgid "Use ``Tools/scripts/summarize_stats.py`` to read the stats." msgstr "" -#: ../../using/configure.rst:354 +#: ../../using/configure.rst:361 msgid "Statistics:" msgstr "" -#: ../../using/configure.rst:356 +#: ../../using/configure.rst:363 msgid "Opcode:" msgstr "" -#: ../../using/configure.rst:358 +#: ../../using/configure.rst:365 msgid "Specialization: success, failure, hit, deferred, miss, deopt, failures;" msgstr "" -#: ../../using/configure.rst:359 +#: ../../using/configure.rst:366 msgid "Execution count;" msgstr "" -#: ../../using/configure.rst:360 +#: ../../using/configure.rst:367 msgid "Pair count." msgstr "" -#: ../../using/configure.rst:362 +#: ../../using/configure.rst:369 msgid "Call:" msgstr "" -#: ../../using/configure.rst:364 +#: ../../using/configure.rst:371 msgid "Inlined Python calls;" msgstr "" -#: ../../using/configure.rst:365 +#: ../../using/configure.rst:372 msgid "PyEval calls;" msgstr "" -#: ../../using/configure.rst:366 +#: ../../using/configure.rst:373 msgid "Frames pushed;" msgstr "" -#: ../../using/configure.rst:367 +#: ../../using/configure.rst:374 msgid "Frame object created;" msgstr "" -#: ../../using/configure.rst:368 +#: ../../using/configure.rst:375 msgid "" "Eval calls: vector, generator, legacy, function VECTORCALL, build class, " "slot, function \"ex\", API, method." msgstr "" -#: ../../using/configure.rst:371 +#: ../../using/configure.rst:378 msgid "Object:" msgstr "" -#: ../../using/configure.rst:373 +#: ../../using/configure.rst:380 msgid "incref and decref;" msgstr "" -#: ../../using/configure.rst:374 +#: ../../using/configure.rst:381 msgid "interpreter incref and decref;" msgstr "" -#: ../../using/configure.rst:375 +#: ../../using/configure.rst:382 msgid "allocations: all, 512 bytes, 4 kiB, big;" msgstr "" -#: ../../using/configure.rst:376 +#: ../../using/configure.rst:383 msgid "free;" msgstr "" -#: ../../using/configure.rst:377 +#: ../../using/configure.rst:384 msgid "to/from free lists;" msgstr "" -#: ../../using/configure.rst:378 +#: ../../using/configure.rst:385 msgid "dictionary materialized/dematerialized;" msgstr "" -#: ../../using/configure.rst:379 +#: ../../using/configure.rst:386 msgid "type cache;" msgstr "" -#: ../../using/configure.rst:380 +#: ../../using/configure.rst:387 msgid "optimization attempts;" msgstr "" -#: ../../using/configure.rst:381 +#: ../../using/configure.rst:388 msgid "optimization traces created/executed;" msgstr "" -#: ../../using/configure.rst:382 +#: ../../using/configure.rst:389 msgid "uops executed." msgstr "" -#: ../../using/configure.rst:384 +#: ../../using/configure.rst:391 msgid "Garbage collector:" msgstr "" -#: ../../using/configure.rst:386 +#: ../../using/configure.rst:393 msgid "Garbage collections;" msgstr "" -#: ../../using/configure.rst:387 +#: ../../using/configure.rst:394 msgid "Objects visited;" msgstr "" -#: ../../using/configure.rst:388 +#: ../../using/configure.rst:395 msgid "Objects collected." msgstr "" -#: ../../using/configure.rst:396 +#: ../../using/configure.rst:403 msgid "" "Enables support for running Python without the :term:`global interpreter " "lock` (GIL): :term:`free-threaded build`." msgstr "" -#: ../../using/configure.rst:399 +#: ../../using/configure.rst:406 msgid "" -"Defines the ``Py_GIL_DISABLED`` macro and adds ``\"t\"`` to " -":data:`sys.abiflags`." +"Defines the ``Py_GIL_DISABLED`` macro and adds ``\"t\"`` to :data:`sys." +"abiflags`." msgstr "" -#: ../../using/configure.rst:402 +#: ../../using/configure.rst:409 msgid "See :ref:`whatsnew313-free-threaded-cpython` for more detail." msgstr "" -#: ../../using/configure.rst:408 +#: ../../using/configure.rst:415 msgid "" "Indicate how to integrate the :ref:`experimental just-in-time compiler " "`." msgstr "" -#: ../../using/configure.rst:410 +#: ../../using/configure.rst:417 msgid "``no``: Don't build the JIT." msgstr "" -#: ../../using/configure.rst:411 +#: ../../using/configure.rst:418 msgid "" "``yes``: Enable the JIT. To disable it at runtime, set the environment " "variable :envvar:`PYTHON_JIT=0 `." msgstr "" -#: ../../using/configure.rst:413 +#: ../../using/configure.rst:420 msgid "" "``yes-off``: Build the JIT, but disable it by default. To enable it at " "runtime, set the environment variable :envvar:`PYTHON_JIT=1 `." msgstr "" -#: ../../using/configure.rst:415 +#: ../../using/configure.rst:422 msgid "" "``interpreter``: Enable the \"JIT interpreter\" (only useful for those " "debugging the JIT itself). To disable it at runtime, set the environment " "variable :envvar:`PYTHON_JIT=0 `." msgstr "" -#: ../../using/configure.rst:419 +#: ../../using/configure.rst:426 msgid "" -"``--enable-experimental-jit=no`` is the default behavior if the option is not" -" provided, and ``--enable-experimental-jit`` is shorthand for ``--enable-" +"``--enable-experimental-jit=no`` is the default behavior if the option is " +"not provided, and ``--enable-experimental-jit`` is shorthand for ``--enable-" "experimental-jit=yes``. See :file:`Tools/jit/README.md` for more " "information, including how to install the necessary build-time dependencies." msgstr "" -#: ../../using/configure.rst:426 +#: ../../using/configure.rst:433 msgid "" "When building CPython with JIT enabled, ensure that your system has Python " "3.11 or later installed." msgstr "" -#: ../../using/configure.rst:432 +#: ../../using/configure.rst:439 msgid "Path to ``pkg-config`` utility." msgstr "" -#: ../../using/configure.rst:437 +#: ../../using/configure.rst:444 msgid "``pkg-config`` options." msgstr "" -#: ../../using/configure.rst:441 +#: ../../using/configure.rst:448 msgid "C compiler options" msgstr "" -#: ../../using/configure.rst:445 ../../using/configure.rst:1437 +#: ../../using/configure.rst:452 ../../using/configure.rst:1448 msgid "C compiler command." msgstr "" -#: ../../using/configure.rst:449 ../../using/configure.rst:1449 +#: ../../using/configure.rst:456 ../../using/configure.rst:1460 msgid "C compiler flags." msgstr "" -#: ../../using/configure.rst:453 +#: ../../using/configure.rst:460 msgid "C preprocessor command." msgstr "" -#: ../../using/configure.rst:457 +#: ../../using/configure.rst:464 msgid "C preprocessor flags, e.g. :samp:`-I{include_dir}`." msgstr "" -#: ../../using/configure.rst:461 ../../using/configure.rst:934 +#: ../../using/configure.rst:468 ../../using/configure.rst:945 msgid "Linker options" msgstr "" -#: ../../using/configure.rst:465 +#: ../../using/configure.rst:472 msgid "Linker flags, e.g. :samp:`-L{library_directory}`." msgstr "" -#: ../../using/configure.rst:469 +#: ../../using/configure.rst:476 msgid "Libraries to pass to the linker, e.g. :samp:`-l{library}`." msgstr "" -#: ../../using/configure.rst:473 +#: ../../using/configure.rst:480 msgid "Name for machine-dependent library files." msgstr "" -#: ../../using/configure.rst:479 +#: ../../using/configure.rst:486 msgid "Options for third-party dependencies" msgstr "" -#: ../../using/configure.rst:486 +#: ../../using/configure.rst:493 msgid "" "C compiler and linker flags to link Python to ``libbz2``, used by :mod:`bz2` " "module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:492 +#: ../../using/configure.rst:499 msgid "" -"C compiler and linker flags for ``libncurses`` or ``libncursesw``, used by " -":mod:`curses` module, overriding ``pkg-config``." +"C compiler and linker flags for ``libncurses`` or ``libncursesw``, used by :" +"mod:`curses` module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:498 +#: ../../using/configure.rst:505 msgid "C compiler and linker flags for ``gdbm``." msgstr "" -#: ../../using/configure.rst:503 +#: ../../using/configure.rst:510 msgid "" "C compiler and linker flags for ``libedit``, used by :mod:`readline` module, " "overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:509 +#: ../../using/configure.rst:516 msgid "" "C compiler and linker flags for ``libffi``, used by :mod:`ctypes` module, " "overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:515 +#: ../../using/configure.rst:522 msgid "" "C compiler and linker flags for ``libmpdec``, used by :mod:`decimal` module, " "overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:520 +#: ../../using/configure.rst:527 msgid "" "These environment variables have no effect unless :option:`--with-system-" "libmpdec` is specified." msgstr "" -#: ../../using/configure.rst:526 +#: ../../using/configure.rst:533 msgid "" "C compiler and linker flags for ``liblzma``, used by :mod:`lzma` module, " "overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:532 +#: ../../using/configure.rst:539 msgid "" "C compiler and linker flags for ``libreadline``, used by :mod:`readline` " "module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:538 +#: ../../using/configure.rst:545 msgid "" "C compiler and linker flags for ``libsqlite3``, used by :mod:`sqlite3` " "module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:544 +#: ../../using/configure.rst:551 msgid "" "C compiler and linker flags for ``libuuid``, used by :mod:`uuid` module, " "overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:550 +#: ../../using/configure.rst:557 msgid "" "C compiler and linker flags for ``libzstd``, used by :mod:`compression.zstd` " "module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:558 +#: ../../using/configure.rst:565 msgid "C compiler and linker flags for PANEL, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:560 +#: ../../using/configure.rst:567 msgid "" -"C compiler and linker flags for ``libpanel`` or ``libpanelw``, used by " -":mod:`curses.panel` module, overriding ``pkg-config``." +"C compiler and linker flags for ``libpanel`` or ``libpanelw``, used by :mod:" +"`curses.panel` module, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:566 +#: ../../using/configure.rst:573 msgid "C compiler and linker flags for TCLTK, overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:571 +#: ../../using/configure.rst:578 msgid "" "C compiler and linker flags for ``libzlib``, used by :mod:`gzip` module, " "overriding ``pkg-config``." msgstr "" -#: ../../using/configure.rst:576 +#: ../../using/configure.rst:583 msgid "WebAssembly Options" msgstr "" -#: ../../using/configure.rst:580 +#: ../../using/configure.rst:587 msgid "Turn on dynamic linking support for WASM." msgstr "" -#: ../../using/configure.rst:582 +#: ../../using/configure.rst:589 msgid "" -"Dynamic linking enables ``dlopen``. File size of the executable increases due" -" to limited dead code elimination and additional features." +"Dynamic linking enables ``dlopen``. File size of the executable increases " +"due to limited dead code elimination and additional features." msgstr "" -#: ../../using/configure.rst:589 +#: ../../using/configure.rst:596 msgid "Turn on pthreads support for WASM." msgstr "" -#: ../../using/configure.rst:595 +#: ../../using/configure.rst:602 msgid "Install Options" msgstr "" -#: ../../using/configure.rst:599 +#: ../../using/configure.rst:606 msgid "" -"Install architecture-independent files in PREFIX. On Unix, it defaults to " -":file:`/usr/local`." +"Install architecture-independent files in PREFIX. On Unix, it defaults to :" +"file:`/usr/local`." msgstr "" -#: ../../using/configure.rst:602 +#: ../../using/configure.rst:609 msgid "This value can be retrieved at runtime using :data:`sys.prefix`." msgstr "" -#: ../../using/configure.rst:604 +#: ../../using/configure.rst:611 msgid "" -"As an example, one can use ``--prefix=\"$HOME/.local/\"`` to install a Python" -" in its home directory." +"As an example, one can use ``--prefix=\"$HOME/.local/\"`` to install a " +"Python in its home directory." msgstr "" -#: ../../using/configure.rst:609 +#: ../../using/configure.rst:616 msgid "" -"Install architecture-dependent files in EPREFIX, defaults to " -":option:`--prefix`." +"Install architecture-dependent files in EPREFIX, defaults to :option:`--" +"prefix`." msgstr "" -#: ../../using/configure.rst:611 +#: ../../using/configure.rst:618 msgid "This value can be retrieved at runtime using :data:`sys.exec_prefix`." msgstr "" -#: ../../using/configure.rst:615 +#: ../../using/configure.rst:622 msgid "" -"Don't build nor install test modules, like the :mod:`test` package or the " -":mod:`!_testcapi` extension module (built and installed by default)." +"Don't build nor install test modules, like the :mod:`test` package or the :" +"mod:`!_testcapi` extension module (built and installed by default)." msgstr "" -#: ../../using/configure.rst:622 +#: ../../using/configure.rst:629 msgid "Select the :mod:`ensurepip` command run on Python installation:" msgstr "" -#: ../../using/configure.rst:624 +#: ../../using/configure.rst:631 msgid "" "``upgrade`` (default): run ``python -m ensurepip --altinstall --upgrade`` " "command." msgstr "" -#: ../../using/configure.rst:626 +#: ../../using/configure.rst:633 msgid "``install``: run ``python -m ensurepip --altinstall`` command;" msgstr "" -#: ../../using/configure.rst:627 +#: ../../using/configure.rst:634 msgid "``no``: don't run ensurepip;" msgstr "" -#: ../../using/configure.rst:633 +#: ../../using/configure.rst:640 msgid "Performance options" msgstr "" -#: ../../using/configure.rst:635 +#: ../../using/configure.rst:642 msgid "" -"Configuring Python using ``--enable-optimizations --with-lto`` (PGO + LTO) is" -" recommended for best performance. The experimental ``--enable-bolt`` flag " +"Configuring Python using ``--enable-optimizations --with-lto`` (PGO + LTO) " +"is recommended for best performance. The experimental ``--enable-bolt`` flag " "can also be used to improve performance." msgstr "" -#: ../../using/configure.rst:641 +#: ../../using/configure.rst:648 msgid "" "Enable Profile Guided Optimization (PGO) using :envvar:`PROFILE_TASK` " "(disabled by default)." msgstr "" -#: ../../using/configure.rst:644 +#: ../../using/configure.rst:651 msgid "" "The C compiler Clang requires ``llvm-profdata`` program for PGO. On macOS, " "GCC also requires it: GCC is just an alias to Clang on macOS." msgstr "" -#: ../../using/configure.rst:647 +#: ../../using/configure.rst:654 msgid "" "Disable also semantic interposition in libpython if ``--enable-shared`` and " "GCC is used: add ``-fno-semantic-interposition`` to the compiler and linker " "flags." msgstr "" -#: ../../using/configure.rst:653 +#: ../../using/configure.rst:660 msgid "" "During the build, you may encounter compiler warnings about profile data not " -"being available for some source files. These warnings are harmless, as only a" -" subset of the code is exercised during profile data acquisition. To disable " -"these warnings on Clang, manually suppress them by adding ``-Wno-profile-" -"instr-unprofiled`` to :envvar:`CFLAGS`." +"being available for some source files. These warnings are harmless, as only " +"a subset of the code is exercised during profile data acquisition. To " +"disable these warnings on Clang, manually suppress them by adding ``-Wno-" +"profile-instr-unprofiled`` to :envvar:`CFLAGS`." msgstr "" -#: ../../using/configure.rst:662 +#: ../../using/configure.rst:669 msgid "Use ``-fno-semantic-interposition`` on GCC." msgstr "" -#: ../../using/configure.rst:667 +#: ../../using/configure.rst:674 msgid "" "Environment variable used in the Makefile: Python command line arguments for " "the PGO generation task." msgstr "" -#: ../../using/configure.rst:670 +#: ../../using/configure.rst:677 msgid "Default: ``-m test --pgo --timeout=$(TESTTIMEOUT)``." msgstr "" -#: ../../using/configure.rst:674 +#: ../../using/configure.rst:681 msgid "Task failure is no longer ignored silently." msgstr "" -#: ../../using/configure.rst:679 +#: ../../using/configure.rst:686 msgid "Enable Link Time Optimization (LTO) in any build (disabled by default)." msgstr "" -#: ../../using/configure.rst:681 +#: ../../using/configure.rst:688 msgid "" "The C compiler Clang requires ``llvm-ar`` for LTO (``ar`` on macOS), as well " "as an LTO-aware linker (``ld.gold`` or ``lld``)." msgstr "" -#: ../../using/configure.rst:686 +#: ../../using/configure.rst:693 msgid "To use ThinLTO feature, use ``--with-lto=thin`` on Clang." msgstr "" -#: ../../using/configure.rst:689 +#: ../../using/configure.rst:696 msgid "" "Use ThinLTO as the default optimization policy on Clang if the compiler " "accepts the flag." msgstr "" -#: ../../using/configure.rst:694 +#: ../../using/configure.rst:701 msgid "" -"Enable usage of the `BOLT post-link binary optimizer " -"`_ (disabled by " -"default)." +"Enable usage of the `BOLT post-link binary optimizer `_ (disabled by default)." msgstr "" -#: ../../using/configure.rst:698 +#: ../../using/configure.rst:705 msgid "" "BOLT is part of the LLVM project but is not always included in their binary " "distributions. This flag requires that ``llvm-bolt`` and ``merge-fdata`` are " "available." msgstr "" -#: ../../using/configure.rst:702 +#: ../../using/configure.rst:709 msgid "" "BOLT is still a fairly new project so this flag should be considered " "experimental for now. Because this tool operates on machine code its success " @@ -1118,161 +1123,162 @@ msgid "" "encouraged." msgstr "" -#: ../../using/configure.rst:710 +#: ../../using/configure.rst:717 msgid "" -"The :envvar:`!BOLT_INSTRUMENT_FLAGS` and :envvar:`!BOLT_APPLY_FLAGS` " -":program:`configure` variables can be defined to override the default set of " +"The :envvar:`!BOLT_INSTRUMENT_FLAGS` and :envvar:`!BOLT_APPLY_FLAGS` :" +"program:`configure` variables can be defined to override the default set of " "arguments for :program:`llvm-bolt` to instrument and apply BOLT data to " "binaries, respectively." msgstr "" -#: ../../using/configure.rst:719 +#: ../../using/configure.rst:726 msgid "" -"Arguments to ``llvm-bolt`` when creating a `BOLT optimized binary " -"`_." +"Arguments to ``llvm-bolt`` when creating a `BOLT optimized binary `_." msgstr "" -#: ../../using/configure.rst:726 +#: ../../using/configure.rst:733 msgid "Arguments to ``llvm-bolt`` when instrumenting binaries." msgstr "" -#: ../../using/configure.rst:732 +#: ../../using/configure.rst:739 msgid "" "Enable computed gotos in evaluation loop (enabled by default on supported " "compilers)." msgstr "" -#: ../../using/configure.rst:737 +#: ../../using/configure.rst:744 msgid "" -"Enable interpreters using tail calls in CPython. If enabled, enabling PGO " -"(:option:`--enable-optimizations`) is highly recommended. This option " +"Enable interpreters using tail calls in CPython. If enabled, enabling PGO (:" +"option:`--enable-optimizations`) is highly recommended. This option " "specifically requires a C compiler with proper tail call support, and the " "`preserve_none `_ calling convention. For example, Clang 19 and newer supports this " "feature." msgstr "" -#: ../../using/configure.rst:747 +#: ../../using/configure.rst:754 msgid "" "Disable the fast :ref:`mimalloc ` allocator (enabled by default)." msgstr "" -#: ../../using/configure.rst:750 +#: ../../using/configure.rst:757 msgid "" -"This option cannot be used together with :option:`--disable-gil` because the " -":term:`free-threaded ` build requires mimalloc." +"This option cannot be used together with :option:`--disable-gil` because " +"the :term:`free-threaded ` build requires mimalloc." msgstr "" -#: ../../using/configure.rst:753 ../../using/configure.rst:760 +#: ../../using/configure.rst:760 ../../using/configure.rst:767 msgid "See also :envvar:`PYTHONMALLOC` environment variable." msgstr "" -#: ../../using/configure.rst:757 +#: ../../using/configure.rst:764 msgid "" "Disable the specialized Python memory allocator :ref:`pymalloc ` " "(enabled by default)." msgstr "" -#: ../../using/configure.rst:764 +#: ../../using/configure.rst:771 msgid "" "Disable static documentation strings to reduce the memory footprint (enabled " "by default). Documentation strings defined in Python are not affected." msgstr "" -#: ../../using/configure.rst:767 +#: ../../using/configure.rst:774 msgid "Don't define the ``WITH_DOC_STRINGS`` macro." msgstr "" -#: ../../using/configure.rst:769 +#: ../../using/configure.rst:776 msgid "See the ``PyDoc_STRVAR()`` macro." msgstr "" -#: ../../using/configure.rst:773 +#: ../../using/configure.rst:780 msgid "Enable C-level code profiling with ``gprof`` (disabled by default)." msgstr "" -#: ../../using/configure.rst:777 +#: ../../using/configure.rst:784 msgid "" "Add ``-fstrict-overflow`` to the C compiler flags (by default we add ``-fno-" "strict-overflow`` instead)." msgstr "" -#: ../../using/configure.rst:782 +#: ../../using/configure.rst:789 msgid "" "Deactivate remote debugging support described in :pep:`768` (enabled by " "default). When this flag is provided the code that allows the interpreter to " -"schedule the execution of a Python file in a separate process as described in" -" :pep:`768` is not compiled. This includes both the functionality to schedule" -" code to be executed and the functionality to receive code to be executed." +"schedule the execution of a Python file in a separate process as described " +"in :pep:`768` is not compiled. This includes both the functionality to " +"schedule code to be executed and the functionality to receive code to be " +"executed." msgstr "" -#: ../../using/configure.rst:790 +#: ../../using/configure.rst:797 msgid "" -"This macro is defined by default, unless Python is configured with " -":option:`--without-remote-debug`." +"This macro is defined by default, unless Python is configured with :option:" +"`--without-remote-debug`." msgstr "" -#: ../../using/configure.rst:793 +#: ../../using/configure.rst:800 msgid "" -"Note that even if the macro is defined, remote debugging may not be available" -" (for example, on an incompatible platform)." +"Note that even if the macro is defined, remote debugging may not be " +"available (for example, on an incompatible platform)." msgstr "" -#: ../../using/configure.rst:802 +#: ../../using/configure.rst:809 msgid "Python Debug Build" msgstr "" -#: ../../using/configure.rst:804 +#: ../../using/configure.rst:811 msgid "" "A debug build is Python built with the :option:`--with-pydebug` configure " "option." msgstr "" -#: ../../using/configure.rst:807 +#: ../../using/configure.rst:814 msgid "Effects of a debug build:" msgstr "" -#: ../../using/configure.rst:809 +#: ../../using/configure.rst:816 msgid "" -"Display all warnings by default: the list of default warning filters is empty" -" in the :mod:`warnings` module." +"Display all warnings by default: the list of default warning filters is " +"empty in the :mod:`warnings` module." msgstr "" -#: ../../using/configure.rst:811 +#: ../../using/configure.rst:818 msgid "Add ``d`` to :data:`sys.abiflags`." msgstr "" -#: ../../using/configure.rst:812 +#: ../../using/configure.rst:819 msgid "Add :func:`!sys.gettotalrefcount` function." msgstr "" -#: ../../using/configure.rst:813 +#: ../../using/configure.rst:820 msgid "Add :option:`-X showrefcount <-X>` command line option." msgstr "" -#: ../../using/configure.rst:814 +#: ../../using/configure.rst:821 msgid "" "Add :option:`-d` command line option and :envvar:`PYTHONDEBUG` environment " "variable to debug the parser." msgstr "" -#: ../../using/configure.rst:816 +#: ../../using/configure.rst:823 msgid "" -"Add support for the ``__lltrace__`` variable: enable low-level tracing in the" -" bytecode evaluation loop if the variable is defined." +"Add support for the ``__lltrace__`` variable: enable low-level tracing in " +"the bytecode evaluation loop if the variable is defined." msgstr "" -#: ../../using/configure.rst:818 +#: ../../using/configure.rst:825 msgid "" "Install :ref:`debug hooks on memory allocators ` " "to detect buffer overflow and other memory errors." msgstr "" -#: ../../using/configure.rst:820 +#: ../../using/configure.rst:827 msgid "Define ``Py_DEBUG`` and ``Py_REF_DEBUG`` macros." msgstr "" -#: ../../using/configure.rst:821 +#: ../../using/configure.rst:828 msgid "" "Add runtime checks: code surrounded by ``#ifdef Py_DEBUG`` and ``#endif``. " "Enable ``assert(...)`` and ``_PyObject_ASSERT(...)`` assertions: don't set " @@ -1280,356 +1286,363 @@ msgid "" "option). Main runtime checks:" msgstr "" -#: ../../using/configure.rst:826 +#: ../../using/configure.rst:833 msgid "Add sanity checks on the function arguments." msgstr "" -#: ../../using/configure.rst:827 +#: ../../using/configure.rst:834 msgid "" "Unicode and int objects are created with their memory filled with a pattern " "to detect usage of uninitialized objects." msgstr "" -#: ../../using/configure.rst:829 +#: ../../using/configure.rst:836 msgid "" "Ensure that functions which can clear or replace the current exception are " "not called with an exception raised." msgstr "" -#: ../../using/configure.rst:831 +#: ../../using/configure.rst:838 msgid "Check that deallocator functions don't change the current exception." msgstr "" -#: ../../using/configure.rst:832 +#: ../../using/configure.rst:839 msgid "" -"The garbage collector (:func:`gc.collect` function) runs some basic checks on" -" objects consistency." +"The garbage collector (:func:`gc.collect` function) runs some basic checks " +"on objects consistency." msgstr "" -#: ../../using/configure.rst:834 +#: ../../using/configure.rst:841 msgid "" "The :c:macro:`!Py_SAFE_DOWNCAST()` macro checks for integer underflow and " "overflow when downcasting from wide types to narrow types." msgstr "" -#: ../../using/configure.rst:837 +#: ../../using/configure.rst:844 msgid "" -"See also the :ref:`Python Development Mode ` and the " -":option:`--with-trace-refs` configure option." +"See also the :ref:`Python Development Mode ` and the :option:`--" +"with-trace-refs` configure option." msgstr "" -#: ../../using/configure.rst:840 +#: ../../using/configure.rst:847 msgid "" "Release builds are now ABI compatible with debug builds: defining the " -"``Py_DEBUG`` macro no longer implies the ``Py_TRACE_REFS`` macro (see the " -":option:`--with-trace-refs` option). However, debug builds still expose more " +"``Py_DEBUG`` macro no longer implies the ``Py_TRACE_REFS`` macro (see the :" +"option:`--with-trace-refs` option). However, debug builds still expose more " "symbols than release builds and code built against a debug build is not " "necessarily compatible with a release build." msgstr "" -#: ../../using/configure.rst:849 +#: ../../using/configure.rst:856 msgid "Debug options" msgstr "" -#: ../../using/configure.rst:853 +#: ../../using/configure.rst:860 msgid "" ":ref:`Build Python in debug mode `: define the ``Py_DEBUG`` " "macro (disabled by default)." msgstr "" -#: ../../using/configure.rst:858 +#: ../../using/configure.rst:865 msgid "Enable tracing references for debugging purpose (disabled by default)." msgstr "" -#: ../../using/configure.rst:862 +#: ../../using/configure.rst:869 msgid "Define the ``Py_TRACE_REFS`` macro." msgstr "" -#: ../../using/configure.rst:863 +#: ../../using/configure.rst:870 msgid "Add :func:`sys.getobjects` function." msgstr "" -#: ../../using/configure.rst:864 +#: ../../using/configure.rst:871 msgid "Add :envvar:`PYTHONDUMPREFS` environment variable." msgstr "" -#: ../../using/configure.rst:866 +#: ../../using/configure.rst:873 msgid "" -"The :envvar:`PYTHONDUMPREFS` environment variable can be used to dump objects" -" and reference counts still alive at Python exit." +"The :envvar:`PYTHONDUMPREFS` environment variable can be used to dump " +"objects and reference counts still alive at Python exit." msgstr "" -#: ../../using/configure.rst:869 +#: ../../using/configure.rst:876 msgid ":ref:`Statically allocated objects ` are not traced." msgstr "" -#: ../../using/configure.rst:873 +#: ../../using/configure.rst:880 msgid "" "This build is now ABI compatible with release build and :ref:`debug build " "`." msgstr "" -#: ../../using/configure.rst:879 +#: ../../using/configure.rst:886 msgid "" "Build with C assertions enabled (default is no): ``assert(...);`` and " "``_PyObject_ASSERT(...);``." msgstr "" -#: ../../using/configure.rst:882 +#: ../../using/configure.rst:889 msgid "" "If set, the ``NDEBUG`` macro is not defined in the :envvar:`OPT` compiler " "variable." msgstr "" -#: ../../using/configure.rst:885 +#: ../../using/configure.rst:892 msgid "" "See also the :option:`--with-pydebug` option (:ref:`debug build `) which also enables assertions." msgstr "" -#: ../../using/configure.rst:892 +#: ../../using/configure.rst:899 msgid "Enable Valgrind support (default is no)." msgstr "" -#: ../../using/configure.rst:896 +#: ../../using/configure.rst:903 msgid "Enable DTrace support (default is no)." msgstr "" -#: ../../using/configure.rst:898 +#: ../../using/configure.rst:905 msgid "" "See :ref:`Instrumenting CPython with DTrace and SystemTap `." msgstr "" -#: ../../using/configure.rst:905 +#: ../../using/configure.rst:912 msgid "" "Enable AddressSanitizer memory error detector, ``asan`` (default is no). To " -"improve ASan detection capabilities you may also want to combine this with " -":option:`--without-pymalloc` to disable the specialized small-object " +"improve ASan detection capabilities you may also want to combine this with :" +"option:`--without-pymalloc` to disable the specialized small-object " "allocator whose allocations are not tracked by ASan." msgstr "" -#: ../../using/configure.rst:914 +#: ../../using/configure.rst:921 msgid "" "Enable MemorySanitizer allocation error detector, ``msan`` (default is no)." msgstr "" -#: ../../using/configure.rst:920 +#: ../../using/configure.rst:923 +msgid "" +"MSan reports false positives for memory initialized by libraries that are " +"not built with MSan, so either build all dependencies with MSan or disable " +"the extension modules that use them in :file:`Modules/Setup.local`." +msgstr "" + +#: ../../using/configure.rst:931 msgid "" "Enable UndefinedBehaviorSanitizer undefined behaviour detector, ``ubsan`` " "(default is no)." msgstr "" -#: ../../using/configure.rst:927 +#: ../../using/configure.rst:938 msgid "Enable ThreadSanitizer data race detector, ``tsan`` (default is no)." msgstr "" -#: ../../using/configure.rst:938 +#: ../../using/configure.rst:949 msgid "Enable building a shared Python library: ``libpython`` (default is no)." msgstr "" -#: ../../using/configure.rst:942 +#: ../../using/configure.rst:953 msgid "" "Do not build ``libpythonMAJOR.MINOR.a`` and do not install ``python.o`` " "(built and enabled by default)." msgstr "" -#: ../../using/configure.rst:949 +#: ../../using/configure.rst:960 msgid "Libraries options" msgstr "" -#: ../../using/configure.rst:953 +#: ../../using/configure.rst:964 msgid "Link against additional libraries (default is no)." msgstr "" -#: ../../using/configure.rst:957 +#: ../../using/configure.rst:968 msgid "" "Build the :mod:`!pyexpat` module using an installed ``expat`` library " "(default is no)." msgstr "" -#: ../../using/configure.rst:962 +#: ../../using/configure.rst:973 msgid "" "Build the ``_decimal`` extension module using an installed ``mpdecimal`` " "library, see the :mod:`decimal` module (default is yes)." msgstr "" -#: ../../using/configure.rst:967 +#: ../../using/configure.rst:978 msgid "Default to using the installed ``mpdecimal`` library." msgstr "" -#: ../../using/configure.rst:972 +#: ../../using/configure.rst:983 msgid "" "A bundled copy of the library will no longer be selected implicitly if an " "installed ``mpdecimal`` library is not found. In Python 3.15 only, it can " -"still be selected explicitly using ``--with-system-libmpdec=no`` or " -"``--without-system-libmpdec``." +"still be selected explicitly using ``--with-system-libmpdec=no`` or ``--" +"without-system-libmpdec``." msgstr "" -#: ../../using/configure.rst:977 +#: ../../using/configure.rst:988 msgid "" "A copy of the ``mpdecimal`` library sources will no longer be distributed " "with Python 3.16." msgstr "" -#: ../../using/configure.rst:981 +#: ../../using/configure.rst:992 msgid ":option:`LIBMPDEC_CFLAGS` and :option:`LIBMPDEC_LIBS`." msgstr "" -#: ../../using/configure.rst:985 +#: ../../using/configure.rst:996 msgid "Designate a backend library for the :mod:`readline` module." msgstr "" -#: ../../using/configure.rst:987 +#: ../../using/configure.rst:998 msgid "readline: Use readline as the backend." msgstr "" -#: ../../using/configure.rst:988 +#: ../../using/configure.rst:999 msgid "editline: Use editline as the backend." msgstr "" -#: ../../using/configure.rst:994 +#: ../../using/configure.rst:1005 msgid "Don't build the :mod:`readline` module (built by default)." msgstr "" -#: ../../using/configure.rst:996 +#: ../../using/configure.rst:1007 msgid "Don't define the ``HAVE_LIBREADLINE`` macro." msgstr "" -#: ../../using/configure.rst:1002 +#: ../../using/configure.rst:1013 msgid "" "Override ``libm`` math library to *STRING* (default is system-dependent)." msgstr "" -#: ../../using/configure.rst:1006 +#: ../../using/configure.rst:1017 msgid "Override ``libc`` C library to *STRING* (default is system-dependent)." msgstr "" -#: ../../using/configure.rst:1010 +#: ../../using/configure.rst:1021 msgid "Root of the OpenSSL directory." msgstr "" -#: ../../using/configure.rst:1016 +#: ../../using/configure.rst:1027 msgid "Set runtime library directory (rpath) for OpenSSL libraries:" msgstr "" -#: ../../using/configure.rst:1018 +#: ../../using/configure.rst:1029 msgid "``no`` (default): don't set rpath;" msgstr "" -#: ../../using/configure.rst:1019 +#: ../../using/configure.rst:1030 msgid "" "``auto``: auto-detect rpath from :option:`--with-openssl` and ``pkg-config``;" msgstr "" -#: ../../using/configure.rst:1021 +#: ../../using/configure.rst:1032 msgid "*DIR*: set an explicit rpath." msgstr "" -#: ../../using/configure.rst:1027 +#: ../../using/configure.rst:1038 msgid "Security Options" msgstr "" -#: ../../using/configure.rst:1031 +#: ../../using/configure.rst:1042 msgid "Select hash algorithm for use in ``Python/pyhash.c``:" msgstr "" -#: ../../using/configure.rst:1033 +#: ../../using/configure.rst:1044 msgid "``siphash13`` (default);" msgstr "" -#: ../../using/configure.rst:1034 +#: ../../using/configure.rst:1045 msgid "``siphash24``;" msgstr "" -#: ../../using/configure.rst:1035 +#: ../../using/configure.rst:1046 msgid "``fnv``." msgstr "" -#: ../../using/configure.rst:1039 +#: ../../using/configure.rst:1050 msgid "``siphash13`` is added and it is the new default." msgstr "" -#: ../../using/configure.rst:1044 +#: ../../using/configure.rst:1055 msgid "Built-in hash modules:" msgstr "" -#: ../../using/configure.rst:1046 +#: ../../using/configure.rst:1057 msgid "``md5``;" msgstr "" -#: ../../using/configure.rst:1047 +#: ../../using/configure.rst:1058 msgid "``sha1``;" msgstr "" -#: ../../using/configure.rst:1048 +#: ../../using/configure.rst:1059 msgid "``sha256``;" msgstr "" -#: ../../using/configure.rst:1049 +#: ../../using/configure.rst:1060 msgid "``sha512``;" msgstr "" -#: ../../using/configure.rst:1050 +#: ../../using/configure.rst:1061 msgid "``sha3`` (with shake);" msgstr "" -#: ../../using/configure.rst:1051 +#: ../../using/configure.rst:1062 msgid "``blake2``." msgstr "" -#: ../../using/configure.rst:1057 +#: ../../using/configure.rst:1068 msgid "Override the OpenSSL default cipher suites string:" msgstr "" -#: ../../using/configure.rst:1059 +#: ../../using/configure.rst:1070 msgid "``python`` (default): use Python's preferred selection;" msgstr "" -#: ../../using/configure.rst:1060 +#: ../../using/configure.rst:1071 msgid "``openssl``: leave OpenSSL's defaults untouched;" msgstr "" -#: ../../using/configure.rst:1061 +#: ../../using/configure.rst:1072 msgid "*STRING*: use a custom string" msgstr "" -#: ../../using/configure.rst:1063 +#: ../../using/configure.rst:1074 msgid "See the :mod:`ssl` module." msgstr "" -#: ../../using/configure.rst:1069 +#: ../../using/configure.rst:1080 msgid "" "The settings ``python`` and *STRING* also set TLS 1.2 as minimum protocol " "version." msgstr "" -#: ../../using/configure.rst:1074 +#: ../../using/configure.rst:1085 msgid "" "Disable compiler options that are `recommended by OpenSSF`_ for security " "reasons with no performance overhead. If this option is not enabled, CPython " "will be built based on safety compiler options with no slow down. When this " -"option is enabled, CPython will not be built with the compiler options listed" -" below." +"option is enabled, CPython will not be built with the compiler options " +"listed below." msgstr "" -#: ../../using/configure.rst:1078 +#: ../../using/configure.rst:1089 msgid "" "The following compiler options are disabled with :option:`!--disable-safety`:" msgstr "" -#: ../../using/configure.rst:1080 +#: ../../using/configure.rst:1091 msgid "" "`-fstack-protector-strong`_: Enable run-time checks for stack-based buffer " "overflows." msgstr "" -#: ../../using/configure.rst:1081 +#: ../../using/configure.rst:1092 msgid "" "`-Wtrampolines`_: Enable warnings about trampolines that require executable " "stacks." msgstr "" -#: ../../using/configure.rst:1091 +#: ../../using/configure.rst:1102 msgid "" "Enable compiler options that are `recommended by OpenSSF`_ for security " "reasons which require overhead. If this option is not enabled, CPython will " @@ -1638,128 +1651,127 @@ msgid "" "listed below." msgstr "" -#: ../../using/configure.rst:1095 +#: ../../using/configure.rst:1106 msgid "" "The following compiler options are enabled with :option:`!--enable-slower-" "safety`:" msgstr "" -#: ../../using/configure.rst:1097 +#: ../../using/configure.rst:1108 msgid "" -"`-D_FORTIFY_SOURCE=3`_: Fortify sources with compile- and run-time checks for" -" unsafe libc usage and buffer overflows." +"`-D_FORTIFY_SOURCE=3`_: Fortify sources with compile- and run-time checks " +"for unsafe libc usage and buffer overflows." msgstr "" -#: ../../using/configure.rst:1105 +#: ../../using/configure.rst:1116 msgid "macOS Options" msgstr "" -#: ../../using/configure.rst:1107 +#: ../../using/configure.rst:1118 msgid "See :source:`Mac/README.rst`." msgstr "" -#: ../../using/configure.rst:1112 +#: ../../using/configure.rst:1123 msgid "" -"Create a universal binary build. *SDKDIR* specifies which macOS SDK should be" -" used to perform the build (default is no)." +"Create a universal binary build. *SDKDIR* specifies which macOS SDK should " +"be used to perform the build (default is no)." msgstr "" -#: ../../using/configure.rst:1118 +#: ../../using/configure.rst:1129 msgid "" "Create a Python.framework rather than a traditional Unix install. Optional " "*INSTALLDIR* specifies the installation path (default is no)." msgstr "" -#: ../../using/configure.rst:1123 +#: ../../using/configure.rst:1134 msgid "" "Specify the kind of universal binary that should be created. This option is " "only valid when :option:`--enable-universalsdk` is set." msgstr "" -#: ../../using/configure.rst:1126 +#: ../../using/configure.rst:1137 msgid "Options:" msgstr "" -#: ../../using/configure.rst:1128 +#: ../../using/configure.rst:1139 msgid "``universal2`` (x86-64 and arm64);" msgstr "" -#: ../../using/configure.rst:1129 +#: ../../using/configure.rst:1140 msgid "``32-bit`` (PPC and i386);" msgstr "" -#: ../../using/configure.rst:1130 +#: ../../using/configure.rst:1141 msgid "``64-bit`` (PPC64 and x86-64);" msgstr "" -#: ../../using/configure.rst:1131 +#: ../../using/configure.rst:1142 msgid "``3-way`` (i386, PPC and x86-64);" msgstr "" -#: ../../using/configure.rst:1132 +#: ../../using/configure.rst:1143 msgid "``intel`` (i386 and x86-64);" msgstr "" -#: ../../using/configure.rst:1133 +#: ../../using/configure.rst:1144 msgid "``intel-32`` (i386);" msgstr "" -#: ../../using/configure.rst:1134 +#: ../../using/configure.rst:1145 msgid "``intel-64`` (x86-64);" msgstr "" -#: ../../using/configure.rst:1135 +#: ../../using/configure.rst:1146 msgid "``all`` (PPC, i386, PPC64 and x86-64)." msgstr "" -#: ../../using/configure.rst:1137 +#: ../../using/configure.rst:1148 msgid "" "Note that values for this configuration item are *not* the same as the " "identifiers used for universal binary wheels on macOS. See the Python " "Packaging User Guide for details on the `packaging platform compatibility " -"tags used on macOS " -"`_" +"tags used on macOS `_" msgstr "" -#: ../../using/configure.rst:1145 +#: ../../using/configure.rst:1156 msgid "" -"Specify the name for the python framework on macOS only valid when " -":option:`--enable-framework` is set (default: ``Python``)." +"Specify the name for the python framework on macOS only valid when :option:" +"`--enable-framework` is set (default: ``Python``)." msgstr "" -#: ../../using/configure.rst:1151 +#: ../../using/configure.rst:1162 msgid "" "The Python standard library contains strings that are known to trigger " -"automated inspection tool errors when submitted for distribution by the macOS" -" and iOS App Stores. If enabled, this option will apply the list of patches " -"that are known to correct app store compliance. A custom patch file can also " -"be specified. This option is disabled by default." +"automated inspection tool errors when submitted for distribution by the " +"macOS and iOS App Stores. If enabled, this option will apply the list of " +"patches that are known to correct app store compliance. A custom patch file " +"can also be specified. This option is disabled by default." msgstr "" -#: ../../using/configure.rst:1160 +#: ../../using/configure.rst:1171 msgid "iOS Options" msgstr "" -#: ../../using/configure.rst:1162 +#: ../../using/configure.rst:1173 msgid "See :source:`iOS/README.rst`." msgstr "" -#: ../../using/configure.rst:1166 +#: ../../using/configure.rst:1177 msgid "" -"Create a Python.framework. Unlike macOS, the *INSTALLDIR* argument specifying" -" the installation path is mandatory." +"Create a Python.framework. Unlike macOS, the *INSTALLDIR* argument " +"specifying the installation path is mandatory." msgstr "" -#: ../../using/configure.rst:1171 +#: ../../using/configure.rst:1182 msgid "Specify the name for the framework (default: ``Python``)." msgstr "" -#: ../../using/configure.rst:1175 +#: ../../using/configure.rst:1186 msgid "Cross Compiling Options" msgstr "" -#: ../../using/configure.rst:1177 +#: ../../using/configure.rst:1188 msgid "" "Cross compiling, also known as cross building, can be used to build Python " "for another CPU architecture or platform. Cross compiling requires a Python " @@ -1767,28 +1779,28 @@ msgid "" "match the version of the cross compiled host Python." msgstr "" -#: ../../using/configure.rst:1184 +#: ../../using/configure.rst:1195 msgid "" "configure for building on BUILD, usually guessed by :program:`config.guess`." msgstr "" -#: ../../using/configure.rst:1188 +#: ../../using/configure.rst:1199 msgid "cross-compile to build programs to run on HOST (target platform)" msgstr "" -#: ../../using/configure.rst:1192 +#: ../../using/configure.rst:1203 msgid "path to build ``python`` binary for cross compiling" msgstr "" -#: ../../using/configure.rst:1198 +#: ../../using/configure.rst:1209 msgid "An environment variable that points to a file with configure overrides." msgstr "" -#: ../../using/configure.rst:1200 +#: ../../using/configure.rst:1211 msgid "Example *config.site* file:" msgstr "" -#: ../../using/configure.rst:1202 +#: ../../using/configure.rst:1213 msgid "" "# config.site-aarch64\n" "ac_cv_buggy_getaddrinfo=no\n" @@ -1796,15 +1808,15 @@ msgid "" "ac_cv_file__dev_ptc=no" msgstr "" -#: ../../using/configure.rst:1211 +#: ../../using/configure.rst:1222 msgid "Program to run CPython for the host platform for cross-compilation." msgstr "" -#: ../../using/configure.rst:1216 +#: ../../using/configure.rst:1227 msgid "Cross compiling example::" msgstr "" -#: ../../using/configure.rst:1218 +#: ../../using/configure.rst:1229 msgid "" "CONFIG_SITE=config.site-aarch64 ../configure \\\n" " --build=x86_64-pc-linux-gnu \\\n" @@ -1812,90 +1824,90 @@ msgid "" " --with-build-python=../x86_64/python" msgstr "" -#: ../../using/configure.rst:1225 +#: ../../using/configure.rst:1236 msgid "Python Build System" msgstr "" -#: ../../using/configure.rst:1228 +#: ../../using/configure.rst:1239 msgid "Main files of the build system" msgstr "" -#: ../../using/configure.rst:1230 +#: ../../using/configure.rst:1241 msgid ":file:`configure.ac` => :file:`configure`;" msgstr "" -#: ../../using/configure.rst:1231 +#: ../../using/configure.rst:1242 msgid "" ":file:`Makefile.pre.in` => :file:`Makefile` (created by :file:`configure`);" msgstr "" -#: ../../using/configure.rst:1232 +#: ../../using/configure.rst:1243 msgid ":file:`pyconfig.h` (created by :file:`configure`);" msgstr "" -#: ../../using/configure.rst:1233 +#: ../../using/configure.rst:1244 msgid "" -":file:`Modules/Setup`: C extensions built by the Makefile using " -":file:`Module/makesetup` shell script;" +":file:`Modules/Setup`: C extensions built by the Makefile using :file:" +"`Module/makesetup` shell script;" msgstr "" -#: ../../using/configure.rst:1237 +#: ../../using/configure.rst:1248 msgid "Main build steps" msgstr "" -#: ../../using/configure.rst:1239 +#: ../../using/configure.rst:1250 msgid "C files (``.c``) are built as object files (``.o``)." msgstr "" -#: ../../using/configure.rst:1240 +#: ../../using/configure.rst:1251 msgid "A static ``libpython`` library (``.a``) is created from objects files." msgstr "" -#: ../../using/configure.rst:1241 +#: ../../using/configure.rst:1252 msgid "" "``python.o`` and the static ``libpython`` library are linked into the final " "``python`` program." msgstr "" -#: ../../using/configure.rst:1243 +#: ../../using/configure.rst:1254 msgid "C extensions are built by the Makefile (see :file:`Modules/Setup`)." msgstr "" -#: ../../using/configure.rst:1246 +#: ../../using/configure.rst:1257 msgid "Main Makefile targets" msgstr "" -#: ../../using/configure.rst:1249 +#: ../../using/configure.rst:1260 msgid "make" msgstr "" -#: ../../using/configure.rst:1251 +#: ../../using/configure.rst:1262 msgid "" -"For the most part, when rebuilding after editing some code or refreshing your" -" checkout from upstream, all you need to do is execute ``make``, which (per " -"Make's semantics) builds the default target, the first one defined in the " -"Makefile. By tradition (including in the CPython project) this is usually " -"the ``all`` target. The ``configure`` script expands an ``autoconf`` " +"For the most part, when rebuilding after editing some code or refreshing " +"your checkout from upstream, all you need to do is execute ``make``, which " +"(per Make's semantics) builds the default target, the first one defined in " +"the Makefile. By tradition (including in the CPython project) this is " +"usually the ``all`` target. The ``configure`` script expands an ``autoconf`` " "variable, ``@DEF_MAKE_ALL_RULE@`` to describe precisely which targets ``make " "all`` will build. The three choices are:" msgstr "" -#: ../../using/configure.rst:1260 +#: ../../using/configure.rst:1271 msgid "``profile-opt`` (configured with ``--enable-optimizations``)" msgstr "" -#: ../../using/configure.rst:1261 +#: ../../using/configure.rst:1272 msgid "" "``build_wasm`` (chosen if the host platform matches ``wasm32-wasi*`` or " "``wasm32-emscripten``)" msgstr "" -#: ../../using/configure.rst:1263 +#: ../../using/configure.rst:1274 msgid "" "``build_all`` (configured without explicitly using either of the others)" msgstr "" -#: ../../using/configure.rst:1265 +#: ../../using/configure.rst:1276 msgid "" "Depending on the most recent source file changes, Make will rebuild any " "targets (object files and executables) deemed out-of-date, including running " @@ -1908,103 +1920,103 @@ msgid "" "problems, at the expense of longer build times." msgstr "" -#: ../../using/configure.rst:1278 +#: ../../using/configure.rst:1289 msgid "make platform" msgstr "" -#: ../../using/configure.rst:1280 +#: ../../using/configure.rst:1291 msgid "" "Build the ``python`` program, but don't build the standard library extension " "modules. This generates a file named ``platform`` which contains a single " -"line describing the details of the build platform, e.g., " -"``macosx-14.3-arm64-3.12`` or ``linux-x86_64-3.13``." +"line describing the details of the build platform, e.g., ``macosx-14.3-" +"arm64-3.12`` or ``linux-x86_64-3.13``." msgstr "" -#: ../../using/configure.rst:1287 +#: ../../using/configure.rst:1298 msgid "make profile-opt" msgstr "" -#: ../../using/configure.rst:1289 +#: ../../using/configure.rst:1300 msgid "" "Build Python using profile-guided optimization (PGO). You can use the " "configure :option:`--enable-optimizations` option to make this the default " "target of the ``make`` command (``make all`` or just ``make``)." msgstr "" -#: ../../using/configure.rst:1297 +#: ../../using/configure.rst:1308 msgid "make clean" msgstr "" -#: ../../using/configure.rst:1299 +#: ../../using/configure.rst:1310 msgid "Remove built files." msgstr "" -#: ../../using/configure.rst:1303 +#: ../../using/configure.rst:1314 msgid "make distclean" msgstr "" -#: ../../using/configure.rst:1305 +#: ../../using/configure.rst:1316 msgid "" "In addition to the work done by ``make clean``, remove files created by the " "configure script. ``configure`` will have to be run before building again. " "[#]_" msgstr "" -#: ../../using/configure.rst:1311 +#: ../../using/configure.rst:1322 msgid "make install" msgstr "" -#: ../../using/configure.rst:1313 +#: ../../using/configure.rst:1324 msgid "Build the ``all`` target and install Python." msgstr "" -#: ../../using/configure.rst:1317 +#: ../../using/configure.rst:1328 msgid "make test" msgstr "" -#: ../../using/configure.rst:1319 +#: ../../using/configure.rst:1330 msgid "" -"Build the ``all`` target and run the Python test suite with the ``--fast-ci``" -" option without GUI tests. Variables:" +"Build the ``all`` target and run the Python test suite with the ``--fast-" +"ci`` option without GUI tests. Variables:" msgstr "" -#: ../../using/configure.rst:1322 +#: ../../using/configure.rst:1333 msgid "``TESTOPTS``: additional regrtest command-line options." msgstr "" -#: ../../using/configure.rst:1323 +#: ../../using/configure.rst:1334 msgid "``TESTPYTHONOPTS``: additional Python command-line options." msgstr "" -#: ../../using/configure.rst:1324 +#: ../../using/configure.rst:1335 msgid "``TESTTIMEOUT``: timeout in seconds (default: 10 minutes)." msgstr "" -#: ../../using/configure.rst:1328 +#: ../../using/configure.rst:1339 msgid "make ci" msgstr "" -#: ../../using/configure.rst:1330 +#: ../../using/configure.rst:1341 msgid "" "This is similar to ``make test``, but uses the ``-ugui`` to also run GUI " "tests." msgstr "" -#: ../../using/configure.rst:1336 +#: ../../using/configure.rst:1347 msgid "make buildbottest" msgstr "" -#: ../../using/configure.rst:1338 +#: ../../using/configure.rst:1349 msgid "" "This is similar to ``make test``, but uses the ``--slow-ci`` option and " "default timeout of 20 minutes, instead of ``--fast-ci`` option." msgstr "" -#: ../../using/configure.rst:1343 +#: ../../using/configure.rst:1354 msgid "make regen-all" msgstr "" -#: ../../using/configure.rst:1345 +#: ../../using/configure.rst:1356 msgid "" "Regenerate (almost) all generated files. These include (but are not limited " "to) bytecode cases, and parser generator file. ``make regen-stdlib-module-" @@ -2012,18 +2024,18 @@ msgid "" "files <#generated-files>`_." msgstr "" -#: ../../using/configure.rst:1352 +#: ../../using/configure.rst:1363 msgid "C extensions" msgstr "" -#: ../../using/configure.rst:1354 +#: ../../using/configure.rst:1365 msgid "" "Some C extensions are built as built-in modules, like the ``sys`` module. " "They are built with the ``Py_BUILD_CORE_BUILTIN`` macro defined. Built-in " "modules have no ``__file__`` attribute:" msgstr "" -#: ../../using/configure.rst:1358 +#: ../../using/configure.rst:1369 msgid "" ">>> import sys\n" ">>> sys\n" @@ -2034,339 +2046,338 @@ msgid "" "AttributeError: module 'sys' has no attribute '__file__'" msgstr "" -#: ../../using/configure.rst:1368 +#: ../../using/configure.rst:1379 msgid "" "Other C extensions are built as dynamic libraries, like the ``_asyncio`` " "module. They are built with the ``Py_BUILD_CORE_MODULE`` macro defined. " "Example on Linux x86-64:" msgstr "" -#: ../../using/configure.rst:1372 +#: ../../using/configure.rst:1383 msgid "" ">>> import _asyncio\n" ">>> _asyncio\n" -"\n" +"\n" ">>> _asyncio.__file__\n" "'/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'" msgstr "" -#: ../../using/configure.rst:1380 +#: ../../using/configure.rst:1391 msgid "" ":file:`Modules/Setup` is used to generate Makefile targets to build C " -"extensions. At the beginning of the files, C extensions are built as built-in" -" modules. Extensions defined after the ``*shared*`` marker are built as " +"extensions. At the beginning of the files, C extensions are built as built-" +"in modules. Extensions defined after the ``*shared*`` marker are built as " "dynamic libraries." msgstr "" -#: ../../using/configure.rst:1384 +#: ../../using/configure.rst:1395 msgid "" -"The :c:macro:`!PyAPI_FUNC()`, :c:macro:`!PyAPI_DATA()` and " -":c:macro:`PyMODINIT_FUNC` macros of :file:`Include/exports.h` are defined " -"differently depending if the ``Py_BUILD_CORE_MODULE`` macro is defined:" +"The :c:macro:`!PyAPI_FUNC()`, :c:macro:`!PyAPI_DATA()` and :c:macro:" +"`PyMODINIT_FUNC` macros of :file:`Include/exports.h` are defined differently " +"depending if the ``Py_BUILD_CORE_MODULE`` macro is defined:" msgstr "" -#: ../../using/configure.rst:1388 +#: ../../using/configure.rst:1399 msgid "Use ``Py_EXPORTED_SYMBOL`` if the ``Py_BUILD_CORE_MODULE`` is defined" msgstr "" -#: ../../using/configure.rst:1389 +#: ../../using/configure.rst:1400 msgid "Use ``Py_IMPORTED_SYMBOL`` otherwise." msgstr "" -#: ../../using/configure.rst:1391 +#: ../../using/configure.rst:1402 msgid "" "If the ``Py_BUILD_CORE_BUILTIN`` macro is used by mistake on a C extension " "built as a shared library, its :samp:`PyInit_{xxx}()` function is not " "exported, causing an :exc:`ImportError` on import." msgstr "" -#: ../../using/configure.rst:1397 +#: ../../using/configure.rst:1408 msgid "Compiler and linker flags" msgstr "" -#: ../../using/configure.rst:1399 +#: ../../using/configure.rst:1410 msgid "" "Options set by the ``./configure`` script and environment variables and used " "by ``Makefile``." msgstr "" -#: ../../using/configure.rst:1403 +#: ../../using/configure.rst:1414 msgid "Preprocessor flags" msgstr "" -#: ../../using/configure.rst:1407 +#: ../../using/configure.rst:1418 msgid "" "Value of :envvar:`CPPFLAGS` variable passed to the ``./configure`` script." msgstr "" -#: ../../using/configure.rst:1413 +#: ../../using/configure.rst:1424 msgid "" "(Objective) C/C++ preprocessor flags, e.g. :samp:`-I{include_dir}` if you " "have headers in a nonstandard directory *include_dir*." msgstr "" -#: ../../using/configure.rst:1416 ../../using/configure.rst:1612 +#: ../../using/configure.rst:1427 ../../using/configure.rst:1623 msgid "" "Both :envvar:`CPPFLAGS` and :envvar:`LDFLAGS` need to contain the shell's " "value to be able to build extension modules using the directories specified " "in the environment variables." msgstr "" -#: ../../using/configure.rst:1426 +#: ../../using/configure.rst:1437 msgid "" "Extra preprocessor flags added for building the interpreter object files." msgstr "" -#: ../../using/configure.rst:1428 +#: ../../using/configure.rst:1439 msgid "" "Default: ``$(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) " "$(CPPFLAGS)``." msgstr "" -#: ../../using/configure.rst:1433 +#: ../../using/configure.rst:1444 msgid "Compiler flags" msgstr "" -#: ../../using/configure.rst:1439 +#: ../../using/configure.rst:1450 msgid "Example: ``gcc -pthread``." msgstr "" -#: ../../using/configure.rst:1443 +#: ../../using/configure.rst:1454 msgid "C++ compiler command." msgstr "" -#: ../../using/configure.rst:1445 +#: ../../using/configure.rst:1456 msgid "Example: ``g++ -pthread``." msgstr "" -#: ../../using/configure.rst:1453 +#: ../../using/configure.rst:1464 msgid "" ":envvar:`CFLAGS_NODIST` is used for building the interpreter and stdlib C " -"extensions. Use it when a compiler flag should *not* be part of " -":envvar:`CFLAGS` once Python is installed (:gh:`65320`)." +"extensions. Use it when a compiler flag should *not* be part of :envvar:" +"`CFLAGS` once Python is installed (:gh:`65320`)." msgstr "" -#: ../../using/configure.rst:1457 +#: ../../using/configure.rst:1468 msgid "In particular, :envvar:`CFLAGS` should not contain:" msgstr "" -#: ../../using/configure.rst:1459 +#: ../../using/configure.rst:1470 msgid "" -"the compiler flag ``-I`` (for setting the search path for include files). The" -" ``-I`` flags are processed from left to right, and any flags in " -":envvar:`CFLAGS` would take precedence over user- and package-supplied ``-I``" -" flags." +"the compiler flag ``-I`` (for setting the search path for include files). " +"The ``-I`` flags are processed from left to right, and any flags in :envvar:" +"`CFLAGS` would take precedence over user- and package-supplied ``-I`` flags." msgstr "" -#: ../../using/configure.rst:1464 +#: ../../using/configure.rst:1475 msgid "" "hardening flags such as ``-Werror`` because distributions cannot control " "whether packages installed by users conform to such heightened standards." msgstr "" -#: ../../using/configure.rst:1472 +#: ../../using/configure.rst:1483 msgid "" "Options passed to the :mod:`compileall` command line when building PYC files " "in ``make install``. Default: ``-j0``." msgstr "" -#: ../../using/configure.rst:1479 +#: ../../using/configure.rst:1490 msgid "Extra C compiler flags." msgstr "" -#: ../../using/configure.rst:1483 +#: ../../using/configure.rst:1494 msgid "" "Value of :envvar:`CFLAGS` variable passed to the ``./configure`` script." msgstr "" -#: ../../using/configure.rst:1490 +#: ../../using/configure.rst:1501 msgid "" "Value of :envvar:`CFLAGS_NODIST` variable passed to the ``./configure`` " "script." msgstr "" -#: ../../using/configure.rst:1497 +#: ../../using/configure.rst:1508 msgid "Base compiler flags." msgstr "" -#: ../../using/configure.rst:1501 +#: ../../using/configure.rst:1512 msgid "Optimization flags." msgstr "" -#: ../../using/configure.rst:1505 +#: ../../using/configure.rst:1516 msgid "Strict or non-strict aliasing flags used to compile ``Python/dtoa.c``." msgstr "" -#: ../../using/configure.rst:1511 +#: ../../using/configure.rst:1522 msgid "Flags used to compile ``Python/ceval.c``." msgstr "" -#: ../../using/configure.rst:1517 +#: ../../using/configure.rst:1528 msgid "Compiler flags used to build a shared library." msgstr "" -#: ../../using/configure.rst:1519 +#: ../../using/configure.rst:1530 msgid "For example, ``-fPIC`` is used on Linux and on BSD." msgstr "" -#: ../../using/configure.rst:1523 +#: ../../using/configure.rst:1534 msgid "Extra C flags added for building the interpreter object files." msgstr "" -#: ../../using/configure.rst:1525 +#: ../../using/configure.rst:1536 msgid "" "Default: ``$(CCSHARED)`` when :option:`--enable-shared` is used, or an empty " "string otherwise." msgstr "" -#: ../../using/configure.rst:1530 +#: ../../using/configure.rst:1541 msgid "" "Default: ``$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) " "$(EXTRA_CFLAGS)``." msgstr "" -#: ../../using/configure.rst:1534 +#: ../../using/configure.rst:1545 msgid "" -"Default: ``$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) " -"-I$(srcdir)/Include/internal``." +"Default: ``$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/" +"internal``." msgstr "" -#: ../../using/configure.rst:1540 +#: ../../using/configure.rst:1551 msgid "C flags used for building the interpreter object files." msgstr "" -#: ../../using/configure.rst:1542 +#: ../../using/configure.rst:1553 msgid "" "Default: ``$(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) " "$(CFLAGSFORSHARED)``." msgstr "" -#: ../../using/configure.rst:1548 +#: ../../using/configure.rst:1559 msgid "Default: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE``." msgstr "" -#: ../../using/configure.rst:1554 +#: ../../using/configure.rst:1565 msgid "" "Compiler flags to build a standard library extension module as a built-in " "module, like the :mod:`posix` module." msgstr "" -#: ../../using/configure.rst:1557 +#: ../../using/configure.rst:1568 msgid "Default: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN``." msgstr "" -#: ../../using/configure.rst:1563 +#: ../../using/configure.rst:1574 msgid "Purify command. Purify is a memory debugger program." msgstr "" -#: ../../using/configure.rst:1565 +#: ../../using/configure.rst:1576 msgid "Default: empty string (not used)." msgstr "" -#: ../../using/configure.rst:1569 +#: ../../using/configure.rst:1580 msgid "Linker flags" msgstr "" -#: ../../using/configure.rst:1573 +#: ../../using/configure.rst:1584 msgid "" "Linker command used to build programs like ``python`` and ``_testembed``." msgstr "" -#: ../../using/configure.rst:1575 +#: ../../using/configure.rst:1586 msgid "Default: ``$(PURIFY) $(CC)``." msgstr "" -#: ../../using/configure.rst:1579 +#: ../../using/configure.rst:1590 msgid "" "Value of :envvar:`LDFLAGS` variable passed to the ``./configure`` script." msgstr "" -#: ../../using/configure.rst:1581 +#: ../../using/configure.rst:1592 msgid "" "Avoid assigning :envvar:`CFLAGS`, :envvar:`LDFLAGS`, etc. so users can use " "them on the command line to append to these values without stomping the pre-" "set values." msgstr "" -#: ../../using/configure.rst:1589 +#: ../../using/configure.rst:1600 msgid "" -":envvar:`LDFLAGS_NODIST` is used in the same manner as " -":envvar:`CFLAGS_NODIST`. Use it when a linker flag should *not* be part of " -":envvar:`LDFLAGS` once Python is installed (:gh:`65320`)." +":envvar:`LDFLAGS_NODIST` is used in the same manner as :envvar:" +"`CFLAGS_NODIST`. Use it when a linker flag should *not* be part of :envvar:" +"`LDFLAGS` once Python is installed (:gh:`65320`)." msgstr "" -#: ../../using/configure.rst:1593 +#: ../../using/configure.rst:1604 msgid "In particular, :envvar:`LDFLAGS` should not contain:" msgstr "" -#: ../../using/configure.rst:1595 +#: ../../using/configure.rst:1606 msgid "" -"the compiler flag ``-L`` (for setting the search path for libraries). The " -"``-L`` flags are processed from left to right, and any flags in " -":envvar:`LDFLAGS` would take precedence over user- and package-supplied " -"``-L`` flags." +"the compiler flag ``-L`` (for setting the search path for libraries). The ``-" +"L`` flags are processed from left to right, and any flags in :envvar:" +"`LDFLAGS` would take precedence over user- and package-supplied ``-L`` flags." msgstr "" -#: ../../using/configure.rst:1602 +#: ../../using/configure.rst:1613 msgid "" "Value of :envvar:`LDFLAGS_NODIST` variable passed to the ``./configure`` " "script." msgstr "" -#: ../../using/configure.rst:1609 +#: ../../using/configure.rst:1620 msgid "" -"Linker flags, e.g. :samp:`-L{lib_dir}` if you have libraries in a nonstandard" -" directory *lib_dir*." +"Linker flags, e.g. :samp:`-L{lib_dir}` if you have libraries in a " +"nonstandard directory *lib_dir*." msgstr "" -#: ../../using/configure.rst:1618 +#: ../../using/configure.rst:1629 msgid "" "Linker flags to pass libraries to the linker when linking the Python " "executable." msgstr "" -#: ../../using/configure.rst:1621 +#: ../../using/configure.rst:1632 msgid "Example: ``-lrt``." msgstr "" -#: ../../using/configure.rst:1625 +#: ../../using/configure.rst:1636 msgid "Command to build a shared library." msgstr "" -#: ../../using/configure.rst:1627 +#: ../../using/configure.rst:1638 msgid "Default: ``@LDSHARED@ $(PY_LDFLAGS)``." msgstr "" -#: ../../using/configure.rst:1631 +#: ../../using/configure.rst:1642 msgid "Command to build ``libpython`` shared library." msgstr "" -#: ../../using/configure.rst:1633 +#: ../../using/configure.rst:1644 msgid "Default: ``@BLDSHARED@ $(PY_CORE_LDFLAGS)``." msgstr "" -#: ../../using/configure.rst:1637 +#: ../../using/configure.rst:1648 msgid "Default: ``$(CONFIGURE_LDFLAGS) $(LDFLAGS)``." msgstr "" -#: ../../using/configure.rst:1641 +#: ../../using/configure.rst:1652 msgid "Default: ``$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)``." msgstr "" -#: ../../using/configure.rst:1647 +#: ../../using/configure.rst:1658 msgid "Linker flags used for building the interpreter object files." msgstr "" -#: ../../using/configure.rst:1653 +#: ../../using/configure.rst:1664 msgid "Footnotes" msgstr "Fußnoten" -#: ../../using/configure.rst:1654 +#: ../../using/configure.rst:1665 msgid "" -"``git clean -fdx`` is an even more extreme way to \"clean\" your checkout. It" -" removes all files not known to Git. When bug hunting using ``git bisect``, " -"this is `recommended between probes " -"`_ " -"to guarantee a completely clean build. **Use with care**, as it will delete " -"all files not checked into Git, including your new, uncommitted work." +"``git clean -fdx`` is an even more extreme way to \"clean\" your checkout. " +"It removes all files not known to Git. When bug hunting using ``git " +"bisect``, this is `recommended between probes `_ to guarantee a completely " +"clean build. **Use with care**, as it will delete all files not checked into " +"Git, including your new, uncommitted work." msgstr "" diff --git a/whatsnew/2.0.po b/whatsnew/2.0.po index 1609a534..f53c6d27 100644 --- a/whatsnew/2.0.po +++ b/whatsnew/2.0.po @@ -39,8 +39,8 @@ msgstr "Einführung" #: ../../whatsnew/2.0.rst:15 msgid "" "A new release of Python, version 2.0, was released on October 16, 2000. This " -"article covers the exciting new features in 2.0, highlights some other useful" -" changes, and points out a few incompatible changes that may require " +"article covers the exciting new features in 2.0, highlights some other " +"useful changes, and points out a few incompatible changes that may require " "rewriting code." msgstr "" @@ -50,10 +50,10 @@ msgid "" "flow of bug fixes and improvements are always being submitted. A host of " "minor fixes, a few optimizations, additional docstrings, and better error " "messages went into 2.0; to list them all would be impossible, but they're " -"certainly significant. Consult the publicly available CVS logs if you want to" -" see the full list. This progress is due to the five developers working for" -" PythonLabs are now getting paid to spend their days fixing bugs, and also " -"due to the improved communication resulting from moving to SourceForge." +"certainly significant. Consult the publicly available CVS logs if you want " +"to see the full list. This progress is due to the five developers working " +"for PythonLabs are now getting paid to spend their days fixing bugs, and " +"also due to the improved communication resulting from moving to SourceForge." msgstr "" #: ../../whatsnew/2.0.rst:33 @@ -65,23 +65,23 @@ msgid "" "Python 1.6 can be thought of as the Contractual Obligations Python release. " "After the core development team left CNRI in May 2000, CNRI requested that a " "1.6 release be created, containing all the work on Python that had been " -"performed at CNRI. Python 1.6 therefore represents the state of the CVS tree" -" as of May 2000, with the most significant new feature being Unicode support." -" Development continued after May, of course, so the 1.6 tree received a few " -"fixes to ensure that it's forward-compatible with Python 2.0. 1.6 is " -"therefore part of Python's evolution, and not a side branch." +"performed at CNRI. Python 1.6 therefore represents the state of the CVS " +"tree as of May 2000, with the most significant new feature being Unicode " +"support. Development continued after May, of course, so the 1.6 tree " +"received a few fixes to ensure that it's forward-compatible with Python " +"2.0. 1.6 is therefore part of Python's evolution, and not a side branch." msgstr "" #: ../../whatsnew/2.0.rst:44 msgid "" -"So, should you take much interest in Python 1.6? Probably not. The 1.6final" -" and 2.0beta1 releases were made on the same day (September 5, 2000), the " -"plan being to finalize Python 2.0 within a month or so. If you have " -"applications to maintain, there seems little point in breaking things by " -"moving to 1.6, fixing them, and then having another round of breakage within " -"a month by moving to 2.0; you're better off just going straight to 2.0. Most" -" of the really interesting features described in this document are only in " -"2.0, because a lot of work was done between May and September." +"So, should you take much interest in Python 1.6? Probably not. The " +"1.6final and 2.0beta1 releases were made on the same day (September 5, " +"2000), the plan being to finalize Python 2.0 within a month or so. If you " +"have applications to maintain, there seems little point in breaking things " +"by moving to 1.6, fixing them, and then having another round of breakage " +"within a month by moving to 2.0; you're better off just going straight to " +"2.0. Most of the really interesting features described in this document are " +"only in 2.0, because a lot of work was done between May and September." msgstr "" #: ../../whatsnew/2.0.rst:57 @@ -90,22 +90,22 @@ msgstr "" #: ../../whatsnew/2.0.rst:59 msgid "" -"The most important change in Python 2.0 may not be to the code at all, but to" -" how Python is developed: in May 2000 the Python developers began using the " -"tools made available by SourceForge for storing source code, tracking bug " -"reports, and managing the queue of patch submissions. To report bugs or " +"The most important change in Python 2.0 may not be to the code at all, but " +"to how Python is developed: in May 2000 the Python developers began using " +"the tools made available by SourceForge for storing source code, tracking " +"bug reports, and managing the queue of patch submissions. To report bugs or " "submit patches for Python 2.0, use the bug tracking and patch manager tools " -"available from Python's project page, located at " -"https://sourceforge.net/projects/python/." +"available from Python's project page, located at https://sourceforge.net/" +"projects/python/." msgstr "" #: ../../whatsnew/2.0.rst:66 msgid "" "The most important of the services now hosted at SourceForge is the Python " "CVS tree, the version-controlled repository containing the source code for " -"Python. Previously, there were roughly 7 or so people who had write access to" -" the CVS tree, and all patches had to be inspected and checked in by one of " -"the people on this short list. Obviously, this wasn't very scalable. By " +"Python. Previously, there were roughly 7 or so people who had write access " +"to the CVS tree, and all patches had to be inspected and checked in by one " +"of the people on this short list. Obviously, this wasn't very scalable. By " "moving the CVS tree to SourceForge, it became possible to grant write access " "to more people; as of September 2000 there were 27 people able to check in " "changes, a fourfold increase. This makes possible large-scale changes that " @@ -123,13 +123,13 @@ msgstr "" msgid "" "The shift to using SourceForge's services has resulted in a remarkable " "increase in the speed of development. Patches now get submitted, commented " -"on, revised by people other than the original submitter, and bounced back and" -" forth between people until the patch is deemed worth checking in. Bugs are " -"tracked in one central location and can be assigned to a specific person for " -"fixing, and we can count the number of open bugs to measure progress. This " -"didn't come without a cost: developers now have more e-mail to deal with, " -"more mailing lists to follow, and special tools had to be written for the new" -" environment. For example, SourceForge sends default patch and bug " +"on, revised by people other than the original submitter, and bounced back " +"and forth between people until the patch is deemed worth checking in. Bugs " +"are tracked in one central location and can be assigned to a specific person " +"for fixing, and we can count the number of open bugs to measure progress. " +"This didn't come without a cost: developers now have more e-mail to deal " +"with, more mailing lists to follow, and special tools had to be written for " +"the new environment. For example, SourceForge sends default patch and bug " "notification e-mail messages that are completely unhelpful, so Ka-Ping Yee " "wrote an HTML screen-scraper that sends more useful messages." msgstr "" @@ -142,11 +142,11 @@ msgid "" "to that used by the Apache group. Developers can vote +1, +0, -0, or -1 on a " "patch; +1 and -1 denote acceptance or rejection, while +0 and -0 mean the " "developer is mostly indifferent to the change, though with a slight positive " -"or negative slant. The most significant change from the Apache model is that" -" the voting is essentially advisory, letting Guido van Rossum, who has " -"Benevolent Dictator For Life status, know what the general opinion is. He can" -" still ignore the result of a vote, and approve or reject a change even if " -"the community disagrees with him." +"or negative slant. The most significant change from the Apache model is " +"that the voting is essentially advisory, letting Guido van Rossum, who has " +"Benevolent Dictator For Life status, know what the general opinion is. He " +"can still ignore the result of a vote, and approve or reject a change even " +"if the community disagrees with him." msgstr "" #: ../../whatsnew/2.0.rst:106 @@ -156,11 +156,11 @@ msgid "" "Discussions of new features can often explode into lengthy mailing list " "threads, making the discussion hard to follow, and no one can read every " "posting to python-dev. Therefore, a relatively formal process has been set " -"up to write Python Enhancement Proposals (PEPs), modelled on the internet RFC" -" process. PEPs are draft documents that describe a proposed new feature, and" -" are continually revised until the community reaches a consensus, either " -"accepting or rejecting the proposal. Quoting from the introduction to " -":pep:`1`, \"PEP Purpose and Guidelines\":" +"up to write Python Enhancement Proposals (PEPs), modelled on the internet " +"RFC process. PEPs are draft documents that describe a proposed new feature, " +"and are continually revised until the community reaches a consensus, either " +"accepting or rejecting the proposal. Quoting from the introduction to :pep:" +"`1`, \"PEP Purpose and Guidelines\":" msgstr "" #: ../../whatsnew/2.0.rst:120 @@ -195,10 +195,10 @@ msgstr "" #: ../../whatsnew/2.0.rst:143 msgid "" -"The largest new feature in Python 2.0 is a new fundamental data type: Unicode" -" strings. Unicode uses 16-bit numbers to represent characters instead of the" -" 8-bit number used by ASCII, meaning that 65,536 distinct characters can be " -"supported." +"The largest new feature in Python 2.0 is a new fundamental data type: " +"Unicode strings. Unicode uses 16-bit numbers to represent characters " +"instead of the 8-bit number used by ASCII, meaning that 65,536 distinct " +"characters can be supported." msgstr "" #: ../../whatsnew/2.0.rst:148 @@ -206,16 +206,16 @@ msgid "" "The final interface for Unicode support was arrived at through countless " "often-stormy discussions on the python-dev mailing list, and mostly " "implemented by Marc-André Lemburg, based on a Unicode string type " -"implementation by Fredrik Lundh. A detailed explanation of the interface was" -" written up as :pep:`100`, \"Python Unicode Integration\". This article will " -"simply cover the most significant points about the Unicode interfaces." +"implementation by Fredrik Lundh. A detailed explanation of the interface " +"was written up as :pep:`100`, \"Python Unicode Integration\". This article " +"will simply cover the most significant points about the Unicode interfaces." msgstr "" #: ../../whatsnew/2.0.rst:155 msgid "" "In Python source code, Unicode strings are written as ``u\"string\"``. " -"Arbitrary Unicode characters can be written using a new escape sequence, " -":samp:`\\\\u{HHHH}`, where *HHHH* is a 4-digit hexadecimal number from 0000 " +"Arbitrary Unicode characters can be written using a new escape sequence, :" +"samp:`\\\\u{HHHH}`, where *HHHH* is a 4-digit hexadecimal number from 0000 " "to FFFF. The existing :samp:`\\\\x{HH}` escape sequence can also be used, " "and octal escapes can be used for characters up to U+01FF, which is " "represented by ``\\777``." @@ -228,11 +228,11 @@ msgid "" "have an ``encode( [encoding] )`` method that returns an 8-bit string in the " "desired encoding. Encodings are named by strings, such as ``'ascii'``, " "``'utf-8'``, ``'iso-8859-1'``, or whatever. A codec API is defined for " -"implementing and registering new encodings that are then available throughout" -" a Python program. If an encoding isn't specified, the default encoding is " -"usually 7-bit ASCII, though it can be changed for your Python installation by" -" calling the ``sys.setdefaultencoding(encoding)`` function in a customized " -"version of :file:`site.py`." +"implementing and registering new encodings that are then available " +"throughout a Python program. If an encoding isn't specified, the default " +"encoding is usually 7-bit ASCII, though it can be changed for your Python " +"installation by calling the ``sys.setdefaultencoding(encoding)`` function in " +"a customized version of :file:`site.py`." msgstr "" #: ../../whatsnew/2.0.rst:172 @@ -255,8 +255,8 @@ msgstr "" #: ../../whatsnew/2.0.rst:181 msgid "" -"``ord(u)``, where *u* is a 1-character regular or Unicode string, returns the" -" number of the character as an integer." +"``ord(u)``, where *u* is a 1-character regular or Unicode string, returns " +"the number of the character as an integer." msgstr "" #: ../../whatsnew/2.0.rst:184 @@ -282,25 +282,24 @@ msgstr "" #: ../../whatsnew/2.0.rst:198 msgid "" "A new module, :mod:`unicodedata`, provides an interface to Unicode character " -"properties. For example, ``unicodedata.category(u'A')`` returns the " -"2-character string 'Lu', the 'L' denoting it's a letter, and 'u' meaning that" -" it's uppercase. ``unicodedata.bidirectional(u'\\u0660')`` returns 'AN', " +"properties. For example, ``unicodedata.category(u'A')`` returns the 2-" +"character string 'Lu', the 'L' denoting it's a letter, and 'u' meaning that " +"it's uppercase. ``unicodedata.bidirectional(u'\\u0660')`` returns 'AN', " "meaning that U+0660 is an Arabic number." msgstr "" #: ../../whatsnew/2.0.rst:204 msgid "" -"The :mod:`codecs` module contains functions to look up existing encodings and" -" register new ones. Unless you want to implement a new encoding, you'll most" -" often use the ``codecs.lookup(encoding)`` function, which returns a " -"4-element tuple: ``(encode_func, decode_func, stream_reader, " -"stream_writer)``." +"The :mod:`codecs` module contains functions to look up existing encodings " +"and register new ones. Unless you want to implement a new encoding, you'll " +"most often use the ``codecs.lookup(encoding)`` function, which returns a 4-" +"element tuple: ``(encode_func, decode_func, stream_reader, stream_writer)``." msgstr "" #: ../../whatsnew/2.0.rst:209 msgid "" -"*encode_func* is a function that takes a Unicode string, and returns a " -"2-tuple ``(string, length)``. *string* is an 8-bit string containing a " +"*encode_func* is a function that takes a Unicode string, and returns a 2-" +"tuple ``(string, length)``. *string* is an 8-bit string containing a " "portion (perhaps all) of the Unicode string converted into the given " "encoding, and *length* tells you how much of the Unicode string was " "converted." @@ -310,24 +309,24 @@ msgstr "" msgid "" "*decode_func* is the opposite of *encode_func*, taking an 8-bit string and " "returning a 2-tuple ``(ustring, length)``, consisting of the resulting " -"Unicode string *ustring* and the integer *length* telling how much of the " -"8-bit string was consumed." +"Unicode string *ustring* and the integer *length* telling how much of the 8-" +"bit string was consumed." msgstr "" #: ../../whatsnew/2.0.rst:219 msgid "" "*stream_reader* is a class that supports decoding input from a stream. " -"*stream_reader(file_obj)* returns an object that supports the :meth:`!read`, " -":meth:`!readline`, and :meth:`!readlines` methods. These methods will all " -"translate from the given encoding and return Unicode strings." +"*stream_reader(file_obj)* returns an object that supports the :meth:`!" +"read`, :meth:`!readline`, and :meth:`!readlines` methods. These methods " +"will all translate from the given encoding and return Unicode strings." msgstr "" #: ../../whatsnew/2.0.rst:224 msgid "" "*stream_writer*, similarly, is a class that supports encoding output to a " -"stream. *stream_writer(file_obj)* returns an object that supports the " -":meth:`!write` and :meth:`!writelines` methods. These methods expect Unicode" -" strings, translating them to the given encoding on output." +"stream. *stream_writer(file_obj)* returns an object that supports the :meth:" +"`!write` and :meth:`!writelines` methods. These methods expect Unicode " +"strings, translating them to the given encoding on output." msgstr "" #: ../../whatsnew/2.0.rst:229 @@ -363,18 +362,18 @@ msgstr "" #: ../../whatsnew/2.0.rst:249 msgid "" -"Unicode-aware regular expressions are available through the :mod:`re` module," -" which has a new underlying implementation called SRE written by Fredrik " -"Lundh of Secret Labs AB." +"Unicode-aware regular expressions are available through the :mod:`re` " +"module, which has a new underlying implementation called SRE written by " +"Fredrik Lundh of Secret Labs AB." msgstr "" #: ../../whatsnew/2.0.rst:253 msgid "" "A ``-U`` command line option was added which causes the Python compiler to " -"interpret all string literals as Unicode string literals. This is intended to" -" be used in testing and future-proofing your Python code, since some future " -"version of Python may drop support for 8-bit strings and provide only Unicode" -" strings." +"interpret all string literals as Unicode string literals. This is intended " +"to be used in testing and future-proofing your Python code, since some " +"future version of Python may drop support for 8-bit strings and provide only " +"Unicode strings." msgstr "" #: ../../whatsnew/2.0.rst:262 @@ -385,22 +384,22 @@ msgstr "" msgid "" "Lists are a workhorse data type in Python, and many programs manipulate a " "list at some point. Two common operations on lists are to loop over them, " -"and either pick out the elements that meet a certain criterion, or apply some" -" function to each element. For example, given a list of strings, you might " -"want to pull out all the strings containing a given substring, or strip off " -"trailing whitespace from each line." +"and either pick out the elements that meet a certain criterion, or apply " +"some function to each element. For example, given a list of strings, you " +"might want to pull out all the strings containing a given substring, or " +"strip off trailing whitespace from each line." msgstr "" #: ../../whatsnew/2.0.rst:271 msgid "" "The existing :func:`map` and :func:`filter` functions can be used for this " -"purpose, but they require a function as one of their arguments. This is fine" -" if there's an existing built-in function that can be passed directly, but if" -" there isn't, you have to create a little function to do the required work, " -"and Python's scoping rules make the result ugly if the little function needs " -"additional information. Take the first example in the previous paragraph, " -"finding all the strings in the list containing a given substring. You could " -"write the following to do it::" +"purpose, but they require a function as one of their arguments. This is " +"fine if there's an existing built-in function that can be passed directly, " +"but if there isn't, you have to create a little function to do the required " +"work, and Python's scoping rules make the result ugly if the little function " +"needs additional information. Take the first example in the previous " +"paragraph, finding all the strings in the list containing a given " +"substring. You could write the following to do it::" msgstr "" #: ../../whatsnew/2.0.rst:280 @@ -438,12 +437,12 @@ msgstr "" #: ../../whatsnew/2.0.rst:299 msgid "" "The :keyword:`!for`...\\ :keyword:`!in` clauses contain the sequences to be " -"iterated over. The sequences do not have to be the same length, because they" -" are *not* iterated over in parallel, but from left to right; this is " +"iterated over. The sequences do not have to be the same length, because " +"they are *not* iterated over in parallel, but from left to right; this is " "explained more clearly in the following paragraphs. The elements of the " -"generated list will be the successive values of *expression*. The final " -":keyword:`!if` clause is optional; if present, *expression* is only evaluated" -" and added to the result if *condition* is true." +"generated list will be the successive values of *expression*. The final :" +"keyword:`!if` clause is optional; if present, *expression* is only evaluated " +"and added to the result if *condition* is true." msgstr "" #: ../../whatsnew/2.0.rst:307 @@ -501,8 +500,8 @@ msgid "" "The idea of list comprehensions originally comes from the functional " "programming language Haskell (https://www.haskell.org). Greg Ewing argued " "most effectively for adding them to Python and wrote the initial list " -"comprehension patch, which was then discussed for a seemingly endless time on" -" the python-dev mailing list and kept up-to-date by Skip Montanaro." +"comprehension patch, which was then discussed for a seemingly endless time " +"on the python-dev mailing list and kept up-to-date by Skip Montanaro." msgstr "" #: ../../whatsnew/2.0.rst:349 @@ -514,8 +513,8 @@ msgid "" "Augmented assignment operators, another long-requested feature, have been " "added to Python 2.0. Augmented assignment operators include ``+=``, ``-=``, " "``*=``, and so forth. For example, the statement ``a += 2`` increments the " -"value of the variable ``a`` by 2, equivalent to the slightly lengthier ``a =" -" a + 2``." +"value of the variable ``a`` by 2, equivalent to the slightly lengthier ``a " +"= a + 2``." msgstr "" #: ../../whatsnew/2.0.rst:356 @@ -564,12 +563,12 @@ msgstr "" #: ../../whatsnew/2.0.rst:392 msgid "" "Until now string-manipulation functionality was in the :mod:`string` module, " -"which was usually a front-end for the :mod:`!strop` module written in C. The" -" addition of Unicode posed a difficulty for the :mod:`!strop` module, because" -" the functions would all need to be rewritten in order to accept either 8-bit" -" or Unicode strings. For functions such as :func:`!string.replace`, which " -"takes 3 string arguments, that means eight possible permutations, and " -"correspondingly complicated code." +"which was usually a front-end for the :mod:`!strop` module written in C. " +"The addition of Unicode posed a difficulty for the :mod:`!strop` module, " +"because the functions would all need to be rewritten in order to accept " +"either 8-bit or Unicode strings. For functions such as :func:`!string." +"replace`, which takes 3 string arguments, that means eight possible " +"permutations, and correspondingly complicated code." msgstr "" #: ../../whatsnew/2.0.rst:400 @@ -599,25 +598,25 @@ msgstr "" #: ../../whatsnew/2.0.rst:415 msgid "" -"The old :mod:`string` module is still around for backwards compatibility, but" -" it mostly acts as a front-end to the new string methods." +"The old :mod:`string` module is still around for backwards compatibility, " +"but it mostly acts as a front-end to the new string methods." msgstr "" #: ../../whatsnew/2.0.rst:418 msgid "" "Two methods which have no parallel in pre-2.0 versions, although they did " -"exist in JPython for quite some time, are :meth:`!startswith` and " -":meth:`!endswith`. ``s.startswith(t)`` is equivalent to ``s[:len(t)] == t``, " -"while ``s.endswith(t)`` is equivalent to ``s[-len(t):] == t``." +"exist in JPython for quite some time, are :meth:`!startswith` and :meth:`!" +"endswith`. ``s.startswith(t)`` is equivalent to ``s[:len(t)] == t``, while " +"``s.endswith(t)`` is equivalent to ``s[-len(t):] == t``." msgstr "" #: ../../whatsnew/2.0.rst:423 msgid "" -"One other method which deserves special mention is :meth:`!join`. The " -":meth:`!join` method of a string receives one parameter, a sequence of " -"strings, and is equivalent to the :func:`!string.join` function from the old " -":mod:`string` module, with the arguments reversed. In other words, " -"``s.join(seq)`` is equivalent to the old ``string.join(seq, s)``." +"One other method which deserves special mention is :meth:`!join`. The :meth:" +"`!join` method of a string receives one parameter, a sequence of strings, " +"and is equivalent to the :func:`!string.join` function from the old :mod:" +"`string` module, with the arguments reversed. In other words, ``s." +"join(seq)`` is equivalent to the old ``string.join(seq, s)``." msgstr "" #: ../../whatsnew/2.0.rst:433 @@ -646,8 +645,8 @@ msgstr "" #: ../../whatsnew/2.0.rst:449 msgid "" -"Consider the simplest possible cycle, a class instance which has a reference" -" to itself::" +"Consider the simplest possible cycle, a class instance which has a " +"reference to itself::" msgstr "" #: ../../whatsnew/2.0.rst:452 @@ -700,8 +699,8 @@ msgstr "" msgid "" "Several people tackled this problem and contributed to a solution. An early " "implementation of the cycle detection approach was written by Toby Kelsey. " -"The current algorithm was suggested by Eric Tiedemann during a visit to CNRI," -" and Guido van Rossum and Neil Schemenauer wrote two different " +"The current algorithm was suggested by Eric Tiedemann during a visit to " +"CNRI, and Guido van Rossum and Neil Schemenauer wrote two different " "implementations, which were later integrated by Neil. Lots of other people " "offered suggestions along the way; the March 2000 archives of the python-dev " "mailing list contain most of the relevant discussion, especially in the " @@ -748,9 +747,9 @@ msgstr "" msgid "" "The ``print`` statement can now have its output directed to a file-like " "object by following the ``print`` with ``>> file``, similar to the " -"redirection operator in Unix shells. Previously you'd either have to use the " -":meth:`!write` method of the file-like object, which lacks the convenience " -"and simplicity of ``print``, or you could assign a new value to " +"redirection operator in Unix shells. Previously you'd either have to use " +"the :meth:`!write` method of the file-like object, which lacks the " +"convenience and simplicity of ``print``, or you could assign a new value to " "``sys.stdout`` and then restore the old value. For sending output to " "standard error, it's much easier to write this::" msgstr "" @@ -779,13 +778,13 @@ msgstr "" msgid "" "Previously there was no way to implement a class that overrode Python's " "built-in :keyword:`in` operator and implemented a custom version. ``obj in " -"seq`` returns true if *obj* is present in the sequence *seq*; Python computes" -" this by simply trying every index of the sequence until either *obj* is " -"found or an :exc:`IndexError` is encountered. Moshe Zadka contributed a " -"patch which adds a :meth:`!__contains__` magic method for providing a custom " -"implementation for :keyword:`!in`. Additionally, new built-in objects written" -" in C can define what :keyword:`!in` means for them via a new slot in the " -"sequence protocol." +"seq`` returns true if *obj* is present in the sequence *seq*; Python " +"computes this by simply trying every index of the sequence until either " +"*obj* is found or an :exc:`IndexError` is encountered. Moshe Zadka " +"contributed a patch which adds a :meth:`!__contains__` magic method for " +"providing a custom implementation for :keyword:`!in`. Additionally, new " +"built-in objects written in C can define what :keyword:`!in` means for them " +"via a new slot in the sequence protocol." msgstr "" #: ../../whatsnew/2.0.rst:547 @@ -810,8 +809,8 @@ msgstr "" msgid "" "The comparison ``a==b`` returns true, because the two recursive data " "structures are isomorphic. See the thread \"trashcan and PR#7\" in the April " -"2000 archives of the python-dev mailing list for the discussion leading up to" -" this implementation, and some useful relevant links. Note that " +"2000 archives of the python-dev mailing list for the discussion leading up " +"to this implementation, and some useful relevant links. Note that " "comparisons can now also raise exceptions. In earlier versions of Python, a " "comparison operation such as ``cmp(a,b)`` would always produce an answer, " "even if a user-defined :meth:`!__cmp__` method encountered an error, since " @@ -821,11 +820,11 @@ msgstr "" #: ../../whatsnew/2.0.rst:571 msgid "" "Work has been done on porting Python to 64-bit Windows on the Itanium " -"processor, mostly by Trent Mick of ActiveState. (Confusingly, " -"``sys.platform`` is still ``'win32'`` on Win64 because it seems that for ease" -" of porting, MS Visual C++ treats code as 32 bit on Itanium.) PythonWin also " -"supports Windows CE; see the Python CE page at " -"https://pythonce.sourceforge.net/ for more information." +"processor, mostly by Trent Mick of ActiveState. (Confusingly, ``sys." +"platform`` is still ``'win32'`` on Win64 because it seems that for ease of " +"porting, MS Visual C++ treats code as 32 bit on Itanium.) PythonWin also " +"supports Windows CE; see the Python CE page at https://pythonce.sourceforge." +"net/ for more information." msgstr "" #: ../../whatsnew/2.0.rst:577 @@ -841,10 +840,10 @@ msgid "" "An attempt has been made to alleviate one of Python's warts, the often-" "confusing :exc:`NameError` exception when code refers to a local variable " "before the variable has been assigned a value. For example, the following " -"code raises an exception on the ``print`` statement in both 1.5.2 and 2.0; in" -" 1.5.2 a :exc:`NameError` exception is raised, while 2.0 raises a new " -":exc:`UnboundLocalError` exception. :exc:`UnboundLocalError` is a subclass of" -" :exc:`NameError`, so any existing code that expects :exc:`NameError` to be " +"code raises an exception on the ``print`` statement in both 1.5.2 and 2.0; " +"in 1.5.2 a :exc:`NameError` exception is raised, while 2.0 raises a new :exc:" +"`UnboundLocalError` exception. :exc:`UnboundLocalError` is a subclass of :" +"exc:`NameError`, so any existing code that expects :exc:`NameError` to be " "raised should still work. ::" msgstr "" @@ -870,8 +869,8 @@ msgstr "" #: ../../whatsnew/2.0.rst:603 msgid "" "A new built-in, ``zip(seq1, seq2, ...)``, has been added. :func:`zip` " -"returns a list of tuples where each tuple contains the i-th element from each" -" of the argument sequences. The difference between :func:`zip` and " +"returns a list of tuples where each tuple contains the i-th element from " +"each of the argument sequences. The difference between :func:`zip` and " "``map(None, seq1, seq2)`` is that :func:`map` pads the sequences with " "``None`` if the sequences aren't all of the same length, while :func:`zip` " "truncates the returned list to the length of the shortest argument sequence." @@ -881,8 +880,8 @@ msgstr "" msgid "" "The :func:`int` and :func:`!long` functions now accept an optional \"base\" " "parameter when the first argument is a string. ``int('123', 10)`` returns " -"123, while ``int('123', 16)`` returns 291. ``int(123, 16)`` raises a " -":exc:`TypeError` exception with the message \"can't convert non-string with " +"123, while ``int('123', 16)`` returns 291. ``int(123, 16)`` raises a :exc:" +"`TypeError` exception with the message \"can't convert non-string with " "explicit base\"." msgstr "" @@ -890,18 +889,18 @@ msgstr "" msgid "" "A new variable holding more detailed version information has been added to " "the :mod:`sys` module. ``sys.version_info`` is a tuple ``(major, minor, " -"micro, level, serial)`` For example, in a hypothetical 2.0.1beta1, " -"``sys.version_info`` would be ``(2, 0, 1, 'beta', 1)``. *level* is a string " -"such as ``\"alpha\"``, ``\"beta\"``, or ``\"final\"`` for a final release." +"micro, level, serial)`` For example, in a hypothetical 2.0.1beta1, ``sys." +"version_info`` would be ``(2, 0, 1, 'beta', 1)``. *level* is a string such " +"as ``\"alpha\"``, ``\"beta\"``, or ``\"final\"`` for a final release." msgstr "" #: ../../whatsnew/2.0.rst:622 msgid "" "Dictionaries have an odd new method, ``setdefault(key, default)``, which " "behaves similarly to the existing :meth:`!get` method. However, if the key " -"is missing, :meth:`!setdefault` both returns the value of *default* as " -":meth:`!get` would do, and also inserts it into the dictionary as the value " -"for *key*. Thus, the following lines of code::" +"is missing, :meth:`!setdefault` both returns the value of *default* as :meth:" +"`!get` would do, and also inserts it into the dictionary as the value for " +"*key*. Thus, the following lines of code::" msgstr "" #: ../../whatsnew/2.0.rst:628 @@ -922,10 +921,10 @@ msgid "" "The interpreter sets a maximum recursion depth in order to catch runaway " "recursion before filling the C stack and causing a core dump or GPF.. " "Previously this limit was fixed when you compiled Python, but in 2.0 the " -"maximum recursion depth can be read and modified using " -":func:`sys.getrecursionlimit` and :func:`sys.setrecursionlimit`. The default " -"value is 1000, and a rough maximum value for a given platform can be found by" -" running a new script, :file:`Misc/find_recursionlimit.py`." +"maximum recursion depth can be read and modified using :func:`sys." +"getrecursionlimit` and :func:`sys.setrecursionlimit`. The default value is " +"1000, and a rough maximum value for a given platform can be found by running " +"a new script, :file:`Misc/find_recursionlimit.py`." msgstr "" #: ../../whatsnew/2.0.rst:647 @@ -934,12 +933,12 @@ msgstr "" #: ../../whatsnew/2.0.rst:649 msgid "" -"New Python releases try hard to be compatible with previous releases, and the" -" record has been pretty good. However, some changes are considered useful " -"enough, usually because they fix initial design decisions that turned out to " -"be actively mistaken, that breaking backward compatibility can't always be " -"avoided. This section lists the changes in Python 2.0 that may cause old " -"Python code to break." +"New Python releases try hard to be compatible with previous releases, and " +"the record has been pretty good. However, some changes are considered " +"useful enough, usually because they fix initial design decisions that turned " +"out to be actively mistaken, that breaking backward compatibility can't " +"always be avoided. This section lists the changes in Python 2.0 that may " +"cause old Python code to break." msgstr "" #: ../../whatsnew/2.0.rst:656 @@ -950,9 +949,9 @@ msgid "" "as :meth:`~list.append` and :meth:`~list.insert`. In earlier versions of " "Python, if ``L`` is a list, ``L.append( 1,2 )`` appends the tuple ``(1,2)`` " "to the list. In Python 2.0 this causes a :exc:`TypeError` exception to be " -"raised, with the message: 'append requires exactly 1 argument; 2 given'. The" -" fix is to simply add an extra set of parentheses to pass both values as a " -"tuple: ``L.append( (1,2) )``." +"raised, with the message: 'append requires exactly 1 argument; 2 given'. " +"The fix is to simply add an extra set of parentheses to pass both values as " +"a tuple: ``L.append( (1,2) )``." msgstr "" #: ../../whatsnew/2.0.rst:666 @@ -961,19 +960,19 @@ msgid "" "an old function in Python's C interface to parse their arguments; 2.0 " "modernizes them to use :c:func:`PyArg_ParseTuple`, the current argument " "parsing function, which provides more helpful error messages and treats " -"multi-argument calls as errors. If you absolutely must use 2.0 but can't fix" -" your code, you can edit :file:`Objects/listobject.c` and define the " +"multi-argument calls as errors. If you absolutely must use 2.0 but can't " +"fix your code, you can edit :file:`Objects/listobject.c` and define the " "preprocessor symbol ``NO_STRICT_LIST_APPEND`` to preserve the old behaviour; " "this isn't recommended." msgstr "" #: ../../whatsnew/2.0.rst:674 msgid "" -"Some of the functions in the :mod:`socket` module are still forgiving in this" -" way. For example, ``socket.connect( ('hostname', 25) )`` is the correct " -"form, passing a tuple representing an IP address, but " -"``socket.connect('hostname', 25)`` also works. :meth:`socket.connect_ex " -"` and :meth:`socket.bind ` are " +"Some of the functions in the :mod:`socket` module are still forgiving in " +"this way. For example, ``socket.connect( ('hostname', 25) )`` is the " +"correct form, passing a tuple representing an IP address, but ``socket." +"connect('hostname', 25)`` also works. :meth:`socket.connect_ex ` and :meth:`socket.bind ` are " "similarly easy-going. 2.0alpha1 tightened these functions up, but because " "the documentation actually used the erroneous multiple argument form, many " "people wrote code which would break with the stricter checking. GvR backed " @@ -986,8 +985,9 @@ msgstr "" #: ../../whatsnew/2.0.rst:685 msgid "" "The ``\\x`` escape in string literals now takes exactly 2 hex digits. " -"Previously it would consume all the hex digits following the 'x' and take the" -" lowest 8 bits of the result, so ``\\x123456`` was equivalent to ``\\x56``." +"Previously it would consume all the hex digits following the 'x' and take " +"the lowest 8 bits of the result, so ``\\x123456`` was equivalent to " +"``\\x56``." msgstr "" #: ../../whatsnew/2.0.rst:689 @@ -1006,13 +1006,13 @@ msgid "" "allow reading files larger than 2 GiB; this made the :meth:`!tell` method of " "file objects return a long integer instead of a regular integer. Some code " "would subtract two file offsets and attempt to use the result to multiply a " -"sequence or slice a string, but this raised a :exc:`TypeError`. In 2.0, long" -" integers can be used to multiply or slice a sequence, and it'll behave as " -"you'd intuitively expect it to; ``3L * 'abc'`` produces 'abcabcabc', and " +"sequence or slice a string, but this raised a :exc:`TypeError`. In 2.0, " +"long integers can be used to multiply or slice a sequence, and it'll behave " +"as you'd intuitively expect it to; ``3L * 'abc'`` produces 'abcabcabc', and " "``(0,1,2,3)[2L:4L]`` produces (2,3). Long integers can also be used in " -"various contexts where previously only integers were accepted, such as in the" -" :meth:`!seek` method of file objects, and in the formats supported by the " -"``%`` operator (``%d``, ``%i``, ``%x``, etc.). For example, ``\"%d\" % " +"various contexts where previously only integers were accepted, such as in " +"the :meth:`!seek` method of file objects, and in the formats supported by " +"the ``%`` operator (``%d``, ``%i``, ``%x``, etc.). For example, ``\"%d\" % " "2L**64`` will produce the string ``18446744073709551616``." msgstr "" @@ -1021,8 +1021,8 @@ msgid "" "The subtlest long integer change of all is that the :func:`str` of a long " "integer no longer has a trailing 'L' character, though :func:`repr` still " "includes it. The 'L' annoyed many people who wanted to print long integers " -"that looked just like regular integers, since they had to go out of their way" -" to chop off the character. This is no longer a problem in 2.0, but code " +"that looked just like regular integers, since they had to go out of their " +"way to chop off the character. This is no longer a problem in 2.0, but code " "which does ``str(longval)[:-1]`` and assumes the 'L' is there, will now lose " "the final digit." msgstr "" @@ -1030,21 +1030,21 @@ msgstr "" #: ../../whatsnew/2.0.rst:717 msgid "" "Taking the :func:`repr` of a float now uses a different formatting precision " -"than :func:`str`. :func:`repr` uses ``%.17g`` format string for C's " -":func:`!sprintf`, while :func:`str` uses ``%.12g`` as before. The effect is " -"that :func:`repr` may occasionally show more decimal places than " -":func:`str`, for certain numbers. For example, the number 8.1 can't be " -"represented exactly in binary, so ``repr(8.1)`` is ``'8.0999999999999996'``, " -"while str(8.1) is ``'8.1'``." +"than :func:`str`. :func:`repr` uses ``%.17g`` format string for C's :func:`!" +"sprintf`, while :func:`str` uses ``%.12g`` as before. The effect is that :" +"func:`repr` may occasionally show more decimal places than :func:`str`, for " +"certain numbers. For example, the number 8.1 can't be represented exactly " +"in binary, so ``repr(8.1)`` is ``'8.0999999999999996'``, while str(8.1) is " +"``'8.1'``." msgstr "" #: ../../whatsnew/2.0.rst:725 msgid "" "The ``-X`` command-line option, which turned all standard exceptions into " "strings instead of classes, has been removed; the standard exceptions will " -"now always be classes. The :mod:`!exceptions` module containing the standard" -" exceptions was translated from Python to a built-in C module, written by " -"Barry Warsaw and Fredrik Lundh." +"now always be classes. The :mod:`!exceptions` module containing the " +"standard exceptions was translated from Python to a built-in C module, " +"written by Barry Warsaw and Fredrik Lundh." msgstr "" #: ../../whatsnew/2.0.rst:741 @@ -1053,26 +1053,26 @@ msgstr "" #: ../../whatsnew/2.0.rst:743 msgid "" -"Some of the changes are under the covers, and will only be apparent to people" -" writing C extension modules or embedding a Python interpreter in a larger " -"application. If you aren't dealing with Python's C API, you can safely skip " -"this section." +"Some of the changes are under the covers, and will only be apparent to " +"people writing C extension modules or embedding a Python interpreter in a " +"larger application. If you aren't dealing with Python's C API, you can " +"safely skip this section." msgstr "" #: ../../whatsnew/2.0.rst:748 msgid "" "The version number of the Python C API was incremented, so C extensions " -"compiled for 1.5.2 must be recompiled in order to work with 2.0. On Windows," -" it's not possible for Python 2.0 to import a third party extension built for" -" Python 1.5.x due to how Windows DLLs work, so Python will raise an exception" -" and the import will fail." +"compiled for 1.5.2 must be recompiled in order to work with 2.0. On " +"Windows, it's not possible for Python 2.0 to import a third party extension " +"built for Python 1.5.x due to how Windows DLLs work, so Python will raise an " +"exception and the import will fail." msgstr "" #: ../../whatsnew/2.0.rst:754 msgid "" "Users of Jim Fulton's ExtensionClass module will be pleased to find out that " -"hooks have been added so that ExtensionClasses are now supported by " -":func:`isinstance` and :func:`issubclass`. This means you no longer have to " +"hooks have been added so that ExtensionClasses are now supported by :func:" +"`isinstance` and :func:`issubclass`. This means you no longer have to " "remember to write code such as ``if type(obj) == myExtensionClass``, but can " "use the more natural ``if isinstance(obj, myExtensionClass)``." msgstr "" @@ -1091,11 +1091,11 @@ msgstr "" #: ../../whatsnew/2.0.rst:768 msgid "" "Vladimir Marangozov's long-awaited malloc restructuring was completed, to " -"make it easy to have the Python interpreter use a custom allocator instead of" -" C's standard :c:func:`malloc`. For documentation, read the comments in " -":file:`Include/pymem.h` and :file:`Include/objimpl.h`. For the lengthy " -"discussions during which the interface was hammered out, see the web archives" -" of the 'patches' and 'python-dev' lists at python.org." +"make it easy to have the Python interpreter use a custom allocator instead " +"of C's standard :c:func:`malloc`. For documentation, read the comments in :" +"file:`Include/pymem.h` and :file:`Include/objimpl.h`. For the lengthy " +"discussions during which the interface was hammered out, see the web " +"archives of the 'patches' and 'python-dev' lists at python.org." msgstr "" #: ../../whatsnew/2.0.rst:775 @@ -1128,25 +1128,26 @@ msgid "" "Previously the Python virtual machine used 16-bit numbers in its bytecode, " "limiting the size of source files. In particular, this affected the maximum " "size of literal lists and dictionaries in Python source; occasionally people " -"who are generating Python code would run into this limit. A patch by Charles" -" G. Waldman raises the limit from ``2**16`` to ``2**32``." +"who are generating Python code would run into this limit. A patch by " +"Charles G. Waldman raises the limit from ``2**16`` to ``2**32``." msgstr "" #: ../../whatsnew/2.0.rst:797 msgid "" "Three new convenience functions intended for adding constants to a module's " -"dictionary at module initialization time were added: " -":c:func:`PyModule_AddObject`, :c:func:`PyModule_AddIntConstant`, and " -":c:func:`PyModule_AddStringConstant`. Each of these functions takes a module" -" object, a null-terminated C string containing the name to be added, and a " -"third argument for the value to be assigned to the name. This third argument" -" is, respectively, a Python object, a C long, or a C string." +"dictionary at module initialization time were added: :c:func:" +"`PyModule_AddObject`, :c:func:`PyModule_AddIntConstant`, and :c:func:" +"`PyModule_AddStringConstant`. Each of these functions takes a module " +"object, a null-terminated C string containing the name to be added, and a " +"third argument for the value to be assigned to the name. This third " +"argument is, respectively, a Python object, a C long, or a C string." msgstr "" #: ../../whatsnew/2.0.rst:805 msgid "" -"A wrapper API was added for Unix-style signal handlers. :c:func:`PyOS_getsig`" -" gets a signal handler and :c:func:`PyOS_setsig` will set a new handler." +"A wrapper API was added for Unix-style signal handlers. :c:func:" +"`PyOS_getsig` gets a signal handler and :c:func:`PyOS_setsig` will set a new " +"handler." msgstr "" #: ../../whatsnew/2.0.rst:812 @@ -1174,18 +1175,18 @@ msgid "" "first you simply mean unpack the tarball or zip archive, and the run " "\"``python setup.py install``\". The platform will be automatically " "detected, the compiler will be recognized, C extension modules will be " -"compiled, and the distribution installed into the proper directory. Optional" -" command-line arguments provide more control over the installation process, " -"the distutils package offers many places to override defaults -- separating " -"the build from the install, building or installing in non-default " +"compiled, and the distribution installed into the proper directory. " +"Optional command-line arguments provide more control over the installation " +"process, the distutils package offers many places to override defaults -- " +"separating the build from the install, building or installing in non-default " "directories, and more." msgstr "" #: ../../whatsnew/2.0.rst:834 msgid "" "In order to use the Distutils, you need to write a :file:`setup.py` script. " -"For the simple case, when the software contains only .py files, a minimal " -":file:`setup.py` can be just a few lines long::" +"For the simple case, when the software contains only .py files, a minimal :" +"file:`setup.py` can be just a few lines long::" msgstr "" #: ../../whatsnew/2.0.rst:838 @@ -1232,14 +1233,14 @@ msgstr "" #: ../../whatsnew/2.0.rst:865 msgid "" -"The Distutils can also take care of creating source and binary distributions." -" The \"sdist\" command, run by \"``python setup.py sdist``', builds a source " -"distribution such as :file:`foo-1.0.tar.gz`. Adding new commands isn't " -"difficult, \"bdist_rpm\" and \"bdist_wininst\" commands have already been " -"contributed to create an RPM distribution and a Windows installer for the " -"software, respectively. Commands to create other distribution formats such " -"as Debian packages and Solaris :file:`.pkg` files are in various stages of " -"development." +"The Distutils can also take care of creating source and binary " +"distributions. The \"sdist\" command, run by \"``python setup.py sdist``', " +"builds a source distribution such as :file:`foo-1.0.tar.gz`. Adding new " +"commands isn't difficult, \"bdist_rpm\" and \"bdist_wininst\" commands have " +"already been contributed to create an RPM distribution and a Windows " +"installer for the software, respectively. Commands to create other " +"distribution formats such as Debian packages and Solaris :file:`.pkg` files " +"are in various stages of development." msgstr "" #: ../../whatsnew/2.0.rst:874 @@ -1260,8 +1261,8 @@ msgid "" "of the Simple API for XML) provides an event-driven interface with some " "similarities to :mod:`!xmllib`, and the DOM (Document Object Model) provides " "a tree-based interface, transforming an XML document into a tree of nodes " -"that can be traversed and modified. Python 2.0 includes a SAX2 interface and" -" a stripped-down DOM interface as part of the :mod:`xml` package. Here we " +"that can be traversed and modified. Python 2.0 includes a SAX2 interface " +"and a stripped-down DOM interface as part of the :mod:`xml` package. Here we " "will give a brief overview of these new interfaces; consult the Python " "documentation or the source code for complete details. The Python XML SIG is " "also working on improved documentation." @@ -1275,29 +1276,28 @@ msgstr "" msgid "" "SAX defines an event-driven interface for parsing XML. To use SAX, you must " "write a SAX handler class. Handler classes inherit from various classes " -"provided by SAX, and override various methods that will then be called by the" -" XML parser. For example, the " -":meth:`~xml.sax.handler.ContentHandler.startElement` and " -":meth:`~xml.sax.handler.ContentHandler.endElement` methods are called for " -"every starting and end tag encountered by the parser, the " -":meth:`~xml.sax.handler.ContentHandler.characters` method is called for every" -" chunk of character data, and so forth." +"provided by SAX, and override various methods that will then be called by " +"the XML parser. For example, the :meth:`~xml.sax.handler.ContentHandler." +"startElement` and :meth:`~xml.sax.handler.ContentHandler.endElement` methods " +"are called for every starting and end tag encountered by the parser, the :" +"meth:`~xml.sax.handler.ContentHandler.characters` method is called for every " +"chunk of character data, and so forth." msgstr "" #: ../../whatsnew/2.0.rst:907 msgid "" -"The advantage of the event-driven approach is that the whole document doesn't" -" have to be resident in memory at any one time, which matters if you are " -"processing really huge documents. However, writing the SAX handler class can" -" get very complicated if you're trying to modify the document structure in " -"some elaborate way." +"The advantage of the event-driven approach is that the whole document " +"doesn't have to be resident in memory at any one time, which matters if you " +"are processing really huge documents. However, writing the SAX handler " +"class can get very complicated if you're trying to modify the document " +"structure in some elaborate way." msgstr "" #: ../../whatsnew/2.0.rst:913 msgid "" "For example, this little example program defines a handler that prints a " -"message for every starting and ending tag, and then parses the file " -":file:`hamlet.xml` using it::" +"message for every starting and ending tag, and then parses the file :file:" +"`hamlet.xml` using it::" msgstr "" #: ../../whatsnew/2.0.rst:917 @@ -1334,32 +1334,32 @@ msgstr "" #: ../../whatsnew/2.0.rst:943 msgid "" -"The Document Object Model is a tree-based representation for an XML document." -" A top-level :class:`!Document` instance is the root of the tree, and has a " -"single child which is the top-level :class:`!Element` instance. This " -":class:`!Element` has children nodes representing character data and any sub-" -"elements, which may have further children of their own, and so forth. Using " -"the DOM you can traverse the resulting tree any way you like, access element " -"and attribute values, insert and delete nodes, and convert the tree back into" -" XML." +"The Document Object Model is a tree-based representation for an XML " +"document. A top-level :class:`!Document` instance is the root of the tree, " +"and has a single child which is the top-level :class:`!Element` instance. " +"This :class:`!Element` has children nodes representing character data and " +"any sub-elements, which may have further children of their own, and so " +"forth. Using the DOM you can traverse the resulting tree any way you like, " +"access element and attribute values, insert and delete nodes, and convert " +"the tree back into XML." msgstr "" #: ../../whatsnew/2.0.rst:951 msgid "" "The DOM is useful for modifying XML documents, because you can create a DOM " -"tree, modify it by adding new nodes or rearranging subtrees, and then produce" -" a new XML document as output. You can also construct a DOM tree manually " -"and convert it to XML, which can be a more flexible way of producing XML " -"output than simply writing ````...\\ ```` to a file." +"tree, modify it by adding new nodes or rearranging subtrees, and then " +"produce a new XML document as output. You can also construct a DOM tree " +"manually and convert it to XML, which can be a more flexible way of " +"producing XML output than simply writing ````...\\ ```` to a " +"file." msgstr "" #: ../../whatsnew/2.0.rst:957 msgid "" -"The DOM implementation included with Python lives in the " -":mod:`xml.dom.minidom` module. It's a lightweight implementation of the " -"Level 1 DOM with support for XML namespaces. The :func:`!parse` and " -":func:`!parseString` convenience functions are provided for generating a DOM " -"tree::" +"The DOM implementation included with Python lives in the :mod:`xml.dom." +"minidom` module. It's a lightweight implementation of the Level 1 DOM with " +"support for XML namespaces. The :func:`!parse` and :func:`!parseString` " +"convenience functions are provided for generating a DOM tree::" msgstr "" #: ../../whatsnew/2.0.rst:962 @@ -1373,11 +1373,11 @@ msgid "" "``doc`` is a :class:`!Document` instance. :class:`!Document`, like all the " "other DOM classes such as :class:`!Element` and :class:`Text`, is a subclass " "of the :class:`!Node` base class. All the nodes in a DOM tree therefore " -"support certain common methods, such as :meth:`!toxml` which returns a string" -" containing the XML representation of the node and its children. Each class " -"also has special methods of its own; for example, :class:`!Element` and " -":class:`!Document` instances have a method to find all child elements with a " -"given tag name. Continuing from the previous 2-line example::" +"support certain common methods, such as :meth:`!toxml` which returns a " +"string containing the XML representation of the node and its children. Each " +"class also has special methods of its own; for example, :class:`!Element` " +"and :class:`!Document` instances have a method to find all child elements " +"with a given tag name. Continuing from the previous 2-line example::" msgstr "" #: ../../whatsnew/2.0.rst:974 @@ -1399,8 +1399,9 @@ msgstr "" #: ../../whatsnew/2.0.rst:983 msgid "" -"The root element of the document is available as ``doc.documentElement``, and" -" its children can be easily modified by deleting, adding, or removing nodes::" +"The root element of the document is available as ``doc.documentElement``, " +"and its children can be easily modified by deleting, adding, or removing " +"nodes::" msgstr "" #: ../../whatsnew/2.0.rst:986 @@ -1420,8 +1421,8 @@ msgstr "" #: ../../whatsnew/2.0.rst:998 msgid "" -"Again, I will refer you to the Python documentation for a complete listing of" -" the different :class:`!Node` classes and their various methods." +"Again, I will refer you to the Python documentation for a complete listing " +"of the different :class:`!Node` classes and their various methods." msgstr "" #: ../../whatsnew/2.0.rst:1003 @@ -1432,22 +1433,22 @@ msgstr "" msgid "" "The XML Special Interest Group has been working on XML-related Python code " "for a while. Its code distribution, called PyXML, is available from the " -"SIG's web pages at https://www.python.org/community/sigs/current/xml-sig. The" -" PyXML distribution also used the package name ``xml``. If you've written " -"programs that used PyXML, you're probably wondering about its compatibility " -"with the 2.0 :mod:`xml` package." +"SIG's web pages at https://www.python.org/community/sigs/current/xml-sig. " +"The PyXML distribution also used the package name ``xml``. If you've " +"written programs that used PyXML, you're probably wondering about its " +"compatibility with the 2.0 :mod:`xml` package." msgstr "" #: ../../whatsnew/2.0.rst:1011 msgid "" "The answer is that Python 2.0's :mod:`xml` package isn't compatible with " -"PyXML, but can be made compatible by installing a recent version PyXML. Many" -" applications can get by with the XML support that is included with Python " -"2.0, but more complicated applications will require that the full PyXML " -"package will be installed. When installed, PyXML versions 0.6.0 or greater " -"will replace the :mod:`xml` package shipped with Python, and will be a strict" -" superset of the standard package, adding a bunch of additional features. " -"Some of the additional features in PyXML include:" +"PyXML, but can be made compatible by installing a recent version PyXML. " +"Many applications can get by with the XML support that is included with " +"Python 2.0, but more complicated applications will require that the full " +"PyXML package will be installed. When installed, PyXML versions 0.6.0 or " +"greater will replace the :mod:`xml` package shipped with Python, and will be " +"a strict superset of the standard package, adding a bunch of additional " +"features. Some of the additional features in PyXML include:" msgstr "" #: ../../whatsnew/2.0.rst:1020 @@ -1469,23 +1470,23 @@ msgstr "" #: ../../whatsnew/2.0.rst:1032 msgid "" "Lots of improvements and bugfixes were made to Python's extensive standard " -"library; some of the affected modules include :mod:`readline`, " -":mod:`ConfigParser `, :mod:`!cgi`, :mod:`calendar`, " -":mod:`posix`, :mod:`readline`, :mod:`!xmllib`, :mod:`!aifc`, :mod:`!chunk`, " -":mod:`wave`, :mod:`random`, :mod:`shelve`, and :mod:`!nntplib`. Consult the " -"CVS logs for the exact patch-by-patch details." +"library; some of the affected modules include :mod:`readline`, :mod:" +"`ConfigParser `, :mod:`!cgi`, :mod:`calendar`, :mod:`posix`, :" +"mod:`readline`, :mod:`!xmllib`, :mod:`!aifc`, :mod:`!chunk`, :mod:`wave`, :" +"mod:`random`, :mod:`shelve`, and :mod:`!nntplib`. Consult the CVS logs for " +"the exact patch-by-patch details." msgstr "" #: ../../whatsnew/2.0.rst:1038 msgid "" "Brian Gallew contributed OpenSSL support for the :mod:`socket` module. " "OpenSSL is an implementation of the Secure Socket Layer, which encrypts the " -"data being sent over a socket. When compiling Python, you can edit " -":file:`Modules/Setup` to include SSL support, which adds an additional " -"function to the :mod:`socket` module: ``socket.ssl(socket, keyfile, " -"certfile)``, which takes a socket object and returns an SSL socket. The " -":mod:`httplib ` and :mod:`urllib` modules were also changed to support " -"``https://`` URLs, though no one has implemented FTP or SMTP over SSL." +"data being sent over a socket. When compiling Python, you can edit :file:" +"`Modules/Setup` to include SSL support, which adds an additional function to " +"the :mod:`socket` module: ``socket.ssl(socket, keyfile, certfile)``, which " +"takes a socket object and returns an SSL socket. The :mod:`httplib ` " +"and :mod:`urllib` modules were also changed to support ``https://`` URLs, " +"though no one has implemented FTP or SMTP over SSL." msgstr "" #: ../../whatsnew/2.0.rst:1047 @@ -1497,8 +1498,8 @@ msgstr "" #: ../../whatsnew/2.0.rst:1049 msgid "" "Backward compatibility with the 1.5 version of :mod:`!httplib` is provided, " -"though using HTTP/1.1 features such as pipelining will require rewriting code" -" to use a different set of interfaces." +"though using HTTP/1.1 features such as pipelining will require rewriting " +"code to use a different set of interfaces." msgstr "" #: ../../whatsnew/2.0.rst:1053 @@ -1513,9 +1514,9 @@ msgstr "" #: ../../whatsnew/2.0.rst:1059 msgid "" "The :mod:`curses` module has been greatly extended, starting from Oliver " -"Andrich's enhanced version, to provide many additional functions from ncurses" -" and SYSV curses, such as colour, alternative character set support, pads, " -"and mouse support. This means the module is no longer compatible with " +"Andrich's enhanced version, to provide many additional functions from " +"ncurses and SYSV curses, such as colour, alternative character set support, " +"pads, and mouse support. This means the module is no longer compatible with " "operating systems that only have BSD curses, but there don't seem to be any " "currently maintained OSes that fall into this category." msgstr "" @@ -1523,10 +1524,10 @@ msgstr "" #: ../../whatsnew/2.0.rst:1066 msgid "" "As mentioned in the earlier discussion of 2.0's Unicode support, the " -"underlying implementation of the regular expressions provided by the " -":mod:`re` module has been changed. SRE, a new regular expression engine " -"written by Fredrik Lundh and partially funded by Hewlett Packard, supports " -"matching against both 8-bit strings and Unicode strings." +"underlying implementation of the regular expressions provided by the :mod:" +"`re` module has been changed. SRE, a new regular expression engine written " +"by Fredrik Lundh and partially funded by Hewlett Packard, supports matching " +"against both 8-bit strings and Unicode strings." msgstr "" #: ../../whatsnew/2.0.rst:1076 @@ -1557,9 +1558,9 @@ msgstr "" #: ../../whatsnew/2.0.rst:1091 msgid "" -":mod:`filecmp`: Supersedes the old :mod:`!cmp`, :mod:`!cmpcache` and " -":mod:`!dircmp` modules, which have now become deprecated. (Contributed by " -"Gordon MacMillan and Moshe Zadka.)" +":mod:`filecmp`: Supersedes the old :mod:`!cmp`, :mod:`!cmpcache` and :mod:`!" +"dircmp` modules, which have now become deprecated. (Contributed by Gordon " +"MacMillan and Moshe Zadka.)" msgstr "" #: ../../whatsnew/2.0.rst:1095 @@ -1574,18 +1575,18 @@ msgstr "" #: ../../whatsnew/2.0.rst:1100 msgid "" ":mod:`!linuxaudiodev`: Support for the :file:`/dev/audio` device on Linux, a " -"twin to the existing :mod:`!sunaudiodev` module. (Contributed by Peter Bosch," -" with fixes by Jeremy Hylton.)" +"twin to the existing :mod:`!sunaudiodev` module. (Contributed by Peter " +"Bosch, with fixes by Jeremy Hylton.)" msgstr "" #: ../../whatsnew/2.0.rst:1104 msgid "" -":mod:`mmap`: An interface to memory-mapped files on both Windows and Unix. A" -" file's contents can be mapped directly into memory, at which point it " +":mod:`mmap`: An interface to memory-mapped files on both Windows and Unix. " +"A file's contents can be mapped directly into memory, at which point it " "behaves like a mutable string, so its contents can be read and modified. " "They can even be passed to functions that expect ordinary strings, such as " -"the :mod:`re` module. (Contributed by Sam Rushing, with some extensions by " -"A.M. Kuchling.)" +"the :mod:`re` module. (Contributed by Sam Rushing, with some extensions by A." +"M. Kuchling.)" msgstr "" #: ../../whatsnew/2.0.rst:1110 @@ -1611,8 +1612,8 @@ msgstr "" #: ../../whatsnew/2.0.rst:1122 msgid "" -":mod:`!UserString`: A base class useful for deriving objects that behave like" -" strings." +":mod:`!UserString`: A base class useful for deriving objects that behave " +"like strings." msgstr "" #: ../../whatsnew/2.0.rst:1125 @@ -1622,25 +1623,25 @@ msgid "" "are tried in a specific order. The user can alter which browser is launched " "by setting the *BROWSER* environment variable. (Originally inspired by Eric " "S. Raymond's patch to :mod:`urllib` which added similar functionality, but " -"the final module comes from code originally implemented by Fred Drake as " -":file:`Tools/idle/BrowserControl.py`, and adapted for the standard library by" -" Fred.)" +"the final module comes from code originally implemented by Fred Drake as :" +"file:`Tools/idle/BrowserControl.py`, and adapted for the standard library by " +"Fred.)" msgstr "" #: ../../whatsnew/2.0.rst:1134 msgid "" -":mod:`_winreg `: An interface to the Windows registry. " -":mod:`!_winreg` is an adaptation of functions that have been part of " -"PythonWin since 1995, but has now been added to the core distribution, and " -"enhanced to support Unicode. :mod:`!_winreg` was written by Bill Tutt and " -"Mark Hammond." +":mod:`_winreg `: An interface to the Windows registry. :mod:`!" +"_winreg` is an adaptation of functions that have been part of PythonWin " +"since 1995, but has now been added to the core distribution, and enhanced " +"to support Unicode. :mod:`!_winreg` was written by Bill Tutt and Mark " +"Hammond." msgstr "" #: ../../whatsnew/2.0.rst:1139 msgid "" ":mod:`zipfile`: A module for reading and writing ZIP-format archives. These " -"are archives produced by :program:`PKZIP` on DOS/Windows or :program:`zip` on" -" Unix, not to be confused with :program:`gzip`\\ -format files (which are " +"are archives produced by :program:`PKZIP` on DOS/Windows or :program:`zip` " +"on Unix, not to be confused with :program:`gzip`\\ -format files (which are " "supported by the :mod:`gzip` module) (Contributed by James C. Ahlstrom.)" msgstr "" @@ -1658,9 +1659,9 @@ msgstr "" #: ../../whatsnew/2.0.rst:1154 msgid "" -"IDLE is the official Python cross-platform IDE, written using Tkinter. Python" -" 2.0 includes IDLE 0.6, which adds a number of new features and improvements." -" A partial list:" +"IDLE is the official Python cross-platform IDE, written using Tkinter. " +"Python 2.0 includes IDLE 0.6, which adds a number of new features and " +"improvements. A partial list:" msgstr "" #: ../../whatsnew/2.0.rst:1158 @@ -1671,8 +1672,8 @@ msgstr "" #: ../../whatsnew/2.0.rst:1161 msgid "" -"The class browser now shows more information, such as the top level functions" -" in a module." +"The class browser now shows more information, such as the top level " +"functions in a module." msgstr "" #: ../../whatsnew/2.0.rst:1164 @@ -1707,8 +1708,8 @@ msgstr "" #: ../../whatsnew/2.0.rst:1179 msgid "" -"Three new keystroke commands: Check module (:kbd:`Alt-F5`), Import module " -"(:kbd:`F5`) and Run script (:kbd:`Ctrl-F5`)." +"Three new keystroke commands: Check module (:kbd:`Alt-F5`), Import module (:" +"kbd:`F5`) and Run script (:kbd:`Ctrl-F5`)." msgstr "" #: ../../whatsnew/2.0.rst:1186 @@ -1718,20 +1719,20 @@ msgstr "" #: ../../whatsnew/2.0.rst:1188 msgid "" "A few modules have been dropped because they're obsolete, or because there " -"are now better ways to do the same thing. The :mod:`!stdwin` module is gone;" -" it was for a platform-independent windowing toolkit that's no longer " +"are now better ways to do the same thing. The :mod:`!stdwin` module is " +"gone; it was for a platform-independent windowing toolkit that's no longer " "developed." msgstr "" #: ../../whatsnew/2.0.rst:1192 msgid "" -"A number of modules have been moved to the :file:`lib-old` subdirectory: " -":mod:`!cmp`, :mod:`!cmpcache`, :mod:`!dircmp`, :mod:`!dump`, :mod:`!find`, " -":mod:`!grep`, :mod:`!packmail`, :mod:`!poly`, :mod:`!util`, " -":mod:`!whatsound`, :mod:`!zmod`. If you have code which relies on a module " -"that's been moved to :file:`lib-old`, you can simply add that directory to " -"``sys.path`` to get them back, but you're encouraged to update any code " -"that uses these modules." +"A number of modules have been moved to the :file:`lib-old` subdirectory: :" +"mod:`!cmp`, :mod:`!cmpcache`, :mod:`!dircmp`, :mod:`!dump`, :mod:`!find`, :" +"mod:`!grep`, :mod:`!packmail`, :mod:`!poly`, :mod:`!util`, :mod:`!" +"whatsound`, :mod:`!zmod`. If you have code which relies on a module that's " +"been moved to :file:`lib-old`, you can simply add that directory to ``sys." +"path`` to get them back, but you're encouraged to update any code that " +"uses these modules." msgstr "" #: ../../whatsnew/2.0.rst:1201 @@ -1740,9 +1741,9 @@ msgstr "" #: ../../whatsnew/2.0.rst:1203 msgid "" -"The authors would like to thank the following people for offering suggestions" -" on various drafts of this article: David Bolen, Mark Hammond, Gregg Hauser, " -"Jeremy Hylton, Fredrik Lundh, Detlef Lannert, Aahz Maruch, Skip Montanaro, " -"Vladimir Marangozov, Tobias Polzin, Guido van Rossum, Neil Schemenauer, and " -"Russ Schmidt." +"The authors would like to thank the following people for offering " +"suggestions on various drafts of this article: David Bolen, Mark Hammond, " +"Gregg Hauser, Jeremy Hylton, Fredrik Lundh, Detlef Lannert, Aahz Maruch, " +"Skip Montanaro, Vladimir Marangozov, Tobias Polzin, Guido van Rossum, Neil " +"Schemenauer, and Russ Schmidt." msgstr "" diff --git a/whatsnew/2.2.po b/whatsnew/2.2.po index 6ab2f2a6..8c26b219 100644 --- a/whatsnew/2.2.po +++ b/whatsnew/2.2.po @@ -47,19 +47,19 @@ msgstr "" msgid "" "Python 2.2 can be thought of as the \"cleanup release\". There are some " "features such as generators and iterators that are completely new, but most " -"of the changes, significant and far-reaching though they may be, are aimed at" -" cleaning up irregularities and dark corners of the language design." +"of the changes, significant and far-reaching though they may be, are aimed " +"at cleaning up irregularities and dark corners of the language design." msgstr "" #: ../../whatsnew/2.2.rst:24 msgid "" "This article doesn't attempt to provide a complete specification of the new " "features, but instead provides a convenient overview. For full details, you " -"should refer to the documentation for Python 2.2, such as the `Python Library" -" Reference `_ and the `Python " -"Reference Manual `_. If you want " -"to understand the complete implementation and design rationale for a change, " -"refer to the PEP for a particular new feature." +"should refer to the documentation for Python 2.2, such as the `Python " +"Library Reference `_ and the " +"`Python Reference Manual `_. If " +"you want to understand the complete implementation and design rationale for " +"a change, refer to the PEP for a particular new feature." msgstr "" #: ../../whatsnew/2.2.rst:43 @@ -68,12 +68,12 @@ msgstr "" #: ../../whatsnew/2.2.rst:45 msgid "" -"The largest and most far-reaching changes in Python 2.2 are to Python's model" -" of objects and classes. The changes should be backward compatible, so it's " -"likely that your code will continue to run unchanged, but the changes provide" -" some amazing new capabilities. Before beginning this, the longest and most " -"complicated section of this article, I'll provide an overview of the changes " -"and offer some comments." +"The largest and most far-reaching changes in Python 2.2 are to Python's " +"model of objects and classes. The changes should be backward compatible, so " +"it's likely that your code will continue to run unchanged, but the changes " +"provide some amazing new capabilities. Before beginning this, the longest " +"and most complicated section of this article, I'll provide an overview of " +"the changes and offer some comments." msgstr "" #: ../../whatsnew/2.2.rst:52 @@ -81,11 +81,11 @@ msgid "" "A long time ago I wrote a web page listing flaws in Python's design. One of " "the most significant flaws was that it's impossible to subclass Python types " "implemented in C. In particular, it's not possible to subclass built-in " -"types, so you can't just subclass, say, lists in order to add a single useful" -" method to them. The :mod:`!UserList` module provides a class that supports " -"all of the methods of lists and that can be subclassed further, but there's " -"lots of C code that expects a regular Python list and won't accept a " -":class:`~collections.UserList` instance." +"types, so you can't just subclass, say, lists in order to add a single " +"useful method to them. The :mod:`!UserList` module provides a class that " +"supports all of the methods of lists and that can be subclassed further, but " +"there's lots of C code that expects a regular Python list and won't accept " +"a :class:`~collections.UserList` instance." msgstr "" #: ../../whatsnew/2.2.rst:61 @@ -125,21 +125,22 @@ msgstr "" #: ../../whatsnew/2.2.rst:80 msgid "" "Some users have voiced concern about all these changes. Sure, they say, the " -"new features are neat and lend themselves to all sorts of tricks that weren't" -" possible in previous versions of Python, but they also make the language " -"more complicated. Some people have said that they've always recommended " -"Python for its simplicity, and feel that its simplicity is being lost." +"new features are neat and lend themselves to all sorts of tricks that " +"weren't possible in previous versions of Python, but they also make the " +"language more complicated. Some people have said that they've always " +"recommended Python for its simplicity, and feel that its simplicity is being " +"lost." msgstr "" #: ../../whatsnew/2.2.rst:86 msgid "" "Personally, I think there's no need to worry. Many of the new features are " -"quite esoteric, and you can write a lot of Python code without ever needed to" -" be aware of them. Writing a simple class is no more difficult than it ever " -"was, so you don't need to bother learning or teaching them unless they're " -"actually needed. Some very complicated tasks that were previously only " -"possible from C will now be possible in pure Python, and to my mind that's " -"all for the better." +"quite esoteric, and you can write a lot of Python code without ever needed " +"to be aware of them. Writing a simple class is no more difficult than it " +"ever was, so you don't need to bother learning or teaching them unless " +"they're actually needed. Some very complicated tasks that were previously " +"only possible from C will now be possible in pure Python, and to my mind " +"that's all for the better." msgstr "" #: ../../whatsnew/2.2.rst:93 @@ -161,18 +162,18 @@ msgid "" "classic or old-style classes, and new-style classes. The old-style class " "model is exactly the same as the class model in earlier versions of Python. " "All the new features described in this section apply only to new-style " -"classes. This divergence isn't intended to last forever; eventually old-style" -" classes will be dropped, possibly in Python 3.0." +"classes. This divergence isn't intended to last forever; eventually old-" +"style classes will be dropped, possibly in Python 3.0." msgstr "" #: ../../whatsnew/2.2.rst:109 msgid "" -"So how do you define a new-style class? You do it by subclassing an existing" -" new-style class. Most of Python's built-in types, such as integers, lists, " -"dictionaries, and even files, are new-style classes now. A new-style class " -"named :class:`object`, the base class for all built-in types, has also been " -"added so if no built-in type is suitable, you can just subclass " -":class:`object`::" +"So how do you define a new-style class? You do it by subclassing an " +"existing new-style class. Most of Python's built-in types, such as " +"integers, lists, dictionaries, and even files, are new-style classes now. A " +"new-style class named :class:`object`, the base class for all built-in " +"types, has also been added so if no built-in type is suitable, you can just " +"subclass :class:`object`::" msgstr "" #: ../../whatsnew/2.2.rst:116 @@ -186,18 +187,18 @@ msgstr "" #: ../../whatsnew/2.2.rst:121 msgid "" "This means that :keyword:`class` statements that don't have any base classes " -"are always classic classes in Python 2.2. (Actually you can also change this" -" by setting a module-level variable named :attr:`!__metaclass__` --- see " -":pep:`253` for the details --- but it's easier to just subclass " -":class:`object`.)" +"are always classic classes in Python 2.2. (Actually you can also change " +"this by setting a module-level variable named :attr:`!__metaclass__` --- " +"see :pep:`253` for the details --- but it's easier to just subclass :class:" +"`object`.)" msgstr "" #: ../../whatsnew/2.2.rst:126 msgid "" "The type objects for the built-in types are available as built-ins, named " -"using a clever trick. Python has always had built-in functions named " -":func:`int`, :func:`float`, and :func:`str`. In 2.2, they aren't functions " -"any more, but type objects that behave as factories when called. ::" +"using a clever trick. Python has always had built-in functions named :func:" +"`int`, :func:`float`, and :func:`str`. In 2.2, they aren't functions any " +"more, but type objects that behave as factories when called. ::" msgstr "" #: ../../whatsnew/2.2.rst:131 @@ -210,9 +211,9 @@ msgstr "" #: ../../whatsnew/2.2.rst:136 msgid "" -"To make the set of types complete, new type objects such as :func:`dict` and " -":func:`!file` have been added. Here's a more interesting example, adding a " -":meth:`!lock` method to file objects::" +"To make the set of types complete, new type objects such as :func:`dict` " +"and :func:`!file` have been added. Here's a more interesting example, " +"adding a :meth:`!lock` method to file objects::" msgstr "" #: ../../whatsnew/2.2.rst:140 @@ -226,10 +227,10 @@ msgstr "" #: ../../whatsnew/2.2.rst:146 msgid "" -"The now-obsolete :mod:`!posixfile` module contained a class that emulated all" -" of a file object's methods and also added a :meth:`!lock` method, but this " -"class couldn't be passed to internal functions that expected a built-in file," -" something which is possible with our new :class:`!LockableFile`." +"The now-obsolete :mod:`!posixfile` module contained a class that emulated " +"all of a file object's methods and also added a :meth:`!lock` method, but " +"this class couldn't be passed to internal functions that expected a built-in " +"file, something which is possible with our new :class:`!LockableFile`." msgstr "" #: ../../whatsnew/2.2.rst:153 @@ -250,11 +251,11 @@ msgstr "" #: ../../whatsnew/2.2.rst:163 msgid "" -"The one big idea underlying the new class model is that an API for describing" -" the attributes of an object using :dfn:`descriptors` has been formalized. " -"Descriptors specify the value of an attribute, stating whether it's a method " -"or a field. With the descriptor API, static methods and class methods become" -" possible, as well as more exotic constructs." +"The one big idea underlying the new class model is that an API for " +"describing the attributes of an object using :dfn:`descriptors` has been " +"formalized. Descriptors specify the value of an attribute, stating whether " +"it's a method or a field. With the descriptor API, static methods and class " +"methods become possible, as well as more exotic constructs." msgstr "" #: ../../whatsnew/2.2.rst:169 @@ -301,13 +302,13 @@ msgstr "" #: ../../whatsnew/2.2.rst:189 msgid "" "For methods, :meth:`descriptor.__get__ ` returns a temporary " -"object that's callable, and wraps up the instance and the method to be called" -" on it. This is also why static methods and class methods are now possible; " -"they have descriptors that wrap up just the method, or the method and the " -"class. As a brief explanation of these new kinds of methods, static methods " -"aren't passed the instance, and therefore resemble regular functions. Class " -"methods are passed the class of the object, but not the object itself. " -"Static and class methods are defined like this::" +"object that's callable, and wraps up the instance and the method to be " +"called on it. This is also why static methods and class methods are now " +"possible; they have descriptors that wrap up just the method, or the method " +"and the class. As a brief explanation of these new kinds of methods, static " +"methods aren't passed the instance, and therefore resemble regular " +"functions. Class methods are passed the class of the object, but not the " +"object itself. Static and class methods are defined like this::" msgstr "" #: ../../whatsnew/2.2.rst:199 @@ -327,15 +328,15 @@ msgid "" "The :func:`staticmethod` function takes the function :func:`!f`, and returns " "it wrapped up in a descriptor so it can be stored in the class object. You " "might expect there to be special syntax for creating such methods (``def " -"static f``, ``defstatic f()``, or something like that) but no such syntax has" -" been defined yet; that's been left for future versions of Python." +"static f``, ``defstatic f()``, or something like that) but no such syntax " +"has been defined yet; that's been left for future versions of Python." msgstr "" #: ../../whatsnew/2.2.rst:214 msgid "" "More new features, such as slots and properties, are also implemented as new " -"kinds of descriptors, and it's not difficult to write a descriptor class that" -" does something novel. For example, it would be possible to write a " +"kinds of descriptors, and it's not difficult to write a descriptor class " +"that does something novel. For example, it would be possible to write a " "descriptor class that made it possible to write Eiffel-style preconditions " "and postconditions for a method. A class that used this feature might be " "defined like this::" @@ -400,28 +401,29 @@ msgstr "" #: ../../whatsnew/2.2.rst:265 msgid "" "The lookup rule for classic classes is simple but not very smart; the base " -"classes are searched depth-first, going from left to right. A reference to " -":meth:`!D.save` will search the classes :class:`!D`, :class:`!B`, and then " -":class:`!A`, where :meth:`!save` would be found and returned. " -":meth:`!C.save` would never be found at all. This is bad, because if " -":class:`!C`'s :meth:`!save` method is saving some internal state specific to " -":class:`!C`, not calling it will result in that state never getting saved." +"classes are searched depth-first, going from left to right. A reference to :" +"meth:`!D.save` will search the classes :class:`!D`, :class:`!B`, and then :" +"class:`!A`, where :meth:`!save` would be found and returned. :meth:`!C." +"save` would never be found at all. This is bad, because if :class:`!C`'s :" +"meth:`!save` method is saving some internal state specific to :class:`!C`, " +"not calling it will result in that state never getting saved." msgstr "" #: ../../whatsnew/2.2.rst:273 msgid "" "New-style classes follow a different algorithm that's a bit more complicated " -"to explain, but does the right thing in this situation. (Note that Python 2.3" -" changes this algorithm to one that produces the same results in most cases, " -"but produces more useful results for really complicated inheritance graphs.)" +"to explain, but does the right thing in this situation. (Note that Python " +"2.3 changes this algorithm to one that produces the same results in most " +"cases, but produces more useful results for really complicated inheritance " +"graphs.)" msgstr "" #: ../../whatsnew/2.2.rst:278 msgid "" "List all the base classes, following the classic lookup rule and include a " "class multiple times if it's visited repeatedly. In the above example, the " -"list of visited classes is [:class:`!D`, :class:`!B`, :class:`!A`, " -":class:`!C`, :class:`!A`]." +"list of visited classes is [:class:`!D`, :class:`!B`, :class:`!A`, :class:`!" +"C`, :class:`!A`]." msgstr "" #: ../../whatsnew/2.2.rst:283 @@ -434,11 +436,11 @@ msgstr "" #: ../../whatsnew/2.2.rst:288 msgid "" -"Following this rule, referring to :meth:`!D.save` will return " -":meth:`!C.save`, which is the behaviour we're after. This lookup rule is the" -" same as the one followed by Common Lisp. A new built-in function, " -":func:`super`, provides a way to get at a class's superclasses without having" -" to reimplement Python's algorithm. The most commonly used form will be " +"Following this rule, referring to :meth:`!D.save` will return :meth:`!C." +"save`, which is the behaviour we're after. This lookup rule is the same as " +"the one followed by Common Lisp. A new built-in function, :func:`super`, " +"provides a way to get at a class's superclasses without having to " +"reimplement Python's algorithm. The most commonly used form will be " "``super(class, obj)``, which returns a bound superclass object (not the " "actual class object). This form will be used in methods to call a method in " "the superclass; for example, :class:`!D`'s :meth:`!save` method would look " @@ -470,26 +472,26 @@ msgstr "" msgid "" "A fair number of sophisticated Python classes define hooks for attribute " "access using :meth:`~object.__getattr__`; most commonly this is done for " -"convenience, to make code more readable by automatically mapping an attribute" -" access such as ``obj.parent`` into a method call such as ``obj.get_parent``." -" Python 2.2 adds some new ways of controlling attribute access." +"convenience, to make code more readable by automatically mapping an " +"attribute access such as ``obj.parent`` into a method call such as ``obj." +"get_parent``. Python 2.2 adds some new ways of controlling attribute access." msgstr "" #: ../../whatsnew/2.2.rst:318 msgid "" "First, ``__getattr__(attr_name)`` is still supported by new-style classes, " "and nothing about it has changed. As before, it will be called when an " -"attempt is made to access ``obj.foo`` and no attribute named ``foo`` is found" -" in the instance's dictionary." +"attempt is made to access ``obj.foo`` and no attribute named ``foo`` is " +"found in the instance's dictionary." msgstr "" #: ../../whatsnew/2.2.rst:323 msgid "" -"New-style classes also support a new method, ``__getattribute__(attr_name)``." -" The difference between the two methods is that " -":meth:`~object.__getattribute__` is *always* called whenever any attribute is" -" accessed, while the old :meth:`~object.__getattr__` is only called if " -"``foo`` isn't found in the instance's dictionary." +"New-style classes also support a new method, " +"``__getattribute__(attr_name)``. The difference between the two methods is " +"that :meth:`~object.__getattribute__` is *always* called whenever any " +"attribute is accessed, while the old :meth:`~object.__getattr__` is only " +"called if ``foo`` isn't found in the instance's dictionary." msgstr "" #: ../../whatsnew/2.2.rst:329 @@ -497,12 +499,12 @@ msgid "" "However, Python 2.2's support for :dfn:`properties` will often be a simpler " "way to trap attribute references. Writing a :meth:`!__getattr__` method is " "complicated because to avoid recursion you can't use regular attribute " -"accesses inside them, and instead have to mess around with the contents of " -":attr:`~object.__dict__`. :meth:`~object.__getattr__` methods also end up " -"being called by Python when it checks for other methods such as " -":meth:`~object.__repr__` or :meth:`!__coerce__`, and so have to be written " -"with this in mind. Finally, calling a function on every attribute access " -"results in a sizable performance loss." +"accesses inside them, and instead have to mess around with the contents of :" +"attr:`~object.__dict__`. :meth:`~object.__getattr__` methods also end up " +"being called by Python when it checks for other methods such as :meth:" +"`~object.__repr__` or :meth:`!__coerce__`, and so have to be written with " +"this in mind. Finally, calling a function on every attribute access results " +"in a sizable performance loss." msgstr "" #: ../../whatsnew/2.2.rst:338 @@ -533,24 +535,23 @@ msgstr "" #: ../../whatsnew/2.2.rst:358 msgid "" -"That is certainly clearer and easier to write than a pair of " -":meth:`!__getattr__`/:meth:`!__setattr__` methods that check for the " -":attr:`!size` attribute and handle it specially while retrieving all other " -"attributes from the instance's :attr:`~object.__dict__`. Accesses to " -":attr:`!size` are also the only ones which have to perform the work of " -"calling a function, so references to other attributes run at their usual " -"speed." +"That is certainly clearer and easier to write than a pair of :meth:`!" +"__getattr__`/:meth:`!__setattr__` methods that check for the :attr:`!size` " +"attribute and handle it specially while retrieving all other attributes from " +"the instance's :attr:`~object.__dict__`. Accesses to :attr:`!size` are also " +"the only ones which have to perform the work of calling a function, so " +"references to other attributes run at their usual speed." msgstr "" #: ../../whatsnew/2.2.rst:365 msgid "" "Finally, it's possible to constrain the list of attributes that can be " "referenced on an object using the new :attr:`~object.__slots__` class " -"attribute. Python objects are usually very dynamic; at any time it's possible" -" to define a new attribute on an instance by just doing ``obj.new_attr=1``." -" A new-style class can define a class attribute named " -":attr:`~object.__slots__` to limit the legal attributes to a particular set " -"of names. An example will make this clear::" +"attribute. Python objects are usually very dynamic; at any time it's " +"possible to define a new attribute on an instance by just doing ``obj." +"new_attr=1``. A new-style class can define a class attribute named :attr:" +"`~object.__slots__` to limit the legal attributes to a particular set of " +"names. An example will make this clear::" msgstr "" #: ../../whatsnew/2.2.rst:372 @@ -583,8 +584,9 @@ msgstr "" #: ../../whatsnew/2.2.rst:395 msgid "" "This section has just been a quick overview of the new features, giving " -"enough of an explanation to start you programming, but many details have been" -" simplified or ignored. Where should you go to get a more complete picture?" +"enough of an explanation to start you programming, but many details have " +"been simplified or ignored. Where should you go to get a more complete " +"picture?" msgstr "" #: ../../whatsnew/2.2.rst:399 @@ -600,8 +602,8 @@ msgid "" "Next, there are two relevant PEPs, :pep:`252` and :pep:`253`. :pep:`252` is " "titled \"Making Types Look More Like Classes\", and covers the descriptor " "API. :pep:`253` is titled \"Subtyping Built-in Types\", and describes the " -"changes to type objects that make it possible to subtype built-in objects. " -":pep:`253` is the more complicated PEP of the two, and at a few points the " +"changes to type objects that make it possible to subtype built-in objects. :" +"pep:`253` is the more complicated PEP of the two, and at a few points the " "necessary explanations of types and meta-types may cause your head to " "explode. Both PEPs were written and implemented by Guido van Rossum, with " "substantial assistance from the rest of the Zope Corp. team." @@ -642,25 +644,26 @@ msgstr "" #: ../../whatsnew/2.2.rst:433 msgid "" ":meth:`~object.__getitem__` is more properly used to define an indexing " -"operation on an object so that you can write ``obj[5]`` to retrieve the sixth" -" element. It's a bit misleading when you're using this only to support " -":keyword:`for` loops. Consider some file-like object that wants to be looped " -"over; the *index* parameter is essentially meaningless, as the class probably" -" assumes that a series of :meth:`~object.__getitem__` calls will be made with" -" *index* incrementing by one each time. In other words, the presence of the " -":meth:`~object.__getitem__` method doesn't mean that using ``file[5]`` to " -"randomly access the sixth element will work, though it really should." +"operation on an object so that you can write ``obj[5]`` to retrieve the " +"sixth element. It's a bit misleading when you're using this only to " +"support :keyword:`for` loops. Consider some file-like object that wants to " +"be looped over; the *index* parameter is essentially meaningless, as the " +"class probably assumes that a series of :meth:`~object.__getitem__` calls " +"will be made with *index* incrementing by one each time. In other words, " +"the presence of the :meth:`~object.__getitem__` method doesn't mean that " +"using ``file[5]`` to randomly access the sixth element will work, though it " +"really should." msgstr "" #: ../../whatsnew/2.2.rst:443 msgid "" -"In Python 2.2, iteration can be implemented separately, and " -":meth:`~object.__getitem__` methods can be limited to classes that really do " -"support random access. The basic idea of iterators is simple. A new built-" -"in function, ``iter(obj)`` or ``iter(C, sentinel)``, is used to get an " -"iterator. ``iter(obj)`` returns an iterator for the object *obj*, while " -"``iter(C, sentinel)`` returns an iterator that will invoke the callable " -"object *C* until it returns *sentinel* to signal that the iterator is done." +"In Python 2.2, iteration can be implemented separately, and :meth:`~object." +"__getitem__` methods can be limited to classes that really do support random " +"access. The basic idea of iterators is simple. A new built-in function, " +"``iter(obj)`` or ``iter(C, sentinel)``, is used to get an iterator. " +"``iter(obj)`` returns an iterator for the object *obj*, while ``iter(C, " +"sentinel)`` returns an iterator that will invoke the callable object *C* " +"until it returns *sentinel* to signal that the iterator is done." msgstr "" #: ../../whatsnew/2.2.rst:451 @@ -668,10 +671,10 @@ msgid "" "Python classes can define an :meth:`!__iter__` method, which should create " "and return a new iterator for the object; if the object is its own iterator, " "this method can just return ``self``. In particular, iterators will usually " -"be their own iterators. Extension types implemented in C can implement a " -":c:member:`~PyTypeObject.tp_iter` function in order to return an iterator, " -"and extension types that want to behave as iterators can define a " -":c:member:`~PyTypeObject.tp_iternext` function." +"be their own iterators. Extension types implemented in C can implement a :c:" +"member:`~PyTypeObject.tp_iter` function in order to return an iterator, and " +"extension types that want to behave as iterators can define a :c:member:" +"`~PyTypeObject.tp_iternext` function." msgstr "" #: ../../whatsnew/2.2.rst:458 @@ -706,8 +709,8 @@ msgid "" "In 2.2, Python's :keyword:`for` statement no longer expects a sequence; it " "expects something for which :func:`iter` will return an iterator. For " "backward compatibility and convenience, an iterator is automatically " -"constructed for sequences that don't implement :meth:`!__iter__` or a " -":c:member:`~PyTypeObject.tp_iter` slot, so ``for i in [1,2,3]`` will still " +"constructed for sequences that don't implement :meth:`!__iter__` or a :c:" +"member:`~PyTypeObject.tp_iter` slot, so ``for i in [1,2,3]`` will still " "work. Wherever the Python interpreter loops over a sequence, it's been " "changed to use the iterator protocol. This means you can do things like " "this::" @@ -724,8 +727,8 @@ msgstr "" #: ../../whatsnew/2.2.rst:493 msgid "" -"Iterator support has been added to some of Python's basic types. Calling " -":func:`iter` on a dictionary will return an iterator which loops over its " +"Iterator support has been added to some of Python's basic types. Calling :" +"func:`iter` on a dictionary will return an iterator which loops over its " "keys::" msgstr "" @@ -751,18 +754,18 @@ msgstr "" #: ../../whatsnew/2.2.rst:513 msgid "" -"That's just the default behaviour. If you want to iterate over keys, values," -" or key/value pairs, you can explicitly call the :meth:`!iterkeys`, " -":meth:`!itervalues`, or :meth:`!iteritems` methods to get an appropriate " +"That's just the default behaviour. If you want to iterate over keys, " +"values, or key/value pairs, you can explicitly call the :meth:`!iterkeys`, :" +"meth:`!itervalues`, or :meth:`!iteritems` methods to get an appropriate " "iterator. In a minor related change, the :keyword:`in` operator now works on " "dictionaries, so ``key in dict`` is now equivalent to ``dict.has_key(key)``." msgstr "" #: ../../whatsnew/2.2.rst:519 msgid "" -"Files also provide an iterator, which calls the :meth:`readline` method until" -" there are no more lines in the file. This means you can now read each line " -"of a file using code like this::" +"Files also provide an iterator, which calls the :meth:`readline` method " +"until there are no more lines in the file. This means you can now read each " +"line of a file using code like this::" msgstr "" #: ../../whatsnew/2.2.rst:523 @@ -826,28 +829,28 @@ msgstr "" #: ../../whatsnew/2.2.rst:563 msgid "" -"A new keyword, :keyword:`yield`, was introduced for generators. Any function" -" containing a :keyword:`!yield` statement is a generator function; this is " -"detected by Python's bytecode compiler which compiles the function specially " -"as a result. Because a new keyword was introduced, generators must be " -"explicitly enabled in a module by including a ``from __future__ import " -"generators`` statement near the top of the module's source code. In Python " -"2.3 this statement will become unnecessary." +"A new keyword, :keyword:`yield`, was introduced for generators. Any " +"function containing a :keyword:`!yield` statement is a generator function; " +"this is detected by Python's bytecode compiler which compiles the function " +"specially as a result. Because a new keyword was introduced, generators " +"must be explicitly enabled in a module by including a ``from __future__ " +"import generators`` statement near the top of the module's source code. In " +"Python 2.3 this statement will become unnecessary." msgstr "" #: ../../whatsnew/2.2.rst:571 msgid "" -"When you call a generator function, it doesn't return a single value; instead" -" it returns a generator object that supports the iterator protocol. On " -"executing the :keyword:`yield` statement, the generator outputs the value of " -"``i``, similar to a :keyword:`return` statement. The big difference between " -":keyword:`!yield` and a :keyword:`!return` statement is that on reaching a " -":keyword:`!yield` the generator's state of execution is suspended and local " -"variables are preserved. On the next call to the generator's ``next()`` " -"method, the function will resume executing immediately after the " -":keyword:`!yield` statement. (For complicated reasons, the :keyword:`!yield`" -" statement isn't allowed inside the :keyword:`!try` block of a " -":keyword:`try`...\\ :keyword:`finally` statement; read :pep:`255` for a full " +"When you call a generator function, it doesn't return a single value; " +"instead it returns a generator object that supports the iterator protocol. " +"On executing the :keyword:`yield` statement, the generator outputs the value " +"of ``i``, similar to a :keyword:`return` statement. The big difference " +"between :keyword:`!yield` and a :keyword:`!return` statement is that on " +"reaching a :keyword:`!yield` the generator's state of execution is suspended " +"and local variables are preserved. On the next call to the generator's " +"``next()`` method, the function will resume executing immediately after the :" +"keyword:`!yield` statement. (For complicated reasons, the :keyword:`!yield` " +"statement isn't allowed inside the :keyword:`!try` block of a :keyword:" +"`try`...\\ :keyword:`finally` statement; read :pep:`255` for a full " "explanation of the interaction between :keyword:`!yield` and exceptions.)" msgstr "" @@ -881,26 +884,26 @@ msgstr "" #: ../../whatsnew/2.2.rst:604 msgid "" -"Inside a generator function, the :keyword:`return` statement can only be used" -" without a value, and signals the end of the procession of values; afterwards" -" the generator cannot return any further values. :keyword:`!return` with a " -"value, such as ``return 5``, is a syntax error inside a generator function. " -"The end of the generator's results can also be indicated by raising " -":exc:`StopIteration` manually, or by just letting the flow of execution fall " -"off the bottom of the function." +"Inside a generator function, the :keyword:`return` statement can only be " +"used without a value, and signals the end of the procession of values; " +"afterwards the generator cannot return any further values. :keyword:`!" +"return` with a value, such as ``return 5``, is a syntax error inside a " +"generator function. The end of the generator's results can also be " +"indicated by raising :exc:`StopIteration` manually, or by just letting the " +"flow of execution fall off the bottom of the function." msgstr "" #: ../../whatsnew/2.2.rst:612 msgid "" -"You could achieve the effect of generators manually by writing your own class" -" and storing all the local variables of the generator as instance variables." -" For example, returning a list of integers could be done by setting " -"``self.count`` to 0, and having the :meth:`next` method increment " +"You could achieve the effect of generators manually by writing your own " +"class and storing all the local variables of the generator as instance " +"variables. For example, returning a list of integers could be done by " +"setting ``self.count`` to 0, and having the :meth:`next` method increment " "``self.count`` and return it. However, for a moderately complicated " -"generator, writing a corresponding class would be much messier. " -":file:`Lib/test/test_generators.py` contains a number of more interesting " -"examples. The simplest one implements an in-order traversal of a tree using " -"generators recursively. ::" +"generator, writing a corresponding class would be much messier. :file:`Lib/" +"test/test_generators.py` contains a number of more interesting examples. " +"The simplest one implements an in-order traversal of a tree using generators " +"recursively. ::" msgstr "" #: ../../whatsnew/2.2.rst:621 @@ -929,9 +932,9 @@ msgid "" "The idea of generators comes from other programming languages, especially " "Icon (https://www2.cs.arizona.edu/icon/), where the idea of generators is " "central. In Icon, every expression and function call behaves like a " -"generator. One example from \"An Overview of the Icon Programming Language\"" -" at https://www2.cs.arizona.edu/icon/docs/ipd266.htm gives an idea of what " -"this looks like::" +"generator. One example from \"An Overview of the Icon Programming " +"Language\" at https://www2.cs.arizona.edu/icon/docs/ipd266.htm gives an idea " +"of what this looks like::" msgstr "" #: ../../whatsnew/2.2.rst:642 @@ -942,22 +945,23 @@ msgstr "" #: ../../whatsnew/2.2.rst:645 msgid "" -"In Icon the :func:`!find` function returns the indexes at which the substring" -" \"or\" is found: 3, 23, 33. In the :keyword:`if` statement, ``i`` is first " -"assigned a value of 3, but 3 is less than 5, so the comparison fails, and " -"Icon retries it with the second value of 23. 23 is greater than 5, so the " -"comparison now succeeds, and the code prints the value 23 to the screen." +"In Icon the :func:`!find` function returns the indexes at which the " +"substring \"or\" is found: 3, 23, 33. In the :keyword:`if` statement, ``i`` " +"is first assigned a value of 3, but 3 is less than 5, so the comparison " +"fails, and Icon retries it with the second value of 23. 23 is greater than " +"5, so the comparison now succeeds, and the code prints the value 23 to the " +"screen." msgstr "" #: ../../whatsnew/2.2.rst:651 msgid "" "Python doesn't go nearly as far as Icon in adopting generators as a central " "concept. Generators are considered a new part of the core Python language, " -"but learning or using them isn't compulsory; if they don't solve any problems" -" that you have, feel free to ignore them. One novel feature of Python's " -"interface as compared to Icon's is that a generator's state is represented as" -" a concrete object (the iterator) that can be passed around to other " -"functions or stored in a data structure." +"but learning or using them isn't compulsory; if they don't solve any " +"problems that you have, feel free to ignore them. One novel feature of " +"Python's interface as compared to Icon's is that a generator's state is " +"represented as a concrete object (the iterator) that can be passed around to " +"other functions or stored in a data structure." msgstr "" #: ../../whatsnew/2.2.rst:662 @@ -977,26 +981,26 @@ msgstr "" #: ../../whatsnew/2.2.rst:672 msgid "" -"In recent versions, the distinction between regular integers, which are " -"32-bit values on most machines, and long integers, which can be of arbitrary " +"In recent versions, the distinction between regular integers, which are 32-" +"bit values on most machines, and long integers, which can be of arbitrary " "size, was becoming an annoyance. For example, on platforms that support " "files larger than ``2**32`` bytes, the :meth:`!tell` method of file objects " -"has to return a long integer. However, there were various bits of Python that" -" expected plain integers and would raise an error if a long integer was " -"provided instead. For example, in Python 1.5, only regular integers could be" -" used as a slice index, and ``'abc'[1L:]`` would raise a :exc:`TypeError` " +"has to return a long integer. However, there were various bits of Python " +"that expected plain integers and would raise an error if a long integer was " +"provided instead. For example, in Python 1.5, only regular integers could " +"be used as a slice index, and ``'abc'[1L:]`` would raise a :exc:`TypeError` " "exception with the message 'slice index must be int'." msgstr "" #: ../../whatsnew/2.2.rst:682 msgid "" -"Python 2.2 will shift values from short to long integers as required. The 'L'" -" suffix is no longer needed to indicate a long integer literal, as now the " -"compiler will choose the appropriate type. (Using the 'L' suffix will be " -"discouraged in future 2.x versions of Python, triggering a warning in Python " -"2.4, and probably dropped in Python 3.0.) Many operations that used to raise" -" an :exc:`OverflowError` will now return a long integer as their result. For" -" example::" +"Python 2.2 will shift values from short to long integers as required. The " +"'L' suffix is no longer needed to indicate a long integer literal, as now " +"the compiler will choose the appropriate type. (Using the 'L' suffix will " +"be discouraged in future 2.x versions of Python, triggering a warning in " +"Python 2.4, and probably dropped in Python 3.0.) Many operations that used " +"to raise an :exc:`OverflowError` will now return a long integer as their " +"result. For example::" msgstr "" #: ../../whatsnew/2.2.rst:690 @@ -1020,8 +1024,8 @@ msgstr "" #: ../../whatsnew/2.2.rst:703 msgid "" -"Written by Moshe Zadka and Guido van Rossum. Implemented mostly by Guido van" -" Rossum." +"Written by Moshe Zadka and Guido van Rossum. Implemented mostly by Guido " +"van Rossum." msgstr "" #: ../../whatsnew/2.2.rst:710 @@ -1030,15 +1034,15 @@ msgstr "" #: ../../whatsnew/2.2.rst:712 msgid "" -"The most controversial change in Python 2.2 heralds the start of an effort to" -" fix an old design flaw that's been in Python from the beginning. Currently " -"Python's division operator, ``/``, behaves like C's division operator when " -"presented with two integer arguments: it returns an integer result that's " -"truncated down when there would be a fractional part. For example, ``3/2`` " -"is 1, not 1.5, and ``(-1)/2`` is -1, not -0.5. This means that the results " -"of division can vary unexpectedly depending on the type of the two operands " -"and because Python is dynamically typed, it can be difficult to determine the" -" possible types of the operands." +"The most controversial change in Python 2.2 heralds the start of an effort " +"to fix an old design flaw that's been in Python from the beginning. " +"Currently Python's division operator, ``/``, behaves like C's division " +"operator when presented with two integer arguments: it returns an integer " +"result that's truncated down when there would be a fractional part. For " +"example, ``3/2`` is 1, not 1.5, and ``(-1)/2`` is -1, not -0.5. This means " +"that the results of division can vary unexpectedly depending on the type of " +"the two operands and because Python is dynamically typed, it can be " +"difficult to determine the possible types of the operands." msgstr "" #: ../../whatsnew/2.2.rst:722 @@ -1046,9 +1050,9 @@ msgid "" "(The controversy is over whether this is *really* a design flaw, and whether " "it's worth breaking existing code to fix this. It's caused endless " "discussions on python-dev, and in July 2001 erupted into a storm of acidly " -"sarcastic postings on :newsgroup:`comp.lang.python`. I won't argue for either" -" side here and will stick to describing what's implemented in 2.2. Read " -":pep:`238` for a summary of arguments and counter-arguments.)" +"sarcastic postings on :newsgroup:`comp.lang.python`. I won't argue for " +"either side here and will stick to describing what's implemented in 2.2. " +"Read :pep:`238` for a summary of arguments and counter-arguments.)" msgstr "" #: ../../whatsnew/2.2.rst:729 @@ -1065,9 +1069,9 @@ msgid "" "0.25, and so forth. \"Floor division\" is what Python's ``/`` operator " "currently does when given integer operands; the result is the floor of the " "value returned by true division. \"Classic division\" is the current mixed " -"behaviour of ``/``; it returns the result of floor division when the operands" -" are integers, and returns the result of true division when one of the " -"operands is a floating-point number." +"behaviour of ``/``; it returns the result of floor division when the " +"operands are integers, and returns the result of true division when one of " +"the operands is a floating-point number." msgstr "" #: ../../whatsnew/2.2.rst:741 @@ -1077,41 +1081,41 @@ msgstr "" #: ../../whatsnew/2.2.rst:743 msgid "" "A new operator, ``//``, is the floor division operator. (Yes, we know it " -"looks like C++'s comment symbol.) ``//`` *always* performs floor division no" -" matter what the types of its operands are, so ``1 // 2`` is 0 and ``1.0 // " -"2.0`` is also 0.0." +"looks like C++'s comment symbol.) ``//`` *always* performs floor division " +"no matter what the types of its operands are, so ``1 // 2`` is 0 and " +"``1.0 // 2.0`` is also 0.0." msgstr "" #: ../../whatsnew/2.2.rst:748 msgid "" -"``//`` is always available in Python 2.2; you don't need to enable it using a" -" ``__future__`` statement." +"``//`` is always available in Python 2.2; you don't need to enable it using " +"a ``__future__`` statement." msgstr "" #: ../../whatsnew/2.2.rst:751 msgid "" "By including a ``from __future__ import division`` in a module, the ``/`` " -"operator will be changed to return the result of true division, so ``1/2`` is" -" 0.5. Without the ``__future__`` statement, ``/`` still means classic " +"operator will be changed to return the result of true division, so ``1/2`` " +"is 0.5. Without the ``__future__`` statement, ``/`` still means classic " "division. The default meaning of ``/`` will not change until Python 3.0." msgstr "" #: ../../whatsnew/2.2.rst:756 msgid "" -"Classes can define methods called :meth:`~object.__truediv__` and " -":meth:`~object.__floordiv__` to overload the two division operators. At the " -"C level, there are also slots in the :c:type:`PyNumberMethods` structure so " +"Classes can define methods called :meth:`~object.__truediv__` and :meth:" +"`~object.__floordiv__` to overload the two division operators. At the C " +"level, there are also slots in the :c:type:`PyNumberMethods` structure so " "extension types can define the two operators." msgstr "" #: ../../whatsnew/2.2.rst:761 msgid "" -"Python 2.2 supports some command-line arguments for testing whether code will" -" work with the changed division semantics. Running python with :option:`!-Q " -"warn` will cause a warning to be issued whenever division is applied to two " -"integers. You can use this to find code that's affected by the change and " -"fix it. By default, Python 2.2 will simply perform classic division without " -"a warning; the warning will be turned on by default in Python 2.3." +"Python 2.2 supports some command-line arguments for testing whether code " +"will work with the changed division semantics. Running python with :option:" +"`!-Q warn` will cause a warning to be issued whenever division is applied to " +"two integers. You can use this to find code that's affected by the change " +"and fix it. By default, Python 2.2 will simply perform classic division " +"without a warning; the warning will be turned on by default in Python 2.3." msgstr "" #: ../../whatsnew/2.2.rst:771 @@ -1130,12 +1134,12 @@ msgstr "" #: ../../whatsnew/2.2.rst:780 msgid "" -"Python's Unicode support has been enhanced a bit in 2.2. Unicode strings are" -" usually stored as UCS-2, as 16-bit unsigned integers. Python 2.2 can also be" -" compiled to use UCS-4, 32-bit unsigned integers, as its internal encoding by" -" supplying :option:`!--enable-unicode=ucs4` to the configure script. (It's " -"also possible to specify :option:`!--disable-unicode` to completely disable " -"Unicode support.)" +"Python's Unicode support has been enhanced a bit in 2.2. Unicode strings " +"are usually stored as UCS-2, as 16-bit unsigned integers. Python 2.2 can " +"also be compiled to use UCS-4, 32-bit unsigned integers, as its internal " +"encoding by supplying :option:`!--enable-unicode=ucs4` to the configure " +"script. (It's also possible to specify :option:`!--disable-unicode` to " +"completely disable Unicode support.)" msgstr "" #: ../../whatsnew/2.2.rst:787 @@ -1155,16 +1159,16 @@ msgid "" "strings have supported an :meth:`!encode` method to convert the string to a " "selected encoding such as UTF-8 or Latin-1. A symmetric " "``decode([*encoding*])`` method has been added to 8-bit strings (though not " -"to Unicode strings) in 2.2. :meth:`!decode` assumes that the string is in the" -" specified encoding and decodes it, returning whatever is returned by the " +"to Unicode strings) in 2.2. :meth:`!decode` assumes that the string is in " +"the specified encoding and decodes it, returning whatever is returned by the " "codec." msgstr "" #: ../../whatsnew/2.2.rst:802 msgid "" -"Using this new feature, codecs have been added for tasks not directly related" -" to Unicode. For example, codecs have been added for uu-encoding, MIME's " -"base64 encoding, and compression with the :mod:`zlib` module::" +"Using this new feature, codecs have been added for tasks not directly " +"related to Unicode. For example, codecs have been added for uu-encoding, " +"MIME's base64 encoding, and compression with the :mod:`zlib` module::" msgstr "" #: ../../whatsnew/2.2.rst:806 @@ -1176,7 +1180,8 @@ msgid "" ">>> data\n" "'x\\x9c\\r\\xc9\\xc1\\r\\x80 \\x10\\x04\\xc0?Ul...'\n" ">>> data.decode('zlib')\n" -"'Here is a lengthy piece of redundant, overly verbose,\\nand repetitive text.\\n'\n" +"'Here is a lengthy piece of redundant, overly verbose,\\nand repetitive text." +"\\n'\n" ">>> print s.encode('uu')\n" "begin 666 \n" "M2&5R92!I` module was contributed to the standard " "library by Fredrik Lundh, providing support for writing XML-RPC clients. " "XML-RPC is a simple remote procedure call protocol built on top of HTTP and " -"XML. For example, the following snippet retrieves a list of RSS channels from" -" the O'Reilly Network, and then lists the recent headlines for one channel::" +"XML. For example, the following snippet retrieves a list of RSS channels " +"from the O'Reilly Network, and then lists the recent headlines for one " +"channel::" msgstr "" #: ../../whatsnew/2.2.rst:943 @@ -1385,8 +1390,8 @@ msgstr "" #: ../../whatsnew/2.2.rst:963 msgid "" -"The new :mod:`hmac` module implements the HMAC algorithm described by " -":rfc:`2104`. (Contributed by Gerhard Häring.)" +"The new :mod:`hmac` module implements the HMAC algorithm described by :rfc:" +"`2104`. (Contributed by Gerhard Häring.)" msgstr "" #: ../../whatsnew/2.2.rst:966 @@ -1394,18 +1399,18 @@ msgid "" "Several functions that originally returned lengthy tuples now return pseudo-" "sequences that still behave like tuples but also have mnemonic attributes " "such as :attr:`!memberst_mtime` or :attr:`~time.struct_time.tm_year`. The " -"enhanced functions include :func:`~os.stat`, :func:`~os.fstat`, " -":func:`~os.statvfs`, and :func:`~os.fstatvfs` in the :mod:`os` module, and " -":func:`~time.localtime`, :func:`~time.gmtime`, and :func:`~time.strptime` in " -"the :mod:`time` module." +"enhanced functions include :func:`~os.stat`, :func:`~os.fstat`, :func:`~os." +"statvfs`, and :func:`~os.fstatvfs` in the :mod:`os` module, and :func:`~time." +"localtime`, :func:`~time.gmtime`, and :func:`~time.strptime` in the :mod:" +"`time` module." msgstr "" #: ../../whatsnew/2.2.rst:973 msgid "" "For example, to obtain a file's size using the old tuples, you'd end up " "writing something like ``file_size = os.stat(filename)[stat.ST_SIZE]``, but " -"now this can be written more clearly as ``file_size = " -"os.stat(filename).st_size``." +"now this can be written more clearly as ``file_size = os.stat(filename)." +"st_size``." msgstr "" #: ../../whatsnew/2.2.rst:977 @@ -1421,8 +1426,8 @@ msgstr "" #: ../../whatsnew/2.2.rst:982 msgid "" -"The :mod:`socket` module can be compiled to support IPv6; specify the " -":option:`!--enable-ipv6` option to Python's configure script. (Contributed " +"The :mod:`socket` module can be compiled to support IPv6; specify the :" +"option:`!--enable-ipv6` option to Python's configure script. (Contributed " "by Jun-ichiro \"itojun\" Hagino.)" msgstr "" @@ -1436,71 +1441,72 @@ msgstr "" #: ../../whatsnew/2.2.rst:991 msgid "" -"In the interpreter's interactive mode, there's a new built-in function " -":func:`help` that uses the :mod:`pydoc` module introduced in Python 2.1 to " -"provide interactive help. ``help(object)`` displays any available help text " -"about *object*. :func:`help` with no argument puts you in an online help " -"utility, where you can enter the names of functions, classes, or modules to " -"read their help text. (Contributed by Guido van Rossum, using Ka-Ping Yee's " -":mod:`pydoc` module.)" +"In the interpreter's interactive mode, there's a new built-in function :func:" +"`help` that uses the :mod:`pydoc` module introduced in Python 2.1 to provide " +"interactive help. ``help(object)`` displays any available help text about " +"*object*. :func:`help` with no argument puts you in an online help utility, " +"where you can enter the names of functions, classes, or modules to read " +"their help text. (Contributed by Guido van Rossum, using Ka-Ping Yee's :mod:" +"`pydoc` module.)" msgstr "" #: ../../whatsnew/2.2.rst:999 msgid "" "Various bugfixes and performance improvements have been made to the SRE " -"engine underlying the :mod:`re` module. For example, the :func:`re.sub` and " -":func:`re.split` functions have been rewritten in C. Another contributed " -"patch speeds up certain Unicode character ranges by a factor of two, and a " -"new :meth:`~re.finditer` method that returns an iterator over all the non-" -"overlapping matches in a given string. (SRE is maintained by Fredrik Lundh." -" The BIGCHARSET patch was contributed by Martin von Löwis.)" +"engine underlying the :mod:`re` module. For example, the :func:`re.sub` " +"and :func:`re.split` functions have been rewritten in C. Another " +"contributed patch speeds up certain Unicode character ranges by a factor of " +"two, and a new :meth:`~re.finditer` method that returns an iterator over " +"all the non-overlapping matches in a given string. (SRE is maintained by " +"Fredrik Lundh. The BIGCHARSET patch was contributed by Martin von Löwis.)" msgstr "" #: ../../whatsnew/2.2.rst:1007 msgid "" -"The :mod:`smtplib` module now supports :rfc:`2487`, \"Secure SMTP over TLS\"," -" so it's now possible to encrypt the SMTP traffic between a Python program " -"and the mail transport agent being handed a message. :mod:`smtplib` also " -"supports SMTP authentication. (Contributed by Gerhard Häring.)" +"The :mod:`smtplib` module now supports :rfc:`2487`, \"Secure SMTP over " +"TLS\", so it's now possible to encrypt the SMTP traffic between a Python " +"program and the mail transport agent being handed a message. :mod:`smtplib` " +"also supports SMTP authentication. (Contributed by Gerhard Häring.)" msgstr "" #: ../../whatsnew/2.2.rst:1012 msgid "" "The :mod:`imaplib` module, maintained by Piers Lauder, has support for " -"several new extensions: the NAMESPACE extension defined in :rfc:`2342`, SORT," -" GETACL and SETACL. (Contributed by Anthony Baxter and Michel Pelletier.)" +"several new extensions: the NAMESPACE extension defined in :rfc:`2342`, " +"SORT, GETACL and SETACL. (Contributed by Anthony Baxter and Michel " +"Pelletier.)" msgstr "" #: ../../whatsnew/2.2.rst:1016 msgid "" -"The :mod:`!rfc822` module's parsing of email addresses is now compliant with " -":rfc:`2822`, an update to :rfc:`822`. (The module's name is *not* going to " -"be changed to ``rfc2822``.) A new package, :mod:`email`, has also been added" -" for parsing and generating e-mail messages. (Contributed by Barry Warsaw, " -"and arising out of his work on Mailman.)" +"The :mod:`!rfc822` module's parsing of email addresses is now compliant " +"with :rfc:`2822`, an update to :rfc:`822`. (The module's name is *not* " +"going to be changed to ``rfc2822``.) A new package, :mod:`email`, has also " +"been added for parsing and generating e-mail messages. (Contributed by " +"Barry Warsaw, and arising out of his work on Mailman.)" msgstr "" #: ../../whatsnew/2.2.rst:1022 msgid "" "The :mod:`difflib` module now contains a new :class:`!Differ` class for " -"producing human-readable lists of changes (a \"delta\") between two sequences" -" of lines of text. There are also two generator functions, :func:`!ndiff` " -"and :func:`!restore`, which respectively return a delta from two sequences, " -"or one of the original sequences from a delta. (Grunt work contributed by " -"David Goodger, from ndiff.py code by Tim Peters who then did the " -"generatorization.)" +"producing human-readable lists of changes (a \"delta\") between two " +"sequences of lines of text. There are also two generator functions, :func:`!" +"ndiff` and :func:`!restore`, which respectively return a delta from two " +"sequences, or one of the original sequences from a delta. (Grunt work " +"contributed by David Goodger, from ndiff.py code by Tim Peters who then did " +"the generatorization.)" msgstr "" #: ../../whatsnew/2.2.rst:1029 msgid "" -"New constants :const:`!ascii_letters`, :const:`!ascii_lowercase`, and " -":const:`!ascii_uppercase` were added to the :mod:`string` module. There were" -" several modules in the standard library that used :const:`!string.letters` " +"New constants :const:`!ascii_letters`, :const:`!ascii_lowercase`, and :const:" +"`!ascii_uppercase` were added to the :mod:`string` module. There were " +"several modules in the standard library that used :const:`!string.letters` " "to mean the ranges A-Za-z, but that assumption is incorrect when locales are " -"in use, because :const:`!string.letters` varies depending on the set of legal" -" characters defined by the current locale. The buggy modules have all been " -"fixed to use :const:`!ascii_letters` instead. (Reported by an unknown person;" -" fixed by Fred L. Drake, Jr.)" +"in use, because :const:`!string.letters` varies depending on the set of " +"legal characters defined by the current locale. The buggy modules have all " +"been fixed to use :const:`!ascii_letters` instead. (Reported by an unknown " +"person; fixed by Fred L. Drake, Jr.)" msgstr "" #: ../../whatsnew/2.2.rst:1038 @@ -1525,8 +1531,9 @@ msgstr "" msgid "" "Some of the changes only affect people who deal with the Python interpreter " "at the C level because they're writing Python extension modules, embedding " -"the interpreter, or just hacking on the interpreter itself. If you only write" -" Python code, none of the changes described here will affect you very much." +"the interpreter, or just hacking on the interpreter itself. If you only " +"write Python code, none of the changes described here will affect you very " +"much." msgstr "" #: ../../whatsnew/2.2.rst:1057 @@ -1544,11 +1551,12 @@ msgstr "" #: ../../whatsnew/2.2.rst:1066 msgid "" "Another low-level API, primarily of interest to implementers of Python " -"debuggers and development tools, was added. :c:func:`PyInterpreterState_Head`" -" and :c:func:`PyInterpreterState_Next` let a caller walk through all the " -"existing interpreter objects; :c:func:`PyInterpreterState_ThreadHead` and " -":c:func:`PyThreadState_Next` allow looping over all the thread states for a " -"given interpreter. (Contributed by David Beazley.)" +"debuggers and development tools, was added. :c:func:" +"`PyInterpreterState_Head` and :c:func:`PyInterpreterState_Next` let a caller " +"walk through all the existing interpreter objects; :c:func:" +"`PyInterpreterState_ThreadHead` and :c:func:`PyThreadState_Next` allow " +"looping over all the thread states for a given interpreter. (Contributed by " +"David Beazley.)" msgstr "" #: ../../whatsnew/2.2.rst:1073 @@ -1582,8 +1590,8 @@ msgstr "" #: ../../whatsnew/2.2.rst:1087 msgid "" -"Rename :c:func:`!PyObject_GC_Init` to :c:func:`PyObject_GC_Track` and " -":c:func:`!PyObject_GC_Fini` to :c:func:`PyObject_GC_UnTrack`." +"Rename :c:func:`!PyObject_GC_Init` to :c:func:`PyObject_GC_Track` and :c:" +"func:`!PyObject_GC_Fini` to :c:func:`PyObject_GC_UnTrack`." msgstr "" #: ../../whatsnew/2.2.rst:1090 @@ -1612,8 +1620,8 @@ msgid "" "A different argument parsing function, :c:func:`PyArg_UnpackTuple`, has been " "added that's simpler and presumably faster. Instead of specifying a format " "string, the caller simply gives the minimum and maximum number of arguments " -"expected, and a set of pointers to :c:expr:`PyObject*` variables that will be" -" filled in with argument values." +"expected, and a set of pointers to :c:expr:`PyObject*` variables that will " +"be filled in with argument values." msgstr "" #: ../../whatsnew/2.2.rst:1109 @@ -1621,20 +1629,19 @@ msgid "" "Two new flags :c:macro:`METH_NOARGS` and :c:macro:`METH_O` are available in " "method definition tables to simplify implementation of methods with no " "arguments or a single untyped argument. Calling such methods is more " -"efficient than calling a corresponding method that uses " -":c:macro:`METH_VARARGS`. Also, the old :c:macro:`!METH_OLDARGS` style of " -"writing C methods is now officially deprecated." +"efficient than calling a corresponding method that uses :c:macro:" +"`METH_VARARGS`. Also, the old :c:macro:`!METH_OLDARGS` style of writing C " +"methods is now officially deprecated." msgstr "" #: ../../whatsnew/2.2.rst:1115 msgid "" -"Two new wrapper functions, :c:func:`PyOS_snprintf` and " -":c:func:`PyOS_vsnprintf` were added to provide cross-platform " -"implementations for the relatively new :c:func:`snprintf` and " -":c:func:`vsnprintf` C lib APIs. In contrast to the standard :c:func:`sprintf`" -" and :c:func:`!vsprintf` functions, the Python versions check the bounds of " -"the buffer used to protect against buffer overruns. (Contributed by M.-A. " -"Lemburg.)" +"Two new wrapper functions, :c:func:`PyOS_snprintf` and :c:func:" +"`PyOS_vsnprintf` were added to provide cross-platform implementations for " +"the relatively new :c:func:`snprintf` and :c:func:`vsnprintf` C lib APIs. In " +"contrast to the standard :c:func:`sprintf` and :c:func:`!vsprintf` " +"functions, the Python versions check the bounds of the buffer used to " +"protect against buffer overruns. (Contributed by M.-A. Lemburg.)" msgstr "" #: ../../whatsnew/2.2.rst:1122 @@ -1652,10 +1659,10 @@ msgstr "" #: ../../whatsnew/2.2.rst:1132 msgid "" "As usual there were a bunch of other improvements and bugfixes scattered " -"throughout the source tree. A search through the CVS change logs finds there" -" were 527 patches applied and 683 bugs fixed between Python 2.1 and 2.2; " -"2.2.1 applied 139 patches and fixed 143 bugs; 2.2.2 applied 106 patches and " -"fixed 82 bugs. These figures are likely to be underestimates." +"throughout the source tree. A search through the CVS change logs finds " +"there were 527 patches applied and 683 bugs fixed between Python 2.1 and " +"2.2; 2.2.1 applied 139 patches and fixed 143 bugs; 2.2.2 applied 106 patches " +"and fixed 82 bugs. These figures are likely to be underestimates." msgstr "" #: ../../whatsnew/2.2.rst:1138 @@ -1693,17 +1700,17 @@ msgstr "" #: ../../whatsnew/2.2.rst:1177 msgid "" -"Keyword arguments passed to built-in functions that don't take them now cause" -" a :exc:`TypeError` exception to be raised, with the message \"*function* " -"takes no keyword arguments\"." +"Keyword arguments passed to built-in functions that don't take them now " +"cause a :exc:`TypeError` exception to be raised, with the message " +"\"*function* takes no keyword arguments\"." msgstr "" #: ../../whatsnew/2.2.rst:1181 msgid "" "Weak references, added in Python 2.1 as an extension module, are now part of " "the core because they're used in the implementation of new-style classes. " -"The :exc:`ReferenceError` exception has therefore moved from the " -":mod:`weakref` module to become a built-in exception." +"The :exc:`ReferenceError` exception has therefore moved from the :mod:" +"`weakref` module to become a built-in exception." msgstr "" #: ../../whatsnew/2.2.rst:1186 @@ -1715,8 +1722,8 @@ msgstr "" #: ../../whatsnew/2.2.rst:1190 msgid "" -"An additional *flags* argument has been added to the built-in function " -":func:`compile`, so the behaviour of ``__future__`` statements can now be " +"An additional *flags* argument has been added to the built-in function :func:" +"`compile`, so the behaviour of ``__future__`` statements can now be " "correctly observed in simulated shells, such as those presented by IDLE and " "other development environments. This is described in :pep:`264`. " "(Contributed by Michael Hudson.)" @@ -1728,19 +1735,19 @@ msgid "" "fixed by some minor textual changes to the 2.2 license, so it's now legal to " "embed Python inside a GPLed program again. Note that Python itself is not " "GPLed, but instead is under a license that's essentially equivalent to the " -"BSD license, same as it always was. The license changes were also applied to" -" the Python 2.0.1 and 2.1.1 releases." +"BSD license, same as it always was. The license changes were also applied " +"to the Python 2.0.1 and 2.1.1 releases." msgstr "" #: ../../whatsnew/2.2.rst:1203 msgid "" -"When presented with a Unicode filename on Windows, Python will now convert it" -" to an MBCS encoded string, as used by the Microsoft file APIs. As MBCS is " -"explicitly used by the file APIs, Python's choice of ASCII as the default " +"When presented with a Unicode filename on Windows, Python will now convert " +"it to an MBCS encoded string, as used by the Microsoft file APIs. As MBCS " +"is explicitly used by the file APIs, Python's choice of ASCII as the default " "encoding turns out to be an annoyance. On Unix, the locale's character set " "is used if ``locale.nl_langinfo(CODESET)`` is available. (Windows support " -"was contributed by Mark Hammond with assistance from Marc-André Lemburg. Unix" -" support was added by Martin von Löwis.)" +"was contributed by Mark Hammond with assistance from Marc-André Lemburg. " +"Unix support was added by Martin von Löwis.)" msgstr "" #: ../../whatsnew/2.2.rst:1211 @@ -1758,23 +1765,23 @@ msgstr "" msgid "" "Some features of the object returned by the :func:`!xrange` function are now " "deprecated, and trigger warnings when they're accessed; they'll disappear in " -"Python 2.3. :class:`!xrange` objects tried to pretend they were full sequence" -" types by supporting slicing, sequence multiplication, and the :keyword:`in` " -"operator, but these features were rarely used and therefore buggy. The " -":meth:`!tolist` method and the :attr:`!start`, :attr:`!stop`, and " -":attr:`!step` attributes are also being deprecated. At the C level, the " +"Python 2.3. :class:`!xrange` objects tried to pretend they were full " +"sequence types by supporting slicing, sequence multiplication, and the :" +"keyword:`in` operator, but these features were rarely used and therefore " +"buggy. The :meth:`!tolist` method and the :attr:`!start`, :attr:`!stop`, " +"and :attr:`!step` attributes are also being deprecated. At the C level, the " "fourth argument to the :c:func:`!PyRange_New` function, ``repeat``, has also " "been deprecated." msgstr "" #: ../../whatsnew/2.2.rst:1225 msgid "" -"There were a bunch of patches to the dictionary implementation, mostly to fix" -" potential core dumps if a dictionary contains objects that sneakily changed " -"their hash value, or mutated the dictionary they were contained in. For a " -"while python-dev fell into a gentle rhythm of Michael Hudson finding a case " -"that dumped core, Tim Peters fixing the bug, Michael finding another case, " -"and round and round it went." +"There were a bunch of patches to the dictionary implementation, mostly to " +"fix potential core dumps if a dictionary contains objects that sneakily " +"changed their hash value, or mutated the dictionary they were contained in. " +"For a while python-dev fell into a gentle rhythm of Michael Hudson finding a " +"case that dumped core, Tim Peters fixing the bug, Michael finding another " +"case, and round and round it went." msgstr "" #: ../../whatsnew/2.2.rst:1232 @@ -1786,10 +1793,10 @@ msgstr "" #: ../../whatsnew/2.2.rst:1236 msgid "" -"Another Windows enhancement: Wise Solutions generously offered PythonLabs use" -" of their InstallerMaster 8.1 system. Earlier PythonLabs Windows installers " -"used Wise 5.0a, which was beginning to show its age. (Packaged up by Tim " -"Peters.)" +"Another Windows enhancement: Wise Solutions generously offered PythonLabs " +"use of their InstallerMaster 8.1 system. Earlier PythonLabs Windows " +"installers used Wise 5.0a, which was beginning to show its age. (Packaged " +"up by Tim Peters.)" msgstr "" #: ../../whatsnew/2.2.rst:1240 @@ -1805,18 +1812,18 @@ msgstr "" #: ../../whatsnew/2.2.rst:1246 msgid "" "On platforms where Python uses the C :c:func:`dlopen` function to load " -"extension modules, it's now possible to set the flags used by " -":c:func:`dlopen` using the :func:`sys.getdlopenflags` and " -":func:`sys.setdlopenflags` functions. (Contributed by Bram Stolk.)" +"extension modules, it's now possible to set the flags used by :c:func:" +"`dlopen` using the :func:`sys.getdlopenflags` and :func:`sys.setdlopenflags` " +"functions. (Contributed by Bram Stolk.)" msgstr "" #: ../../whatsnew/2.2.rst:1251 msgid "" "The :func:`pow` built-in function no longer supports 3 arguments when " -"floating-point numbers are supplied. ``pow(x, y, z)`` returns ``(x**y) % z``," -" but this is never useful for floating-point numbers, and the final result " -"varies unpredictably depending on the platform. A call such as ``pow(2.0, " -"8.0, 7.0)`` will now raise a :exc:`TypeError` exception." +"floating-point numbers are supplied. ``pow(x, y, z)`` returns ``(x**y) % " +"z``, but this is never useful for floating-point numbers, and the final " +"result varies unpredictably depending on the platform. A call such as " +"``pow(2.0, 8.0, 7.0)`` will now raise a :exc:`TypeError` exception." msgstr "" #: ../../whatsnew/2.2.rst:1261 @@ -1825,12 +1832,12 @@ msgstr "" #: ../../whatsnew/2.2.rst:1263 msgid "" -"The author would like to thank the following people for offering suggestions," -" corrections and assistance with various drafts of this article: Fred " -"Bremmer, Keith Briggs, Andrew Dalke, Fred L. Drake, Jr., Carel Fellinger, " -"David Goodger, Mark Hammond, Stephen Hansen, Michael Hudson, Jack Jansen, " -"Marc-André Lemburg, Martin von Löwis, Fredrik Lundh, Michael McLay, Nick " -"Mathewson, Paul Moore, Gustavo Niemeyer, Don O'Donnell, Joonas Paalasma, Tim " -"Peters, Jens Quade, Tom Reinhardt, Neil Schemenauer, Guido van Rossum, Greg " -"Ward, Edward Welbourne." +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Fred Bremmer, Keith Briggs, Andrew Dalke, Fred L. Drake, Jr., Carel " +"Fellinger, David Goodger, Mark Hammond, Stephen Hansen, Michael Hudson, Jack " +"Jansen, Marc-André Lemburg, Martin von Löwis, Fredrik Lundh, Michael McLay, " +"Nick Mathewson, Paul Moore, Gustavo Niemeyer, Don O'Donnell, Joonas " +"Paalasma, Tim Peters, Jens Quade, Tom Reinhardt, Neil Schemenauer, Guido van " +"Rossum, Greg Ward, Edward Welbourne." msgstr "" diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index 39ebfab7..937dc8c9 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -44,17 +44,17 @@ msgid "" "2.2, adding various small but useful enhancements to the core language, and " "expanding the standard library. The new object model introduced in the " "previous version has benefited from 18 months of bugfixes and from " -"optimization efforts that have improved the performance of new-style classes." -" A few new built-in functions have been added such as :func:`sum` and " -":func:`enumerate`. The :keyword:`in` operator can now be used for substring " -"searches (e.g. ``\"ab\" in \"abc\"`` returns :const:`True`)." +"optimization efforts that have improved the performance of new-style " +"classes. A few new built-in functions have been added such as :func:`sum` " +"and :func:`enumerate`. The :keyword:`in` operator can now be used for " +"substring searches (e.g. ``\"ab\" in \"abc\"`` returns :const:`True`)." msgstr "" #: ../../whatsnew/2.3.rst:23 msgid "" -"Some of the many new library features include Boolean, set, heap, and " -"date/time data types, the ability to import modules from ZIP-format archives," -" metadata support for the long-awaited Python catalog, an updated version of " +"Some of the many new library features include Boolean, set, heap, and date/" +"time data types, the ability to import modules from ZIP-format archives, " +"metadata support for the long-awaited Python catalog, an updated version of " "IDLE, and modules for logging messages, wrapping text, parsing CSV files, " "processing command-line options, using BerkeleyDB databases... the list of " "new and enhanced modules is lengthy." @@ -107,11 +107,11 @@ msgstr "" #: ../../whatsnew/2.3.rst:66 msgid "" -"The union and intersection of sets can be computed with the " -":meth:`~frozenset.union` and :meth:`~frozenset.intersection` methods; an " -"alternative notation uses the bitwise operators ``&`` and ``|``. Mutable sets" -" also have in-place versions of these methods, :meth:`!union_update` and " -":meth:`~set.intersection_update`. ::" +"The union and intersection of sets can be computed with the :meth:" +"`~frozenset.union` and :meth:`~frozenset.intersection` methods; an " +"alternative notation uses the bitwise operators ``&`` and ``|``. Mutable " +"sets also have in-place versions of these methods, :meth:`!union_update` " +"and :meth:`~set.intersection_update`. ::" msgstr "" #: ../../whatsnew/2.3.rst:71 @@ -134,12 +134,12 @@ msgstr "" #: ../../whatsnew/2.3.rst:86 msgid "" -"It's also possible to take the symmetric difference of two sets. This is the" -" set of all elements in the union that aren't in the intersection. Another " -"way of putting it is that the symmetric difference contains all elements that" -" are in exactly one set. Again, there's an alternative notation (``^``), and" -" an in-place version with the ungainly name " -":meth:`~set.symmetric_difference_update`. ::" +"It's also possible to take the symmetric difference of two sets. This is " +"the set of all elements in the union that aren't in the intersection. " +"Another way of putting it is that the symmetric difference contains all " +"elements that are in exactly one set. Again, there's an alternative " +"notation (``^``), and an in-place version with the ungainly name :meth:`~set." +"symmetric_difference_update`. ::" msgstr "" #: ../../whatsnew/2.3.rst:92 @@ -155,8 +155,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:100 msgid "" -"There are also :meth:`!issubset` and :meth:`!issuperset` methods for checking" -" whether one set is a subset or superset of another::" +"There are also :meth:`!issubset` and :meth:`!issuperset` methods for " +"checking whether one set is a subset or superset of another::" msgstr "" #: ../../whatsnew/2.3.rst:103 @@ -188,13 +188,13 @@ msgstr "" #: ../../whatsnew/2.3.rst:128 msgid "" -"In Python 2.2, generators were added as an optional feature, to be enabled by" -" a ``from __future__ import generators`` directive. In 2.3 generators no " +"In Python 2.2, generators were added as an optional feature, to be enabled " +"by a ``from __future__ import generators`` directive. In 2.3 generators no " "longer need to be specially enabled, and are now always present; this means " -"that :keyword:`yield` is now always a keyword. The rest of this section is a" -" copy of the description of generators from the \"What's New in Python 2.2\" " -"document; if you read it back when Python 2.2 came out, you can skip the rest" -" of this section." +"that :keyword:`yield` is now always a keyword. The rest of this section is " +"a copy of the description of generators from the \"What's New in Python " +"2.2\" document; if you read it back when Python 2.2 came out, you can skip " +"the rest of this section." msgstr "" #: ../../whatsnew/2.3.rst:136 @@ -223,27 +223,26 @@ msgstr "" #: ../../whatsnew/2.3.rst:151 msgid "" -"A new keyword, :keyword:`yield`, was introduced for generators. Any function" -" containing a :keyword:`!yield` statement is a generator function; this is " -"detected by Python's bytecode compiler which compiles the function specially " -"as a result." +"A new keyword, :keyword:`yield`, was introduced for generators. Any " +"function containing a :keyword:`!yield` statement is a generator function; " +"this is detected by Python's bytecode compiler which compiles the function " +"specially as a result." msgstr "" #: ../../whatsnew/2.3.rst:156 msgid "" -"When you call a generator function, it doesn't return a single value; instead" -" it returns a generator object that supports the iterator protocol. On " -"executing the :keyword:`yield` statement, the generator outputs the value of " -"``i``, similar to a :keyword:`return` statement. The big difference between " -":keyword:`!yield` and a :keyword:`!return` statement is that on reaching a " -":keyword:`!yield` the generator's state of execution is suspended and local " -"variables are preserved. On the next call to the generator's ``.next()`` " -"method, the function will resume executing immediately after the " -":keyword:`!yield` statement. (For complicated reasons, the :keyword:`!yield`" -" statement isn't allowed inside the :keyword:`try` block of a " -":keyword:`!try`...\\ :keyword:`!finally` statement; read :pep:`255` for a " -"full explanation of the interaction between :keyword:`!yield` and " -"exceptions.)" +"When you call a generator function, it doesn't return a single value; " +"instead it returns a generator object that supports the iterator protocol. " +"On executing the :keyword:`yield` statement, the generator outputs the value " +"of ``i``, similar to a :keyword:`return` statement. The big difference " +"between :keyword:`!yield` and a :keyword:`!return` statement is that on " +"reaching a :keyword:`!yield` the generator's state of execution is suspended " +"and local variables are preserved. On the next call to the generator's ``." +"next()`` method, the function will resume executing immediately after the :" +"keyword:`!yield` statement. (For complicated reasons, the :keyword:`!yield` " +"statement isn't allowed inside the :keyword:`try` block of a :keyword:`!" +"try`...\\ :keyword:`!finally` statement; read :pep:`255` for a full " +"explanation of the interaction between :keyword:`!yield` and exceptions.)" msgstr "" #: ../../whatsnew/2.3.rst:169 @@ -276,26 +275,26 @@ msgstr "" #: ../../whatsnew/2.3.rst:189 msgid "" -"Inside a generator function, the :keyword:`return` statement can only be used" -" without a value, and signals the end of the procession of values; afterwards" -" the generator cannot return any further values. :keyword:`!return` with a " -"value, such as ``return 5``, is a syntax error inside a generator function. " -"The end of the generator's results can also be indicated by raising " -":exc:`StopIteration` manually, or by just letting the flow of execution fall " -"off the bottom of the function." +"Inside a generator function, the :keyword:`return` statement can only be " +"used without a value, and signals the end of the procession of values; " +"afterwards the generator cannot return any further values. :keyword:`!" +"return` with a value, such as ``return 5``, is a syntax error inside a " +"generator function. The end of the generator's results can also be " +"indicated by raising :exc:`StopIteration` manually, or by just letting the " +"flow of execution fall off the bottom of the function." msgstr "" #: ../../whatsnew/2.3.rst:197 msgid "" -"You could achieve the effect of generators manually by writing your own class" -" and storing all the local variables of the generator as instance variables." -" For example, returning a list of integers could be done by setting " -"``self.count`` to 0, and having the :meth:`next` method increment " +"You could achieve the effect of generators manually by writing your own " +"class and storing all the local variables of the generator as instance " +"variables. For example, returning a list of integers could be done by " +"setting ``self.count`` to 0, and having the :meth:`next` method increment " "``self.count`` and return it. However, for a moderately complicated " -"generator, writing a corresponding class would be much messier. " -":file:`Lib/test/test_generators.py` contains a number of more interesting " -"examples. The simplest one implements an in-order traversal of a tree using " -"generators recursively. ::" +"generator, writing a corresponding class would be much messier. :file:`Lib/" +"test/test_generators.py` contains a number of more interesting examples. " +"The simplest one implements an in-order traversal of a tree using generators " +"recursively. ::" msgstr "" #: ../../whatsnew/2.3.rst:206 @@ -324,9 +323,9 @@ msgid "" "The idea of generators comes from other programming languages, especially " "Icon (https://www2.cs.arizona.edu/icon/), where the idea of generators is " "central. In Icon, every expression and function call behaves like a " -"generator. One example from \"An Overview of the Icon Programming Language\"" -" at https://www2.cs.arizona.edu/icon/docs/ipd266.htm gives an idea of what " -"this looks like::" +"generator. One example from \"An Overview of the Icon Programming " +"Language\" at https://www2.cs.arizona.edu/icon/docs/ipd266.htm gives an idea " +"of what this looks like::" msgstr "" #: ../../whatsnew/2.3.rst:227 @@ -337,11 +336,12 @@ msgstr "" #: ../../whatsnew/2.3.rst:230 msgid "" -"In Icon the :func:`!find` function returns the indexes at which the substring" -" \"or\" is found: 3, 23, 33. In the :keyword:`if` statement, ``i`` is first " -"assigned a value of 3, but 3 is less than 5, so the comparison fails, and " -"Icon retries it with the second value of 23. 23 is greater than 5, so the " -"comparison now succeeds, and the code prints the value 23 to the screen." +"In Icon the :func:`!find` function returns the indexes at which the " +"substring \"or\" is found: 3, 23, 33. In the :keyword:`if` statement, ``i`` " +"is first assigned a value of 3, but 3 is less than 5, so the comparison " +"fails, and Icon retries it with the second value of 23. 23 is greater than " +"5, so the comparison now succeeds, and the code prints the value 23 to the " +"screen." msgstr "" #: ../../whatsnew/2.3.rst:236 @@ -350,8 +350,8 @@ msgid "" "concept. Generators are considered part of the core Python language, but " "learning or using them isn't compulsory; if they don't solve any problems " "that you have, feel free to ignore them. One novel feature of Python's " -"interface as compared to Icon's is that a generator's state is represented as" -" a concrete object (the iterator) that can be passed around to other " +"interface as compared to Icon's is that a generator's state is represented " +"as a concrete object (the iterator) that can be passed around to other " "functions or stored in a data structure." msgstr "" @@ -373,9 +373,9 @@ msgstr "" #: ../../whatsnew/2.3.rst:259 msgid "" "Python source files can now be declared as being in different character set " -"encodings. Encodings are declared by including a specially formatted comment" -" in the first or second line of the source file. For example, a UTF-8 file " -"can be declared with::" +"encodings. Encodings are declared by including a specially formatted " +"comment in the first or second line of the source file. For example, a " +"UTF-8 file can be declared with::" msgstr "" #: ../../whatsnew/2.3.rst:264 @@ -387,10 +387,10 @@ msgstr "" #: ../../whatsnew/2.3.rst:267 msgid "" "Without such an encoding declaration, the default encoding used is 7-bit " -"ASCII. Executing or importing modules that contain string literals with 8-bit" -" characters and have no encoding declaration will result in a " -":exc:`DeprecationWarning` being signalled by Python 2.3; in 2.4 this will be " -"a syntax error." +"ASCII. Executing or importing modules that contain string literals with 8-" +"bit characters and have no encoding declaration will result in a :exc:" +"`DeprecationWarning` being signalled by Python 2.3; in 2.4 this will be a " +"syntax error." msgstr "" #: ../../whatsnew/2.3.rst:273 @@ -419,8 +419,8 @@ msgstr "" msgid "" "The new :mod:`zipimport` module adds support for importing modules from a " "ZIP-format archive. You don't need to import the module explicitly; it will " -"be automatically imported if a ZIP archive's filename is added to " -"``sys.path``. For example:" +"be automatically imported if a ZIP archive's filename is added to ``sys." +"path``. For example:" msgstr "" #: ../../whatsnew/2.3.rst:296 @@ -435,7 +435,8 @@ msgid "" "amk@nyman:~/src/python$ ./python\n" "Python 2.3 (#1, Aug 1 2003, 19:54:32)\n" ">>> import sys\n" -">>> sys.path.insert(0, '/tmp/example.zip') # Add .zip file to front of path\n" +">>> sys.path.insert(0, '/tmp/example.zip') # Add .zip file to front of " +"path\n" ">>> import jwzthreading\n" ">>> jwzthreading.__file__\n" "'/tmp/example.zip/jwzthreading.py'\n" @@ -445,8 +446,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:314 msgid "" "An entry in ``sys.path`` can now be the filename of a ZIP archive. The ZIP " -"archive can contain any kind of files, but only files named :file:`\\*.py`, " -":file:`\\*.pyc`, or :file:`\\*.pyo` can be imported. If an archive only " +"archive can contain any kind of files, but only files named :file:`\\*.py`, :" +"file:`\\*.pyc`, or :file:`\\*.pyo` can be imported. If an archive only " "contains :file:`\\*.py` files, Python will not attempt to modify the archive " "by adding the corresponding :file:`\\*.pyc` file, meaning that if a ZIP " "archive doesn't contain :file:`\\*.pyc` files, importing may be rather slow." @@ -467,9 +468,9 @@ msgstr "" msgid "" "Written by James C. Ahlstrom, who also provided an implementation. Python " "2.3 follows the specification in :pep:`273`, but uses an implementation " -"written by Just van Rossum that uses the import hooks described in " -":pep:`302`. See section :ref:`section-pep302` for a description of the new " -"import hooks." +"written by Just van Rossum that uses the import hooks described in :pep:" +"`302`. See section :ref:`section-pep302` for a description of the new import " +"hooks." msgstr "" #: ../../whatsnew/2.3.rst:338 @@ -478,19 +479,18 @@ msgstr "" #: ../../whatsnew/2.3.rst:340 msgid "" -"On Windows NT, 2000, and XP, the system stores file names as Unicode strings." -" Traditionally, Python has represented file names as byte strings, which is " -"inadequate because it renders some file names inaccessible." +"On Windows NT, 2000, and XP, the system stores file names as Unicode " +"strings. Traditionally, Python has represented file names as byte strings, " +"which is inadequate because it renders some file names inaccessible." msgstr "" #: ../../whatsnew/2.3.rst:344 msgid "" "Python now allows using arbitrary Unicode strings (within the limitations of " -"the file system) for all functions that expect file names, most notably the " -":func:`open` built-in function. If a Unicode string is passed to " -":func:`os.listdir`, Python now returns a list of Unicode strings. A new " -"function, :func:`!os.getcwdu`, returns the current directory as a Unicode " -"string." +"the file system) for all functions that expect file names, most notably the :" +"func:`open` built-in function. If a Unicode string is passed to :func:`os." +"listdir`, Python now returns a list of Unicode strings. A new function, :" +"func:`!os.getcwdu`, returns the current directory as a Unicode string." msgstr "" #: ../../whatsnew/2.3.rst:350 @@ -502,10 +502,10 @@ msgstr "" #: ../../whatsnew/2.3.rst:353 msgid "" "Other systems also allow Unicode strings as file names but convert them to " -"byte strings before passing them to the system, which can cause a " -":exc:`UnicodeError` to be raised. Applications can test whether arbitrary " -"Unicode strings are supported as file names by checking " -":const:`os.path.supports_unicode_filenames`, a Boolean value." +"byte strings before passing them to the system, which can cause a :exc:" +"`UnicodeError` to be raised. Applications can test whether arbitrary Unicode " +"strings are supported as file names by checking :const:`os.path." +"supports_unicode_filenames`, a Boolean value." msgstr "" #: ../../whatsnew/2.3.rst:359 @@ -540,25 +540,25 @@ msgstr "" msgid "" "Python's file objects can now support end of line conventions other than the " "one followed by the platform on which Python is running. Opening a file with " -"the mode ``'U'`` or ``'rU'`` will open a file for reading in :term:`universal" -" newlines` mode. All three line ending conventions will be translated to a " -"``'\\n'`` in the strings returned by the various file methods such as " -":meth:`!read` and :meth:`!readline`." +"the mode ``'U'`` or ``'rU'`` will open a file for reading in :term:" +"`universal newlines` mode. All three line ending conventions will be " +"translated to a ``'\\n'`` in the strings returned by the various file " +"methods such as :meth:`!read` and :meth:`!readline`." msgstr "" #: ../../whatsnew/2.3.rst:391 msgid "" "Universal newline support is also used when importing modules and when " -"executing a file with the :func:`!execfile` function. This means that Python" -" modules can be shared between all three operating systems without needing to" -" convert the line-endings." +"executing a file with the :func:`!execfile` function. This means that " +"Python modules can be shared between all three operating systems without " +"needing to convert the line-endings." msgstr "" #: ../../whatsnew/2.3.rst:396 msgid "" -"This feature can be disabled when compiling Python by specifying the " -":option:`!--without-universal-newlines` switch when running Python's " -":program:`configure` script." +"This feature can be disabled when compiling Python by specifying the :option:" +"`!--without-universal-newlines` switch when running Python's :program:" +"`configure` script." msgstr "" #: ../../whatsnew/2.3.rst:403 @@ -618,9 +618,9 @@ msgstr "" #: ../../whatsnew/2.3.rst:444 msgid "" -"A standard package for writing logs, :mod:`logging`, has been added to Python" -" 2.3. It provides a powerful and flexible mechanism for generating logging " -"output which can then be filtered and processed in various ways. A " +"A standard package for writing logs, :mod:`logging`, has been added to " +"Python 2.3. It provides a powerful and flexible mechanism for generating " +"logging output which can then be filtered and processed in various ways. A " "configuration file written in a standard format can be used to control the " "logging behavior of a program. Python includes handlers that will write log " "records to standard error or to a file or socket, send them to the system " @@ -632,16 +632,15 @@ msgstr "" msgid "" "The :class:`~logging.Logger` class is the primary class. Most application " "code will deal with one or more :class:`~logging.Logger` objects, each one " -"used by a particular subsystem of the application. Each " -":class:`~logging.Logger` is identified by a name, and names are organized " -"into a hierarchy using ``.`` as the component separator. For example, you " -"might have :class:`~logging.Logger` instances named ``server``, " -"``server.auth`` and ``server.network``. The latter two instances are below " -"``server`` in the hierarchy. This means that if you turn up the verbosity " -"for ``server`` or direct ``server`` messages to a different handler, the " -"changes will also apply to records logged to ``server.auth`` and " -"``server.network``. There's also a root :class:`~logging.Logger` that's the " -"parent of all other loggers." +"used by a particular subsystem of the application. Each :class:`~logging." +"Logger` is identified by a name, and names are organized into a hierarchy " +"using ``.`` as the component separator. For example, you might have :class:" +"`~logging.Logger` instances named ``server``, ``server.auth`` and ``server." +"network``. The latter two instances are below ``server`` in the hierarchy. " +"This means that if you turn up the verbosity for ``server`` or direct " +"``server`` messages to a different handler, the changes will also apply to " +"records logged to ``server.auth`` and ``server.network``. There's also a " +"root :class:`~logging.Logger` that's the parent of all other loggers." msgstr "" #: ../../whatsnew/2.3.rst:464 @@ -676,8 +675,8 @@ msgstr "" msgid "" "In the default configuration, informational and debugging messages are " "suppressed and the output is sent to standard error. You can enable the " -"display of informational and debugging messages by calling the " -":meth:`~logging.Logger.setLevel` method on the root logger." +"display of informational and debugging messages by calling the :meth:" +"`~logging.Logger.setLevel` method on the root logger." msgstr "" #: ../../whatsnew/2.3.rst:486 @@ -715,9 +714,10 @@ msgstr "" #: ../../whatsnew/2.3.rst:508 msgid "" -"Slightly more advanced programs will use a logger other than the root logger." -" The ``getLogger(name)`` function is used to get a particular log, creating " -"it if it doesn't exist yet. ``getLogger(None)`` returns the root logger. ::" +"Slightly more advanced programs will use a logger other than the root " +"logger. The ``getLogger(name)`` function is used to get a particular log, " +"creating it if it doesn't exist yet. ``getLogger(None)`` returns the root " +"logger. ::" msgstr "" #: ../../whatsnew/2.3.rst:512 @@ -733,9 +733,9 @@ msgstr "" #: ../../whatsnew/2.3.rst:519 msgid "" "Log records are usually propagated up the hierarchy, so a message logged to " -"``server.auth`` is also seen by ``server`` and ``root``, but a " -":class:`~logging.Logger` can prevent this by setting its " -":attr:`~logging.Logger.propagate` attribute to :const:`False`." +"``server.auth`` is also seen by ``server`` and ``root``, but a :class:" +"`~logging.Logger` can prevent this by setting its :attr:`~logging.Logger." +"propagate` attribute to :const:`False`." msgstr "" #: ../../whatsnew/2.3.rst:523 @@ -744,12 +744,12 @@ msgid "" "customized. When a :class:`~logging.Logger` instance is told to log a " "message, it creates a :class:`~logging.LogRecord` instance that is sent to " "any number of different :class:`~logging.Handler` instances. Loggers and " -"handlers can also have an attached list of filters, and each filter can cause" -" the :class:`~logging.LogRecord` to be ignored or can modify the record " -"before passing it along. When they're finally output, " -":class:`~logging.LogRecord` instances are converted to text by a " -":class:`~logging.Formatter` class. All of these classes can be replaced by " -"your own specially written classes." +"handlers can also have an attached list of filters, and each filter can " +"cause the :class:`~logging.LogRecord` to be ignored or can modify the record " +"before passing it along. When they're finally output, :class:`~logging." +"LogRecord` instances are converted to text by a :class:`~logging.Formatter` " +"class. All of these classes can be replaced by your own specially written " +"classes." msgstr "" #: ../../whatsnew/2.3.rst:533 @@ -775,18 +775,18 @@ msgstr "" #: ../../whatsnew/2.3.rst:552 msgid "" -"A Boolean type was added to Python 2.3. Two new constants were added to the " -":mod:`!__builtin__` module, :const:`True` and :const:`False`. (:const:`True`" -" and :const:`False` constants were added to the built-ins in Python 2.2.1, " -"but the 2.2.1 versions are simply set to integer values of 1 and 0 and aren't" -" a different type.)" +"A Boolean type was added to Python 2.3. Two new constants were added to " +"the :mod:`!__builtin__` module, :const:`True` and :const:`False`. (:const:" +"`True` and :const:`False` constants were added to the built-ins in Python " +"2.2.1, but the 2.2.1 versions are simply set to integer values of 1 and 0 " +"and aren't a different type.)" msgstr "" #: ../../whatsnew/2.3.rst:558 msgid "" -"The type object for this new type is named :class:`bool`; the constructor for" -" it takes any Python value and converts it to :const:`True` or " -":const:`False`. ::" +"The type object for this new type is named :class:`bool`; the constructor " +"for it takes any Python value and converts it to :const:`True` or :const:" +"`False`. ::" msgstr "" #: ../../whatsnew/2.3.rst:561 @@ -803,8 +803,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:570 msgid "" -"Most of the standard library modules and built-in functions have been changed" -" to return Booleans. ::" +"Most of the standard library modules and built-in functions have been " +"changed to return Booleans. ::" msgstr "" #: ../../whatsnew/2.3.rst:573 @@ -824,21 +824,21 @@ msgid "" "For example, if you're reading a function and encounter the statement " "``return 1``, you might wonder whether the ``1`` represents a Boolean truth " "value, an index, or a coefficient that multiplies some other quantity. If " -"the statement is ``return True``, however, the meaning of the return value is" -" quite clear." +"the statement is ``return True``, however, the meaning of the return value " +"is quite clear." msgstr "" #: ../../whatsnew/2.3.rst:587 msgid "" "Python's Booleans were *not* added for the sake of strict type-checking. A " "very strict language such as Pascal would also prevent you performing " -"arithmetic with Booleans, and would require that the expression in an " -":keyword:`if` statement always evaluate to a Boolean result. Python is not " -"this strict and never will be, as :pep:`285` explicitly says. This means you" -" can still use any expression in an :keyword:`!if` statement, even ones that " -"evaluate to a list or tuple or some random object. The Boolean type is a " -"subclass of the :class:`int` class so that arithmetic using a Boolean still " -"works. ::" +"arithmetic with Booleans, and would require that the expression in an :" +"keyword:`if` statement always evaluate to a Boolean result. Python is not " +"this strict and never will be, as :pep:`285` explicitly says. This means " +"you can still use any expression in an :keyword:`!if` statement, even ones " +"that evaluate to a list or tuple or some random object. The Boolean type is " +"a subclass of the :class:`int` class so that arithmetic using a Boolean " +"still works. ::" msgstr "" #: ../../whatsnew/2.3.rst:596 @@ -855,10 +855,10 @@ msgstr "" #: ../../whatsnew/2.3.rst:605 msgid "" -"To sum up :const:`True` and :const:`False` in a sentence: they're alternative" -" ways to spell the integer values 1 and 0, with the single difference that " -":func:`str` and :func:`repr` return the strings ``'True'`` and ``'False'`` " -"instead of ``'1'`` and ``'0'``." +"To sum up :const:`True` and :const:`False` in a sentence: they're " +"alternative ways to spell the integer values 1 and 0, with the single " +"difference that :func:`str` and :func:`repr` return the strings ``'True'`` " +"and ``'False'`` instead of ``'1'`` and ``'0'``." msgstr "" #: ../../whatsnew/2.3.rst:613 @@ -875,25 +875,26 @@ msgstr "" #: ../../whatsnew/2.3.rst:622 msgid "" -"When encoding a Unicode string into a byte string, unencodable characters may" -" be encountered. So far, Python has allowed specifying the error processing " -"as either \"strict\" (raising :exc:`UnicodeError`), \"ignore\" (skipping the " -"character), or \"replace\" (using a question mark in the output string), with" -" \"strict\" being the default behavior. It may be desirable to specify " -"alternative processing of such errors, such as inserting an XML character " -"reference or HTML entity reference into the converted string." +"When encoding a Unicode string into a byte string, unencodable characters " +"may be encountered. So far, Python has allowed specifying the error " +"processing as either \"strict\" (raising :exc:`UnicodeError`), " +"\"ignore\" (skipping the character), or \"replace\" (using a question mark " +"in the output string), with \"strict\" being the default behavior. It may be " +"desirable to specify alternative processing of such errors, such as " +"inserting an XML character reference or HTML entity reference into the " +"converted string." msgstr "" #: ../../whatsnew/2.3.rst:630 msgid "" "Python now has a flexible framework to add different processing strategies. " "New error handlers can be added with :func:`codecs.register_error`, and " -"codecs then can access the error handler with :func:`codecs.lookup_error`. An" -" equivalent C API has been added for codecs written in C. The error handler " -"gets the necessary state information such as the string being converted, the " -"position in the string where the error was detected, and the target encoding." -" The handler can then either raise an exception or return a replacement " -"string." +"codecs then can access the error handler with :func:`codecs.lookup_error`. " +"An equivalent C API has been added for codecs written in C. The error " +"handler gets the necessary state information such as the string being " +"converted, the position in the string where the error was detected, and the " +"target encoding. The handler can then either raise an exception or return a " +"replacement string." msgstr "" #: ../../whatsnew/2.3.rst:638 @@ -925,8 +926,8 @@ msgstr "" msgid "" "The heart of the catalog is the new Distutils :command:`register` command. " "Running ``python setup.py register`` will collect the metadata describing a " -"package, such as its name, version, maintainer, description, &c., and send it" -" to a central catalog server. The resulting catalog is available from " +"package, such as its name, version, maintainer, description, &c., and send " +"it to a central catalog server. The resulting catalog is available from " "https://pypi.org." msgstr "" @@ -940,8 +941,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:669 msgid "" -"Here's an example :file:`setup.py` with classifiers, written to be compatible" -" with older versions of the Distutils::" +"Here's an example :file:`setup.py` with classifiers, written to be " +"compatible with older versions of the Distutils::" msgstr "" #: ../../whatsnew/2.3.rst:672 @@ -983,12 +984,12 @@ msgstr "" #: ../../whatsnew/2.3.rst:705 msgid "" -"While it's been possible to write custom import hooks ever since the " -":mod:`!ihooks` module was introduced in Python 1.3, no one has ever been " -"really happy with it because writing new import hooks is difficult and messy." -" There have been various proposed alternatives such as the :mod:`!imputil` " -"and :mod:`!iu` modules, but none of them has ever gained much acceptance, and" -" none of them were easily usable from C code." +"While it's been possible to write custom import hooks ever since the :mod:`!" +"ihooks` module was introduced in Python 1.3, no one has ever been really " +"happy with it because writing new import hooks is difficult and messy. " +"There have been various proposed alternatives such as the :mod:`!imputil` " +"and :mod:`!iu` modules, but none of them has ever gained much acceptance, " +"and none of them were easily usable from C code." msgstr "" #: ../../whatsnew/2.3.rst:712 @@ -1002,31 +1003,31 @@ msgstr "" msgid "" "``sys.path_hooks`` is a list of callable objects; most often they'll be " "classes. Each callable takes a string containing a path and either returns " -"an importer object that will handle imports from this path or raises an " -":exc:`ImportError` exception if it can't handle this path." +"an importer object that will handle imports from this path or raises an :exc:" +"`ImportError` exception if it can't handle this path." msgstr "" #: ../../whatsnew/2.3.rst:721 msgid "" -"``sys.path_importer_cache`` caches importer objects for each path, so " -"``sys.path_hooks`` will only need to be traversed once for each path." +"``sys.path_importer_cache`` caches importer objects for each path, so ``sys." +"path_hooks`` will only need to be traversed once for each path." msgstr "" #: ../../whatsnew/2.3.rst:724 msgid "" -"``sys.meta_path`` is a list of importer objects that will be traversed before" -" ``sys.path`` is checked. This list is initially empty, but user code can " -"add objects to it. Additional built-in and frozen modules can be imported by" -" an object added to this list." +"``sys.meta_path`` is a list of importer objects that will be traversed " +"before ``sys.path`` is checked. This list is initially empty, but user code " +"can add objects to it. Additional built-in and frozen modules can be " +"imported by an object added to this list." msgstr "" #: ../../whatsnew/2.3.rst:729 msgid "" "Importer objects must have a single method, ``find_module(fullname, " "path=None)``. *fullname* will be a module or package name, e.g. ``string`` " -"or ``distutils.core``. :meth:`!find_module` must return a loader object that" -" has a single method, ``load_module(fullname)``, that creates and returns the" -" corresponding module object." +"or ``distutils.core``. :meth:`!find_module` must return a loader object " +"that has a single method, ``load_module(fullname)``, that creates and " +"returns the corresponding module object." msgstr "" #: ../../whatsnew/2.3.rst:735 @@ -1121,8 +1122,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:797 msgid "" "Different dialects of comma-separated files can be defined and registered; " -"currently there are two dialects, both used by Microsoft Excel. A separate " -":class:`csv.writer` class will generate comma-separated files from a " +"currently there are two dialects, both used by Microsoft Excel. A separate :" +"class:`csv.writer` class will generate comma-separated files from a " "succession of tuples or lists, quoting strings that contain the delimiter." msgstr "" @@ -1153,10 +1154,10 @@ msgstr "" msgid "" "The solution was to invent a new pickle protocol. The :func:`pickle.dumps` " "function has supported a text-or-binary flag for a long time. In 2.3, this " -"flag is redefined from a Boolean to an integer: 0 is the old text-mode pickle" -" format, 1 is the old binary format, and now 2 is a new 2.3-specific format." -" A new constant, :const:`pickle.HIGHEST_PROTOCOL`, can be used to select the" -" fanciest protocol available." +"flag is redefined from a Boolean to an integer: 0 is the old text-mode " +"pickle format, 1 is the old binary format, and now 2 is a new 2.3-specific " +"format. A new constant, :const:`pickle.HIGHEST_PROTOCOL`, can be used to " +"select the fanciest protocol available." msgstr "" #: ../../whatsnew/2.3.rst:830 @@ -1171,10 +1172,10 @@ msgstr "" #: ../../whatsnew/2.3.rst:836 msgid "" "To reduce the pickling overhead for new-style classes, a new interface for " -"customizing pickling was added using three special methods: " -":meth:`~object.__getstate__`, :meth:`~object.__setstate__`, and " -":meth:`~object.__getnewargs__`. Consult :pep:`307` for the full semantics " -"of these methods." +"customizing pickling was added using three special methods: :meth:`~object." +"__getstate__`, :meth:`~object.__setstate__`, and :meth:`~object." +"__getnewargs__`. Consult :pep:`307` for the full semantics of these " +"methods." msgstr "" #: ../../whatsnew/2.3.rst:841 @@ -1210,8 +1211,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:868 msgid "" -"For example, you can now easily extract the elements of a list that have even" -" indexes::" +"For example, you can now easily extract the elements of a list that have " +"even indexes::" msgstr "" #: ../../whatsnew/2.3.rst:871 @@ -1249,8 +1250,8 @@ msgstr "" msgid "" "If you have a mutable sequence such as a list or an array you can assign to " "or delete an extended slice, but there are some differences between " -"assignment to extended and regular slices. Assignment to a regular slice can" -" be used to change the length of the sequence::" +"assignment to extended and regular slices. Assignment to a regular slice " +"can be used to change the length of the sequence::" msgstr "" #: ../../whatsnew/2.3.rst:893 @@ -1266,8 +1267,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:900 msgid "" "Extended slices aren't this flexible. When assigning to an extended slice, " -"the list on the right hand side of the statement must contain the same number" -" of items as the slice it is replacing::" +"the list on the right hand side of the statement must contain the same " +"number of items as the slice it is replacing::" msgstr "" #: ../../whatsnew/2.3.rst:904 @@ -1328,11 +1329,11 @@ msgstr "" msgid "" "To simplify implementing sequences that support extended slicing, slice " "objects now have a method ``indices(length)`` which, given the length of a " -"sequence, returns a ``(start, stop, step)`` tuple that can be passed directly" -" to :func:`range`. :meth:`!indices` handles omitted and out-of-bounds indices" -" in a manner consistent with regular slices (and this innocuous phrase hides " -"a welter of confusing details!). The method is intended to be used like " -"this::" +"sequence, returns a ``(start, stop, step)`` tuple that can be passed " +"directly to :func:`range`. :meth:`!indices` handles omitted and out-of-" +"bounds indices in a manner consistent with regular slices (and this " +"innocuous phrase hides a welter of confusing details!). The method is " +"intended to be used like this::" msgstr "" #: ../../whatsnew/2.3.rst:946 @@ -1351,9 +1352,9 @@ msgstr "" #: ../../whatsnew/2.3.rst:957 msgid "" -"From this example you can also see that the built-in :class:`slice` object is" -" now the type object for the slice type, and is no longer a function. This " -"is consistent with Python 2.2, where :class:`int`, :class:`str`, etc., " +"From this example you can also see that the built-in :class:`slice` object " +"is now the type object for the slice type, and is no longer a function. " +"This is consistent with Python 2.2, where :class:`int`, :class:`str`, etc., " "underwent the same change." msgstr "" @@ -1375,24 +1376,24 @@ msgstr "" #: ../../whatsnew/2.3.rst:973 msgid "" -"A new built-in function :func:`enumerate` was added, as described in section " -":ref:`section-enumerate` of this document." +"A new built-in function :func:`enumerate` was added, as described in " +"section :ref:`section-enumerate` of this document." msgstr "" #: ../../whatsnew/2.3.rst:976 msgid "" -"Two new constants, :const:`True` and :const:`False` were added along with the" -" built-in :class:`bool` type, as described in section :ref:`section-bool` of " -"this document." +"Two new constants, :const:`True` and :const:`False` were added along with " +"the built-in :class:`bool` type, as described in section :ref:`section-bool` " +"of this document." msgstr "" #: ../../whatsnew/2.3.rst:980 msgid "" "The :func:`int` type constructor will now return a long integer instead of " -"raising an :exc:`OverflowError` when a string or floating-point number is too" -" large to fit into an integer. This can lead to the paradoxical result that " -"``isinstance(int(expression), int)`` is false, but that seems unlikely to " -"cause problems in practice." +"raising an :exc:`OverflowError` when a string or floating-point number is " +"too large to fit into an integer. This can lead to the paradoxical result " +"that ``isinstance(int(expression), int)`` is false, but that seems unlikely " +"to cause problems in practice." msgstr "" #: ../../whatsnew/2.3.rst:986 @@ -1404,17 +1405,17 @@ msgstr "" #: ../../whatsnew/2.3.rst:989 msgid "" "A new built-in function, ``sum(iterable, start=0)``, adds up the numeric " -"items in the iterable object and returns their sum. :func:`sum` only accepts" -" numbers, meaning that you can't use it to concatenate a bunch of strings. " -"(Contributed by Alex Martelli.)" +"items in the iterable object and returns their sum. :func:`sum` only " +"accepts numbers, meaning that you can't use it to concatenate a bunch of " +"strings. (Contributed by Alex Martelli.)" msgstr "" #: ../../whatsnew/2.3.rst:994 msgid "" "``list.insert(pos, value)`` used to insert *value* at the front of the list " -"when *pos* was negative. The behaviour has now been changed to be consistent" -" with slice indexing, so when *pos* is -1 the value will be inserted before " -"the last element, and so forth." +"when *pos* was negative. The behaviour has now been changed to be " +"consistent with slice indexing, so when *pos* is -1 the value will be " +"inserted before the last element, and so forth." msgstr "" #: ../../whatsnew/2.3.rst:999 @@ -1489,11 +1490,11 @@ msgstr "" #: ../../whatsnew/2.3.rst:1044 msgid "" -"Most type objects are now callable, so you can use them to create new objects" -" such as functions, classes, and modules. (This means that the :mod:`!new` " -"module can be deprecated in a future Python version, because you can now use " -"the type objects available in the :mod:`types` module.) For example, you can " -"create a new module object with the following code:" +"Most type objects are now callable, so you can use them to create new " +"objects such as functions, classes, and modules. (This means that the :mod:" +"`!new` module can be deprecated in a future Python version, because you can " +"now use the type objects available in the :mod:`types` module.) For example, " +"you can create a new module object with the following code:" msgstr "" #: ../../whatsnew/2.3.rst:1052 @@ -1511,16 +1512,16 @@ msgid "" "A new warning, :exc:`PendingDeprecationWarning` was added to indicate " "features which are in the process of being deprecated. The warning will " "*not* be printed by default. To check for use of features that will be " -"deprecated in the future, supply " -":option:`-Walways::PendingDeprecationWarning:: <-W>` on the command line or " -"use :func:`warnings.filterwarnings`." +"deprecated in the future, supply :option:`-Walways::" +"PendingDeprecationWarning:: <-W>` on the command line or use :func:`warnings." +"filterwarnings`." msgstr "" #: ../../whatsnew/2.3.rst:1065 msgid "" "The process of deprecating string-based exceptions, as in ``raise \"Error " -"occurred\"``, has begun. Raising a string will now trigger " -":exc:`PendingDeprecationWarning`." +"occurred\"``, has begun. Raising a string will now trigger :exc:" +"`PendingDeprecationWarning`." msgstr "" #: ../../whatsnew/2.3.rst:1069 @@ -1533,13 +1534,12 @@ msgstr "" #: ../../whatsnew/2.3.rst:1072 msgid "" "The :meth:`!xreadlines` method of file objects, introduced in Python 2.1, is " -"no longer necessary because files now behave as their own iterator. " -":meth:`!xreadlines` was originally introduced as a faster way to loop over " -"all the lines in a file, but now you can simply write ``for line in " -"file_obj``. File objects also have a new read-only :attr:`!encoding` " -"attribute that gives the encoding used by the file; Unicode strings written " -"to the file will be automatically converted to bytes using the given " -"encoding." +"no longer necessary because files now behave as their own iterator. :meth:`!" +"xreadlines` was originally introduced as a faster way to loop over all the " +"lines in a file, but now you can simply write ``for line in file_obj``. File " +"objects also have a new read-only :attr:`!encoding` attribute that gives the " +"encoding used by the file; Unicode strings written to the file will be " +"automatically converted to bytes using the given encoding." msgstr "" #: ../../whatsnew/2.3.rst:1080 @@ -1547,26 +1547,25 @@ msgid "" "The method resolution order used by new-style classes has changed, though " "you'll only notice the difference if you have a really complicated " "inheritance hierarchy. Classic classes are unaffected by this change. " -"Python 2.2 originally used a topological sort of a class's ancestors, but 2.3" -" now uses the C3 algorithm as described in the paper `\"A Monotonic " -"Superclass Linearization for Dylan\" " -"`_. To " -"understand the motivation for this change, read Michele Simionato's article " -":ref:`python_2.3_mro`, or read the thread on python-dev starting with the " -"message at https://mail.python.org/pipermail/python-" -"dev/2002-October/029035.html. Samuele Pedroni first pointed out the problem " -"and also implemented the fix by coding the C3 algorithm." +"Python 2.2 originally used a topological sort of a class's ancestors, but " +"2.3 now uses the C3 algorithm as described in the paper `\"A Monotonic " +"Superclass Linearization for Dylan\" `_. To understand the motivation for this " +"change, read Michele Simionato's article :ref:`python_2.3_mro`, or read the " +"thread on python-dev starting with the message at https://mail.python.org/" +"pipermail/python-dev/2002-October/029035.html. Samuele Pedroni first pointed " +"out the problem and also implemented the fix by coding the C3 algorithm." msgstr "" #: ../../whatsnew/2.3.rst:1093 msgid "" "Python runs multithreaded programs by switching between threads after " -"executing N bytecodes. The default value for N has been increased from 10 to" -" 100 bytecodes, speeding up single-threaded applications by reducing the " +"executing N bytecodes. The default value for N has been increased from 10 " +"to 100 bytecodes, speeding up single-threaded applications by reducing the " "switching overhead. Some multithreaded applications may suffer slower " "response time, but that's easily fixed by setting the limit back to a lower " -"number using ``sys.setcheckinterval(N)``. The limit can be retrieved with the" -" new :func:`!sys.getcheckinterval` function." +"number using ``sys.setcheckinterval(N)``. The limit can be retrieved with " +"the new :func:`!sys.getcheckinterval` function." msgstr "" #: ../../whatsnew/2.3.rst:1101 @@ -1597,10 +1596,10 @@ msgstr "" #: ../../whatsnew/2.3.rst:1115 msgid "" "One of the noted incompatibilities between old- and new-style classes has " -"been removed: you can now assign to the :attr:`~type.__name__` and " -":attr:`~type.__bases__` attributes of new-style classes. There are some " -"restrictions on what can be assigned to :attr:`!__bases__` along the lines of" -" those relating to assigning to an instance's :attr:`~object.__class__` " +"been removed: you can now assign to the :attr:`~type.__name__` and :attr:" +"`~type.__bases__` attributes of new-style classes. There are some " +"restrictions on what can be assigned to :attr:`!__bases__` along the lines " +"of those relating to assigning to an instance's :attr:`~object.__class__` " "attribute." msgstr "" @@ -1611,10 +1610,10 @@ msgstr "" #: ../../whatsnew/2.3.rst:1127 msgid "" "The :keyword:`in` operator now works differently for strings. Previously, " -"when evaluating ``X in Y`` where *X* and *Y* are strings, *X* could only be a" -" single character. That's now changed; *X* can be a string of any length, and" -" ``X in Y`` will return :const:`True` if *X* is a substring of *Y*. If *X* " -"is the empty string, the result is always :const:`True`. ::" +"when evaluating ``X in Y`` where *X* and *Y* are strings, *X* could only be " +"a single character. That's now changed; *X* can be a string of any length, " +"and ``X in Y`` will return :const:`True` if *X* is a substring of *Y*. If " +"*X* is the empty string, the result is always :const:`True`. ::" msgstr "" #: ../../whatsnew/2.3.rst:1133 @@ -1636,8 +1635,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:1143 msgid "" "The :meth:`~str.strip`, :meth:`~str.lstrip`, and :meth:`~str.rstrip` string " -"methods now have an optional argument for specifying the characters to strip." -" The default is still to remove all whitespace characters::" +"methods now have an optional argument for specifying the characters to " +"strip. The default is still to remove all whitespace characters::" msgstr "" #: ../../whatsnew/2.3.rst:1147 @@ -1665,10 +1664,10 @@ msgstr "" #: ../../whatsnew/2.3.rst:1162 msgid "" -"Another new string method is :meth:`~str.zfill`, originally a function in the" -" :mod:`string` module. :meth:`~str.zfill` pads a numeric string with zeros " -"on the left until it's the specified width. Note that the ``%`` operator is " -"still more flexible and powerful than :meth:`~str.zfill`. ::" +"Another new string method is :meth:`~str.zfill`, originally a function in " +"the :mod:`string` module. :meth:`~str.zfill` pads a numeric string with " +"zeros on the left until it's the specified width. Note that the ``%`` " +"operator is still more flexible and powerful than :meth:`~str.zfill`. ::" msgstr "" #: ../../whatsnew/2.3.rst:1167 @@ -1696,8 +1695,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:1181 msgid "" "Interned strings are no longer immortal and will now be garbage-collected in " -"the usual way when the only reference to them is from the internal dictionary" -" of interned strings. (Implemented by Oren Tirosh.)" +"the usual way when the only reference to them is from the internal " +"dictionary of interned strings. (Implemented by Oren Tirosh.)" msgstr "" #: ../../whatsnew/2.3.rst:1189 @@ -1728,8 +1727,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:1202 msgid "" "The ``SET_LINENO`` opcode is now gone. This may provide a small speed " -"increase, depending on your compiler's idiosyncrasies. See section " -":ref:`23section-other` for a longer explanation. (Removed by Michael Hudson.)" +"increase, depending on your compiler's idiosyncrasies. See section :ref:" +"`23section-other` for a longer explanation. (Removed by Michael Hudson.)" msgstr "" #: ../../whatsnew/2.3.rst:1206 @@ -1759,11 +1758,11 @@ msgstr "" #: ../../whatsnew/2.3.rst:1223 msgid "" -"As usual, Python's standard library received a number of enhancements and bug" -" fixes. Here's a partial list of the most notable changes, sorted " +"As usual, Python's standard library received a number of enhancements and " +"bug fixes. Here's a partial list of the most notable changes, sorted " "alphabetically by module name. Consult the :file:`Misc/NEWS` file in the " -"source tree for a more complete list of changes, or look through the CVS logs" -" for all the details." +"source tree for a more complete list of changes, or look through the CVS " +"logs for all the details." msgstr "" #: ../../whatsnew/2.3.rst:1228 @@ -1783,25 +1782,25 @@ msgstr "" #: ../../whatsnew/2.3.rst:1237 msgid "" -"The old version of the module has been renamed to :mod:`!bsddb185` and is no" -" longer built automatically; you'll have to edit :file:`Modules/Setup` to " +"The old version of the module has been renamed to :mod:`!bsddb185` and is " +"no longer built automatically; you'll have to edit :file:`Modules/Setup` to " "enable it. Note that the new :mod:`!bsddb` package is intended to be " "compatible with the old module, so be sure to file bugs if you discover any " "incompatibilities. When upgrading to Python 2.3, if the new interpreter is " "compiled with a new version of the underlying BerkeleyDB library, you will " -"almost certainly have to convert your database files to the new version. You" -" can do this fairly easily with the new scripts :file:`db2pickle.py` and " -":file:`pickle2db.py` which you will find in the distribution's " -":file:`Tools/scripts` directory. If you've already been using the PyBSDDB " -"package and importing it as :mod:`!bsddb3`, you will have to change your " -"``import`` statements to import it as :mod:`!bsddb`." +"almost certainly have to convert your database files to the new version. " +"You can do this fairly easily with the new scripts :file:`db2pickle.py` and :" +"file:`pickle2db.py` which you will find in the distribution's :file:`Tools/" +"scripts` directory. If you've already been using the PyBSDDB package and " +"importing it as :mod:`!bsddb3`, you will have to change your ``import`` " +"statements to import it as :mod:`!bsddb`." msgstr "" #: ../../whatsnew/2.3.rst:1249 msgid "" "The new :mod:`bz2` module is an interface to the bz2 data compression " -"library. bz2-compressed data is usually smaller than corresponding " -":mod:`zlib`\\ -compressed data. (Contributed by Gustavo Niemeyer.)" +"library. bz2-compressed data is usually smaller than corresponding :mod:" +"`zlib`\\ -compressed data. (Contributed by Gustavo Niemeyer.)" msgstr "" #: ../../whatsnew/2.3.rst:1253 @@ -1814,10 +1813,10 @@ msgstr "" msgid "" "The Distutils :class:`!Extension` class now supports an extra constructor " "argument named *depends* for listing additional source files that an " -"extension depends on. This lets Distutils recompile the module if any of the" -" dependency files are modified. For example, if :file:`sampmodule.c` " -"includes the header file :file:`sample.h`, you would create the " -":class:`!Extension` object like this::" +"extension depends on. This lets Distutils recompile the module if any of " +"the dependency files are modified. For example, if :file:`sampmodule.c` " +"includes the header file :file:`sample.h`, you would create the :class:`!" +"Extension` object like this::" msgstr "" #: ../../whatsnew/2.3.rst:1263 @@ -1835,8 +1834,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:1270 msgid "" -"Other minor changes to Distutils: it now checks for the :envvar:`CC`, " -":envvar:`CFLAGS`, :envvar:`!CPP`, :envvar:`LDFLAGS`, and :envvar:`CPPFLAGS` " +"Other minor changes to Distutils: it now checks for the :envvar:`CC`, :" +"envvar:`CFLAGS`, :envvar:`!CPP`, :envvar:`LDFLAGS`, and :envvar:`CPPFLAGS` " "environment variables, using them to override the settings in Python's " "configuration (contributed by Robert Weber)." msgstr "" @@ -1844,9 +1843,9 @@ msgstr "" #: ../../whatsnew/2.3.rst:1275 msgid "" "Previously the :mod:`doctest` module would only search the docstrings of " -"public methods and functions for test cases, but it now also examines private" -" ones as well. The :func:`~doctest.DocTestSuite` function creates a " -":class:`unittest.TestSuite` object from a set of :mod:`doctest` tests." +"public methods and functions for test cases, but it now also examines " +"private ones as well. The :func:`~doctest.DocTestSuite` function creates a :" +"class:`unittest.TestSuite` object from a set of :mod:`doctest` tests." msgstr "" #: ../../whatsnew/2.3.rst:1280 @@ -1859,10 +1858,10 @@ msgstr "" msgid "" "The :mod:`getopt` module gained a new function, :func:`~getopt.gnu_getopt`, " "that supports the same arguments as the existing :func:`~getopt.getopt` " -"function but uses GNU-style scanning mode. The existing " -":func:`~getopt.getopt` stops processing options as soon as a non-option " -"argument is encountered, but in GNU-style mode processing continues, meaning " -"that options and arguments can be mixed. For example::" +"function but uses GNU-style scanning mode. The existing :func:`~getopt." +"getopt` stops processing options as soon as a non-option argument is " +"encountered, but in GNU-style mode processing continues, meaning that " +"options and arguments can be mixed. For example::" msgstr "" #: ../../whatsnew/2.3.rst:1289 @@ -1902,17 +1901,17 @@ msgid "" "partially sorted order such that, for every index *k*, ``heap[k] <= " "heap[2*k+1]`` and ``heap[k] <= heap[2*k+2]``. This makes it quick to remove " "the smallest item, and inserting a new item while maintaining the heap " -"property is *O*\\ (log *n*). (See " -"https://xlinux.nist.gov/dads//HTML/priorityque.html for more information " -"about the priority queue data structure.)" +"property is *O*\\ (log *n*). (See https://xlinux.nist.gov/dads//HTML/" +"priorityque.html for more information about the priority queue data " +"structure.)" msgstr "" #: ../../whatsnew/2.3.rst:1314 msgid "" -"The :mod:`heapq` module provides :func:`~heapq.heappush` and " -":func:`~heapq.heappop` functions for adding and removing items while " -"maintaining the heap property on top of some other mutable Python sequence " -"type. Here's an example that uses a Python list::" +"The :mod:`heapq` module provides :func:`~heapq.heappush` and :func:`~heapq." +"heappop` functions for adding and removing items while maintaining the heap " +"property on top of some other mutable Python sequence type. Here's an " +"example that uses a Python list::" msgstr "" #: ../../whatsnew/2.3.rst:1318 @@ -1959,8 +1958,9 @@ msgid "" "languages. For example, ``itertools.ifilter(predicate, iterator)`` returns " "all elements in the iterator for which the function :func:`!predicate` " "returns :const:`True`, and ``itertools.repeat(obj, N)`` returns ``obj`` *N* " -"times. There are a number of other functions in the module; see the package's" -" reference documentation for details. (Contributed by Raymond Hettinger.)" +"times. There are a number of other functions in the module; see the " +"package's reference documentation for details. (Contributed by Raymond " +"Hettinger.)" msgstr "" #: ../../whatsnew/2.3.rst:1352 @@ -1976,11 +1976,11 @@ msgstr "" #: ../../whatsnew/2.3.rst:1359 msgid "" -"Several new POSIX functions (:func:`!getpgid`, :func:`!killpg`, " -":func:`!lchown`, :func:`!loadavg`, :func:`!major`, :func:`!makedev`, " -":func:`!minor`, and :func:`!mknod`) were added to the :mod:`posix` module " -"that underlies the :mod:`os` module. (Contributed by Gustavo Niemeyer, Geert " -"Jansen, and Denis S. Otkidach.)" +"Several new POSIX functions (:func:`!getpgid`, :func:`!killpg`, :func:`!" +"lchown`, :func:`!loadavg`, :func:`!major`, :func:`!makedev`, :func:`!minor`, " +"and :func:`!mknod`) were added to the :mod:`posix` module that underlies " +"the :mod:`os` module. (Contributed by Gustavo Niemeyer, Geert Jansen, and " +"Denis S. Otkidach.)" msgstr "" #: ../../whatsnew/2.3.rst:1365 @@ -1992,12 +1992,12 @@ msgstr "" #: ../../whatsnew/2.3.rst:1369 msgid "" -"During testing, it was found that some applications will break if time stamps" -" are floats. For compatibility, when using the tuple interface of the " -":class:`~os.stat_result` time stamps will be represented as integers. When " -"using named fields (a feature first introduced in Python 2.2), time stamps " -"are still represented as integers, unless :func:`!os.stat_float_times` is " -"invoked to enable float return values::" +"During testing, it was found that some applications will break if time " +"stamps are floats. For compatibility, when using the tuple interface of " +"the :class:`~os.stat_result` time stamps will be represented as integers. " +"When using named fields (a feature first introduced in Python 2.2), time " +"stamps are still represented as integers, unless :func:`!os." +"stat_float_times` is invoked to enable float return values::" msgstr "" #: ../../whatsnew/2.3.rst:1376 @@ -2015,10 +2015,10 @@ msgstr "" #: ../../whatsnew/2.3.rst:1384 msgid "" -"Application developers should enable this feature only if all their libraries" -" work properly when confronted with floating-point time stamps, or if they " -"use the tuple API. If used, the feature should be activated on an application" -" level instead of trying to enable it on a per-use basis." +"Application developers should enable this feature only if all their " +"libraries work properly when confronted with floating-point time stamps, or " +"if they use the tuple API. If used, the feature should be activated on an " +"application level instead of trying to enable it on a per-use basis." msgstr "" #: ../../whatsnew/2.3.rst:1389 @@ -2042,8 +2042,8 @@ msgstr "" msgid "" "The new :mod:`platform` module contains a number of functions that try to " "determine various properties of the platform you're running on. There are " -"functions for getting the architecture, CPU type, the Windows OS version, and" -" even the Linux distribution version. (Contributed by Marc-André Lemburg.)" +"functions for getting the architecture, CPU type, the Windows OS version, " +"and even the Linux distribution version. (Contributed by Marc-André Lemburg.)" msgstr "" #: ../../whatsnew/2.3.rst:1405 @@ -2051,17 +2051,17 @@ msgid "" "The parser objects provided by the :mod:`pyexpat ` module " "can now optionally buffer character data, resulting in fewer calls to your " "character data handler and therefore faster performance. Setting the parser " -"object's :attr:`~xml.parsers.expat.xmlparser.buffer_text` attribute to " -":const:`True` will enable buffering." +"object's :attr:`~xml.parsers.expat.xmlparser.buffer_text` attribute to :" +"const:`True` will enable buffering." msgstr "" #: ../../whatsnew/2.3.rst:1410 msgid "" -"The ``sample(population, k)`` function was added to the :mod:`random` module." -" *population* is a sequence or :class:`!xrange` object containing the " -"elements of a population, and :func:`~random.sample` chooses *k* elements " -"from the population without replacing chosen elements. *k* can be any value " -"up to ``len(population)``. For example::" +"The ``sample(population, k)`` function was added to the :mod:`random` " +"module. *population* is a sequence or :class:`!xrange` object containing " +"the elements of a population, and :func:`~random.sample` chooses *k* " +"elements from the population without replacing chosen elements. *k* can be " +"any value up to ``len(population)``. For example::" msgstr "" #: ../../whatsnew/2.3.rst:1416 @@ -2079,15 +2079,16 @@ msgid "" " File \"random.py\", line 414, in sample\n" " raise ValueError, \"sample larger than population\"\n" "ValueError: sample larger than population\n" -">>> random.sample(xrange(1,10000,2), 10) # Choose ten odd nos. under 10000\n" +">>> random.sample(xrange(1,10000,2), 10) # Choose ten odd nos. under " +"10000\n" "[3407, 3805, 1505, 7023, 2401, 2267, 9733, 3151, 8083, 9195]" msgstr "" #: ../../whatsnew/2.3.rst:1432 msgid "" "The :mod:`random` module now uses a new algorithm, the Mersenne Twister, " -"implemented in C. It's faster and more extensively studied than the previous" -" algorithm." +"implemented in C. It's faster and more extensively studied than the " +"previous algorithm." msgstr "" #: ../../whatsnew/2.3.rst:1436 @@ -2096,20 +2097,19 @@ msgstr "" #: ../../whatsnew/2.3.rst:1438 msgid "" -"The :mod:`readline` module also gained a number of new functions: " -":func:`~readline.get_history_item`, " -":func:`~readline.get_current_history_length`, and " -":func:`~readline.redisplay`." +"The :mod:`readline` module also gained a number of new functions: :func:" +"`~readline.get_history_item`, :func:`~readline.get_current_history_length`, " +"and :func:`~readline.redisplay`." msgstr "" #: ../../whatsnew/2.3.rst:1442 msgid "" "The :mod:`!rexec` and :mod:`!Bastion` modules have been declared dead, and " "attempts to import them will fail with a :exc:`RuntimeError`. New-style " -"classes provide new ways to break out of the restricted execution environment" -" provided by :mod:`!rexec`, and no one has interest in fixing them or time to" -" do so. If you have applications using :mod:`!rexec`, rewrite them to use " -"something else." +"classes provide new ways to break out of the restricted execution " +"environment provided by :mod:`!rexec`, and no one has interest in fixing " +"them or time to do so. If you have applications using :mod:`!rexec`, " +"rewrite them to use something else." msgstr "" #: ../../whatsnew/2.3.rst:1448 @@ -2122,8 +2122,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:1452 msgid "" "The :mod:`!rotor` module has been deprecated because the algorithm it uses " -"for encryption is not believed to be secure. If you need encryption, use one" -" of the several AES Python modules that are available separately." +"for encryption is not believed to be secure. If you need encryption, use " +"one of the several AES Python modules that are available separately." msgstr "" #: ../../whatsnew/2.3.rst:1456 @@ -2134,8 +2134,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:1459 msgid "" -"Support for more advanced POSIX signal handling was added to the " -":mod:`signal` but then removed again as it proved impossible to make it work " +"Support for more advanced POSIX signal handling was added to the :mod:" +"`signal` but then removed again as it proved impossible to make it work " "reliably across platforms." msgstr "" @@ -2164,15 +2164,15 @@ msgstr "" #: ../../whatsnew/2.3.rst:1477 msgid "" -"The value of the C :c:macro:`!PYTHON_API_VERSION` macro is now exposed at the" -" Python level as ``sys.api_version``. The current exception can be cleared " -"by calling the new :func:`!sys.exc_clear` function." +"The value of the C :c:macro:`!PYTHON_API_VERSION` macro is now exposed at " +"the Python level as ``sys.api_version``. The current exception can be " +"cleared by calling the new :func:`!sys.exc_clear` function." msgstr "" #: ../../whatsnew/2.3.rst:1481 msgid "" -"The new :mod:`tarfile` module allows reading from and writing to " -":program:`tar`\\ -format archive files. (Contributed by Lars Gustäbel.)" +"The new :mod:`tarfile` module allows reading from and writing to :program:" +"`tar`\\ -format archive files. (Contributed by Lars Gustäbel.)" msgstr "" #: ../../whatsnew/2.3.rst:1484 @@ -2182,8 +2182,8 @@ msgid "" "string and returns a list containing the text split into lines of no more " "than the chosen width. The ``fill(text, width)`` function returns a single " "string, reformatted to fit into lines no longer than the chosen width. (As " -"you can guess, :func:`~textwrap.fill` is built on top of " -":func:`~textwrap.wrap`. For example::" +"you can guess, :func:`~textwrap.fill` is built on top of :func:`~textwrap." +"wrap`. For example::" msgstr "" #: ../../whatsnew/2.3.rst:1491 @@ -2206,22 +2206,22 @@ msgstr "" #: ../../whatsnew/2.3.rst:1506 msgid "" -"The module also contains a :class:`~textwrap.TextWrapper` class that actually" -" implements the text wrapping strategy. Both the " -":class:`~textwrap.TextWrapper` class and the :func:`~textwrap.wrap` and " -":func:`~textwrap.fill` functions support a number of additional keyword " -"arguments for fine-tuning the formatting; consult the module's documentation " -"for details. (Contributed by Greg Ward.)" +"The module also contains a :class:`~textwrap.TextWrapper` class that " +"actually implements the text wrapping strategy. Both the :class:`~textwrap." +"TextWrapper` class and the :func:`~textwrap.wrap` and :func:`~textwrap.fill` " +"functions support a number of additional keyword arguments for fine-tuning " +"the formatting; consult the module's documentation for details. (Contributed " +"by Greg Ward.)" msgstr "" #: ../../whatsnew/2.3.rst:1512 msgid "" -"The :mod:`!thread` and :mod:`threading` modules now have companion modules, " -":mod:`!dummy_thread` and :mod:`!dummy_threading`, that provide a do-nothing " +"The :mod:`!thread` and :mod:`threading` modules now have companion modules, :" +"mod:`!dummy_thread` and :mod:`!dummy_threading`, that provide a do-nothing " "implementation of the :mod:`!thread` module's interface for platforms where " -"threads are not supported. The intention is to simplify thread-aware modules" -" (ones that *don't* rely on threads to run) by putting the following code at " -"the top::" +"threads are not supported. The intention is to simplify thread-aware " +"modules (ones that *don't* rely on threads to run) by putting the following " +"code at the top::" msgstr "" #: ../../whatsnew/2.3.rst:1519 @@ -2235,13 +2235,12 @@ msgstr "" #: ../../whatsnew/2.3.rst:1524 msgid "" "In this example, :mod:`!_threading` is used as the module name to make it " -"clear that the module being used is not necessarily the actual " -":mod:`threading` module. Code can call functions and use classes in " -":mod:`!_threading` whether or not threads are supported, avoiding an " -":keyword:`if` statement and making the code slightly clearer. This module " -"will not magically make multithreaded code run without threads; code that " -"waits for another thread to return or to do something will simply hang " -"forever." +"clear that the module being used is not necessarily the actual :mod:" +"`threading` module. Code can call functions and use classes in :mod:`!" +"_threading` whether or not threads are supported, avoiding an :keyword:`if` " +"statement and making the code slightly clearer. This module will not " +"magically make multithreaded code run without threads; code that waits for " +"another thread to return or to do something will simply hang forever." msgstr "" #: ../../whatsnew/2.3.rst:1532 @@ -2295,19 +2294,19 @@ msgid "" "a command, passing it to the correct thread, and waiting for the results. " "Other interfaces can't be handled automatically but :mod:`!Tkinter` will now " "raise an exception on such an access so that you can at least find out about " -"the problem. See https://mail.python.org/pipermail/python-" -"dev/2002-December/031107.html for a more detailed explanation of this change." -" (Implemented by Martin von Löwis.)" +"the problem. See https://mail.python.org/pipermail/python-dev/2002-" +"December/031107.html for a more detailed explanation of this change. " +"(Implemented by Martin von Löwis.)" msgstr "" #: ../../whatsnew/2.3.rst:1572 msgid "" -"Calling Tcl methods through :mod:`!_tkinter` no longer returns only strings." -" Instead, if Tcl returns other objects those objects are converted to their " -"Python equivalent, if one exists, or wrapped with a " -":class:`!_tkinter.Tcl_Obj` object if no Python equivalent exists. This " -"behavior can be controlled through the :meth:`!wantobjects` method of " -":class:`!tkapp` objects." +"Calling Tcl methods through :mod:`!_tkinter` no longer returns only " +"strings. Instead, if Tcl returns other objects those objects are converted " +"to their Python equivalent, if one exists, or wrapped with a :class:`!" +"_tkinter.Tcl_Obj` object if no Python equivalent exists. This behavior can " +"be controlled through the :meth:`!wantobjects` method of :class:`!tkapp` " +"objects." msgstr "" #: ../../whatsnew/2.3.rst:1578 @@ -2337,9 +2336,9 @@ msgstr "" #: ../../whatsnew/2.3.rst:1592 msgid "" -"The :mod:`!UserDict` module has a new :class:`!DictMixin` class which defines" -" all dictionary methods for classes that already have a minimum mapping " -"interface. This greatly simplifies writing classes that need to be " +"The :mod:`!UserDict` module has a new :class:`!DictMixin` class which " +"defines all dictionary methods for classes that already have a minimum " +"mapping interface. This greatly simplifies writing classes that need to be " "substitutable for dictionaries, such as the classes in the :mod:`shelve` " "module." msgstr "" @@ -2347,9 +2346,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:1598 msgid "" "Adding the mix-in as a superclass provides the full dictionary interface " -"whenever the class defines :meth:`~object.__getitem__`, " -":meth:`~object.__setitem__`, :meth:`~object.__delitem__`, and :meth:`!keys`. " -"For example::" +"whenever the class defines :meth:`~object.__getitem__`, :meth:`~object." +"__setitem__`, :meth:`~object.__delitem__`, and :meth:`!keys`. For example::" msgstr "" #: ../../whatsnew/2.3.rst:1602 @@ -2399,9 +2397,9 @@ msgstr "" #: ../../whatsnew/2.3.rst:1641 msgid "" "The DOM implementation in :mod:`xml.dom.minidom` can now generate XML output " -"in a particular encoding by providing an optional encoding argument to the " -":meth:`~xml.dom.minidom.Node.toxml` and " -":meth:`~xml.dom.minidom.Node.toprettyxml` methods of DOM nodes." +"in a particular encoding by providing an optional encoding argument to the :" +"meth:`~xml.dom.minidom.Node.toxml` and :meth:`~xml.dom.minidom.Node." +"toprettyxml` methods of DOM nodes." msgstr "" #: ../../whatsnew/2.3.rst:1645 @@ -2448,8 +2446,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:1672 msgid "" -"To implement this change, the :mod:`stringprep` module, the ``mkstringprep``" -" tool and the ``punycode`` encoding have been added." +"To implement this change, the :mod:`stringprep` module, the " +"``mkstringprep`` tool and the ``punycode`` encoding have been added." msgstr "" #: ../../whatsnew/2.3.rst:1679 @@ -2458,8 +2456,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:1681 msgid "" -"Date and time types suitable for expressing timestamps were added as the " -":mod:`datetime` module. The types don't support different calendars or many " +"Date and time types suitable for expressing timestamps were added as the :" +"mod:`datetime` module. The types don't support different calendars or many " "fancy features, and just stick to the basics of representing time." msgstr "" @@ -2467,26 +2465,26 @@ msgstr "" msgid "" "The three primary types are: :class:`~datetime.date`, representing a day, " "month, and year; :class:`~datetime.time`, consisting of hour, minute, and " -"second; and :class:`~datetime.datetime`, which contains all the attributes of" -" both :class:`~datetime.date` and :class:`~datetime.time`. There's also a " -":class:`~datetime.timedelta` class representing differences between two " -"points in time, and time zone logic is implemented by classes inheriting from" -" the abstract :class:`~datetime.tzinfo` class." +"second; and :class:`~datetime.datetime`, which contains all the attributes " +"of both :class:`~datetime.date` and :class:`~datetime.time`. There's also a :" +"class:`~datetime.timedelta` class representing differences between two " +"points in time, and time zone logic is implemented by classes inheriting " +"from the abstract :class:`~datetime.tzinfo` class." msgstr "" #: ../../whatsnew/2.3.rst:1692 msgid "" -"You can create instances of :class:`~datetime.date` and " -":class:`~datetime.time` by either supplying keyword arguments to the " -"appropriate constructor, e.g. ``datetime.date(year=1972, month=10, day=15)``," -" or by using one of a number of class methods. For example, the " -":meth:`~datetime.date.today` class method returns the current local date." +"You can create instances of :class:`~datetime.date` and :class:`~datetime." +"time` by either supplying keyword arguments to the appropriate constructor, " +"e.g. ``datetime.date(year=1972, month=10, day=15)``, or by using one of a " +"number of class methods. For example, the :meth:`~datetime.date.today` " +"class method returns the current local date." msgstr "" #: ../../whatsnew/2.3.rst:1698 msgid "" -"Once created, instances of the date/time classes are all immutable. There are" -" a number of methods for producing formatted strings from objects::" +"Once created, instances of the date/time classes are all immutable. There " +"are a number of methods for producing formatted strings from objects::" msgstr "" #: ../../whatsnew/2.3.rst:1701 @@ -2504,8 +2502,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:1710 msgid "" "The :meth:`~datetime.datetime.replace` method allows modifying one or more " -"fields of a :class:`~datetime.date` or :class:`~datetime.datetime` instance," -" returning a new instance::" +"fields of a :class:`~datetime.date` or :class:`~datetime.datetime` " +"instance, returning a new instance::" msgstr "" #: ../../whatsnew/2.3.rst:1713 @@ -2521,12 +2519,12 @@ msgstr "" #: ../../whatsnew/2.3.rst:1720 msgid "" "Instances can be compared, hashed, and converted to strings (the result is " -"the same as that of :meth:`~datetime.datetime.isoformat`). " -":class:`~datetime.date` and :class:`~datetime.datetime` instances can be " -"subtracted from each other, and added to :class:`~datetime.timedelta` " -"instances. The largest missing feature is that there's no standard library " -"support for parsing strings and getting back a :class:`~datetime.date` or " -":class:`~datetime.datetime`." +"the same as that of :meth:`~datetime.datetime.isoformat`). :class:" +"`~datetime.date` and :class:`~datetime.datetime` instances can be subtracted " +"from each other, and added to :class:`~datetime.timedelta` instances. The " +"largest missing feature is that there's no standard library support for " +"parsing strings and getting back a :class:`~datetime.date` or :class:" +"`~datetime.datetime`." msgstr "" #: ../../whatsnew/2.3.rst:1727 @@ -2570,8 +2568,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:1756 msgid "" -"Parsing a command line is then done by calling the " -":meth:`~optparse.OptionParser.parse_args` method. ::" +"Parsing a command line is then done by calling the :meth:`~optparse." +"OptionParser.parse_args` method. ::" msgstr "" #: ../../whatsnew/2.3.rst:1758 @@ -2650,8 +2648,8 @@ msgstr "" msgid "" "In 2.1 and 2.2, pymalloc was an experimental feature and wasn't enabled by " "default; you had to explicitly enable it when compiling Python by providing " -"the :option:`!--with-pymalloc` option to the :program:`configure` script. In" -" 2.3, pymalloc has had further enhancements and is now enabled by default; " +"the :option:`!--with-pymalloc` option to the :program:`configure` script. " +"In 2.3, pymalloc has had further enhancements and is now enabled by default; " "you'll have to supply :option:`!--without-pymalloc` to disable it." msgstr "" @@ -2669,53 +2667,52 @@ msgid "" "number of memory allocation functions in Python's C API that have previously " "just been aliases for the C library's :c:func:`malloc` and :c:func:`free`, " "meaning that if you accidentally called mismatched functions the error " -"wouldn't be noticeable. When the object allocator is enabled, these functions" -" aren't aliases of :c:func:`malloc` and :c:func:`free` any more, and calling " -"the wrong function to free memory may get you a core dump. For example, if " -"memory was allocated using :c:func:`PyObject_Malloc`, it has to be freed " -"using :c:func:`PyObject_Free`, not :c:func:`free`. A few modules included " -"with Python fell afoul of this and had to be fixed; doubtless there are more " -"third-party modules that will have the same problem." +"wouldn't be noticeable. When the object allocator is enabled, these " +"functions aren't aliases of :c:func:`malloc` and :c:func:`free` any more, " +"and calling the wrong function to free memory may get you a core dump. For " +"example, if memory was allocated using :c:func:`PyObject_Malloc`, it has to " +"be freed using :c:func:`PyObject_Free`, not :c:func:`free`. A few modules " +"included with Python fell afoul of this and had to be fixed; doubtless there " +"are more third-party modules that will have the same problem." msgstr "" #: ../../whatsnew/2.3.rst:1836 msgid "" "As part of this change, the confusing multiple interfaces for allocating " "memory have been consolidated down into two API families. Memory allocated " -"with one family must not be manipulated with functions from the other family." -" There is one family for allocating chunks of memory and another family of " -"functions specifically for allocating Python objects." +"with one family must not be manipulated with functions from the other " +"family. There is one family for allocating chunks of memory and another " +"family of functions specifically for allocating Python objects." msgstr "" #: ../../whatsnew/2.3.rst:1842 msgid "" "To allocate and free an undistinguished chunk of memory use the \"raw " -"memory\" family: :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc`, and " -":c:func:`PyMem_Free`." +"memory\" family: :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc`, and :c:" +"func:`PyMem_Free`." msgstr "" #: ../../whatsnew/2.3.rst:1845 msgid "" "The \"object memory\" family is the interface to the pymalloc facility " "described above and is biased towards a large number of \"small\" " -"allocations: :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc`, and " -":c:func:`PyObject_Free`." +"allocations: :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc`, and :c:" +"func:`PyObject_Free`." msgstr "" #: ../../whatsnew/2.3.rst:1849 msgid "" -"To allocate and free Python objects, use the \"object\" family " -":c:macro:`PyObject_New`, :c:macro:`PyObject_NewVar`, and " -":c:func:`PyObject_Del`." +"To allocate and free Python objects, use the \"object\" family :c:macro:" +"`PyObject_New`, :c:macro:`PyObject_NewVar`, and :c:func:`PyObject_Del`." msgstr "" #: ../../whatsnew/2.3.rst:1852 msgid "" -"Thanks to lots of work by Tim Peters, pymalloc in 2.3 also provides debugging" -" features to catch memory overwrites and doubled frees in both extension " -"modules and in the interpreter itself. To enable this support, compile a " -"debugging version of the Python interpreter by running :program:`configure` " -"with :option:`!--with-pydebug`." +"Thanks to lots of work by Tim Peters, pymalloc in 2.3 also provides " +"debugging features to catch memory overwrites and doubled frees in both " +"extension modules and in the interpreter itself. To enable this support, " +"compile a debugging version of the Python interpreter by running :program:" +"`configure` with :option:`!--with-pydebug`." msgstr "" #: ../../whatsnew/2.3.rst:1858 @@ -2750,16 +2747,15 @@ msgstr "" msgid "" "The cycle detection implementation used by the garbage collection has proven " "to be stable, so it's now been made mandatory. You can no longer compile " -"Python without it, and the :option:`!--with-cycle-gc` switch to " -":program:`configure` has been removed." +"Python without it, and the :option:`!--with-cycle-gc` switch to :program:" +"`configure` has been removed." msgstr "" #: ../../whatsnew/2.3.rst:1885 msgid "" -"Python can now optionally be built as a shared library " -"(:file:`libpython2.3.so`) by supplying :option:`!--enable-shared` when " -"running Python's :program:`configure` script. (Contributed by Ondrej " -"Palkovsky.)" +"Python can now optionally be built as a shared library (:file:`libpython2.3." +"so`) by supplying :option:`!--enable-shared` when running Python's :program:" +"`configure` script. (Contributed by Ondrej Palkovsky.)" msgstr "" #: ../../whatsnew/2.3.rst:1889 @@ -2767,15 +2763,15 @@ msgid "" "The :c:macro:`!DL_EXPORT` and :c:macro:`!DL_IMPORT` macros are now " "deprecated. Initialization functions for Python extension modules should now " "be declared using the new macro :c:macro:`PyMODINIT_FUNC`, while the Python " -"core will generally use the :c:macro:`!PyAPI_FUNC` and :c:macro:`!PyAPI_DATA`" -" macros." +"core will generally use the :c:macro:`!PyAPI_FUNC` and :c:macro:`!" +"PyAPI_DATA` macros." msgstr "" #: ../../whatsnew/2.3.rst:1894 msgid "" "The interpreter can be compiled without any docstrings for the built-in " -"functions and modules by supplying :option:`!--without-doc-strings` to the " -":program:`configure` script. This makes the Python executable about 10% " +"functions and modules by supplying :option:`!--without-doc-strings` to the :" +"program:`configure` script. This makes the Python executable about 10% " "smaller, but will also mean that you can't get help for Python's built-ins. " "(Contributed by Gustavo Niemeyer.)" msgstr "" @@ -2783,20 +2779,20 @@ msgstr "" #: ../../whatsnew/2.3.rst:1900 msgid "" "The :c:func:`!PyArg_NoArgs` macro is now deprecated, and code that uses it " -"should be changed. For Python 2.2 and later, the method definition table can" -" specify the :c:macro:`METH_NOARGS` flag, signalling that there are no " +"should be changed. For Python 2.2 and later, the method definition table " +"can specify the :c:macro:`METH_NOARGS` flag, signalling that there are no " "arguments, and the argument checking can then be removed. If compatibility " "with pre-2.2 versions of Python is important, the code could use " -"``PyArg_ParseTuple(args, \"\")`` instead, but this will be slower than using " -":c:macro:`METH_NOARGS`." +"``PyArg_ParseTuple(args, \"\")`` instead, but this will be slower than " +"using :c:macro:`METH_NOARGS`." msgstr "" #: ../../whatsnew/2.3.rst:1907 msgid "" -":c:func:`PyArg_ParseTuple` accepts new format characters for various sizes of" -" unsigned integers: ``B`` for :c:expr:`unsigned char`, ``H`` for " -":c:expr:`unsigned short int`, ``I`` for :c:expr:`unsigned int`, and ``K`` " -"for :c:expr:`unsigned long long`." +":c:func:`PyArg_ParseTuple` accepts new format characters for various sizes " +"of unsigned integers: ``B`` for :c:expr:`unsigned char`, ``H`` for :c:expr:" +"`unsigned short int`, ``I`` for :c:expr:`unsigned int`, and ``K`` for :c:" +"expr:`unsigned long long`." msgstr "" #: ../../whatsnew/2.3.rst:1912 @@ -2808,9 +2804,9 @@ msgstr "" #: ../../whatsnew/2.3.rst:1915 msgid "" "File objects now manage their internal string buffer differently, increasing " -"it exponentially when needed. This results in the benchmark tests in " -":file:`Lib/test/test_bufio.py` speeding up considerably (from 57 seconds to " -"1.7 seconds, according to one measurement)." +"it exponentially when needed. This results in the benchmark tests in :file:" +"`Lib/test/test_bufio.py` speeding up considerably (from 57 seconds to 1.7 " +"seconds, according to one measurement)." msgstr "" #: ../../whatsnew/2.3.rst:1920 @@ -2829,12 +2825,12 @@ msgstr "" #: ../../whatsnew/2.3.rst:1927 msgid "" "If you dynamically allocate type objects in your extension, you should be " -"aware of a change in the rules relating to the :attr:`~type.__module__` and " -":attr:`~type.__name__` attributes. In summary, you will want to ensure the " -"type's dictionary contains a ``'__module__'`` key; making the module name the" -" part of the type name leading up to the final period will no longer have the" -" desired effect. For more detail, read the API reference documentation or " -"the source." +"aware of a change in the rules relating to the :attr:`~type.__module__` and :" +"attr:`~type.__name__` attributes. In summary, you will want to ensure the " +"type's dictionary contains a ``'__module__'`` key; making the module name " +"the part of the type name leading up to the final period will no longer have " +"the desired effect. For more detail, read the API reference documentation " +"or the source." msgstr "" #: ../../whatsnew/2.3.rst:1938 @@ -2843,14 +2839,14 @@ msgstr "" #: ../../whatsnew/2.3.rst:1940 msgid "" -"Support for a port to IBM's OS/2 using the EMX runtime environment was merged" -" into the main Python source tree. EMX is a POSIX emulation layer over the " -"OS/2 system APIs. The Python port for EMX tries to support all the POSIX-" -"like capability exposed by the EMX runtime, and mostly succeeds; " -":func:`!fork` and :func:`fcntl` are restricted by the limitations of the " +"Support for a port to IBM's OS/2 using the EMX runtime environment was " +"merged into the main Python source tree. EMX is a POSIX emulation layer " +"over the OS/2 system APIs. The Python port for EMX tries to support all the " +"POSIX-like capability exposed by the EMX runtime, and mostly succeeds; :func:" +"`!fork` and :func:`fcntl` are restricted by the limitations of the " "underlying emulation layer. The standard OS/2 port, which uses IBM's Visual " -"Age compiler, also gained support for case-sensitive import semantics as part" -" of the integration of the EMX port into CVS. (Contributed by Andrew " +"Age compiler, also gained support for case-sensitive import semantics as " +"part of the integration of the EMX port into CVS. (Contributed by Andrew " "MacIntyre.)" msgstr "" @@ -2871,8 +2867,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:1957 msgid "" -"Other new platforms now supported by Python include AtheOS " -"(http://www.atheos.cx/), GNU/Hurd, and OpenVMS." +"Other new platforms now supported by Python include AtheOS (http://www." +"atheos.cx/), GNU/Hurd, and OpenVMS." msgstr "" #: ../../whatsnew/2.3.rst:1966 @@ -2882,9 +2878,9 @@ msgstr "" #: ../../whatsnew/2.3.rst:1968 msgid "" "As usual, there were a bunch of other improvements and bugfixes scattered " -"throughout the source tree. A search through the CVS change logs finds there" -" were 523 patches applied and 514 bugs fixed between Python 2.2 and 2.3. " -"Both figures are likely to be underestimates." +"throughout the source tree. A search through the CVS change logs finds " +"there were 523 patches applied and 514 bugs fixed between Python 2.2 and " +"2.3. Both figures are likely to be underestimates." msgstr "" #: ../../whatsnew/2.3.rst:1973 @@ -2894,10 +2890,10 @@ msgstr "" #: ../../whatsnew/2.3.rst:1975 msgid "" "If the :envvar:`PYTHONINSPECT` environment variable is set, the Python " -"interpreter will enter the interactive prompt after running a Python program," -" as if Python had been invoked with the :option:`-i` option. The environment " -"variable can be set before running the Python interpreter, or it can be set " -"by the Python program as part of its execution." +"interpreter will enter the interactive prompt after running a Python " +"program, as if Python had been invoked with the :option:`-i` option. The " +"environment variable can be set before running the Python interpreter, or it " +"can be set by the Python program as part of its execution." msgstr "" #: ../../whatsnew/2.3.rst:1981 @@ -2905,8 +2901,8 @@ msgid "" "The :file:`regrtest.py` script now provides a way to allow \"all resources " "except *foo*.\" A resource name passed to the :option:`!-u` option can now " "be prefixed with a hyphen (``'-'``) to mean \"remove this resource.\" For " -"example, the option '``-uall,-bsddb``' could be used to enable the use of all" -" resources except ``bsddb``." +"example, the option '``-uall,-bsddb``' could be used to enable the use of " +"all resources except ``bsddb``." msgstr "" #: ../../whatsnew/2.3.rst:1987 @@ -2921,8 +2917,8 @@ msgid "" "opcode was needed to produce line numbers in tracebacks and support trace " "functions (for, e.g., :mod:`pdb`). Since Python 1.5, the line numbers in " "tracebacks have been computed using a different mechanism that works with " -"\"python -O\". For Python 2.3 Michael Hudson implemented a similar scheme to" -" determine when to call the trace function, removing the need for " +"\"python -O\". For Python 2.3 Michael Hudson implemented a similar scheme " +"to determine when to call the trace function, removing the need for " "``SET_LINENO`` entirely." msgstr "" @@ -2942,11 +2938,10 @@ msgstr "" #: ../../whatsnew/2.3.rst:2006 msgid "" -"A nifty new feature is that trace functions can now assign to the " -":attr:`~frame.f_lineno` attribute of frame objects, changing the line that " -"will be executed next. A ``jump`` command has been added to the :mod:`pdb` " -"debugger taking advantage of this new feature. (Implemented by Richie " -"Hindle.)" +"A nifty new feature is that trace functions can now assign to the :attr:" +"`~frame.f_lineno` attribute of frame objects, changing the line that will be " +"executed next. A ``jump`` command has been added to the :mod:`pdb` debugger " +"taking advantage of this new feature. (Implemented by Richie Hindle.)" msgstr "" #: ../../whatsnew/2.3.rst:2015 @@ -2974,8 +2969,8 @@ msgstr "" #: ../../whatsnew/2.3.rst:2026 msgid "" "The :func:`int` type constructor will now return a long integer instead of " -"raising an :exc:`OverflowError` when a string or floating-point number is too" -" large to fit into an integer." +"raising an :exc:`OverflowError` when a string or floating-point number is " +"too large to fit into an integer." msgstr "" #: ../../whatsnew/2.3.rst:2030 @@ -2987,27 +2982,27 @@ msgstr "" #: ../../whatsnew/2.3.rst:2034 msgid "" -"Calling Tcl methods through :mod:`!_tkinter` no longer returns only strings." -" Instead, if Tcl returns other objects those objects are converted to their " -"Python equivalent, if one exists, or wrapped with a " -":class:`!_tkinter.Tcl_Obj` object if no Python equivalent exists." +"Calling Tcl methods through :mod:`!_tkinter` no longer returns only " +"strings. Instead, if Tcl returns other objects those objects are converted " +"to their Python equivalent, if one exists, or wrapped with a :class:`!" +"_tkinter.Tcl_Obj` object if no Python equivalent exists." msgstr "" #: ../../whatsnew/2.3.rst:2039 msgid "" -"Large octal and hex literals such as ``0xffffffff`` now trigger a " -":exc:`FutureWarning`. Currently they're stored as 32-bit numbers and result " -"in a negative value, but in Python 2.4 they'll become positive long integers." +"Large octal and hex literals such as ``0xffffffff`` now trigger a :exc:" +"`FutureWarning`. Currently they're stored as 32-bit numbers and result in a " +"negative value, but in Python 2.4 they'll become positive long integers." msgstr "" #: ../../whatsnew/2.3.rst:2043 msgid "" "There are a few ways to fix this warning. If you really need a positive " -"number, just add an ``L`` to the end of the literal. If you're trying to get" -" a 32-bit integer with low bits set and have previously used an expression " -"such as ``~(1 << 31)``, it's probably clearest to start with all bits set and" -" clear the desired upper bits. For example, to clear just the top bit (bit " -"31), you could write ``0xffffffffL &~(1L<<31)``." +"number, just add an ``L`` to the end of the literal. If you're trying to " +"get a 32-bit integer with low bits set and have previously used an " +"expression such as ``~(1 << 31)``, it's probably clearest to start with all " +"bits set and clear the desired upper bits. For example, to clear just the " +"top bit (bit 31), you could write ``0xffffffffL &~(1L<<31)``." msgstr "" #: ../../whatsnew/2.3.rst:2050 @@ -3018,9 +3013,9 @@ msgstr "" msgid "" "The Distutils :func:`!setup` function has gained various new keyword " "arguments such as *depends*. Old versions of the Distutils will abort if " -"passed unknown keywords. A solution is to check for the presence of the new " -":func:`!get_distutil_options` function in your :file:`setup.py` and only uses" -" the new keywords with a version of the Distutils that supports them::" +"passed unknown keywords. A solution is to check for the presence of the " +"new :func:`!get_distutil_options` function in your :file:`setup.py` and only " +"uses the new keywords with a version of the Distutils that supports them::" msgstr "" #: ../../whatsnew/2.3.rst:2058 @@ -3051,14 +3046,14 @@ msgstr "" #: ../../whatsnew/2.3.rst:2079 msgid "" -"The author would like to thank the following people for offering suggestions," -" corrections and assistance with various drafts of this article: Jeff Bauer, " -"Simon Brunning, Brett Cannon, Michael Chermside, Andrew Dalke, Scott David " -"Daniels, Fred L. Drake, Jr., David Fraser, Kelly Gerber, Raymond Hettinger, " -"Michael Hudson, Chris Lambert, Detlef Lannert, Martin von Löwis, Andrew " -"MacIntyre, Lalo Martins, Chad Netzer, Gustavo Niemeyer, Neal Norwitz, Hans " -"Nowak, Chris Reedy, Francesco Ricciardi, Vinay Sajip, Neil Schemenauer, Roman" -" Suzi, Jason Tishler, Just van Rossum." +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Jeff Bauer, Simon Brunning, Brett Cannon, Michael Chermside, Andrew Dalke, " +"Scott David Daniels, Fred L. Drake, Jr., David Fraser, Kelly Gerber, " +"Raymond Hettinger, Michael Hudson, Chris Lambert, Detlef Lannert, Martin von " +"Löwis, Andrew MacIntyre, Lalo Martins, Chad Netzer, Gustavo Niemeyer, Neal " +"Norwitz, Hans Nowak, Chris Reedy, Francesco Ricciardi, Vinay Sajip, Neil " +"Schemenauer, Roman Suzi, Jason Tishler, Just van Rossum." msgstr "" #: ../../whatsnew/2.3.rst:371 diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po index 7c72b531..2d714806 100644 --- a/whatsnew/2.4.po +++ b/whatsnew/2.4.po @@ -34,23 +34,23 @@ msgstr "" #: ../../whatsnew/2.4.rst:14 msgid "" -"This article explains the new features in Python 2.4.1, released on March 30," -" 2005." +"This article explains the new features in Python 2.4.1, released on March " +"30, 2005." msgstr "" #: ../../whatsnew/2.4.rst:17 msgid "" "Python 2.4 is a medium-sized release. It doesn't introduce as many changes " -"as the radical Python 2.2, but introduces more features than the conservative" -" 2.3 release. The most significant new language features are function " -"decorators and generator expressions; most other changes are to the standard " -"library." +"as the radical Python 2.2, but introduces more features than the " +"conservative 2.3 release. The most significant new language features are " +"function decorators and generator expressions; most other changes are to the " +"standard library." msgstr "" #: ../../whatsnew/2.4.rst:22 msgid "" -"According to the CVS change logs, there were 481 patches applied and 502 bugs" -" fixed between Python 2.3 and 2.4. Both figures are likely to be " +"According to the CVS change logs, there were 481 patches applied and 502 " +"bugs fixed between Python 2.3 and 2.4. Both figures are likely to be " "underestimates." msgstr "" @@ -70,12 +70,12 @@ msgstr "" #: ../../whatsnew/2.4.rst:38 msgid "" -"Python 2.3 introduced the :mod:`!sets` module. C implementations of set data" -" types have now been added to the Python core as two new built-in types, " +"Python 2.3 introduced the :mod:`!sets` module. C implementations of set " +"data types have now been added to the Python core as two new built-in types, " "``set(iterable)`` and ``frozenset(iterable)``. They provide high speed " -"operations for membership testing, for eliminating duplicates from sequences," -" and for mathematical operations like unions, intersections, differences, and" -" symmetric differences. ::" +"operations for membership testing, for eliminating duplicates from " +"sequences, and for mathematical operations like unions, intersections, " +"differences, and symmetric differences. ::" msgstr "" #: ../../whatsnew/2.4.rst:45 @@ -116,9 +116,9 @@ msgstr "" #: ../../whatsnew/2.4.rst:75 msgid "" -"The :mod:`!sets` module remains in the standard library, and may be useful if" -" you wish to subclass the :class:`!Set` or :class:`!ImmutableSet` classes. " -"There are currently no plans to deprecate the module." +"The :mod:`!sets` module remains in the standard library, and may be useful " +"if you wish to subclass the :class:`!Set` or :class:`!ImmutableSet` " +"classes. There are currently no plans to deprecate the module." msgstr "" #: ../../whatsnew/2.4.rst:82 @@ -139,18 +139,18 @@ msgstr "" msgid "" "The lengthy transition process for this PEP, begun in Python 2.2, takes " "another step forward in Python 2.4. In 2.3, certain integer operations that " -"would behave differently after int/long unification triggered " -":exc:`FutureWarning` warnings and returned values limited to 32 or 64 bits " +"would behave differently after int/long unification triggered :exc:" +"`FutureWarning` warnings and returned values limited to 32 or 64 bits " "(depending on your platform). In 2.4, these expressions no longer produce a " "warning and instead produce a different result that's usually a long integer." msgstr "" #: ../../whatsnew/2.4.rst:99 msgid "" -"The problematic expressions are primarily left shifts and lengthy hexadecimal" -" and octal constants. For example, ``2 << 32`` results in a warning in 2.3, " -"evaluating to 0 on 32-bit platforms. In Python 2.4, this expression now " -"returns the correct answer, 8589934592." +"The problematic expressions are primarily left shifts and lengthy " +"hexadecimal and octal constants. For example, ``2 << 32`` results in a " +"warning in 2.3, evaluating to 0 on 32-bit platforms. In Python 2.4, this " +"expression now returns the correct answer, 8589934592." msgstr "" #: ../../whatsnew/2.4.rst:107 @@ -169,14 +169,14 @@ msgstr "" #: ../../whatsnew/2.4.rst:117 msgid "" -"The iterator feature introduced in Python 2.2 and the :mod:`itertools` module" -" make it easier to write programs that loop through large data sets without " -"having the entire data set in memory at one time. List comprehensions don't " -"fit into this picture very well because they produce a Python list object " -"containing all of the items. This unavoidably pulls all of the objects into " -"memory, which can be a problem if your data set is very large. When trying " -"to write a functionally styled program, it would be natural to write " -"something like::" +"The iterator feature introduced in Python 2.2 and the :mod:`itertools` " +"module make it easier to write programs that loop through large data sets " +"without having the entire data set in memory at one time. List " +"comprehensions don't fit into this picture very well because they produce a " +"Python list object containing all of the items. This unavoidably pulls all " +"of the objects into memory, which can be a problem if your data set is very " +"large. When trying to write a functionally styled program, it would be " +"natural to write something like::" msgstr "" #: ../../whatsnew/2.4.rst:125 @@ -208,8 +208,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:140 msgid "" "Generator expressions work similarly to list comprehensions but don't " -"materialize the entire list; instead they create a generator that will return" -" elements one by one. The above example could be written as::" +"materialize the entire list; instead they create a generator that will " +"return elements one by one. The above example could be written as::" msgstr "" #: ../../whatsnew/2.4.rst:144 @@ -221,10 +221,10 @@ msgstr "" #: ../../whatsnew/2.4.rst:148 msgid "" -"Generator expressions always have to be written inside parentheses, as in the" -" above example. The parentheses signalling a function call also count, so if" -" you want to create an iterator that will be immediately passed to a function" -" you could write::" +"Generator expressions always have to be written inside parentheses, as in " +"the above example. The parentheses signalling a function call also count, " +"so if you want to create an iterator that will be immediately passed to a " +"function you could write::" msgstr "" #: ../../whatsnew/2.4.rst:153 @@ -247,8 +247,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:165 msgid "" -"Proposed by Raymond Hettinger and implemented by Jiwon Seo with early efforts" -" steered by Hye-Shik Chang." +"Proposed by Raymond Hettinger and implemented by Jiwon Seo with early " +"efforts steered by Hye-Shik Chang." msgstr "" #: ../../whatsnew/2.4.rst:172 @@ -257,8 +257,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:174 msgid "" -"Some new classes in the standard library provide an alternative mechanism for" -" substituting variables into strings; this style of substitution may be " +"Some new classes in the standard library provide an alternative mechanism " +"for substituting variables into strings; this style of substitution may be " "better for applications where untrained users need to edit templates." msgstr "" @@ -274,14 +274,15 @@ msgstr "" #: ../../whatsnew/2.4.rst:183 msgid "" -"When writing the template string, it can be easy to forget the ``i`` or ``s``" -" after the closing parenthesis. This isn't a big problem if the template is " -"in a Python module, because you run the code, get an \"Unsupported format " -"character\" :exc:`ValueError`, and fix the problem. However, consider an " -"application such as Mailman where template strings or translations are being " -"edited by users who aren't aware of the Python language. The format string's" -" syntax is complicated to explain to such users, and if they make a mistake, " -"it's difficult to provide helpful feedback to them." +"When writing the template string, it can be easy to forget the ``i`` or " +"``s`` after the closing parenthesis. This isn't a big problem if the " +"template is in a Python module, because you run the code, get an " +"\"Unsupported format character\" :exc:`ValueError`, and fix the problem. " +"However, consider an application such as Mailman where template strings or " +"translations are being edited by users who aren't aware of the Python " +"language. The format string's syntax is complicated to explain to such " +"users, and if they make a mistake, it's difficult to provide helpful " +"feedback to them." msgstr "" #: ../../whatsnew/2.4.rst:192 @@ -300,10 +301,9 @@ msgstr "" #: ../../whatsnew/2.4.rst:200 msgid "" -"If a key is missing from the dictionary, the " -":meth:`~string.Template.substitute` method will raise a :exc:`KeyError`. " -"There's also a :meth:`~string.Template.safe_substitute` method that ignores " -"missing keys::" +"If a key is missing from the dictionary, the :meth:`~string.Template." +"substitute` method will raise a :exc:`KeyError`. There's also a :meth:" +"`~string.Template.safe_substitute` method that ignores missing keys::" msgstr "" #: ../../whatsnew/2.4.rst:204 @@ -329,9 +329,9 @@ msgstr "" msgid "" "Python 2.2 extended Python's object model by adding static methods and class " "methods, but it didn't extend Python's syntax to provide any new way of " -"defining static or class methods. Instead, you had to write a :keyword:`def`" -" statement in the usual way, and pass the resulting method to a " -":func:`staticmethod` or :func:`classmethod` function that would wrap up the " +"defining static or class methods. Instead, you had to write a :keyword:" +"`def` statement in the usual way, and pass the resulting method to a :func:" +"`staticmethod` or :func:`classmethod` function that would wrap up the " "function as a method of the new type. Your code would look like this::" msgstr "" @@ -346,8 +346,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:233 msgid "" -"If the method was very long, it would be easy to miss or forget the " -":func:`classmethod` invocation after the function body." +"If the method was very long, it would be easy to miss or forget the :func:" +"`classmethod` invocation after the function body." msgstr "" #: ../../whatsnew/2.4.rst:236 @@ -419,11 +419,11 @@ msgstr "" #: ../../whatsnew/2.4.rst:275 msgid "" "A decorator is just a function that takes the function to be decorated as an " -"argument and returns either the same function or some new object. The return" -" value of the decorator need not be callable (though it typically is), unless" -" further decorators will be applied to the result. It's easy to write your " -"own decorators. The following simple example just sets an attribute on the " -"function object::" +"argument and returns either the same function or some new object. The " +"return value of the decorator need not be callable (though it typically is), " +"unless further decorators will be applied to the result. It's easy to write " +"your own decorators. The following simple example just sets an attribute on " +"the function object::" msgstr "" #: ../../whatsnew/2.4.rst:282 @@ -444,8 +444,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:295 msgid "" -"As a slightly more realistic example, the following decorator checks that the" -" supplied argument is an integer::" +"As a slightly more realistic example, the following decorator checks that " +"the supplied argument is an integer::" msgstr "" #: ../../whatsnew/2.4.rst:298 @@ -497,8 +497,8 @@ msgstr "" msgid "" "A small related change makes the :attr:`func_name ` " "attribute of functions writable. This attribute is used to display function " -"names in tracebacks, so decorators should change the name of any new function" -" that's constructed and returned." +"names in tracebacks, so decorators should change the name of any new " +"function that's constructed and returned." msgstr "" #: ../../whatsnew/2.4.rst:336 @@ -508,8 +508,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:337 msgid "" "Written by Kevin D. Smith, Jim Jewett, and Skip Montanaro. Several people " -"wrote patches implementing function decorators, but the one that was actually" -" checked in was patch #979728, written by Mark Russell." +"wrote patches implementing function decorators, but the one that was " +"actually checked in was patch #979728, written by Mark Russell." msgstr "" #: ../../whatsnew/2.4.rst:341 @@ -549,8 +549,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:363 msgid "" "Note that :func:`reversed` only accepts sequences, not arbitrary iterators. " -"If you want to reverse an iterator, first convert it to a list with " -":func:`list`. ::" +"If you want to reverse an iterator, first convert it to a list with :func:" +"`list`. ::" msgstr "" #: ../../whatsnew/2.4.rst:367 @@ -578,21 +578,20 @@ msgstr "" #: ../../whatsnew/2.4.rst:386 msgid "" "The standard library provides a number of ways to execute a subprocess, " -"offering different features and different levels of complexity. " -"``os.system(command)`` is easy to use, but slow (it runs a shell process " -"which executes the command) and dangerous (you have to be careful about " -"escaping the shell's metacharacters). The :mod:`!popen2` module offers " -"classes that can capture standard output and standard error from the " -"subprocess, but the naming is confusing. The :mod:`subprocess` module cleans" -" this up, providing a unified interface that offers all the features you " -"might need." +"offering different features and different levels of complexity. ``os." +"system(command)`` is easy to use, but slow (it runs a shell process which " +"executes the command) and dangerous (you have to be careful about escaping " +"the shell's metacharacters). The :mod:`!popen2` module offers classes that " +"can capture standard output and standard error from the subprocess, but the " +"naming is confusing. The :mod:`subprocess` module cleans this up, " +"providing a unified interface that offers all the features you might need." msgstr "" #: ../../whatsnew/2.4.rst:395 msgid "" -"Instead of :mod:`!popen2`'s collection of classes, :mod:`subprocess` contains" -" a single class called :class:`subprocess.Popen` whose constructor supports " -"a number of different keyword arguments. ::" +"Instead of :mod:`!popen2`'s collection of classes, :mod:`subprocess` " +"contains a single class called :class:`subprocess.Popen` whose constructor " +"supports a number of different keyword arguments. ::" msgstr "" #: ../../whatsnew/2.4.rst:399 @@ -607,8 +606,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:405 msgid "" "*args* is commonly a sequence of strings that will be the arguments to the " -"program executed as the subprocess. (If the *shell* argument is true, *args*" -" can be a string which will then be passed on to the shell for " +"program executed as the subprocess. (If the *shell* argument is true, " +"*args* can be a string which will then be passed on to the shell for " "interpretation, just as :func:`os.system` does.)" msgstr "" @@ -647,14 +646,14 @@ msgstr "" #: ../../whatsnew/2.4.rst:430 msgid "" -"*universal_newlines* opens the child's input and output using Python's " -":term:`universal newlines` feature." +"*universal_newlines* opens the child's input and output using Python's :term:" +"`universal newlines` feature." msgstr "" #: ../../whatsnew/2.4.rst:433 msgid "" -"Once you've created the :class:`~subprocess.Popen` instance, you can call its" -" :meth:`~subprocess.Popen.wait` method to pause until the subprocess has " +"Once you've created the :class:`~subprocess.Popen` instance, you can call " +"its :meth:`~subprocess.Popen.wait` method to pause until the subprocess has " "exited, :meth:`~subprocess.Popen.poll` to check if it's exited without " "pausing, or ``communicate(data)`` to send the string *data* to the " "subprocess's standard input. ``communicate(data)`` then reads any data " @@ -664,10 +663,10 @@ msgstr "" #: ../../whatsnew/2.4.rst:440 msgid "" -":func:`~subprocess.call` is a shortcut that passes its arguments along to the" -" :class:`~subprocess.Popen` constructor, waits for the command to complete, " -"and returns the status code of the subprocess. It can serve as a safer " -"analog to :func:`os.system`::" +":func:`~subprocess.call` is a shortcut that passes its arguments along to " +"the :class:`~subprocess.Popen` constructor, waits for the command to " +"complete, and returns the status code of the subprocess. It can serve as a " +"safer analog to :func:`os.system`::" msgstr "" #: ../../whatsnew/2.4.rst:444 @@ -684,8 +683,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:452 msgid "" "The command is invoked without use of the shell. If you really do want to " -"use the shell, you can add ``shell=True`` as a keyword argument and provide a" -" string instead of a sequence::" +"use the shell, you can add ``shell=True`` as a keyword argument and provide " +"a string instead of a sequence::" msgstr "" #: ../../whatsnew/2.4.rst:456 @@ -753,10 +752,10 @@ msgstr "" #: ../../whatsnew/2.4.rst:498 msgid "" "For example, the number 1.25 has positive sign, a mantissa value of 1.01 (in " -"binary), and an exponent of 0 (the decimal point doesn't need to be shifted)." -" The number 5 has the same sign and mantissa, but the exponent is 2 because " -"the mantissa is multiplied by 4 (2 to the power of the exponent 2); 1.25 \\* " -"4 equals 5." +"binary), and an exponent of 0 (the decimal point doesn't need to be " +"shifted). The number 5 has the same sign and mantissa, but the exponent is 2 " +"because the mantissa is multiplied by 4 (2 to the power of the exponent 2); " +"1.25 \\* 4 equals 5." msgstr "" #: ../../whatsnew/2.4.rst:504 @@ -797,8 +796,8 @@ msgstr "" msgid "" "For many applications this doesn't matter. If I'm plotting points and " "displaying them on my monitor, the difference between 1.1 and " -"1.1000000000000001 is too small to be visible. Reports often limit output to" -" a certain number of decimal places, and if you round the number to two or " +"1.1000000000000001 is too small to be visible. Reports often limit output " +"to a certain number of decimal places, and if you round the number to two or " "three or even eight decimal places, the error is never apparent. However, " "for applications where it does matter, it's a lot of work to implement your " "own custom arithmetic routines." @@ -815,10 +814,10 @@ msgstr "" #: ../../whatsnew/2.4.rst:540 msgid "" "A new module, :mod:`decimal`, was added to Python's standard library. It " -"contains two classes, :class:`~decimal.Decimal` and " -":class:`~decimal.Context`. :class:`~decimal.Decimal` instances represent " -"numbers, and :class:`~decimal.Context` instances are used to wrap up various " -"settings such as the precision and default rounding mode." +"contains two classes, :class:`~decimal.Decimal` and :class:`~decimal." +"Context`. :class:`~decimal.Decimal` instances represent numbers, and :class:" +"`~decimal.Context` instances are used to wrap up various settings such as " +"the precision and default rounding mode." msgstr "" #: ../../whatsnew/2.4.rst:545 @@ -840,8 +839,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:556 msgid "" -"You can also provide tuples containing the sign, the mantissa represented as" -" a tuple of decimal digits, and the exponent::" +"You can also provide tuples containing the sign, the mantissa represented " +"as a tuple of decimal digits, and the exponent::" msgstr "" #: ../../whatsnew/2.4.rst:559 @@ -915,17 +914,18 @@ msgid "" ">>> a + 4.5\n" "Traceback (most recent call last):\n" " ...\n" -"TypeError: You can interact Decimal only with int, long or Decimal data types.\n" +"TypeError: You can interact Decimal only with int, long or Decimal data " +"types.\n" ">>>" msgstr "" #: ../../whatsnew/2.4.rst:610 msgid "" -":class:`~decimal.Decimal` numbers can be used with the :mod:`math` and " -":mod:`cmath` modules, but note that they'll be immediately converted to " -"floating-point numbers before the operation is performed, resulting in a " -"possible loss of precision and accuracy. You'll also get back a regular " -"floating-point number and not a :class:`~decimal.Decimal`. ::" +":class:`~decimal.Decimal` numbers can be used with the :mod:`math` and :mod:" +"`cmath` modules, but note that they'll be immediately converted to floating-" +"point numbers before the operation is performed, resulting in a possible " +"loss of precision and accuracy. You'll also get back a regular floating-" +"point number and not a :class:`~decimal.Decimal`. ::" msgstr "" #: ../../whatsnew/2.4.rst:616 @@ -941,8 +941,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:623 msgid "" ":class:`~decimal.Decimal` instances have a :meth:`~decimal.Decimal.sqrt` " -"method that returns a :class:`~decimal.Decimal`, but if you need other things" -" such as trigonometric functions you'll have to implement them. ::" +"method that returns a :class:`~decimal.Decimal`, but if you need other " +"things such as trigonometric functions you'll have to implement them. ::" msgstr "" #: ../../whatsnew/2.4.rst:627 @@ -957,8 +957,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:634 msgid "" -"Instances of the :class:`~decimal.Context` class encapsulate several settings" -" for decimal operations:" +"Instances of the :class:`~decimal.Context` class encapsulate several " +"settings for decimal operations:" msgstr "" #: ../../whatsnew/2.4.rst:637 @@ -968,10 +968,10 @@ msgstr "" #: ../../whatsnew/2.4.rst:639 msgid "" -":attr:`~decimal.Context.rounding` specifies the rounding mode. The " -":mod:`decimal` module has constants for the various possibilities: " -":const:`~decimal.ROUND_DOWN`, :const:`~decimal.ROUND_CEILING`, " -":const:`~decimal.ROUND_HALF_EVEN`, and various others." +":attr:`~decimal.Context.rounding` specifies the rounding mode. The :mod:" +"`decimal` module has constants for the various possibilities: :const:" +"`~decimal.ROUND_DOWN`, :const:`~decimal.ROUND_CEILING`, :const:`~decimal." +"ROUND_HALF_EVEN`, and various others." msgstr "" #: ../../whatsnew/2.4.rst:644 @@ -984,10 +984,10 @@ msgstr "" #: ../../whatsnew/2.4.rst:649 msgid "" -"There's a thread-local default context available by calling " -":func:`~decimal.getcontext`; you can change the properties of this context to" -" alter the default precision, rounding, or trap handling. The following " -"example shows the effect of changing the precision of the default context::" +"There's a thread-local default context available by calling :func:`~decimal." +"getcontext`; you can change the properties of this context to alter the " +"default precision, rounding, or trap handling. The following example shows " +"the effect of changing the precision of the default context::" msgstr "" #: ../../whatsnew/2.4.rst:654 @@ -1004,8 +1004,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:662 msgid "" "The default action for error conditions is selectable; the module can either " -"return a special value such as infinity or not-a-number, or exceptions can be" -" raised::" +"return a special value such as infinity or not-a-number, or exceptions can " +"be raised::" msgstr "" #: ../../whatsnew/2.4.rst:666 @@ -1023,8 +1023,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:675 msgid "" "The :class:`~decimal.Context` instance also has various methods for " -"formatting numbers such as :meth:`~decimal.Context.to_eng_string` and " -":meth:`~decimal.Context.to_sci_string`." +"formatting numbers such as :meth:`~decimal.Context.to_eng_string` and :meth:" +"`~decimal.Context.to_sci_string`." msgstr "" #: ../../whatsnew/2.4.rst:678 @@ -1045,8 +1045,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:688 msgid "" -"`http://www.lahey.com/float.htm " -"`__" +"`http://www.lahey.com/float.htm `__" msgstr "" #: ../../whatsnew/2.4.rst:689 @@ -1125,12 +1125,12 @@ msgstr "" #: ../../whatsnew/2.4.rst:739 msgid "" -"The :mod:`locale` modules lets Python software select various conversions and" -" display conventions that are localized to a particular country or language. " -"However, the module was careful to not change the numeric locale because " -"various functions in Python's implementation required that the numeric locale" -" remain set to the ``'C'`` locale. Often this was because the code was using" -" the C library's :c:func:`!atof` function." +"The :mod:`locale` modules lets Python software select various conversions " +"and display conventions that are localized to a particular country or " +"language. However, the module was careful to not change the numeric locale " +"because various functions in Python's implementation required that the " +"numeric locale remain set to the ``'C'`` locale. Often this was because the " +"code was using the C library's :c:func:`!atof` function." msgstr "" #: ../../whatsnew/2.4.rst:746 @@ -1143,8 +1143,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:751 msgid "" -"The solution described in the PEP is to add three new functions to the Python" -" API that perform ASCII-only conversions, ignoring the locale setting:" +"The solution described in the PEP is to add three new functions to the " +"Python API that perform ASCII-only conversions, ignoring the locale setting:" msgstr "" #: ../../whatsnew/2.4.rst:754 @@ -1155,19 +1155,18 @@ msgstr "" #: ../../whatsnew/2.4.rst:757 msgid "" -"``PyOS_ascii_formatd(buffer, buf_len, format, d)`` converts a " -":c:expr:`double` to an ASCII string." +"``PyOS_ascii_formatd(buffer, buf_len, format, d)`` converts a :c:expr:" +"`double` to an ASCII string." msgstr "" #: ../../whatsnew/2.4.rst:760 msgid "" "The code for these functions came from the GLib library (`https://developer-" -"old.gnome.org/glib/2.26/ " -"`__)," -" whose developers kindly relicensed the relevant functions and donated them " -"to the Python Software Foundation. The :mod:`locale` module can now change " -"the numeric locale, letting extensions such as GTK+ produce the correct " -"results." +"old.gnome.org/glib/2.26/ `__), whose developers kindly relicensed the " +"relevant functions and donated them to the Python Software Foundation. The :" +"mod:`locale` module can now change the numeric locale, letting extensions " +"such as GTK+ produce the correct results." msgstr "" #: ../../whatsnew/2.4.rst:769 @@ -1216,23 +1215,23 @@ msgstr "" #: ../../whatsnew/2.4.rst:793 msgid "" -"The :meth:`dict.update` method now accepts the same argument forms as the " -":class:`dict` constructor. This includes any mapping, any iterable of " -"key/value pairs, and keyword arguments. (Contributed by Raymond Hettinger.)" +"The :meth:`dict.update` method now accepts the same argument forms as the :" +"class:`dict` constructor. This includes any mapping, any iterable of key/" +"value pairs, and keyword arguments. (Contributed by Raymond Hettinger.)" msgstr "" #: ../../whatsnew/2.4.rst:797 msgid "" -"The string methods :meth:`~str.ljust`, :meth:`~str.rjust`, and " -":meth:`~str.center` now take an optional argument for specifying a fill " -"character other than a space. (Contributed by Raymond Hettinger.)" +"The string methods :meth:`~str.ljust`, :meth:`~str.rjust`, and :meth:`~str." +"center` now take an optional argument for specifying a fill character other " +"than a space. (Contributed by Raymond Hettinger.)" msgstr "" #: ../../whatsnew/2.4.rst:801 msgid "" -"Strings also gained an :meth:`~str.rsplit` method that works like the " -":meth:`~str.split` method but splits from the end of the string. " -"(Contributed by Sean Reifschneider.) ::" +"Strings also gained an :meth:`~str.rsplit` method that works like the :meth:" +"`~str.split` method but splits from the end of the string. (Contributed by " +"Sean Reifschneider.) ::" msgstr "" #: ../../whatsnew/2.4.rst:805 @@ -1245,17 +1244,18 @@ msgstr "" #: ../../whatsnew/2.4.rst:810 msgid "" -"Three keyword parameters, *cmp*, *key*, and *reverse*, were added to the " -":meth:`~list.sort` method of lists. These parameters make some common usages " +"Three keyword parameters, *cmp*, *key*, and *reverse*, were added to the :" +"meth:`~list.sort` method of lists. These parameters make some common usages " "of :meth:`~list.sort` simpler. All of these parameters are optional." msgstr "" #: ../../whatsnew/2.4.rst:814 msgid "" -"For the *cmp* parameter, the value should be a comparison function that takes" -" two parameters and returns -1, 0, or +1 depending on how the parameters " -"compare. This function will then be used to sort the list. Previously this " -"was the only parameter that could be provided to :meth:`~list.sort`." +"For the *cmp* parameter, the value should be a comparison function that " +"takes two parameters and returns -1, 0, or +1 depending on how the " +"parameters compare. This function will then be used to sort the list. " +"Previously this was the only parameter that could be provided to :meth:" +"`~list.sort`." msgstr "" #: ../../whatsnew/2.4.rst:819 @@ -1283,18 +1283,18 @@ msgstr "" #: ../../whatsnew/2.4.rst:836 msgid "" -"The last example, which uses the *cmp* parameter, is the old way to perform a" -" case-insensitive sort. It works but is slower than using a *key* parameter." -" Using *key* calls :meth:`~str.lower` method once for each element in the " -"list while using *cmp* will call it twice for each comparison, so using *key*" -" saves on invocations of the :meth:`~str.lower` method." +"The last example, which uses the *cmp* parameter, is the old way to perform " +"a case-insensitive sort. It works but is slower than using a *key* " +"parameter. Using *key* calls :meth:`~str.lower` method once for each element " +"in the list while using *cmp* will call it twice for each comparison, so " +"using *key* saves on invocations of the :meth:`~str.lower` method." msgstr "" #: ../../whatsnew/2.4.rst:842 msgid "" "For simple key functions and comparison functions, it is often possible to " -"avoid a :keyword:`lambda` expression by using an unbound method instead. For" -" example, the above case-insensitive sort is best written as::" +"avoid a :keyword:`lambda` expression by using an unbound method instead. " +"For example, the above case-insensitive sort is best written as::" msgstr "" #: ../../whatsnew/2.4.rst:846 @@ -1307,8 +1307,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:850 msgid "" "Finally, the *reverse* parameter takes a Boolean value. If the value is " -"true, the list will be sorted into reverse order. Instead of ``L.sort(); " -"L.reverse()``, you can now write ``L.sort(reverse=True)``." +"true, the list will be sorted into reverse order. Instead of ``L.sort(); L." +"reverse()``, you can now write ``L.sort(reverse=True)``." msgstr "" #: ../../whatsnew/2.4.rst:854 @@ -1316,8 +1316,8 @@ msgid "" "The results of sorting are now guaranteed to be stable. This means that two " "entries with equal keys will be returned in the same order as they were " "input. For example, you can sort a list of people by name, and then sort the " -"list by age, resulting in a list sorted by age where people with the same age" -" are in name-sorted order." +"list by age, resulting in a list sorted by age where people with the same " +"age are in name-sorted order." msgstr "" #: ../../whatsnew/2.4.rst:860 @@ -1372,8 +1372,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:895 ../../whatsnew/2.4.rst:1521 msgid "" -"Integer operations will no longer trigger an :exc:`!OverflowWarning`. The " -":exc:`!OverflowWarning` warning will disappear in Python 2.5." +"Integer operations will no longer trigger an :exc:`!OverflowWarning`. The :" +"exc:`!OverflowWarning` warning will disappear in Python 2.5." msgstr "" #: ../../whatsnew/2.4.rst:898 @@ -1395,9 +1395,9 @@ msgstr "" #: ../../whatsnew/2.4.rst:908 msgid "" "The :func:`zip` built-in function and :func:`!itertools.izip` now return an " -"empty list if called with no arguments. Previously they raised a " -":exc:`TypeError` exception. This makes them more suitable for use with " -"variable length argument lists::" +"empty list if called with no arguments. Previously they raised a :exc:" +"`TypeError` exception. This makes them more suitable for use with variable " +"length argument lists::" msgstr "" #: ../../whatsnew/2.4.rst:913 @@ -1433,33 +1433,33 @@ msgstr "Optimierungen" msgid "" "The inner loops for list and tuple slicing were optimized and now run about " "one-third faster. The inner loops for dictionaries were also optimized, " -"resulting in performance boosts for :meth:`~dict.keys`, :meth:`~dict.values`," -" :meth:`~dict.items`, :meth:`!iterkeys`, :meth:`!itervalues`, and " -":meth:`!iteritems`. (Contributed by Raymond Hettinger.)" +"resulting in performance boosts for :meth:`~dict.keys`, :meth:`~dict." +"values`, :meth:`~dict.items`, :meth:`!iterkeys`, :meth:`!itervalues`, and :" +"meth:`!iteritems`. (Contributed by Raymond Hettinger.)" msgstr "" #: ../../whatsnew/2.4.rst:943 msgid "" -"The machinery for growing and shrinking lists was optimized for speed and for" -" space efficiency. Appending and popping from lists now runs faster due to " -"more efficient code paths and less frequent use of the underlying system " -":c:func:`realloc`. List comprehensions also benefit. :meth:`list.extend` " +"The machinery for growing and shrinking lists was optimized for speed and " +"for space efficiency. Appending and popping from lists now runs faster due " +"to more efficient code paths and less frequent use of the underlying system :" +"c:func:`realloc`. List comprehensions also benefit. :meth:`list.extend` " "was also optimized and no longer converts its argument into a temporary list " "before extending the base list. (Contributed by Raymond Hettinger.)" msgstr "" #: ../../whatsnew/2.4.rst:950 msgid "" -":func:`list`, :func:`tuple`, :func:`map`, :func:`filter`, and :func:`zip` now" -" run several times faster with non-sequence arguments that supply a " -":meth:`~object.__len__` method. (Contributed by Raymond Hettinger.)" +":func:`list`, :func:`tuple`, :func:`map`, :func:`filter`, and :func:`zip` " +"now run several times faster with non-sequence arguments that supply a :meth:" +"`~object.__len__` method. (Contributed by Raymond Hettinger.)" msgstr "" #: ../../whatsnew/2.4.rst:954 msgid "" -"The methods :meth:`!list.__getitem__`, :meth:`!dict.__getitem__`, and " -":meth:`!dict.__contains__` are now implemented as :class:`!method_descriptor`" -" objects rather than :class:`!wrapper_descriptor` objects. This form of " +"The methods :meth:`!list.__getitem__`, :meth:`!dict.__getitem__`, and :meth:" +"`!dict.__contains__` are now implemented as :class:`!method_descriptor` " +"objects rather than :class:`!wrapper_descriptor` objects. This form of " "access doubles their performance and makes them more suitable for use as " "arguments to functionals: ``map(mydict.__getitem__, keylist)``. (Contributed " "by Raymond Hettinger.)" @@ -1468,15 +1468,15 @@ msgstr "" #: ../../whatsnew/2.4.rst:961 msgid "" "Added a new opcode, ``LIST_APPEND``, that simplifies the generated bytecode " -"for list comprehensions and speeds them up by about a third. (Contributed by" -" Raymond Hettinger.)" +"for list comprehensions and speeds them up by about a third. (Contributed " +"by Raymond Hettinger.)" msgstr "" #: ../../whatsnew/2.4.rst:965 msgid "" -"The peephole bytecode optimizer has been improved to produce shorter, faster" -" bytecode; remarkably, the resulting bytecode is more readable. (Enhanced " -"by Raymond Hettinger.)" +"The peephole bytecode optimizer has been improved to produce shorter, " +"faster bytecode; remarkably, the resulting bytecode is more readable. " +"(Enhanced by Raymond Hettinger.)" msgstr "" #: ../../whatsnew/2.4.rst:969 @@ -1485,8 +1485,8 @@ msgid "" "+= \"abc\"`` are now performed more efficiently in certain circumstances. " "This optimization won't be present in other Python implementations such as " "Jython, so you shouldn't rely on it; using the :meth:`~str.join` method of " -"strings is still recommended when you want to efficiently glue a large number" -" of strings together. (Contributed by Armin Rigo.)" +"strings is still recommended when you want to efficiently glue a large " +"number of strings together. (Contributed by Armin Rigo.)" msgstr "" #: ../../whatsnew/2.4.rst:976 @@ -1504,11 +1504,11 @@ msgstr "" #: ../../whatsnew/2.4.rst:994 msgid "" -"As usual, Python's standard library received a number of enhancements and bug" -" fixes. Here's a partial list of the most notable changes, sorted " +"As usual, Python's standard library received a number of enhancements and " +"bug fixes. Here's a partial list of the most notable changes, sorted " "alphabetically by module name. Consult the :file:`Misc/NEWS` file in the " -"source tree for a more complete list of changes, or look through the CVS logs" -" for all the details." +"source tree for a more complete list of changes, or look through the CVS " +"logs for all the details." msgstr "" #: ../../whatsnew/2.4.rst:999 @@ -1533,8 +1533,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:1010 msgid "" -"The CJKCodecs collections of East Asian codecs, maintained by Hye-Shik Chang," -" was integrated into 2.4. The new encodings are:" +"The CJKCodecs collections of East Asian codecs, maintained by Hye-Shik " +"Chang, was integrated into 2.4. The new encodings are:" msgstr "" #: ../../whatsnew/2.4.rst:1013 @@ -1551,8 +1551,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:1018 msgid "" -"iso-2022-jp-1, iso-2022-jp-2, iso-2022-jp-3, iso-2022-jp-ext, " -"iso-2022-jp-2004, shift-jis, shift-jisx0213, shift-jis-2004" +"iso-2022-jp-1, iso-2022-jp-2, iso-2022-jp-3, iso-2022-jp-ext, iso-2022-" +"jp-2004, shift-jis, shift-jisx0213, shift-jis-2004" msgstr "" #: ../../whatsnew/2.4.rst:1021 @@ -1569,18 +1569,18 @@ msgstr "" msgid "" "The UTF-8 and UTF-16 codecs now cope better with receiving partial input. " "Previously the :class:`~codecs.StreamReader` class would try to read more " -"data, making it impossible to resume decoding from the stream. The " -":meth:`~codecs.StreamReader.read` method will now return as much data as it " -"can and future calls will resume decoding where previous ones left off. " +"data, making it impossible to resume decoding from the stream. The :meth:" +"`~codecs.StreamReader.read` method will now return as much data as it can " +"and future calls will resume decoding where previous ones left off. " "(Implemented by Walter Dörwald.)" msgstr "" #: ../../whatsnew/2.4.rst:1032 msgid "" "There is a new :mod:`collections` module for various specialized collection " -"datatypes. Currently it contains just one type, :class:`~collections.deque`," -" a double-ended queue that supports efficiently adding and removing elements " -"from either end::" +"datatypes. Currently it contains just one type, :class:`~collections." +"deque`, a double-ended queue that supports efficiently adding and removing " +"elements from either end::" msgstr "" #: ../../whatsnew/2.4.rst:1037 @@ -1612,18 +1612,18 @@ msgstr "" msgid "" "The :mod:`ConfigParser ` classes have been enhanced slightly. " "The :meth:`~configparser.ConfigParser.read` method now returns a list of the " -"files that were successfully parsed, and the " -":meth:`~configparser.ConfigParser.set` method raises :exc:`TypeError` if " -"passed a *value* argument that isn't a string. (Contributed by John " -"Belmonte and David Goodger.)" +"files that were successfully parsed, and the :meth:`~configparser." +"ConfigParser.set` method raises :exc:`TypeError` if passed a *value* " +"argument that isn't a string. (Contributed by John Belmonte and David " +"Goodger.)" msgstr "" #: ../../whatsnew/2.4.rst:1061 msgid "" -"The :mod:`curses` module now supports the ncurses extension " -":func:`~curses.use_default_colors`. On platforms where the terminal supports" -" transparency, this makes it possible to use a transparent background. " -"(Contributed by Jörg Lehmann.)" +"The :mod:`curses` module now supports the ncurses extension :func:`~curses." +"use_default_colors`. On platforms where the terminal supports transparency, " +"this makes it possible to use a transparent background. (Contributed by Jörg " +"Lehmann.)" msgstr "" #: ../../whatsnew/2.4.rst:1066 @@ -1640,8 +1640,8 @@ msgid "" "The 3.0 version of the package uses a new incremental parser for MIME " "messages, available in the :mod:`!email.FeedParser` module. The new parser " "doesn't require reading the entire message into memory, and doesn't raise " -"exceptions if a message is malformed; instead it records any problems in the " -":attr:`!defect` attribute of the message. (Developed by Anthony Baxter, " +"exceptions if a message is malformed; instead it records any problems in " +"the :attr:`!defect` attribute of the message. (Developed by Anthony Baxter, " "Barry Warsaw, Thomas Wouters, and others.)" msgstr "" @@ -1650,25 +1650,25 @@ msgid "" "The :mod:`heapq` module has been converted to C. The resulting tenfold " "improvement in speed makes the module suitable for handling high volumes of " "data. In addition, the module has two new functions :func:`~heapq.nlargest` " -"and :func:`~heapq.nsmallest` that use heaps to find the N largest or smallest" -" values in a dataset without the expense of a full sort. (Contributed by " -"Raymond Hettinger.)" +"and :func:`~heapq.nsmallest` that use heaps to find the N largest or " +"smallest values in a dataset without the expense of a full sort. " +"(Contributed by Raymond Hettinger.)" msgstr "" #: ../../whatsnew/2.4.rst:1085 msgid "" -"The :mod:`httplib ` module now contains constants for HTTP status codes" -" defined in various HTTP-related RFC documents. Constants have names such as" -" :const:`!OK`, :const:`!CREATED`, :const:`!CONTINUE`, and " -":const:`!MOVED_PERMANENTLY`; use pydoc to get a full list. (Contributed by " -"Andrew Eland.)" +"The :mod:`httplib ` module now contains constants for HTTP status " +"codes defined in various HTTP-related RFC documents. Constants have names " +"such as :const:`!OK`, :const:`!CREATED`, :const:`!CONTINUE`, and :const:`!" +"MOVED_PERMANENTLY`; use pydoc to get a full list. (Contributed by Andrew " +"Eland.)" msgstr "" #: ../../whatsnew/2.4.rst:1091 msgid "" "The :mod:`imaplib` module now supports IMAP's THREAD command (contributed by " -"Yves Dionne) and new :meth:`~imaplib.IMAP4.deleteacl` and " -":meth:`~imaplib.IMAP4.myrights` methods (contributed by Arnaud Mazin)." +"Yves Dionne) and new :meth:`~imaplib.IMAP4.deleteacl` and :meth:`~imaplib." +"IMAP4.myrights` methods (contributed by Arnaud Mazin)." msgstr "" #: ../../whatsnew/2.4.rst:1095 @@ -1749,7 +1749,8 @@ msgid "" ">>> L = [1,2,3]\n" ">>> i1, i2 = itertools.tee(L)\n" ">>> i1,i2\n" -"(, )\n" +"(, )\n" ">>> list(i1) # Run the first iterator to exhaustion\n" "[1, 2, 3]\n" ">>> list(i2) # Run the second iterator to exhaustion\n" @@ -1758,8 +1759,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:1157 msgid "" -"Note that :func:`~itertools.tee` has to keep copies of the values returned by" -" the iterator; in the worst case, it may need to keep all of them. This " +"Note that :func:`~itertools.tee` has to keep copies of the values returned " +"by the iterator; in the worst case, it may need to keep all of them. This " "should therefore be used carefully if the leading iterator can run far ahead " "of the trailing iterator in a long stream of inputs. If the separation is " "large, then you might as well use :func:`list` instead. When the iterators " @@ -1770,19 +1771,19 @@ msgstr "" #: ../../whatsnew/2.4.rst:1166 msgid "" -"A number of functions were added to the :mod:`locale` module, such as " -":func:`~locale.bind_textdomain_codeset` to specify a particular encoding and " -"a family of :func:`!l\\*gettext` functions that return messages in the chosen" -" encoding. (Contributed by Gustavo Niemeyer.)" +"A number of functions were added to the :mod:`locale` module, such as :func:" +"`~locale.bind_textdomain_codeset` to specify a particular encoding and a " +"family of :func:`!l\\*gettext` functions that return messages in the chosen " +"encoding. (Contributed by Gustavo Niemeyer.)" msgstr "" #: ../../whatsnew/2.4.rst:1171 msgid "" -"Some keyword arguments were added to the :mod:`logging` package's " -":func:`~logging.basicConfig` function to simplify log configuration. The " -"default behavior is to log messages to standard error, but various keyword " -"arguments can be specified to log to a particular file, change the logging " -"format, or set the logging level. For example::" +"Some keyword arguments were added to the :mod:`logging` package's :func:" +"`~logging.basicConfig` function to simplify log configuration. The default " +"behavior is to log messages to standard error, but various keyword arguments " +"can be specified to log to a particular file, change the logging format, or " +"set the logging level. For example::" msgstr "" #: ../../whatsnew/2.4.rst:1177 @@ -1796,13 +1797,13 @@ msgstr "" #: ../../whatsnew/2.4.rst:1182 msgid "" "Other additions to the :mod:`logging` package include a ``log(level, msg)`` " -"convenience method, as well as a " -":class:`~logging.handlers.TimedRotatingFileHandler` class that rotates its " -"log files at a timed interval. The module already had " -":class:`~logging.handlers.RotatingFileHandler`, which rotated logs once the " -"file exceeded a certain size. Both classes derive from a new " -":class:`~logging.handlers.BaseRotatingHandler` class that can be used to " -"implement other rotating handlers." +"convenience method, as well as a :class:`~logging.handlers." +"TimedRotatingFileHandler` class that rotates its log files at a timed " +"interval. The module already had :class:`~logging.handlers." +"RotatingFileHandler`, which rotated logs once the file exceeded a certain " +"size. Both classes derive from a new :class:`~logging.handlers." +"BaseRotatingHandler` class that can be used to implement other rotating " +"handlers." msgstr "" #: ../../whatsnew/2.4.rst:1189 @@ -1819,9 +1820,10 @@ msgstr "" #: ../../whatsnew/2.4.rst:1196 msgid "" -"The :mod:`!nntplib` module's :class:`!NNTP` class gained :meth:`!description`" -" and :meth:`!descriptions` methods to retrieve newsgroup descriptions for a " -"single group or for a range of groups. (Contributed by Jürgen A. Erhard.)" +"The :mod:`!nntplib` module's :class:`!NNTP` class gained :meth:`!" +"description` and :meth:`!descriptions` methods to retrieve newsgroup " +"descriptions for a single group or for a range of groups. (Contributed by " +"Jürgen A. Erhard.)" msgstr "" #: ../../whatsnew/2.4.rst:1200 @@ -1829,8 +1831,8 @@ msgid "" "Two new functions were added to the :mod:`operator` module, " "``attrgetter(attr)`` and ``itemgetter(index)``. Both functions return " "callables that take a single argument and return the corresponding attribute " -"or item; these callables make excellent data extractors when used with " -":func:`map` or :func:`sorted`. For example::" +"or item; these callables make excellent data extractors when used with :func:" +"`map` or :func:`sorted`. For example::" msgstr "" #: ../../whatsnew/2.4.rst:1206 @@ -1856,18 +1858,18 @@ msgstr "" #: ../../whatsnew/2.4.rst:1222 msgid "" "The long-term plan is to deprecate the :mod:`!rfc822` module in some future " -"Python release in favor of the :mod:`email` package. To this end, the " -":func:`email.Utils.formatdate ` function has been " -"changed to make it usable as a replacement for :func:`!rfc822.formatdate`. " -"You may want to write new e-mail processing code with this in mind. (Change " +"Python release in favor of the :mod:`email` package. To this end, the :func:" +"`email.Utils.formatdate ` function has been changed " +"to make it usable as a replacement for :func:`!rfc822.formatdate`. You may " +"want to write new e-mail processing code with this in mind. (Change " "implemented by Anthony Baxter.)" msgstr "" #: ../../whatsnew/2.4.rst:1228 msgid "" "A new ``urandom(n)`` function was added to the :mod:`os` module, returning a " -"string containing *n* bytes of random data. This function provides access to" -" platform-specific sources of randomness such as :file:`/dev/urandom` on " +"string containing *n* bytes of random data. This function provides access " +"to platform-specific sources of randomness such as :file:`/dev/urandom` on " "Linux or the Windows CryptoAPI. (Contributed by Trevor Perrin.)" msgstr "" @@ -1876,8 +1878,8 @@ msgid "" "Another new function: ``os.path.lexists(path)`` returns true if the file " "specified by *path* exists, whether or not it's a symbolic link. This " "differs from the existing ``os.path.exists(path)`` function, which returns " -"false if *path* is a symlink that points to a destination that doesn't exist." -" (Contributed by Beni Cherniavsky.)" +"false if *path* is a symlink that points to a destination that doesn't " +"exist. (Contributed by Beni Cherniavsky.)" msgstr "" #: ../../whatsnew/2.4.rst:1239 @@ -1894,28 +1896,28 @@ msgstr "" #: ../../whatsnew/2.4.rst:1245 msgid "" -"The :mod:`profile` module can now profile C extension functions. (Contributed" -" by Nick Bastin.)" +"The :mod:`profile` module can now profile C extension functions. " +"(Contributed by Nick Bastin.)" msgstr "" #: ../../whatsnew/2.4.rst:1248 msgid "" "The :mod:`random` module has a new method called ``getrandbits(N)`` that " -"returns a long integer *N* bits in length. The existing " -":meth:`~random.randrange` method now uses :meth:`~random.getrandbits` where " -"appropriate, making generation of arbitrarily large random numbers more " -"efficient. (Contributed by Raymond Hettinger.)" +"returns a long integer *N* bits in length. The existing :meth:`~random." +"randrange` method now uses :meth:`~random.getrandbits` where appropriate, " +"making generation of arbitrarily large random numbers more efficient. " +"(Contributed by Raymond Hettinger.)" msgstr "" #: ../../whatsnew/2.4.rst:1254 msgid "" -"The regular expression language accepted by the :mod:`re` module was extended" -" with simple conditional expressions, written as ``(?(group)A|B)``. *group* " -"is either a numeric group ID or a group name defined with ``(?P...)`` " -"earlier in the expression. If the specified group matched, the regular " -"expression pattern *A* will be tested against the string; if the group didn't" -" match, the pattern *B* will be used instead. (Contributed by Gustavo " -"Niemeyer.)" +"The regular expression language accepted by the :mod:`re` module was " +"extended with simple conditional expressions, written as ``(?(group)A|B)``. " +"*group* is either a numeric group ID or a group name defined with ``(?" +"P...)`` earlier in the expression. If the specified group matched, " +"the regular expression pattern *A* will be tested against the string; if the " +"group didn't match, the pattern *B* will be used instead. (Contributed by " +"Gustavo Niemeyer.)" msgstr "" #: ../../whatsnew/2.4.rst:1261 @@ -1935,26 +1937,26 @@ msgstr "" #: ../../whatsnew/2.4.rst:1271 msgid "" "The :mod:`signal` module now performs tighter error-checking on the " -"parameters to the :func:`signal.signal` function. For example, you can't set" -" a handler on the :const:`~signal.SIGKILL` signal; previous versions of " +"parameters to the :func:`signal.signal` function. For example, you can't " +"set a handler on the :const:`~signal.SIGKILL` signal; previous versions of " "Python would quietly accept this, but 2.4 will raise a :exc:`RuntimeError` " "exception." msgstr "" #: ../../whatsnew/2.4.rst:1276 msgid "" -"Two new functions were added to the :mod:`socket` module. " -":func:`~socket.socketpair` returns a pair of connected sockets and " -"``getservbyport(port)`` looks up the service name for a given port number. " -"(Contributed by Dave Cole and Barry Warsaw.)" +"Two new functions were added to the :mod:`socket` module. :func:`~socket." +"socketpair` returns a pair of connected sockets and ``getservbyport(port)`` " +"looks up the service name for a given port number. (Contributed by Dave Cole " +"and Barry Warsaw.)" msgstr "" #: ../../whatsnew/2.4.rst:1281 msgid "" -"The :func:`!sys.exitfunc` function has been deprecated. Code should be using" -" the existing :mod:`atexit` module, which correctly handles calling multiple " -"exit functions. Eventually :func:`!sys.exitfunc` will become a purely " -"internal interface, accessed only by :mod:`atexit`." +"The :func:`!sys.exitfunc` function has been deprecated. Code should be " +"using the existing :mod:`atexit` module, which correctly handles calling " +"multiple exit functions. Eventually :func:`!sys.exitfunc` will become a " +"purely internal interface, accessed only by :mod:`atexit`." msgstr "" #: ../../whatsnew/2.4.rst:1286 @@ -1981,10 +1983,10 @@ msgstr "" #: ../../whatsnew/2.4.rst:1299 msgid "" -"Other threads can assign and retrieve their own values for the " -":attr:`!number` and :attr:`!url` attributes. You can subclass " -":class:`~threading.local` to initialize attributes or to add methods. " -"(Contributed by Jim Fulton.)" +"Other threads can assign and retrieve their own values for the :attr:`!" +"number` and :attr:`!url` attributes. You can subclass :class:`~threading." +"local` to initialize attributes or to add methods. (Contributed by Jim " +"Fulton.)" msgstr "" #: ../../whatsnew/2.4.rst:1303 @@ -2005,8 +2007,8 @@ msgstr "" #: ../../whatsnew/2.4.rst:1312 msgid "" "The :mod:`xmlrpclib ` module now supports a multi-call " -"extension for transmitting multiple XML-RPC calls in a single HTTP operation." -" (Contributed by Brian Quinlan.)" +"extension for transmitting multiple XML-RPC calls in a single HTTP " +"operation. (Contributed by Brian Quinlan.)" msgstr "" #: ../../whatsnew/2.4.rst:1316 @@ -2024,25 +2026,24 @@ msgid "" "The :mod:`cookielib ` library supports client-side handling " "for HTTP cookies, mirroring the :mod:`Cookie ` module's server-" "side cookie support. Cookies are stored in cookie jars; the library " -"transparently stores cookies offered by the web server in the cookie jar, and" -" fetches the cookie from the jar when connecting to the server. As in web " +"transparently stores cookies offered by the web server in the cookie jar, " +"and fetches the cookie from the jar when connecting to the server. As in web " "browsers, policy objects control whether cookies are accepted or not." msgstr "" #: ../../whatsnew/2.4.rst:1334 msgid "" -"In order to store cookies across sessions, two implementations of cookie jars" -" are provided: one that stores cookies in the Netscape format so applications" -" can use the Mozilla or Lynx cookie files, and one that stores cookies in the" -" same format as the Perl libwww library." +"In order to store cookies across sessions, two implementations of cookie " +"jars are provided: one that stores cookies in the Netscape format so " +"applications can use the Mozilla or Lynx cookie files, and one that stores " +"cookies in the same format as the Perl libwww library." msgstr "" #: ../../whatsnew/2.4.rst:1339 msgid "" -":mod:`urllib2 ` has been changed to interact with " -":mod:`cookielib `: " -":class:`~urllib.request.HTTPCookieProcessor` manages a cookie jar that is " -"used when accessing URLs." +":mod:`urllib2 ` has been changed to interact with :mod:" +"`cookielib `: :class:`~urllib.request.HTTPCookieProcessor` " +"manages a cookie jar that is used when accessing URLs." msgstr "" #: ../../whatsnew/2.4.rst:1343 @@ -2055,16 +2056,16 @@ msgstr "" #: ../../whatsnew/2.4.rst:1351 msgid "" -"The :mod:`doctest` module underwent considerable refactoring thanks to Edward" -" Loper and Tim Peters. Testing can still be as simple as running " -":func:`doctest.testmod`, but the refactorings allow customizing the module's " +"The :mod:`doctest` module underwent considerable refactoring thanks to " +"Edward Loper and Tim Peters. Testing can still be as simple as running :" +"func:`doctest.testmod`, but the refactorings allow customizing the module's " "operation in various ways" msgstr "" #: ../../whatsnew/2.4.rst:1356 msgid "" -"The new :class:`~doctest.DocTestFinder` class extracts the tests from a given" -" object's docstrings::" +"The new :class:`~doctest.DocTestFinder` class extracts the tests from a " +"given object's docstrings::" msgstr "" #: ../../whatsnew/2.4.rst:1359 @@ -2113,11 +2114,11 @@ msgstr "" #: ../../whatsnew/2.4.rst:1389 msgid "" -":class:`~doctest.DocTestRunner` uses an instance of the " -":class:`~doctest.OutputChecker` class to compare the expected output with the" -" actual output. This class takes a number of different flags that customize " -"its behaviour; ambitious users can also write a completely new subclass of " -":class:`~doctest.OutputChecker`." +":class:`~doctest.DocTestRunner` uses an instance of the :class:`~doctest." +"OutputChecker` class to compare the expected output with the actual output. " +"This class takes a number of different flags that customize its behaviour; " +"ambitious users can also write a completely new subclass of :class:`~doctest." +"OutputChecker`." msgstr "" #: ../../whatsnew/2.4.rst:1394 @@ -2153,9 +2154,9 @@ msgstr "" #: ../../whatsnew/2.4.rst:1413 msgid "" "Another new capability is producing a diff-style display of the output by " -"specifying the :const:`doctest.REPORT_UDIFF` (unified diffs), " -":const:`doctest.REPORT_CDIFF` (context diffs), or " -":const:`doctest.REPORT_NDIFF` (delta-style) option flags. For example::" +"specifying the :const:`doctest.REPORT_UDIFF` (unified diffs), :const:" +"`doctest.REPORT_CDIFF` (context diffs), or :const:`doctest.REPORT_NDIFF` " +"(delta-style) option flags. For example::" msgstr "" #: ../../whatsnew/2.4.rst:1418 @@ -2216,16 +2217,16 @@ msgstr "" #: ../../whatsnew/2.4.rst:1461 msgid "" -"A new function, ``PyTuple_Pack(N, obj1, obj2, ..., objN)``, constructs tuples" -" from a variable length argument list of Python objects. (Contributed by " -"Raymond Hettinger.)" +"A new function, ``PyTuple_Pack(N, obj1, obj2, ..., objN)``, constructs " +"tuples from a variable length argument list of Python objects. (Contributed " +"by Raymond Hettinger.)" msgstr "" #: ../../whatsnew/2.4.rst:1465 msgid "" -"A new function, ``PyDict_Contains(d, k)``, implements fast dictionary lookups" -" without masking exceptions raised during the look-up process. (Contributed " -"by Raymond Hettinger.)" +"A new function, ``PyDict_Contains(d, k)``, implements fast dictionary " +"lookups without masking exceptions raised during the look-up process. " +"(Contributed by Raymond Hettinger.)" msgstr "" #: ../../whatsnew/2.4.rst:1469 @@ -2236,17 +2237,17 @@ msgstr "" #: ../../whatsnew/2.4.rst:1472 msgid "" -"C code can avoid unnecessary locking by using the new " -":c:func:`!PyEval_ThreadsInitialized` function to tell if any thread " -"operations have been performed. If this function returns false, no lock " -"operations are needed. (Contributed by Nick Coghlan.)" +"C code can avoid unnecessary locking by using the new :c:func:`!" +"PyEval_ThreadsInitialized` function to tell if any thread operations have " +"been performed. If this function returns false, no lock operations are " +"needed. (Contributed by Nick Coghlan.)" msgstr "" #: ../../whatsnew/2.4.rst:1477 msgid "" -"A new function, :c:func:`PyArg_VaParseTupleAndKeywords`, is the same as " -":c:func:`PyArg_ParseTupleAndKeywords` but takes a :c:type:`va_list` instead " -"of a number of arguments. (Contributed by Greg Chapman.)" +"A new function, :c:func:`PyArg_VaParseTupleAndKeywords`, is the same as :c:" +"func:`PyArg_ParseTupleAndKeywords` but takes a :c:type:`va_list` instead of " +"a number of arguments. (Contributed by Greg Chapman.)" msgstr "" #: ../../whatsnew/2.4.rst:1481 @@ -2259,21 +2260,21 @@ msgstr "" #: ../../whatsnew/2.4.rst:1486 msgid "" -"Python can now be built with additional profiling for the interpreter itself," -" intended as an aid to people developing the Python core. Providing " -":option:`!--enable-profiling` to the :program:`configure` script will let you" -" profile the interpreter with :program:`gprof`, and providing the :option:`!" -"--with-tsc` switch enables profiling using the Pentium's Time-Stamp-Counter " +"Python can now be built with additional profiling for the interpreter " +"itself, intended as an aid to people developing the Python core. Providing :" +"option:`!--enable-profiling` to the :program:`configure` script will let you " +"profile the interpreter with :program:`gprof`, and providing the :option:`!--" +"with-tsc` switch enables profiling using the Pentium's Time-Stamp-Counter " "register. Note that the :option:`!--with-tsc` switch is slightly misnamed, " -"because the profiling feature also works on the PowerPC platform, though that" -" processor architecture doesn't call that register \"the TSC register\". " -"(Contributed by Jeremy Hylton.)" +"because the profiling feature also works on the PowerPC platform, though " +"that processor architecture doesn't call that register \"the TSC " +"register\". (Contributed by Jeremy Hylton.)" msgstr "" #: ../../whatsnew/2.4.rst:1496 msgid "" -"The :c:type:`!tracebackobject` type has been renamed to " -":c:type:`!PyTracebackObject`." +"The :c:type:`!tracebackobject` type has been renamed to :c:type:`!" +"PyTracebackObject`." msgstr "" #: ../../whatsnew/2.4.rst:1503 @@ -2312,10 +2313,10 @@ msgstr "" #: ../../whatsnew/2.4.rst:1528 msgid "" -"You can no longer compare the :class:`~datetime.date` and " -":class:`~datetime.datetime` instances provided by the :mod:`datetime` module." -" Two instances of different classes will now always be unequal, and " -"relative comparisons (``<``, ``>``) will raise a :exc:`TypeError`." +"You can no longer compare the :class:`~datetime.date` and :class:`~datetime." +"datetime` instances provided by the :mod:`datetime` module. Two instances " +"of different classes will now always be unequal, and relative comparisons " +"(``<``, ``>``) will raise a :exc:`TypeError`." msgstr "" #: ../../whatsnew/2.4.rst:1533 @@ -2356,10 +2357,10 @@ msgstr "" #: ../../whatsnew/2.4.rst:1552 msgid "" -"The :func:`signal.signal` function now raises a :exc:`RuntimeError` exception" -" for certain illegal values; previously these errors would pass silently. " -"For example, you can no longer set a handler on the :const:`~signal.SIGKILL` " -"signal." +"The :func:`signal.signal` function now raises a :exc:`RuntimeError` " +"exception for certain illegal values; previously these errors would pass " +"silently. For example, you can no longer set a handler on the :const:" +"`~signal.SIGKILL` signal." msgstr "" #: ../../whatsnew/2.4.rst:1562 @@ -2368,10 +2369,10 @@ msgstr "" #: ../../whatsnew/2.4.rst:1564 msgid "" -"The author would like to thank the following people for offering suggestions," -" corrections and assistance with various drafts of this article: Koray Can, " -"Hye-Shik Chang, Michael Dyck, Raymond Hettinger, Brian Hurt, Hamish Lawson, " -"Fredrik Lundh, Sean Reifschneider, Sadruddin Rejeb." +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Koray Can, Hye-Shik Chang, Michael Dyck, Raymond Hettinger, Brian Hurt, " +"Hamish Lawson, Fredrik Lundh, Sean Reifschneider, Sadruddin Rejeb." msgstr "" #: ../../whatsnew/2.4.rst:415 diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po index 6840a319..11720bab 100644 --- a/whatsnew/2.7.po +++ b/whatsnew/2.7.po @@ -42,11 +42,11 @@ msgstr "" msgid "" "Numeric handling has been improved in many ways, for both floating-point " "numbers and for the :class:`~decimal.Decimal` class. There are some useful " -"additions to the standard library, such as a greatly enhanced :mod:`unittest`" -" module, the :mod:`argparse` module for parsing command-line options, " -"convenient :class:`~collections.OrderedDict` and " -":class:`~collections.Counter` classes in the :mod:`collections` module, and " -"many other improvements." +"additions to the standard library, such as a greatly enhanced :mod:" +"`unittest` module, the :mod:`argparse` module for parsing command-line " +"options, convenient :class:`~collections.OrderedDict` and :class:" +"`~collections.Counter` classes in the :mod:`collections` module, and many " +"other improvements." msgstr "" #: ../../whatsnew/2.7.rst:63 @@ -62,9 +62,9 @@ msgid "" "features, but instead provides a convenient overview. For full details, you " "should refer to the documentation for Python 2.7 at https://docs.python.org. " "If you want to understand the rationale for the design and implementation, " -"refer to the PEP for a particular new feature or the issue on " -"https://bugs.python.org in which a change was discussed. Whenever possible, " -"\"What's New in Python\" links to the bug/patch item for each change." +"refer to the PEP for a particular new feature or the issue on https://bugs." +"python.org in which a change was discussed. Whenever possible, \"What's New " +"in Python\" links to the bug/patch item for each change." msgstr "" #: ../../whatsnew/2.7.rst:80 @@ -75,10 +75,10 @@ msgstr "" msgid "" "Python 2.7 is the last major release in the 2.x series, as the Python " "maintainers have shifted the focus of their new feature development efforts " -"to the Python 3.x series. This means that while Python 2 continues to receive" -" bug fixes, and to be updated to build correctly on new hardware and versions" -" of supported operated systems, there will be no new full feature releases " -"for the language or standard library." +"to the Python 3.x series. This means that while Python 2 continues to " +"receive bug fixes, and to be updated to build correctly on new hardware and " +"versions of supported operated systems, there will be no new full feature " +"releases for the language or standard library." msgstr "" #: ../../whatsnew/2.7.rst:89 @@ -95,8 +95,8 @@ msgstr "" msgid "" "This means that Python 2.7 will remain in place for a long time, providing a " "stable and supported base platform for production systems that have not yet " -"been ported to Python 3. The full expected lifecycle of the Python 2.7 series" -" is detailed in :pep:`373`." +"been ported to Python 3. The full expected lifecycle of the Python 2.7 " +"series is detailed in :pep:`373`." msgstr "" #: ../../whatsnew/2.7.rst:101 @@ -115,14 +115,14 @@ msgstr "" #: ../../whatsnew/2.7.rst:109 msgid "" "As the Python 2.7 standard library ages, making effective use of the Python " -"Package Index (either directly or via a redistributor) becomes more important" -" for Python 2 users. In addition to a wide variety of third party packages " -"for various tasks, the available packages include backports of new modules " -"and features from the Python 3 standard library that are compatible with " -"Python 2, as well as various tools and libraries that can make it easier to " -"migrate to Python 3. The `Python Packaging User Guide " -"`__ provides guidance on downloading and " -"installing software from the Python Package Index." +"Package Index (either directly or via a redistributor) becomes more " +"important for Python 2 users. In addition to a wide variety of third party " +"packages for various tasks, the available packages include backports of new " +"modules and features from the Python 3 standard library that are compatible " +"with Python 2, as well as various tools and libraries that can make it " +"easier to migrate to Python 3. The `Python Packaging User Guide `__ provides guidance on downloading and installing " +"software from the Python Package Index." msgstr "" #: ../../whatsnew/2.7.rst:119 @@ -131,20 +131,20 @@ msgid "" "new packages on the Python Package Index, this approach doesn't necessarily " "work in all cases, especially those related to network security. In " "exceptional cases that cannot be handled adequately by publishing new or " -"updated packages on PyPI, the Python Enhancement Proposal process may be used" -" to make the case for adding new features directly to the Python 2 standard " -"library. Any such additions, and the maintenance releases where they were " -"added, will be noted in the :ref:`py27-maintenance-enhancements` section " -"below." +"updated packages on PyPI, the Python Enhancement Proposal process may be " +"used to make the case for adding new features directly to the Python 2 " +"standard library. Any such additions, and the maintenance releases where " +"they were added, will be noted in the :ref:`py27-maintenance-enhancements` " +"section below." msgstr "" #: ../../whatsnew/2.7.rst:129 msgid "" -"For projects wishing to migrate from Python 2 to Python 3, or for library and" -" framework developers wishing to support users on both Python 2 and Python 3," -" there are a variety of tools and guides available to help decide on a " -"suitable approach and manage some of the technical details involved. The " -"recommended starting point is the :ref:`pyporting-howto` HOWTO guide." +"For projects wishing to migrate from Python 2 to Python 3, or for library " +"and framework developers wishing to support users on both Python 2 and " +"Python 3, there are a variety of tools and guides available to help decide " +"on a suitable approach and manage some of the technical details involved. " +"The recommended starting point is the :ref:`pyporting-howto` HOWTO guide." msgstr "" #: ../../whatsnew/2.7.rst:137 @@ -155,10 +155,10 @@ msgstr "" msgid "" "For Python 2.7, a policy decision was made to silence warnings only of " "interest to developers by default. :exc:`DeprecationWarning` and its " -"descendants are now ignored unless otherwise requested, preventing users from" -" seeing warnings triggered by an application. This change was also made in " -"the branch that became Python 3.2. (Discussed on stdlib-sig and carried out " -"in :issue:`7319`.)" +"descendants are now ignored unless otherwise requested, preventing users " +"from seeing warnings triggered by an application. This change was also made " +"in the branch that became Python 3.2. (Discussed on stdlib-sig and carried " +"out in :issue:`7319`.)" msgstr "" #: ../../whatsnew/2.7.rst:146 @@ -171,8 +171,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:151 msgid "" "However, there are increasingly many users of Python-based applications who " -"are not directly involved in the development of those applications. " -":exc:`DeprecationWarning` messages are irrelevant to such users, making them " +"are not directly involved in the development of those applications. :exc:" +"`DeprecationWarning` messages are irrelevant to such users, making them " "worry about an application that's actually working correctly and burdening " "application developers with responding to these concerns." msgstr "" @@ -243,16 +243,16 @@ msgstr "" #: ../../whatsnew/2.7.rst:188 msgid "" -"The :func:`repr` of a float ``x`` is shorter in many cases: it's now based on" -" the shortest decimal string that's guaranteed to round back to ``x``. As in" -" previous versions of Python, it's guaranteed that ``float(repr(x))`` " +"The :func:`repr` of a float ``x`` is shorter in many cases: it's now based " +"on the shortest decimal string that's guaranteed to round back to ``x``. As " +"in previous versions of Python, it's guaranteed that ``float(repr(x))`` " "recovers ``x``." msgstr "" #: ../../whatsnew/2.7.rst:192 msgid "" -"Float-to-string and string-to-float conversions are correctly rounded. The " -":func:`round` function is also now correctly rounded." +"Float-to-string and string-to-float conversions are correctly rounded. The :" +"func:`round` function is also now correctly rounded." msgstr "" #: ../../whatsnew/2.7.rst:194 @@ -289,9 +289,9 @@ msgstr "" msgid "" "Regular Python dictionaries iterate over key/value pairs in arbitrary order. " "Over the years, a number of authors have written alternative implementations " -"that remember the order that the keys were originally inserted. Based on the" -" experiences from those implementations, 2.7 introduces a new " -":class:`~collections.OrderedDict` class in the :mod:`collections` module." +"that remember the order that the keys were originally inserted. Based on " +"the experiences from those implementations, 2.7 introduces a new :class:" +"`~collections.OrderedDict` class in the :mod:`collections` module." msgstr "" #: ../../whatsnew/2.7.rst:222 @@ -409,9 +409,9 @@ msgstr "" #: ../../whatsnew/2.7.rst:294 msgid "" -"The :meth:`~collections.somenamedtuple._asdict` method for " -":func:`collections.namedtuple` now returns an ordered dictionary with the " -"values appearing in the same order as the underlying tuple indices." +"The :meth:`~collections.somenamedtuple._asdict` method for :func:" +"`collections.namedtuple` now returns an ordered dictionary with the values " +"appearing in the same order as the underlying tuple indices." msgstr "" #: ../../whatsnew/2.7.rst:298 @@ -498,21 +498,21 @@ msgstr "" #: ../../whatsnew/2.7.rst:355 msgid "" "This means Python now supports three different modules for parsing command-" -"line arguments: :mod:`getopt`, :mod:`optparse`, and :mod:`argparse`. The " -":mod:`getopt` module closely resembles the C library's :c:func:`!getopt` " -"function, so it remains useful if you're writing a Python prototype that will" -" eventually be rewritten in C. :mod:`optparse` becomes redundant, but there " -"are no plans to remove it because there are many scripts still using it, and " -"there's no automated way to update these scripts. (Making the " -":mod:`argparse` API consistent with :mod:`optparse`'s interface was discussed" -" but rejected as too messy and difficult.)" +"line arguments: :mod:`getopt`, :mod:`optparse`, and :mod:`argparse`. The :" +"mod:`getopt` module closely resembles the C library's :c:func:`!getopt` " +"function, so it remains useful if you're writing a Python prototype that " +"will eventually be rewritten in C. :mod:`optparse` becomes redundant, but " +"there are no plans to remove it because there are many scripts still using " +"it, and there's no automated way to update these scripts. (Making the :mod:" +"`argparse` API consistent with :mod:`optparse`'s interface was discussed but " +"rejected as too messy and difficult.)" msgstr "" #: ../../whatsnew/2.7.rst:366 msgid "" "In short, if you're writing a new script and don't need to worry about " -"compatibility with earlier versions of Python, use :mod:`argparse` instead of" -" :mod:`optparse`." +"compatibility with earlier versions of Python, use :mod:`argparse` instead " +"of :mod:`optparse`." msgstr "" #: ../../whatsnew/2.7.rst:370 @@ -552,7 +552,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:396 msgid "" "-> ./python.exe argparse-example.py --help\n" -"usage: argparse-example.py [-h] [-v] [-o FILE] [-C NUM] [inputs [inputs ...]]\n" +"usage: argparse-example.py [-h] [-v] [-o FILE] [-C NUM] [inputs " +"[inputs ...]]\n" "\n" "Command-line example.\n" "\n" @@ -568,8 +569,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:410 msgid "" -"As with :mod:`optparse`, the command-line switches and arguments are returned" -" as an object with attributes named by the *dest* parameters::" +"As with :mod:`optparse`, the command-line switches and arguments are " +"returned as an object with attributes named by the *dest* parameters::" msgstr "" #: ../../whatsnew/2.7.rst:413 @@ -593,10 +594,10 @@ msgid "" "specify an exact number of arguments as an integer, 0 or more arguments by " "passing ``'*'``, 1 or more by passing ``'+'``, or an optional argument with " "``'?'``. A top-level parser can contain sub-parsers to define subcommands " -"that have different sets of switches, as in ``svn commit``, ``svn checkout``," -" etc. You can specify an argument's type as :class:`~argparse.FileType`, " -"which will automatically open files for you and understands that ``'-'`` " -"means standard input or output." +"that have different sets of switches, as in ``svn commit``, ``svn " +"checkout``, etc. You can specify an argument's type as :class:`~argparse." +"FileType`, which will automatically open files for you and understands that " +"``'-'`` means standard input or output." msgstr "" #: ../../whatsnew/2.7.rst:437 @@ -613,8 +614,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:441 msgid "" -"Part of the Python documentation, describing how to convert code that uses " -":mod:`optparse`." +"Part of the Python documentation, describing how to convert code that uses :" +"mod:`optparse`." msgstr "" #: ../../whatsnew/2.7.rst:444 @@ -631,18 +632,18 @@ msgstr "" #: ../../whatsnew/2.7.rst:450 msgid "" -"The :mod:`logging` module is very flexible; applications can define a tree of" -" logging subsystems, and each logger in this tree can filter out certain " -"messages, format them differently, and direct messages to a varying number of" -" handlers." +"The :mod:`logging` module is very flexible; applications can define a tree " +"of logging subsystems, and each logger in this tree can filter out certain " +"messages, format them differently, and direct messages to a varying number " +"of handlers." msgstr "" #: ../../whatsnew/2.7.rst:455 msgid "" "All this flexibility can require a lot of configuration. You can write " "Python statements to create objects and set their properties, but a complex " -"set-up requires verbose but boring code. :mod:`logging` also supports a " -":func:`~logging.config.fileConfig` function that parses a file, but the file " +"set-up requires verbose but boring code. :mod:`logging` also supports a :" +"func:`~logging.config.fileConfig` function that parses a file, but the file " "format doesn't support configuring filters, and it's messier to generate " "programmatically." msgstr "" @@ -650,10 +651,10 @@ msgstr "" #: ../../whatsnew/2.7.rst:462 msgid "" "Python 2.7 adds a :func:`~logging.config.dictConfig` function that uses a " -"dictionary to configure logging. There are many ways to produce a dictionary" -" from different sources: construct one with code; parse a file containing " -"JSON; or use a YAML parsing library if one is installed. For more " -"information see :ref:`logging-config-api`." +"dictionary to configure logging. There are many ways to produce a " +"dictionary from different sources: construct one with code; parse a file " +"containing JSON; or use a YAML parsing library if one is installed. For " +"more information see :ref:`logging-config-api`." msgstr "" #: ../../whatsnew/2.7.rst:468 @@ -720,25 +721,24 @@ msgstr "" msgid "" "The :class:`~logging.handlers.SysLogHandler` class now supports syslogging " "over TCP. The constructor has a *socktype* parameter giving the type of " -"socket to use, either :const:`socket.SOCK_DGRAM` for UDP or " -":const:`socket.SOCK_STREAM` for TCP. The default protocol remains UDP." +"socket to use, either :const:`socket.SOCK_DGRAM` for UDP or :const:`socket." +"SOCK_STREAM` for TCP. The default protocol remains UDP." msgstr "" #: ../../whatsnew/2.7.rst:529 msgid "" ":class:`~logging.Logger` instances gained a :meth:`~logging.Logger.getChild` " -"method that retrieves a descendant logger using a relative path. For example," -" once you retrieve a logger by doing ``log = getLogger('app')``, calling " -"``log.getChild('network.listen')`` is equivalent to " -"``getLogger('app.network.listen')``." +"method that retrieves a descendant logger using a relative path. For " +"example, once you retrieve a logger by doing ``log = getLogger('app')``, " +"calling ``log.getChild('network.listen')`` is equivalent to ``getLogger('app." +"network.listen')``." msgstr "" #: ../../whatsnew/2.7.rst:535 msgid "" -"The :class:`~logging.LoggerAdapter` class gained an " -":meth:`~logging.Logger.isEnabledFor` method that takes a *level* and returns " -"whether the underlying logger would process a message of that level of " -"importance." +"The :class:`~logging.LoggerAdapter` class gained an :meth:`~logging.Logger." +"isEnabledFor` method that takes a *level* and returns whether the underlying " +"logger would process a message of that level of importance." msgstr "" #: ../../whatsnew/2.7.rst:544 @@ -755,17 +755,17 @@ msgstr "" #: ../../whatsnew/2.7.rst:550 msgid "" -"The dictionary methods :meth:`~dict.keys`, :meth:`~dict.values`, and " -":meth:`~dict.items` are different in Python 3.x. They return an object " -"called a :dfn:`view` instead of a fully materialized list." +"The dictionary methods :meth:`~dict.keys`, :meth:`~dict.values`, and :meth:" +"`~dict.items` are different in Python 3.x. They return an object called a :" +"dfn:`view` instead of a fully materialized list." msgstr "" #: ../../whatsnew/2.7.rst:554 msgid "" -"It's not possible to change the return values of :meth:`~dict.keys`, " -":meth:`~dict.values`, and :meth:`~dict.items` in Python 2.7 because too much " -"code would break. Instead the 3.x versions were added under the new names " -":meth:`!viewkeys`, :meth:`!viewvalues`, and :meth:`!viewitems`." +"It's not possible to change the return values of :meth:`~dict.keys`, :meth:" +"`~dict.values`, and :meth:`~dict.items` in Python 2.7 because too much code " +"would break. Instead the 3.x versions were added under the new names :meth:" +"`!viewkeys`, :meth:`!viewvalues`, and :meth:`!viewitems`." msgstr "" #: ../../whatsnew/2.7.rst:562 @@ -779,8 +779,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:568 msgid "" -"Views can be iterated over, but the key and item views also behave like sets." -" The ``&`` operator performs intersection, and ``|`` performs a union::" +"Views can be iterated over, but the key and item views also behave like " +"sets. The ``&`` operator performs intersection, and ``|`` performs a union::" msgstr "" #: ../../whatsnew/2.7.rst:572 @@ -828,8 +828,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:599 msgid "" "You can use the view methods in Python 2.x code, and the 2to3 converter will " -"change them to the standard :meth:`~dict.keys`, :meth:`~dict.values`, and " -":meth:`~dict.items` methods." +"change them to the standard :meth:`~dict.keys`, :meth:`~dict.values`, and :" +"meth:`~dict.items` methods." msgstr "" #: ../../whatsnew/2.7.rst:605 @@ -838,8 +838,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:606 msgid "" -"PEP written by Guido van Rossum. Backported to 2.7 by Alexandre Vassalotti; " -":issue:`1967`." +"PEP written by Guido van Rossum. Backported to 2.7 by Alexandre Vassalotti; :" +"issue:`1967`." msgstr "" #: ../../whatsnew/2.7.rst:611 @@ -948,8 +948,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:695 msgid "" "Dictionary and set comprehensions are another feature backported from 3.x, " -"generalizing list/generator comprehensions to use the literal syntax for sets" -" and dictionaries." +"generalizing list/generator comprehensions to use the literal syntax for " +"sets and dictionaries." msgstr "" #: ../../whatsnew/2.7.rst:699 @@ -967,8 +967,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:709 msgid "" "The :keyword:`with` statement can now use multiple context managers in one " -"statement. Context managers are processed from left to right and each one is" -" treated as beginning a new :keyword:`!with` statement. This means that::" +"statement. Context managers are processed from left to right and each one " +"is treated as beginning a new :keyword:`!with` statement. This means that::" msgstr "" #: ../../whatsnew/2.7.rst:714 @@ -1003,27 +1003,27 @@ msgstr "" #: ../../whatsnew/2.7.rst:729 msgid "" "Conversions between floating-point numbers and strings are now correctly " -"rounded on most platforms. These conversions occur in many different places:" -" :func:`str` on floats and complex numbers; the :class:`float` and " -":class:`complex` constructors; numeric formatting; serializing and " -"deserializing floats and complex numbers using the :mod:`marshal`, " -":mod:`pickle` and :mod:`json` modules; parsing of float and imaginary " -"literals in Python code; and :class:`~decimal.Decimal`-to-float conversion." +"rounded on most platforms. These conversions occur in many different " +"places: :func:`str` on floats and complex numbers; the :class:`float` and :" +"class:`complex` constructors; numeric formatting; serializing and " +"deserializing floats and complex numbers using the :mod:`marshal`, :mod:" +"`pickle` and :mod:`json` modules; parsing of float and imaginary literals in " +"Python code; and :class:`~decimal.Decimal`-to-float conversion." msgstr "" #: ../../whatsnew/2.7.rst:741 msgid "" "Related to this, the :func:`repr` of a floating-point number *x* now returns " -"a result based on the shortest decimal string that's guaranteed to round back" -" to *x* under correct rounding (with round-half-to-even rounding mode). " +"a result based on the shortest decimal string that's guaranteed to round " +"back to *x* under correct rounding (with round-half-to-even rounding mode). " "Previously it gave a string based on rounding x to 17 decimal digits." msgstr "" #: ../../whatsnew/2.7.rst:749 msgid "" -"The rounding library responsible for this improvement works on Windows and on" -" Unix platforms using the gcc, icc, or suncc compilers. There may be a small" -" number of platforms where correct operation of this code cannot be " +"The rounding library responsible for this improvement works on Windows and " +"on Unix platforms using the gcc, icc, or suncc compilers. There may be a " +"small number of platforms where correct operation of this code cannot be " "guaranteed, so the code is not used on such systems. You can find out which " "code is being used by checking :data:`sys.float_repr_style`, which will be " "``short`` if the new code is in use and ``legacy`` if it isn't." @@ -1031,17 +1031,18 @@ msgstr "" #: ../../whatsnew/2.7.rst:757 msgid "" -"Implemented by Eric Smith and Mark Dickinson, using David Gay's " -":file:`dtoa.c` library; :issue:`7117`." +"Implemented by Eric Smith and Mark Dickinson, using David Gay's :file:`dtoa." +"c` library; :issue:`7117`." msgstr "" #: ../../whatsnew/2.7.rst:760 msgid "" "Conversions from long integers and regular integers to floating point now " -"round differently, returning the floating-point number closest to the number." -" This doesn't matter for small integers that can be converted exactly, but " -"for large numbers that will unavoidably lose precision, Python 2.7 now " -"approximates more closely. For example, Python 2.6 computed the following::" +"round differently, returning the floating-point number closest to the " +"number. This doesn't matter for small integers that can be converted " +"exactly, but for large numbers that will unavoidably lose precision, Python " +"2.7 now approximates more closely. For example, Python 2.6 computed the " +"following::" msgstr "" #: ../../whatsnew/2.7.rst:767 @@ -1102,35 +1103,35 @@ msgstr "" #: ../../whatsnew/2.7.rst:800 msgid "" -"The auto-numbering takes the fields from left to right, so the first " -"``{...}`` specifier will use the first argument to :meth:`str.format`, the " -"next specifier will use the next argument, and so on. You can't mix auto-" +"The auto-numbering takes the fields from left to right, so the first ``{...}" +"`` specifier will use the first argument to :meth:`str.format`, the next " +"specifier will use the next argument, and so on. You can't mix auto-" "numbering and explicit numbering -- either number all of your specifier " -"fields or none of them -- but you can mix auto-numbering and named fields, as" -" in the second example above. (Contributed by Eric Smith; :issue:`5237`.)" +"fields or none of them -- but you can mix auto-numbering and named fields, " +"as in the second example above. (Contributed by Eric Smith; :issue:`5237`.)" msgstr "" #: ../../whatsnew/2.7.rst:807 msgid "" "Complex numbers now correctly support usage with :func:`format`, and default " -"to being right-aligned. Specifying a precision or comma-separation applies to" -" both the real and imaginary parts of the number, but a specified field width" -" and alignment is applied to the whole of the resulting ``1.5+3j`` output. " -"(Contributed by Eric Smith; :issue:`1588` and :issue:`7988`.)" +"to being right-aligned. Specifying a precision or comma-separation applies " +"to both the real and imaginary parts of the number, but a specified field " +"width and alignment is applied to the whole of the resulting ``1.5+3j`` " +"output. (Contributed by Eric Smith; :issue:`1588` and :issue:`7988`.)" msgstr "" #: ../../whatsnew/2.7.rst:814 msgid "" -"The 'F' format code now always formats its output using uppercase characters," -" so it will now produce 'INF' and 'NAN'. (Contributed by Eric Smith; " -":issue:`3382`.)" +"The 'F' format code now always formats its output using uppercase " +"characters, so it will now produce 'INF' and 'NAN'. (Contributed by Eric " +"Smith; :issue:`3382`.)" msgstr "" #: ../../whatsnew/2.7.rst:818 msgid "" -"A low-level change: the :meth:`object.__format__` method now triggers a " -":exc:`PendingDeprecationWarning` if it's passed a format string, because the " -":meth:`!__format__` method for :class:`object` converts the object to a " +"A low-level change: the :meth:`object.__format__` method now triggers a :exc:" +"`PendingDeprecationWarning` if it's passed a format string, because the :" +"meth:`!__format__` method for :class:`object` converts the object to a " "string representation and formats that. Previously the method silently " "applied the format string to the string representation, but that could hide " "mistakes in Python code. If you're supplying formatting information such as " @@ -1173,14 +1174,15 @@ msgstr "" #: ../../whatsnew/2.7.rst:851 msgid "" "It's now possible for a subclass of the built-in :class:`!unicode` type to " -"override the :meth:`!__unicode__` method. (Implemented by Victor Stinner; " -":issue:`1583863`.)" +"override the :meth:`!__unicode__` method. (Implemented by Victor Stinner; :" +"issue:`1583863`.)" msgstr "" #: ../../whatsnew/2.7.rst:855 msgid "" -"The :class:`bytearray` type's :meth:`~bytearray.translate` method now accepts" -" ``None`` as its first argument. (Fixed by Georg Brandl; :issue:`4759`.)" +"The :class:`bytearray` type's :meth:`~bytearray.translate` method now " +"accepts ``None`` as its first argument. (Fixed by Georg Brandl; :issue:" +"`4759`.)" msgstr "" #: ../../whatsnew/2.7.rst:861 @@ -1193,32 +1195,33 @@ msgstr "" #: ../../whatsnew/2.7.rst:869 ../../whatsnew/2.7.rst:2464 msgid "" -"When a restricted set of attributes were set using ``__slots__``, deleting an" -" unset attribute would not raise :exc:`AttributeError` as you would expect. " -"Fixed by Benjamin Peterson; :issue:`7604`.)" +"When a restricted set of attributes were set using ``__slots__``, deleting " +"an unset attribute would not raise :exc:`AttributeError` as you would " +"expect. Fixed by Benjamin Peterson; :issue:`7604`.)" msgstr "" #: ../../whatsnew/2.7.rst:873 msgid "" "Two new encodings are now supported: \"cp720\", used primarily for Arabic " "text; and \"cp858\", a variant of CP 850 that adds the euro symbol. (CP720 " -"contributed by Alexander Belchenko and Amaury Forgeot d'Arc in " -":issue:`1616979`; CP858 contributed by Tim Hatch in :issue:`8016`.)" +"contributed by Alexander Belchenko and Amaury Forgeot d'Arc in :issue:" +"`1616979`; CP858 contributed by Tim Hatch in :issue:`8016`.)" msgstr "" #: ../../whatsnew/2.7.rst:879 msgid "" -"The :class:`!file` object will now set the :attr:`!filename` attribute on the" -" :exc:`IOError` exception when trying to open a directory on POSIX platforms " -"(noted by Jan Kaliszewski; :issue:`4764`), and now explicitly checks for and " -"forbids writing to read-only file objects instead of trusting the C library " -"to catch and report the error (fixed by Stefan Krah; :issue:`5677`)." +"The :class:`!file` object will now set the :attr:`!filename` attribute on " +"the :exc:`IOError` exception when trying to open a directory on POSIX " +"platforms (noted by Jan Kaliszewski; :issue:`4764`), and now explicitly " +"checks for and forbids writing to read-only file objects instead of trusting " +"the C library to catch and report the error (fixed by Stefan Krah; :issue:" +"`5677`)." msgstr "" #: ../../whatsnew/2.7.rst:886 msgid "" -"The Python tokenizer now translates line endings itself, so the " -":func:`compile` built-in function now accepts code using any line-ending " +"The Python tokenizer now translates line endings itself, so the :func:" +"`compile` built-in function now accepts code using any line-ending " "convention. Additionally, it no longer requires that the code end in a " "newline." msgstr "" @@ -1227,22 +1230,22 @@ msgstr "" msgid "" "Extra parentheses in function definitions are illegal in Python 3.x, meaning " "that you get a syntax error from ``def f((x)): pass``. In Python3-warning " -"mode, Python 2.7 will now warn about this odd usage. (Noted by James Lingard;" -" :issue:`7362`.)" +"mode, Python 2.7 will now warn about this odd usage. (Noted by James " +"Lingard; :issue:`7362`.)" msgstr "" #: ../../whatsnew/2.7.rst:896 msgid "" "It's now possible to create weak references to old-style class objects. New-" -"style classes were always weak-referenceable. (Fixed by Antoine Pitrou; " -":issue:`8268`.)" +"style classes were always weak-referenceable. (Fixed by Antoine Pitrou; :" +"issue:`8268`.)" msgstr "" #: ../../whatsnew/2.7.rst:900 msgid "" "When a module object is garbage-collected, the module's dictionary is now " -"only cleared if no one else is holding a reference to the dictionary " -"(:issue:`7140`)." +"only cleared if no one else is holding a reference to the dictionary (:issue:" +"`7140`)." msgstr "" #: ../../whatsnew/2.7.rst:909 @@ -1259,10 +1262,10 @@ msgstr "" #: ../../whatsnew/2.7.rst:917 msgid "" -"For example, the following setting will print warnings every time they occur," -" but turn warnings from the :mod:`Cookie ` module into an " -"error. (The exact syntax for setting an environment variable varies across " -"operating systems and shells.)" +"For example, the following setting will print warnings every time they " +"occur, but turn warnings from the :mod:`Cookie ` module into " +"an error. (The exact syntax for setting an environment variable varies " +"across operating systems and shells.)" msgstr "" #: ../../whatsnew/2.7.rst:924 @@ -1280,8 +1283,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:934 msgid "" "A new opcode was added to perform the initial setup for :keyword:`with` " -"statements, looking up the :meth:`~object.__enter__` and " -":meth:`~object.__exit__` methods. (Contributed by Benjamin Peterson.)" +"statements, looking up the :meth:`~object.__enter__` and :meth:`~object." +"__exit__` methods. (Contributed by Benjamin Peterson.)" msgstr "" #: ../../whatsnew/2.7.rst:938 @@ -1289,10 +1292,10 @@ msgid "" "The garbage collector now performs better for one common usage pattern: when " "many objects are being allocated without deallocating any of them. This " "would previously take quadratic time for garbage collection, but now the " -"number of full garbage collections is reduced as the number of objects on the" -" heap grows. The new logic only performs a full garbage collection pass when " -"the middle generation has been collected 10 times and when the number of " -"survivor objects from the middle generation exceeds 10% of the number of " +"number of full garbage collections is reduced as the number of objects on " +"the heap grows. The new logic only performs a full garbage collection pass " +"when the middle generation has been collected 10 times and when the number " +"of survivor objects from the middle generation exceeds 10% of the number of " "objects in the oldest generation. (Suggested by Martin von Löwis and " "implemented by Antoine Pitrou; :issue:`4074`.)" msgstr "" @@ -1303,9 +1306,9 @@ msgid "" "be part of a cycle. In Python 2.7, this is now true for tuples and dicts " "containing atomic types (such as ints, strings, etc.). Transitively, a dict " "containing tuples of atomic types won't be tracked either. This helps reduce " -"the cost of each garbage collection by decreasing the number of objects to be" -" considered and traversed by the collector. (Contributed by Antoine Pitrou; " -":issue:`4688`.)" +"the cost of each garbage collection by decreasing the number of objects to " +"be considered and traversed by the collector. (Contributed by Antoine " +"Pitrou; :issue:`4688`.)" msgstr "" #: ../../whatsnew/2.7.rst:958 @@ -1314,8 +1317,8 @@ msgid "" "``2**30``, the base being determined at build time. Previously, they were " "always stored in base ``2**15``. Using base ``2**30`` gives significant " "performance improvements on 64-bit machines, but benchmark results on 32-bit " -"machines have been mixed. Therefore, the default is to use base ``2**30`` on" -" 64-bit machines and base ``2**15`` on 32-bit machines; on Unix, there's a " +"machines have been mixed. Therefore, the default is to use base ``2**30`` " +"on 64-bit machines and base ``2**15`` on 32-bit machines; on Unix, there's a " "new configure option :option:`!--enable-big-digits` that can be used to " "override this default." msgstr "" @@ -1325,8 +1328,8 @@ msgid "" "Apart from the performance improvements this change should be invisible to " "end users, with one exception: for testing and debugging purposes there's a " "new structseq :data:`!sys.long_info` that provides information about the " -"internal format, giving the number of bits per digit and the size in bytes of" -" the C type used to store each digit::" +"internal format, giving the number of bits per digit and the size in bytes " +"of the C type used to store each digit::" msgstr "" #: ../../whatsnew/2.7.rst:974 @@ -1342,9 +1345,9 @@ msgstr "" #: ../../whatsnew/2.7.rst:980 msgid "" -"Another set of changes made long objects a few bytes smaller: 2 bytes smaller" -" on 32-bit systems and 6 bytes on 64-bit. (Contributed by Mark Dickinson; " -":issue:`5260`.)" +"Another set of changes made long objects a few bytes smaller: 2 bytes " +"smaller on 32-bit systems and 6 bytes on 64-bit. (Contributed by Mark " +"Dickinson; :issue:`5260`.)" msgstr "" #: ../../whatsnew/2.7.rst:984 @@ -1360,16 +1363,16 @@ msgstr "" #: ../../whatsnew/2.7.rst:993 msgid "" "The implementation of ``%`` checks for the left-side operand being a Python " -"string and special-cases it; this results in a 1--3% performance increase for" -" applications that frequently use ``%`` with strings, such as templating " +"string and special-cases it; this results in a 1--3% performance increase " +"for applications that frequently use ``%`` with strings, such as templating " "libraries. (Implemented by Collin Winter; :issue:`5176`.)" msgstr "" #: ../../whatsnew/2.7.rst:999 msgid "" "List comprehensions with an ``if`` condition are compiled into faster " -"bytecode. (Patch by Antoine Pitrou, back-ported to 2.7 by Jeffrey Yasskin; " -":issue:`4715`.)" +"bytecode. (Patch by Antoine Pitrou, back-ported to 2.7 by Jeffrey Yasskin; :" +"issue:`4715`.)" msgstr "" #: ../../whatsnew/2.7.rst:1003 @@ -1397,8 +1400,9 @@ msgstr "" #: ../../whatsnew/2.7.rst:1020 msgid "" -"The :mod:`!cPickle` module now special-cases dictionaries, nearly halving the" -" time required to pickle them. (Contributed by Collin Winter; :issue:`5670`.)" +"The :mod:`!cPickle` module now special-cases dictionaries, nearly halving " +"the time required to pickle them. (Contributed by Collin Winter; :issue:" +"`5670`.)" msgstr "" #: ../../whatsnew/2.7.rst:1027 @@ -1420,8 +1424,8 @@ msgid "" "feature for skipping modules. The constructor now takes an iterable " "containing glob-style patterns such as ``django.*``; the debugger will not " "step into stack frames from a module that matches one of these patterns. " -"(Contributed by Maru Newby after a suggestion by Senthil Kumaran; " -":issue:`5142`.)" +"(Contributed by Maru Newby after a suggestion by Senthil Kumaran; :issue:" +"`5142`.)" msgstr "" #: ../../whatsnew/2.7.rst:1043 @@ -1433,13 +1437,12 @@ msgstr "" #: ../../whatsnew/2.7.rst:1047 msgid "" -"Updated module: the :mod:`!bsddb` module has been updated from 4.7.2devel9 to" -" version 4.8.4 of `the pybsddb package " -"`__. The new version features " -"better Python 3.x compatibility, various bug fixes, and adds several new " -"BerkeleyDB flags and methods. (Updated by Jesús Cea Avión; :issue:`8156`. " -"The pybsddb changelog can be read at " -"https://hg.jcea.es/pybsddb/file/tip/ChangeLog.)" +"Updated module: the :mod:`!bsddb` module has been updated from 4.7.2devel9 " +"to version 4.8.4 of `the pybsddb package `__. The new version features better Python 3.x compatibility, " +"various bug fixes, and adds several new BerkeleyDB flags and methods. " +"(Updated by Jesús Cea Avión; :issue:`8156`. The pybsddb changelog can be " +"read at https://hg.jcea.es/pybsddb/file/tip/ChangeLog.)" msgstr "" #: ../../whatsnew/2.7.rst:1055 @@ -1476,9 +1479,9 @@ msgstr "" #: ../../whatsnew/2.7.rst:1081 msgid "" -"There are three additional :class:`~collections.Counter` methods. " -":meth:`~collections.Counter.most_common` returns the N most common elements " -"and their counts. :meth:`~collections.Counter.elements` returns an iterator " +"There are three additional :class:`~collections.Counter` methods. :meth:" +"`~collections.Counter.most_common` returns the N most common elements and " +"their counts. :meth:`~collections.Counter.elements` returns an iterator " "over the contained elements, repeating each element as many times as its " "count. :meth:`~collections.Counter.subtract` takes an iterable and subtracts " "one for each element instead of adding; if the argument is a dictionary or " @@ -1513,13 +1516,13 @@ msgstr "" #: ../../whatsnew/2.7.rst:1111 msgid "" -"New method: The :class:`~collections.deque` data type now has a " -":meth:`~collections.deque.count` method that returns the number of contained " -"elements equal to the supplied argument *x*, and a " -":meth:`~collections.deque.reverse` method that reverses the elements of the " -"deque in-place. :class:`~collections.deque` also exposes its maximum length " -"as the read-only :attr:`~collections.deque.maxlen` attribute. (Both features " -"added by Raymond Hettinger.)" +"New method: The :class:`~collections.deque` data type now has a :meth:" +"`~collections.deque.count` method that returns the number of contained " +"elements equal to the supplied argument *x*, and a :meth:`~collections.deque." +"reverse` method that reverses the elements of the deque in-place. :class:" +"`~collections.deque` also exposes its maximum length as the read-only :attr:" +"`~collections.deque.maxlen` attribute. (Both features added by Raymond " +"Hettinger.)" msgstr "" #: ../../whatsnew/2.7.rst:1119 @@ -1583,9 +1586,9 @@ msgstr "" #: ../../whatsnew/2.7.rst:1166 msgid "" -"The :mod:`cookielib ` module now ignores cookies that have an" -" invalid version field, one that doesn't contain an integer value. (Fixed by" -" John J. Lee; :issue:`3924`.)" +"The :mod:`cookielib ` module now ignores cookies that have " +"an invalid version field, one that doesn't contain an integer value. (Fixed " +"by John J. Lee; :issue:`3924`.)" msgstr "" #: ../../whatsnew/2.7.rst:1170 @@ -1596,31 +1599,29 @@ msgstr "" #: ../../whatsnew/2.7.rst:1174 msgid "" -"The :mod:`ctypes` module now always converts ``None`` to a C ``NULL`` pointer" -" for arguments declared as pointers. (Changed by Thomas Heller; " -":issue:`4606`.) The underlying `libffi library " -"`__ has been updated to version 3.0.9, " -"containing various fixes for different platforms. (Updated by Matthias " -"Klose; :issue:`8142`.)" +"The :mod:`ctypes` module now always converts ``None`` to a C ``NULL`` " +"pointer for arguments declared as pointers. (Changed by Thomas Heller; :" +"issue:`4606`.) The underlying `libffi library `__ has been updated to version 3.0.9, containing various fixes for " +"different platforms. (Updated by Matthias Klose; :issue:`8142`.)" msgstr "" #: ../../whatsnew/2.7.rst:1181 msgid "" "New method: the :mod:`datetime` module's :class:`~datetime.timedelta` class " "gained a :meth:`~datetime.timedelta.total_seconds` method that returns the " -"number of seconds in the duration. (Contributed by Brian Quinlan; " -":issue:`5788`.)" +"number of seconds in the duration. (Contributed by Brian Quinlan; :issue:" +"`5788`.)" msgstr "" #: ../../whatsnew/2.7.rst:1185 msgid "" -"New method: the :class:`~decimal.Decimal` class gained a " -":meth:`~decimal.Decimal.from_float` class method that performs an exact " -"conversion of a floating-point number to a :class:`!Decimal`. This exact " -"conversion strives for the closest decimal approximation to the floating-" -"point representation's value; the resulting decimal value will therefore " -"still include the inaccuracy, if any. For example, " -"``Decimal.from_float(0.1)`` returns " +"New method: the :class:`~decimal.Decimal` class gained a :meth:`~decimal." +"Decimal.from_float` class method that performs an exact conversion of a " +"floating-point number to a :class:`!Decimal`. This exact conversion strives " +"for the closest decimal approximation to the floating-point representation's " +"value; the resulting decimal value will therefore still include the " +"inaccuracy, if any. For example, ``Decimal.from_float(0.1)`` returns " "``Decimal('0.1000000000000000055511151231257827021181583404541015625')``. " "(Implemented by Raymond Hettinger; :issue:`4796`.)" msgstr "" @@ -1641,120 +1642,120 @@ msgstr "" msgid "" "The constructor for :class:`~decimal.Decimal` now accepts floating-point " "numbers (added by Raymond Hettinger; :issue:`8257`) and non-European Unicode " -"characters such as Arabic-Indic digits (contributed by Mark Dickinson; " -":issue:`6595`)." +"characters such as Arabic-Indic digits (contributed by Mark Dickinson; :" +"issue:`6595`)." msgstr "" #: ../../whatsnew/2.7.rst:1210 msgid "" "Most of the methods of the :class:`~decimal.Context` class now accept " "integers as well as :class:`~decimal.Decimal` instances; the only exceptions " -"are the :meth:`~decimal.Context.canonical` and " -":meth:`~decimal.Context.is_canonical` methods. (Patch by Juan José Conti; " -":issue:`7633`.)" +"are the :meth:`~decimal.Context.canonical` and :meth:`~decimal.Context." +"is_canonical` methods. (Patch by Juan José Conti; :issue:`7633`.)" msgstr "" #: ../../whatsnew/2.7.rst:1215 msgid "" -"When using :class:`~decimal.Decimal` instances with a string's " -":meth:`~str.format` method, the default alignment was previously left-" -"alignment. This has been changed to right-alignment, which is more sensible " -"for numeric types. (Changed by Mark Dickinson; :issue:`6857`.)" +"When using :class:`~decimal.Decimal` instances with a string's :meth:`~str." +"format` method, the default alignment was previously left-alignment. This " +"has been changed to right-alignment, which is more sensible for numeric " +"types. (Changed by Mark Dickinson; :issue:`6857`.)" msgstr "" #: ../../whatsnew/2.7.rst:1220 ../../whatsnew/2.7.rst:2482 msgid "" -"Comparisons involving a signaling NaN value (or ``sNAN``) now signal " -":const:`~decimal.InvalidOperation` instead of silently returning a true or " -"false value depending on the comparison operator. Quiet NaN values (or " -"``NaN``) are now hashable. (Fixed by Mark Dickinson; :issue:`7279`.)" +"Comparisons involving a signaling NaN value (or ``sNAN``) now signal :const:" +"`~decimal.InvalidOperation` instead of silently returning a true or false " +"value depending on the comparison operator. Quiet NaN values (or ``NaN``) " +"are now hashable. (Fixed by Mark Dickinson; :issue:`7279`.)" msgstr "" #: ../../whatsnew/2.7.rst:1226 msgid "" "The :mod:`difflib` module now produces output that is more compatible with " -"modern :command:`diff`/:command:`patch` tools through one small change, using" -" a tab character instead of spaces as a separator in the header giving the " -"filename. (Fixed by Anatoly Techtonik; :issue:`7585`.)" +"modern :command:`diff`/:command:`patch` tools through one small change, " +"using a tab character instead of spaces as a separator in the header giving " +"the filename. (Fixed by Anatoly Techtonik; :issue:`7585`.)" msgstr "" #: ../../whatsnew/2.7.rst:1232 msgid "" "The Distutils ``sdist`` command now always regenerates the :file:`MANIFEST` " -"file, since even if the :file:`MANIFEST.in` or :file:`setup.py` files haven't" -" been modified, the user might have created some new files that should be " -"included. (Fixed by Tarek Ziadé; :issue:`8688`.)" +"file, since even if the :file:`MANIFEST.in` or :file:`setup.py` files " +"haven't been modified, the user might have created some new files that " +"should be included. (Fixed by Tarek Ziadé; :issue:`8688`.)" msgstr "" #: ../../whatsnew/2.7.rst:1238 msgid "" "The :mod:`doctest` module's :const:`~doctest.IGNORE_EXCEPTION_DETAIL` flag " -"will now ignore the name of the module containing the exception being tested." -" (Patch by Lennart Regebro; :issue:`7490`.)" +"will now ignore the name of the module containing the exception being " +"tested. (Patch by Lennart Regebro; :issue:`7490`.)" msgstr "" #: ../../whatsnew/2.7.rst:1242 msgid "" "The :mod:`email` module's :class:`~email.message.Message` class will now " "accept a Unicode-valued payload, automatically converting the payload to the " -"encoding specified by :attr:`!output_charset`. (Added by R. David Murray; " -":issue:`1368247`.)" +"encoding specified by :attr:`!output_charset`. (Added by R. David Murray; :" +"issue:`1368247`.)" msgstr "" #: ../../whatsnew/2.7.rst:1247 msgid "" -"The :class:`~fractions.Fraction` class now accepts a single float or " -":class:`~decimal.Decimal` instance, or two rational numbers, as arguments to " -"its constructor. (Implemented by Mark Dickinson; rationals added in " -":issue:`5812`, and float/decimal in :issue:`8294`.)" +"The :class:`~fractions.Fraction` class now accepts a single float or :class:" +"`~decimal.Decimal` instance, or two rational numbers, as arguments to its " +"constructor. (Implemented by Mark Dickinson; rationals added in :issue:" +"`5812`, and float/decimal in :issue:`8294`.)" msgstr "" #: ../../whatsnew/2.7.rst:1253 msgid "" "Ordering comparisons (``<``, ``<=``, ``>``, ``>=``) between fractions and " -"complex numbers now raise a :exc:`TypeError`. This fixes an oversight, making" -" the :class:`~fractions.Fraction` match the other numeric types." +"complex numbers now raise a :exc:`TypeError`. This fixes an oversight, " +"making the :class:`~fractions.Fraction` match the other numeric types." msgstr "" #: ../../whatsnew/2.7.rst:1260 msgid "" "New class: :class:`~ftplib.FTP_TLS` in the :mod:`ftplib` module provides " "secure FTP connections using TLS encapsulation of authentication as well as " -"subsequent control and data transfers. (Contributed by Giampaolo Rodola; " -":issue:`2054`.)" +"subsequent control and data transfers. (Contributed by Giampaolo Rodola; :" +"issue:`2054`.)" msgstr "" #: ../../whatsnew/2.7.rst:1266 msgid "" "The :meth:`~ftplib.FTP.storbinary` method for binary uploads can now restart " -"uploads thanks to an added *rest* parameter (patch by Pablo Mouzo; " -":issue:`6845`.)" +"uploads thanks to an added *rest* parameter (patch by Pablo Mouzo; :issue:" +"`6845`.)" msgstr "" #: ../../whatsnew/2.7.rst:1270 msgid "" -"New class decorator: :deco:`~functools.total_ordering` in the " -":mod:`functools` module takes a class that defines an :meth:`~object.__eq__` " -"method and one of :meth:`~object.__lt__`, :meth:`~object.__le__`, " -":meth:`~object.__gt__`, or :meth:`~object.__ge__`, and generates the missing " -"comparison methods. Since the :meth:`!__cmp__` method is being deprecated in" -" Python 3.x, this decorator makes it easier to define ordered classes. (Added" -" by Raymond Hettinger; :issue:`5479`.)" +"New class decorator: :deco:`~functools.total_ordering` in the :mod:" +"`functools` module takes a class that defines an :meth:`~object.__eq__` " +"method and one of :meth:`~object.__lt__`, :meth:`~object.__le__`, :meth:" +"`~object.__gt__`, or :meth:`~object.__ge__`, and generates the missing " +"comparison methods. Since the :meth:`!__cmp__` method is being deprecated " +"in Python 3.x, this decorator makes it easier to define ordered classes. " +"(Added by Raymond Hettinger; :issue:`5479`.)" msgstr "" #: ../../whatsnew/2.7.rst:1278 msgid "" -"New function: :func:`~functools.cmp_to_key` will take an old-style comparison" -" function that expects two arguments and return a new callable that can be " -"used as the *key* parameter to functions such as :func:`sorted`, :func:`min` " -"and :func:`max`, etc. The primary intended use is to help with making code " -"compatible with Python 3.x. (Added by Raymond Hettinger.)" +"New function: :func:`~functools.cmp_to_key` will take an old-style " +"comparison function that expects two arguments and return a new callable " +"that can be used as the *key* parameter to functions such as :func:" +"`sorted`, :func:`min` and :func:`max`, etc. The primary intended use is to " +"help with making code compatible with Python 3.x. (Added by Raymond " +"Hettinger.)" msgstr "" #: ../../whatsnew/2.7.rst:1285 msgid "" -"New function: the :mod:`gc` module's :func:`~gc.is_tracked` returns true if a" -" given instance is tracked by the garbage collector, false otherwise. " +"New function: the :mod:`gc` module's :func:`~gc.is_tracked` returns true if " +"a given instance is tracked by the garbage collector, false otherwise. " "(Contributed by Antoine Pitrou; :issue:`4688`.)" msgstr "" @@ -1762,19 +1763,19 @@ msgstr "" msgid "" "The :mod:`gzip` module's :class:`~gzip.GzipFile` now supports the context " "management protocol, so you can write ``with gzip.GzipFile(...) as f:`` " -"(contributed by Hagen Fürstenau; :issue:`3860`), and it now implements the " -":class:`io.BufferedIOBase` ABC, so you can wrap it with " -":class:`io.BufferedReader` for faster processing (contributed by Nir Aides; " -":issue:`7471`). It's also now possible to override the modification time " -"recorded in a gzipped file by providing an optional timestamp to the " -"constructor. (Contributed by Jacques Frechet; :issue:`4272`.)" +"(contributed by Hagen Fürstenau; :issue:`3860`), and it now implements the :" +"class:`io.BufferedIOBase` ABC, so you can wrap it with :class:`io." +"BufferedReader` for faster processing (contributed by Nir Aides; :issue:" +"`7471`). It's also now possible to override the modification time recorded " +"in a gzipped file by providing an optional timestamp to the constructor. " +"(Contributed by Jacques Frechet; :issue:`4272`.)" msgstr "" #: ../../whatsnew/2.7.rst:1299 msgid "" "Files in gzip format can be padded with trailing zero bytes; the :mod:`gzip` " -"module will now consume these trailing bytes. (Fixed by Tadek Pietraszek and" -" Brian Curtin; :issue:`2846`.)" +"module will now consume these trailing bytes. (Fixed by Tadek Pietraszek " +"and Brian Curtin; :issue:`2846`.)" msgstr "" #: ../../whatsnew/2.7.rst:1303 @@ -1787,26 +1788,26 @@ msgstr "" #: ../../whatsnew/2.7.rst:1309 msgid "" -"The default :class:`~http.client.HTTPResponse` class used by the " -":mod:`httplib ` module now supports buffering, resulting in much faster" -" reading of HTTP responses. (Contributed by Kristján Valur Jónsson; " -":issue:`4879`.)" +"The default :class:`~http.client.HTTPResponse` class used by the :mod:" +"`httplib ` module now supports buffering, resulting in much faster " +"reading of HTTP responses. (Contributed by Kristján Valur Jónsson; :issue:" +"`4879`.)" msgstr "" #: ../../whatsnew/2.7.rst:1313 msgid "" -"The :class:`~http.client.HTTPConnection` and " -":class:`~http.client.HTTPSConnection` classes now support a *source_address* " -"parameter, a ``(host, port)`` 2-tuple giving the source address that will be " -"used for the connection. (Contributed by Eldon Ziegler; :issue:`3972`.)" +"The :class:`~http.client.HTTPConnection` and :class:`~http.client." +"HTTPSConnection` classes now support a *source_address* parameter, a " +"``(host, port)`` 2-tuple giving the source address that will be used for the " +"connection. (Contributed by Eldon Ziegler; :issue:`3972`.)" msgstr "" #: ../../whatsnew/2.7.rst:1318 msgid "" -"The :mod:`!ihooks` module now supports relative imports. Note that " -":mod:`!ihooks` is an older module for customizing imports, superseded by the " -":mod:`!imputil` module added in Python 2.0. (Relative import support added by" -" Neil Schemenauer.)" +"The :mod:`!ihooks` module now supports relative imports. Note that :mod:`!" +"ihooks` is an older module for customizing imports, superseded by the :mod:`!" +"imputil` module added in Python 2.0. (Relative import support added by Neil " +"Schemenauer.)" msgstr "" #: ../../whatsnew/2.7.rst:1325 @@ -1818,9 +1819,9 @@ msgstr "" #: ../../whatsnew/2.7.rst:1328 msgid "" "New function: the :mod:`inspect` module's :func:`~inspect.getcallargs` takes " -"a callable and its positional and keyword arguments, and figures out which of" -" the callable's parameters will receive each argument, returning a dictionary" -" mapping argument names to their values. For example::" +"a callable and its positional and keyword arguments, and figures out which " +"of the callable's parameters will receive each argument, returning a " +"dictionary mapping argument names to their values. For example::" msgstr "" #: ../../whatsnew/2.7.rst:1333 @@ -1853,8 +1854,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:1353 msgid "" -"One minor resulting change: the :class:`io.TextIOBase` class now has an " -":attr:`~io.TextIOBase.errors` attribute giving the error setting used for " +"One minor resulting change: the :class:`io.TextIOBase` class now has an :" +"attr:`~io.TextIOBase.errors` attribute giving the error setting used for " "encoding and decoding errors (one of ``'strict'``, ``'replace'``, " "``'ignore'``)." msgstr "" @@ -1862,10 +1863,10 @@ msgstr "" #: ../../whatsnew/2.7.rst:1358 msgid "" "The :class:`io.FileIO` class now raises an :exc:`OSError` when passed an " -"invalid file descriptor. (Implemented by Benjamin Peterson; :issue:`4991`.)" -" The :meth:`~io.IOBase.truncate` method now preserves the file position; " -"previously it would change the file position to the end of the new file. " -"(Fixed by Pascal Chambon; :issue:`6939`.)" +"invalid file descriptor. (Implemented by Benjamin Peterson; :issue:" +"`4991`.) The :meth:`~io.IOBase.truncate` method now preserves the file " +"position; previously it would change the file position to the end of the new " +"file. (Fixed by Pascal Chambon; :issue:`6939`.)" msgstr "" #: ../../whatsnew/2.7.rst:1364 @@ -1906,17 +1907,17 @@ msgstr "" msgid "" "The :func:`itertools.count` function now has a *step* argument that allows " "incrementing by values other than 1. :func:`~itertools.count` also now " -"allows keyword arguments, and using non-integer values such as floats or " -":class:`~decimal.Decimal` instances. (Implemented by Raymond Hettinger; " -":issue:`5032`.)" +"allows keyword arguments, and using non-integer values such as floats or :" +"class:`~decimal.Decimal` instances. (Implemented by Raymond Hettinger; :" +"issue:`5032`.)" msgstr "" #: ../../whatsnew/2.7.rst:1391 msgid "" ":func:`itertools.combinations` and :func:`itertools.product` previously " "raised :exc:`ValueError` for values of *r* larger than the input iterable. " -"This was deemed a specification error, so they now return an empty iterator." -" (Fixed by Raymond Hettinger; :issue:`4816`.)" +"This was deemed a specification error, so they now return an empty " +"iterator. (Fixed by Raymond Hettinger; :issue:`4816`.)" msgstr "" #: ../../whatsnew/2.7.rst:1396 @@ -1945,21 +1946,21 @@ msgstr "" #: ../../whatsnew/2.7.rst:1412 msgid "" -"New functions: the :mod:`math` module gained :func:`~math.erf` and " -":func:`~math.erfc` for the error function and the complementary error " -"function, :func:`~math.expm1` which computes ``e**x - 1`` with more precision" -" than using :func:`~math.exp` and subtracting 1, :func:`~math.gamma` for the " -"Gamma function, and :func:`~math.lgamma` for the natural log of the Gamma " -"function. (Contributed by Mark Dickinson and nirinA raseliarison; " -":issue:`3366`.)" +"New functions: the :mod:`math` module gained :func:`~math.erf` and :func:" +"`~math.erfc` for the error function and the complementary error function, :" +"func:`~math.expm1` which computes ``e**x - 1`` with more precision than " +"using :func:`~math.exp` and subtracting 1, :func:`~math.gamma` for the Gamma " +"function, and :func:`~math.lgamma` for the natural log of the Gamma " +"function. (Contributed by Mark Dickinson and nirinA raseliarison; :issue:" +"`3366`.)" msgstr "" #: ../../whatsnew/2.7.rst:1420 msgid "" "The :mod:`multiprocessing` module's :class:`!Manager*` classes can now be " -"passed a callable that will be called whenever a subprocess is started, along" -" with a set of arguments that will be passed to the callable. (Contributed by" -" lekma; :issue:`5585`.)" +"passed a callable that will be called whenever a subprocess is started, " +"along with a set of arguments that will be passed to the callable. " +"(Contributed by lekma; :issue:`5585`.)" msgstr "" #: ../../whatsnew/2.7.rst:1426 @@ -1974,20 +1975,19 @@ msgstr "" #: ../../whatsnew/2.7.rst:1434 msgid "" -"The :mod:`!nntplib` module now supports IPv6 addresses. (Contributed by Derek" -" Morr; :issue:`1664`.)" +"The :mod:`!nntplib` module now supports IPv6 addresses. (Contributed by " +"Derek Morr; :issue:`1664`.)" msgstr "" #: ../../whatsnew/2.7.rst:1437 msgid "" -"New functions: the :mod:`os` module wraps the following POSIX system calls: " -":func:`~os.getresgid` and :func:`~os.getresuid`, which return the real, " -"effective, and saved GIDs and UIDs; :func:`~os.setresgid` and " -":func:`~os.setresuid`, which set real, effective, and saved GIDs and UIDs to " -"new values; :func:`~os.initgroups`, which initialize the group access list " -"for the current process. (GID/UID functions contributed by Travis H.; " -":issue:`6508`. Support for initgroups added by Jean-Paul Calderone; " -":issue:`7333`.)" +"New functions: the :mod:`os` module wraps the following POSIX system calls: :" +"func:`~os.getresgid` and :func:`~os.getresuid`, which return the real, " +"effective, and saved GIDs and UIDs; :func:`~os.setresgid` and :func:`~os." +"setresuid`, which set real, effective, and saved GIDs and UIDs to new " +"values; :func:`~os.initgroups`, which initialize the group access list for " +"the current process. (GID/UID functions contributed by Travis H.; :issue:" +"`6508`. Support for initgroups added by Jean-Paul Calderone; :issue:`7333`.)" msgstr "" #: ../../whatsnew/2.7.rst:1447 @@ -1999,11 +1999,11 @@ msgstr "" #: ../../whatsnew/2.7.rst:1451 msgid "" -"In the :mod:`os.path` module, the :func:`~os.path.normpath` and " -":func:`~os.path.abspath` functions now preserve Unicode; if their input path " -"is a Unicode string, the return value is also a Unicode string. " -"(:meth:`~os.path.normpath` fixed by Matt Giuca in :issue:`5827`; " -":meth:`~os.path.abspath` fixed by Ezio Melotti in :issue:`3426`.)" +"In the :mod:`os.path` module, the :func:`~os.path.normpath` and :func:`~os." +"path.abspath` functions now preserve Unicode; if their input path is a " +"Unicode string, the return value is also a Unicode string. (:meth:`~os.path." +"normpath` fixed by Matt Giuca in :issue:`5827`; :meth:`~os.path.abspath` " +"fixed by Ezio Melotti in :issue:`3426`.)" msgstr "" #: ../../whatsnew/2.7.rst:1457 @@ -2015,69 +2015,68 @@ msgstr "" #: ../../whatsnew/2.7.rst:1461 msgid "" -"The :mod:`re` module's :func:`~re.split`, :func:`~re.sub`, and " -":func:`~re.subn` now accept an optional *flags* argument, for consistency " -"with the other functions in the module. (Added by Gregory P. Smith.)" +"The :mod:`re` module's :func:`~re.split`, :func:`~re.sub`, and :func:`~re." +"subn` now accept an optional *flags* argument, for consistency with the " +"other functions in the module. (Added by Gregory P. Smith.)" msgstr "" #: ../../whatsnew/2.7.rst:1465 msgid "" -"New function: :func:`~runpy.run_path` in the :mod:`runpy` module will execute" -" the code at a provided *path* argument. *path* can be the path of a Python " -"source file (:file:`example.py`), a compiled bytecode file " -"(:file:`example.pyc`), a directory (:file:`./package/`), or a zip archive " -"(:file:`example.zip`). If a directory or zip path is provided, it will be " -"added to the front of ``sys.path`` and the module :mod:`__main__` will be " -"imported. It's expected that the directory or zip contains a " -":file:`__main__.py`; if it doesn't, some other :file:`__main__.py` might be " -"imported from a location later in ``sys.path``. This makes more of the " -"machinery of :mod:`runpy` available to scripts that want to mimic the way " -"Python's command line processes an explicit path name. (Added by Nick " -"Coghlan; :issue:`6816`.)" +"New function: :func:`~runpy.run_path` in the :mod:`runpy` module will " +"execute the code at a provided *path* argument. *path* can be the path of a " +"Python source file (:file:`example.py`), a compiled bytecode file (:file:" +"`example.pyc`), a directory (:file:`./package/`), or a zip archive (:file:" +"`example.zip`). If a directory or zip path is provided, it will be added to " +"the front of ``sys.path`` and the module :mod:`__main__` will be imported. " +"It's expected that the directory or zip contains a :file:`__main__.py`; if " +"it doesn't, some other :file:`__main__.py` might be imported from a location " +"later in ``sys.path``. This makes more of the machinery of :mod:`runpy` " +"available to scripts that want to mimic the way Python's command line " +"processes an explicit path name. (Added by Nick Coghlan; :issue:`6816`.)" msgstr "" #: ../../whatsnew/2.7.rst:1479 msgid "" -"New function: in the :mod:`shutil` module, :func:`~shutil.make_archive` takes" -" a filename, archive type (zip or tar-format), and a directory path, and " -"creates an archive containing the directory's contents. (Added by Tarek " +"New function: in the :mod:`shutil` module, :func:`~shutil.make_archive` " +"takes a filename, archive type (zip or tar-format), and a directory path, " +"and creates an archive containing the directory's contents. (Added by Tarek " "Ziadé.)" msgstr "" #: ../../whatsnew/2.7.rst:1484 msgid "" ":mod:`shutil`'s :func:`~shutil.copyfile` and :func:`~shutil.copytree` " -"functions now raise a :exc:`~shutil.SpecialFileError` exception when asked to" -" copy a named pipe. Previously the code would treat named pipes like a " -"regular file by opening them for reading, and this would block indefinitely." -" (Fixed by Antoine Pitrou; :issue:`3002`.)" +"functions now raise a :exc:`~shutil.SpecialFileError` exception when asked " +"to copy a named pipe. Previously the code would treat named pipes like a " +"regular file by opening them for reading, and this would block " +"indefinitely. (Fixed by Antoine Pitrou; :issue:`3002`.)" msgstr "" #: ../../whatsnew/2.7.rst:1490 msgid "" -"The :mod:`signal` module no longer re-installs the signal handler unless this" -" is truly necessary, which fixes a bug that could make it impossible to catch" -" the EINTR signal robustly. (Fixed by Charles-Francois Natali; " -":issue:`8354`.)" +"The :mod:`signal` module no longer re-installs the signal handler unless " +"this is truly necessary, which fixes a bug that could make it impossible to " +"catch the EINTR signal robustly. (Fixed by Charles-Francois Natali; :issue:" +"`8354`.)" msgstr "" #: ../../whatsnew/2.7.rst:1495 msgid "" "New functions: in the :mod:`site` module, three new functions return various " "site- and user-specific paths. :func:`~site.getsitepackages` returns a list " -"containing all global site-packages directories, " -":func:`~site.getusersitepackages` returns the path of the user's site-" -"packages directory, and :func:`~site.getuserbase` returns the value of the " -":data:`~site.USER_BASE` environment variable, giving the path to a directory " -"that can be used to store data. (Contributed by Tarek Ziadé; :issue:`6693`.)" +"containing all global site-packages directories, :func:`~site." +"getusersitepackages` returns the path of the user's site-packages directory, " +"and :func:`~site.getuserbase` returns the value of the :data:`~site." +"USER_BASE` environment variable, giving the path to a directory that can be " +"used to store data. (Contributed by Tarek Ziadé; :issue:`6693`.)" msgstr "" #: ../../whatsnew/2.7.rst:1506 msgid "" -"The :mod:`site` module now reports exceptions occurring when the " -":mod:`sitecustomize` module is imported, and will no longer catch and swallow" -" the :exc:`KeyboardInterrupt` exception. (Fixed by Victor Stinner; " -":issue:`3137`.)" +"The :mod:`site` module now reports exceptions occurring when the :mod:" +"`sitecustomize` module is imported, and will no longer catch and swallow " +"the :exc:`KeyboardInterrupt` exception. (Fixed by Victor Stinner; :issue:" +"`3137`.)" msgstr "" #: ../../whatsnew/2.7.rst:1511 @@ -2089,26 +2088,25 @@ msgstr "" #: ../../whatsnew/2.7.rst:1516 msgid "" -"The :meth:`~socket.socket.recv_into` and :meth:`~socket.socket.recvfrom_into`" -" methods will now write into objects that support the buffer API, most " -"usefully the :class:`bytearray` and :class:`memoryview` objects. " +"The :meth:`~socket.socket.recv_into` and :meth:`~socket.socket." +"recvfrom_into` methods will now write into objects that support the buffer " +"API, most usefully the :class:`bytearray` and :class:`memoryview` objects. " "(Implemented by Antoine Pitrou; :issue:`8104`.)" msgstr "" #: ../../whatsnew/2.7.rst:1521 msgid "" -"The :mod:`SocketServer ` module's " -":class:`~socketserver.TCPServer` class now supports socket timeouts and " -"disabling the Nagle algorithm. The :attr:`!disable_nagle_algorithm` class " -"attribute defaults to ``False``; if overridden to be true, new request " -"connections will have the TCP_NODELAY option set to prevent buffering many " -"small sends into a single TCP packet. The " -":attr:`~socketserver.BaseServer.timeout` class attribute can hold a timeout " -"in seconds that will be applied to the request socket; if no request is " -"received within that time, :meth:`~socketserver.BaseServer.handle_timeout` " -"will be called and :meth:`~socketserver.BaseServer.handle_request` will " -"return. (Contributed by Kristján Valur Jónsson; :issue:`6192` and " -":issue:`6267`.)" +"The :mod:`SocketServer ` module's :class:`~socketserver." +"TCPServer` class now supports socket timeouts and disabling the Nagle " +"algorithm. The :attr:`!disable_nagle_algorithm` class attribute defaults to " +"``False``; if overridden to be true, new request connections will have the " +"TCP_NODELAY option set to prevent buffering many small sends into a single " +"TCP packet. The :attr:`~socketserver.BaseServer.timeout` class attribute can " +"hold a timeout in seconds that will be applied to the request socket; if no " +"request is received within that time, :meth:`~socketserver.BaseServer." +"handle_timeout` will be called and :meth:`~socketserver.BaseServer." +"handle_request` will return. (Contributed by Kristján Valur Jónsson; :issue:" +"`6192` and :issue:`6267`.)" msgstr "" #: ../../whatsnew/2.7.rst:1533 @@ -2117,19 +2115,19 @@ msgid "" "of the `pysqlite package `__. Version " "2.6.0 includes a number of bugfixes, and adds the ability to load SQLite " "extensions from shared libraries. Call the ``enable_load_extension(True)`` " -"method to enable extensions, and then call " -":meth:`~sqlite3.Connection.load_extension` to load a particular shared " -"library. (Updated by Gerhard Häring.)" +"method to enable extensions, and then call :meth:`~sqlite3.Connection." +"load_extension` to load a particular shared library. (Updated by Gerhard " +"Häring.)" msgstr "" #: ../../whatsnew/2.7.rst:1540 msgid "" "The :mod:`ssl` module's :class:`~ssl.SSLSocket` objects now support the " -"buffer API, which fixed a test suite failure (fix by Antoine Pitrou; " -":issue:`7133`) and automatically set OpenSSL's " -":c:macro:`!SSL_MODE_AUTO_RETRY`, which will prevent an error code being " -"returned from :meth:`!recv` operations that trigger an SSL renegotiation (fix" -" by Antoine Pitrou; :issue:`8222`)." +"buffer API, which fixed a test suite failure (fix by Antoine Pitrou; :issue:" +"`7133`) and automatically set OpenSSL's :c:macro:`!SSL_MODE_AUTO_RETRY`, " +"which will prevent an error code being returned from :meth:`!recv` " +"operations that trigger an SSL renegotiation (fix by Antoine Pitrou; :issue:" +"`8222`)." msgstr "" #: ../../whatsnew/2.7.rst:1547 @@ -2137,8 +2135,8 @@ msgid "" "The :func:`~ssl.SSLContext.wrap_socket` constructor function now takes a " "*ciphers* argument that's a string listing the encryption algorithms to be " "allowed; the format of the string is described `in the OpenSSL documentation " -"`__. (Added by Antoine Pitrou; " -":issue:`8322`.)" +"`__. (Added by Antoine " +"Pitrou; :issue:`8322`.)" msgstr "" #: ../../whatsnew/2.7.rst:1554 @@ -2151,9 +2149,9 @@ msgstr "" #: ../../whatsnew/2.7.rst:1560 msgid "" -"The version of OpenSSL being used is now available as the module attributes " -":const:`ssl.OPENSSL_VERSION` (a string), :const:`ssl.OPENSSL_VERSION_INFO` (a" -" 5-tuple), and :const:`ssl.OPENSSL_VERSION_NUMBER` (an integer). (Added by " +"The version of OpenSSL being used is now available as the module attributes :" +"const:`ssl.OPENSSL_VERSION` (a string), :const:`ssl.OPENSSL_VERSION_INFO` (a " +"5-tuple), and :const:`ssl.OPENSSL_VERSION_NUMBER` (an integer). (Added by " "Antoine Pitrou; :issue:`8321`.)" msgstr "" @@ -2170,10 +2168,10 @@ msgstr "" #: ../../whatsnew/2.7.rst:1575 msgid "" -"New function: the :mod:`subprocess` module's :func:`~subprocess.check_output`" -" runs a command with a specified set of arguments and returns the command's " -"output as a string when the command runs without error, or raises a " -":exc:`~subprocess.CalledProcessError` exception otherwise." +"New function: the :mod:`subprocess` module's :func:`~subprocess." +"check_output` runs a command with a specified set of arguments and returns " +"the command's output as a string when the command runs without error, or " +"raises a :exc:`~subprocess.CalledProcessError` exception otherwise." msgstr "" #: ../../whatsnew/2.7.rst:1582 @@ -2184,7 +2182,8 @@ msgid "" "\n" ">>> subprocess.check_output(['df', '-h', '/bogus'])\n" " ...\n" -"subprocess.CalledProcessError: Command '['df', '-h', '/bogus']' returned non-zero exit status 1" +"subprocess.CalledProcessError: Command '['df', '-h', '/bogus']' returned non-" +"zero exit status 1" msgstr "" #: ../../whatsnew/2.7.rst:1590 @@ -2200,17 +2199,17 @@ msgstr "" #: ../../whatsnew/2.7.rst:1596 msgid "" -"New function: :func:`~symtable.Symbol.is_declared_global` in the " -":mod:`symtable` module returns true for variables that are explicitly " -"declared to be global, false for ones that are implicitly global. " -"(Contributed by Jeremy Hylton.)" +"New function: :func:`~symtable.Symbol.is_declared_global` in the :mod:" +"`symtable` module returns true for variables that are explicitly declared to " +"be global, false for ones that are implicitly global. (Contributed by Jeremy " +"Hylton.)" msgstr "" #: ../../whatsnew/2.7.rst:1601 ../../whatsnew/2.7.rst:2498 msgid "" "The :mod:`syslog` module will now use the value of ``sys.argv[0]`` as the " -"identifier instead of the previous default value of ``'python'``. (Changed by" -" Sean Reifschneider; :issue:`8451`.)" +"identifier instead of the previous default value of ``'python'``. (Changed " +"by Sean Reifschneider; :issue:`8451`.)" msgstr "" #: ../../whatsnew/2.7.rst:1605 @@ -2223,18 +2222,18 @@ msgstr "" #: ../../whatsnew/2.7.rst:1610 msgid "" ":func:`sys.getwindowsversion` also returns a named tuple, with attributes " -"named :attr:`!major`, :attr:`!minor`, :attr:`!build`, :attr:`!platform`, " -":attr:`!service_pack`, :attr:`!service_pack_major`, " -":attr:`!service_pack_minor`, :attr:`!suite_mask`, and :attr:`!product_type`." -" (Contributed by Brian Curtin; :issue:`7766`.)" +"named :attr:`!major`, :attr:`!minor`, :attr:`!build`, :attr:`!platform`, :" +"attr:`!service_pack`, :attr:`!service_pack_major`, :attr:`!" +"service_pack_minor`, :attr:`!suite_mask`, and :attr:`!product_type`. " +"(Contributed by Brian Curtin; :issue:`7766`.)" msgstr "" #: ../../whatsnew/2.7.rst:1616 ../../whatsnew/2.7.rst:2502 msgid "" "The :mod:`tarfile` module's default error handling has changed, to no longer " -"suppress fatal errors. The default error level was previously 0, which meant" -" that errors would only result in a message being written to the debug log, " -"but because the debug log is not activated by default, these errors go " +"suppress fatal errors. The default error level was previously 0, which " +"meant that errors would only result in a message being written to the debug " +"log, but because the debug log is not activated by default, these errors go " "unnoticed. The default error level is now 1, which raises an exception if " "there's an error. (Changed by Lars Gustäbel; :issue:`7357`.)" msgstr "" @@ -2246,11 +2245,11 @@ msgid "" "may supply an optional *filter* argument that's a callable. The *filter* " "callable will be passed the :class:`~tarfile.TarInfo` for every file being " "added, and can modify and return it. If the callable returns ``None``, the " -"file will be excluded from the resulting archive. This is more powerful than" -" the existing *exclude* argument, which has therefore been deprecated. (Added" -" by Lars Gustäbel; :issue:`6856`.) The :class:`~tarfile.TarFile` class also " -"now supports the context management protocol. (Added by Lars Gustäbel; " -":issue:`7232`.)" +"file will be excluded from the resulting archive. This is more powerful " +"than the existing *exclude* argument, which has therefore been deprecated. " +"(Added by Lars Gustäbel; :issue:`6856`.) The :class:`~tarfile.TarFile` class " +"also now supports the context management protocol. (Added by Lars Gustäbel; :" +"issue:`7232`.)" msgstr "" #: ../../whatsnew/2.7.rst:1636 @@ -2267,8 +2266,8 @@ msgstr "" msgid "" "The Unicode database provided by the :mod:`unicodedata` module is now used " "internally to determine which characters are numeric, whitespace, or " -"represent line breaks. The database also includes information from the " -":file:`Unihan.txt` data file (patch by Anders Chrigström and Amaury Forgeot " +"represent line breaks. The database also includes information from the :" +"file:`Unihan.txt` data file (patch by Anders Chrigström and Amaury Forgeot " "d'Arc; :issue:`1571184`) and has been updated to version 5.2.0 (updated by " "Florent Xicluna; :issue:`8024`)." msgstr "" @@ -2277,8 +2276,8 @@ msgstr "" msgid "" "The :mod:`urlparse ` module's :func:`~urllib.parse.urlsplit` " "now handles unknown URL schemes in a fashion compliant with :rfc:`3986`: if " -"the URL is of the form ``\"://...\"``, the text before the ``://``" -" is treated as the scheme, even if it's a made-up scheme that the module " +"the URL is of the form ``\"://...\"``, the text before the ``://" +"`` is treated as the scheme, even if it's a made-up scheme that the module " "doesn't know about. This change may break code that worked around the old " "behaviour. For example, Python 2.6.4 or 2.5 will return the following:" msgstr "" @@ -2310,8 +2309,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:1678 msgid "" "The :mod:`urlparse ` module also supports IPv6 literal " -"addresses as defined by :rfc:`2732` (contributed by Senthil Kumaran; " -":issue:`2987`)." +"addresses as defined by :rfc:`2732` (contributed by Senthil Kumaran; :issue:" +"`2987`)." msgstr "" #: ../../whatsnew/2.7.rst:1681 @@ -2340,12 +2339,12 @@ msgstr "" #: ../../whatsnew/2.7.rst:1700 msgid "" -"The XML-RPC client and server, provided by the :mod:`xmlrpclib " -"` and :mod:`SimpleXMLRPCServer ` modules, have " +"The XML-RPC client and server, provided by the :mod:`xmlrpclib ` and :mod:`SimpleXMLRPCServer ` modules, have " "improved performance by supporting HTTP/1.1 keep-alive and by optionally " "using gzip encoding to compress the XML being exchanged. The gzip " -"compression is controlled by the :attr:`!encode_threshold` attribute of " -":class:`~xmlrpc.server.SimpleXMLRPCRequestHandler`, which contains a size in " +"compression is controlled by the :attr:`!encode_threshold` attribute of :" +"class:`~xmlrpc.server.SimpleXMLRPCRequestHandler`, which contains a size in " "bytes; responses larger than this will be compressed. (Contributed by " "Kristján Valur Jónsson; :issue:`6267`.)" msgstr "" @@ -2361,9 +2360,9 @@ msgstr "" msgid "" ":mod:`zipfile` now also supports archiving empty directories and extracts " "them correctly. (Fixed by Kuba Wieczorek; :issue:`4710`.) Reading files out " -"of an archive is faster, and interleaving :meth:`read() " -"` and :meth:`readline() ` now " -"works correctly. (Contributed by Nir Aides; :issue:`7610`.)" +"of an archive is faster, and interleaving :meth:`read() ` and :meth:`readline() ` now works correctly. " +"(Contributed by Nir Aides; :issue:`7610`.)" msgstr "" #: ../../whatsnew/2.7.rst:1720 @@ -2389,10 +2388,11 @@ msgstr "" msgid "" "Python 3.1 includes the :mod:`importlib` package, a re-implementation of the " "logic underlying Python's :keyword:`import` statement. :mod:`importlib` is " -"useful for implementers of Python interpreters and to users who wish to write" -" new importers that can participate in the import process. Python 2.7 " -"doesn't contain the complete :mod:`importlib` package, but instead has a tiny" -" subset that contains a single function, :func:`~importlib.import_module`." +"useful for implementers of Python interpreters and to users who wish to " +"write new importers that can participate in the import process. Python 2.7 " +"doesn't contain the complete :mod:`importlib` package, but instead has a " +"tiny subset that contains a single function, :func:`~importlib." +"import_module`." msgstr "" #: ../../whatsnew/2.7.rst:1747 @@ -2453,15 +2453,15 @@ msgstr "" #: ../../whatsnew/2.7.rst:1785 msgid "" -":func:`~sysconfig.get_config_vars` returns a dictionary containing all of the" -" configuration variables." +":func:`~sysconfig.get_config_vars` returns a dictionary containing all of " +"the configuration variables." msgstr "" #: ../../whatsnew/2.7.rst:1787 msgid "" -":func:`~sysconfig.get_path` returns the configured path for a particular type" -" of module: the standard library, site-specific modules, platform-specific " -"modules, etc." +":func:`~sysconfig.get_path` returns the configured path for a particular " +"type of module: the standard library, site-specific modules, platform-" +"specific modules, etc." msgstr "" #: ../../whatsnew/2.7.rst:1790 @@ -2478,8 +2478,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:1796 msgid "" -"The Distutils package and :mod:`sysconfig` are now maintained by Tarek Ziadé," -" who has also started a Distutils2 package (source repository at " +"The Distutils package and :mod:`sysconfig` are now maintained by Tarek " +"Ziadé, who has also started a Distutils2 package (source repository at " "https://hg.python.org/distutils2/) for developing a next-generation version " "of Distutils." msgstr "" @@ -2502,16 +2502,16 @@ msgid "" "To learn more, read the :mod:`~tkinter.ttk` module documentation. You may " "also wish to read the Tcl/Tk manual page describing the Ttk theme engine, " "available at https://www.tcl.tk/man/tcl8.5/TkCmd/ttk_intro.html. Some " -"screenshots of the Python/Ttk code in use are at " -"https://code.google.com/archive/p/python-ttk/wikis/Screenshots.wiki." +"screenshots of the Python/Ttk code in use are at https://code.google.com/" +"archive/p/python-ttk/wikis/Screenshots.wiki." msgstr "" #: ../../whatsnew/2.7.rst:1818 msgid "" -"The :mod:`tkinter.ttk` module was written by Guilherme Polo and added in " -":issue:`2983`. An alternate version called ``Tile.py``, written by Martin " -"Franklin and maintained by Kevin Walzer, was proposed for inclusion in " -":issue:`2618`, but the authors argued that Guilherme Polo's work was more " +"The :mod:`tkinter.ttk` module was written by Guilherme Polo and added in :" +"issue:`2983`. An alternate version called ``Tile.py``, written by Martin " +"Franklin and maintained by Kevin Walzer, was proposed for inclusion in :" +"issue:`2618`, but the authors argued that Guilherme Polo's work was more " "comprehensive." msgstr "" @@ -2524,18 +2524,18 @@ msgid "" "The :mod:`unittest` module was greatly enhanced; many new features were " "added. Most of these features were implemented by Michael Foord, unless " "otherwise noted. The enhanced version of the module is downloadable " -"separately for use with Python versions 2.4 to 2.6, packaged as the " -":mod:`!unittest2` package, from :pypi:`unittest2`." +"separately for use with Python versions 2.4 to 2.6, packaged as the :mod:`!" +"unittest2` package, from :pypi:`unittest2`." msgstr "" #: ../../whatsnew/2.7.rst:1836 msgid "" -"When used from the command line, the module can automatically discover tests." -" It's not as fancy as `py.test `__ or `nose " +"When used from the command line, the module can automatically discover " +"tests. It's not as fancy as `py.test `__ or `nose " "`__, but provides a simple way to run tests " -"kept within a set of package directories. For example, the following command" -" will search the :file:`test/` subdirectory for any importable test files " -"named ``test*.py``::" +"kept within a set of package directories. For example, the following " +"command will search the :file:`test/` subdirectory for any importable test " +"files named ``test*.py``::" msgstr "" #: ../../whatsnew/2.7.rst:1843 @@ -2544,8 +2544,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:1845 msgid "" -"Consult the :mod:`unittest` module documentation for more details. (Developed" -" in :issue:`6001`.)" +"Consult the :mod:`unittest` module documentation for more details. " +"(Developed in :issue:`6001`.)" msgstr "" #: ../../whatsnew/2.7.rst:1848 @@ -2581,10 +2581,10 @@ msgstr "" #: ../../whatsnew/2.7.rst:1869 msgid "" -":option:`-f ` or :option:`!--failfast` makes test execution stop" -" immediately when a test fails instead of continuing to execute further " -"tests. (Suggested by Cliff Dyer and implemented by Michael Foord; " -":issue:`8074`.)" +":option:`-f ` or :option:`!--failfast` makes test execution " +"stop immediately when a test fails instead of continuing to execute further " +"tests. (Suggested by Cliff Dyer and implemented by Michael Foord; :issue:" +"`8074`.)" msgstr "" #: ../../whatsnew/2.7.rst:1874 @@ -2602,20 +2602,20 @@ msgstr "" #: ../../whatsnew/2.7.rst:1881 msgid "" -"The error messages for :meth:`~unittest.TestCase.assertEqual`, " -":meth:`~unittest.TestCase.assertTrue`, and " -":meth:`~unittest.TestCase.assertFalse` failures now provide more information." -" If you set the :attr:`~unittest.TestCase.longMessage` attribute of your " -":class:`~unittest.TestCase` classes to true, both the standard error message " -"and any additional message you provide will be printed for failures. (Added " -"by Michael Foord; :issue:`5663`.)" +"The error messages for :meth:`~unittest.TestCase.assertEqual`, :meth:" +"`~unittest.TestCase.assertTrue`, and :meth:`~unittest.TestCase.assertFalse` " +"failures now provide more information. If you set the :attr:`~unittest." +"TestCase.longMessage` attribute of your :class:`~unittest.TestCase` classes " +"to true, both the standard error message and any additional message you " +"provide will be printed for failures. (Added by Michael Foord; :issue:" +"`5663`.)" msgstr "" #: ../../whatsnew/2.7.rst:1888 msgid "" "The :meth:`~unittest.TestCase.assertRaises` method now returns a context " -"handler when called without providing a callable object to run. For example," -" you can write this::" +"handler when called without providing a callable object to run. For " +"example, you can write this::" msgstr "" #: ../../whatsnew/2.7.rst:1892 @@ -2631,63 +2631,59 @@ msgstr "" #: ../../whatsnew/2.7.rst:1899 msgid "" "Module- and class-level setup and teardown fixtures are now supported. " -"Modules can contain :func:`~unittest.setUpModule` and " -":func:`~unittest.tearDownModule` functions. Classes can have " -":meth:`~unittest.TestCase.setUpClass` and " -":meth:`~unittest.TestCase.tearDownClass` methods that must be defined as " -"class methods (using ``@classmethod`` or equivalent). These functions and " -"methods are invoked when the test runner switches to a test case in a " -"different module or class." +"Modules can contain :func:`~unittest.setUpModule` and :func:`~unittest." +"tearDownModule` functions. Classes can have :meth:`~unittest.TestCase." +"setUpClass` and :meth:`~unittest.TestCase.tearDownClass` methods that must " +"be defined as class methods (using ``@classmethod`` or equivalent). These " +"functions and methods are invoked when the test runner switches to a test " +"case in a different module or class." msgstr "" #: ../../whatsnew/2.7.rst:1907 msgid "" -"The methods :meth:`~unittest.TestCase.addCleanup` and " -":meth:`~unittest.TestCase.doCleanups` were added. " -":meth:`~unittest.TestCase.addCleanup` lets you add cleanup functions that " -"will be called unconditionally (after :meth:`~unittest.TestCase.setUp` if " -":meth:`~unittest.TestCase.setUp` fails, otherwise after " -":meth:`~unittest.TestCase.tearDown`). This allows for much simpler resource " -"allocation and deallocation during tests (:issue:`5679`)." +"The methods :meth:`~unittest.TestCase.addCleanup` and :meth:`~unittest." +"TestCase.doCleanups` were added. :meth:`~unittest.TestCase.addCleanup` lets " +"you add cleanup functions that will be called unconditionally (after :meth:" +"`~unittest.TestCase.setUp` if :meth:`~unittest.TestCase.setUp` fails, " +"otherwise after :meth:`~unittest.TestCase.tearDown`). This allows for much " +"simpler resource allocation and deallocation during tests (:issue:`5679`)." msgstr "" #: ../../whatsnew/2.7.rst:1915 msgid "" -"A number of new methods were added that provide more specialized tests. Many" -" of these methods were written by Google engineers for use in their test " +"A number of new methods were added that provide more specialized tests. " +"Many of these methods were written by Google engineers for use in their test " "suites; Gregory P. Smith, Michael Foord, and GvR worked on merging them into " "Python's version of :mod:`unittest`." msgstr "" #: ../../whatsnew/2.7.rst:1920 msgid "" -":meth:`~unittest.TestCase.assertIsNone` and " -":meth:`~unittest.TestCase.assertIsNotNone` take one expression and verify " -"that the result is or is not ``None``." +":meth:`~unittest.TestCase.assertIsNone` and :meth:`~unittest.TestCase." +"assertIsNotNone` take one expression and verify that the result is or is not " +"``None``." msgstr "" #: ../../whatsnew/2.7.rst:1923 msgid "" -":meth:`~unittest.TestCase.assertIs` and " -":meth:`~unittest.TestCase.assertIsNot` take two values and check whether the " -"two values evaluate to the same object or not. (Added by Michael Foord; " -":issue:`2578`.)" +":meth:`~unittest.TestCase.assertIs` and :meth:`~unittest.TestCase." +"assertIsNot` take two values and check whether the two values evaluate to " +"the same object or not. (Added by Michael Foord; :issue:`2578`.)" msgstr "" #: ../../whatsnew/2.7.rst:1927 msgid "" -":meth:`~unittest.TestCase.assertIsInstance` and " -":meth:`~unittest.TestCase.assertNotIsInstance` check whether the resulting " -"object is an instance of a particular class, or of one of a tuple of classes." -" (Added by Georg Brandl; :issue:`7031`.)" +":meth:`~unittest.TestCase.assertIsInstance` and :meth:`~unittest.TestCase." +"assertNotIsInstance` check whether the resulting object is an instance of a " +"particular class, or of one of a tuple of classes. (Added by Georg Brandl; :" +"issue:`7031`.)" msgstr "" #: ../../whatsnew/2.7.rst:1932 msgid "" -":meth:`~unittest.TestCase.assertGreater`, " -":meth:`~unittest.TestCase.assertGreaterEqual`, " -":meth:`~unittest.TestCase.assertLess`, and " -":meth:`~unittest.TestCase.assertLessEqual` compare two quantities." +":meth:`~unittest.TestCase.assertGreater`, :meth:`~unittest.TestCase." +"assertGreaterEqual`, :meth:`~unittest.TestCase.assertLess`, and :meth:" +"`~unittest.TestCase.assertLessEqual` compare two quantities." msgstr "" #: ../../whatsnew/2.7.rst:1936 @@ -2700,9 +2696,9 @@ msgstr "" #: ../../whatsnew/2.7.rst:1941 msgid "" -":meth:`assertRegexpMatches() ` and " -":meth:`assertNotRegexpMatches() ` checks " -"whether the first argument is a string matching or not matching the regular " +":meth:`assertRegexpMatches() ` and :meth:" +"`assertNotRegexpMatches() ` checks whether " +"the first argument is a string matching or not matching the regular " "expression provided as the second argument (:issue:`8038`)." msgstr "" @@ -2716,15 +2712,14 @@ msgstr "" #: ../../whatsnew/2.7.rst:1951 msgid "" -":meth:`~unittest.TestCase.assertIn` and " -":meth:`~unittest.TestCase.assertNotIn` tests whether *first* is or is not in" -" *second*." +":meth:`~unittest.TestCase.assertIn` and :meth:`~unittest.TestCase." +"assertNotIn` tests whether *first* is or is not in *second*." msgstr "" #: ../../whatsnew/2.7.rst:1954 msgid "" -":meth:`assertItemsEqual() ` tests whether" -" two provided sequences contain the same elements." +":meth:`assertItemsEqual() ` tests " +"whether two provided sequences contain the same elements." msgstr "" #: ../../whatsnew/2.7.rst:1957 @@ -2735,80 +2730,80 @@ msgstr "" #: ../../whatsnew/2.7.rst:1960 msgid "" -"Similarly, :meth:`~unittest.TestCase.assertListEqual` and " -":meth:`~unittest.TestCase.assertTupleEqual` compare the specified types and " -"explain any differences without necessarily printing their full values; these" -" methods are now used by default when comparing lists and tuples using " -":meth:`~unittest.TestCase.assertEqual`. More generally, " -":meth:`~unittest.TestCase.assertSequenceEqual` compares two sequences and can" -" optionally check whether both sequences are of a particular type." +"Similarly, :meth:`~unittest.TestCase.assertListEqual` and :meth:`~unittest." +"TestCase.assertTupleEqual` compare the specified types and explain any " +"differences without necessarily printing their full values; these methods " +"are now used by default when comparing lists and tuples using :meth:" +"`~unittest.TestCase.assertEqual`. More generally, :meth:`~unittest.TestCase." +"assertSequenceEqual` compares two sequences and can optionally check whether " +"both sequences are of a particular type." msgstr "" #: ../../whatsnew/2.7.rst:1968 msgid "" ":meth:`~unittest.TestCase.assertDictEqual` compares two dictionaries and " "reports the differences; it's now used by default when you compare two " -"dictionaries using :meth:`~unittest.TestCase.assertEqual`. " -":meth:`!assertDictContainsSubset` checks whether all of the key/value pairs " -"in *first* are found in *second*." +"dictionaries using :meth:`~unittest.TestCase.assertEqual`. :meth:`!" +"assertDictContainsSubset` checks whether all of the key/value pairs in " +"*first* are found in *second*." msgstr "" #: ../../whatsnew/2.7.rst:1973 msgid "" -":meth:`~unittest.TestCase.assertAlmostEqual` and " -":meth:`~unittest.TestCase.assertNotAlmostEqual` test whether *first* and " -"*second* are approximately equal. This method can either round their " -"difference to an optionally specified number of *places* (the default is 7) " -"and compare it to zero, or require the difference to be smaller than a " -"supplied *delta* value." +":meth:`~unittest.TestCase.assertAlmostEqual` and :meth:`~unittest.TestCase." +"assertNotAlmostEqual` test whether *first* and *second* are approximately " +"equal. This method can either round their difference to an optionally " +"specified number of *places* (the default is 7) and compare it to zero, or " +"require the difference to be smaller than a supplied *delta* value." msgstr "" #: ../../whatsnew/2.7.rst:1979 msgid "" -":meth:`~unittest.TestLoader.loadTestsFromName` properly honors the " -":attr:`~unittest.TestLoader.suiteClass` attribute of the " -":class:`~unittest.TestLoader`. (Fixed by Mark Roddy; :issue:`6866`.)" +":meth:`~unittest.TestLoader.loadTestsFromName` properly honors the :attr:" +"`~unittest.TestLoader.suiteClass` attribute of the :class:`~unittest." +"TestLoader`. (Fixed by Mark Roddy; :issue:`6866`.)" msgstr "" #: ../../whatsnew/2.7.rst:1983 msgid "" "A new hook lets you extend the :meth:`~unittest.TestCase.assertEqual` method " -"to handle new data types. The :meth:`~unittest.TestCase.addTypeEqualityFunc`" -" method takes a type object and a function. The function will be used when " -"both of the objects being compared are of the specified type. This function " -"should compare the two objects and raise an exception if they don't match; " -"it's a good idea for the function to provide additional information about why" -" the two objects aren't matching, much as the new sequence comparison methods" -" do." +"to handle new data types. The :meth:`~unittest.TestCase." +"addTypeEqualityFunc` method takes a type object and a function. The function " +"will be used when both of the objects being compared are of the specified " +"type. This function should compare the two objects and raise an exception " +"if they don't match; it's a good idea for the function to provide additional " +"information about why the two objects aren't matching, much as the new " +"sequence comparison methods do." msgstr "" #: ../../whatsnew/2.7.rst:1992 msgid "" -":func:`unittest.main` now takes an optional ``exit`` argument. If false, " -":func:`~unittest.main` doesn't call :func:`sys.exit`, allowing " -":func:`~unittest.main` to be used from the interactive interpreter. " -"(Contributed by J. Pablo Fernández; :issue:`3379`.)" +":func:`unittest.main` now takes an optional ``exit`` argument. If false, :" +"func:`~unittest.main` doesn't call :func:`sys.exit`, allowing :func:" +"`~unittest.main` to be used from the interactive interpreter. (Contributed " +"by J. Pablo Fernández; :issue:`3379`.)" msgstr "" #: ../../whatsnew/2.7.rst:1997 msgid "" -":class:`~unittest.TestResult` has new " -":meth:`~unittest.TestResult.startTestRun` and " -":meth:`~unittest.TestResult.stopTestRun` methods that are called immediately " -"before and after a test run. (Contributed by Robert Collins; :issue:`5728`.)" +":class:`~unittest.TestResult` has new :meth:`~unittest.TestResult." +"startTestRun` and :meth:`~unittest.TestResult.stopTestRun` methods that are " +"called immediately before and after a test run. (Contributed by Robert " +"Collins; :issue:`5728`.)" msgstr "" #: ../../whatsnew/2.7.rst:2001 msgid "" -"With all these changes, the :file:`unittest.py` was becoming awkwardly large," -" so the module was turned into a package and the code split into several " -"files (by Benjamin Peterson). This doesn't affect how the module is imported" -" or used." +"With all these changes, the :file:`unittest.py` was becoming awkwardly " +"large, so the module was turned into a package and the code split into " +"several files (by Benjamin Peterson). This doesn't affect how the module is " +"imported or used." msgstr "" #: ../../whatsnew/2.7.rst:2008 msgid "" -"https://web.archive.org/web/20210619163128/http://www.voidspace.org.uk/python/articles/unittest2.shtml" +"https://web.archive.org/web/20210619163128/http://www.voidspace.org.uk/" +"python/articles/unittest2.shtml" msgstr "" #: ../../whatsnew/2.7.rst:2009 @@ -2829,9 +2824,9 @@ msgstr "" #: ../../whatsnew/2.7.rst:2020 msgid "" -"The various parsing functions now take a *parser* keyword argument giving an " -":class:`~xml.etree.ElementTree.XMLParser` instance that will be used. This " -"makes it possible to override the file's internal encoding::" +"The various parsing functions now take a *parser* keyword argument giving " +"an :class:`~xml.etree.ElementTree.XMLParser` instance that will be used. " +"This makes it possible to override the file's internal encoding::" msgstr "" #: ../../whatsnew/2.7.rst:2024 @@ -2850,34 +2845,34 @@ msgstr "" #: ../../whatsnew/2.7.rst:2031 msgid "" "ElementTree's code for converting trees to a string has been significantly " -"reworked, making it roughly twice as fast in many cases. The " -":meth:`ElementTree.write() ` and " -":meth:`!Element.write` methods now have a *method* parameter that can be " +"reworked, making it roughly twice as fast in many cases. The :meth:" +"`ElementTree.write() ` and :meth:`!" +"Element.write` methods now have a *method* parameter that can be " "\"xml\" (the default), \"html\", or \"text\". HTML mode will output empty " "elements as ```` instead of ````, and text mode will " -"skip over elements and only output the text chunks. If you set the " -":attr:`~xml.etree.ElementTree.Element.tag` attribute of an element to " -"``None`` but leave its children in place, the element will be omitted when " -"the tree is written out, so you don't need to do more extensive rearrangement" -" to remove a single element." +"skip over elements and only output the text chunks. If you set the :attr:" +"`~xml.etree.ElementTree.Element.tag` attribute of an element to ``None`` but " +"leave its children in place, the element will be omitted when the tree is " +"written out, so you don't need to do more extensive rearrangement to remove " +"a single element." msgstr "" #: ../../whatsnew/2.7.rst:2044 msgid "" "Namespace handling has also been improved. All ``xmlns:`` " -"declarations are now output on the root element, not scattered throughout the" -" resulting XML. You can set the default namespace for a tree by setting the " -":attr:`!default_namespace` attribute and can register new prefixes with " -":meth:`~xml.etree.ElementTree.register_namespace`. In XML mode, you can use " +"declarations are now output on the root element, not scattered throughout " +"the resulting XML. You can set the default namespace for a tree by setting " +"the :attr:`!default_namespace` attribute and can register new prefixes with :" +"meth:`~xml.etree.ElementTree.register_namespace`. In XML mode, you can use " "the true/false *xml_declaration* parameter to suppress the XML declaration." msgstr "" #: ../../whatsnew/2.7.rst:2052 msgid "" -"New :class:`~xml.etree.ElementTree.Element` method: " -":meth:`~xml.etree.ElementTree.Element.extend` appends the items from a " -"sequence to the element's children. Elements themselves behave like " -"sequences, so it's easy to move children from one element to another::" +"New :class:`~xml.etree.ElementTree.Element` method: :meth:`~xml.etree." +"ElementTree.Element.extend` appends the items from a sequence to the " +"element's children. Elements themselves behave like sequences, so it's easy " +"to move children from one element to another::" msgstr "" #: ../../whatsnew/2.7.rst:2058 @@ -2896,19 +2891,19 @@ msgstr "" #: ../../whatsnew/2.7.rst:2069 msgid "" -"New :class:`~xml.etree.ElementTree.Element` method: " -":meth:`~xml.etree.ElementTree.Element.iter` yields the children of the " -"element as a generator. It's also possible to write ``for child in elem:`` " -"to loop over an element's children. The existing method :meth:`!getiterator`" -" is now deprecated, as is :meth:`!getchildren` which constructs and returns a" -" list of children." +"New :class:`~xml.etree.ElementTree.Element` method: :meth:`~xml.etree." +"ElementTree.Element.iter` yields the children of the element as a " +"generator. It's also possible to write ``for child in elem:`` to loop over " +"an element's children. The existing method :meth:`!getiterator` is now " +"deprecated, as is :meth:`!getchildren` which constructs and returns a list " +"of children." msgstr "" #: ../../whatsnew/2.7.rst:2076 msgid "" -"New :class:`~xml.etree.ElementTree.Element` method: " -":meth:`~xml.etree.ElementTree.Element.itertext` yields all chunks of text " -"that are descendants of the element. For example::" +"New :class:`~xml.etree.ElementTree.Element` method: :meth:`~xml.etree." +"ElementTree.Element.itertext` yields all chunks of text that are descendants " +"of the element. For example::" msgstr "" #: ../../whatsnew/2.7.rst:2080 @@ -2926,18 +2921,18 @@ msgid "" "Deprecated: using an element as a Boolean (i.e., ``if elem:``) would return " "true if the element had any children, or false if there were no children. " "This behaviour is confusing -- ``None`` is false, but so is a childless " -"element? -- so it will now trigger a :exc:`FutureWarning`. In your code, you" -" should be explicit: write ``len(elem) != 0`` if you're interested in the " +"element? -- so it will now trigger a :exc:`FutureWarning`. In your code, " +"you should be explicit: write ``len(elem) != 0`` if you're interested in the " "number of children, or ``elem is not None``." msgstr "" #: ../../whatsnew/2.7.rst:2095 msgid "" -"Fredrik Lundh develops ElementTree and produced the 1.3 version; you can read" -" his article describing 1.3 at " -"https://web.archive.org/web/20200703234532/http://effbot.org/zone/elementtree-13-intro.htm." -" Florent Xicluna updated the version included with Python, after discussions " -"on python-dev and in :issue:`6472`.)" +"Fredrik Lundh develops ElementTree and produced the 1.3 version; you can " +"read his article describing 1.3 at https://web.archive.org/" +"web/20200703234532/http://effbot.org/zone/elementtree-13-intro.htm. Florent " +"Xicluna updated the version included with Python, after discussions on " +"python-dev and in :issue:`6472`.)" msgstr "" #: ../../whatsnew/2.7.rst:2105 @@ -2951,30 +2946,31 @@ msgstr "" #: ../../whatsnew/2.7.rst:2109 msgid "" "The latest release of the GNU Debugger, GDB 7, can be `scripted using Python " -"`__." -" When you begin debugging an executable program P, GDB will look for a file " -"named ``P-gdb.py`` and automatically read it. Dave Malcolm contributed a " -":file:`python-gdb.py` that adds a number of commands useful when debugging " -"Python itself. For example, ``py-up`` and ``py-down`` go up or down one " -"Python stack frame, which usually corresponds to several C stack frames. " -"``py-print`` prints the value of a Python variable, and ``py-bt`` prints the " -"Python stack trace. (Added as a result of :issue:`8032`.)" +"`__. When you begin debugging an " +"executable program P, GDB will look for a file named ``P-gdb.py`` and " +"automatically read it. Dave Malcolm contributed a :file:`python-gdb.py` " +"that adds a number of commands useful when debugging Python itself. For " +"example, ``py-up`` and ``py-down`` go up or down one Python stack frame, " +"which usually corresponds to several C stack frames. ``py-print`` prints " +"the value of a Python variable, and ``py-bt`` prints the Python stack " +"trace. (Added as a result of :issue:`8032`.)" msgstr "" #: ../../whatsnew/2.7.rst:2121 msgid "" "If you use the :file:`.gdbinit` file provided with Python, the \"pyo\" macro " -"in the 2.7 version now works correctly when the thread being debugged doesn't" -" hold the GIL; the macro now acquires it before printing. (Contributed by " -"Victor Stinner; :issue:`3632`.)" +"in the 2.7 version now works correctly when the thread being debugged " +"doesn't hold the GIL; the macro now acquires it before printing. " +"(Contributed by Victor Stinner; :issue:`3632`.)" msgstr "" #: ../../whatsnew/2.7.rst:2126 msgid "" ":c:func:`Py_AddPendingCall` is now thread-safe, letting any worker thread " "submit notifications to the main Python thread. This is particularly useful " -"for asynchronous IO operations. (Contributed by Kristján Valur Jónsson; " -":issue:`4293`.)" +"for asynchronous IO operations. (Contributed by Kristján Valur Jónsson; :" +"issue:`4293`.)" msgstr "" #: ../../whatsnew/2.7.rst:2131 @@ -2982,9 +2978,8 @@ msgid "" "New function: :c:func:`PyCode_NewEmpty` creates an empty code object; only " "the filename, function name, and first line number are required. This is " "useful for extension modules that are attempting to construct a more useful " -"traceback stack. Previously such extensions needed to call " -":c:func:`!PyCode_New`, which had many more arguments. (Added by Jeffrey " -"Yasskin.)" +"traceback stack. Previously such extensions needed to call :c:func:`!" +"PyCode_New`, which had many more arguments. (Added by Jeffrey Yasskin.)" msgstr "" #: ../../whatsnew/2.7.rst:2138 @@ -3006,19 +3001,19 @@ msgstr "" #: ../../whatsnew/2.7.rst:2150 msgid "" -"New functions: :c:func:`PyLong_AsLongAndOverflow` and " -":c:func:`PyLong_AsLongLongAndOverflow` approximates a Python long integer as" -" a C :c:expr:`long` or :c:expr:`long long`. If the number is too large to fit" -" into the output type, an *overflow* flag is set and returned to the caller. " +"New functions: :c:func:`PyLong_AsLongAndOverflow` and :c:func:" +"`PyLong_AsLongLongAndOverflow` approximates a Python long integer as a C :c:" +"expr:`long` or :c:expr:`long long`. If the number is too large to fit into " +"the output type, an *overflow* flag is set and returned to the caller. " "(Contributed by Case Van Horsen; :issue:`7528` and :issue:`7767`.)" msgstr "" #: ../../whatsnew/2.7.rst:2157 msgid "" -"New function: stemming from the rewrite of string-to-float conversion, a new " -":c:func:`PyOS_string_to_double` function was added. The old " -":c:func:`!PyOS_ascii_strtod` and :c:func:`!PyOS_ascii_atof` functions are now" -" deprecated." +"New function: stemming from the rewrite of string-to-float conversion, a " +"new :c:func:`PyOS_string_to_double` function was added. The old :c:func:`!" +"PyOS_ascii_strtod` and :c:func:`!PyOS_ascii_atof` functions are now " +"deprecated." msgstr "" #: ../../whatsnew/2.7.rst:2162 @@ -3034,10 +3029,10 @@ msgid "" "This function was added to close a security hole for applications that embed " "Python. The old function, :c:func:`!PySys_SetArgv`, would always update " "``sys.path``, and sometimes it would add the current directory. This meant " -"that, if you ran an application embedding Python in a directory controlled by" -" someone else, attackers could put a Trojan-horse module in the directory " -"(say, a file named :file:`os.py`) that your application would then import and" -" run." +"that, if you ran an application embedding Python in a directory controlled " +"by someone else, attackers could put a Trojan-horse module in the directory " +"(say, a file named :file:`os.py`) that your application would then import " +"and run." msgstr "" #: ../../whatsnew/2.7.rst:2175 @@ -3056,11 +3051,11 @@ msgstr "" #: ../../whatsnew/2.7.rst:2183 msgid "" -"New macros: the Python header files now define the following macros: " -":c:macro:`Py_ISALNUM`, :c:macro:`Py_ISALPHA`, :c:macro:`Py_ISDIGIT`, " -":c:macro:`Py_ISLOWER`, :c:macro:`Py_ISSPACE`, :c:macro:`Py_ISUPPER`, " -":c:macro:`Py_ISXDIGIT`, :c:macro:`Py_TOLOWER`, and :c:macro:`Py_TOUPPER`. All" -" of these functions are analogous to the C standard macros for classifying " +"New macros: the Python header files now define the following macros: :c:" +"macro:`Py_ISALNUM`, :c:macro:`Py_ISALPHA`, :c:macro:`Py_ISDIGIT`, :c:macro:" +"`Py_ISLOWER`, :c:macro:`Py_ISSPACE`, :c:macro:`Py_ISUPPER`, :c:macro:" +"`Py_ISXDIGIT`, :c:macro:`Py_TOLOWER`, and :c:macro:`Py_TOUPPER`. All of " +"these functions are analogous to the C standard macros for classifying " "characters, but ignore the current locale setting, because in several places " "Python needs to analyze characters in a locale-independent way. (Added by " "Eric Smith; :issue:`5793`.)" @@ -3076,29 +3071,29 @@ msgstr "" #: ../../whatsnew/2.7.rst:2204 msgid "" -"New format codes: the :c:func:`!PyString_FromFormat`, " -":c:func:`!PyString_FromFormatV`, and :c:func:`PyErr_Format` functions now " -"accept ``%lld`` and ``%llu`` format codes for displaying C's :c:expr:`long " -"long` types. (Contributed by Mark Dickinson; :issue:`7228`.)" +"New format codes: the :c:func:`!PyString_FromFormat`, :c:func:`!" +"PyString_FromFormatV`, and :c:func:`PyErr_Format` functions now accept " +"``%lld`` and ``%llu`` format codes for displaying C's :c:expr:`long long` " +"types. (Contributed by Mark Dickinson; :issue:`7228`.)" msgstr "" #: ../../whatsnew/2.7.rst:2210 msgid "" "The complicated interaction between threads and process forking has been " -"changed. Previously, the child process created by :func:`os.fork` might fail" -" because the child is created with only a single thread running, the thread " -"performing the :func:`os.fork`. If other threads were holding a lock, such as" -" Python's import lock, when the fork was performed, the lock would still be " -"marked as \"held\" in the new process. But in the child process nothing " -"would ever release the lock, since the other threads weren't replicated, and " -"the child process would no longer be able to perform imports." +"changed. Previously, the child process created by :func:`os.fork` might " +"fail because the child is created with only a single thread running, the " +"thread performing the :func:`os.fork`. If other threads were holding a lock, " +"such as Python's import lock, when the fork was performed, the lock would " +"still be marked as \"held\" in the new process. But in the child process " +"nothing would ever release the lock, since the other threads weren't " +"replicated, and the child process would no longer be able to perform imports." msgstr "" #: ../../whatsnew/2.7.rst:2220 msgid "" -"Python 2.7 acquires the import lock before performing an :func:`os.fork`, and" -" will also clean up any locks created using the :mod:`threading` module. C " -"extension modules that have internal locks, or that call :c:func:`fork()` " +"Python 2.7 acquires the import lock before performing an :func:`os.fork`, " +"and will also clean up any locks created using the :mod:`threading` module. " +"C extension modules that have internal locks, or that call :c:func:`fork()` " "themselves, will not benefit from this clean-up." msgstr "" @@ -3108,17 +3103,16 @@ msgstr "" #: ../../whatsnew/2.7.rst:2228 msgid "" -"The :c:func:`Py_Finalize` function now calls the internal " -":func:`!threading._shutdown` function; this prevents some exceptions from " -"being raised when an interpreter shuts down. (Patch by Adam Olsen; " -":issue:`1722344`.)" +"The :c:func:`Py_Finalize` function now calls the internal :func:`!threading." +"_shutdown` function; this prevents some exceptions from being raised when an " +"interpreter shuts down. (Patch by Adam Olsen; :issue:`1722344`.)" msgstr "" #: ../../whatsnew/2.7.rst:2233 msgid "" "When using the :c:type:`PyMemberDef` structure to define attributes of a " -"type, Python will no longer let you try to delete or set a " -":c:macro:`!T_STRING_INPLACE` attribute." +"type, Python will no longer let you try to delete or set a :c:macro:`!" +"T_STRING_INPLACE` attribute." msgstr "" #: ../../whatsnew/2.7.rst:2239 @@ -3131,16 +3125,17 @@ msgstr "" msgid "" "New configure option: the :option:`!--with-system-expat` switch allows " "building the :mod:`pyexpat ` module to use the system " -"Expat library. (Contributed by Arfrever Frehtes Taifersar Arahesis; " -":issue:`7609`.)" +"Expat library. (Contributed by Arfrever Frehtes Taifersar Arahesis; :issue:" +"`7609`.)" msgstr "" #: ../../whatsnew/2.7.rst:2247 msgid "" "New configure option: the :option:`!--with-valgrind` option will now disable " "the pymalloc allocator, which is difficult for the Valgrind memory-error " -"detector to analyze correctly. Valgrind will therefore be better at detecting" -" memory leaks and overruns. (Contributed by James Henstridge; :issue:`2422`.)" +"detector to analyze correctly. Valgrind will therefore be better at " +"detecting memory leaks and overruns. (Contributed by James Henstridge; :" +"issue:`2422`.)" msgstr "" #: ../../whatsnew/2.7.rst:2254 @@ -3155,15 +3150,15 @@ msgid "" "The :program:`configure` script now checks for floating-point rounding bugs " "on certain 32-bit Intel chips and defines a :c:macro:`!X87_DOUBLE_ROUNDING` " "preprocessor definition. No code currently uses this definition, but it's " -"available if anyone wishes to use it. (Added by Mark Dickinson; " -":issue:`2937`.)" +"available if anyone wishes to use it. (Added by Mark Dickinson; :issue:" +"`2937`.)" msgstr "" #: ../../whatsnew/2.7.rst:2265 msgid "" -":program:`configure` also now sets a :envvar:`!LDCXXSHARED` Makefile variable" -" for supporting C++ linking. (Contributed by Arfrever Frehtes Taifersar " -"Arahesis; :issue:`1222585`.)" +":program:`configure` also now sets a :envvar:`!LDCXXSHARED` Makefile " +"variable for supporting C++ linking. (Contributed by Arfrever Frehtes " +"Taifersar Arahesis; :issue:`1222585`.)" msgstr "" #: ../../whatsnew/2.7.rst:2269 @@ -3186,10 +3181,10 @@ msgstr "" msgid "" "Python 3.1 adds a new C datatype, :c:type:`PyCapsule`, for providing a C API " "to an extension module. A capsule is essentially the holder of a C ``void " -"*`` pointer, and is made available as a module attribute; for example, the " -":mod:`socket` module's API is exposed as ``socket.CAPI``, and " -":mod:`unicodedata` exposes ``ucnhash_CAPI``. Other extensions can import the" -" module, access its dictionary to get the capsule object, and then get the " +"*`` pointer, and is made available as a module attribute; for example, the :" +"mod:`socket` module's API is exposed as ``socket.CAPI``, and :mod:" +"`unicodedata` exposes ``ucnhash_CAPI``. Other extensions can import the " +"module, access its dictionary to get the capsule object, and then get the " "``void *`` pointer, which will usually point to an array of pointers to the " "module's various API functions." msgstr "" @@ -3198,9 +3193,10 @@ msgstr "" msgid "" "There is an existing data type already used for this, :c:type:`!PyCObject`, " "but it doesn't provide type safety. Evil code written in pure Python could " -"cause a segmentation fault by taking a :c:type:`!PyCObject` from module A and" -" somehow substituting it for the :c:type:`!PyCObject` in module B. Capsules" -" know their own name, and getting the pointer requires providing the name:" +"cause a segmentation fault by taking a :c:type:`!PyCObject` from module A " +"and somehow substituting it for the :c:type:`!PyCObject` in module B. " +"Capsules know their own name, and getting the pointer requires providing the " +"name:" msgstr "" #: ../../whatsnew/2.7.rst:2297 @@ -3218,18 +3214,18 @@ msgstr "" #: ../../whatsnew/2.7.rst:2308 msgid "" "You are assured that ``vtable`` points to whatever you're expecting. If a " -"different capsule was passed in, :c:func:`PyCapsule_IsValid` would detect the" -" mismatched name and return false. Refer to :ref:`using-capsules` for more " -"information on using these objects." +"different capsule was passed in, :c:func:`PyCapsule_IsValid` would detect " +"the mismatched name and return false. Refer to :ref:`using-capsules` for " +"more information on using these objects." msgstr "" #: ../../whatsnew/2.7.rst:2313 msgid "" "Python 2.7 now uses capsules internally to provide various extension-module " -"APIs, but the :c:func:`!PyCObject_AsVoidPtr` was modified to handle capsules," -" preserving compile-time compatibility with the :c:type:`!PyCObject` " -"interface. Use of :c:func:`!PyCObject_AsVoidPtr` will signal a " -":exc:`PendingDeprecationWarning`, which is silent by default." +"APIs, but the :c:func:`!PyCObject_AsVoidPtr` was modified to handle " +"capsules, preserving compile-time compatibility with the :c:type:`!" +"PyCObject` interface. Use of :c:func:`!PyCObject_AsVoidPtr` will signal a :" +"exc:`PendingDeprecationWarning`, which is silent by default." msgstr "" #: ../../whatsnew/2.7.rst:2320 @@ -3244,11 +3240,11 @@ msgstr "" #: ../../whatsnew/2.7.rst:2329 msgid "" -"The :mod:`msvcrt` module now contains some constants from the " -":file:`crtassem.h` header file: :data:`~msvcrt.CRT_ASSEMBLY_VERSION`, " -":data:`~msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN`, and " -":data:`~msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX`. (Contributed by David " -"Cournapeau; :issue:`4365`.)" +"The :mod:`msvcrt` module now contains some constants from the :file:" +"`crtassem.h` header file: :data:`~msvcrt.CRT_ASSEMBLY_VERSION`, :data:" +"`~msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN`, and :data:`~msvcrt." +"LIBRARIES_ASSEMBLY_NAME_PREFIX`. (Contributed by David Cournapeau; :issue:" +"`4365`.)" msgstr "" #: ../../whatsnew/2.7.rst:2336 @@ -3256,10 +3252,9 @@ msgid "" "The :mod:`_winreg ` module for accessing the registry now implements " "the :func:`~winreg.CreateKeyEx` and :func:`~winreg.DeleteKeyEx` functions, " "extended versions of previously supported functions that take several extra " -"arguments. The :func:`~winreg.DisableReflectionKey`, " -":func:`~winreg.EnableReflectionKey`, and :func:`~winreg.QueryReflectionKey` " -"were also tested and documented. (Implemented by Brian Curtin: " -":issue:`7347`.)" +"arguments. The :func:`~winreg.DisableReflectionKey`, :func:`~winreg." +"EnableReflectionKey`, and :func:`~winreg.QueryReflectionKey` were also " +"tested and documented. (Implemented by Brian Curtin: :issue:`7347`.)" msgstr "" #: ../../whatsnew/2.7.rst:2344 @@ -3272,11 +3267,11 @@ msgstr "" #: ../../whatsnew/2.7.rst:2348 msgid "" "The :func:`os.kill` function now works on Windows. The signal value can be " -"the constants :const:`~signal.CTRL_C_EVENT`, " -":const:`~signal.CTRL_BREAK_EVENT`, or any integer. The first two constants " -"will send :kbd:`Control-C` and :kbd:`Control-Break` keystroke events to " -"subprocesses; any other value will use the :c:func:`!TerminateProcess` API. " -"(Contributed by Miki Tebeka; :issue:`1220212`.)" +"the constants :const:`~signal.CTRL_C_EVENT`, :const:`~signal." +"CTRL_BREAK_EVENT`, or any integer. The first two constants will send :kbd:" +"`Control-C` and :kbd:`Control-Break` keystroke events to subprocesses; any " +"other value will use the :c:func:`!TerminateProcess` API. (Contributed by " +"Miki Tebeka; :issue:`1220212`.)" msgstr "" #: ../../whatsnew/2.7.rst:2355 @@ -3297,21 +3292,22 @@ msgstr "" #: ../../whatsnew/2.7.rst:2367 msgid "" -"The path ``/Library/Python/2.7/site-packages`` is now appended to " -"``sys.path``, in order to share added packages between the system " -"installation and a user-installed copy of the same version. (Changed by " -"Ronald Oussoren; :issue:`4865`.)" +"The path ``/Library/Python/2.7/site-packages`` is now appended to ``sys." +"path``, in order to share added packages between the system installation and " +"a user-installed copy of the same version. (Changed by Ronald Oussoren; :" +"issue:`4865`.)" msgstr "" #: ../../whatsnew/2.7.rst:2374 msgid "" -"As of 2.7.13, this change was removed. ``/Library/Python/2.7/site-packages``," -" the site-packages directory used by the Apple-supplied system Python 2.7 is " -"no longer appended to ``sys.path`` for user-installed Pythons such as from " -"the python.org installers. As of macOS 10.12, Apple changed how the system " -"site-packages directory is configured, which could cause installation of pip " -"components, like setuptools, to fail. Packages installed for the system " -"Python will no longer be shared with user-installed Pythons. (:issue:`28440`)" +"As of 2.7.13, this change was removed. ``/Library/Python/2.7/site-" +"packages``, the site-packages directory used by the Apple-supplied system " +"Python 2.7 is no longer appended to ``sys.path`` for user-installed Pythons " +"such as from the python.org installers. As of macOS 10.12, Apple changed " +"how the system site-packages directory is configured, which could cause " +"installation of pip components, like setuptools, to fail. Packages " +"installed for the system Python will no longer be shared with user-installed " +"Pythons. (:issue:`28440`)" msgstr "" #: ../../whatsnew/2.7.rst:2385 @@ -3320,11 +3316,10 @@ msgstr "" #: ../../whatsnew/2.7.rst:2387 msgid "" -"FreeBSD 7.1's :const:`!SO_SETFIB` constant, used with the " -":func:`~socket.socket` methods " -":func:`~socket.socket.getsockopt`/:func:`~socket.socket.setsockopt` to select" -" an alternate routing table, is now available in the :mod:`socket` module. " -"(Added by Kyle VanderBeek; :issue:`8235`.)" +"FreeBSD 7.1's :const:`!SO_SETFIB` constant, used with the :func:`~socket." +"socket` methods :func:`~socket.socket.getsockopt`/:func:`~socket.socket." +"setsockopt` to select an alternate routing table, is now available in the :" +"mod:`socket` module. (Added by Kyle VanderBeek; :issue:`8235`.)" msgstr "" #: ../../whatsnew/2.7.rst:2393 @@ -3333,9 +3328,9 @@ msgstr "" #: ../../whatsnew/2.7.rst:2395 msgid "" -"Two benchmark scripts, :file:`iobench` and :file:`ccbench`, were added to the" -" :file:`Tools` directory. :file:`iobench` measures the speed of the built-in" -" file I/O objects returned by :func:`open` while performing various " +"Two benchmark scripts, :file:`iobench` and :file:`ccbench`, were added to " +"the :file:`Tools` directory. :file:`iobench` measures the speed of the " +"built-in file I/O objects returned by :func:`open` while performing various " "operations, and :file:`ccbench` is a concurrency benchmark that tries to " "measure computing throughput, thread switching latency, and IO processing " "bandwidth when performing several tasks using a varying number of threads." @@ -3343,8 +3338,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:2403 msgid "" -"The :file:`Tools/i18n/msgfmt.py` script now understands plural forms in " -":file:`.po` files. (Fixed by Martin von Löwis; :issue:`5464`.)" +"The :file:`Tools/i18n/msgfmt.py` script now understands plural forms in :" +"file:`.po` files. (Fixed by Martin von Löwis; :issue:`5464`.)" msgstr "" #: ../../whatsnew/2.7.rst:2407 @@ -3359,10 +3354,10 @@ msgstr "" #: ../../whatsnew/2.7.rst:2414 msgid "" -"The :file:`regrtest.py` script now takes a :option:`!--randseed=` switch that" -" takes an integer that will be used as the random seed for the :option:`!-r` " -"option that executes tests in random order. The :option:`!-r` option also " -"reports the seed that was used (Added by Collin Winter.)" +"The :file:`regrtest.py` script now takes a :option:`!--randseed=` switch " +"that takes an integer that will be used as the random seed for the :option:" +"`!-r` option that executes tests in random order. The :option:`!-r` option " +"also reports the seed that was used (Added by Collin Winter.)" msgstr "" #: ../../whatsnew/2.7.rst:2420 @@ -3372,8 +3367,8 @@ msgid "" "runtime on multi-core machines. This option is compatible with several other " "options, including the :option:`!-R` switch which is known to produce long " "runtimes. (Added by Antoine Pitrou, :issue:`6152`.) This can also be used " -"with a new :option:`!-F` switch that runs selected tests in a loop until they" -" fail. (Added by Antoine Pitrou; :issue:`7312`.)" +"with a new :option:`!-F` switch that runs selected tests in a loop until " +"they fail. (Added by Antoine Pitrou; :issue:`7312`.)" msgstr "" #: ../../whatsnew/2.7.rst:2429 @@ -3395,33 +3390,34 @@ msgstr "" #: ../../whatsnew/2.7.rst:2442 msgid "" -"The :func:`range` function processes its arguments more consistently; it will" -" now call :meth:`~object.__int__` on non-float, non-integer arguments that " -"are supplied to it. (Fixed by Alexander Belopolsky; :issue:`1533`.)" +"The :func:`range` function processes its arguments more consistently; it " +"will now call :meth:`~object.__int__` on non-float, non-integer arguments " +"that are supplied to it. (Fixed by Alexander Belopolsky; :issue:`1533`.)" msgstr "" #: ../../whatsnew/2.7.rst:2447 msgid "" "The string :meth:`format` method changed the default precision used for " -"floating-point and complex numbers from 6 decimal places to 12, which matches" -" the precision used by :func:`str`. (Changed by Eric Smith; :issue:`5920`.)" +"floating-point and complex numbers from 6 decimal places to 12, which " +"matches the precision used by :func:`str`. (Changed by Eric Smith; :issue:" +"`5920`.)" msgstr "" #: ../../whatsnew/2.7.rst:2452 msgid "" "Because of an optimization for the :keyword:`with` statement, the special " -"methods :meth:`~object.__enter__` and :meth:`~object.__exit__` must belong to" -" the object's type, and cannot be directly attached to the object's instance." -" This affects new-style classes (derived from :class:`object`) and C " -"extension types. (:issue:`6101`.)" +"methods :meth:`~object.__enter__` and :meth:`~object.__exit__` must belong " +"to the object's type, and cannot be directly attached to the object's " +"instance. This affects new-style classes (derived from :class:`object`) and " +"C extension types. (:issue:`6101`.)" msgstr "" #: ../../whatsnew/2.7.rst:2458 msgid "" -"Due to a bug in Python 2.6, the *exc_value* parameter to " -":meth:`~object.__exit__` methods was often the string representation of the " -"exception, not an instance. This was fixed in 2.7, so *exc_value* will be an" -" instance as expected. (Fixed by Florent Xicluna; :issue:`7853`.)" +"Due to a bug in Python 2.6, the *exc_value* parameter to :meth:`~object." +"__exit__` methods was often the string representation of the exception, not " +"an instance. This was fixed in 2.7, so *exc_value* will be an instance as " +"expected. (Fixed by Florent Xicluna; :issue:`7853`.)" msgstr "" #: ../../whatsnew/2.7.rst:2468 @@ -3430,19 +3426,19 @@ msgstr "" #: ../../whatsnew/2.7.rst:2470 msgid "" -"Operations with :class:`~datetime.datetime` instances that resulted in a year" -" falling outside the supported range didn't always raise " -":exc:`OverflowError`. Such errors are now checked more carefully and will " -"now raise the exception. (Reported by Mark Leander, patch by Anand B. Pillai " -"and Alexander Belopolsky; :issue:`7150`.)" +"Operations with :class:`~datetime.datetime` instances that resulted in a " +"year falling outside the supported range didn't always raise :exc:" +"`OverflowError`. Such errors are now checked more carefully and will now " +"raise the exception. (Reported by Mark Leander, patch by Anand B. Pillai and " +"Alexander Belopolsky; :issue:`7150`.)" msgstr "" #: ../../whatsnew/2.7.rst:2476 msgid "" -"When using :class:`~decimal.Decimal` instances with a string's :meth:`format`" -" method, the default alignment was previously left-alignment. This has been " -"changed to right-alignment, which might change the output of your programs. " -"(Changed by Mark Dickinson; :issue:`6857`.)" +"When using :class:`~decimal.Decimal` instances with a string's :meth:" +"`format` method, the default alignment was previously left-alignment. This " +"has been changed to right-alignment, which might change the output of your " +"programs. (Changed by Mark Dickinson; :issue:`6857`.)" msgstr "" #: ../../whatsnew/2.7.rst:2488 @@ -3473,8 +3469,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:2543 msgid "" -"Use the new :c:func:`PyOS_string_to_double` function instead of the old " -":c:func:`!PyOS_ascii_strtod` and :c:func:`!PyOS_ascii_atof` functions, which " +"Use the new :c:func:`PyOS_string_to_double` function instead of the old :c:" +"func:`!PyOS_ascii_strtod` and :c:func:`!PyOS_ascii_atof` functions, which " "are now deprecated." msgstr "" @@ -3484,11 +3480,11 @@ msgstr "" #: ../../whatsnew/2.7.rst:2549 msgid "" -"The :c:func:`!PySys_SetArgvEx` function was added, letting applications close" -" a security hole when the existing :c:func:`!PySys_SetArgv` function was " -"used. Check whether you're calling :c:func:`!PySys_SetArgv` and carefully " -"consider whether the application should be using :c:func:`!PySys_SetArgvEx` " -"with *updatepath* set to false." +"The :c:func:`!PySys_SetArgvEx` function was added, letting applications " +"close a security hole when the existing :c:func:`!PySys_SetArgv` function " +"was used. Check whether you're calling :c:func:`!PySys_SetArgv` and " +"carefully consider whether the application should be using :c:func:`!" +"PySys_SetArgvEx` with *updatepath* set to false." msgstr "" #: ../../whatsnew/2.7.rst:2562 @@ -3517,8 +3513,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:2578 msgid "" -"In debug mode, the ``[xxx refs]`` statistic is not written by default, the " -":envvar:`!PYTHONSHOWREFCOUNT` environment variable now must also be set. " +"In debug mode, the ``[xxx refs]`` statistic is not written by default, the :" +"envvar:`!PYTHONSHOWREFCOUNT` environment variable now must also be set. " "(Contributed by Victor Stinner; :issue:`31733`.)" msgstr "" @@ -3527,8 +3523,8 @@ msgid "" "When Python is compiled with ``COUNT_ALLOC`` defined, allocation counts are " "no longer dumped by default anymore: the :envvar:`!PYTHONSHOWALLOCCOUNT` " "environment variable must now also be set. Moreover, allocation counts are " -"now dumped into stderr, rather than stdout. (Contributed by Victor Stinner; " -":issue:`31692`.)" +"now dumped into stderr, rather than stdout. (Contributed by Victor Stinner; :" +"issue:`31692`.)" msgstr "" #: ../../whatsnew/2.7.rst:2591 @@ -3539,8 +3535,8 @@ msgstr "" msgid "" ":pep:`434` describes a general exemption for changes made to the IDLE " "development environment shipped along with Python. This exemption makes it " -"possible for the IDLE developers to provide a more consistent user experience" -" across all supported versions of Python 2 and 3." +"possible for the IDLE developers to provide a more consistent user " +"experience across all supported versions of Python 2 and 3." msgstr "" #: ../../whatsnew/2.7.rst:2598 @@ -3556,8 +3552,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:2605 msgid "" ":pep:`466` describes a number of network security enhancement proposals that " -"have been approved for inclusion in Python 2.7 maintenance releases, with the" -" first of those changes appearing in the Python 2.7.7 release." +"have been approved for inclusion in Python 2.7 maintenance releases, with " +"the first of those changes appearing in the Python 2.7.7 release." msgstr "" #: ../../whatsnew/2.7.rst:2609 @@ -3591,8 +3587,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:2624 msgid "" "OpenSSL 1.0.1h was upgraded for the official Windows installers published on " -"python.org. (Contributed by Zachary Ware in :issue:`21671` for " -":cve:`2014-0224`.)" +"python.org. (Contributed by Zachary Ware in :issue:`21671` for :cve:" +"`2014-0224`.)" msgstr "" #: ../../whatsnew/2.7.rst:2627 @@ -3615,17 +3611,17 @@ msgstr "" #: ../../whatsnew/2.7.rst:2637 msgid "" -":func:`os.urandom` was changed to cache a file descriptor to ``/dev/urandom``" -" instead of reopening ``/dev/urandom`` on every call. (Contributed by Alex " -"Gaynor; :issue:`21305`.)" +":func:`os.urandom` was changed to cache a file descriptor to ``/dev/" +"urandom`` instead of reopening ``/dev/urandom`` on every call. (Contributed " +"by Alex Gaynor; :issue:`21305`.)" msgstr "" #: ../../whatsnew/2.7.rst:2641 msgid "" -":data:`hashlib.algorithms_guaranteed` and " -":data:`hashlib.algorithms_available` were backported from Python 3 to make it" -" easier for Python 2 applications to select the strongest available hash " -"algorithm. (Contributed by Alex Gaynor in :issue:`21307`)" +":data:`hashlib.algorithms_guaranteed` and :data:`hashlib." +"algorithms_available` were backported from Python 3 to make it easier for " +"Python 2 applications to select the strongest available hash algorithm. " +"(Contributed by Alex Gaynor in :issue:`21307`)" msgstr "" #: ../../whatsnew/2.7.rst:2648 @@ -3694,18 +3690,18 @@ msgstr "" #: ../../whatsnew/2.7.rst:2690 msgid "" "As part of this change, the :ref:`installing-index` and :ref:`distributing-" -"index` sections of the documentation have been completely redesigned as short" -" getting started and FAQ documents. Most packaging documentation has now been" -" moved out to the Python Packaging Authority maintained `Python Packaging " -"User Guide `__ and the documentation of the " -"individual projects." +"index` sections of the documentation have been completely redesigned as " +"short getting started and FAQ documents. Most packaging documentation has " +"now been moved out to the Python Packaging Authority maintained `Python " +"Packaging User Guide `__ and the documentation " +"of the individual projects." msgstr "" #: ../../whatsnew/2.7.rst:2698 msgid "" -"However, as this migration is currently still incomplete, the legacy versions" -" of those guides remaining available as :ref:`install-index` and " -":ref:`setuptools-index`." +"However, as this migration is currently still incomplete, the legacy " +"versions of those guides remaining available as :ref:`install-index` and :" +"ref:`setuptools-index`." msgstr "" #: ../../whatsnew/2.7.rst:2704 @@ -3725,12 +3721,12 @@ msgstr "" #: ../../whatsnew/2.7.rst:2711 msgid "" -":pep:`476` updated :mod:`httplib ` and modules which use it, such as " -":mod:`urllib2 ` and :mod:`xmlrpclib `, to now " +":pep:`476` updated :mod:`httplib ` and modules which use it, such as :" +"mod:`urllib2 ` and :mod:`xmlrpclib `, to now " "verify that the server presents a certificate which is signed by a " "Certificate Authority in the platform trust store and whose hostname matches " -"the hostname being requested by default, significantly improving security for" -" many applications. This change was made in the Python 2.7.9 release." +"the hostname being requested by default, significantly improving security " +"for many applications. This change was made in the Python 2.7.9 release." msgstr "" #: ../../whatsnew/2.7.rst:2719 @@ -3810,8 +3806,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:2770 msgid "" -"More selective regeneration targets are also defined - see " -":source:`Makefile.pre.in` for details." +"More selective regeneration targets are also defined - see :source:`Makefile." +"pre.in` for details." msgstr "" #: ../../whatsnew/2.7.rst:2773 ../../whatsnew/2.7.rst:2786 @@ -3825,8 +3821,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:2781 msgid "" "The ``make touch`` build target previously used to request implicit " -"regeneration of generated files by updating their modification times has been" -" removed." +"regeneration of generated files by updating their modification times has " +"been removed." msgstr "" #: ../../whatsnew/2.7.rst:2784 @@ -3839,7 +3835,8 @@ msgstr "" #: ../../whatsnew/2.7.rst:2797 msgid "" -"The author would like to thank the following people for offering suggestions," -" corrections and assistance with various drafts of this article: Nick " -"Coghlan, Philip Jenvey, Ryan Lovett, R. David Murray, Hugh Secker-Walker." +"The author would like to thank the following people for offering " +"suggestions, corrections and assistance with various drafts of this article: " +"Nick Coghlan, Philip Jenvey, Ryan Lovett, R. David Murray, Hugh Secker-" +"Walker." msgstr "" diff --git a/whatsnew/3.1.po b/whatsnew/3.1.po index 6df3f9f7..2f38be0e 100644 --- a/whatsnew/3.1.po +++ b/whatsnew/3.1.po @@ -34,8 +34,8 @@ msgstr "" #: ../../whatsnew/3.1.rst:49 msgid "" -"This article explains the new features in Python 3.1, compared to 3.0. Python" -" 3.1 was released on June 27, 2009." +"This article explains the new features in Python 3.1, compared to 3.0. " +"Python 3.1 was released on June 27, 2009." msgstr "" #: ../../whatsnew/3.1.rst:54 @@ -46,9 +46,9 @@ msgstr "" msgid "" "Regular Python dictionaries iterate over key/value pairs in arbitrary order. " "Over the years, a number of authors have written alternative implementations " -"that remember the order that the keys were originally inserted. Based on the" -" experiences from those implementations, a new " -":class:`collections.OrderedDict` class has been introduced." +"that remember the order that the keys were originally inserted. Based on " +"the experiences from those implementations, a new :class:`collections." +"OrderedDict` class has been introduced." msgstr "" #: ../../whatsnew/3.1.rst:62 @@ -66,10 +66,10 @@ msgid "" "modules. The :mod:`configparser` module uses them by default. This lets " "configuration files be read, modified, and then written back in their " "original order. The *_asdict()* method for :func:`collections.namedtuple` " -"now returns an ordered dictionary with the values appearing in the same order" -" as the underlying tuple indices. The :mod:`json` module is being built-out " -"with an *object_pairs_hook* to allow OrderedDicts to be built by the decoder." -" Support was also added for third-party tools like `PyYAML " +"now returns an ordered dictionary with the values appearing in the same " +"order as the underlying tuple indices. The :mod:`json` module is being " +"built-out with an *object_pairs_hook* to allow OrderedDicts to be built by " +"the decoder. Support was also added for third-party tools like `PyYAML " "`_." msgstr "" @@ -140,8 +140,8 @@ msgstr "" #: ../../whatsnew/3.1.rst:123 msgid "" -"The supported types are :class:`int`, :class:`float`, :class:`complex` and " -":class:`decimal.Decimal`." +"The supported types are :class:`int`, :class:`float`, :class:`complex` and :" +"class:`decimal.Decimal`." msgstr "" #: ../../whatsnew/3.1.rst:126 @@ -172,9 +172,9 @@ msgstr "" #: ../../whatsnew/3.1.rst:143 msgid "" -"Directories and zip archives containing a :file:`__main__.py` file can now be" -" executed directly by passing their name to the interpreter. The " -"directory/zipfile is automatically inserted as the first entry in sys.path. " +"Directories and zip archives containing a :file:`__main__.py` file can now " +"be executed directly by passing their name to the interpreter. The directory/" +"zipfile is automatically inserted as the first entry in sys.path. " "(Suggestion and initial patch by Andy Chu; revised patch by Phillip J. Eby " "and Nick Coghlan; :issue:`1739468`.)" msgstr "" @@ -229,11 +229,11 @@ msgstr "" #: ../../whatsnew/3.1.rst:177 msgid "" "The :func:`!string.maketrans` function is deprecated and is replaced by new " -"static methods, :meth:`bytes.maketrans` and :meth:`bytearray.maketrans`. This" -" change solves the confusion around which types were supported by the " -":mod:`string` module. Now, :class:`str`, :class:`bytes`, and " -":class:`bytearray` each have their own **maketrans** and **translate** " -"methods with intermediate translation tables of the appropriate type." +"static methods, :meth:`bytes.maketrans` and :meth:`bytearray.maketrans`. " +"This change solves the confusion around which types were supported by the :" +"mod:`string` module. Now, :class:`str`, :class:`bytes`, and :class:" +"`bytearray` each have their own **maketrans** and **translate** methods with " +"intermediate translation tables of the appropriate type." msgstr "" #: ../../whatsnew/3.1.rst:184 @@ -284,9 +284,9 @@ msgstr "" #: ../../whatsnew/3.1.rst:208 msgid "" -"Python now uses David Gay's algorithm for finding the shortest floating-point" -" representation that doesn't change its value. This should help mitigate " -"some of the confusion surrounding binary floating-point numbers." +"Python now uses David Gay's algorithm for finding the shortest floating-" +"point representation that doesn't change its value. This should help " +"mitigate some of the confusion surrounding binary floating-point numbers." msgstr "" #: ../../whatsnew/3.1.rst:213 @@ -302,10 +302,10 @@ msgstr "" #: ../../whatsnew/3.1.rst:221 msgid "" -"What is new is how the number gets displayed. Formerly, Python used a simple" -" approach. The value of ``repr(1.1)`` was computed as ``format(1.1, " -"'.17g')`` which evaluated to ``'1.1000000000000001'``. The advantage of using" -" 17 digits was that it relied on IEEE-754 guarantees to assure that " +"What is new is how the number gets displayed. Formerly, Python used a " +"simple approach. The value of ``repr(1.1)`` was computed as ``format(1.1, " +"'.17g')`` which evaluated to ``'1.1000000000000001'``. The advantage of " +"using 17 digits was that it relied on IEEE-754 guarantees to assure that " "``eval(repr(1.1))`` would round-trip exactly to its original value. The " "disadvantage is that many people found the output to be confusing (mistaking " "intrinsic limitations of binary floating-point representation as being a " @@ -315,16 +315,16 @@ msgstr "" #: ../../whatsnew/3.1.rst:230 msgid "" "The new algorithm for ``repr(1.1)`` is smarter and returns ``'1.1'``. " -"Effectively, it searches all equivalent string representations (ones that get" -" stored with the same underlying float value) and returns the shortest " +"Effectively, it searches all equivalent string representations (ones that " +"get stored with the same underlying float value) and returns the shortest " "representation." msgstr "" #: ../../whatsnew/3.1.rst:235 msgid "" -"The new algorithm tends to emit cleaner representations when possible, but it" -" does not change the underlying values. So, it is still the case that ``1.1 " -"+ 2.2 != 3.3`` even though the representations may suggest otherwise." +"The new algorithm tends to emit cleaner representations when possible, but " +"it does not change the underlying values. So, it is still the case that " +"``1.1 + 2.2 != 3.3`` even though the representations may suggest otherwise." msgstr "" #: ../../whatsnew/3.1.rst:239 @@ -413,13 +413,13 @@ msgstr "" #: ../../whatsnew/3.1.rst:285 msgid "" -"The :mod:`itertools` module grew two new functions. The " -":func:`itertools.combinations_with_replacement` function is one of four for " -"generating combinatorics including permutations and Cartesian products. The " -":func:`itertools.compress` function mimics its namesake from APL. Also, the " -"existing :func:`itertools.count` function now has an optional *step* argument" -" and can accept any type of counting sequence including " -":class:`fractions.Fraction` and :class:`decimal.Decimal`::" +"The :mod:`itertools` module grew two new functions. The :func:`itertools." +"combinations_with_replacement` function is one of four for generating " +"combinatorics including permutations and Cartesian products. The :func:" +"`itertools.compress` function mimics its namesake from APL. Also, the " +"existing :func:`itertools.count` function now has an optional *step* " +"argument and can accept any type of counting sequence including :class:" +"`fractions.Fraction` and :class:`decimal.Decimal`::" msgstr "" #: ../../whatsnew/3.1.rst:294 @@ -441,10 +441,11 @@ msgstr "" #: ../../whatsnew/3.1.rst:306 msgid "" -":func:`collections.namedtuple` now supports a keyword argument *rename* which" -" lets invalid fieldnames be automatically converted to positional names in " -"the form _0, _1, etc. This is useful when the field names are being created " -"by an external source such as a CSV header, SQL field list, or user input::" +":func:`collections.namedtuple` now supports a keyword argument *rename* " +"which lets invalid fieldnames be automatically converted to positional names " +"in the form _0, _1, etc. This is useful when the field names are being " +"created by an external source such as a CSV header, SQL field list, or user " +"input::" msgstr "" #: ../../whatsnew/3.1.rst:312 @@ -467,8 +468,8 @@ msgstr "" #: ../../whatsnew/3.1.rst:325 msgid "" -"The :func:`re.sub`, :func:`re.subn` and :func:`re.split` functions now accept" -" a flags parameter." +"The :func:`re.sub`, :func:`re.subn` and :func:`re.split` functions now " +"accept a flags parameter." msgstr "" #: ../../whatsnew/3.1.rst:328 @@ -477,11 +478,10 @@ msgstr "" #: ../../whatsnew/3.1.rst:330 msgid "" -"The :mod:`logging` module now implements a simple " -":class:`logging.NullHandler` class for applications that are not using " -"logging but are calling library code that does. Setting-up a null handler " -"will suppress spurious warnings such as \"No handlers could be found for " -"logger foo\"::" +"The :mod:`logging` module now implements a simple :class:`logging." +"NullHandler` class for applications that are not using logging but are " +"calling library code that does. Setting-up a null handler will suppress " +"spurious warnings such as \"No handlers could be found for logger foo\"::" msgstr "" #: ../../whatsnew/3.1.rst:335 @@ -507,8 +507,8 @@ msgstr "" #: ../../whatsnew/3.1.rst:346 msgid "" -"The :mod:`pdb` module can now access and display source code loaded via " -":mod:`zipimport` (or any other conformant :pep:`302` loader)." +"The :mod:`pdb` module can now access and display source code loaded via :mod:" +"`zipimport` (or any other conformant :pep:`302` loader)." msgstr "" #: ../../whatsnew/3.1.rst:349 @@ -547,7 +547,8 @@ msgstr "" msgid "" "class TestGizmo(unittest.TestCase):\n" "\n" -" @unittest.skipUnless(sys.platform.startswith(\"win\"), \"requires Windows\")\n" +" @unittest.skipUnless(sys.platform.startswith(\"win\"), \"requires " +"Windows\")\n" " def test_gizmo_on_windows(self):\n" " ...\n" "\n" @@ -571,16 +572,13 @@ msgstr "" #: ../../whatsnew/3.1.rst:383 msgid "" -"In addition, several new assertion methods were added including " -":meth:`~unittest.TestCase.assertSetEqual`, " -":meth:`~unittest.TestCase.assertDictEqual`, " -":meth:`!assertDictContainsSubset`, " -":meth:`~unittest.TestCase.assertListEqual`, " -":meth:`~unittest.TestCase.assertTupleEqual`, " -":meth:`~unittest.TestCase.assertSequenceEqual`, :meth:`assertRaisesRegexp() " -"`, " -":meth:`~unittest.TestCase.assertIsNone`, and " -":meth:`~unittest.TestCase.assertIsNotNone`." +"In addition, several new assertion methods were added including :meth:" +"`~unittest.TestCase.assertSetEqual`, :meth:`~unittest.TestCase." +"assertDictEqual`, :meth:`!assertDictContainsSubset`, :meth:`~unittest." +"TestCase.assertListEqual`, :meth:`~unittest.TestCase.assertTupleEqual`, :" +"meth:`~unittest.TestCase.assertSequenceEqual`, :meth:`assertRaisesRegexp() " +"`, :meth:`~unittest.TestCase." +"assertIsNone`, and :meth:`~unittest.TestCase.assertIsNotNone`." msgstr "" #: ../../whatsnew/3.1.rst:394 @@ -619,13 +617,13 @@ msgstr "" msgid "" "The :mod:`pickle` module has been adapted for better interoperability with " "Python 2.x when used with protocol 2 or lower. The reorganization of the " -"standard library changed the formal reference for many objects. For example," -" ``__builtin__.set`` in Python 2 is called ``builtins.set`` in Python 3. This" -" change confounded efforts to share data between different versions of " -"Python. But now when protocol 2 or lower is selected, the pickler will " -"automatically use the old Python 2 names for both loading and dumping. This " -"remapping is turned-on by default but can be disabled with the *fix_imports* " -"option::" +"standard library changed the formal reference for many objects. For " +"example, ``__builtin__.set`` in Python 2 is called ``builtins.set`` in " +"Python 3. This change confounded efforts to share data between different " +"versions of Python. But now when protocol 2 or lower is selected, the " +"pickler will automatically use the old Python 2 names for both loading and " +"dumping. This remapping is turned-on by default but can be disabled with the " +"*fix_imports* option::" msgstr "" #: ../../whatsnew/3.1.rst:420 @@ -688,8 +686,8 @@ msgstr "" #: ../../whatsnew/3.1.rst:456 msgid "" "Added a heuristic so that tuples and dicts containing only untrackable " -"objects are not tracked by the garbage collector. This can reduce the size of" -" collections and therefore the garbage collection overhead on long-running " +"objects are not tracked by the garbage collector. This can reduce the size " +"of collections and therefore the garbage collection overhead on long-running " "programs, depending on their particular use of datatypes." msgstr "" @@ -699,16 +697,16 @@ msgstr "" #: ../../whatsnew/3.1.rst:463 msgid "" -"Enabling a configure option named ``--with-computed-gotos`` on compilers that" -" support it (notably: gcc, SunPro, icc), the bytecode evaluation loop is " +"Enabling a configure option named ``--with-computed-gotos`` on compilers " +"that support it (notably: gcc, SunPro, icc), the bytecode evaluation loop is " "compiled with a new dispatch mechanism which gives speedups of up to 20%, " "depending on the system, the compiler, and the benchmark." msgstr "" #: ../../whatsnew/3.1.rst:469 msgid "" -"(Contributed by Antoine Pitrou along with a number of other participants, " -":issue:`4753`)." +"(Contributed by Antoine Pitrou along with a number of other participants, :" +"issue:`4753`)." msgstr "" #: ../../whatsnew/3.1.rst:472 @@ -724,10 +722,10 @@ msgstr "" #: ../../whatsnew/3.1.rst:477 msgid "" "The :mod:`json` module now has a C extension to substantially improve its " -"performance. In addition, the API was modified so that json works only with " -":class:`str`, not with :class:`bytes`. That change makes the module closely " -"match the `JSON specification `_ which is defined in terms" -" of Unicode." +"performance. In addition, the API was modified so that json works only " +"with :class:`str`, not with :class:`bytes`. That change makes the module " +"closely match the `JSON specification `_ which is defined " +"in terms of Unicode." msgstr "" #: ../../whatsnew/3.1.rst:483 @@ -752,8 +750,8 @@ msgstr "" #: ../../whatsnew/3.1.rst:494 msgid "" -"IDLE's format menu now provides an option to strip trailing whitespace from a" -" source file." +"IDLE's format menu now provides an option to strip trailing whitespace from " +"a source file." msgstr "" #: ../../whatsnew/3.1.rst:497 @@ -774,8 +772,8 @@ msgid "" "``2**30``, the base being determined at build time. Previously, they were " "always stored in base ``2**15``. Using base ``2**30`` gives significant " "performance improvements on 64-bit machines, but benchmark results on 32-bit " -"machines have been mixed. Therefore, the default is to use base ``2**30`` on" -" 64-bit machines and base ``2**15`` on 32-bit machines; on Unix, there's a " +"machines have been mixed. Therefore, the default is to use base ``2**30`` " +"on 64-bit machines and base ``2**15`` on 32-bit machines; on Unix, there's a " "new configure option ``--enable-big-digits`` that can be used to override " "this default." msgstr "" @@ -784,9 +782,9 @@ msgstr "" msgid "" "Apart from the performance improvements this change should be invisible to " "end users, with one exception: for testing and debugging purposes there's a " -"new :data:`sys.int_info` that provides information about the internal format," -" giving the number of bits per digit and the size in bytes of the C type used" -" to store each digit::" +"new :data:`sys.int_info` that provides information about the internal " +"format, giving the number of bits per digit and the size in bytes of the C " +"type used to store each digit::" msgstr "" #: ../../whatsnew/3.1.rst:519 @@ -822,8 +820,8 @@ msgstr "" #: ../../whatsnew/3.1.rst:534 msgid "" "Added a new :c:func:`PyOS_string_to_double` function to replace the " -"deprecated functions :c:func:`!PyOS_ascii_strtod` and " -":c:func:`!PyOS_ascii_atof`." +"deprecated functions :c:func:`!PyOS_ascii_strtod` and :c:func:`!" +"PyOS_ascii_atof`." msgstr "" #: ../../whatsnew/3.1.rst:537 @@ -884,8 +882,8 @@ msgstr "" #: ../../whatsnew/3.1.rst:576 msgid "" -"The automatic name remapping in the pickle module for protocol 2 or lower can" -" make Python 3.1 pickles unreadable in Python 3.0. One solution is to use " -"protocol 3. Another solution is to set the *fix_imports* option to " +"The automatic name remapping in the pickle module for protocol 2 or lower " +"can make Python 3.1 pickles unreadable in Python 3.0. One solution is to " +"use protocol 3. Another solution is to set the *fix_imports* option to " "``False``. See the discussion above for more details." msgstr "" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 322939fd..fc13813a 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-28 03:11+0000\n" +"POT-Creation-Date: 2026-10-12 03:18+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" @@ -32,29 +32,402 @@ msgstr "" msgid "*Release date: XXXX-XX-XX*" msgstr "" -#: ../NEWS:8 ../NEWS:725 ../NEWS:1646 ../NEWS:1944 ../NEWS:2002 ../NEWS:2258 -#: ../NEWS:2800 ../NEWS:3233 ../NEWS:3337 ../NEWS:4133 ../NEWS:4165 -#: ../NEWS:4379 ../NEWS:4531 ../NEWS:4741 ../NEWS:5019 ../NEWS:5311 -#: ../NEWS:6126 ../NEWS:6512 ../NEWS:7075 ../NEWS:7974 ../NEWS:8436 -#: ../NEWS:9176 ../NEWS:11456 ../NEWS:12606 ../NEWS:13062 ../NEWS:13618 -#: ../NEWS:15137 ../NEWS:17616 ../NEWS:18834 ../NEWS:19155 ../NEWS:19849 -#: ../NEWS:20191 ../NEWS:20633 ../NEWS:22906 ../NEWS:26608 ../NEWS:28565 -#: ../NEWS:29281 ../NEWS:29712 ../NEWS:29958 ../NEWS:30600 ../NEWS:31191 -#: ../NEWS:31547 ../NEWS:32801 ../NEWS:33154 ../NEWS:33606 ../NEWS:34112 -#: ../NEWS:34813 ../NEWS:35198 ../NEWS:37151 ../NEWS:37909 ../NEWS:38453 -#: ../NEWS:38984 ../NEWS:42514 ../NEWS:42732 ../NEWS:44460 ../NEWS:46913 -#: ../NEWS:47680 ../NEWS:48144 ../NEWS:48171 ../NEWS:50215 ../NEWS:50426 -#: ../NEWS:50717 ../NEWS:52013 ../NEWS:52072 ../NEWS:52489 ../NEWS:53192 +#: ../NEWS:8 ../NEWS:136 ../NEWS:899 ../NEWS:1820 ../NEWS:2118 ../NEWS:2176 +#: ../NEWS:2432 ../NEWS:2974 ../NEWS:3407 ../NEWS:3511 ../NEWS:4307 +#: ../NEWS:4339 ../NEWS:4553 ../NEWS:4705 ../NEWS:4915 ../NEWS:5193 +#: ../NEWS:5485 ../NEWS:6300 ../NEWS:6686 ../NEWS:7249 ../NEWS:8148 +#: ../NEWS:8610 ../NEWS:9350 ../NEWS:11630 ../NEWS:12780 ../NEWS:13236 +#: ../NEWS:13792 ../NEWS:15311 ../NEWS:17790 ../NEWS:19008 ../NEWS:19329 +#: ../NEWS:20023 ../NEWS:20365 ../NEWS:20807 ../NEWS:23080 ../NEWS:26782 +#: ../NEWS:28739 ../NEWS:29455 ../NEWS:29886 ../NEWS:30132 ../NEWS:30774 +#: ../NEWS:31365 ../NEWS:31721 ../NEWS:32975 ../NEWS:33328 ../NEWS:33780 +#: ../NEWS:34286 ../NEWS:34987 ../NEWS:35372 ../NEWS:37325 ../NEWS:38083 +#: ../NEWS:38627 ../NEWS:39158 ../NEWS:42688 ../NEWS:42906 ../NEWS:44634 +#: ../NEWS:47087 ../NEWS:47854 ../NEWS:48318 ../NEWS:48345 ../NEWS:50389 +#: ../NEWS:50600 ../NEWS:50891 ../NEWS:52187 ../NEWS:52246 ../NEWS:52663 +#: ../NEWS:53366 msgid "Security" msgstr "" #: ../NEWS:10 msgid "" +":gh:`157265`: In :mod:`tarfile`, when extracting a link falls back to " +"extracting a member of the archive, skip the member when the filter function " +"returns None when called with the extracted member's name replaced with the " +"link's." +msgstr "" + +#: ../NEWS:15 +msgid "" +":gh:`157579`: Fix a race condition in the cleanup of :class:`tempfile." +"TemporaryDirectory`. When working around file system permission errors, " +"files are now removed relative to open directory file descriptors instead of " +"resolving their path again, so that replacing a directory of the tree with a " +"symbolic link can no longer make the cleanup delete files outside of the " +"temporary directory. This addresses :cve:`2026-12345`." +msgstr "" + +#: ../NEWS:24 ../NEWS:194 ../NEWS:947 ../NEWS:1862 ../NEWS:2125 ../NEWS:2216 +#: ../NEWS:2456 ../NEWS:3260 ../NEWS:3448 ../NEWS:3986 ../NEWS:3998 +#: ../NEWS:4036 ../NEWS:4049 ../NEWS:4085 ../NEWS:4158 ../NEWS:4188 +#: ../NEWS:4403 ../NEWS:4498 ../NEWS:4606 ../NEWS:4617 ../NEWS:4646 +#: ../NEWS:4847 ../NEWS:5033 ../NEWS:5051 ../NEWS:5075 ../NEWS:5090 +#: ../NEWS:5368 ../NEWS:5911 ../NEWS:5952 ../NEWS:6014 ../NEWS:6498 +#: ../NEWS:6582 ../NEWS:6964 ../NEWS:7072 ../NEWS:7132 ../NEWS:7540 +#: ../NEWS:7576 ../NEWS:7677 ../NEWS:7967 ../NEWS:7992 ../NEWS:8024 +#: ../NEWS:8383 ../NEWS:8429 ../NEWS:9010 ../NEWS:9030 ../NEWS:9047 +#: ../NEWS:10627 ../NEWS:10651 ../NEWS:10746 ../NEWS:10919 ../NEWS:10991 +#: ../NEWS:11054 ../NEWS:11072 ../NEWS:11239 ../NEWS:11640 ../NEWS:11668 +#: ../NEWS:12282 ../NEWS:12393 ../NEWS:12797 ../NEWS:12839 ../NEWS:12852 +#: ../NEWS:13244 ../NEWS:13801 ../NEWS:14675 ../NEWS:15336 ../NEWS:17814 +#: ../NEWS:17944 ../NEWS:18711 ../NEWS:18752 ../NEWS:18788 ../NEWS:19029 +#: ../NEWS:19338 ../NEWS:19587 ../NEWS:19636 ../NEWS:19701 ../NEWS:20037 +#: ../NEWS:20075 ../NEWS:20385 ../NEWS:20518 ../NEWS:20845 ../NEWS:20881 +#: ../NEWS:20957 ../NEWS:21002 ../NEWS:21195 ../NEWS:21213 ../NEWS:21230 +#: ../NEWS:21355 ../NEWS:21478 ../NEWS:21493 ../NEWS:23087 ../NEWS:23232 +#: ../NEWS:23277 ../NEWS:23847 ../NEWS:23923 ../NEWS:23948 ../NEWS:24460 +#: ../NEWS:24543 ../NEWS:24595 ../NEWS:24620 ../NEWS:24919 ../NEWS:25010 +#: ../NEWS:25037 ../NEWS:25316 ../NEWS:25366 ../NEWS:25390 ../NEWS:25455 +#: ../NEWS:25768 ../NEWS:25826 ../NEWS:26256 ../NEWS:26809 ../NEWS:26843 +#: ../NEWS:26855 ../NEWS:26914 ../NEWS:26934 ../NEWS:26966 ../NEWS:27096 +#: ../NEWS:27147 ../NEWS:27167 ../NEWS:27266 ../NEWS:28795 ../NEWS:28832 +#: ../NEWS:28923 ../NEWS:29477 ../NEWS:29498 ../NEWS:29893 ../NEWS:29938 +#: ../NEWS:29963 ../NEWS:30138 ../NEWS:30191 ../NEWS:30401 ../NEWS:30443 +#: ../NEWS:30476 ../NEWS:30781 ../NEWS:30833 ../NEWS:30878 ../NEWS:30889 +#: ../NEWS:31376 ../NEWS:31455 ../NEWS:31742 ../NEWS:31764 ../NEWS:31792 +#: ../NEWS:31811 ../NEWS:31824 ../NEWS:31840 ../NEWS:31854 ../NEWS:31866 +#: ../NEWS:31884 ../NEWS:31925 ../NEWS:31944 ../NEWS:31993 ../NEWS:32023 +#: ../NEWS:32137 ../NEWS:32157 ../NEWS:32981 ../NEWS:33343 ../NEWS:33787 +#: ../NEWS:34297 ../NEWS:34638 ../NEWS:35005 ../NEWS:35421 ../NEWS:37340 +#: ../NEWS:38101 ../NEWS:38639 ../NEWS:38945 ../NEWS:39206 ../NEWS:42186 +#: ../NEWS:42298 ../NEWS:42511 ../NEWS:42702 ../NEWS:42912 ../NEWS:43156 +#: ../NEWS:43475 ../NEWS:43779 ../NEWS:44379 ../NEWS:44668 ../NEWS:46760 +#: ../NEWS:47097 ../NEWS:47414 ../NEWS:47863 ../NEWS:48352 ../NEWS:48694 +#: ../NEWS:48718 ../NEWS:49042 ../NEWS:49072 ../NEWS:49136 ../NEWS:49250 +#: ../NEWS:49374 ../NEWS:49642 ../NEWS:50151 ../NEWS:50398 ../NEWS:50612 +#: ../NEWS:50904 ../NEWS:52210 ../NEWS:52271 ../NEWS:52672 ../NEWS:53345 +#: ../NEWS:53388 ../NEWS:54096 ../NEWS:54114 ../NEWS:54637 ../NEWS:54672 +#: ../NEWS:54700 ../NEWS:54792 ../NEWS:54879 ../NEWS:54984 ../NEWS:55027 +#: ../NEWS:55303 ../NEWS:55538 ../NEWS:55724 ../NEWS:55863 +msgid "Core and Builtins" +msgstr "" + +#: ../NEWS:26 +msgid "" +":gh:`158803`: Fix a crash in :meth:`bytes.join` and :meth:`bytearray.join` " +"in the :term:`free-threaded build` when another thread concurrently mutates " +"the list being joined. Patch by Christian Aurich Zanettini Martins." +msgstr "" + +#: ../NEWS:30 +msgid "" +":gh:`158592`: Skip the array reallocation when shrinking a small :class:" +"`list`. Patch by Donghee Na." +msgstr "" + +#: ../NEWS:33 +msgid "" +":gh:`158583`: :meth:`bytes.fromhex` and :meth:`bytearray.fromhex`: Fix " +"uninitialized memory read. Patch by Victor Stinner." +msgstr "" + +#: ../NEWS:36 +msgid "" +":gh:`158592`: ``del list[index]`` now triggers shrinking the list's internal " +"array." +msgstr "" + +#: ../NEWS:39 +msgid "" +":gh:`156204`: Fix a crash in :c:func:`PyErr_GivenExceptionMatches` when " +"evaluating deeply nested exception tuples. The recursion is now bounded, and " +"exceeding the limit is reported as an unraisable exception." +msgstr "" + +#: ../NEWS:43 +msgid "" +":gh:`152075`: Reduced lock contention during LOAD_GLOBAL bytecode " +"specialization under free threading." +msgstr "" + +#: ../NEWS:47 ../NEWS:302 ../NEWS:1083 ../NEWS:1931 ../NEWS:2133 ../NEWS:2279 +#: ../NEWS:2618 ../NEWS:2997 ../NEWS:3420 ../NEWS:3454 ../NEWS:3544 +#: ../NEWS:3992 ../NEWS:4030 ../NEWS:4043 ../NEWS:4077 ../NEWS:4152 +#: ../NEWS:4178 ../NEWS:4316 ../NEWS:4349 ../NEWS:4461 ../NEWS:4563 +#: ../NEWS:4612 ../NEWS:4640 ../NEWS:4742 ../NEWS:4930 ../NEWS:5044 +#: ../NEWS:5069 ../NEWS:5084 ../NEWS:5203 ../NEWS:5495 ../NEWS:5946 +#: ../NEWS:6008 ../NEWS:6156 ../NEWS:6315 ../NEWS:6576 ../NEWS:6694 +#: ../NEWS:7067 ../NEWS:7125 ../NEWS:7277 ../NEWS:7570 ../NEWS:7670 +#: ../NEWS:7684 ../NEWS:7790 ../NEWS:7985 ../NEWS:8017 ../NEWS:8156 +#: ../NEWS:8418 ../NEWS:8615 ../NEWS:9023 ../NEWS:9040 ../NEWS:9143 +#: ../NEWS:9401 ../NEWS:10645 ../NEWS:10740 ../NEWS:10913 ../NEWS:10984 +#: ../NEWS:11047 ../NEWS:11065 ../NEWS:11233 ../NEWS:11661 ../NEWS:11839 +#: ../NEWS:12384 ../NEWS:12399 ../NEWS:12832 ../NEWS:12845 ../NEWS:12868 +#: ../NEWS:13354 ../NEWS:13960 ../NEWS:14847 ../NEWS:15972 ../NEWS:17808 +#: ../NEWS:17934 ../NEWS:18030 ../NEWS:18745 ../NEWS:18794 ../NEWS:19109 +#: ../NEWS:19399 ../NEWS:19630 ../NEWS:19696 ../NEWS:19708 ../NEWS:20066 +#: ../NEWS:20112 ../NEWS:20543 ../NEWS:20873 ../NEWS:20952 ../NEWS:20995 +#: ../NEWS:21189 ../NEWS:21206 ../NEWS:21219 ../NEWS:21345 ../NEWS:21473 +#: ../NEWS:21488 ../NEWS:21515 ../NEWS:23223 ../NEWS:23295 ../NEWS:23916 +#: ../NEWS:23942 ../NEWS:23978 ../NEWS:24538 ../NEWS:24588 ../NEWS:24611 +#: ../NEWS:24635 ../NEWS:25004 ../NEWS:25027 ../NEWS:25044 ../NEWS:25360 +#: ../NEWS:25385 ../NEWS:25449 ../NEWS:25481 ../NEWS:25820 ../NEWS:25900 +#: ../NEWS:26365 ../NEWS:26834 ../NEWS:26848 ../NEWS:26907 ../NEWS:26926 +#: ../NEWS:26960 ../NEWS:27089 ../NEWS:27139 ../NEWS:27160 ../NEWS:27259 +#: ../NEWS:27383 ../NEWS:28824 ../NEWS:28917 ../NEWS:28937 ../NEWS:29492 +#: ../NEWS:29575 ../NEWS:29925 ../NEWS:29954 ../NEWS:29970 ../NEWS:30184 +#: ../NEWS:30200 ../NEWS:30436 ../NEWS:30450 ../NEWS:30486 ../NEWS:30827 +#: ../NEWS:30873 ../NEWS:30884 ../NEWS:30901 ../NEWS:31448 ../NEWS:31462 +#: ../NEWS:31758 ../NEWS:31774 ../NEWS:31799 ../NEWS:31817 ../NEWS:31834 +#: ../NEWS:31849 ../NEWS:31860 ../NEWS:31878 ../NEWS:31920 ../NEWS:31937 +#: ../NEWS:31988 ../NEWS:32017 ../NEWS:32130 ../NEWS:32149 ../NEWS:32166 +#: ../NEWS:33039 ../NEWS:33427 ../NEWS:33914 ../NEWS:34374 ../NEWS:34736 +#: ../NEWS:35082 ../NEWS:35738 ../NEWS:37504 ../NEWS:38171 ../NEWS:38714 +#: ../NEWS:39009 ../NEWS:39760 ../NEWS:42168 ../NEWS:42201 ../NEWS:42329 +#: ../NEWS:42537 ../NEWS:42728 ../NEWS:42933 ../NEWS:43231 ../NEWS:43552 +#: ../NEWS:43877 ../NEWS:44467 ../NEWS:45127 ../NEWS:46797 ../NEWS:47143 +#: ../NEWS:47509 ../NEWS:47833 ../NEWS:47936 ../NEWS:48399 ../NEWS:48786 +#: ../NEWS:49089 ../NEWS:49171 ../NEWS:49274 ../NEWS:49444 ../NEWS:49779 +#: ../NEWS:50197 ../NEWS:50415 ../NEWS:50652 ../NEWS:51189 ../NEWS:52216 +#: ../NEWS:52234 ../NEWS:52322 ../NEWS:52803 ../NEWS:53518 ../NEWS:54182 +#: ../NEWS:54620 ../NEWS:54647 ../NEWS:54685 ../NEWS:54705 ../NEWS:54812 +#: ../NEWS:54906 ../NEWS:55002 ../NEWS:55077 ../NEWS:55335 ../NEWS:55558 +#: ../NEWS:55731 ../NEWS:56089 +msgid "Library" +msgstr "" + +#: ../NEWS:49 +msgid "" +":gh:`159184`: Fix :func:`marshal.dumps` raising :exc:`MemoryError` for a set " +"or frozenset containing several complex NaNs, which also made it impossible " +"to write a :file:`.pyc` file for source code containing such a constant." +msgstr "" + +#: ../NEWS:54 +msgid "" +":gh:`159185`: Fix a crash in :func:`marshal.dumps` and :func:`marshal.dump` " +"when a set is modified while its elements are serialized, for example by " +"the :meth:`~object.__buffer__` method of one of its elements. :exc:" +"`RuntimeError` is now raised." +msgstr "" + +#: ../NEWS:59 +msgid "" +":gh:`87720`: Fixed error in :mod:`email` new policies where header folding " +"failed to detect the need to re-quote text obtained from encoded words in " +"certain cases." +msgstr "" + +#: ../NEWS:63 +msgid "" +":gh:`158929`: Fix crash when calling :func:`syslog.syslog` while a " +"subinterpreter in another thread calls :func:`syslog.openlog` or :func:" +"`syslog.closelog`." +msgstr "" + +#: ../NEWS:67 +msgid "" +":gh:`158893`: Make :func:`os.strerror` thread-safe: use the reentrant " +"``strerror_r()`` function if available. Patch by Victor Stinner." +msgstr "" + +#: ../NEWS:70 +msgid "" +":gh:`158539`: Fix macOS runtime section lookup for remote debugging when " +"virtual memory region sizes differ from Mach-O segment file sizes." +msgstr "" + +#: ../NEWS:73 +msgid "" +":gh:`156321`: Fix :func:`asyncio.shield` reporting an exception from the " +"inner future through the loop exception handler as soon as it completes " +"after the shield was cancelled, even when the exception is retrieved " +"afterwards. The exception is now reported only if it is never retrieved, as " +"with any other future." +msgstr "" + +#: ../NEWS:79 +msgid "" +":gh:`158563`: Fix :func:`turtle.undo` after :func:`turtle.teleport` and " +"after an exception in :func:`turtle.circle`, :func:`turtle.dot` or :func:" +"`turtle.write`. Fix :func:`turtle.stamp`, :func:`turtle.clearstamp`, :func:" +"`turtle.clear` and :func:`turtle.reset` when the undo buffer is disabled." +msgstr "" + +#: ../NEWS:85 +msgid "" +":gh:`150449`: Fix :class:`sqlite3.Blob` slices with a negative step. Reading " +"or writing such a slice raised :exc:`SystemError`. It now raises :exc:" +"`ValueError`." +msgstr "" + +#: ../NEWS:89 +msgid "" +":gh:`82535`: :class:`logging.handlers.SysLogHandler` no longer fails if the " +"address cannot be resolved when the handler is created. The address is " +"resolved again when a record is emitted." +msgstr "" + +#: ../NEWS:93 +msgid "" +":gh:`154194`: Fix the sampling profiler dropping entire samples when a non-" +"fatal read fails; frames now keep any readable metadata, and long funcnames " +"and filenames are truncated instead. Patch by Maurycy Pawłowski-Wieroński." +msgstr "" + +#: ../NEWS:98 +msgid "" +":gh:`153364`: Make frame, coroutine and task-waiter walks iterative and " +"bounded, avoiding potential hangs and stack overflows. Fix asyncio task " +"inspection when awaited-by sets contain removed entries. Patch by Maurycy " +"Pawłowski-Wieroński." +msgstr "" + +#: ../NEWS:104 ../NEWS:677 ../NEWS:1650 ../NEWS:2064 ../NEWS:2152 ../NEWS:2861 +#: ../NEWS:2950 ../NEWS:3495 ../NEWS:4696 ../NEWS:4904 ../NEWS:5178 +#: ../NEWS:5464 ../NEWS:6289 ../NEWS:6669 ../NEWS:7233 ../NEWS:7783 +#: ../NEWS:8131 ../NEWS:8599 ../NEWS:9284 ../NEWS:12644 ../NEWS:13119 +#: ../NEWS:13662 ../NEWS:14477 ../NEWS:15069 ../NEWS:17033 ../NEWS:18533 +#: ../NEWS:18964 ../NEWS:19238 ../NEWS:19515 ../NEWS:19933 ../NEWS:20265 +#: ../NEWS:20684 ../NEWS:22518 ../NEWS:23714 ../NEWS:24309 ../NEWS:24816 +#: ../NEWS:25179 ../NEWS:25650 ../NEWS:26064 ../NEWS:26567 ../NEWS:28330 +#: ../NEWS:29297 ../NEWS:29757 ../NEWS:30043 ../NEWS:30319 ../NEWS:30684 +#: ../NEWS:31148 ../NEWS:31629 ../NEWS:32694 ../NEWS:33217 ../NEWS:33658 +#: ../NEWS:34121 ../NEWS:34531 ../NEWS:35258 ../NEWS:36693 ../NEWS:37944 +#: ../NEWS:38397 ../NEWS:38854 ../NEWS:39093 ../NEWS:41431 ../NEWS:42467 +#: ../NEWS:42621 ../NEWS:42837 ../NEWS:43089 ../NEWS:43403 ../NEWS:43735 +#: ../NEWS:44219 ../NEWS:46214 ../NEWS:46958 ../NEWS:47071 ../NEWS:47296 +#: ../NEWS:47686 ../NEWS:48084 ../NEWS:48663 ../NEWS:48974 ../NEWS:49225 +#: ../NEWS:49360 ../NEWS:49631 ../NEWS:50061 ../NEWS:50334 ../NEWS:50588 +#: ../NEWS:50842 ../NEWS:52015 ../NEWS:52575 ../NEWS:53229 ../NEWS:53350 +#: ../NEWS:53973 ../NEWS:54535 ../NEWS:54779 ../NEWS:54956 ../NEWS:55265 +#: ../NEWS:55494 ../NEWS:55704 ../NEWS:57515 +msgid "Tests" +msgstr "" + +#: ../NEWS:106 +msgid "" +":gh:`157628`: In regrtest, only consider that a test leaks if all test runs " +"leak at least one file descriptor. For example, ignore \"[0, 1, -1] file " +"descriptors, sum=0\" deltas, instead of reporting a leak. Patch by Victor " +"Stinner." +msgstr "" + +#: ../NEWS:111 +msgid "" +":gh:`75876`: A test decorated with :func:`~test.support.bigmemtest` now runs " +"in a subprocess if it really allocates the memory it asks for (that is, if " +"the ``-M`` option is used), so that the memory it uses and the address space " +"it fragments are released when it ends. A dummy run stays in the process. " +"The separate memory watchdog process is no longer used." +msgstr "" + +#: ../NEWS:118 ../NEWS:696 ../NEWS:1685 ../NEWS:2072 ../NEWS:2393 ../NEWS:2876 +#: ../NEWS:3385 ../NEWS:4242 ../NEWS:4536 ../NEWS:4674 ../NEWS:4885 +#: ../NEWS:5125 ../NEWS:5428 ../NEWS:6220 ../NEWS:6607 ../NEWS:7187 +#: ../NEWS:7755 ../NEWS:8075 ../NEWS:8540 ../NEWS:9175 ../NEWS:11520 +#: ../NEWS:12174 ../NEWS:12670 ../NEWS:13151 ../NEWS:13672 ../NEWS:14517 +#: ../NEWS:15103 ../NEWS:17281 ../NEWS:18555 ../NEWS:18782 ../NEWS:18974 +#: ../NEWS:19251 ../NEWS:19521 ../NEWS:19945 ../NEWS:20286 ../NEWS:20512 +#: ../NEWS:20704 ../NEWS:22640 ../NEWS:23272 ../NEWS:23745 ../NEWS:24333 +#: ../NEWS:24838 ../NEWS:25032 ../NEWS:25223 ../NEWS:25677 ../NEWS:26086 +#: ../NEWS:26616 ../NEWS:28452 ../NEWS:29320 ../NEWS:29766 ../NEWS:30049 +#: ../NEWS:30329 ../NEWS:30706 ../NEWS:31183 ../NEWS:31645 ../NEWS:32745 +#: ../NEWS:33226 ../NEWS:33684 ../NEWS:34137 ../NEWS:34540 ../NEWS:34942 +#: ../NEWS:35313 ../NEWS:36863 ../NEWS:37980 ../NEWS:38451 ../NEWS:38867 +#: ../NEWS:41598 ../NEWS:42254 ../NEWS:42476 ../NEWS:42627 ../NEWS:42847 +#: ../NEWS:43094 ../NEWS:43423 ../NEWS:44246 ../NEWS:44566 ../NEWS:46277 +#: ../NEWS:46966 ../NEWS:47076 ../NEWS:47311 ../NEWS:47703 ../NEWS:47839 +#: ../NEWS:48100 ../NEWS:48621 ../NEWS:48705 ../NEWS:48996 ../NEWS:49061 +#: ../NEWS:49233 ../NEWS:49351 ../NEWS:49620 ../NEWS:50075 ../NEWS:50361 +#: ../NEWS:50549 ../NEWS:50862 ../NEWS:52058 ../NEWS:52613 ../NEWS:53275 +#: ../NEWS:53996 ../NEWS:54548 ../NEWS:54608 ../NEWS:54625 ../NEWS:54867 +#: ../NEWS:54972 ../NEWS:55485 ../NEWS:55699 ../NEWS:55834 ../NEWS:57366 +msgid "Build" +msgstr "" + +#: ../NEWS:120 +msgid "" +":gh:`158683`: Fix the :file:`Modules/Setup` entry for the :mod:`!_zstd` " +"module by adding missing source files." +msgstr "" + +#: ../NEWS:124 ../NEWS:724 ../NEWS:1711 ../NEWS:2078 ../NEWS:2413 ../NEWS:2898 +#: ../NEWS:2938 ../NEWS:3466 ../NEWS:4288 ../NEWS:4327 ../NEWS:4456 +#: ../NEWS:4897 ../NEWS:5152 ../NEWS:5446 ../NEWS:6265 ../NEWS:6640 +#: ../NEWS:8115 ../NEWS:8561 ../NEWS:9231 ../NEWS:12196 ../NEWS:12680 +#: ../NEWS:13177 ../NEWS:13687 ../NEWS:14546 ../NEWS:15127 ../NEWS:17368 +#: ../NEWS:18593 ../NEWS:18982 ../NEWS:19268 ../NEWS:19554 ../NEWS:19963 +#: ../NEWS:20308 ../NEWS:20740 ../NEWS:22754 ../NEWS:23760 ../NEWS:24365 +#: ../NEWS:24868 ../NEWS:25263 ../NEWS:25724 ../NEWS:26214 ../NEWS:26671 +#: ../NEWS:28498 ../NEWS:29329 ../NEWS:29788 ../NEWS:30072 ../NEWS:30355 +#: ../NEWS:31207 ../NEWS:31652 ../NEWS:32766 ../NEWS:33236 ../NEWS:33696 +#: ../NEWS:34154 ../NEWS:34545 ../NEWS:35323 ../NEWS:36935 ../NEWS:38003 +#: ../NEWS:38512 ../NEWS:38881 ../NEWS:39126 ../NEWS:41716 ../NEWS:42261 +#: ../NEWS:42644 ../NEWS:42852 ../NEWS:43099 ../NEWS:43438 ../NEWS:43744 +#: ../NEWS:44279 ../NEWS:46389 ../NEWS:46986 ../NEWS:47317 ../NEWS:47728 +#: ../NEWS:48106 ../NEWS:48677 ../NEWS:48926 ../NEWS:49056 ../NEWS:49346 +#: ../NEWS:49587 ../NEWS:50117 ../NEWS:50349 ../NEWS:50852 ../NEWS:52121 +#: ../NEWS:52626 ../NEWS:53260 ../NEWS:54055 ../NEWS:54102 ../NEWS:54559 +#: ../NEWS:55848 ../NEWS:57662 +msgid "Windows" +msgstr "" + +#: ../NEWS:126 +msgid "" +":gh:`157789`: Use compiler option ``-Og`` in case of clang-cl debug builds " +"on Windows to reduce stack usage. Patch by Chris Eibl." +msgstr "" + +#: ../NEWS:131 +msgid "Python 3.14.8 final" +msgstr "" + +#: ../NEWS:133 +msgid "*Release date: 2026-09-30*" +msgstr "" + +#: ../NEWS:138 +msgid "" +":gh:`158446`: Fix a crash or incorrect output that could occur when " +"formatting a :class:`float` or :class:`complex` with a precision close to " +"the platform's ``INT_MAX``. :c:func:`PyOS_double_to_string` now raises :exc:" +"`ValueError` for any precision of that magnitude, regardless of presentation " +"type or value, as the format string parsers already did for precisions above " +"``INT_MAX``." +msgstr "" + +#: ../NEWS:145 +msgid "" +":gh:`156793`: :mod:`asyncio`: :meth:`loop.start_tls() ` and :meth:`loop.create_connection() ` now validate the *server_hostname* argument if an :class:" +"`ssl.SSLContext` is passed with *check_hostname* set to ``True``." +msgstr "" + +#: ../NEWS:151 +msgid "" +":gh:`156793`: :meth:`ssl.SSLContext.wrap_bio` now validates its " +"*server_side*, *server_hostname* and *session* arguments similar to :meth:" +"`ssl.SSLContext.wrap_socket`." +msgstr "" + +#: ../NEWS:155 +msgid "" +"In particular, a context with :attr:`~ssl.SSLContext.check_hostname` enabled " +"and no *server_hostname* passed to :meth:`!wrap_bio` now raises :exc:" +"`ValueError` instead of completing a handshake that verified the certificate " +"chain without verifying the peer's identity, with no indication that the " +"check had been skipped." +msgstr "" + +#: ../NEWS:161 +msgid "" ":gh:`157953`: Update bundled `libexpat `_ to " "version 2.8.5." msgstr "" -#: ../NEWS:13 +#: ../NEWS:164 msgid "" ":gh:`156002`: Bound the amount of data :mod:`zipfile` decompresses per read " "for members compressed with bzip2, LZMA, or Zstandard, matching the existing " @@ -62,7 +435,7 @@ msgid "" "unbounded allocation even when read in small chunks." msgstr "" -#: ../NEWS:18 +#: ../NEWS:169 msgid "" ":gh:`155999`: Fix the :mod:`tarfile` ``tar`` and ``data`` extraction filters " "creating directories outside the destination for members whose name leaves " @@ -71,89 +444,67 @@ msgid "" "created from the name as given." msgstr "" -#: ../NEWS:24 +#: ../NEWS:175 +msgid "" +":gh:`156293`: Fix a crash in :mod:`ssl` when an :attr:`~ssl.SSLContext." +"sni_callback` switches a connection to another :class:`~ssl.SSLContext` and " +"the context that carries the callback is no longer referenced by the " +"application. Servers that keep their ``sni_callback`` context alive (the " +"usual case when it wraps the listening socket or is stored on the server " +"object) were not affected. This addresses :cve:`2026-19445`." +msgstr "" + +#: ../NEWS:183 msgid "" ":gh:`155292`: Change the :mod:`stringprep` module and :mod:`encodings.idna` " -"codec to not consider Unicode codepoint attributes beyond those defined in " -":rfc:`3454`." -msgstr "" - -#: ../NEWS:28 -msgid "" -":gh:`155694`: Fix :cve:`2026-15806` by scoping " -":class:`~urllib.request.HTTPPasswordMgr` credentials to the URL scheme, " -"preventing credentials stored for an HTTPS URL from being used for a matching" -" HTTP URL, while URIs without a scheme continue to match any scheme." -msgstr "" - -#: ../NEWS:35 ../NEWS:773 ../NEWS:1688 ../NEWS:1951 ../NEWS:2042 ../NEWS:2282 -#: ../NEWS:3086 ../NEWS:3274 ../NEWS:3812 ../NEWS:3824 ../NEWS:3862 -#: ../NEWS:3875 ../NEWS:3911 ../NEWS:3984 ../NEWS:4014 ../NEWS:4229 -#: ../NEWS:4324 ../NEWS:4432 ../NEWS:4443 ../NEWS:4472 ../NEWS:4673 -#: ../NEWS:4859 ../NEWS:4877 ../NEWS:4901 ../NEWS:4916 ../NEWS:5194 -#: ../NEWS:5737 ../NEWS:5778 ../NEWS:5840 ../NEWS:6324 ../NEWS:6408 -#: ../NEWS:6790 ../NEWS:6898 ../NEWS:6958 ../NEWS:7366 ../NEWS:7402 -#: ../NEWS:7503 ../NEWS:7793 ../NEWS:7818 ../NEWS:7850 ../NEWS:8209 -#: ../NEWS:8255 ../NEWS:8836 ../NEWS:8856 ../NEWS:8873 ../NEWS:10453 -#: ../NEWS:10477 ../NEWS:10572 ../NEWS:10745 ../NEWS:10817 ../NEWS:10880 -#: ../NEWS:10898 ../NEWS:11065 ../NEWS:11466 ../NEWS:11494 ../NEWS:12108 -#: ../NEWS:12219 ../NEWS:12623 ../NEWS:12665 ../NEWS:12678 ../NEWS:13070 -#: ../NEWS:13627 ../NEWS:14501 ../NEWS:15162 ../NEWS:17640 ../NEWS:17770 -#: ../NEWS:18537 ../NEWS:18578 ../NEWS:18614 ../NEWS:18855 ../NEWS:19164 -#: ../NEWS:19413 ../NEWS:19462 ../NEWS:19527 ../NEWS:19863 ../NEWS:19901 -#: ../NEWS:20211 ../NEWS:20344 ../NEWS:20671 ../NEWS:20707 ../NEWS:20783 -#: ../NEWS:20828 ../NEWS:21021 ../NEWS:21039 ../NEWS:21056 ../NEWS:21181 -#: ../NEWS:21304 ../NEWS:21319 ../NEWS:22913 ../NEWS:23058 ../NEWS:23103 -#: ../NEWS:23673 ../NEWS:23749 ../NEWS:23774 ../NEWS:24286 ../NEWS:24369 -#: ../NEWS:24421 ../NEWS:24446 ../NEWS:24745 ../NEWS:24836 ../NEWS:24863 -#: ../NEWS:25142 ../NEWS:25192 ../NEWS:25216 ../NEWS:25281 ../NEWS:25594 -#: ../NEWS:25652 ../NEWS:26082 ../NEWS:26635 ../NEWS:26669 ../NEWS:26681 -#: ../NEWS:26740 ../NEWS:26760 ../NEWS:26792 ../NEWS:26922 ../NEWS:26973 -#: ../NEWS:26993 ../NEWS:27092 ../NEWS:28621 ../NEWS:28658 ../NEWS:28749 -#: ../NEWS:29303 ../NEWS:29324 ../NEWS:29719 ../NEWS:29764 ../NEWS:29789 -#: ../NEWS:29964 ../NEWS:30017 ../NEWS:30227 ../NEWS:30269 ../NEWS:30302 -#: ../NEWS:30607 ../NEWS:30659 ../NEWS:30704 ../NEWS:30715 ../NEWS:31202 -#: ../NEWS:31281 ../NEWS:31568 ../NEWS:31590 ../NEWS:31618 ../NEWS:31637 -#: ../NEWS:31650 ../NEWS:31666 ../NEWS:31680 ../NEWS:31692 ../NEWS:31710 -#: ../NEWS:31751 ../NEWS:31770 ../NEWS:31819 ../NEWS:31849 ../NEWS:31963 -#: ../NEWS:31983 ../NEWS:32807 ../NEWS:33169 ../NEWS:33613 ../NEWS:34123 -#: ../NEWS:34464 ../NEWS:34831 ../NEWS:35247 ../NEWS:37166 ../NEWS:37927 -#: ../NEWS:38465 ../NEWS:38771 ../NEWS:39032 ../NEWS:42012 ../NEWS:42124 -#: ../NEWS:42337 ../NEWS:42528 ../NEWS:42738 ../NEWS:42982 ../NEWS:43301 -#: ../NEWS:43605 ../NEWS:44205 ../NEWS:44494 ../NEWS:46586 ../NEWS:46923 -#: ../NEWS:47240 ../NEWS:47689 ../NEWS:48178 ../NEWS:48520 ../NEWS:48544 -#: ../NEWS:48868 ../NEWS:48898 ../NEWS:48962 ../NEWS:49076 ../NEWS:49200 -#: ../NEWS:49468 ../NEWS:49977 ../NEWS:50224 ../NEWS:50438 ../NEWS:50730 -#: ../NEWS:52036 ../NEWS:52097 ../NEWS:52498 ../NEWS:53171 ../NEWS:53214 -#: ../NEWS:53922 ../NEWS:53940 ../NEWS:54463 ../NEWS:54498 ../NEWS:54526 -#: ../NEWS:54618 ../NEWS:54705 ../NEWS:54810 ../NEWS:54853 ../NEWS:55129 -#: ../NEWS:55364 ../NEWS:55550 ../NEWS:55689 -msgid "Core and Builtins" +"codec to not consider Unicode codepoint attributes beyond those defined in :" +"rfc:`3454`." +msgstr "" + +#: ../NEWS:187 +msgid "" +":gh:`155694`: Fix :cve:`2026-15806` by scoping :class:`~urllib.request." +"HTTPPasswordMgr` credentials to the URL scheme, preventing credentials " +"stored for an HTTPS URL from being used for a matching HTTP URL, while URIs " +"without a scheme continue to match any scheme." msgstr "" -#: ../NEWS:37 +#: ../NEWS:196 +msgid "" +":gh:`158364`: Fix crash when :func:`sys._current_frames` or :func:`sys." +"_current_exceptions` is called while another interpreter is running." +msgstr "" + +#: ../NEWS:200 msgid "" -":gh:`158254`: Reverse iterators over a :class:`dict` and its views now raise " -":exc:`RuntimeError` if the dictionary's keys change during iteration, like " -"forward iterators, instead of yielding entries for the new keys." +":gh:`158254`: Reverse iterators over a :class:`dict` and its views now " +"raise :exc:`RuntimeError` if the dictionary's keys change during iteration, " +"like forward iterators, instead of yielding entries for the new keys." msgstr "" -#: ../NEWS:41 +#: ../NEWS:204 +msgid "" +":gh:`157838`: Merge biased reference counts on behalf of threads that are " +"detached instead of waiting for them to attach again, in the free-threaded " +"build." +msgstr "" + +#: ../NEWS:208 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:45 +#: ../NEWS:212 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." +":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:50 +#: ../NEWS:217 msgid "" ":gh:`157377`: Fix :func:`gc.get_count` on the free-threaded build resetting " "the thread-local allocation counter that schedules automatic garbage " @@ -161,492 +512,450 @@ msgid "" "garbage from ever being collected." msgstr "" -#: ../NEWS:55 +#: ../NEWS:222 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:59 +#: ../NEWS:226 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:62 +#: ../NEWS:229 msgid "" -":gh:`155525`: Fix quadratic-time tokenization of modules containing many " -"f-strings or t-strings." +":gh:`155525`: Fix quadratic-time tokenization of modules containing many f-" +"strings or t-strings." msgstr "" -#: ../NEWS:65 +#: ../NEWS:232 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'``." +":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:68 +#: ../NEWS:235 msgid "" ":gh:`156371`: Fix missing ``PyRefTracer_DESTROY`` events for trashcan " "deferred objects. Patch by Donghee Na." msgstr "" -#: ../NEWS:71 +#: ../NEWS:238 msgid "" ":gh:`156114`: Fix a crash in the perf trampoline when a code object has a " "name or filename that cannot be encoded to UTF-8. Patched by Shamil Abdulaev." msgstr "" -#: ../NEWS:75 +#: ../NEWS:242 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." +"characters that cannot be encoded to UTF-8 (such as lone surrogates) while :" +"option:`-X importtime <-X>` is enabled." msgstr "" -#: ../NEWS:79 +#: ../NEWS:246 msgid "" -":gh:`155752`: Fix a crash when a :class:`types.GenericAlias` argument gains a" -" ``__typing_subst__`` hook after the alias parameters have been cached." +":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:82 +#: ../NEWS:249 msgid "" ":gh:`155504`: Fix a crash when thread state creation fails before the thread " "state is fully initialized." msgstr "" -#: ../NEWS:85 +#: ../NEWS:252 msgid "" -":gh:`155526`: Fix spurious :exc:`OverflowError` for ``abs(nanj)`` in case " -":c:data:`errno` was previously set to :c:macro:`!ERANGE` by some library " -"call. Patch by Sergey B Kirpichev." +":gh:`155526`: Fix spurious :exc:`OverflowError` for ``abs(nanj)`` in case :c:" +"data:`errno` was previously set to :c:macro:`!ERANGE` by some library call. " +"Patch by Sergey B Kirpichev." msgstr "" -#: ../NEWS:89 +#: ../NEWS:256 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:92 +#: ../NEWS:259 msgid "" -":gh:`155515`: Track the internal HAMT iterators, which back iteration over a " -":class:`contextvars.Context`, with the garbage collector. A reference cycle " -"running through such an iterator was never collected, leaking the whole " -"context it iterated over." +":gh:`155515`: Track the internal HAMT iterators, which back iteration over " +"a :class:`contextvars.Context`, with the garbage collector. A reference " +"cycle running through such an iterator was never collected, leaking the " +"whole context it iterated over." msgstr "" -#: ../NEWS:97 +#: ../NEWS:264 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`." +":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:101 +#: ../NEWS:268 msgid "" ":gh:`154902`: Fix a crash when ``__conditional_annotations__`` is rebound to " "a non-set object." msgstr "" -#: ../NEWS:104 +#: ../NEWS:271 msgid "" -":gh:`151464`: Exclude invalid token ``<>`` from :mod:`tokenize` output. " -":exc:`SyntaxError` for ``<>`` now suggests ``!=``." +":gh:`151464`: Exclude invalid token ``<>`` from :mod:`tokenize` output. :exc:" +"`SyntaxError` for ``<>`` now suggests ``!=``." msgstr "" -#: ../NEWS:107 +#: ../NEWS:274 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." +"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:116 +#: ../NEWS:283 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 " +":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:120 +#: ../NEWS:287 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:`tuple` or :class:`frozenset`, restoring an optimization previously " -"done by the AST optimizer that was lost when constant folding moved to the " -"CFG." +"of a :keyword:`for` loop or ``in``/``not in`` test into a constant :class:" +"`tuple` or :class:`frozenset`, restoring an optimization previously done by " +"the AST optimizer that was lost when constant folding moved to the CFG." msgstr "" -#: ../NEWS:126 +#: ../NEWS:293 msgid "" ":gh:`146096`: Fixed segmentation fault when called repr for " "BaseExceptionGroup with empty or 1-size tuple args." msgstr "" -#: ../NEWS:129 +#: ../NEWS:296 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 name of " -"a function, a class, an imported module or a caught exception) is " +":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 " +"name of a function, a class, an imported module or a caught exception) is " "``\"None\"``, ``\"True\"`` or ``\"False\"``." msgstr "" -#: ../NEWS:135 ../NEWS:909 ../NEWS:1757 ../NEWS:1959 ../NEWS:2105 ../NEWS:2444 -#: ../NEWS:2823 ../NEWS:3246 ../NEWS:3280 ../NEWS:3370 ../NEWS:3818 -#: ../NEWS:3856 ../NEWS:3869 ../NEWS:3903 ../NEWS:3978 ../NEWS:4004 -#: ../NEWS:4142 ../NEWS:4175 ../NEWS:4287 ../NEWS:4389 ../NEWS:4438 -#: ../NEWS:4466 ../NEWS:4568 ../NEWS:4756 ../NEWS:4870 ../NEWS:4895 -#: ../NEWS:4910 ../NEWS:5029 ../NEWS:5321 ../NEWS:5772 ../NEWS:5834 -#: ../NEWS:5982 ../NEWS:6141 ../NEWS:6402 ../NEWS:6520 ../NEWS:6893 -#: ../NEWS:6951 ../NEWS:7103 ../NEWS:7396 ../NEWS:7496 ../NEWS:7510 -#: ../NEWS:7616 ../NEWS:7811 ../NEWS:7843 ../NEWS:7982 ../NEWS:8244 -#: ../NEWS:8441 ../NEWS:8849 ../NEWS:8866 ../NEWS:8969 ../NEWS:9227 -#: ../NEWS:10471 ../NEWS:10566 ../NEWS:10739 ../NEWS:10810 ../NEWS:10873 -#: ../NEWS:10891 ../NEWS:11059 ../NEWS:11487 ../NEWS:11665 ../NEWS:12210 -#: ../NEWS:12225 ../NEWS:12658 ../NEWS:12671 ../NEWS:12694 ../NEWS:13180 -#: ../NEWS:13786 ../NEWS:14673 ../NEWS:15798 ../NEWS:17634 ../NEWS:17760 -#: ../NEWS:17856 ../NEWS:18571 ../NEWS:18620 ../NEWS:18935 ../NEWS:19225 -#: ../NEWS:19456 ../NEWS:19522 ../NEWS:19534 ../NEWS:19892 ../NEWS:19938 -#: ../NEWS:20369 ../NEWS:20699 ../NEWS:20778 ../NEWS:20821 ../NEWS:21015 -#: ../NEWS:21032 ../NEWS:21045 ../NEWS:21171 ../NEWS:21299 ../NEWS:21314 -#: ../NEWS:21341 ../NEWS:23049 ../NEWS:23121 ../NEWS:23742 ../NEWS:23768 -#: ../NEWS:23804 ../NEWS:24364 ../NEWS:24414 ../NEWS:24437 ../NEWS:24461 -#: ../NEWS:24830 ../NEWS:24853 ../NEWS:24870 ../NEWS:25186 ../NEWS:25211 -#: ../NEWS:25275 ../NEWS:25307 ../NEWS:25646 ../NEWS:25726 ../NEWS:26191 -#: ../NEWS:26660 ../NEWS:26674 ../NEWS:26733 ../NEWS:26752 ../NEWS:26786 -#: ../NEWS:26915 ../NEWS:26965 ../NEWS:26986 ../NEWS:27085 ../NEWS:27209 -#: ../NEWS:28650 ../NEWS:28743 ../NEWS:28763 ../NEWS:29318 ../NEWS:29401 -#: ../NEWS:29751 ../NEWS:29780 ../NEWS:29796 ../NEWS:30010 ../NEWS:30026 -#: ../NEWS:30262 ../NEWS:30276 ../NEWS:30312 ../NEWS:30653 ../NEWS:30699 -#: ../NEWS:30710 ../NEWS:30727 ../NEWS:31274 ../NEWS:31288 ../NEWS:31584 -#: ../NEWS:31600 ../NEWS:31625 ../NEWS:31643 ../NEWS:31660 ../NEWS:31675 -#: ../NEWS:31686 ../NEWS:31704 ../NEWS:31746 ../NEWS:31763 ../NEWS:31814 -#: ../NEWS:31843 ../NEWS:31956 ../NEWS:31975 ../NEWS:31992 ../NEWS:32865 -#: ../NEWS:33253 ../NEWS:33740 ../NEWS:34200 ../NEWS:34562 ../NEWS:34908 -#: ../NEWS:35564 ../NEWS:37330 ../NEWS:37997 ../NEWS:38540 ../NEWS:38835 -#: ../NEWS:39586 ../NEWS:41994 ../NEWS:42027 ../NEWS:42155 ../NEWS:42363 -#: ../NEWS:42554 ../NEWS:42759 ../NEWS:43057 ../NEWS:43378 ../NEWS:43703 -#: ../NEWS:44293 ../NEWS:44953 ../NEWS:46623 ../NEWS:46969 ../NEWS:47335 -#: ../NEWS:47659 ../NEWS:47762 ../NEWS:48225 ../NEWS:48612 ../NEWS:48915 -#: ../NEWS:48997 ../NEWS:49100 ../NEWS:49270 ../NEWS:49605 ../NEWS:50023 -#: ../NEWS:50241 ../NEWS:50478 ../NEWS:51015 ../NEWS:52042 ../NEWS:52060 -#: ../NEWS:52148 ../NEWS:52629 ../NEWS:53344 ../NEWS:54008 ../NEWS:54446 -#: ../NEWS:54473 ../NEWS:54511 ../NEWS:54531 ../NEWS:54638 ../NEWS:54732 -#: ../NEWS:54828 ../NEWS:54903 ../NEWS:55161 ../NEWS:55384 ../NEWS:55557 -#: ../NEWS:55915 -msgid "Library" -msgstr "" - -#: ../NEWS:137 +#: ../NEWS:304 msgid "" -":gh:`158169`: Fix :attr:`zlib.Decompress.unconsumed_tail` duplicating " -":attr:`~zlib.Decompress.unused_data` after end of stream when *max_length* " -"was used." +":gh:`158169`: Fix :attr:`zlib.Decompress.unconsumed_tail` duplicating :attr:" +"`~zlib.Decompress.unused_data` after end of stream when *max_length* was " +"used." msgstr "" -#: ../NEWS:141 +#: ../NEWS:308 msgid "" ":gh:`157788`: Fix ``python -m asyncio ps`` failing on a process that has a " "task with a name longer than 255 characters." msgstr "" -#: ../NEWS:144 +#: ../NEWS:311 msgid "" ":gh:`157660`: Fix ``_remote_debugging`` reporting errors or incorrect line " "numbers in free-threaded builds when a thread-local bytecode array grows or " "gains entries after being cached." msgstr "" -#: ../NEWS:148 +#: ../NEWS:315 msgid "" ":gh:`157672`: Fix :mod:`tkinter` on macOS: creating a :class:`~tkinter.Tk` " -"instance no longer replaces the Python handlers of SIGINT, SIGHUP and SIGTERM" -" with Tk's handler which exits the process, so Ctrl-C raises " -":exc:`KeyboardInterrupt` again." +"instance no longer replaces the Python handlers of SIGINT, SIGHUP and " +"SIGTERM with Tk's handler which exits the process, so Ctrl-C raises :exc:" +"`KeyboardInterrupt` again." msgstr "" -#: ../NEWS:153 +#: ../NEWS:320 msgid "" ":gh:`157639`: Fix a crash in :mod:`!cProfile` when an external timer re-" "enters the profiler. Profiling events raised while the external timer runs " "are now ignored." msgstr "" -#: ../NEWS:157 +#: ../NEWS:324 msgid "" ":gh:`69919`: :meth:`code.InteractiveInterpreter.runsource` and the REPL now " -"report any exception raised by compiling the source, such as " -":exc:`MemoryError` or :exc:`RecursionError` for too deeply nested source, " -"instead of propagating it or printing a traceback of the REPL internals." +"report any exception raised by compiling the source, such as :exc:" +"`MemoryError` or :exc:`RecursionError` for too deeply nested source, instead " +"of propagating it or printing a traceback of the REPL internals." msgstr "" -#: ../NEWS:162 +#: ../NEWS:329 msgid "" ":gh:`157451`: Fix :mod:`gettext` plural form selection when the ``Plural-" "Forms`` expression combines the unary ``!`` operator with a binary operator, " "for example ``!n + 1`` or ``2 * !n``. The latter raised :exc:`SyntaxError`." msgstr "" -#: ../NEWS:167 +#: ../NEWS:334 msgid "" -":gh:`157335`: Fix out-of-bounds write in ``mmap.mmap.__setitem__`` that could" -" occur when converting the index or the assigned value (via " -":meth:`~object.__index__` for a single item, or via the buffer protocol for a" -" slice) resized or closed the mmap object during the assignment." +":gh:`157335`: Fix out-of-bounds write in ``mmap.mmap.__setitem__`` that " +"could occur when converting the index or the assigned value (via :meth:" +"`~object.__index__` for a single item, or via the buffer protocol for a " +"slice) resized or closed the mmap object during the assignment." msgstr "" -#: ../NEWS:172 +#: ../NEWS:339 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." +":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:177 +#: ../NEWS:344 msgid "" -":gh:`128509`: :func:`marshal.load` and :func:`marshal.loads` can now get " -"1-byte string singletons. Patch by Victor Stinner." +":gh:`128509`: :func:`marshal.load` and :func:`marshal.loads` can now get 1-" +"byte string singletons. Patch by Victor Stinner." msgstr "" -#: ../NEWS:180 +#: ../NEWS:347 +msgid "" +":gh:`157325`: Fix an out-of-bounds read in the ``hz`` incremental decoder " +"when the input ends with ``~``." +msgstr "" + +#: ../NEWS:350 msgid "" ":gh:`157213`: Fix :func:`asyncio.gather` leaving stale await-graph edges on " "children that outlive it." msgstr "" -#: ../NEWS:183 +#: ../NEWS:353 msgid "" ":gh:`156002`: :mod:`zipfile` again reads members through a third-party " -"decompressor installed by monkey-patching the private ``_get_decompressor()``" -" to return an object that only implements old BZ2Decompressor API from Python" -" 3.3. Note that decompressors without ``needs_input`` and two-argument " -"``decompress()`` are vulnerable to :cve:`2026-15310`." +"decompressor installed by monkey-patching the private " +"``_get_decompressor()`` to return an object that only implements old " +"BZ2Decompressor API from Python 3.3. Note that decompressors without " +"``needs_input`` and two-argument ``decompress()`` are vulnerable to :cve:" +"`2026-15310`." msgstr "" -#: ../NEWS:190 +#: ../NEWS:360 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:193 +#: ../NEWS:363 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 `_." +":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:200 +#: ../NEWS:370 msgid "" ":gh:`157058`: :func:`asyncio.wait_for` with a non-positive timeout now " "records the waiter in the call graph." msgstr "" -#: ../NEWS:203 +#: ../NEWS:373 msgid "" ":gh:`156933`: Fix incorrect integer return values from :mod:`ctypes` " "callbacks on some platforms, such as s390x." msgstr "" -#: ../NEWS:206 +#: ../NEWS:376 msgid "" -":gh:`157048`: Preserve the position and contents of :class:`io.BytesIO` when " -":meth:`!BytesIO.__init__` fails because a buffer is exported." +":gh:`157048`: Preserve the position and contents of :class:`io.BytesIO` " +"when :meth:`!BytesIO.__init__` fails because a buffer is exported." msgstr "" -#: ../NEWS:209 +#: ../NEWS:379 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() " -"`." +":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:214 +#: ../NEWS:384 msgid "" ":gh:`156988`: :func:`asyncio.print_call_graph` no longer truncates the call " "stack at a synchronous generator." msgstr "" -#: ../NEWS:217 +#: ../NEWS:387 msgid "" ":gh:`156970`: Set the docstring of :attr:`unittest.mock.Mock.return_value`." msgstr "" -#: ../NEWS:219 +#: ../NEWS:389 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." +"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:223 +#: ../NEWS:393 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:228 +#: ../NEWS:398 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`." +":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:233 +#: ../NEWS:403 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 " "declared in the document was applied to the already decoded text, which " -"produced mojibake. It is now ignored, as when parsing with " -":meth:`!XMLParser.feed` or :func:`~xml.etree.ElementTree.fromstring`." +"produced mojibake. It is now ignored, as when parsing with :meth:`!XMLParser." +"feed` or :func:`~xml.etree.ElementTree.fromstring`." msgstr "" -#: ../NEWS:239 +#: ../NEWS:409 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`." +":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:245 +#: ../NEWS:415 msgid "" -":gh:`127057`: Fix :class:`asyncio.ProactorEventLoop` UDP transports so that a" -" :exc:`ConnectionResetError` raised by ``WSARecvFrom`` no longer stops the " +":gh:`127057`: Fix :class:`asyncio.ProactorEventLoop` UDP transports so that " +"a :exc:`ConnectionResetError` raised by ``WSARecvFrom`` no longer stops the " "read loop." msgstr "" -#: ../NEWS:249 +#: ../NEWS:419 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 space." -" Previously they could be lost in :func:`~xml.etree.ElementTree.indent`, " -":func:`~xml.etree.ElementTree.canonicalize` with ``strip_text=True``, and " -"when parsing with the ``whitespace-in-element-content`` feature turned off." +":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 " +"space. Previously they could be lost in :func:`~xml.etree.ElementTree." +"indent`, :func:`~xml.etree.ElementTree.canonicalize` with " +"``strip_text=True``, and when parsing with the ``whitespace-in-element-" +"content`` feature turned off." msgstr "" -#: ../NEWS:257 +#: ../NEWS:427 msgid "" ":gh:`156512`: Fix :mod:`asyncio` losing a connection twice when " "``resume_writing()`` closes the transport." msgstr "" -#: ../NEWS:260 +#: ../NEWS:430 msgid "" ":gh:`156523`: Fix :func:`asyncio.as_completed` not recording the awaiting " "task in the call graph." msgstr "" -#: ../NEWS:263 +#: ../NEWS:433 msgid "" -":gh:`156476`: The pure Python implementation of :meth:`queue.SimpleQueue.get`" -" now ignores *timeout* when *block* is false, matching the documented " +":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:267 +#: ../NEWS:437 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 " -"closure is now applied to the members of the set, so that ``[^bc]`` no longer" -" matches ``b'B'``." +"closure is now applied to the members of the set, so that ``[^bc]`` no " +"longer matches ``b'B'``." msgstr "" -#: ../NEWS:272 +#: ../NEWS:442 msgid "" -":gh:`156408`: Fix :func:`asyncio.print_call_graph` raising " -":exc:`AttributeError` when called on a task that has already finished." +":gh:`156408`: Fix :func:`asyncio.print_call_graph` raising :exc:" +"`AttributeError` when called on a task that has already finished." msgstr "" -#: ../NEWS:275 +#: ../NEWS:445 msgid "" ":gh:`156353`: Fix :mod:`configparser` parsing when using whitespace in " "*delimiters*." msgstr "" -#: ../NEWS:278 +#: ../NEWS:448 msgid "" ":gh:`156166`: :mod:`ssl`: A failed assignment or deletion of the " "``_msg_callback`` attribute of :class:`ssl.SSLContext` no longer removes the " -"current callback. Deleting it now raises :exc:`AttributeError` instead of " -":exc:`TypeError`." +"current callback. Deleting it now raises :exc:`AttributeError` instead of :" +"exc:`TypeError`." msgstr "" -#: ../NEWS:283 +#: ../NEWS:453 msgid "" ":gh:`156173`: Calling :meth:`zlib.Decompress.flush` on invalid compressed " "data now raises :exc:`zlib.error` instead of being silently ignored." msgstr "" -#: ../NEWS:286 +#: ../NEWS:456 msgid "" -":gh:`152817`: :mod:`sqlite3`: Disallow removing the ``row_factory`` attribute" -" of a cursor to prevent a crash on a query." +":gh:`152817`: :mod:`sqlite3`: Disallow removing the ``row_factory`` " +"attribute of a cursor to prevent a crash on a query." msgstr "" -#: ../NEWS:289 +#: ../NEWS:459 msgid "" -":gh:`156124`: Fix a crash in the free-threaded build when deleting the " -":attr:`!contents` attribute of a :mod:`ctypes` pointer." +":gh:`156124`: Fix a crash in the free-threaded build when deleting the :attr:" +"`!contents` attribute of a :mod:`ctypes` pointer." msgstr "" -#: ../NEWS:292 +#: ../NEWS:462 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 shared cache, as is the case on iOS 13. The runtime is now loaded by " -"name, which dyld resolves against the cache directly." +":gh:`156112`: :mod:`!_ios_support` no longer fails to import when :func:" +"`ctypes.util.find_library` cannot resolve the ObjC runtime through the dyld " +"shared cache, as is the case on iOS 13. The runtime is now loaded by name, " +"which dyld resolves against the cache directly." msgstr "" -#: ../NEWS:297 +#: ../NEWS:467 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:301 +#: ../NEWS:471 msgid "" -":gh:`156100`: Fix crashes in :class:`sqlite3.Connection` when deleting the " -":attr:`~sqlite3.Connection.autocommit` attribute or setting it to an integer " +":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:306 +#: ../NEWS:476 msgid "" -":gh:`156099`: Fix a crash when deleting the ``keylog_filename`` attribute of " -":class:`ssl.SSLContext`. It now raises :exc:`AttributeError`." +":gh:`156099`: Fix a crash when deleting the ``keylog_filename`` attribute " +"of :class:`ssl.SSLContext`. It now raises :exc:`AttributeError`." msgstr "" -#: ../NEWS:309 +#: ../NEWS:479 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:312 +#: ../NEWS:482 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:316 +#: ../NEWS:486 msgid "" ":gh:`155941`: Fix :func:`asyncio.start_server` when a plain-function " "*client_connected_cb* raises: the error is now reported like the coroutine " @@ -654,79 +963,79 @@ msgid "" "forever (which also made :meth:`asyncio.Server.wait_closed` hang)." msgstr "" -#: ../NEWS:321 +#: ../NEWS:491 msgid "" -":gh:`155952`: Fix the signatures of :meth:`sqlite3.Connection.execute`, " -":func:`warnings.warn` and :func:`locale.setlocale` which rendered " +":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:325 +#: ../NEWS:495 msgid "" ":gh:`155888`: Fix :meth:`asyncio.WriteTransport.writelines` hanging the " "transport when the last data chunk is empty." msgstr "" -#: ../NEWS:328 +#: ../NEWS:498 msgid "" -":gh:`155775`: Fix a regression in :mod:`imaplib` introduced in the fix for " -":gh:`63121`: refreshing the capabilities after a successful " -":meth:`~imaplib.IMAP4.login` or :meth:`~imaplib.IMAP4.authenticate` consumed " -"the ``CAPABILITY`` response, so it could no longer be read with " -":meth:`~imaplib.IMAP4.response`." +":gh:`155775`: Fix a regression in :mod:`imaplib` introduced in the fix for :" +"gh:`63121`: refreshing the capabilities after a successful :meth:`~imaplib." +"IMAP4.login` or :meth:`~imaplib.IMAP4.authenticate` consumed the " +"``CAPABILITY`` response, so it could no longer be read with :meth:`~imaplib." +"IMAP4.response`." msgstr "" -#: ../NEWS:334 +#: ../NEWS:504 msgid "" ":gh:`113318`: Fix crashes when deleting an attribute whose setter is " -"generated by Argument Clinic and is not prepared for deletion, among them " -":attr:`frame.f_trace_opcodes` and the ``context``, ``owner`` and ``session`` " -"attributes of ``_ssl._SSLSocket``. Deleting such attribute now raises " -":exc:`AttributeError`." +"generated by Argument Clinic and is not prepared for deletion, among them :" +"attr:`frame.f_trace_opcodes` and the ``context``, ``owner`` and ``session`` " +"attributes of ``_ssl._SSLSocket``. Deleting such attribute now raises :exc:" +"`AttributeError`." msgstr "" -#: ../NEWS:340 +#: ../NEWS:510 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:344 +#: ../NEWS:514 msgid "" ":gh:`155519`: Avoid a data-race in free-threaded builds when reading and " "writing context variables from different threads." msgstr "" -#: ../NEWS:347 +#: ../NEWS:517 msgid "" -":gh:`155336`: Fix error handling in :func:`socket.gethostbyaddr` and " -":func:`socket.gethostbyname_ex` when hostname resolution fails." +":gh:`155336`: Fix error handling in :func:`socket.gethostbyaddr` and :func:" +"`socket.gethostbyname_ex` when hostname resolution fails." msgstr "" -#: ../NEWS:350 +#: ../NEWS:520 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 " +":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 " "drive (e.g. ``spam:eggs``) no longer discards the resolved part. A path " "relative to another drive is now resolved against the root directory of that " "drive." msgstr "" -#: ../NEWS:356 +#: ../NEWS:526 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:359 +#: ../NEWS:529 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:363 +#: ../NEWS:533 msgid "" ":gh:`155319`: :func:`warnings.warn_explicit` now displays the source line " "taken from the loader of the module whose globals are passed as " @@ -734,124 +1043,121 @@ msgid "" "out of the range of the module source." msgstr "" -#: ../NEWS:368 +#: ../NEWS:538 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." +":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:372 +#: ../NEWS:542 msgid "" -":gh:`69370`: :program:`python -m inspect --details` no longer fails with " -":exc:`UnicodeEncodeError` if the path of the module contains characters " +":gh:`69370`: :program:`python -m inspect --details` no longer fails with :" +"exc:`UnicodeEncodeError` if the path of the module contains characters " "unencodable in the encoding of :data:`sys.stdout`. Such characters are now " "escaped with backslashes." msgstr "" -#: ../NEWS:377 +#: ../NEWS:547 msgid "" ":gh:`69371`: Fix :mod:`pydoc` for modules whose path contains undecodable " -"bytes. :func:`!pydoc.writedoc` and the pydoc HTTP server no longer fail with " -":exc:`UnicodeEncodeError`: the file URL is now percent-encoded using the " -"filesystem encoding, and characters unencodable in the generated HTML page " -"are escaped with backslashes." +"bytes. :func:`!pydoc.writedoc` and the pydoc HTTP server no longer fail " +"with :exc:`UnicodeEncodeError`: the file URL is now percent-encoded using " +"the filesystem encoding, and characters unencodable in the generated HTML " +"page are escaped with backslashes." msgstr "" -#: ../NEWS:383 +#: ../NEWS:553 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:386 +#: ../NEWS:556 msgid "" ":gh:`154871`: Fixed a crash in :meth:`asyncio.Task.get_context` when called " "on an uninitialized task." msgstr "" -#: ../NEWS:389 +#: ../NEWS:559 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." +":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:393 +#: ../NEWS:563 msgid "" -":gh:`135683`: :class:`logging.FileHandler` and " -":class:`logging.handlers.WatchedFileHandler` now honor " -":data:`logging.raiseExceptions` for errors that occur while opening the file," -" like for other errors during logging." +":gh:`135683`: :class:`logging.FileHandler` and :class:`logging.handlers." +"WatchedFileHandler` now honor :data:`logging.raiseExceptions` for errors " +"that occur while opening the file, like for other errors during logging." msgstr "" -#: ../NEWS:398 +#: ../NEWS:568 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:402 +#: ../NEWS:572 msgid "" -":gh:`153005`: :meth:`!concurrent.interpreters.Queue.get` and " -":meth:`!concurrent.interpreters.Queue.put` now compute their ``timeout`` " -"deadline from :func:`time.monotonic` instead of the wall clock, so adjusting " -"the system clock during the call no longer makes them over- or under-wait." +":gh:`153005`: :meth:`!concurrent.interpreters.Queue.get` and :meth:`!" +"concurrent.interpreters.Queue.put` now compute their ``timeout`` deadline " +"from :func:`time.monotonic` instead of the wall clock, so adjusting the " +"system clock during the call no longer makes them over- or under-wait." msgstr "" -#: ../NEWS:408 +#: ../NEWS:578 msgid "" ":gh:`153772`: :func:`isinstance` checks against :mod:`collections.abc` " -"classes such as :class:`~collections.abc.Mapping` no longer raise " -":exc:`AttributeError` when the instance has no ``__class__``. The abstract " -"base class machinery now falls back to the object's type in that case, " -"matching the behaviour of the built-in :func:`isinstance`." +"classes such as :class:`~collections.abc.Mapping` no longer raise :exc:" +"`AttributeError` when the instance has no ``__class__``. The abstract base " +"class machinery now falls back to the object's type in that case, matching " +"the behaviour of the built-in :func:`isinstance`." msgstr "" -#: ../NEWS:414 +#: ../NEWS:584 msgid "" ":gh:`81241`: Fix :exc:`OSError` when importing :mod:`ctypes` from a " "statically linked interpreter." msgstr "" -#: ../NEWS:417 +#: ../NEWS:587 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." +":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:421 +#: ../NEWS:591 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." +":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:426 +#: ../NEWS:596 msgid "" -":gh:`152907`: Restore cooked-mode terminal output flags around " -":c:data:`PyOS_InputHook` callbacks in the new :term:`REPL` (:mod:`!_pyrepl`)," -" so that output written by an input hook (for example a GUI toolkit event " -"loop) is no longer emitted with ``OPOST`` disabled and keeps its carriage " -"returns." +":gh:`152907`: Restore cooked-mode terminal output flags around :c:data:" +"`PyOS_InputHook` callbacks in the new :term:`REPL` (:mod:`!_pyrepl`), so " +"that output written by an input hook (for example a GUI toolkit event loop) " +"is no longer emitted with ``OPOST`` disabled and keeps its carriage returns." msgstr "" -#: ../NEWS:432 +#: ../NEWS:602 msgid "" ":gh:`153319`: The :mod:`turtledemo` viewer now reads each demo script as " "UTF-8 instead of the locale encoding." msgstr "" -#: ../NEWS:435 +#: ../NEWS:605 msgid "" ":gh:`153133`: Fix a socket leak in :meth:`asyncio.loop.create_connection` " "when the transport cannot be created." msgstr "" -#: ../NEWS:438 +#: ../NEWS:608 msgid "" ":gh:`152068`: Fixes a bug when a line was split (particularly on macOS " "Terminal.app) in the middle of a colorized keyword, causing the ANSI Color " @@ -859,80 +1165,80 @@ msgid "" "colored when it shouldn't" msgstr "" -#: ../NEWS:443 +#: ../NEWS:613 msgid "" -":gh:`152204`: Fix the pure-Python implementations of " -":meth:`datetime.date.fromisoformat`, :meth:`datetime.time.fromisoformat` and " -":meth:`datetime.datetime.fromisoformat` silently accepting some malformed ISO" -" 8601 strings, such as non-ASCII digits or a sign in a fixed-width field (for" -" example ``'2020+12'`` or ``'20201212T0102٣٤'``). Each field is now required " -"to be exactly *N* ASCII digits, matching the C implementation." +":gh:`152204`: Fix the pure-Python implementations of :meth:`datetime.date." +"fromisoformat`, :meth:`datetime.time.fromisoformat` and :meth:`datetime." +"datetime.fromisoformat` silently accepting some malformed ISO 8601 strings, " +"such as non-ASCII digits or a sign in a fixed-width field (for example " +"``'2020+12'`` or ``'20201212T0102٣٤'``). Each field is now required to be " +"exactly *N* ASCII digits, matching the C implementation." msgstr "" -#: ../NEWS:451 +#: ../NEWS:621 msgid "" -":gh:`151955`: Allow more types to be used in the ``bound`` argument to " -":class:`typing.ParamSpec`." +":gh:`151955`: Allow more types to be used in the ``bound`` argument to :" +"class:`typing.ParamSpec`." msgstr "" -#: ../NEWS:454 +#: ../NEWS:624 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`." +"payload using the output charset, so ``str(m)`` no longer raises :exc:" +"`UnicodeEncodeError`." msgstr "" -#: ../NEWS:459 +#: ../NEWS:629 msgid "" ":gh:`145856`: Fix :func:`plistlib.dumps` and :func:`plistlib.dump` so that " -"``skipkeys=True`` together with ``sort_keys=True`` correctly drops non-string" -" keys when the dictionary contains a mix of string and non-string keys. " -"Previously the sort ran before the filter and raised :exc:`TypeError`." +"``skipkeys=True`` together with ``sort_keys=True`` correctly drops non-" +"string keys when the dictionary contains a mix of string and non-string " +"keys. Previously the sort ran before the filter and raised :exc:`TypeError`." msgstr "" -#: ../NEWS:465 +#: ../NEWS:635 msgid "" ":gh:`140729`: Fix a pickling error in the ``cProfile`` module when profiling " "a script that uses :class:`multiprocessing.Process` with the ``spawn`` and " "``forkserver`` start methods." msgstr "" -#: ../NEWS:469 +#: ../NEWS:639 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:472 +#: ../NEWS:642 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 " -"skips the seek call when no size is given so the buffer can be truncated from" -" the current position." +"skips the seek call when no size is given so the buffer can be truncated " +"from the current position." msgstr "" -#: ../NEWS:477 +#: ../NEWS:647 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:481 +#: ../NEWS:651 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:484 +#: ../NEWS:654 msgid "" ":issue:`44012`: The ``exploded`` attribute of :class:`ipaddress.IPv6Address` " "and :class:`ipaddress.IPv6Interface` now supports addresses with a scope ID " -"(link-local addresses). Previously the former raised " -":exc:`~ipaddress.AddressValueError` and the latter omitted the scope ID." +"(link-local addresses). Previously the former raised :exc:`~ipaddress." +"AddressValueError` and the latter omitted the scope ID." msgstr "" -#: ../NEWS:489 +#: ../NEWS:659 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 " @@ -941,77 +1247,55 @@ msgid "" "of the sparse file. All following members were unreachable." msgstr "" -#: ../NEWS:495 +#: ../NEWS:665 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:500 ../NEWS:1465 ../NEWS:1880 ../NEWS:2209 ../NEWS:2670 ../NEWS:3081 -#: ../NEWS:3799 ../NEWS:4319 ../NEWS:4668 ../NEWS:4850 ../NEWS:5728 -#: ../NEWS:6318 ../NEWS:6778 ../NEWS:7356 ../NEWS:8203 ../NEWS:8823 -#: ../NEWS:10399 ../NEWS:11994 ../NEWS:12459 ../NEWS:12937 ../NEWS:13474 -#: ../NEWS:14289 ../NEWS:16812 ../NEWS:18339 ../NEWS:18784 ../NEWS:19055 -#: ../NEWS:19334 ../NEWS:19745 ../NEWS:20070 ../NEWS:20502 ../NEWS:22258 -#: ../NEWS:23503 ../NEWS:24109 ../NEWS:24636 ../NEWS:24999 ../NEWS:25463 -#: ../NEWS:25859 ../NEWS:26358 ../NEWS:28021 ../NEWS:29100 ../NEWS:29568 -#: ../NEWS:29860 ../NEWS:30136 ../NEWS:30501 ../NEWS:30962 ../NEWS:31434 -#: ../NEWS:32478 ../NEWS:33026 ../NEWS:33470 ../NEWS:33928 ../NEWS:34332 -#: ../NEWS:34755 ../NEWS:35070 ../NEWS:36415 ../NEWS:37721 ../NEWS:38188 -#: ../NEWS:38666 ../NEWS:38908 ../NEWS:41092 ../NEWS:42068 ../NEWS:42278 -#: ../NEWS:42428 ../NEWS:42646 ../NEWS:42891 ../NEWS:43216 ../NEWS:43556 -#: ../NEWS:44039 ../NEWS:44382 ../NEWS:45992 ../NEWS:46746 ../NEWS:47102 -#: ../NEWS:47499 ../NEWS:47898 ../NEWS:48467 ../NEWS:48787 ../NEWS:48943 -#: ../NEWS:49046 ../NEWS:50405 ../NEWS:50656 ../NEWS:51823 ../NEWS:52383 -#: ../NEWS:53050 ../NEWS:53776 ../NEWS:54337 ../NEWS:54590 ../NEWS:54789 -#: ../NEWS:55100 ../NEWS:57301 +#: ../NEWS:670 ../NEWS:1639 ../NEWS:2054 ../NEWS:2383 ../NEWS:2844 ../NEWS:3255 +#: ../NEWS:3973 ../NEWS:4493 ../NEWS:4842 ../NEWS:5024 ../NEWS:5902 +#: ../NEWS:6492 ../NEWS:6952 ../NEWS:7530 ../NEWS:8377 ../NEWS:8997 +#: ../NEWS:10573 ../NEWS:12168 ../NEWS:12633 ../NEWS:13111 ../NEWS:13648 +#: ../NEWS:14463 ../NEWS:16986 ../NEWS:18513 ../NEWS:18958 ../NEWS:19229 +#: ../NEWS:19508 ../NEWS:19919 ../NEWS:20244 ../NEWS:20676 ../NEWS:22432 +#: ../NEWS:23677 ../NEWS:24283 ../NEWS:24810 ../NEWS:25173 ../NEWS:25637 +#: ../NEWS:26033 ../NEWS:26532 ../NEWS:28195 ../NEWS:29274 ../NEWS:29742 +#: ../NEWS:30034 ../NEWS:30310 ../NEWS:30675 ../NEWS:31136 ../NEWS:31608 +#: ../NEWS:32652 ../NEWS:33200 ../NEWS:33644 ../NEWS:34102 ../NEWS:34506 +#: ../NEWS:34929 ../NEWS:35244 ../NEWS:36589 ../NEWS:37895 ../NEWS:38362 +#: ../NEWS:38840 ../NEWS:39082 ../NEWS:41266 ../NEWS:42242 ../NEWS:42452 +#: ../NEWS:42602 ../NEWS:42820 ../NEWS:43065 ../NEWS:43390 ../NEWS:43730 +#: ../NEWS:44213 ../NEWS:44556 ../NEWS:46166 ../NEWS:46920 ../NEWS:47276 +#: ../NEWS:47673 ../NEWS:48072 ../NEWS:48641 ../NEWS:48961 ../NEWS:49117 +#: ../NEWS:49220 ../NEWS:50579 ../NEWS:50830 ../NEWS:51997 ../NEWS:52557 +#: ../NEWS:53224 ../NEWS:53950 ../NEWS:54511 ../NEWS:54764 ../NEWS:54963 +#: ../NEWS:55274 ../NEWS:57475 msgid "Documentation" msgstr "" -#: ../NEWS:502 +#: ../NEWS:672 msgid "" ":gh:`57491`: Reduce the depth of the table of contents in the EPUB " "documentation from three levels to two, making it much shorter and easier to " "navigate in e-book readers." msgstr "" -#: ../NEWS:507 ../NEWS:1476 ../NEWS:1890 ../NEWS:1978 ../NEWS:2687 ../NEWS:2776 -#: ../NEWS:3321 ../NEWS:4522 ../NEWS:4730 ../NEWS:5004 ../NEWS:5290 -#: ../NEWS:6115 ../NEWS:6495 ../NEWS:7059 ../NEWS:7609 ../NEWS:7957 -#: ../NEWS:8425 ../NEWS:9110 ../NEWS:12470 ../NEWS:12945 ../NEWS:13488 -#: ../NEWS:14303 ../NEWS:14895 ../NEWS:16859 ../NEWS:18359 ../NEWS:18790 -#: ../NEWS:19064 ../NEWS:19341 ../NEWS:19759 ../NEWS:20091 ../NEWS:20510 -#: ../NEWS:22344 ../NEWS:23540 ../NEWS:24135 ../NEWS:24642 ../NEWS:25005 -#: ../NEWS:25476 ../NEWS:25890 ../NEWS:26393 ../NEWS:28156 ../NEWS:29123 -#: ../NEWS:29583 ../NEWS:29869 ../NEWS:30145 ../NEWS:30510 ../NEWS:30974 -#: ../NEWS:31455 ../NEWS:32520 ../NEWS:33043 ../NEWS:33484 ../NEWS:33947 -#: ../NEWS:34357 ../NEWS:35084 ../NEWS:36519 ../NEWS:37770 ../NEWS:38223 -#: ../NEWS:38680 ../NEWS:38919 ../NEWS:41257 ../NEWS:42293 ../NEWS:42447 -#: ../NEWS:42663 ../NEWS:42915 ../NEWS:43229 ../NEWS:43561 ../NEWS:44045 -#: ../NEWS:46040 ../NEWS:46784 ../NEWS:46897 ../NEWS:47122 ../NEWS:47512 -#: ../NEWS:47910 ../NEWS:48489 ../NEWS:48800 ../NEWS:49051 ../NEWS:49186 -#: ../NEWS:49457 ../NEWS:49887 ../NEWS:50160 ../NEWS:50414 ../NEWS:50668 -#: ../NEWS:51841 ../NEWS:52401 ../NEWS:53055 ../NEWS:53176 ../NEWS:53799 -#: ../NEWS:54361 ../NEWS:54605 ../NEWS:54782 ../NEWS:55091 ../NEWS:55320 -#: ../NEWS:55530 ../NEWS:57341 -msgid "Tests" -msgstr "" - -#: ../NEWS:509 +#: ../NEWS:679 msgid "" ":gh:`158051`: The iOS testbed has been updated for compatibilty with Xcode " "27." msgstr "" -#: ../NEWS:512 +#: ../NEWS:682 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:516 +#: ../NEWS:686 msgid "" ":gh:`132581`: The list of tests which altered the execution environment now " "includes the reasons why the environment was considered altered, for example " @@ -1019,44 +1303,25 @@ msgid "" "longer repeats the same state twice (like ``ENV CHANGED then ENV CHANGED``)." msgstr "" -#: ../NEWS:522 +#: ../NEWS:692 msgid "" ":gh:`142414`: Isolate reloading modules in test_interpreters to avoid having " "broken references." msgstr "" -#: ../NEWS:526 ../NEWS:1511 ../NEWS:1898 ../NEWS:2219 ../NEWS:2702 ../NEWS:3211 -#: ../NEWS:4068 ../NEWS:4362 ../NEWS:4500 ../NEWS:4711 ../NEWS:4951 -#: ../NEWS:5254 ../NEWS:6046 ../NEWS:6433 ../NEWS:7013 ../NEWS:7581 -#: ../NEWS:7901 ../NEWS:8366 ../NEWS:9001 ../NEWS:11346 ../NEWS:12000 -#: ../NEWS:12496 ../NEWS:12977 ../NEWS:13498 ../NEWS:14343 ../NEWS:14929 -#: ../NEWS:17107 ../NEWS:18381 ../NEWS:18608 ../NEWS:18800 ../NEWS:19077 -#: ../NEWS:19347 ../NEWS:19771 ../NEWS:20112 ../NEWS:20338 ../NEWS:20530 -#: ../NEWS:22466 ../NEWS:23098 ../NEWS:23571 ../NEWS:24159 ../NEWS:24664 -#: ../NEWS:24858 ../NEWS:25049 ../NEWS:25503 ../NEWS:25912 ../NEWS:26442 -#: ../NEWS:28278 ../NEWS:29146 ../NEWS:29592 ../NEWS:29875 ../NEWS:30155 -#: ../NEWS:30532 ../NEWS:31009 ../NEWS:31471 ../NEWS:32571 ../NEWS:33052 -#: ../NEWS:33510 ../NEWS:33963 ../NEWS:34366 ../NEWS:34768 ../NEWS:35139 -#: ../NEWS:36689 ../NEWS:37806 ../NEWS:38277 ../NEWS:38693 ../NEWS:41424 -#: ../NEWS:42080 ../NEWS:42302 ../NEWS:42453 ../NEWS:42673 ../NEWS:42920 -#: ../NEWS:43249 ../NEWS:44072 ../NEWS:44392 ../NEWS:46103 ../NEWS:46792 -#: ../NEWS:46902 ../NEWS:47137 ../NEWS:47529 ../NEWS:47665 ../NEWS:47926 -#: ../NEWS:48447 ../NEWS:48531 ../NEWS:48822 ../NEWS:48887 ../NEWS:49059 -#: ../NEWS:49177 ../NEWS:49446 ../NEWS:49901 ../NEWS:50187 ../NEWS:50375 -#: ../NEWS:50688 ../NEWS:51884 ../NEWS:52439 ../NEWS:53101 ../NEWS:53822 -#: ../NEWS:54374 ../NEWS:54434 ../NEWS:54451 ../NEWS:54693 ../NEWS:54798 -#: ../NEWS:55311 ../NEWS:55525 ../NEWS:55660 ../NEWS:57192 -msgid "Build" +#: ../NEWS:698 +msgid "" +":gh:`158010`: Update Android and iOS build scripts to use OpenSSL 3.5.9." msgstr "" -#: ../NEWS:528 +#: ../NEWS:700 msgid "" ":gh:`157549`: Use ``sysconf(_SC_PAGESIZE)`` instead of ``getpagesize()`` in " -"``remote_debug.h`` so ``_remote_debugging`` builds on Darwin with " -"``-Werror=implicit-function-declaration``." +"``remote_debug.h`` so ``_remote_debugging`` builds on Darwin with ``-" +"Werror=implicit-function-declaration``." msgstr "" -#: ../NEWS:532 +#: ../NEWS:704 msgid "" ":gh:`157142`: Fix the link of ``Programs/_freeze_module`` when extension " "modules are built in (``MODULE_BUILDTYPE=static``) and the test modules are " @@ -1064,18 +1329,13 @@ msgid "" "``_Py_Get_Getpath_CodeObject()``, which ``_testinternalcapi`` uses." msgstr "" -#: ../NEWS:537 -msgid "" -":gh:`156369`: Update Android and iOS build scripts to use OpenSSL 3.5.8." -msgstr "" - -#: ../NEWS:539 +#: ../NEWS:709 msgid "" ":gh:`155911`: Fix curses detection when a curses library is already in " "``LIBS``. Patch by Shamil Abdulaev." msgstr "" -#: ../NEWS:542 +#: ../NEWS:712 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 " @@ -1083,265 +1343,244 @@ msgid "" "detection silently failed." msgstr "" -#: ../NEWS:547 +#: ../NEWS:717 msgid "" ":gh:`152023`: Update Android builds to SQLite 3.53.4. Additionally, enable " "the ``median()`` and ``percentile()`` functions." msgstr "" -#: ../NEWS:550 +#: ../NEWS:720 msgid "" ":gh:`144679`: When building with Visual Studio 2026 (Version 18), use " "PlatformToolSet v145 by default. Patch by Chris Eibl." msgstr "" -#: ../NEWS:554 ../NEWS:1537 ../NEWS:1904 ../NEWS:2239 ../NEWS:2724 ../NEWS:2764 -#: ../NEWS:3292 ../NEWS:4114 ../NEWS:4153 ../NEWS:4282 ../NEWS:4723 -#: ../NEWS:4978 ../NEWS:5272 ../NEWS:6091 ../NEWS:6466 ../NEWS:7941 -#: ../NEWS:8387 ../NEWS:9057 ../NEWS:12022 ../NEWS:12506 ../NEWS:13003 -#: ../NEWS:13513 ../NEWS:14372 ../NEWS:14953 ../NEWS:17194 ../NEWS:18419 -#: ../NEWS:18808 ../NEWS:19094 ../NEWS:19380 ../NEWS:19789 ../NEWS:20134 -#: ../NEWS:20566 ../NEWS:22580 ../NEWS:23586 ../NEWS:24191 ../NEWS:24694 -#: ../NEWS:25089 ../NEWS:25550 ../NEWS:26040 ../NEWS:26497 ../NEWS:28324 -#: ../NEWS:29155 ../NEWS:29614 ../NEWS:29898 ../NEWS:30181 ../NEWS:31033 -#: ../NEWS:31478 ../NEWS:32592 ../NEWS:33062 ../NEWS:33522 ../NEWS:33980 -#: ../NEWS:34371 ../NEWS:35149 ../NEWS:36761 ../NEWS:37829 ../NEWS:38338 -#: ../NEWS:38707 ../NEWS:38952 ../NEWS:41542 ../NEWS:42087 ../NEWS:42470 -#: ../NEWS:42678 ../NEWS:42925 ../NEWS:43264 ../NEWS:43570 ../NEWS:44105 -#: ../NEWS:46215 ../NEWS:46812 ../NEWS:47143 ../NEWS:47554 ../NEWS:47932 -#: ../NEWS:48503 ../NEWS:48752 ../NEWS:48882 ../NEWS:49172 ../NEWS:49413 -#: ../NEWS:49943 ../NEWS:50175 ../NEWS:50678 ../NEWS:51947 ../NEWS:52452 -#: ../NEWS:53086 ../NEWS:53881 ../NEWS:53928 ../NEWS:54385 ../NEWS:55674 -#: ../NEWS:57488 -msgid "Windows" +#: ../NEWS:726 +msgid ":gh:`158010`: Updated Windows builds to use OpenSSL 3.5.9." msgstr "" -#: ../NEWS:556 +#: ../NEWS:728 msgid "" ":gh:`157368`: Fix truncated :data:`sys.version` in the case of clang-cl " "versions 22 or newer on Windows. Also fixes the Windows on Arm case, where " "the Microsoft compiler was reported instead of clang. Patch by Chris Eibl." msgstr "" -#: ../NEWS:560 -msgid ":gh:`156369`: Updated Windows builds to use OpenSSL 3.5.8." -msgstr "" - -#: ../NEWS:562 +#: ../NEWS:732 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:566 +#: ../NEWS:736 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:570 +#: ../NEWS:740 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`` for" -" other character devices like ``NUL``. The UTF-8 code page is now reported " -"as ``\"utf-8\"`` instead of ``\"cp65001\"``." -msgstr "" - -#: ../NEWS:576 ../NEWS:1550 ../NEWS:1909 ../NEWS:1987 ../NEWS:2247 ../NEWS:2735 -#: ../NEWS:4107 ../NEWS:4273 ../NEWS:6081 ../NEWS:6460 ../NEWS:7045 -#: ../NEWS:7596 ../NEWS:9047 ../NEWS:12047 ../NEWS:13024 ../NEWS:13535 -#: ../NEWS:14413 ../NEWS:14965 ../NEWS:17244 ../NEWS:18440 ../NEWS:19120 -#: ../NEWS:19812 ../NEWS:20149 ../NEWS:20584 ../NEWS:22677 ../NEWS:23602 -#: ../NEWS:24217 ../NEWS:25103 ../NEWS:25556 ../NEWS:26065 ../NEWS:26511 -#: ../NEWS:28352 ../NEWS:29185 ../NEWS:29903 ../NEWS:30188 ../NEWS:30555 -#: ../NEWS:31042 ../NEWS:31493 ../NEWS:32635 ../NEWS:33074 ../NEWS:33529 -#: ../NEWS:34003 ../NEWS:35156 ../NEWS:36880 ../NEWS:37843 ../NEWS:38391 -#: ../NEWS:41652 ../NEWS:42315 ../NEWS:42475 ../NEWS:42687 ../NEWS:42944 -#: ../NEWS:43275 ../NEWS:44120 ../NEWS:46817 ../NEWS:47168 ../NEWS:47563 +"of any console file descriptor, not only 0, 1 and 2, and returns ``None`` " +"for other character devices like ``NUL``. The UTF-8 code page is now " +"reported as ``\"utf-8\"`` instead of ``\"cp65001\"``." +msgstr "" + +#: ../NEWS:746 ../NEWS:1724 ../NEWS:2083 ../NEWS:2161 ../NEWS:2421 ../NEWS:2909 +#: ../NEWS:4281 ../NEWS:4447 ../NEWS:6255 ../NEWS:6634 ../NEWS:7219 +#: ../NEWS:7770 ../NEWS:9221 ../NEWS:12221 ../NEWS:13198 ../NEWS:13709 +#: ../NEWS:14587 ../NEWS:15139 ../NEWS:17418 ../NEWS:18614 ../NEWS:19294 +#: ../NEWS:19986 ../NEWS:20323 ../NEWS:20758 ../NEWS:22851 ../NEWS:23776 +#: ../NEWS:24391 ../NEWS:25277 ../NEWS:25730 ../NEWS:26239 ../NEWS:26685 +#: ../NEWS:28526 ../NEWS:29359 ../NEWS:30077 ../NEWS:30362 ../NEWS:30729 +#: ../NEWS:31216 ../NEWS:31667 ../NEWS:32809 ../NEWS:33248 ../NEWS:33703 +#: ../NEWS:34177 ../NEWS:35330 ../NEWS:37054 ../NEWS:38017 ../NEWS:38565 +#: ../NEWS:41826 ../NEWS:42489 ../NEWS:42649 ../NEWS:42861 ../NEWS:43118 +#: ../NEWS:43449 ../NEWS:44294 ../NEWS:46991 ../NEWS:47342 ../NEWS:47737 msgid "macOS" msgstr "" -#: ../NEWS:578 -msgid ":gh:`156369`: Update macOS installer to use OpenSSL 3.5.8." -msgstr "" - -#: ../NEWS:581 ../NEWS:1559 ../NEWS:1921 ../NEWS:3076 ../NEWS:3790 ../NEWS:5723 -#: ../NEWS:7350 ../NEWS:10378 ../NEWS:12061 ../NEWS:13029 ../NEWS:13548 -#: ../NEWS:14462 ../NEWS:14986 ../NEWS:17253 ../NEWS:18460 ../NEWS:22687 -#: ../NEWS:24709 ../NEWS:25108 ../NEWS:26518 ../NEWS:28378 ../NEWS:29212 -#: ../NEWS:29620 ../NEWS:29908 ../NEWS:30195 ../NEWS:31065 ../NEWS:31498 -#: ../NEWS:32656 ../NEWS:33539 ../NEWS:34008 ../NEWS:34390 ../NEWS:34781 -#: ../NEWS:35163 ../NEWS:36901 ../NEWS:37850 ../NEWS:38399 ../NEWS:38719 -#: ../NEWS:38968 ../NEWS:41688 ../NEWS:42092 ../NEWS:42322 ../NEWS:42480 -#: ../NEWS:42696 ../NEWS:42949 ../NEWS:44125 ../NEWS:44411 ../NEWS:46282 -#: ../NEWS:46822 ../NEWS:47176 ../NEWS:47568 ../NEWS:47946 ../NEWS:48418 -#: ../NEWS:48744 ../NEWS:49858 ../NEWS:50131 ../NEWS:50333 ../NEWS:50594 -#: ../NEWS:51713 ../NEWS:53013 ../NEWS:53181 ../NEWS:53723 ../NEWS:54240 -#: ../NEWS:54573 ../NEWS:55085 ../NEWS:57109 +#: ../NEWS:748 +msgid ":gh:`158010`: Update macOS installer to use OpenSSL 3.5.9." +msgstr "" + +#: ../NEWS:751 ../NEWS:1733 ../NEWS:2095 ../NEWS:3250 ../NEWS:3964 ../NEWS:5897 +#: ../NEWS:7524 ../NEWS:10552 ../NEWS:12235 ../NEWS:13203 ../NEWS:13722 +#: ../NEWS:14636 ../NEWS:15160 ../NEWS:17427 ../NEWS:18634 ../NEWS:22861 +#: ../NEWS:24883 ../NEWS:25282 ../NEWS:26692 ../NEWS:28552 ../NEWS:29386 +#: ../NEWS:29794 ../NEWS:30082 ../NEWS:30369 ../NEWS:31239 ../NEWS:31672 +#: ../NEWS:32830 ../NEWS:33713 ../NEWS:34182 ../NEWS:34564 ../NEWS:34955 +#: ../NEWS:35337 ../NEWS:37075 ../NEWS:38024 ../NEWS:38573 ../NEWS:38893 +#: ../NEWS:39142 ../NEWS:41862 ../NEWS:42266 ../NEWS:42496 ../NEWS:42654 +#: ../NEWS:42870 ../NEWS:43123 ../NEWS:44299 ../NEWS:44585 ../NEWS:46456 +#: ../NEWS:46996 ../NEWS:47350 ../NEWS:47742 ../NEWS:48120 ../NEWS:48592 +#: ../NEWS:48918 ../NEWS:50032 ../NEWS:50305 ../NEWS:50507 ../NEWS:50768 +#: ../NEWS:51887 ../NEWS:53187 ../NEWS:53355 ../NEWS:53897 ../NEWS:54414 +#: ../NEWS:54747 ../NEWS:55259 ../NEWS:57283 msgid "IDLE" msgstr "" -#: ../NEWS:583 +#: ../NEWS:753 msgid "" ":gh:`158067`: Fix the IDLE File Open dialog listing text files before Python " "files when opened from the Shell or an Output window." msgstr "" -#: ../NEWS:586 +#: ../NEWS:756 msgid "" ":gh:`56596`: Make IDLE keyboard shortcuts with ascii letters work when Caps " "Lock is on even when only one of the upper and lowercase versions are " "defined." msgstr "" -#: ../NEWS:590 +#: ../NEWS:760 msgid "" -":gh:`75512`: Output from a thread printed in the IDLE Shell while a statement" -" is being entered no longer takes over the prompt of the statement." +":gh:`75512`: Output from a thread printed in the IDLE Shell while a " +"statement is being entered no longer takes over the prompt of the statement." msgstr "" -#: ../NEWS:593 +#: ../NEWS:763 msgid "" -":gh:`64007`: IDLE no longer applies syntax coloring to the text entered for " -":func:`input` in the Shell." +":gh:`64007`: IDLE no longer applies syntax coloring to the text entered for :" +"func:`input` in the Shell." msgstr "" -#: ../NEWS:596 +#: ../NEWS:766 msgid "" ":gh:`85560`: Fix IDLE failing to find the opening parenthesis when a " "continuation line inside the parentheses starts with ``else`` of a " "conditional expression or with ``yield``." msgstr "" -#: ../NEWS:600 +#: ../NEWS:770 msgid "" ":gh:`75487`: Fix saving a truncated number when an integer entry in the IDLE " "Settings dialog is blanked with the Backspace key." msgstr "" -#: ../NEWS:603 +#: ../NEWS:773 msgid "" -":gh:`74112`: Ctrl-C in the IDLE Shell now interrupts blocking calls such as " -":func:`time.sleep` and :meth:`socket.recv `." +":gh:`74112`: Ctrl-C in the IDLE Shell now interrupts blocking calls such as :" +"func:`time.sleep` and :meth:`socket.recv `." msgstr "" -#: ../NEWS:606 +#: ../NEWS:776 msgid ":gh:`151471`: Colorize the soft keyword ``type`` in IDLE." msgstr "" -#: ../NEWS:608 +#: ../NEWS:778 msgid "" ":gh:`103089`: IDLE no longer hangs when opening a file with very long lines. " "Only the first 2,000 characters of a line are colorized." msgstr "" -#: ../NEWS:611 +#: ../NEWS:781 msgid "" ":gh:`89544`: Fix IDLE hanging after Restart Shell while receiving a large " "output from the user process." msgstr "" -#: ../NEWS:614 +#: ../NEWS:784 msgid "" ":gh:`70331`: IDLE no longer fails to start with ``python -m idlelib``, and " "its user process no longer fails to start, when the current directory " -"contains user files with the same names as standard library modules that IDLE" -" imports, such as ``random.py`` or ``tkinter.py``." +"contains user files with the same names as standard library modules that " +"IDLE imports, such as ``random.py`` or ``tkinter.py``." msgstr "" -#: ../NEWS:619 +#: ../NEWS:789 msgid "" ":gh:`93016`: Fix parsing of command line arguments in the IDLE \"Run... " "Customized\" dialog on Windows: backslashes are no longer treated as escape " "characters. Fix also display of the previous arguments in the dialog." msgstr "" -#: ../NEWS:623 +#: ../NEWS:793 msgid "" ":gh:`59568`: Fix \"Save As\" and \"Open\" dialogs in IDLE for a file whose " "name starts with ``~`` on Windows and X11 with Tcl/Tk older than 9." msgstr "" -#: ../NEWS:626 +#: ../NEWS:796 msgid "" ":gh:`69004`: The Debugger item of the IDLE Debug menu is now disabled while " "user code runs, like Stack Viewer." msgstr "" -#: ../NEWS:629 +#: ../NEWS:799 msgid "" ":gh:`69365`: The IDLE search dialogs now show a regular expression error " "below the entry instead of in a message box." msgstr "" -#: ../NEWS:632 +#: ../NEWS:802 msgid "" ":gh:`93966`: The highlighting of a syntax error in the IDLE Shell is now " "removed when the next statement is entered, not only when the next syntax " "error occurs." msgstr "" -#: ../NEWS:636 +#: ../NEWS:806 msgid "" ":gh:`105689`: Fix calltips, parenthesis matching and auto-indent in the IDLE " "Shell after output containing unbalanced quotes or parentheses." msgstr "" -#: ../NEWS:639 +#: ../NEWS:809 msgid "" ":gh:`60402`: In IDLE, Tab in a string that is not the start of a file name " "inserts a tab instead of opening the completion list." msgstr "" -#: ../NEWS:642 +#: ../NEWS:812 msgid "" ":gh:`68453`: Fix running IDLE with the -s option together with -c, -r or -: " "the command or script now runs after the startup file, without an error " "dialog and without restarting the shell." msgstr "" -#: ../NEWS:646 +#: ../NEWS:816 msgid "" ":gh:`75234`: Fix editing help sources and key bindings in the IDLE Settings " "dialog after selecting them with the keyboard." msgstr "" -#: ../NEWS:649 +#: ../NEWS:819 msgid "" ":gh:`69919`: IDLE now reports any exception raised by compiling the source, " "such as :exc:`MemoryError` for too deeply nested source, instead of hanging " "the Shell." msgstr "" -#: ../NEWS:653 +#: ../NEWS:823 msgid "" -":gh:`91398`: Remove the border around the IDLE Shell sidebar, which was drawn" -" in the window background color and stood out with dark themes." +":gh:`91398`: Remove the border around the IDLE Shell sidebar, which was " +"drawn in the window background color and stood out with dark themes." msgstr "" -#: ../NEWS:656 +#: ../NEWS:826 msgid "" ":gh:`71136`: Fix a hang of the IDLE Shell when code run under the debugger " "raises :exc:`KeyboardInterrupt`." msgstr "" -#: ../NEWS:659 +#: ../NEWS:829 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." +"which tells whether Tk reports wheel rotations to a widget as ````/" +"```` events, and ``bind_wheel``, which binds whichever events Tk " +"sends." msgstr "" -#: ../NEWS:665 +#: ../NEWS:835 msgid "" ":gh:`156896`: Stop deleting tkinter submodules when idlelib.run is imported." msgstr "" -#: ../NEWS:667 +#: ../NEWS:837 msgid "" ":gh:`153480`: Fix IDLE failing to start when opening a file which does not " "exist yet. Fix a traceback when a file open in the IDLE editor is deleted by " @@ -1349,50 +1588,57 @@ msgid "" "elsewhere, or ignore it." msgstr "" -#: ../NEWS:672 +#: ../NEWS:842 msgid "" ":gh:`55646`: Fix IDLE crash at startup when the user configuration contains " -"an invalid key binding, such as ```` instead of ````." -" The invalid binding is now ignored with a warning." +"an invalid key binding, such as ```` instead of ````. The invalid binding is now ignored with a warning." msgstr "" -#: ../NEWS:676 +#: ../NEWS:846 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:680 +#: ../NEWS:850 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." +"width for the ``'0'`` character. Such a broken font caused a :exc:" +"`ZeroDivisionError`; the editor now falls back to the configured width." msgstr "" -#: ../NEWS:685 +#: ../NEWS:855 msgid "" ":gh:`135511`: Fix display of :exc:`NameError` and :exc:`AttributeError` with " "multi-line message." msgstr "" -#: ../NEWS:689 ../NEWS:1611 ../NEWS:2770 ../NEWS:3298 ../NEWS:4119 ../NEWS:4158 -#: ../NEWS:4373 ../NEWS:4512 ../NEWS:4998 ../NEWS:5281 ../NEWS:6106 -#: ../NEWS:6472 ../NEWS:7050 ../NEWS:7602 ../NEWS:7951 ../NEWS:8416 -#: ../NEWS:9104 ../NEWS:13035 ../NEWS:13557 ../NEWS:14994 ../NEWS:17259 -#: ../NEWS:18470 ../NEWS:18817 ../NEWS:19820 ../NEWS:20157 ../NEWS:22709 -#: ../NEWS:23607 ../NEWS:24226 ../NEWS:28412 ../NEWS:30565 ../NEWS:31077 -#: ../NEWS:33087 ../NEWS:33549 ../NEWS:34022 ../NEWS:37004 ../NEWS:37867 -#: ../NEWS:38406 ../NEWS:38748 ../NEWS:41871 ../NEWS:42493 ../NEWS:42710 -#: ../NEWS:42970 ../NEWS:43576 ../NEWS:44164 ../NEWS:46479 ../NEWS:46867 -#: ../NEWS:47208 ../NEWS:47631 ../NEWS:48118 ../NEWS:48483 ../NEWS:48877 -#: ../NEWS:48951 ../NEWS:49936 ../NEWS:50397 ../NEWS:50705 ../NEWS:51965 -#: ../NEWS:53074 ../NEWS:53900 ../NEWS:54423 ../NEWS:55110 ../NEWS:55329 -#: ../NEWS:55537 ../NEWS:57449 +#: ../NEWS:859 ../NEWS:1785 ../NEWS:2944 ../NEWS:3472 ../NEWS:4293 ../NEWS:4332 +#: ../NEWS:4547 ../NEWS:4686 ../NEWS:5172 ../NEWS:5455 ../NEWS:6280 +#: ../NEWS:6646 ../NEWS:7224 ../NEWS:7776 ../NEWS:8125 ../NEWS:8590 +#: ../NEWS:9278 ../NEWS:13209 ../NEWS:13731 ../NEWS:15168 ../NEWS:17433 +#: ../NEWS:18644 ../NEWS:18991 ../NEWS:19994 ../NEWS:20331 ../NEWS:22883 +#: ../NEWS:23781 ../NEWS:24400 ../NEWS:28586 ../NEWS:30739 ../NEWS:31251 +#: ../NEWS:33261 ../NEWS:33723 ../NEWS:34196 ../NEWS:37178 ../NEWS:38041 +#: ../NEWS:38580 ../NEWS:38922 ../NEWS:42045 ../NEWS:42667 ../NEWS:42884 +#: ../NEWS:43144 ../NEWS:43750 ../NEWS:44338 ../NEWS:46653 ../NEWS:47041 +#: ../NEWS:47382 ../NEWS:47805 ../NEWS:48292 ../NEWS:48657 ../NEWS:49051 +#: ../NEWS:49125 ../NEWS:50110 ../NEWS:50571 ../NEWS:50879 ../NEWS:52139 +#: ../NEWS:53248 ../NEWS:54074 ../NEWS:54597 ../NEWS:55284 ../NEWS:55503 +#: ../NEWS:55711 ../NEWS:57623 msgid "Tools/Demos" msgstr "" -#: ../NEWS:691 +#: ../NEWS:861 +msgid "" +":gh:`158451`: ``python-gdb.py`` is now able to format an invalid Unicode " +"string: render invalid characters as ``\\Uhhhhhhhh`` instead of raising an " +"exception. Patch by Victor Stinner." +msgstr "" + +#: ../NEWS:865 msgid "" ":gh:`113318`: Fix Argument Clinic for ``@getter`` and ``@setter`` in a " "preprocessor conditional block. It failed with an internal error. Argument " @@ -1401,101 +1647,99 @@ msgid "" "invalid or duplicated entries of :c:type:`PyGetSetDef`." msgstr "" -#: ../NEWS:697 +#: ../NEWS:871 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:702 ../NEWS:1625 ../NEWS:1926 ../NEWS:2743 ../NEWS:3202 ../NEWS:4040 -#: ../NEWS:4356 ../NEWS:4489 ../NEWS:4705 ../NEWS:4934 ../NEWS:5248 -#: ../NEWS:5987 ../NEWS:6425 ../NEWS:6964 ../NEWS:7516 ../NEWS:7883 -#: ../NEWS:8316 ../NEWS:8978 ../NEWS:11091 ../NEWS:12066 ../NEWS:12535 -#: ../NEWS:13043 ../NEWS:13571 ../NEWS:14478 ../NEWS:15002 ../NEWS:17319 -#: ../NEWS:18477 ../NEWS:18822 ../NEWS:19125 ../NEWS:19829 ../NEWS:20167 -#: ../NEWS:20589 ../NEWS:22744 ../NEWS:23620 ../NEWS:24232 ../NEWS:24718 -#: ../NEWS:25116 ../NEWS:25562 ../NEWS:26070 ../NEWS:26523 ../NEWS:28433 -#: ../NEWS:29231 ../NEWS:29627 ../NEWS:29915 ../NEWS:30209 ../NEWS:30574 -#: ../NEWS:31087 ../NEWS:31511 ../NEWS:32689 ../NEWS:33100 ../NEWS:33561 -#: ../NEWS:34034 ../NEWS:34405 ../NEWS:34792 ../NEWS:35179 ../NEWS:37029 -#: ../NEWS:37873 ../NEWS:38411 ../NEWS:38755 ../NEWS:41910 ../NEWS:42000 -#: ../NEWS:42716 ../NEWS:43286 ../NEWS:43583 ../NEWS:44176 ../NEWS:44438 -#: ../NEWS:46510 ../NEWS:46885 ../NEWS:47218 ../NEWS:47638 ../NEWS:48441 -#: ../NEWS:48770 ../NEWS:48938 ../NEWS:49439 ../NEWS:49878 ../NEWS:50368 -#: ../NEWS:50697 ../NEWS:51986 ../NEWS:52461 ../NEWS:53041 ../NEWS:55353 -#: ../NEWS:55668 ../NEWS:57272 +#: ../NEWS:876 ../NEWS:1799 ../NEWS:2100 ../NEWS:2917 ../NEWS:3376 ../NEWS:4214 +#: ../NEWS:4530 ../NEWS:4663 ../NEWS:4879 ../NEWS:5108 ../NEWS:5422 +#: ../NEWS:6161 ../NEWS:6599 ../NEWS:7138 ../NEWS:7690 ../NEWS:8057 +#: ../NEWS:8490 ../NEWS:9152 ../NEWS:11265 ../NEWS:12240 ../NEWS:12709 +#: ../NEWS:13217 ../NEWS:13745 ../NEWS:14652 ../NEWS:15176 ../NEWS:17493 +#: ../NEWS:18651 ../NEWS:18996 ../NEWS:19299 ../NEWS:20003 ../NEWS:20341 +#: ../NEWS:20763 ../NEWS:22918 ../NEWS:23794 ../NEWS:24406 ../NEWS:24892 +#: ../NEWS:25290 ../NEWS:25736 ../NEWS:26244 ../NEWS:26697 ../NEWS:28607 +#: ../NEWS:29405 ../NEWS:29801 ../NEWS:30089 ../NEWS:30383 ../NEWS:30748 +#: ../NEWS:31261 ../NEWS:31685 ../NEWS:32863 ../NEWS:33274 ../NEWS:33735 +#: ../NEWS:34208 ../NEWS:34579 ../NEWS:34966 ../NEWS:35353 ../NEWS:37203 +#: ../NEWS:38047 ../NEWS:38585 ../NEWS:38929 ../NEWS:42084 ../NEWS:42174 +#: ../NEWS:42890 ../NEWS:43460 ../NEWS:43757 ../NEWS:44350 ../NEWS:44612 +#: ../NEWS:46684 ../NEWS:47059 ../NEWS:47392 ../NEWS:47812 ../NEWS:48615 +#: ../NEWS:48944 ../NEWS:49112 ../NEWS:49613 ../NEWS:50052 ../NEWS:50542 +#: ../NEWS:50871 ../NEWS:52160 ../NEWS:52635 ../NEWS:53215 ../NEWS:55527 +#: ../NEWS:55842 ../NEWS:57446 msgid "C API" msgstr "" -#: ../NEWS:704 +#: ../NEWS:878 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:708 +#: ../NEWS:882 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:`PyLong_AsUInt64`. Leave the result unchanged in this case. Patch by " -"Victor Stinner." +":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:" +"`PyLong_AsUInt64`. Leave the result unchanged in this case. Patch by Victor " +"Stinner." msgstr "" -#: ../NEWS:713 +#: ../NEWS:887 msgid "" -":gh:`131740`: On the free-threaded build, " -":c:func:`PyUnstable_GC_VisitObjects` now also visits frozen objects (objects " -"moved to the permanent generation by :func:`gc.freeze`), matching the " -"behavior of the default build." +":gh:`131740`: On the free-threaded build, :c:func:" +"`PyUnstable_GC_VisitObjects` now also visits frozen objects (objects moved " +"to the permanent generation by :func:`gc.freeze`), matching the behavior of " +"the default build." msgstr "" -#: ../NEWS:720 +#: ../NEWS:894 msgid "Python 3.14.7 final" msgstr "" -#: ../NEWS:722 +#: ../NEWS:896 msgid "*Release date: 2026-08-05*" msgstr "" -#: ../NEWS:727 +#: ../NEWS:901 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." +"unterminated constructs (such as tags or comments) in :class:`html.parser." +"HTMLParser`, which could be exploited for a denial of service." msgstr "" -#: ../NEWS:732 +#: ../NEWS:906 msgid "" -":gh:`152674`: The :class:`xml.etree.ElementTree.Element` methods " -":meth:`~xml.etree.ElementTree.Element.findall`, " -":meth:`~xml.etree.ElementTree.Element.iterfind` and " -":meth:`~xml.etree.ElementTree.Element.find` avoid quadratic behavior when " -"using XPath index predicates (``[1]``, ``[last()]``, ``[last()-N]``) on XML " -"documents with many same-tag siblings." +":gh:`152674`: The :class:`xml.etree.ElementTree.Element` methods :meth:`~xml." +"etree.ElementTree.Element.findall`, :meth:`~xml.etree.ElementTree.Element." +"iterfind` and :meth:`~xml.etree.ElementTree.Element.find` avoid quadratic " +"behavior when using XPath index predicates (``[1]``, ``[last()]``, ``[last()-" +"N]``) on XML documents with many same-tag siblings." msgstr "" -#: ../NEWS:739 +#: ../NEWS:913 msgid "" ":gh:`152216`: Update bundled `libexpat `_ to " "version 2.8.2." msgstr "" -#: ../NEWS:742 +#: ../NEWS:916 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:746 +#: ../NEWS:920 msgid "" ":gh:`151981`: In :mod:`tarfile`, seeking a stream now stops when end of the " "stream is reached." msgstr "" -#: ../NEWS:749 +#: ../NEWS:923 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 " @@ -1503,310 +1747,308 @@ msgid "" "indicator of running in a source tree." msgstr "" -#: ../NEWS:754 +#: ../NEWS:928 msgid "" ":gh:`151558`: Fixed an vulnerability in the :mod:`tarfile` ``data`` and " "``tar`` extraction filters where crafted archives could create a symlink " -"pointing outside the destination directory. This was a bypass of " -":cve:`2025-4330`." +"pointing outside the destination directory. This was a bypass of :cve:" +"`2025-4330`." msgstr "" -#: ../NEWS:759 +#: ../NEWS:933 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 " "it will skip to 100. A malicious or broken server could previously stream " "trailer lines or ``100 Continue`` responses forever, hanging the client even " -"when a socket timeout was in use. Reported by ``@YLChen-007`` via " -"GHSA-w4q2-g22w-6fr4." +"when a socket timeout was in use. Reported by ``@YLChen-007`` via GHSA-w4q2-" +"g22w-6fr4." msgstr "" -#: ../NEWS:766 +#: ../NEWS:940 msgid "" ":gh:`143927`: Normalize all line endings (CR, CRLF, and LF) to LF+TAB when " "writing multi-line configparser values." msgstr "" -#: ../NEWS:769 +#: ../NEWS:943 msgid "" ":gh:`143921`: Reject NUL, CR and LF characters in IMAP commands. Other " "control characters are allowed and sent quoted." msgstr "" -#: ../NEWS:775 +#: ../NEWS:949 msgid "" ":gh:`133931`: Fix data races when setting attributes of function objects on " "the :term:`free threaded ` build." msgstr "" -#: ../NEWS:778 +#: ../NEWS:952 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:782 +#: ../NEWS:956 msgid "" ":gh:`154695`: Fix :class:`asyncio.Task` raising :exc:`AttributeError` when " "created with ``eager_start=True`` and no explicit *loop* argument." msgstr "" -#: ../NEWS:785 +#: ../NEWS:959 msgid "" -":gh:`153809`: Fix interpreter crash while deallocating objects of " -":class:`asyncio.Task` on free-threaded builds. Contributed by Sergey " -"Miryanov." +":gh:`153809`: Fix interpreter crash while deallocating objects of :class:" +"`asyncio.Task` on free-threaded builds. Contributed by Sergey Miryanov." msgstr "" -#: ../NEWS:789 +#: ../NEWS:963 msgid "" ":gh:`154275`: Fix a crash when getting deeply nested ``__parameters__`` from " "a :class:`types.GenericAlias` objects." msgstr "" -#: ../NEWS:792 +#: ../NEWS:966 msgid "" -":gh:`153932`: Fix thread safety issue in the ``__reduce__`` method of " -":py:class:`enumerate`." +":gh:`153932`: Fix thread safety issue in the ``__reduce__`` method of :py:" +"class:`enumerate`." msgstr "" -#: ../NEWS:795 +#: ../NEWS:969 msgid "" ":gh:`153298`: Fixes a data race in :class:`types.GenericAlias` " "``__parameters__`` initialization on free-threading builds." msgstr "" -#: ../NEWS:798 +#: ../NEWS:972 msgid "" ":gh:`153205`: Fix a potential :exc:`SystemError` during vector calls when " "memory allocation fails. A :exc:`MemoryError` is now raised instead." msgstr "" -#: ../NEWS:801 +#: ../NEWS:975 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." +":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:805 +#: ../NEWS:979 msgid "" -":gh:`152635`: Fix a crash caused when running out of memory creating a " -":mod:`!_interpchannels` channel. Now a :exc:`MemoryError` is correctly " -"raised." +":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:809 +#: ../NEWS:983 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:812 +#: ../NEWS:986 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." +":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:816 +#: ../NEWS:990 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:819 +#: ../NEWS:993 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:822 +#: ../NEWS:996 msgid "" ":gh:`151763`: Fixes possible crash on :class:`types.CodeType` deallocation." msgstr "" -#: ../NEWS:824 +#: ../NEWS:998 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." +":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:828 +#: ../NEWS:1002 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 " +":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:832 +#: ../NEWS:1006 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:836 +#: ../NEWS:1010 msgid "" ":gh:`151905`: Fix OOM error handling in :c:func:`PyFrame_GetBack` to " "propagate exceptions instead of masking them as None." msgstr "" -#: ../NEWS:839 +#: ../NEWS:1013 msgid "" ":gh:`151773`: Fix a crash in :func:`contextvars.ContextVar.set` when memory " "allocation fails." msgstr "" -#: ../NEWS:842 +#: ../NEWS:1016 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`." +"interpreters fails due to running out of memory. It now raises a proper :exc:" +"`MemoryError`." msgstr "" -#: ../NEWS:846 +#: ../NEWS:1020 msgid "" -":gh:`151644`: Fix a data race in :func:`sys.setdlopenflags` and " -":func:`sys.getdlopenflags` when called concurrently in the free-threaded " -"build. The underlying ``_PyImport_GetDLOpenFlags`` and " -"``_PyImport_SetDLOpenFlags`` functions now use atomic load/store operations." +":gh:`151644`: Fix a data race in :func:`sys.setdlopenflags` and :func:`sys." +"getdlopenflags` when called concurrently in the free-threaded build. The " +"underlying ``_PyImport_GetDLOpenFlags`` and ``_PyImport_SetDLOpenFlags`` " +"functions now use atomic load/store operations." msgstr "" -#: ../NEWS:852 +#: ../NEWS:1026 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:855 +#: ../NEWS:1029 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:859 +#: ../NEWS:1033 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:864 +#: ../NEWS:1038 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." +"now replace :data:`sys.flags` (create a new object), instead of modifying :" +"data:`sys.flags` in-place. Patch by Victor Stinner." msgstr "" -#: ../NEWS:868 +#: ../NEWS:1042 msgid "" -":gh:`151253`: If ``import encodings`` (first import) fails at Python startup," -" dump the Python path configuration to help users debugging their " +":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:872 +#: ../NEWS:1046 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:875 ../NEWS:1352 +#: ../NEWS:1049 ../NEWS:1526 msgid "" ":gh:`151126`: Fix a crash, when there's no memory left on a device, which " "happened in :mod:`!_interpchannels` module." msgstr "" -#: ../NEWS:878 ../NEWS:1355 +#: ../NEWS:1052 ../NEWS:1529 msgid "Now it raises proper :exc:`MemoryError` errors." msgstr "" -#: ../NEWS:880 +#: ../NEWS:1054 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." +"mutex) to PyCriticalSection2: avoid acquiring the same locks that the " +"current CS has already acquired." msgstr "" -#: ../NEWS:884 +#: ../NEWS:1058 msgid "" ":gh:`151065`: Fix memory leak when using the :ref:`mimalloc memory allocator " "`." msgstr "" -#: ../NEWS:887 +#: ../NEWS:1061 msgid "" ":gh:`151029`: On Linux, fix :func:`sys.remote_exec` unable to find remote " "writable memory when ``libpython`` replaced on disk." msgstr "" -#: ../NEWS:890 +#: ../NEWS:1064 msgid "" ":gh:`150988`: Fix a reference leak in :exc:`OSError` when attributes are set " "before ``super().__init__()``." msgstr "" -#: ../NEWS:893 +#: ../NEWS:1067 msgid "" ":gh:`144774`: Fix data race in :class:`BaseException` when an exception is " "copied while being mutated." msgstr "" -#: ../NEWS:896 +#: ../NEWS:1070 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." +":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:900 +#: ../NEWS:1074 msgid "" ":gh:`149689`: Fix missing error propagation in parser action helpers when " "memory allocation fails. Patch by Thomas Kowalski." msgstr "" -#: ../NEWS:903 +#: ../NEWS:1077 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." +":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:911 +#: ../NEWS:1085 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]``." +"name from ``sys.argv[0]`` when a named module is executed as the main " +"program without replacing ``sys.argv[0]``." msgstr "" -#: ../NEWS:915 +#: ../NEWS:1089 msgid "" ":gh:`155063`: Bump the version of pip bundled in ensurepip to version 26.2.1" msgstr "" -#: ../NEWS:917 +#: ../NEWS:1091 msgid "" ":gh:`155063`: Bump the version of pip bundled in ensurepip to version 26.2" msgstr "" -#: ../NEWS:919 +#: ../NEWS:1093 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:922 +#: ../NEWS:1096 msgid "" -":gh:`154892`: Fix a bug in the C accelerator for :mod:`zoneinfo` where " -":class:`datetime.datetime` subclasses returning ``-1`` for ``hour``, " +":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:926 +#: ../NEWS:1100 msgid "" ":gh:`154848`: The :mod:`pickle` C accelerator now enforces frame boundaries " "when unpickling, as the pure Python implementation already did. An argument " @@ -1816,29 +2058,29 @@ msgid "" "diverging from the :mod:`pickletools` disassembly of the same pickle." msgstr "" -#: ../NEWS:934 +#: ../NEWS:1108 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:938 +#: ../NEWS:1112 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:942 +#: ../NEWS:1116 msgid "" ":gh:`154738`: Fix :meth:`!ExternalEntityParserCreate` not propagating the " -"reparse-deferral setting to the subparser, which left " -":meth:`!GetReparseDeferralEnabled` returning an uninitialized value. Patch by" -" tonghuaroot." +"reparse-deferral setting to the subparser, which left :meth:`!" +"GetReparseDeferralEnabled` returning an uninitialized value. Patch by " +"tonghuaroot." msgstr "" -#: ../NEWS:947 +#: ../NEWS:1121 msgid "" ":gh:`93251`: Fix :exc:`UnicodeDecodeError` in :mod:`socket` functions (such " "as :func:`~socket.getaddrinfo` and :func:`~socket.gethostbyaddr`) when the " @@ -1846,89 +2088,88 @@ msgid "" "locale encoding." msgstr "" -#: ../NEWS:952 +#: ../NEWS:1126 msgid "" ":gh:`154551`: Fix :func:`ctypes.util.find_library` returning ``None`` in non-" "UTF-8 locales." msgstr "" -#: ../NEWS:955 +#: ../NEWS:1129 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:959 +#: ../NEWS:1133 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 " "example if the port was invalid or already in use. It now also binds to an " -"IPv6 address if the host has no IPv4 address, for example if ``localhost`` is" -" only aliased to ``::1``." +"IPv6 address if the host has no IPv4 address, for example if ``localhost`` " +"is only aliased to ``::1``." msgstr "" -#: ../NEWS:965 +#: ../NEWS:1139 msgid "" -":gh:`154460`: Fix :func:`time.strftime` and " -":meth:`datetime.datetime.strftime` returning a wrong ISO 8601 week number " -"(``%V``) on OpenBSD." +":gh:`154460`: Fix :func:`time.strftime` and :meth:`datetime.datetime." +"strftime` returning a wrong ISO 8601 week number (``%V``) on OpenBSD." msgstr "" -#: ../NEWS:969 +#: ../NEWS:1143 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:973 +#: ../NEWS:1147 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:976 +#: ../NEWS:1150 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:979 +#: ../NEWS:1153 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:983 +#: ../NEWS:1157 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:987 +#: ../NEWS:1161 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:991 +#: ../NEWS:1165 msgid "" -":gh:`154283`: On DragonFly BSD, :func:`threading.get_native_id` now returns a" -" value that is unique across processes, matching the other platforms." +":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:994 +#: ../NEWS:1168 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:998 +#: ../NEWS:1172 msgid "" ":gh:`131565`: :func:`ctypes.util.dllist` now works on NetBSD. It is " "implemented in the :mod:`!_ctypes` extension module so that " @@ -1937,20 +2178,20 @@ msgid "" "called through ctypes." msgstr "" -#: ../NEWS:1004 +#: ../NEWS:1178 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:1008 +#: ../NEWS:1182 msgid "" -":gh:`154227`: Fix :func:`os.posix_openpt` on OpenBSD, where it rejected the " -":data:`~os.O_CLOEXEC` flag." +":gh:`154227`: Fix :func:`os.posix_openpt` on OpenBSD, where it rejected the :" +"data:`~os.O_CLOEXEC` flag." msgstr "" -#: ../NEWS:1011 +#: ../NEWS:1185 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 " @@ -1958,75 +2199,74 @@ msgid "" "transport." msgstr "" -#: ../NEWS:1016 +#: ../NEWS:1190 msgid "" -":gh:`154001`: Fix :func:`random.binomialvariate` raising " -":exc:`ZeroDivisionError` when :func:`random.random` returns zero." +":gh:`154001`: Fix :func:`random.binomialvariate` raising :exc:" +"`ZeroDivisionError` when :func:`random.random` returns zero." msgstr "" -#: ../NEWS:1019 +#: ../NEWS:1193 msgid "" -":gh:`153908`: Fix data race when calling :func:`repr` on " -":class:`itertools.count` under the :term:`free-threaded build`." +":gh:`153908`: Fix data race when calling :func:`repr` on :class:`itertools." +"count` under the :term:`free-threaded build`." msgstr "" -#: ../NEWS:1022 +#: ../NEWS:1196 msgid ":gh:`153896`: Deduplicate unhashable args in :data:`typing.Literal`." msgstr "" -#: ../NEWS:1024 +#: ../NEWS:1198 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 " -"encoding, consistently with :meth:`~curses.window.addch`, instead of its code" -" point." +"encoding, consistently with :meth:`~curses.window.addch`, instead of its " +"code point." msgstr "" -#: ../NEWS:1029 +#: ../NEWS:1203 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." +"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:1033 +#: ../NEWS:1207 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`." +":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:1037 +#: ../NEWS:1211 msgid "" ":gh:`153761`: Fix cancelling :meth:`asyncio.loop.sock_accept` dropping a " "pending connection." msgstr "" -#: ../NEWS:1040 +#: ../NEWS:1214 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:1044 +#: ../NEWS:1218 msgid "" -":gh:`127049`: Fix a race condition in :mod:`asyncio` on Unix where " -":meth:`asyncio.subprocess.Process.send_signal`, " -":meth:`~asyncio.subprocess.Process.terminate` or " -":meth:`~asyncio.subprocess.Process.kill` could signal an unrelated process " -"that was recycled onto the PID of the already-reaped child when " -"ThreadedChildWatcher is used. Patch by Kumar Aditya." +":gh:`127049`: Fix a race condition in :mod:`asyncio` on Unix where :meth:" +"`asyncio.subprocess.Process.send_signal`, :meth:`~asyncio.subprocess.Process." +"terminate` or :meth:`~asyncio.subprocess.Process.kill` could signal an " +"unrelated process that was recycled onto the PID of the already-reaped child " +"when ThreadedChildWatcher is used. Patch by Kumar Aditya." msgstr "" -#: ../NEWS:1051 +#: ../NEWS:1225 msgid "" -":gh:`153658`: Fix :meth:`sqlite3.Connection.iterdump` raising " -":exc:`sqlite3.OperationalError` when a table name contains a single quote. " -"Patch by tonghuaroot." +":gh:`153658`: Fix :meth:`sqlite3.Connection.iterdump` raising :exc:`sqlite3." +"OperationalError` when a table name contains a single quote. Patch by " +"tonghuaroot." msgstr "" -#: ../NEWS:1055 +#: ../NEWS:1229 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 " @@ -2034,107 +2274,107 @@ msgid "" "longer mixes :class:`str` and :class:`bytes` keys." msgstr "" -#: ../NEWS:1060 +#: ../NEWS:1234 msgid "" ":gh:`153404`: :class:`urllib.robotparser.RobotFileParser` now silently " "ignores a ``Crawl-delay`` or ``Request-rate`` value written with non-decimal " -"digits (such as ``U+00B2 SUPERSCRIPT TWO``) instead of raising " -":exc:`ValueError` and aborting the parse of the whole ``robots.txt`` file." +"digits (such as ``U+00B2 SUPERSCRIPT TWO``) instead of raising :exc:" +"`ValueError` and aborting the parse of the whole ``robots.txt`` file." msgstr "" -#: ../NEWS:1065 +#: ../NEWS:1239 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`." +":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:1069 +#: ../NEWS:1243 msgid "" -":gh:`153406`: :func:`email.utils.parsedate_to_datetime` now raises " -":exc:`ValueError` instead of :exc:`OverflowError` when the parsed year or " +":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:1073 +#: ../NEWS:1247 msgid "" ":gh:`153083`: Defer GC tracking of an :class:`array.array` to the end of its " "construction. Patch by Donghee Na." msgstr "" -#: ../NEWS:1076 +#: ../NEWS:1250 msgid "" ":gh:`153292`: Fix data race in repr of :class:`threading.RLock` in free-" "threading build." msgstr "" -#: ../NEWS:1079 +#: ../NEWS:1253 msgid "" ":gh:`143990`: A :class:`tkinter.font.Font` created from a named font, " "including by :meth:`~tkinter.font.Font.copy`, now copies its configured " -"options rather than the options resolved by Tcl's ``font actual``, preserving" -" a size specified in pixels (a negative size)." +"options rather than the options resolved by Tcl's ``font actual``, " +"preserving a size specified in pixels (a negative size)." msgstr "" -#: ../NEWS:1084 +#: ../NEWS:1258 msgid "" -":gh:`148286`: Fix undefined behavior in " -":attr:`compression.zstd.ZstdDecompressor.unused_data` when a complete frame " -"was decompressed in a single call." +":gh:`148286`: Fix undefined behavior in :attr:`compression.zstd." +"ZstdDecompressor.unused_data` when a complete frame was decompressed in a " +"single call." msgstr "" -#: ../NEWS:1088 +#: ../NEWS:1262 msgid ":gh:`153210`: Fix crash on :mod:`array` import under a memory pressure." msgstr "" -#: ../NEWS:1090 +#: ../NEWS:1264 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:1094 +#: ../NEWS:1268 msgid "" ":gh:`153068`: Fix :meth:`!cProfile.Profile.enable` to no longer overwrite " "errors from :mod:`sys.monitoring`." msgstr "" -#: ../NEWS:1097 +#: ../NEWS:1271 msgid "" -":gh:`153062`: Fix a crash when concurrently iterating an " -":func:`itertools.tee` iterator on the free-threaded build." +":gh:`153062`: Fix a crash when concurrently iterating an :func:`itertools." +"tee` iterator on the free-threaded build." msgstr "" -#: ../NEWS:1100 +#: ../NEWS:1274 msgid "" -":gh:`153056`: Fix :class:`string.Template` raising a spurious " -":exc:`ValueError` when the *pattern* attribute is a compiled regular " -"expression object, which the documentation allows. On the free-threaded " -"build this also occurred as a data race on the first concurrent use." +":gh:`153056`: Fix :class:`string.Template` raising a spurious :exc:" +"`ValueError` when the *pattern* attribute is a compiled regular expression " +"object, which the documentation allows. On the free-threaded build this " +"also occurred as a data race on the first concurrent use." msgstr "" -#: ../NEWS:1105 +#: ../NEWS:1279 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." +":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:1109 +#: ../NEWS:1283 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:1113 +#: ../NEWS:1287 msgid "" -":gh:`152851`: Prevent a crash when allocation fails while copying a " -":func:`BLAKE-2s/2b ` object. Patch by Bénédikt Tran." +":gh:`152851`: Prevent a crash when allocation fails while copying a :func:" +"`BLAKE-2s/2b ` object. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:1116 +#: ../NEWS:1290 msgid "" ":gh:`54930`: Error responses of :class:`http.server.BaseHTTPRequestHandler` " "to malformed request lines now include a status line and headers instead of " @@ -2142,67 +2382,66 @@ msgid "" "word ``GET`` request line) now receives an HTTP/0.9 style response." msgstr "" -#: ../NEWS:1121 +#: ../NEWS:1295 msgid "" ":gh:`119592`: Fix :class:`concurrent.futures.ProcessPoolExecutor` stranding " "submitted work forever when a worker process exited upon reaching its " -"*max_tasks_per_child* limit after " -":meth:`~concurrent.futures.Executor.shutdown` was called with ``wait=False``:" -" a replacement worker is now spawned and the remaining work executed as " -"documented. If the executor has instead been garbage collected without " -"``shutdown()`` (:gh:`152967`), or a replacement worker cannot be started, the" -" remaining futures now fail with " -":exc:`~concurrent.futures.process.BrokenProcessPool` instead of never " +"*max_tasks_per_child* limit after :meth:`~concurrent.futures.Executor." +"shutdown` was called with ``wait=False``: a replacement worker is now " +"spawned and the remaining work executed as documented. If the executor has " +"instead been garbage collected without ``shutdown()`` (:gh:`152967`), or a " +"replacement worker cannot be started, the remaining futures now fail with :" +"exc:`~concurrent.futures.process.BrokenProcessPool` instead of never " "resolving. A worker exit racing ``shutdown(wait=False)`` can also no longer " "crash the executor management thread." msgstr "" -#: ../NEWS:1133 +#: ../NEWS:1307 msgid "" ":gh:`152951`: :class:`collections.deque` prevent rare crash when calling " "``extend`` under high memory pressure conditions." msgstr "" -#: ../NEWS:1136 +#: ../NEWS:1310 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:1140 +#: ../NEWS:1314 msgid "" -":gh:`152849`: Out-of-range float and integer timestamps now raise " -":exc:`OverflowError` with the same message. Patch by tonghuaroot." +":gh:`152849`: Out-of-range float and integer timestamps now raise :exc:" +"`OverflowError` with the same message. Patch by tonghuaroot." msgstr "" -#: ../NEWS:1143 +#: ../NEWS:1317 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:1147 +#: ../NEWS:1321 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) " -"now raises an error reporting the server's response instead of " -"``imaplib.IMAP4.error: None``." +"now raises an error reporting the server's response instead of ``imaplib." +"IMAP4.error: None``." msgstr "" -#: ../NEWS:1152 +#: ../NEWS:1326 msgid "" ":gh:`63121`: :mod:`imaplib` now refreshes the cached capability list after a " -"successful :meth:`~imaplib.IMAP4.login` or " -":meth:`~imaplib.IMAP4.authenticate`, using the ``CAPABILITY`` response sent " -"by the server or, if none was sent, by querying it, so that capabilities that" -" become available only after authentication (such as ``ENABLE`` on Gmail) are" -" recognized. Capabilities advertised in the server greeting are now also " -"used, avoiding a redundant ``CAPABILITY`` command." +"successful :meth:`~imaplib.IMAP4.login` or :meth:`~imaplib.IMAP4." +"authenticate`, using the ``CAPABILITY`` response sent by the server or, if " +"none was sent, by querying it, so that capabilities that become available " +"only after authentication (such as ``ENABLE`` on Gmail) are recognized. " +"Capabilities advertised in the server greeting are now also used, avoiding a " +"redundant ``CAPABILITY`` command." msgstr "" -#: ../NEWS:1161 +#: ../NEWS:1335 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 " @@ -2210,23 +2449,23 @@ msgid "" "Such blank lines are now skipped without swallowing the following line." msgstr "" -#: ../NEWS:1166 +#: ../NEWS:1340 msgid "" -":gh:`152502`: Detect the :mod:`curses` mouse interface " -"(:func:`~curses.getmouse`, the ``BUTTON*`` constants, and others) with a " -"configure capability probe or library macros instead of gating it on ncurses-" -"specific macros. It is now also available with other curses implementations " -"that provide it, such as NetBSD curses and PDCurses (the latter underpins " +":gh:`152502`: Detect the :mod:`curses` mouse interface (:func:`~curses." +"getmouse`, the ``BUTTON*`` constants, and others) with a configure " +"capability probe or library macros instead of gating it on ncurses-specific " +"macros. It is now also available with other curses implementations that " +"provide it, such as NetBSD curses and PDCurses (the latter underpins " "``windows-curses``)." msgstr "" -#: ../NEWS:1173 +#: ../NEWS:1347 msgid "" -":gh:`151842`: Fix a crash in :func:`!_interpreters.capture_exception` when " -":exc:`MemoryError` happens. Patch by Amrutha Modela." +":gh:`151842`: Fix a crash in :func:`!_interpreters.capture_exception` when :" +"exc:`MemoryError` happens. Patch by Amrutha Modela." msgstr "" -#: ../NEWS:1176 +#: ../NEWS:1350 msgid "" ":gh:`40038`: :mod:`imaplib` now again quotes command arguments when " "necessary, for example mailbox names containing a space. Such quoting was " @@ -2236,15 +2475,15 @@ msgid "" "unchanged, so code that quotes arguments itself keeps working." msgstr "" -#: ../NEWS:1183 +#: ../NEWS:1357 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 redrawn," -" for example with ``screen.ondrag(turtle.goto)``. This could previously " -"crash the interpreter." +"handler that moves the turtle is reentered while the screen is being " +"redrawn, for example with ``screen.ondrag(turtle.goto)``. This could " +"previously crash the interpreter." msgstr "" -#: ../NEWS:1188 +#: ../NEWS:1362 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 " @@ -2252,43 +2491,43 @@ msgid "" "returns, even for pending futures." msgstr "" -#: ../NEWS:1193 +#: ../NEWS:1367 msgid "" ":gh:`78335`: Update the docstrings of :mod:`tkinter` and :mod:`tkinter.ttk` " "widget classes to list all supported widget options, including options added " -"in Tk 9.0 and 9.1. ``tkinter.Menubutton`` and ``tkinter.Message`` previously" -" had no option list at all." +"in Tk 9.0 and 9.1. ``tkinter.Menubutton`` and ``tkinter.Message`` " +"previously had no option list at all." msgstr "" -#: ../NEWS:1198 +#: ../NEWS:1372 msgid "" ":gh:`152431`: Fix ``asyncio.StreamWriter.start_tls()`` to keep the linked " "``StreamReader`` transport in sync with the upgraded transport." msgstr "" -#: ../NEWS:1201 +#: ../NEWS:1375 msgid "" ":gh:`151126`: Fix two crashes in :mod:`tkinter` and :mod:`socket` modules " "initialization under a memory pressure. Sets missing :exc:`MemoryError`." msgstr "" -#: ../NEWS:1204 +#: ../NEWS:1378 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:1208 +#: ../NEWS:1382 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 " +":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 " "move the cursor past the end of the window, raising an error and scrolling a " "scrollable window, so it is now written with :meth:`~curses.window.insch`, " "which keeps the cursor in place." msgstr "" -#: ../NEWS:1214 +#: ../NEWS:1388 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 " @@ -2296,36 +2535,36 @@ msgid "" "reported." msgstr "" -#: ../NEWS:1219 +#: ../NEWS:1393 msgid "" ":gh:`152305`: Fix the pure-Python :meth:`datetime.time.strftime` " "implementation raising :exc:`AttributeError` for the year directives. Patch " "by tonghuaroot." msgstr "" -#: ../NEWS:1223 +#: ../NEWS:1397 msgid "" -":gh:`88758`: :meth:`!tkinter.Misc.focus_get`, :meth:`!focus_displayof`, " -":meth:`!focus_lastfor` and :meth:`!winfo_containing` now return ``None`` " -"instead of raising :exc:`KeyError` when the widget was not created by " -":mod:`tkinter` (for example a torn-off menu)." +":gh:`88758`: :meth:`!tkinter.Misc.focus_get`, :meth:`!focus_displayof`, :" +"meth:`!focus_lastfor` and :meth:`!winfo_containing` now return ``None`` " +"instead of raising :exc:`KeyError` when the widget was not created by :mod:" +"`tkinter` (for example a torn-off menu)." msgstr "" -#: ../NEWS:1228 +#: ../NEWS:1402 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:1232 +#: ../NEWS:1406 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:1237 +#: ../NEWS:1411 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 " @@ -2333,13 +2572,14 @@ msgid "" "reference cycle." msgstr "" -#: ../NEWS:1242 +#: ../NEWS:1416 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." +":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:1246 +#: ../NEWS:1420 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 " @@ -2347,370 +2587,366 @@ msgid "" "callbacks now keep running until input is actually available on stdin." msgstr "" -#: ../NEWS:1252 +#: ../NEWS:1426 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:`!wait_variable`) was active and input arrived on stdin, the event loop" -" kept spinning at 100% CPU. The stdin file handler is now removed as soon as " -"input is available. Based on a patch by Michiel de Hoon." +"a Tcl command running its own event loop (such as ``vwait`` or :meth:`!" +"wait_variable`) was active and input arrived on stdin, the event loop kept " +"spinning at 100% CPU. The stdin file handler is now removed as soon as input " +"is available. Based on a patch by Michiel de Hoon." msgstr "" -#: ../NEWS:1258 +#: ../NEWS:1432 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 POSIX " -"and now raises :exc:`ValueError`, matching the C accelerator. Patch by " +":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 " +"POSIX and now raises :exc:`ValueError`, matching the C accelerator. Patch by " "tonghuaroot." msgstr "" -#: ../NEWS:1263 +#: ../NEWS:1437 msgid "" ":gh:`152156`: Fix a possible crash in :func:`concurrent.interpreters.create` " "under limited memory conditions." msgstr "" -#: ../NEWS:1266 +#: ../NEWS:1440 msgid "" -":gh:`152157`: The C implementations of " -":meth:`~datetime.datetime.fromisoformat` and " -":meth:`~datetime.time.fromisoformat` now reject a decimal separator that is " -"not followed by any fractional digit before a timezone designator." +":gh:`152157`: The C implementations of :meth:`~datetime.datetime." +"fromisoformat` and :meth:`~datetime.time.fromisoformat` now reject a decimal " +"separator that is not followed by any fractional digit before a timezone " +"designator." msgstr "" -#: ../NEWS:1271 +#: ../NEWS:1445 msgid "" -":gh:`151763`: Fix crash in :func:`!_interpqueues.create` whe " -":exc:`MemoryError` happens on queue creation." +":gh:`151763`: Fix crash in :func:`!_interpqueues.create` whe :exc:" +"`MemoryError` happens on queue creation." msgstr "" -#: ../NEWS:1274 +#: ../NEWS:1448 msgid "" ":gh:`105895`: Add :keyword:`match` and :keyword:`case` to the list of " "supported topics by :func:`help`." msgstr "" -#: ../NEWS:1277 +#: ../NEWS:1451 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:1281 +#: ../NEWS:1455 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:1284 +#: ../NEWS:1458 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." +":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:1288 +#: ../NEWS:1462 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:1292 +#: ../NEWS:1466 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." +"offset for ``time.struct_time`` values with ``tm_gmtoff`` set to ``None``, " +"as returned by ``datetime.datetime.timetuple()``. Contributed by Xiao Yuan." msgstr "" -#: ../NEWS:1297 +#: ../NEWS:1471 msgid "" ":gh:`151814`: Fix unbounded memory growth in :class:`io.TextIOWrapper` when " "repeatedly writing an empty string." msgstr "" -#: ../NEWS:1300 +#: ../NEWS:1474 msgid "" -":gh:`151770`: Fix :meth:`datetime.datetime.fromisoformat` raising " -":exc:`AssertionError` instead of :exc:`ValueError` for an out-of-range month " +":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:1304 +#: ../NEWS:1478 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:1307 +#: ../NEWS:1481 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:`curses.ungetch` to encode non-ASCII characters, is now kept as a " -"private copy instead of a borrowed pointer to a window object that may be " +":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:" +"`curses.ungetch` to encode non-ASCII characters, is now kept as a private " +"copy instead of a borrowed pointer to a window object that may be " "deallocated." msgstr "" -#: ../NEWS:1313 +#: ../NEWS:1487 msgid "" ":gh:`151596`: Add missing ``size`` positional argument to the pure-Python " "implementation of :meth:`io.TextIOBase.readline`." msgstr "" -#: ../NEWS:1316 +#: ../NEWS:1490 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:1320 +#: ../NEWS:1494 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:1324 +#: ../NEWS:1498 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 oversized" -" extended header (a GNU long name/link or a pax header). The extended header" -" is now read in bounded chunks, so its size field can no longer trigger " -"memory exhaustion." +"allocate a huge buffer when a crafted or truncated member claims an " +"oversized extended header (a GNU long name/link or a pax header). The " +"extended header is now read in bounded chunks, so its size field can no " +"longer trigger memory exhaustion." msgstr "" -#: ../NEWS:1330 +#: ../NEWS:1504 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." +"``_posixsubprocess.fork_exec``) when an ``argv`` item's :meth:`~os.PathLike." +"__fspath__` concurrently mutates the ``args`` sequence being converted." msgstr "" -#: ../NEWS:1335 +#: ../NEWS:1509 msgid "" -":gh:`151390`: Colorize ``match`` in the :term:`REPL` when followed by a unary" -" ``+`` or ``-`` operator. Patch by Bartosz Sławecki." +":gh:`151390`: Colorize ``match`` in the :term:`REPL` when followed by a " +"unary ``+`` or ``-`` operator. Patch by Bartosz Sławecki." msgstr "" -#: ../NEWS:1338 +#: ../NEWS:1512 msgid "" -":gh:`151126`: Fix crash on unset :exc:`MemoryError` on allocation failure in " -":func:`ctypes.get_errno`." +":gh:`151126`: Fix crash on unset :exc:`MemoryError` on allocation failure " +"in :func:`ctypes.get_errno`." msgstr "" -#: ../NEWS:1341 +#: ../NEWS:1515 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* list" -" during argument conversion. :func:`!os.spawnv` argument conversion errors " -"other than :exc:`TypeError`, such as the :exc:`ValueError` for an embedded " -"null, are no longer replaced with a generic :exc:`TypeError`." +":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* " +"list during argument conversion. :func:`!os.spawnv` argument conversion " +"errors other than :exc:`TypeError`, such as the :exc:`ValueError` for an " +"embedded null, are no longer replaced with a generic :exc:`TypeError`." msgstr "" -#: ../NEWS:1347 +#: ../NEWS:1521 msgid ":gh:`151337`: Avoid possible memory leak in ``tkinter.c`` on Windows." msgstr "" -#: ../NEWS:1349 +#: ../NEWS:1523 msgid "" -":gh:`151126`: Fix a crash when :exc:`MemoryError` in " -":func:`!os._path_splitroot` was not set properly." +":gh:`151126`: Fix a crash when :exc:`MemoryError` in :func:`!os." +"_path_splitroot` was not set properly." msgstr "" -#: ../NEWS:1357 +#: ../NEWS:1531 msgid "" -":gh:`119710`: Fix :mod:`asyncio` subprocess " -":meth:`~asyncio.subprocess.Process.wait` hanging when the process has exited " -"but one of its pipes is kept open by an inherited child process (so the pipe " -"never reaches EOF). ``wait()`` now returns as soon as the process exits, " -"regardless of the pipes' state." +":gh:`119710`: Fix :mod:`asyncio` subprocess :meth:`~asyncio.subprocess." +"Process.wait` hanging when the process has exited but one of its pipes is " +"kept open by an inherited child process (so the pipe never reaches EOF). " +"``wait()`` now returns as soon as the process exits, regardless of the " +"pipes' state." msgstr "" -#: ../NEWS:1363 +#: ../NEWS:1537 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__` concurrently mutates the sequence being joined. " -"The mutation is now reported as a :exc:`RuntimeError` instead." +":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__` " +"concurrently mutates the sequence being joined. The mutation is now reported " +"as a :exc:`RuntimeError` instead." msgstr "" -#: ../NEWS:1368 +#: ../NEWS:1542 msgid "" ":gh:`109940`: Fix Windows :mod:`venv` activation in ``cmd.exe`` to respect " "``VIRTUAL_ENV_DISABLE_PROMPT``." msgstr "" -#: ../NEWS:1371 +#: ../NEWS:1545 msgid "" ":gh:`117807`: Fix :mod:`mimetypes` initialization from MIME map files " "containing invalid UTF-8 bytes." msgstr "" -#: ../NEWS:1374 +#: ../NEWS:1548 msgid "" -":gh:`150583`: Correctly set the default compression level in " -":mod:`compression.zstd` when passing a digested dictionary during " -"compression." +":gh:`150583`: Correctly set the default compression level in :mod:" +"`compression.zstd` when passing a digested dictionary during compression." msgstr "" -#: ../NEWS:1378 +#: ../NEWS:1552 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:1382 +#: ../NEWS:1556 msgid "" ":gh:`150484`: Fix :func:`unittest.mock.mock_open` ``__exit__`` raising " "``TypeError`` when used with :class:`contextlib.ExitStack`." msgstr "" -#: ../NEWS:1385 +#: ../NEWS:1559 msgid "" -":gh:`149816`: Fix a potential use after free condition in " -":func:`pickle.dumps` in free-threaded mode when serializing lists." +":gh:`149816`: Fix a potential use after free condition in :func:`pickle." +"dumps` in free-threaded mode when serializing lists." msgstr "" -#: ../NEWS:1388 +#: ../NEWS:1562 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." +":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:1392 +#: ../NEWS:1566 msgid "" ":gh:`47005`: Fix :meth:`!urllib.request.AbstractHTTPHandler.do_open` to give " "regular headers set via :meth:`~urllib.request.Request.add_header` priority " -"over unredirected headers, consistent with " -":meth:`~urllib.request.Request.get_header` and " -":meth:`~urllib.request.Request.header_items`." +"over unredirected headers, consistent with :meth:`~urllib.request.Request." +"get_header` and :meth:`~urllib.request.Request.header_items`." msgstr "" -#: ../NEWS:1398 +#: ../NEWS:1572 msgid "" ":gh:`123471`: Make concurrent iteration over :class:`itertools.zip_longest` " "safe under free-threading." msgstr "" -#: ../NEWS:1401 +#: ../NEWS:1575 msgid "" ":gh:`123720`: asyncio: Fix :func:`asyncio.Server.serve_forever` shutdown " -"regression. Since 3.12, cancelling ``serve_forever()`` could hang waiting for" -" a handler blocked on a read from a client that never closed (effectively " +"regression. Since 3.12, cancelling ``serve_forever()`` could hang waiting " +"for a handler blocked on a read from a client that never closed (effectively " "requiring two interrupts to stop); the shutdown sequence now ensures client " -"streams are closed so ``serve_forever()`` exits promptly and handlers observe" -" EOF." +"streams are closed so ``serve_forever()`` exits promptly and handlers " +"observe EOF." msgstr "" -#: ../NEWS:1408 +#: ../NEWS:1582 msgid "" ":gh:`123471`: Make concurrent iteration over :class:`itertools.accumulate` " "safe under free-threading." msgstr "" -#: ../NEWS:1411 +#: ../NEWS:1585 msgid "" -":gh:`123471`: Make concurrent iteration over " -":class:`itertools.combinations_with_replacement` and " -":class:`itertools.permutations` safe under free-threading." +":gh:`123471`: Make concurrent iteration over :class:`itertools." +"combinations_with_replacement` and :class:`itertools.permutations` safe " +"under free-threading." msgstr "" -#: ../NEWS:1415 +#: ../NEWS:1589 msgid "" -":gh:`143988`: Fixed crashes in :meth:`socket.socket.sendmsg` and " -":meth:`socket.socket.recvmsg_into` that could occur if buffer sequences are " +":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:1419 +#: ../NEWS:1593 msgid "" -":gh:`130796`: Undeprecate the :func:`locale.getdefaultlocale` function. Patch" -" by Victor Stinner." +":gh:`130796`: Undeprecate the :func:`locale.getdefaultlocale` function. " +"Patch by Victor Stinner." msgstr "" -#: ../NEWS:1422 +#: ../NEWS:1596 msgid "" -":gh:`115634`: Fix a deadlock in " -":class:`concurrent.futures.ProcessPoolExecutor` when using " -"``max_tasks_per_child``, present since the feature was introduced in Python " -"3.11. The executor stopped scheduling queued tasks after a worker process " -"exited upon reaching its task limit. Based on a fix proposed by Tabrez " -"Mohammed." +":gh:`115634`: Fix a deadlock in :class:`concurrent.futures." +"ProcessPoolExecutor` when using ``max_tasks_per_child``, present since the " +"feature was introduced in Python 3.11. The executor stopped scheduling " +"queued tasks after a worker process exited upon reaching its task limit. " +"Based on a fix proposed by Tabrez Mohammed." msgstr "" -#: ../NEWS:1429 +#: ../NEWS:1603 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:1433 +#: ../NEWS:1607 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:1436 +#: ../NEWS:1610 msgid "" ":gh:`123471`: Make concurrent iterations over :class:`itertools.chain` safe " "under :term:`free threading`." msgstr "" -#: ../NEWS:1439 +#: ../NEWS:1613 msgid "" -":gh:`123471`: Make concurrent iterations over :class:`itertools.combinations`" -" and :class:`itertools.product` safe under free-threading." +":gh:`123471`: Make concurrent iterations over :class:`itertools." +"combinations` and :class:`itertools.product` safe under free-threading." msgstr "" -#: ../NEWS:1442 +#: ../NEWS:1616 msgid "" ":gh:`123471`: Make concurrent iterations over :class:`itertools.cycle` safe " "under free-threading." msgstr "" -#: ../NEWS:1445 +#: ../NEWS:1619 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:1449 +#: ../NEWS:1623 msgid "" -":gh:`105708`: Accept an uppercase V prefix in IPvFuture addresses in " -":func:`urllib.parse.urlsplit`." +":gh:`105708`: Accept an uppercase V prefix in IPvFuture addresses in :func:" +"`urllib.parse.urlsplit`." msgstr "" -#: ../NEWS:1452 +#: ../NEWS:1626 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." +":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:1456 +#: ../NEWS:1630 msgid "" -":gh:`101267`: When a worker process terminates unexpectedly, " -":class:`concurrent.futures.ProcessPoolExecutor` now sets a separate " -":exc:`~concurrent.futures.process.BrokenProcessPool` exception on each " -"pending future instead of sharing a single instance among them all. Sharing " -"one exception produced malformed tracebacks: each :meth:`Future.result() " -"` call re-raised the same object, appending" -" another copy of the traceback to it." +":gh:`101267`: When a worker process terminates unexpectedly, :class:" +"`concurrent.futures.ProcessPoolExecutor` now sets a separate :exc:" +"`~concurrent.futures.process.BrokenProcessPool` exception on each pending " +"future instead of sharing a single instance among them all. Sharing one " +"exception produced malformed tracebacks: each :meth:`Future.result() " +"` call re-raised the same object, " +"appending another copy of the traceback to it." msgstr "" -#: ../NEWS:1467 +#: ../NEWS:1641 msgid "" ":gh:`118150`: Clarify in the :mod:`difflib` documentation what *junk* " "actually does, its drawbacks, and how to control it." msgstr "" -#: ../NEWS:1470 +#: ../NEWS:1644 msgid "" ":gh:`86726`: Greatly expand the :mod:`tkinter` documentation to cover the " "full public API of the package and its submodules. The descriptions are " @@ -2718,114 +2954,114 @@ msgid "" "``versionadded``/``versionchanged`` information." msgstr "" -#: ../NEWS:1478 +#: ../NEWS:1652 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:1482 +#: ../NEWS:1656 msgid ":gh:`76595`: Add C API tests for :c:func:`PyCapsule_Import`." msgstr "" -#: ../NEWS:1484 +#: ../NEWS:1658 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:1488 +#: ../NEWS:1662 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:1492 +#: ../NEWS:1666 msgid ":gh:`154144`: Fix building the :mod:`!_testcapi` module on NetBSD." msgstr "" -#: ../NEWS:1494 +#: ../NEWS:1668 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:1498 +#: ../NEWS:1672 msgid "" -":gh:`151626`: Fix several tests in ``test.test_inspect``, " -"``test.test_import``, ``test.test_importlib``, ``test.test_py_compile`` and " -"``test.test_compileall`` that failed when the test suite was run with " -":envvar:`PYTHONPYCACHEPREFIX` set. These tests now neutralize the pycache " -"prefix where they assume the default ``__pycache__`` bytecode layout." +":gh:`151626`: Fix several tests in ``test.test_inspect``, ``test." +"test_import``, ``test.test_importlib``, ``test.test_py_compile`` and ``test." +"test_compileall`` that failed when the test suite was run with :envvar:" +"`PYTHONPYCACHEPREFIX` set. These tests now neutralize the pycache prefix " +"where they assume the default ``__pycache__`` bytecode layout." msgstr "" -#: ../NEWS:1504 +#: ../NEWS:1678 msgid "" ":gh:`151096`: Fix ``test_embed`` failing when CPython is configured with a " "split exec prefix (``--exec-prefix`` differing from ``--prefix``)." msgstr "" -#: ../NEWS:1507 +#: ../NEWS:1681 msgid "" ":gh:`148853`: Fix tests failing on FreeBSD in test.support's " "in_systemd_nspawn_sync_suppressed() due to unreadable /run directory." msgstr "" -#: ../NEWS:1513 +#: ../NEWS:1687 msgid "" -":gh:`154070`: Build the :mod:`curses` module against a wide-character capable" -" ncurses even when it is not named ``ncursesw`` -- for example the pkgsrc " -"ncurses on NetBSD and illumos, or the system ncurses on macOS. Such a " -"library previously produced a narrow build." +":gh:`154070`: Build the :mod:`curses` module against a wide-character " +"capable ncurses even when it is not named ``ncursesw`` -- for example the " +"pkgsrc ncurses on NetBSD and illumos, or the system ncurses on macOS. Such " +"a library previously produced a narrow build." msgstr "" -#: ../NEWS:1518 +#: ../NEWS:1692 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:1521 +#: ../NEWS:1695 msgid "" -":gh:`153438`: Update Windows build and installer tooling and documentation to" -" use the current download URL for ``nuget.exe``." +":gh:`153438`: Update Windows build and installer tooling and documentation " +"to use the current download URL for ``nuget.exe``." msgstr "" -#: ../NEWS:1524 +#: ../NEWS:1698 msgid "" ":gh:`152502`: The :mod:`curses` module now detects ``set_escdelay()``, " -"``set_tabsize()`` and the ``ESCDELAY`` and ``TABSIZE`` variables with " -":program:`configure` capability probes instead of the ncurses-specific " +"``set_tabsize()`` and the ``ESCDELAY`` and ``TABSIZE`` variables with :" +"program:`configure` capability probes instead of the ncurses-specific " "``NCURSES_EXT_FUNCS`` macro, so they are exposed when building against other " "curses implementations such as NetBSD curses that provide them." msgstr "" -#: ../NEWS:1530 +#: ../NEWS:1704 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." +"thread stack size of at least 1 MiB instead of musl default which is 128 " +"kiB. Patch by Victor Stinner." msgstr "" -#: ../NEWS:1534 +#: ../NEWS:1708 msgid ":gh:`138800`: Fix library name in python3.pc on Android." msgstr "" -#: ../NEWS:1539 +#: ../NEWS:1713 msgid ":gh:`124111`: Updated Windows builds to use Tcl/Tk 9.0.4." msgstr "" -#: ../NEWS:1541 +#: ../NEWS:1715 msgid "" -":gh:`150836`: Make installed tkinter work with Tcl/Tk 9 builds that embed the" -" Tk script library in the Tk DLL on Windows." +":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:1544 +#: ../NEWS:1718 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 " @@ -2833,178 +3069,178 @@ msgid "" "cpython test suite." msgstr "" -#: ../NEWS:1552 +#: ../NEWS:1726 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 " +":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:1556 +#: ../NEWS:1730 msgid ":gh:`124111`: Update macOS installer to use Tcl/Tk 9.0.4." msgstr "" -#: ../NEWS:1561 +#: ../NEWS:1735 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." +":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:1565 +#: ../NEWS:1739 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:1569 +#: ../NEWS:1743 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 " +":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:1573 +#: ../NEWS:1747 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:1577 +#: ../NEWS:1751 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:1581 +#: ../NEWS:1755 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:1585 +#: ../NEWS:1759 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:1589 +#: ../NEWS:1763 msgid "" ":gh:`152728`: Move functions run.fix_scaling, editor.fixwordbreaks (as " "fix_word_breaks) and pyshell.fix_x11_paste to idlelib.util." msgstr "" -#: ../NEWS:1592 +#: ../NEWS:1766 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:1596 +#: ../NEWS:1770 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-" -"ASCII data (such as non-ASCII paths) from being corrupted and makes the files" -" portable between environments." +"ASCII data (such as non-ASCII paths) from being corrupted and makes the " +"files portable between environments." msgstr "" -#: ../NEWS:1601 +#: ../NEWS:1775 msgid "" -":gh:`94523`: Detect file if modified at local disk and prompt to ask refresh." -" Patch by Shixian Li." +":gh:`94523`: Detect file if modified at local disk and prompt to ask " +"refresh. Patch by Shixian Li." msgstr "" -#: ../NEWS:1604 +#: ../NEWS:1778 msgid ":gh:`139551`: Support rendering :exc:`BaseExceptionGroup` in IDLE." msgstr "" -#: ../NEWS:1606 +#: ../NEWS:1780 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:1613 +#: ../NEWS:1787 msgid "" -":gh:`155218`: Fix Argument Clinic generating the flags of the optional groups" -" in different order on 32-bit and 64-bit platforms." +":gh:`155218`: Fix Argument Clinic generating the flags of the optional " +"groups in different order on 32-bit and 64-bit platforms." msgstr "" -#: ../NEWS:1616 +#: ../NEWS:1790 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:1620 +#: ../NEWS:1794 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:1627 +#: ../NEWS:1801 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:1631 +#: ../NEWS:1805 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." +"variables. For example, ``PyConfig_Set(\"inspect\", value)`` now also sets :" +"c:var:`Py_InspectFlag`. Patch by Victor Stinner." msgstr "" -#: ../NEWS:1635 +#: ../NEWS:1809 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." +"``0`` if the object is not tracked by the garbage collector: if :func:`gc." +"is_tracked` is false. Patch by Victor Stinner." msgstr "" -#: ../NEWS:1641 +#: ../NEWS:1815 msgid "Python 3.14.6 final" msgstr "" -#: ../NEWS:1643 +#: ../NEWS:1817 msgid "*Release date: 2026-06-10*" msgstr "" -#: ../NEWS:1648 +#: ../NEWS:1822 msgid ":gh:`151159`: Update Android and iOS installers to use OpenSSL 3.5.7." msgstr "" -#: ../NEWS:1650 +#: ../NEWS:1824 msgid "" -":gh:`150599`: Fix a possible stack buffer overflow in :mod:`bz2` when a " -":class:`bz2.BZ2Decompressor` is reused after a decompression error. The " +":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:1654 +#: ../NEWS:1828 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." +":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:1658 +#: ../NEWS:1832 msgid "" ":gh:`149698`: Update bundled `libexpat `_ to " "version 2.8.1 for the fix for :cve:`2026-45186`." msgstr "" -#: ../NEWS:1661 +#: ../NEWS:1835 msgid "" ":gh:`87451`: The :mod:`ftplib` module's undocumented ``ftpcp`` function no " "longer trusts the IPv4 address value returned from the source server in " @@ -3015,53 +3251,54 @@ msgid "" "Aurascape AI for the report." msgstr "" -#: ../NEWS:1669 +#: ../NEWS:1843 msgid "" ":gh:`149486`: :func:`tarfile.data_filter` now validates link targets using " -"the same normalised value that is written to disk, strips trailing separators" -" from the member name when resolving a symlink's directory, and rejects link " -"members that would replace the destination directory itself. This closes " -"several path-traversal bypasses of the ``data`` extraction filter." +"the same normalised value that is written to disk, strips trailing " +"separators from the member name when resolving a symlink's directory, and " +"rejects link members that would replace the destination directory itself. " +"This closes several path-traversal bypasses of the ``data`` extraction " +"filter." msgstr "" -#: ../NEWS:1676 +#: ../NEWS:1850 msgid "" -":gh:`149079`: Fix a potential denial of service in " -":func:`unicodedata.normalize`. The canonical ordering step of Unicode " -"normalization used a quadratic-time insertion sort for reordering combining " -"characters, which could be exploited with crafted input containing many " -"combining characters in non-canonical order. Replaced with a linear-time " -"counting sort for long runs." +":gh:`149079`: Fix a potential denial of service in :func:`unicodedata." +"normalize`. The canonical ordering step of Unicode normalization used a " +"quadratic-time insertion sort for reordering combining characters, which " +"could be exploited with crafted input containing many combining characters " +"in non-canonical order. Replaced with a linear-time counting sort for long " +"runs." msgstr "" -#: ../NEWS:1683 +#: ../NEWS:1857 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." +":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:1690 +#: ../NEWS:1864 msgid "" ":gh:`151112`: Fix a crash in the compiler that could occur when running out " "of memory." msgstr "" -#: ../NEWS:1693 +#: ../NEWS:1867 msgid "" ":gh:`151126`: Fix a crash, when there's no memory left on a device, which " "happened in:" msgstr "" -#: ../NEWS:1696 +#: ../NEWS:1870 msgid "code compilation - :func:`!_winapi.CreateProcess`" msgstr "" -#: ../NEWS:1698 +#: ../NEWS:1872 msgid "Now these places raise proper :exc:`MemoryError` errors." msgstr "" -#: ../NEWS:1700 +#: ../NEWS:1874 msgid "" ":gh:`150700`: Fix a :exc:`SystemError` when compiling a class-scope " "comprehension containing a ``lambda`` that references ``__class__``, " @@ -3069,211 +3306,212 @@ msgid "" "Sławecki." msgstr "" -#: ../NEWS:1705 +#: ../NEWS:1879 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:1709 +#: ../NEWS:1883 msgid "" -":gh:`148613`: Fix a data race in the free-threaded build between " -":func:`gc.set_threshold` and garbage collection scheduling during object " -"allocation." +":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:1713 +#: ../NEWS:1887 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:1717 +#: ../NEWS:1891 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 that" -" decode ``\\N{...}`` escapes or use the ``namereplace`` codec error handler." +"was removed from :data:`sys.modules` and garbage-collected between calls " +"that decode ``\\N{...}`` escapes or use the ``namereplace`` codec error " +"handler." msgstr "" -#: ../NEWS:1722 +#: ../NEWS:1896 msgid "" ":gh:`150207`: Fix a crash when a memory allocation fails during tokenizer " "initialization. A proper :exc:`MemoryError` is now raised instead." msgstr "" -#: ../NEWS:1725 +#: ../NEWS:1899 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:1729 +#: ../NEWS:1903 msgid ":gh:`150146`: Fix a crash on a complex type variable substitution." msgstr "" -#: ../NEWS:1731 +#: ../NEWS:1905 msgid "" -"``from typing import TypeVar; memoryview[TypeVar(\"\")][*typing.Mapping[..., " -"...]]`` used to fail due to missing ``NULL`` check on ``_unpack_args`` C " -"function call." +"``from typing import TypeVar; memoryview[TypeVar(\"\")][*typing." +"Mapping[..., ...]]`` used to fail due to missing ``NULL`` check on " +"``_unpack_args`` C function call." msgstr "" -#: ../NEWS:1735 +#: ../NEWS:1909 msgid ":gh:`149590`: Fix crash when faulthandler is imported more than once." msgstr "" -#: ../NEWS:1737 +#: ../NEWS:1911 msgid "" -":gh:`149816`: Fix a race condition in ``_PyBytes_FromList`` in free-threading" -" mode." +":gh:`149816`: Fix a race condition in ``_PyBytes_FromList`` in free-" +"threading mode." msgstr "" -#: ../NEWS:1740 +#: ../NEWS:1914 msgid "" ":gh:`149816`: Fix a race condition in :class:`memoryview` with free-" "threading." msgstr "" -#: ../NEWS:1743 +#: ../NEWS:1917 msgid "" ":gh:`149805`: Fix a :exc:`SystemError` when compiling a compiling " -"``__classdict__`` class annotation. Found by OSS-Fuzz in :oss-" -"fuzz:`512907042`." +"``__classdict__`` class annotation. Found by OSS-Fuzz in :oss-fuzz:" +"`512907042`." msgstr "" -#: ../NEWS:1747 +#: ../NEWS:1921 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:1750 +#: ../NEWS:1924 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:1753 +#: ../NEWS:1927 msgid "" ":gh:`148450`: Fix ``abc.register()`` so it invalidates type version tags for " "registered classes." msgstr "" -#: ../NEWS:1759 +#: ../NEWS:1933 msgid "" ":gh:`151039`: Fix a crash when static :mod:`datetime` types outlive the " "``_datetime`` module." msgstr "" -#: ../NEWS:1762 +#: ../NEWS:1936 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." +":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:1766 +#: ../NEWS:1940 msgid "" -":gh:`143008`: Fix race conditions when re-initializing a " -":class:`io.TextIOWrapper` object." +":gh:`143008`: Fix race conditions when re-initializing a :class:`io." +"TextIOWrapper` object." msgstr "" -#: ../NEWS:1769 +#: ../NEWS:1943 msgid "" ":gh:`150750`: Fix a race condition in :meth:`collections.deque.index` with " "free-threading." msgstr "" -#: ../NEWS:1772 +#: ../NEWS:1946 msgid ":gh:`150685`: Update bundled pip to 26.1.2" msgstr "" -#: ../NEWS:1774 +#: ../NEWS:1948 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:1778 +#: ../NEWS:1952 msgid "" ":gh:`150372`: :mod:`readline`: Fix a potential crash during tab completion " "caused by an out-of-memory error during module initialization." msgstr "" -#: ../NEWS:1781 +#: ../NEWS:1955 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:1785 +#: ../NEWS:1959 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:1789 +#: ../NEWS:1963 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 (without the UTF-8 flag bit set) could be corrupted when the central" -" directory was rewritten: they were decoded as cp437 and then re-stored as " +":gh:`84353`: Preserve non-UTF-8 encoded filenames when appending to a :class:" +"`zipfile.ZipFile`. Previously, non-ASCII names stored in a legacy encoding " +"(without the UTF-8 flag bit set) could be corrupted when the central " +"directory was rewritten: they were decoded as cp437 and then re-stored as " "UTF-8." msgstr "" -#: ../NEWS:1795 +#: ../NEWS:1969 msgid ":gh:`149816`: Fix race condition in :attr:`ssl.SSLContext.sni_callback`" msgstr "" -#: ../NEWS:1797 +#: ../NEWS:1971 msgid ":gh:`149995`: Update various docstrings in :mod:`typing`." msgstr "" -#: ../NEWS:1799 +#: ../NEWS:1973 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:1803 +#: ../NEWS:1977 msgid "" -":gh:`149571`: Fix the C implementation of " -":meth:`xml.etree.ElementTree.Element.itertext`: it no longer emits text for " -"comments and processing instructions." +":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:1807 +#: ../NEWS:1981 msgid "" -":gh:`149921`: Fix reference leaks in error paths of the " -":mod:`!_interpchannels` and :mod:`!_interpqueues` extension modules." +":gh:`149921`: Fix reference leaks in error paths of the :mod:`!" +"_interpchannels` and :mod:`!_interpqueues` extension modules." msgstr "" -#: ../NEWS:1810 +#: ../NEWS:1984 msgid "" ":gh:`149816`: Fix a race condition in ``_random.Random.__init__`` method in " "free-threading mode." msgstr "" -#: ../NEWS:1813 +#: ../NEWS:1987 msgid "" -":gh:`149801`: Add IANA registered names and aliases with leading zeros before" -" number (like IBM00858, CP00858, IBM01140, CP01140) for corresponding codecs." +":gh:`149801`: Add IANA registered names and aliases with leading zeros " +"before number (like IBM00858, CP00858, IBM01140, CP01140) for corresponding " +"codecs." msgstr "" -#: ../NEWS:1817 +#: ../NEWS:1991 msgid "" ":gh:`149701`: Fix bad return code from Lib/venv/bin/activate if hashing is " "disabled" msgstr "" -#: ../NEWS:1820 +#: ../NEWS:1994 msgid "" ":gh:`112821`: In the REPL, autocompletion might run arbitrary code in the " "getter of a descriptor. If that getter raised an exception, autocompletion " @@ -3281,7 +3519,7 @@ msgid "" "works as expected for these objects." msgstr "" -#: ../NEWS:1825 +#: ../NEWS:1999 msgid "" ":gh:`149489`: Fix :mod:`~xml.etree.ElementTree` serialization to HTML. The " "content of elements \"xmp\", \"iframe\", \"noembed\", \"noframes\", and " @@ -3289,63 +3527,62 @@ msgid "" "the closing tag." msgstr "" -#: ../NEWS:1830 +#: ../NEWS:2004 msgid "" ":gh:`149231`: In :mod:`tomllib`, the number of parts in TOML keys is now " "limited." msgstr "" -#: ../NEWS:1833 +#: ../NEWS:2007 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:1836 +#: ../NEWS:2010 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:1840 +#: ../NEWS:2014 msgid "" -":gh:`148441`: :mod:`xml.parsers.expat`: prevent a crash in " -":meth:`~xml.parsers.expat.xmlparser.CharacterDataHandler` when the character " -"data size exceeds the parser's :attr:`buffer size " -"`." +":gh:`148441`: :mod:`xml.parsers.expat`: prevent a crash in :meth:`~xml." +"parsers.expat.xmlparser.CharacterDataHandler` when the character data size " +"exceeds the parser's :attr:`buffer size `." msgstr "" -#: ../NEWS:1845 +#: ../NEWS:2019 msgid "" ":gh:`146452`: Fix segfault in :mod:`pickle` when pickling a dictionary " "concurrently mutated by another thread in the free-threaded build." msgstr "" -#: ../NEWS:1848 +#: ../NEWS:2022 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:1851 +#: ../NEWS:2025 msgid "" -":gh:`90949`: Add " -":meth:`~xml.parsers.expat.xmlparser.SetBillionLaughsAttackProtectionActivationThreshold`" -" and " -":meth:`~xml.parsers.expat.xmlparser.SetBillionLaughsAttackProtectionMaximumAmplification`" -" to :ref:`xmlparser ` objects to tune protections against " +":gh:`90949`: Add :meth:`~xml.parsers.expat.xmlparser." +"SetBillionLaughsAttackProtectionActivationThreshold` and :meth:`~xml.parsers." +"expat.xmlparser.SetBillionLaughsAttackProtectionMaximumAmplification` to :" +"ref:`xmlparser ` objects to tune protections against " "`billion laughs `_ " "attacks. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:1860 +#: ../NEWS:2034 msgid "" ":gh:`134261`: zip: On reproducible builds, ZipFile uses UTC instead of the " "local time when writing file datetimes to avoid underflows." msgstr "" -#: ../NEWS:1863 +#: ../NEWS:2037 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 " @@ -3354,434 +3591,431 @@ msgid "" "unstructured headers like *Subject*)." msgstr "" -#: ../NEWS:1869 +#: ../NEWS:2043 msgid "" ":gh:`107398`: Fix :mod:`tarfile` stream mode exception when process the file " "with the gzip extra field." msgstr "" -#: ../NEWS:1872 +#: ../NEWS:2046 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:1876 +#: ../NEWS:2050 msgid "" -":gh:`91099`: :meth:`imaplib.IMAP4.login` now raises exceptions with " -":class:`str` instead of :class:`bytes`. Patch by Florian Best." +":gh:`91099`: :meth:`imaplib.IMAP4.login` now raises exceptions with :class:" +"`str` instead of :class:`bytes`. Patch by Florian Best." msgstr "" -#: ../NEWS:1882 +#: ../NEWS:2056 msgid "" ":gh:`150319`: Generic builtin and standard library types now document the " "meaning of their type parameters." msgstr "" -#: ../NEWS:1885 +#: ../NEWS:2059 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" +":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:1892 +#: ../NEWS:2066 msgid ":gh:`151130`: Add more tests for ``PyWeakref_*`` C API." msgstr "" -#: ../NEWS:1894 +#: ../NEWS:2068 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:1900 +#: ../NEWS:2074 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:1906 +#: ../NEWS:2080 msgid ":gh:`151159`: Updated bundled version of OpenSSL to 3.5.7." msgstr "" -#: ../NEWS:1911 +#: ../NEWS:2085 msgid ":gh:`151159`: Update macOS installer to use OpenSSL 3.5.7." msgstr "" -#: ../NEWS:1913 +#: ../NEWS:2087 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." +":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:1918 +#: ../NEWS:2092 msgid ":gh:`115119`: Update macOS installer to use libmpdecimal 4.0.1." msgstr "" -#: ../NEWS:1923 +#: ../NEWS:2097 msgid ":issue:`6699`: Warn the user if a file will be overwritten when saving." msgstr "" -#: ../NEWS:1928 +#: ../NEWS:2102 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:1932 +#: ../NEWS:2106 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." +":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:1939 +#: ../NEWS:2113 msgid "Python 3.14.5 final" msgstr "" -#: ../NEWS:1941 +#: ../NEWS:2115 msgid "*Release date: 2026-05-10*" msgstr "" -#: ../NEWS:1946 +#: ../NEWS:2120 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:1953 +#: ../NEWS:2127 msgid ":gh:`146270`: Fix a sequential consistency bug in ``structmember.c``." msgstr "" -#: ../NEWS:1955 +#: ../NEWS:2129 msgid "" -":gh:`137293`: Fix :exc:`SystemError` when searching ELF Files in " -":func:`sys.remote_exec`." +":gh:`137293`: Fix :exc:`SystemError` when searching ELF Files in :func:`sys." +"remote_exec`." msgstr "" -#: ../NEWS:1961 +#: ../NEWS:2135 msgid "" ":gh:`149388`: Make :class:`!asyncio.windows_utils.PipeHandle` closing " "idempotent." msgstr "" -#: ../NEWS:1964 +#: ../NEWS:2138 msgid ":gh:`149377`: Update bundled pip to 26.1.1" msgstr "" -#: ../NEWS:1966 +#: ../NEWS:2140 msgid ":gh:`138907`: Support :rfc:`9309` in :mod:`urllib.robotparser`." msgstr "" -#: ../NEWS:1968 +#: ../NEWS:2142 msgid "" ":gh:`148615`: Fix :mod:`pdb` to accept standard -- end of options separator. " "Reported by haampie. Patched by Shrey Naithani." msgstr "" -#: ../NEWS:1971 +#: ../NEWS:2145 msgid "" ":gh:`130750`: Restore quoting of choices in :mod:`argparse` error messages " "for improved clarity and consistency with documentation." msgstr "" -#: ../NEWS:1974 +#: ../NEWS:2148 msgid "" -":gh:`141449`: Improve tests and documentation for non-function callables as " -":term:`annotate functions `." +":gh:`141449`: Improve tests and documentation for non-function callables as :" +"term:`annotate functions `." msgstr "" -#: ../NEWS:1980 +#: ../NEWS:2154 msgid "" -":gh:`149425`: Increase time delta in " -"``test.test_zipfile.test_core.OtherTests.test_write_without_source_date_epoch``" +":gh:`149425`: Increase time delta in ``test.test_zipfile.test_core." +"OtherTests.test_write_without_source_date_epoch``" msgstr "" -#: ../NEWS:1983 +#: ../NEWS:2157 msgid "" ":gh:`145736`: Fix test_tkinter test_configure_values test case backport miss " "for Tk 9." msgstr "" -#: ../NEWS:1989 +#: ../NEWS:2163 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:1993 +#: ../NEWS:2167 msgid ":gh:`124111`: Update macOS installer to use Tcl/Tk 9.0.3." msgstr "" -#: ../NEWS:1997 +#: ../NEWS:2171 msgid "Python 3.14.5 release candidate 1" msgstr "" -#: ../NEWS:1999 +#: ../NEWS:2173 msgid "*Release date: 2026-05-04*" msgstr "" -#: ../NEWS:2004 +#: ../NEWS:2178 msgid ":gh:`149254`: Update Android and iOS installer to use OpenSSL 3.0.20." msgstr "" -#: ../NEWS:2006 +#: ../NEWS:2180 msgid "" ":gh:`149017`: Update bundled `libexpat `_ to " "version 2.8.0." msgstr "" -#: ../NEWS:2009 +#: ../NEWS:2183 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:2013 +#: ../NEWS:2187 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`." +"with :meth:`!asyncio.AbstractEventLoop.sock_recvfrom_into`. Only relevant " +"for Windows and the :class:`asyncio.ProactorEventLoop`." msgstr "" -#: ../NEWS:2017 +#: ../NEWS:2191 msgid "" -":gh:`148395`: Fix a dangling input pointer in :class:`lzma.LZMADecompressor`," -" :class:`bz2.BZ2Decompressor`, and internal :class:`!zlib._ZlibDecompressor` " -"when memory allocation fails with :exc:`MemoryError`, which could let a " -"subsequent :meth:`!decompress` call read or write through a stale pointer to " -"the already-released caller buffer." +":gh:`148395`: Fix a dangling input pointer in :class:`lzma." +"LZMADecompressor`, :class:`bz2.BZ2Decompressor`, and internal :class:`!zlib." +"_ZlibDecompressor` when memory allocation fails with :exc:`MemoryError`, " +"which could let a subsequent :meth:`!decompress` call read or write through " +"a stale pointer to the already-released caller buffer." msgstr "" -#: ../NEWS:2024 +#: ../NEWS:2198 msgid "" ":gh:`148169`: A bypass in :mod:`webbrowser` allowed URLs prefixed with " "``%action`` to pass the dash-prefix safety check." msgstr "" -#: ../NEWS:2027 +#: ../NEWS:2201 msgid "" ":gh:`146581`: Fix vulnerability in :func:`shutil.unpack_archive` for ZIP " -"files on Windows which allowed to write files outside of the destination tree" -" if the patch in the archive contains a Windows drive prefix. Now such " +"files on Windows which allowed to write files outside of the destination " +"tree if the patch in the archive contains a Windows drive prefix. Now such " "invalid paths will be skipped. Files containing \"..\" in the name (like " "\"foo..bar\") are no longer skipped." msgstr "" -#: ../NEWS:2033 +#: ../NEWS:2207 msgid "" -":gh:`146333`: Fix quadratic backtracking in " -":class:`configparser.RawConfigParser` option parsing regexes (``OPTCRE`` and " -"``OPTCRE_NV``). A crafted configuration line with many whitespace characters " -"could cause excessive CPU usage." +":gh:`146333`: Fix quadratic backtracking in :class:`configparser." +"RawConfigParser` option parsing regexes (``OPTCRE`` and ``OPTCRE_NV``). A " +"crafted configuration line with many whitespace characters could cause " +"excessive CPU usage." msgstr "" -#: ../NEWS:2038 +#: ../NEWS:2212 msgid "" ":gh:`146211`: Reject CR/LF characters in tunnel request headers for the " "HTTPConnection.set_tunnel() method." msgstr "" -#: ../NEWS:2044 +#: ../NEWS:2218 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 " -"expression argument (for example, ``tuple(await x for x in y)``). These calls" -" now correctly raise ``TypeError`` instead of crashing." +":gh:`149122`: Fix a crash in optimized calls to :func:`all`, :func:`any`, :" +"func:`tuple`, :func:`list`, and :func:`set` with an async generator " +"expression argument (for example, ``tuple(await x for x in y)``). These " +"calls now correctly raise ``TypeError`` instead of crashing." msgstr "" -#: ../NEWS:2049 +#: ../NEWS:2223 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 owned" -" by the current thread is used instead when it is not safe to immortalize the" -" original." +"build when interning a string owned by another thread. An interned copy " +"owned by the current thread is used instead when it is not safe to " +"immortalize the original." msgstr "" -#: ../NEWS:2054 +#: ../NEWS:2228 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 the " -"waiter destroy its semaphore before the unlocking thread's " +":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 " +"the waiter destroy its semaphore before the unlocking thread's " "``_PySemaphore_Wakeup`` completed, causing a fatal ``ReleaseSemaphore`` " "error." msgstr "" -#: ../NEWS:2060 +#: ../NEWS:2234 msgid "" -":gh:`148653`: Forbid :mod:`marshalling ` recursive code objects and " -":class:`slice` objects which cannot be correctly unmarshalled." +":gh:`148653`: Forbid :mod:`marshalling ` recursive code objects " +"and :class:`slice` objects which cannot be correctly unmarshalled." msgstr "" -#: ../NEWS:2063 +#: ../NEWS:2237 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:2067 +#: ../NEWS:2241 msgid "" -":gh:`148390`: Fix an undefined behavior in :class:`memoryview` when using the" -" native boolean format (``?``) in :meth:`~memoryview.cast`. Previously, on " -"some common platforms, calling ``memoryview(b).cast(\"?\").tolist()`` " -"incorrectly returned ``[False]`` instead of ``[True]`` for any even byte *b*." -" Patch by Bénédikt Tran." +":gh:`148390`: Fix an undefined behavior in :class:`memoryview` when using " +"the native boolean format (``?``) in :meth:`~memoryview.cast`. Previously, " +"on some common platforms, calling ``memoryview(b).cast(\"?\").tolist()`` " +"incorrectly returned ``[False]`` instead of ``[True]`` for any even byte " +"*b*. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2073 +#: ../NEWS:2247 msgid "" ":gh:`148418`: Fix a possible reference leak in a corrupted ``TYPE_CODE`` " "marshal stream." msgstr "" -#: ../NEWS:2076 +#: ../NEWS:2250 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`." +":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:2080 +#: ../NEWS:2254 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:2084 +#: ../NEWS:2258 msgid "" ":gh:`148037`: Remove critical section from :c:func:`!PyCode_Addr2Line` in " "free-threading." msgstr "" -#: ../NEWS:2087 +#: ../NEWS:2261 msgid "" ":gh:`148222`: Fix vectorcall support in :class:`types.GenericAlias` when the " "underlying type does not support the vectorcall protocol. Fix possible leaks " -"in :class:`types.GenericAlias` and :class:`types.UnionType` in case of memory" -" error." +"in :class:`types.GenericAlias` and :class:`types.UnionType` in case of " +"memory error." msgstr "" -#: ../NEWS:2092 +#: ../NEWS:2266 msgid ":gh:`148208`: Fix recursion depth leak in :c:func:`PyObject_Print`" msgstr "" -#: ../NEWS:2094 +#: ../NEWS:2268 msgid "" ":gh:`137814`: Fix the ``__qualname__`` attribute of ``__annotate__`` " "functions on functions." msgstr "" -#: ../NEWS:2097 +#: ../NEWS:2271 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." +"works when an operation falls across interpreter boundaries. Patch by " +"Maurycy Pawłowski-Wieroński." msgstr "" -#: ../NEWS:2101 +#: ../NEWS:2275 msgid "" ":gh:`146455`: Fix O(N²) compile-time regression in constant folding after it " "was moved from AST to CFG optimizer." msgstr "" -#: ../NEWS:2107 +#: ../NEWS:2281 msgid "" -":gh:`149221`: Catch rare math domain error for " -":func:`random.binomialvariate`." +":gh:`149221`: Catch rare math domain error for :func:`random." +"binomialvariate`." msgstr "" -#: ../NEWS:2110 +#: ../NEWS:2284 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:2114 +#: ../NEWS:2288 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:2117 +#: ../NEWS:2291 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." +":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:2121 +#: ../NEWS:2295 msgid "" -":gh:`148914`: Fix memoization of in-band :class:`~pickle.PickleBuffer` in the" -" Python implementation of :mod:`pickle`. Previously, identical " -":class:`!PickleBuffer`\\ s did not preserve identity, and empty writable " -":class:`!PickleBuffer` memoized an empty bytearray object in place of " -"``b''``, so the following references to ``b''`` were unpickled as an empty " -"bytearray object." +":gh:`148914`: Fix memoization of in-band :class:`~pickle.PickleBuffer` in " +"the Python implementation of :mod:`pickle`. Previously, identical :class:`!" +"PickleBuffer`\\ s did not preserve identity, and empty writable :class:`!" +"PickleBuffer` memoized an empty bytearray object in place of ``b''``, so the " +"following references to ``b''`` were unpickled as an empty bytearray object." msgstr "" -#: ../NEWS:2128 +#: ../NEWS:2302 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:2132 +#: ../NEWS:2306 msgid "" -":gh:`148680`: ``ForwardRef`` objects that contain internal names to represent" -" known objects now show the ``type_repr`` of the known object rather than the" -" internal ``__annotationlib_name_x__`` name when evaluated as strings." +":gh:`148680`: ``ForwardRef`` objects that contain internal names to " +"represent known objects now show the ``type_repr`` of the known object " +"rather than the internal ``__annotationlib_name_x__`` name when evaluated as " +"strings." msgstr "" -#: ../NEWS:2136 +#: ../NEWS:2310 msgid "" -":gh:`148801`: :mod:`xml.etree.ElementTree`: Fix a crash in " -":meth:`Element.__deepcopy__ ` on deeply nested trees." +":gh:`148801`: :mod:`xml.etree.ElementTree`: Fix a crash in :meth:`Element." +"__deepcopy__ ` on deeply nested trees." msgstr "" -#: ../NEWS:2139 +#: ../NEWS:2313 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." +":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:2143 +#: ../NEWS:2317 msgid "" ":gh:`148740`: Fix usage for :mod:`uuid` command-line interface to support a " "custom namespace be provided for uuid3 and uuid5." msgstr "" -#: ../NEWS:2146 +#: ../NEWS:2320 msgid "" -":gh:`148651`: Fix reference leak in " -":class:`compression.zstd.ZstdDecompressor` when an invalid option key is " -"passed." +":gh:`148651`: Fix reference leak in :class:`compression.zstd." +"ZstdDecompressor` when an invalid option key is passed." msgstr "" -#: ../NEWS:2150 +#: ../NEWS:2324 msgid "" ":gh:`146553`: Fix infinite loop in :func:`typing.get_type_hints` when " "``__wrapped__`` forms a cycle. Patch by Shamil Abdulaev." msgstr "" -#: ../NEWS:2153 +#: ../NEWS:2327 msgid "" ":gh:`148508`: An intermittent timing error when running SSL tests on iOS has " "been resolved." msgstr "" -#: ../NEWS:2156 +#: ../NEWS:2330 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 " @@ -3790,396 +4024,395 @@ msgid "" "as the result." msgstr "" -#: ../NEWS:2162 +#: ../NEWS:2336 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." +":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:2166 +#: ../NEWS:2340 msgid "" -":gh:`148370`: :mod:`configparser`: prevent quadratic behavior when a " -":exc:`~configparser.ParsingError` is raised after a parser fails to parse " +":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:2170 +#: ../NEWS:2344 msgid "" ":gh:`148254`: Use singular \"sec\" instead of \"secs\" in :mod:`timeit` " "verbose output for consistency with other time units." msgstr "" -#: ../NEWS:2173 +#: ../NEWS:2347 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:2177 +#: ../NEWS:2351 msgid "" ":gh:`146313`: Fix a deadlock in :mod:`multiprocessing`'s resource tracker " -"where the parent process could hang indefinitely in :func:`os.waitpid` during" -" interpreter shutdown if a child created via :func:`os.fork` still held the " -"resource tracker's pipe open." +"where the parent process could hang indefinitely in :func:`os.waitpid` " +"during interpreter shutdown if a child created via :func:`os.fork` still " +"held the resource tracker's pipe open." msgstr "" -#: ../NEWS:2182 +#: ../NEWS:2356 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:2186 +#: ../NEWS:2360 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 " +":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:2190 +#: ../NEWS:2364 msgid "" -":gh:`105936`: Attempting to mutate non-field attributes of :mod:`dataclasses`" -" with both *frozen* and *slots* being ``True`` now raises " -":class:`~dataclasses.FrozenInstanceError` instead of :class:`TypeError`. " +":gh:`105936`: Attempting to mutate non-field attributes of :mod:" +"`dataclasses` with both *frozen* and *slots* being ``True`` now raises :" +"class:`~dataclasses.FrozenInstanceError` instead of :class:`TypeError`. " "Their non-dataclass subclasses can now freely mutate non-field attributes, " "and the original non-slotted class can be garbage collected." msgstr "" -#: ../NEWS:2196 +#: ../NEWS:2370 msgid "" -":gh:`140287`: The :mod:`asyncio` REPL now handles exceptions when executing " -":envvar:`PYTHONSTARTUP` scripts. Patch by Bartosz Sławecki." +":gh:`140287`: The :mod:`asyncio` REPL now handles exceptions when executing :" +"envvar:`PYTHONSTARTUP` scripts. Patch by Bartosz Sławecki." msgstr "" -#: ../NEWS:2199 +#: ../NEWS:2373 msgid "" ":gh:`132631`: Fix \"I/O operation on closed file\" when parsing JSON Lines " "file with :mod:`JSON CLI `." msgstr "" -#: ../NEWS:2202 +#: ../NEWS:2376 msgid "" -":gh:`70039`: Fixed bug where :meth:`smtplib.SMTP.starttls` could fail if " -":meth:`smtplib.SMTP.connect` is called explicitly rather than implicitly." +":gh:`70039`: Fixed bug where :meth:`smtplib.SMTP.starttls` could fail if :" +"meth:`smtplib.SMTP.connect` is called explicitly rather than implicitly." msgstr "" -#: ../NEWS:2205 +#: ../NEWS:2379 msgid "" -":gh:`83281`: :mod:`email`: improve handling trailing garbage in address lists" -" to avoid throwing AttributeError in certain edge cases" +":gh:`83281`: :mod:`email`: improve handling trailing garbage in address " +"lists to avoid throwing AttributeError in certain edge cases" msgstr "" -#: ../NEWS:2211 +#: ../NEWS:2385 msgid "" -":gh:`148663`: Document that :class:`calendar.IllegalMonthError` is a subclass" -" of both :exc:`ValueError` and :exc:`IndexError` since Python 3.12." +":gh:`148663`: Document that :class:`calendar.IllegalMonthError` is a " +"subclass of both :exc:`ValueError` and :exc:`IndexError` since Python 3.12." msgstr "" -#: ../NEWS:2214 +#: ../NEWS:2388 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." +":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:2221 +#: ../NEWS:2395 msgid "" ":gh:`149351`: Avoid possible broken macOS framework install names when " "DESTDIR is specified during builds." msgstr "" -#: ../NEWS:2224 +#: ../NEWS:2398 msgid "" ":gh:`146475`: Block Apple Clang from being used to build the JIT as it ships " "without required LLVM tools." msgstr "" -#: ../NEWS:2227 +#: ../NEWS:2401 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 build " -"(:gh:`145801`) caused by corruption of profile data (.gcda files). The " -"problem is that it makes the PGO build way slower (up to 47x slower) on i686." -" Since the GCC internal error was not seen on i686 so far, don't use " -"``-fprofile-update=atomic`` on i686 anymore. Patch by Victor Stinner." +":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 " +"build (:gh:`145801`) caused by corruption of profile data (.gcda files). The " +"problem is that it makes the PGO build way slower (up to 47x slower) on " +"i686. Since the GCC internal error was not seen on i686 so far, don't use ``-" +"fprofile-update=atomic`` on i686 anymore. Patch by Victor Stinner." msgstr "" -#: ../NEWS:2234 +#: ../NEWS:2408 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." +"dependencies as static libraries when ``MODULE_BUILDTYPE=static``, " +"preventing duplicate ``_Py_LibHacl_*`` symbol errors at link time." msgstr "" -#: ../NEWS:2241 +#: ../NEWS:2415 msgid ":gh:`149254`: Updated bundled version of OpenSSL to 3.0.20." msgstr "" -#: ../NEWS:2243 +#: ../NEWS:2417 msgid "" ":gh:`146458`: Fix incorrect REPL height and width tracking on console window " "resize on Windows." msgstr "" -#: ../NEWS:2249 +#: ../NEWS:2423 msgid ":gh:`149254`: Update macOS installer to use OpenSSL 3.0.20." msgstr "" -#: ../NEWS:2253 +#: ../NEWS:2427 msgid "Python 3.14.4 final" msgstr "" -#: ../NEWS:2255 +#: ../NEWS:2429 msgid "*Release date: 2026-04-07*" msgstr "" -#: ../NEWS:2260 +#: ../NEWS:2434 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`." +"recursion when converting deeply nested XML content models with :meth:`~xml." +"parsers.expat.xmlparser.ElementDeclHandler`. This addresses :cve:`2026-4224`." msgstr "" -#: ../NEWS:2265 +#: ../NEWS:2439 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`." +":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:2270 +#: ../NEWS:2444 msgid "" ":gh:`145506`: Fixes :cve:`2026-2297` by ensuring that " "``SourcelessFileLoader`` uses :func:`io.open_code` when opening ``.pyc`` " "files." msgstr "" -#: ../NEWS:2274 +#: ../NEWS:2448 msgid "" -":gh:`144370`: Disallow usage of control characters in status in " -":mod:`wsgiref.handlers` to prevent HTTP header injections. Patch by Benedikt " +":gh:`144370`: Disallow usage of control characters in status in :mod:" +"`wsgiref.handlers` to prevent HTTP header injections. Patch by Benedikt " "Johannes." msgstr "" -#: ../NEWS:2278 +#: ../NEWS:2452 msgid "" -":gh:`143930`: Reject leading dashes in URLs passed to " -":func:`webbrowser.open`." +":gh:`143930`: Reject leading dashes in URLs passed to :func:`webbrowser." +"open`." msgstr "" -#: ../NEWS:2284 +#: ../NEWS:2458 msgid "" -":gh:`148157`: Fix an unlikely crash when parsing an invalid type comments for" -" function parameters. Found by OSS Fuzz in :oss-fuzz:`492782951`." +":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:2287 +#: ../NEWS:2461 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." +"interpreter frames so incremental GC does not read an uninitialized byte " +"from generator and frame-object copies." msgstr "" -#: ../NEWS:2291 +#: ../NEWS:2465 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." +":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:2295 +#: ../NEWS:2469 msgid "" -":gh:`146308`: Fixed several error handling issues in the " -":mod:`!_remote_debugging` module, including safer validation of remote " -"``int`` objects, clearer asyncio task chain failures, and cache cleanup fixes" -" that avoid leaking or double-freeing metadata on allocation failure. Patch " -"by Pablo Galindo." +":gh:`146308`: Fixed several error handling issues in the :mod:`!" +"_remote_debugging` module, including safer validation of remote ``int`` " +"objects, clearer asyncio task chain failures, and cache cleanup fixes that " +"avoid leaking or double-freeing metadata on allocation failure. Patch by " +"Pablo Galindo." msgstr "" -#: ../NEWS:2301 +#: ../NEWS:2475 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." +"corrupted in AArch64 JIT code. This issue is theoretical, and hasn't " +"actually been observed in unmodified Python interpreters." msgstr "" -#: ../NEWS:2305 +#: ../NEWS:2479 msgid "" ":gh:`146250`: Fixed a memory leak in :exc:`SyntaxError` when re-initializing " "it." msgstr "" -#: ../NEWS:2308 +#: ../NEWS:2482 msgid "" ":gh:`146245`: Fixed reference leaks in :mod:`socket` when audit hooks raise " "exceptions in :func:`socket.getaddrinfo` and :meth:`!socket.sendto`." msgstr "" -#: ../NEWS:2311 +#: ../NEWS:2485 msgid "" -":gh:`146196`: Fix potential Undefined Behavior in " -":c:func:`PyUnicodeWriter_WriteASCII` by adding a zero-length check. Patch by " -"Shamil Abdulaev." +":gh:`146196`: Fix potential Undefined Behavior in :c:func:" +"`PyUnicodeWriter_WriteASCII` by adding a zero-length check. Patch by Shamil " +"Abdulaev." msgstr "" -#: ../NEWS:2315 +#: ../NEWS:2489 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." +":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:2319 +#: ../NEWS:2493 msgid "" ":gh:`146056`: Fix :func:`repr` for lists and tuples containing ``NULL``\\ s." msgstr "" -#: ../NEWS:2321 +#: ../NEWS:2495 msgid "" ":gh:`146092`: Handle properly memory allocation failures on str and float " "opcodes. Patch by Victor Stinner." msgstr "" -#: ../NEWS:2324 +#: ../NEWS:2498 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." +":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:2328 +#: ../NEWS:2502 msgid "" ":gh:`145990`: ``python --help-env`` sections are now sorted by environment " "variable name." msgstr "" -#: ../NEWS:2331 +#: ../NEWS:2505 msgid "" ":gh:`145990`: ``python --help-xoptions`` is now sorted by ``-X`` option name." msgstr "" -#: ../NEWS:2333 +#: ../NEWS:2507 msgid ":gh:`145376`: Fix GC tracking in ``structseq.__replace__()``." msgstr "" -#: ../NEWS:2335 +#: ../NEWS:2509 msgid "" ":gh:`145792`: Fix out-of-bounds access when invoking faulthandler on a " "CPython build compiled without support for VLAs." msgstr "" -#: ../NEWS:2338 +#: ../NEWS:2512 msgid "" ":gh:`142183`: Avoid a pathological case where repeated calls at a specific " "stack depth could be significantly slower." msgstr "" -#: ../NEWS:2341 +#: ../NEWS:2515 msgid "" -":gh:`145779`: Improve scaling of :func:`classmethod` and :func:`staticmethod`" -" calls in the free-threaded build by avoiding the descriptor ``__get__`` " -"call." +":gh:`145779`: Improve scaling of :func:`classmethod` and :func:" +"`staticmethod` calls in the free-threaded build by avoiding the descriptor " +"``__get__`` call." msgstr "" -#: ../NEWS:2345 +#: ../NEWS:2519 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:2348 +#: ../NEWS:2522 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:2352 +#: ../NEWS:2526 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:2356 +#: ../NEWS:2530 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:2360 +#: ../NEWS:2534 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." +"mimalloc pages could become permanently unreclaimable until the owning " +"thread exited." msgstr "" -#: ../NEWS:2364 +#: ../NEWS:2538 msgid "" -":gh:`145566`: In the free threading build, skip the stop-the-world pause when" -" reassigning ``__class__`` on a newly created object." +":gh:`145566`: In the free threading build, skip the stop-the-world pause " +"when reassigning ``__class__`` on a newly created object." msgstr "" -#: ../NEWS:2367 +#: ../NEWS:2541 msgid "" ":gh:`145335`: Fix a crash in :func:`os.pathconf` when called with ``-1`` as " "the path argument." msgstr "" -#: ../NEWS:2370 +#: ../NEWS:2544 msgid "" -":gh:`145036`: In free-threaded build, fix race condition when calling " -":meth:`!__sizeof__` on a :class:`list`" +":gh:`145036`: In free-threaded build, fix race condition when calling :meth:" +"`!__sizeof__` on a :class:`list`" msgstr "" -#: ../NEWS:2373 +#: ../NEWS:2547 msgid ":gh:`145376`: Fix reference leaks in various unusual error scenarios." msgstr "" -#: ../NEWS:2375 +#: ../NEWS:2549 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:2379 +#: ../NEWS:2553 msgid "Patch by Pablo Galindo." msgstr "" -#: ../NEWS:2381 +#: ../NEWS:2555 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:2385 +#: ../NEWS:2559 msgid "" ":gh:`145187`: Fix compiler assertion fail when a type parameter bound " "contains an invalid expression in a conditional block." msgstr "" -#: ../NEWS:2388 +#: ../NEWS:2562 msgid "" ":gh:`145142`: Fix a crash in the free-threaded build when the dictionary " "argument to :meth:`str.maketrans` is concurrently modified." msgstr "" -#: ../NEWS:2391 +#: ../NEWS:2565 msgid ":gh:`144872`: Fix heap buffer overflow in the parser found by OSS-Fuzz." msgstr "" -#: ../NEWS:2393 +#: ../NEWS:2567 msgid "" ":gh:`144766`: Fix a crash in fork child process when perf support is enabled." msgstr "" -#: ../NEWS:2395 +#: ../NEWS:2569 msgid "" ":gh:`144759`: Fix undefined behavior in the lexer when ``start`` and " "``multi_line_start`` pointers are ``NULL`` in " @@ -4188,7 +4421,7 @@ msgid "" "(``NULL - valid_pointer``) is now guarded with explicit ``NULL`` checks." msgstr "" -#: ../NEWS:2401 +#: ../NEWS:2575 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 " @@ -4196,97 +4429,97 @@ msgid "" "information to be confused. Patch by Pablo Galindo" msgstr "" -#: ../NEWS:2406 +#: ../NEWS:2580 msgid "" ":gh:`144601`: Fix crash when importing a module whose ``PyInit`` function " "raises an exception from a subinterpreter." msgstr "" -#: ../NEWS:2409 +#: ../NEWS:2583 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:2412 +#: ../NEWS:2586 msgid "" ":gh:`144513`: Fix potential deadlock when using critical sections during " "stop-the-world pauses in the free-threaded build." msgstr "" -#: ../NEWS:2415 +#: ../NEWS:2589 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:2418 +#: ../NEWS:2592 msgid "" ":gh:`143636`: Fix a crash when calling :class:`SimpleNamespace.__replace__() " "` on non-namespace instances. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2422 +#: ../NEWS:2596 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:2425 +#: ../NEWS:2599 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:2429 +#: ../NEWS:2603 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:2432 +#: ../NEWS:2606 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:2437 +#: ../NEWS:2611 msgid "" ":gh:`130327`: Fix erroneous clearing of an object's :attr:`~object.__dict__` " "if overwritten at runtime." msgstr "" -#: ../NEWS:2440 +#: ../NEWS:2614 msgid "" -":gh:`80667`: Literals using the ``\\N{name}`` escape syntax can now construct" -" CJK ideographs and Hangul syllables using case-insensitive names." +":gh:`80667`: Literals using the ``\\N{name}`` escape syntax can now " +"construct CJK ideographs and Hangul syllables using case-insensitive names." msgstr "" -#: ../NEWS:2446 +#: ../NEWS:2620 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:`BrokenPipeError` when the parent process had a very large " -":data:`sys.argv`. The argv is now passed to the forkserver as separate " -"command-line arguments rather than being embedded in the ``-c`` command " -"string, avoiding the operating system's per-argument length limit." +":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:" +"`BrokenPipeError` when the parent process had a very large :data:`sys." +"argv`. The argv is now passed to the forkserver as separate command-line " +"arguments rather than being embedded in the ``-c`` command string, avoiding " +"the operating system's per-argument length limit." msgstr "" -#: ../NEWS:2453 +#: ../NEWS:2627 msgid "" -":gh:`146613`: :mod:`itertools`: Fix a crash in :func:`itertools.groupby` when" -" the grouper iterator is concurrently mutated." +":gh:`146613`: :mod:`itertools`: Fix a crash in :func:`itertools.groupby` " +"when the grouper iterator is concurrently mutated." msgstr "" -#: ../NEWS:2456 +#: ../NEWS:2630 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:2460 +#: ../NEWS:2634 msgid "" ":gh:`146556`: Fix :func:`annotationlib.get_annotations` hanging indefinitely " "when called with ``eval_str=True`` on a callable that has a circular " @@ -4295,57 +4528,58 @@ msgid "" "found so far, mirroring the approach of :func:`inspect.unwrap`." msgstr "" -#: ../NEWS:2466 +#: ../NEWS:2640 msgid "" -":gh:`146090`: :mod:`sqlite3`: fix a crash when " -":meth:`sqlite3.Connection.create_collation` fails with `SQLITE_BUSY " -"`__. Patch by Bénédikt Tran." +":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:2470 +#: ../NEWS:2644 msgid "" -":gh:`146090`: :mod:`sqlite3`: properly raise :exc:`MemoryError` instead of " -":exc:`SystemError` when a context callback fails to be allocated. Patch by " +":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:2474 +#: ../NEWS:2648 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." +":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:2478 +#: ../NEWS:2652 msgid "" ":gh:`146310`: The :mod:`ensurepip` module no longer looks for ``pip-*.whl`` " "wheel packages in the current directory." msgstr "" -#: ../NEWS:2481 +#: ../NEWS:2655 msgid "" ":gh:`146083`: Update bundled `libexpat `_ to " "version 2.7.5." msgstr "" -#: ../NEWS:2484 +#: ../NEWS:2658 msgid "" -":gh:`146076`: :mod:`zoneinfo`: fix crashes when deleting ``_weak_cache`` from" -" a :class:`zoneinfo.ZoneInfo` subclass." +":gh:`146076`: :mod:`zoneinfo`: fix crashes when deleting ``_weak_cache`` " +"from a :class:`zoneinfo.ZoneInfo` subclass." msgstr "" -#: ../NEWS:2487 +#: ../NEWS:2661 msgid "" ":gh:`146054`: Limit the size of :func:`encodings.search_function` cache. " "Found by OSS Fuzz in :oss-fuzz:`493449985`." msgstr "" -#: ../NEWS:2490 +#: ../NEWS:2664 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 " "hard-coded subset. This makes the behavior consistent between default " -"\"spawn\" and \"forkserver\" start methods and the old \"fork\" start method." -" The options that were previously not propagated are: " +"\"spawn\" and \"forkserver\" start methods and the old \"fork\" start " +"method. The options that were previously not propagated are: " "``context_aware_warnings``, ``cpu_count``, ``disable-remote-debug``, " "``int_max_str_digits``, ``lazy_imports``, ``no_debug_ranges``, " "``pathconfig_warnings``, ``perf``, ``perf_jit``, ``presite``, " @@ -4353,61 +4587,61 @@ msgid "" "``warn_default_encoding``." msgstr "" -#: ../NEWS:2501 +#: ../NEWS:2675 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`." +"TZif data. Found by OSS Fuzz, issues :oss-fuzz:`492245058` and :oss-fuzz:" +"`492230068`." msgstr "" -#: ../NEWS:2505 +#: ../NEWS:2679 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:2509 +#: ../NEWS:2683 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`." +"parsing format strings in the :mod:`struct` module. Found by OSS Fuzz in :" +"oss-fuzz:`488466741`." msgstr "" -#: ../NEWS:2513 +#: ../NEWS:2687 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:2517 +#: ../NEWS:2691 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:2521 +#: ../NEWS:2695 msgid "" -":gh:`145616`: Detect Android sysconfig ABI correctly on 32-bit ARM Android on" -" 64-bit ARM kernel" +":gh:`145616`: Detect Android sysconfig ABI correctly on 32-bit ARM Android " +"on 64-bit ARM kernel" msgstr "" -#: ../NEWS:2524 +#: ../NEWS:2698 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." +":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:2528 +#: ../NEWS:2702 msgid "" -":gh:`145446`: Now :mod:`functools` is safer in free-threaded build when using" -" keywords in :func:`functools.partial`" +":gh:`145446`: Now :mod:`functools` is safer in free-threaded build when " +"using keywords in :func:`functools.partial`" msgstr "" -#: ../NEWS:2531 +#: ../NEWS:2705 msgid "" ":gh:`145417`: :mod:`venv`: Prevent incorrect preservation of SELinux context " "when copying the ``Activate.ps1`` script. The script inherited the SELinux " @@ -4415,398 +4649,397 @@ msgid "" "destination project directory." msgstr "" -#: ../NEWS:2536 +#: ../NEWS:2710 msgid "" ":gh:`145376`: Fix double free and null pointer dereference in unusual error " "scenarios in :mod:`hashlib` and :mod:`hmac` modules." msgstr "" -#: ../NEWS:2539 +#: ../NEWS:2713 msgid "" ":gh:`145301`: :mod:`hmac`: fix a crash when the initialization of the " "underlying C extension module fails." msgstr "" -#: ../NEWS:2542 +#: ../NEWS:2716 msgid "" ":gh:`145301`: :mod:`hashlib`: fix a crash when the initialization of the " "underlying C extension module fails." msgstr "" -#: ../NEWS:2545 +#: ../NEWS:2719 msgid "" -":gh:`145264`: Base64 decoder (see :func:`binascii.a2b_base64`, " -":func:`base64.b64decode`, etc) no longer ignores excess data after the first " -"padded quad in non-strict (default) mode. Instead, in conformance with " -":rfc:`4648`, section 3.3, it now ignores the pad character, \"=\", if it is " -"present before the end of the encoded data." +":gh:`145264`: Base64 decoder (see :func:`binascii.a2b_base64`, :func:`base64." +"b64decode`, etc) no longer ignores excess data after the first padded quad " +"in non-strict (default) mode. Instead, in conformance with :rfc:`4648`, " +"section 3.3, it now ignores the pad character, \"=\", if it is present " +"before the end of the encoded data." msgstr "" -#: ../NEWS:2551 +#: ../NEWS:2725 msgid "" ":gh:`145158`: Avoid undefined behaviour from signed integer overflow when " "parsing format strings in the :mod:`struct` module." msgstr "" -#: ../NEWS:2554 +#: ../NEWS:2728 msgid "" -":gh:`144984`: Fix crash in " -":meth:`xml.parsers.expat.xmlparser.ExternalEntityParserCreate` when an " -"allocation fails. The error paths could dereference NULL ``handlers`` and " -"double-decrement the parent parser's reference count." +":gh:`144984`: Fix crash in :meth:`xml.parsers.expat.xmlparser." +"ExternalEntityParserCreate` when an allocation fails. The error paths could " +"dereference NULL ``handlers`` and double-decrement the parent parser's " +"reference count." msgstr "" -#: ../NEWS:2559 +#: ../NEWS:2733 msgid "" ":gh:`88091`: Fix :func:`unicodedata.decomposition` for Hangul characters." msgstr "" -#: ../NEWS:2561 +#: ../NEWS:2735 msgid "" ":gh:`144986`: Fix a memory leak in :func:`atexit.register`. Patch by Shamil " "Abdulaev." msgstr "" -#: ../NEWS:2564 +#: ../NEWS:2738 msgid "" -":gh:`144777`: Fix data races in :class:`io.IncrementalNewlineDecoder` in the " -":term:`free-threaded build`." +":gh:`144777`: Fix data races in :class:`io.IncrementalNewlineDecoder` in " +"the :term:`free-threaded build`." msgstr "" -#: ../NEWS:2567 +#: ../NEWS:2741 msgid "" ":gh:`144809`: Make :class:`collections.deque` copy atomic in the :term:`free-" "threaded build`." msgstr "" -#: ../NEWS:2570 +#: ../NEWS:2744 msgid "" -":gh:`144835`: Added missing explanations for some parameters in " -":func:`glob.glob` and :func:`glob.iglob`." +":gh:`144835`: Added missing explanations for some parameters in :func:`glob." +"glob` and :func:`glob.iglob`." msgstr "" -#: ../NEWS:2573 +#: ../NEWS:2747 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." +":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:2577 +#: ../NEWS:2751 msgid "" ":gh:`144782`: Fix :class:`argparse.ArgumentParser` to be :mod:`pickleable " "`." msgstr "" -#: ../NEWS:2580 +#: ../NEWS:2754 msgid "" ":gh:`144259`: Fix inconsistent display of long multiline pasted content in " "the REPL." msgstr "" -#: ../NEWS:2583 +#: ../NEWS:2757 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 " -"and also correctly added between adjacent encoded words. The latter property" -" was broken by the fix for :gh:`92081`, which mostly fixed previous failures " -"to preserve whitespace." +":gh:`144156`: Fix the folding of headers by the :mod:`email` library when :" +"rfc:`2047` encoded words are used. Now whitespace is correctly preserved " +"and also correctly added between adjacent encoded words. The latter " +"property was broken by the fix for :gh:`92081`, which mostly fixed previous " +"failures to preserve whitespace." msgstr "" -#: ../NEWS:2589 +#: ../NEWS:2763 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:2593 +#: ../NEWS:2767 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`." +"default start method as a side effect, which previously caused a subsequent :" +"func:`multiprocessing.set_start_method` call to raise :exc:`RuntimeError`." msgstr "" -#: ../NEWS:2598 +#: ../NEWS:2772 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:2602 +#: ../NEWS:2776 msgid "" ":gh:`144538`: Bump the version of pip bundled in ensurepip to version 26.0.1" msgstr "" -#: ../NEWS:2604 +#: ../NEWS:2778 msgid "" -":gh:`144494`: Fix performance regression in :func:`asyncio.all_tasks` on " -":term:`free-threaded builds `. Patch by Kumar Aditya." +":gh:`144494`: Fix performance regression in :func:`asyncio.all_tasks` on :" +"term:`free-threaded builds `. Patch by Kumar Aditya." msgstr "" -#: ../NEWS:2607 +#: ../NEWS:2781 msgid "" ":gh:`144316`: Fix crash in ``_remote_debugging`` that caused " "``test_external_inspection`` to intermittently fail. Patch by Taegyun Kim." msgstr "" -#: ../NEWS:2610 +#: ../NEWS:2784 msgid "" ":gh:`144363`: Update bundled `libexpat `_ to " "2.7.4" msgstr "" -#: ../NEWS:2613 +#: ../NEWS:2787 msgid "" -":gh:`143637`: Fixed a crash in socket.sendmsg() that could occur if ancillary" -" data is mutated re-entrantly during argument parsing." +":gh:`143637`: Fixed a crash in socket.sendmsg() that could occur if " +"ancillary data is mutated re-entrantly during argument parsing." msgstr "" -#: ../NEWS:2616 +#: ../NEWS:2790 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:2620 +#: ../NEWS:2794 msgid "" ":gh:`140652`: Fix a crash in :func:`!_interpchannels.list_all` after closing " "a channel." msgstr "" -#: ../NEWS:2623 +#: ../NEWS:2797 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." +":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:2627 +#: ../NEWS:2801 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:2631 +#: ../NEWS:2805 msgid "" ":gh:`142516`: :mod:`ssl`: fix reference leaks in :class:`ssl.SSLContext` " "objects. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2634 +#: ../NEWS:2808 msgid "" ":gh:`143304`: Fix :class:`ctypes.CDLL` to honor the ``handle`` parameter on " "POSIX systems." msgstr "" -#: ../NEWS:2637 +#: ../NEWS:2811 msgid "" -":gh:`142781`: :mod:`zoneinfo`: fix a crash when instantiating " -":class:`~zoneinfo.ZoneInfo` objects for which the internal class-level cache " -"is inconsistent." +":gh:`142781`: :mod:`zoneinfo`: fix a crash when instantiating :class:" +"`~zoneinfo.ZoneInfo` objects for which the internal class-level cache is " +"inconsistent." msgstr "" -#: ../NEWS:2641 +#: ../NEWS:2815 msgid "" ":gh:`142763`: Fix a race condition between :class:`zoneinfo.ZoneInfo` " -"creation and :func:`zoneinfo.ZoneInfo.clear_cache` that could raise " -":exc:`KeyError`." +"creation and :func:`zoneinfo.ZoneInfo.clear_cache` that could raise :exc:" +"`KeyError`." msgstr "" -#: ../NEWS:2645 +#: ../NEWS:2819 msgid "" ":gh:`142787`: Fix assertion failure in :mod:`sqlite3` blob subscript when " "slicing with indices that result in an empty slice." msgstr "" -#: ../NEWS:2648 +#: ../NEWS:2822 msgid "" -":gh:`142352`: Fix :meth:`asyncio.StreamWriter.start_tls` to transfer buffered" -" data from :class:`~asyncio.StreamReader` to the SSL layer, preventing data " -"loss when upgrading a connection to TLS mid-stream (e.g., when implementing " -"PROXY protocol support)." +":gh:`142352`: Fix :meth:`asyncio.StreamWriter.start_tls` to transfer " +"buffered data from :class:`~asyncio.StreamReader` to the SSL layer, " +"preventing data loss when upgrading a connection to TLS mid-stream (e.g., " +"when implementing PROXY protocol support)." msgstr "" -#: ../NEWS:2653 +#: ../NEWS:2827 msgid "" -":gh:`141707`: Don't change :class:`tarfile.TarInfo` type from ``AREGTYPE`` to" -" ``DIRTYPE`` when parsing GNU long name or link headers." +":gh:`141707`: Don't change :class:`tarfile.TarInfo` type from ``AREGTYPE`` " +"to ``DIRTYPE`` when parsing GNU long name or link headers." msgstr "" -#: ../NEWS:2656 +#: ../NEWS:2830 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:2660 +#: ../NEWS:2834 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:2664 +#: ../NEWS:2838 msgid "" ":gh:`80667`: Support lookup for Tangut Ideographs in :mod:`unicodedata`." msgstr "" -#: ../NEWS:2666 +#: ../NEWS:2840 msgid "" ":issue:`40243`: Fix :meth:`!unicodedata.ucd_3_2_0.numeric` for non-decimal " "values." msgstr "" -#: ../NEWS:2672 +#: ../NEWS:2846 msgid "" ":gh:`126676`: Expand :mod:`argparse` documentation for ``type=bool`` with a " "demonstration of the surprising behavior and pointers to common alternatives." msgstr "" -#: ../NEWS:2676 +#: ../NEWS:2850 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:2679 +#: ../NEWS:2853 msgid "" ":gh:`145450`: Document missing public :class:`wave.Wave_write` getter " "methods." msgstr "" -#: ../NEWS:2682 +#: ../NEWS:2856 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." +"sidebar of the docs, offering links to create GitHub issues, discussion " +"forum posts, or pull requests." msgstr "" -#: ../NEWS:2689 +#: ../NEWS:2863 msgid "" -":gh:`144418`: The Android testbed's emulator RAM has been increased from 2 GB" -" to 4 GB." +":gh:`144418`: The Android testbed's emulator RAM has been increased from 2 " +"GB to 4 GB." msgstr "" -#: ../NEWS:2692 +#: ../NEWS:2866 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 fail" -" on Windows if the \"build\" directory was not created. Patch by Victor " +"directory is created in the worker process. Previously, temp_cwd() could " +"fail on Windows if the \"build\" directory was not created. Patch by Victor " "Stinner." msgstr "" -#: ../NEWS:2697 +#: ../NEWS:2871 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`." +":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:2704 +#: ../NEWS:2878 msgid "" ":gh:`146541`: The Android testbed can now be built for 32-bit ARM and x86 " "targets." msgstr "" -#: ../NEWS:2707 +#: ../NEWS:2881 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." +"included in installed app content, and is more robust in identifying " +"standard library binary content that requires processing." msgstr "" -#: ../NEWS:2711 +#: ../NEWS:2885 msgid "" ":gh:`146450`: The Android build script was modified to improve parity with " "other platform build scripts." msgstr "" -#: ../NEWS:2714 +#: ../NEWS:2888 msgid "" ":gh:`146446`: The clean target for the Apple/iOS XCframework build script is " "now more selective when targeting a single architecture." msgstr "" -#: ../NEWS:2717 +#: ../NEWS:2891 msgid "" -":gh:`145801`: When Python build is optimized with GCC using PGO, use " -"``-fprofile-update=atomic`` option to use atomic operations when updating " +":gh:`145801`: When Python build is optimized with GCC using PGO, use ``-" +"fprofile-update=atomic`` option to use atomic operations when updating " "profile information. This option reduces the risk of gcov Data Files (.gcda) " "corruption which can cause random GCC crashes. Patch by Victor Stinner." msgstr "" -#: ../NEWS:2726 +#: ../NEWS:2900 msgid "" -":gh:`145307`: Defers loading of the ``psapi.dll`` module until it is used by " -":func:`ctypes.util.dllist`." +":gh:`145307`: Defers loading of the ``psapi.dll`` module until it is used " +"by :func:`ctypes.util.dllist`." msgstr "" -#: ../NEWS:2729 +#: ../NEWS:2903 msgid ":gh:`144551`: Updated bundled version of OpenSSL to 3.0.19." msgstr "" -#: ../NEWS:2731 +#: ../NEWS:2905 msgid "" ":gh:`140131`: Fix REPL cursor position on Windows when module completion " "suggestion line hits console width." msgstr "" -#: ../NEWS:2737 +#: ../NEWS:2911 msgid ":gh:`144551`: Update macOS installer to use OpenSSL 3.0.19." msgstr "" -#: ../NEWS:2739 +#: ../NEWS:2913 msgid "" -":gh:`137586`: Invoke :program:`osascript` with absolute path in " -":mod:`webbrowser` and :mod:`!turtledemo`." +":gh:`137586`: Invoke :program:`osascript` with absolute path in :mod:" +"`webbrowser` and :mod:`!turtledemo`." msgstr "" -#: ../NEWS:2745 +#: ../NEWS:2919 msgid "" ":gh:`146056`: :c:func:`PyUnicodeWriter_WriteRepr` now supports ``NULL`` " "argument." msgstr "" -#: ../NEWS:2748 +#: ../NEWS:2922 msgid "" -":gh:`145010`: Use GCC dialect alternatives for inline assembly in " -"``object.h`` so that the Python headers compile correctly with " -"``-masm=intel``." +":gh:`145010`: Use GCC dialect alternatives for inline assembly in ``object." +"h`` so that the Python headers compile correctly with ``-masm=intel``." msgstr "" -#: ../NEWS:2752 +#: ../NEWS:2926 msgid "" -":gh:`144981`: Made :c:func:`PyUnstable_Code_SetExtra`, " -":c:func:`PyUnstable_Code_GetExtra`, and " -":c:func:`PyUnstable_Eval_RequestCodeExtraIndex` thread-safe on the " -":term:`free threaded ` build." +":gh:`144981`: Made :c:func:`PyUnstable_Code_SetExtra`, :c:func:" +"`PyUnstable_Code_GetExtra`, and :c:func:" +"`PyUnstable_Eval_RequestCodeExtraIndex` thread-safe on the :term:`free " +"threaded ` build." msgstr "" -#: ../NEWS:2759 +#: ../NEWS:2933 msgid "Python 3.14.3 final" msgstr "" -#: ../NEWS:2761 +#: ../NEWS:2935 msgid "*Release date: 2026-02-03*" msgstr "" -#: ../NEWS:2766 +#: ../NEWS:2940 msgid "" ":gh:`128067`: Fix a bug in PyREPL on Windows where output without a trailing " "newline was overwritten by the next prompt." msgstr "" -#: ../NEWS:2772 +#: ../NEWS:2946 msgid "" -":gh:`142095`: Make gdb 'py-bt' command use frame from thread local state when" -" available. Patch by Sam Gross and Victor Stinner." +":gh:`142095`: Make gdb 'py-bt' command use frame from thread local state " +"when available. Patch by Sam Gross and Victor Stinner." msgstr "" -#: ../NEWS:2778 +#: ../NEWS:2952 msgid "" ":gh:`144415`: The Android testbed now distinguishes between stdout/stderr " "messages which were triggered by a newline, and those triggered by a manual " @@ -4814,334 +5047,331 @@ msgid "" "content." msgstr "" -#: ../NEWS:2783 +#: ../NEWS:2957 msgid "" ":gh:`143460`: Skip tests relying on infinite recusion if stack size is " "unlimited." msgstr "" -#: ../NEWS:2786 +#: ../NEWS:2960 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``." +"regrtests, which allows to run Tkinter tests with the specified value of :" +"data:`!tkinter.wantobjects`, for example ``-u wantobjects=0``." msgstr "" -#: ../NEWS:2790 +#: ../NEWS:2964 msgid "" ":gh:`143553`: Add support for parametrized resources, such as ``-u " "xpickle=2.7``." msgstr "" -#: ../NEWS:2793 +#: ../NEWS:2967 msgid "" -":gh:`142836`: Accommodated Solaris in " -"``test_pdb.test_script_target_anonymous_pipe``." +":gh:`142836`: Accommodated Solaris in ``test_pdb." +"test_script_target_anonymous_pipe``." msgstr "" -#: ../NEWS:2796 +#: ../NEWS:2970 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:2802 +#: ../NEWS:2976 msgid "" ":gh:`144125`: :mod:`~email.generator.BytesGenerator` will now refuse to " -"serialize (write) headers that are unsafely folded or delimited; see " -":attr:`~email.policy.Policy.verify_generated_headers`. (Contributed by Bas " +"serialize (write) headers that are unsafely folded or delimited; see :attr:" +"`~email.policy.Policy.verify_generated_headers`. (Contributed by Bas " "Bloemsaat and Petr Viktorin in :gh:`121650`)." msgstr "" -#: ../NEWS:2807 +#: ../NEWS:2981 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 long " -"sequence of non-foldable characters could trigger a forced line wrap that " -"omitted the required leading space on the continuation line, causing the " -"remainder of the comment to be interpreted as a new header field. This " +":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 " +"long sequence of non-foldable characters could trigger a forced line wrap " +"that omitted the required leading space on the continuation line, causing " +"the remainder of the comment to be interpreted as a new header field. This " "enabled header injection with carefully crafted inputs." msgstr "" -#: ../NEWS:2814 +#: ../NEWS:2988 msgid ":gh:`143925`: Reject control characters in ``data:`` URL media types." msgstr "" -#: ../NEWS:2816 +#: ../NEWS:2990 msgid "" ":gh:`143919`: Reject control characters in :class:`http.cookies.Morsel` " "fields and values." msgstr "" -#: ../NEWS:2819 +#: ../NEWS:2993 msgid "" ":gh:`143916`: Reject C0 control characters within wsgiref.headers.Headers " "fields, values, and parameters." msgstr "" -#: ../NEWS:2825 +#: ../NEWS:2999 msgid "" ":gh:`144380`: Improve performance of :class:`io.BufferedReader` line " "iteration by ~49%." msgstr "" -#: ../NEWS:2828 +#: ../NEWS:3002 msgid "" ":gh:`144169`: Fix three crashes when non-string keyword arguments are " "supplied to objects in the :mod:`ast` module." msgstr "" -#: ../NEWS:2831 +#: ../NEWS:3005 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." +"``POINTER(str)`` type in ``argtypes``. Instead of aborting, ctypes now " +"raises a proper Python exception when the pointer target type is unresolved." msgstr "" -#: ../NEWS:2836 +#: ../NEWS:3010 msgid "" ":gh:`144050`: Fix :func:`stat.filemode` in the pure-Python implementation to " "avoid misclassifying invalid mode values as block devices." msgstr "" -#: ../NEWS:2839 +#: ../NEWS:3013 msgid "" ":gh:`144023`: Fixed validation of file descriptor 0 in posix functions when " "used with follow_symlinks parameter." msgstr "" -#: ../NEWS:2842 +#: ../NEWS:3016 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." +":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:2846 +#: ../NEWS:3020 msgid "" -":gh:`143831`: :class:`annotationlib.ForwardRef` objects are now hashable when" -" created from annotation scopes with closures. Previously, hashing such " +":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:2850 +#: ../NEWS:3024 msgid "" ":gh:`143874`: Fixed a bug in :mod:`pdb` where expression results were not " "sent back to remote client." msgstr "" -#: ../NEWS:2853 +#: ../NEWS:3027 msgid "" ":gh:`143880`: Fix data race in :func:`functools.partial` in the :term:`free " "threading` build." msgstr "" -#: ../NEWS:2856 +#: ../NEWS:3030 msgid "" ":gh:`143706`: Fix :mod:`multiprocessing` forkserver so that :data:`sys.argv` " -"is correctly set before ``__main__`` is preloaded. Previously, " -":data:`sys.argv` was empty during main module import in forkserver child " -"processes. This fixes a regression introduced in 3.13.8 and 3.14.1. Root " -"caused by Aaron Wieczorek, test provided by Thomas Watson, thanks!" +"is correctly set before ``__main__`` is preloaded. Previously, :data:`sys." +"argv` was empty during main module import in forkserver child processes. " +"This fixes a regression introduced in 3.13.8 and 3.14.1. Root caused by " +"Aaron Wieczorek, test provided by Thomas Watson, thanks!" msgstr "" -#: ../NEWS:2862 +#: ../NEWS:3036 msgid "" -":gh:`143638`: Forbid reentrant calls of the :class:`pickle.Pickler` and " -":class:`pickle.Unpickler` methods for the C implementation. Previously, this " +":gh:`143638`: Forbid reentrant calls of the :class:`pickle.Pickler` and :" +"class:`pickle.Unpickler` methods for the C implementation. Previously, this " "could cause crash or data corruption, now concurrent calls of methods of the " "same object raise :exc:`RuntimeError`." msgstr "" -#: ../NEWS:2867 +#: ../NEWS:3041 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:2871 +#: ../NEWS:3045 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:2875 +#: ../NEWS:3049 msgid "" ":gh:`143191`: :func:`_thread.stack_size` now raises :exc:`ValueError` if the " "stack size is too small. Patch by Victor Stinner." msgstr "" -#: ../NEWS:2878 +#: ../NEWS:3052 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:2881 +#: ../NEWS:3055 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:2885 +#: ../NEWS:3059 msgid "" -":gh:`143517`: :func:`annotationlib.get_annotations` no longer raises a " -":exc:`SyntaxError` when evaluating a stringified starred annotation that " -"starts with one or more whitespace characters followed by a ``*``. Patch by " -"Bartosz Sławecki." +":gh:`143517`: :func:`annotationlib.get_annotations` no longer raises a :exc:" +"`SyntaxError` when evaluating a stringified starred annotation that starts " +"with one or more whitespace characters followed by a ``*``. Patch by Bartosz " +"Sławecki." msgstr "" -#: ../NEWS:2890 +#: ../NEWS:3064 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`." +"is concurrently mutated during :meth:`~io.RawIOBase.write` or :meth:`~io." +"IOBase.writelines`." msgstr "" -#: ../NEWS:2894 +#: ../NEWS:3068 msgid "" -":gh:`143346`: Fix incorrect wrapping of the Base64 data in " -":class:`!plistlib._PlistWriter` when the indent contains a mix of tabs and " -"spaces." +":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:2898 +#: ../NEWS:3072 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:2902 +#: ../NEWS:3076 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:2906 +#: ../NEWS:3080 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." +":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:2910 +#: ../NEWS:3084 msgid "" ":gh:`143237`: Fix support of named pipes in the rotating :mod:`logging` " "handlers." msgstr "" -#: ../NEWS:2913 +#: ../NEWS:3087 msgid "" ":gh:`143249`: Fix possible buffer leaks in Windows overlapped I/O on error " "handling." msgstr "" -#: ../NEWS:2916 +#: ../NEWS:3090 msgid "" -":gh:`143241`: :mod:`zoneinfo`: fix infinite loop in :meth:`ZoneInfo.from_file" -" ` when parsing a malformed TZif file. Patch by " -"Fatih Celik." +":gh:`143241`: :mod:`zoneinfo`: fix infinite loop in :meth:`ZoneInfo." +"from_file ` when parsing a malformed TZif file. " +"Patch by Fatih Celik." msgstr "" -#: ../NEWS:2920 +#: ../NEWS:3094 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:2924 +#: ../NEWS:3098 msgid "" -":gh:`143200`: :mod:`xml.etree.ElementTree`: fix use-after-free crashes in " -":meth:`~object.__getitem__` and :meth:`~object.__setitem__` methods of " -":class:`~xml.etree.ElementTree.Element` when the element is concurrently " -"mutated. Patch by Bénédikt Tran." +":gh:`143200`: :mod:`xml.etree.ElementTree`: fix use-after-free crashes in :" +"meth:`~object.__getitem__` and :meth:`~object.__setitem__` methods of :class:" +"`~xml.etree.ElementTree.Element` when the element is concurrently mutated. " +"Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:2929 +#: ../NEWS:3103 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:2933 +#: ../NEWS:3107 msgid "" ":gh:`142164`: Fix the ctypes bitfield overflow error message to report the " "correct offset and size calculation." msgstr "" -#: ../NEWS:2936 +#: ../NEWS:3110 msgid "" ":gh:`143145`: Fixed a possible reference leak in ctypes when constructing " "results with multiple output parameters on error." msgstr "" -#: ../NEWS:2939 +#: ../NEWS:3113 msgid "" -":gh:`122431`: Corrected the error message in " -":func:`readline.append_history_file` to state that ``nelements`` must be non-" -"negative instead of positive." +":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:2943 +#: ../NEWS:3117 msgid "" -":gh:`143004`: Fix a potential use-after-free in " -":meth:`collections.Counter.update` when user code mutates the Counter during " -"an update." +":gh:`143004`: Fix a potential use-after-free in :meth:`collections.Counter." +"update` when user code mutates the Counter during an update." msgstr "" -#: ../NEWS:2947 +#: ../NEWS:3121 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:2950 +#: ../NEWS:3124 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." +"(isolated mode). Previously, it would load and execute :envvar:" +"`PYTHONSTARTUP` even if the flag was set. Contributed by Bartosz Sławecki." msgstr "" -#: ../NEWS:2955 +#: ../NEWS:3129 msgid "" ":gh:`142991`: Fixed socket operations such as recvfrom() and sendto() for " "FreeBSD divert(4) socket." msgstr "" -#: ../NEWS:2958 +#: ../NEWS:3132 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:2962 +#: ../NEWS:3136 msgid "" ":gh:`142881`: Fix concurrent and reentrant call of :func:`atexit.unregister`." msgstr "" -#: ../NEWS:2964 +#: ../NEWS:3138 msgid "" ":gh:`112127`: Fix possible use-after-free in :func:`atexit.unregister` when " "the callback is unregistered during comparison." msgstr "" -#: ../NEWS:2967 +#: ../NEWS:3141 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." +"descriptor as _weak_cache could cause crashes during object creation. The " +"fix ensures proper reference counting for descriptor-provided objects." msgstr "" -#: ../NEWS:2971 +#: ../NEWS:3145 msgid "" ":gh:`142754`: Add the *ownerDocument* attribute to :mod:`xml.dom.minidom` " "elements and attributes created by directly instantiating the ``Element`` or " @@ -5150,347 +5380,345 @@ msgid "" "used instead." msgstr "" -#: ../NEWS:2977 +#: ../NEWS:3151 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:2981 +#: ../NEWS:3155 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:2985 +#: ../NEWS:3159 msgid "" ":gh:`142594`: Fix crash in ``TextIOWrapper.close()`` when the underlying " "buffer's ``closed`` property calls :meth:`~io.TextIOBase.detach`." msgstr "" -#: ../NEWS:2988 +#: ../NEWS:3162 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." +":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:2992 +#: ../NEWS:3166 msgid "" -":gh:`142495`: :class:`collections.defaultdict` now prioritizes " -":meth:`~object.__setitem__` when inserting default values from " +":gh:`142495`: :class:`collections.defaultdict` now prioritizes :meth:" +"`~object.__setitem__` when inserting default values from " "``default_factory``. This prevents race conditions where a default value " "would overwrite a value set before ``default_factory`` returns." msgstr "" -#: ../NEWS:2997 +#: ../NEWS:3171 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." +":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:3002 +#: ../NEWS:3176 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:3006 +#: ../NEWS:3180 msgid "" -":gh:`142556`: Fix crash when a task gets re-registered during finalization in" -" :mod:`asyncio`. Patch by Kumar Aditya." +":gh:`142556`: Fix crash when a task gets re-registered during finalization " +"in :mod:`asyncio`. Patch by Kumar Aditya." msgstr "" -#: ../NEWS:3009 +#: ../NEWS:3183 msgid "" -":gh:`123241`: Avoid reference count operations in garbage collection of " -":mod:`ctypes` objects." +":gh:`123241`: Avoid reference count operations in garbage collection of :mod:" +"`ctypes` objects." msgstr "" -#: ../NEWS:3012 +#: ../NEWS:3186 msgid "" -":gh:`142517`: The non-``compat32`` :mod:`email` policies now correctly handle" -" refolding encoded words that contain bytes that can not be decoded in their " -"specified character set. Previously this resulted in an encoding exception " -"during folding." +":gh:`142517`: The non-``compat32`` :mod:`email` policies now correctly " +"handle refolding encoded words that contain bytes that can not be decoded in " +"their specified character set. Previously this resulted in an encoding " +"exception during folding." msgstr "" -#: ../NEWS:3017 +#: ../NEWS:3191 msgid "" -":gh:`112527`: The help text for required options in :mod:`argparse` no longer" -" extended with \" (default: None)\"." +":gh:`112527`: The help text for required options in :mod:`argparse` no " +"longer extended with \" (default: None)\"." msgstr "" -#: ../NEWS:3020 +#: ../NEWS:3194 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." +":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:3024 +#: ../NEWS:3198 msgid "" ":gh:`142315`: Pdb can now run scripts from anonymous pipes used in process " "substitution. Patch by Bartosz Sławecki." msgstr "" -#: ../NEWS:3027 +#: ../NEWS:3201 msgid "" ":gh:`142332`: Fix usage formatting for positional arguments in mutually " "exclusive groups in :mod:`argparse`. in :mod:`argparse`." msgstr "" -#: ../NEWS:3030 +#: ../NEWS:3204 msgid "" ":gh:`142282`: Fix :func:`winreg.QueryValueEx` to not accidentally read " "garbage buffer under race condition." msgstr "" -#: ../NEWS:3033 +#: ../NEWS:3207 msgid "" ":gh:`75949`: Fix :mod:`argparse` to preserve ``|`` separators in mutually " "exclusive groups when the usage line wraps due to length." msgstr "" -#: ../NEWS:3036 +#: ../NEWS:3210 msgid "" ":gh:`142267`: Improve :mod:`argparse` performance by caching the formatter " "used for argument validation." msgstr "" -#: ../NEWS:3039 +#: ../NEWS:3213 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:3043 +#: ../NEWS:3217 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." +"which incorrectly resulted in a doubled newline when a line ending at " +"exactly max_line_length was followed by an unfoldable token." msgstr "" -#: ../NEWS:3047 +#: ../NEWS:3221 msgid "" -":gh:`105836`: Fix :meth:`asyncio.run_coroutine_threadsafe` leaving underlying" -" cancelled asyncio task running." +":gh:`105836`: Fix :meth:`asyncio.run_coroutine_threadsafe` leaving " +"underlying cancelled asyncio task running." msgstr "" -#: ../NEWS:3050 +#: ../NEWS:3224 msgid "" ":gh:`139971`: :mod:`pydoc`: Ensure that the link to the online documentation " "of a :term:`stdlib` module is correct." msgstr "" -#: ../NEWS:3053 +#: ../NEWS:3227 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:3057 +#: ../NEWS:3231 msgid "" ":gh:`138897`: Improved :data:`license`/:data:`copyright`/:data:`credits` " "display in the :term:`REPL`: now uses a pager." msgstr "" -#: ../NEWS:3060 +#: ../NEWS:3234 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:3064 +#: ../NEWS:3238 msgid "" ":gh:`136282`: Add support for :const:`~configparser.UNNAMED_SECTION` when " "creating a section via the mapping protocol access" msgstr "" -#: ../NEWS:3067 +#: ../NEWS:3241 msgid "" -":gh:`109263`: Starting a process from spawn context in :mod:`multiprocessing`" -" no longer sets the start method globally." +":gh:`109263`: Starting a process from spawn context in :mod:" +"`multiprocessing` no longer sets the start method globally." msgstr "" -#: ../NEWS:3070 +#: ../NEWS:3244 msgid ":gh:`133253`: Fix thread-safety issues in :mod:`linecache`." msgstr "" -#: ../NEWS:3072 +#: ../NEWS:3246 msgid "" ":gh:`132715`: Skip writing objects during marshalling once a failure has " "occurred." msgstr "" -#: ../NEWS:3078 +#: ../NEWS:3252 msgid "" ":gh:`143774`: Better explain the operation of Format / Format Paragraph." msgstr "" -#: ../NEWS:3083 +#: ../NEWS:3257 msgid ":gh:`140806`: Add documentation for :func:`enum.bin`." msgstr "" -#: ../NEWS:3088 +#: ../NEWS:3262 msgid "" ":gh:`144307`: Prevent a reference leak in module teardown at interpreter " "finalization." msgstr "" -#: ../NEWS:3091 +#: ../NEWS:3265 msgid "" ":gh:`144194`: Fix error handling in perf jitdump initialization on memory " "allocation failure." msgstr "" -#: ../NEWS:3094 +#: ../NEWS:3268 msgid "" ":gh:`144012`: Check if the result is ``NULL`` in ``BINARY_OP_EXTENT`` opcode." msgstr "" -#: ../NEWS:3096 +#: ../NEWS:3270 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:3100 +#: ../NEWS:3274 msgid ":gh:`143670`: Fixes a crash in ``ga_repr_items_list`` function." msgstr "" -#: ../NEWS:3102 +#: ../NEWS:3276 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:3105 +#: ../NEWS:3279 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:3109 +#: ../NEWS:3283 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:3113 +#: ../NEWS:3287 msgid "" ":gh:`143228`: Fix use-after-free in perf trampoline when toggling profiling " "while threads are running or during interpreter finalization with daemon " -"threads active. The fix uses reference counting to ensure trampolines are not" -" freed while any code object could still reference them. Pach by Pablo " +"threads active. The fix uses reference counting to ensure trampolines are " +"not freed while any code object could still reference them. Pach by Pablo " "Galindo" msgstr "" -#: ../NEWS:3119 +#: ../NEWS:3293 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:3123 +#: ../NEWS:3297 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:3127 +#: ../NEWS:3301 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." +":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:3131 +#: ../NEWS:3305 msgid "" ":gh:`142975`: Fix crash after unfreezing all objects tracked by the garbage " "collector on the :term:`free threaded ` build." msgstr "" -#: ../NEWS:3134 +#: ../NEWS:3308 msgid "" -":gh:`143135`: Set :data:`sys.flags.inspect` to ``1`` when " -":envvar:`PYTHONINSPECT` is ``0``. Previously, it was set to ``0`` in this " -"case." +":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:3138 +#: ../NEWS:3312 msgid "" -":gh:`143003`: Fix an overflow of the shared empty buffer in " -":meth:`bytearray.extend` when ``__length_hint__()`` returns 0 for non-empty " -"iterator." +":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:3142 +#: ../NEWS:3316 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:3146 +#: ../NEWS:3320 msgid "" -":gh:`143057`: Avoid locking in :c:func:`PyTraceMalloc_Track` and " -":c:func:`PyTraceMalloc_Untrack` when :mod:`tracemalloc` is not enabled." +":gh:`143057`: Avoid locking in :c:func:`PyTraceMalloc_Track` and :c:func:" +"`PyTraceMalloc_Untrack` when :mod:`tracemalloc` is not enabled." msgstr "" -#: ../NEWS:3149 +#: ../NEWS:3323 msgid ":gh:`142776`: Fix a file descriptor leak in import.c" msgstr "" -#: ../NEWS:3151 +#: ../NEWS:3325 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`." +"comparison when a custom ``__eq__`` method modifies the context via :meth:" +"`~contextvars.ContextVar.set`." msgstr "" -#: ../NEWS:3155 +#: ../NEWS:3329 msgid "" ":gh:`142766`: Clear the frame of a generator when :meth:`generator.close` is " "called." msgstr "" -#: ../NEWS:3158 +#: ../NEWS:3332 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." +":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:3162 +#: ../NEWS:3336 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:3165 +#: ../NEWS:3339 msgid "" -":gh:`142560`: Fix use-after-free in :class:`bytearray` search-like methods " -"(:meth:`~bytearray.find`, :meth:`~bytearray.count`, :meth:`~bytearray.index`," -" :meth:`~bytearray.rindex`, and :meth:`~bytearray.rfind`) by marking the " -"storage as exported which causes reallocation attempts to raise " -":exc:`BufferError`. For :func:`~operator.contains`, :meth:`~bytearray.split`," -" and :meth:`~bytearray.rsplit` the :ref:`buffer protocol ` is " +":gh:`142560`: Fix use-after-free in :class:`bytearray` search-like methods (:" +"meth:`~bytearray.find`, :meth:`~bytearray.count`, :meth:`~bytearray.index`, :" +"meth:`~bytearray.rindex`, and :meth:`~bytearray.rfind`) by marking the " +"storage as exported which causes reallocation attempts to raise :exc:" +"`BufferError`. For :func:`~operator.contains`, :meth:`~bytearray.split`, " +"and :meth:`~bytearray.rsplit` the :ref:`buffer protocol ` is " "used for this." msgstr "" -#: ../NEWS:3174 +#: ../NEWS:3348 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 " @@ -5499,69 +5727,69 @@ msgid "" "free-threaded GC must scan those too." msgstr "" -#: ../NEWS:3180 +#: ../NEWS:3354 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:3184 +#: ../NEWS:3358 msgid "" -":gh:`133932`: Fix crash in the free threading build when clearing frames that" -" hold tagged integers." +":gh:`133932`: Fix crash in the free threading build when clearing frames " +"that hold tagged integers." msgstr "" -#: ../NEWS:3187 +#: ../NEWS:3361 msgid "" ":gh:`142343`: Fix SIGILL crash on m68k due to incorrect assembly constraint." msgstr "" -#: ../NEWS:3189 +#: ../NEWS:3363 msgid "" ":gh:`100964`: Fix reference cycle in exhausted generator frames. Patch by " "Savannah Ostrowski." msgstr "" -#: ../NEWS:3192 +#: ../NEWS:3366 msgid "" -":gh:`69605`: Fix edge-cases around already imported modules in the " -":term:`REPL` auto-completion of imports." +":gh:`69605`: Fix edge-cases around already imported modules in the :term:" +"`REPL` auto-completion of imports." msgstr "" -#: ../NEWS:3195 +#: ../NEWS:3369 msgid "" ":gh:`138568`: Adjusted the built-in :func:`help` function so that empty " "inputs are ignored in interactive mode." msgstr "" -#: ../NEWS:3198 +#: ../NEWS:3372 msgid "" ":gh:`137007`: Fix a bug during JIT compilation failure which caused garbage " "collection debug assertions to fail." msgstr "" -#: ../NEWS:3204 +#: ../NEWS:3378 msgid "" ":gh:`142589`: Fix :c:func:`PyUnstable_Object_IsUniqueReferencedTemporary()` " "handling of tagged ints on the interpreter stack." msgstr "" -#: ../NEWS:3207 +#: ../NEWS:3381 msgid "" ":gh:`142571`: :c:func:`!PyUnstable_CopyPerfMapFile` now checks that opening " "the file succeeded before flushing." msgstr "" -#: ../NEWS:3213 +#: ../NEWS:3387 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. This " -"ensures deterministic hash input and hence deterministic hash, independent on" -" filesystem order." +":gh:`142454`: When calculating the digest of the JIT stencils input, sort " +"the hashed files by filenames before adding their content to the hasher. " +"This ensures deterministic hash input and hence deterministic hash, " +"independent on filesystem order." msgstr "" -#: ../NEWS:3218 +#: ../NEWS:3392 msgid "" ":gh:`141808`: When running ``make clean-retain-profile``, keep the generated " "JIT stencils. That way, the stencils are not generated twice when Profile-" @@ -5569,175 +5797,174 @@ msgid "" "their own pre-built JIT stencils." msgstr "" -#: ../NEWS:3223 +#: ../NEWS:3397 msgid "" ":gh:`138061`: Ensure reproducible builds by making JIT stencil header " "generation deterministic." msgstr "" -#: ../NEWS:3228 +#: ../NEWS:3402 msgid "Python 3.14.2 final" msgstr "" -#: ../NEWS:3230 +#: ../NEWS:3404 msgid "*Release date: 2025-12-05*" msgstr "" -#: ../NEWS:3235 +#: ../NEWS:3409 msgid "" ":gh:`142145`: Remove quadratic behavior in ``xml.minidom`` node ID cache " "clearing." msgstr "" -#: ../NEWS:3238 +#: ../NEWS:3412 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 Windows, it could cause an arbitrary amount of memory to be " -"allocated. This could have led to symptoms including a :exc:`MemoryError`, " -"swapping, out of memory (OOM) killed processes or containers, or even system " -"crashes." +":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 " +"Windows, it could cause an arbitrary amount of memory to be allocated. This " +"could have led to symptoms including a :exc:`MemoryError`, swapping, out of " +"memory (OOM) killed processes or containers, or even system crashes." msgstr "" -#: ../NEWS:3248 +#: ../NEWS:3422 msgid "" ":gh:`140797`: Revert changes to the undocumented :class:`!re.Scanner` class. " -"Capturing groups are still allowed for backward compatibility, although using" -" them can lead to incorrect result. They will be forbidden in future Python " -"versions." +"Capturing groups are still allowed for backward compatibility, although " +"using them can lead to incorrect result. They will be forbidden in future " +"Python versions." msgstr "" -#: ../NEWS:3253 +#: ../NEWS:3427 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 " "default. This avoids issues with upgrading Python while it is running. (Note " -"that such 'in-place' upgrades are not tested.) The tracker remains compatible" -" with subprocesses that use new protocol (that is, subprocesses using Python " -"3.13.10, 3.14.1 and 3.15)." +"that such 'in-place' upgrades are not tested.) The tracker remains " +"compatible with subprocesses that use new protocol (that is, subprocesses " +"using Python 3.13.10, 3.14.1 and 3.15)." msgstr "" -#: ../NEWS:3260 +#: ../NEWS:3434 msgid "" ":gh:`142214`: Fix two regressions in :mod:`dataclasses` in Python 3.14.1 " "related to annotations." msgstr "" -#: ../NEWS:3263 +#: ../NEWS:3437 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:3267 +#: ../NEWS:3441 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:3271 ../NEWS:28985 +#: ../NEWS:3445 ../NEWS:29159 msgid "Patch by Jelle Zijlstra." msgstr "" -#: ../NEWS:3276 +#: ../NEWS:3450 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:3282 +#: ../NEWS:3456 msgid "" ":gh:`116738`: Fix :mod:`cmath` data race when initializing trigonometric " "tables with subinterpreters." msgstr "" -#: ../NEWS:3287 +#: ../NEWS:3461 msgid "Python 3.14.1 final" msgstr "" -#: ../NEWS:3289 +#: ../NEWS:3463 msgid "*Release date: 2025-12-02*" msgstr "" -#: ../NEWS:3294 +#: ../NEWS:3468 msgid "" ":gh:`139810`: Installing with ``py install 3[.x]-dev`` will now select final " "versions as well as prereleases." msgstr "" -#: ../NEWS:3300 +#: ../NEWS:3474 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 to" -" be compiled for iOS using dynamic libreary linking, rather than Framework " +"that contains a symlink to the libpython dylib. This allows binary modules " +"to be compiled for iOS using dynamic libreary linking, rather than Framework " "linking." msgstr "" -#: ../NEWS:3305 +#: ../NEWS:3479 msgid "" ":gh:`141442`: The iOS testbed now correctly handles test arguments that " "contain spaces." msgstr "" -#: ../NEWS:3308 +#: ../NEWS:3482 msgid "" ":gh:`140702`: The iOS testbed app will now expose the ``GITHUB_ACTIONS`` " "environment variable to iOS apps being tested." msgstr "" -#: ../NEWS:3311 +#: ../NEWS:3485 msgid "" ":gh:`137484`: Have ``Tools/wasm/wasi`` put the build Python into a directory " "named after the build triple instead of \"build\"." msgstr "" -#: ../NEWS:3314 +#: ../NEWS:3488 msgid "" -":gh:`137248`: Add a ``--logdir`` option to ``Tools/wasm/wasi`` for specifying" -" where to write log files." +":gh:`137248`: Add a ``--logdir`` option to ``Tools/wasm/wasi`` for " +"specifying where to write log files." msgstr "" -#: ../NEWS:3317 +#: ../NEWS:3491 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:3323 +#: ../NEWS:3497 msgid "" ":gh:`140482`: Preserve and restore the state of ``stty echo`` as part of the " "test environment." msgstr "" -#: ../NEWS:3326 +#: ../NEWS:3500 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:3330 +#: ../NEWS:3504 msgid "" -":gh:`139208`: Fix regrtest ``--fast-ci --verbose``: don't ignore the " -"``--verbose`` option anymore. Patch by Victor Stinner." +":gh:`139208`: Fix regrtest ``--fast-ci --verbose``: don't ignore the ``--" +"verbose`` option anymore. Patch by Victor Stinner." msgstr "" -#: ../NEWS:3333 +#: ../NEWS:3507 msgid "" -":gh:`136442`: Use exitcode ``1`` instead of ``5`` if " -":func:`unittest.TestCase.setUpClass` raises an exception" +":gh:`136442`: Use exitcode ``1`` instead of ``5`` if :func:`unittest." +"TestCase.setUpClass` raises an exception" msgstr "" -#: ../NEWS:3339 +#: ../NEWS:3513 msgid "" -":gh:`139700`: Check consistency of the zip64 end of central directory record." -" Support records with \"zip64 extensible data\" if there are no bytes " +":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:3343 +#: ../NEWS:3517 msgid "" ":gh:`139283`: :mod:`sqlite3`: correctly handle maximum number of rows to " "fetch in :meth:`Cursor.fetchmany ` and reject " @@ -5745,50 +5972,49 @@ msgid "" "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3348 +#: ../NEWS:3522 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:3352 +#: ../NEWS:3526 msgid "" ":gh:`136063`: :mod:`email.message`: ensure linear complexity for legacy HTTP " "parameters parsing. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3355 +#: ../NEWS:3529 msgid ":gh:`136065`: Fix quadratic complexity in :func:`os.path.expandvars`." msgstr "" -#: ../NEWS:3357 +#: ../NEWS:3531 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 arbitrary amount of memory to be allocated. This could have led to " -"symptoms including a :exc:`MemoryError`, swapping, out of memory (OOM) killed" -" processes or containers, or even system crashes." +":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 " +"arbitrary amount of memory to be allocated. This could have led to symptoms " +"including a :exc:`MemoryError`, swapping, out of memory (OOM) killed " +"processes or containers, or even system crashes." msgstr "" -#: ../NEWS:3363 +#: ../NEWS:3537 msgid "" -":gh:`119342`: Fix a potential memory denial of service in the :mod:`plistlib`" -" module. When reading a Plist file received from untrusted source, it could " -"cause an arbitrary amount of memory to be allocated. This could have led to " -"symptoms including a :exc:`MemoryError`, swapping, out of memory (OOM) killed" -" processes or containers, or even system crashes." +":gh:`119342`: Fix a potential memory denial of service in the :mod:" +"`plistlib` module. When reading a Plist file received from untrusted source, " +"it could cause an arbitrary amount of memory to be allocated. This could " +"have led to symptoms including a :exc:`MemoryError`, swapping, out of memory " +"(OOM) killed processes or containers, or even system crashes." msgstr "" -#: ../NEWS:3372 +#: ../NEWS:3546 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." +"instance is closed, this is now ignored in :meth:`subprocess.Popen." +"communicate` instead of leaving the class in an inconsistent state." msgstr "" -#: ../NEWS:3377 +#: ../NEWS:3551 msgid "" ":gh:`87512`: Fix :func:`subprocess.Popen.communicate` timeout handling on " "Windows when writing large input. Previously, the timeout was ignored during " @@ -5797,665 +6023,659 @@ msgid "" "background thread, allowing the timeout to be properly enforced." msgstr "" -#: ../NEWS:3384 +#: ../NEWS:3558 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:`~subprocess.TimeoutExpired` exception before the process has died, it " +"*input* and a *timeout* and is called for a second time after a :exc:" +"`~subprocess.TimeoutExpired` exception before the process has died, it " "should no longer hang." msgstr "" -#: ../NEWS:3389 +#: ../NEWS:3563 msgid "" ":gh:`59000`: Fix :mod:`pdb` breakpoint resolution for class methods when the " "module defining the class is not imported." msgstr "" -#: ../NEWS:3392 +#: ../NEWS:3566 msgid "" -":gh:`141570`: Support :term:`file-like object` raising :exc:`OSError` from " -":meth:`~io.IOBase.fileno` in color detection (``_colorize.can_colorize()``). " +":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:3397 +#: ../NEWS:3571 msgid "" ":gh:`141659`: Fix bad file descriptor errors from ``_posixsubprocess`` on " "AIX." msgstr "" -#: ../NEWS:3400 +#: ../NEWS:3574 msgid ":gh:`141600`: Fix musl version detection on Void Linux." msgstr "" -#: ../NEWS:3402 +#: ../NEWS:3576 msgid "" -":gh:`141497`: :mod:`ipaddress`: ensure that the methods " -":meth:`IPv4Network.hosts() ` and " -":meth:`IPv6Network.hosts() ` always return an " -"iterator." +":gh:`141497`: :mod:`ipaddress`: ensure that the methods :meth:`IPv4Network." +"hosts() ` and :meth:`IPv6Network.hosts() " +"` always return an iterator." msgstr "" -#: ../NEWS:3407 +#: ../NEWS:3581 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:3411 +#: ../NEWS:3585 msgid "" ":gh:`124111`: Updated Tcl threading configuration in :mod:`_tkinter` to " "assume that threads are always available in Tcl 9 and later." msgstr "" -#: ../NEWS:3414 +#: ../NEWS:3588 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 of " -"threads in a process and find the answer to be 1 even when a " -":func:`os.register_at_fork` ``after_in_parent=`` callback (re)starts a " -"thread." +":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 " +"of threads in a process and find the answer to be 1 even when a :func:`os." +"register_at_fork` ``after_in_parent=`` callback (re)starts a thread." msgstr "" -#: ../NEWS:3420 +#: ../NEWS:3594 msgid "" ":gh:`141314`: Fix assertion failure in :meth:`io.TextIOWrapper.tell` when " "reading files with standalone carriage return (``\\r``) line endings." msgstr "" -#: ../NEWS:3423 +#: ../NEWS:3597 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`." +"undefined behavior arising when read position is above capcity in :class:`io." +"BytesIO`." msgstr "" -#: ../NEWS:3427 +#: ../NEWS:3601 msgid "" ":gh:`141141`: Fix a thread safety issue with :func:`base64.b85decode`. " "Contributed by Benel Tayar." msgstr "" -#: ../NEWS:3430 +#: ../NEWS:3604 msgid "" -":gh:`137969`: Fix :meth:`annotationlib.ForwardRef.evaluate` returning " -":class:`~annotationlib.ForwardRef` objects which don't update with new " -"globals." +":gh:`137969`: Fix :meth:`annotationlib.ForwardRef.evaluate` returning :class:" +"`~annotationlib.ForwardRef` objects which don't update with new globals." msgstr "" -#: ../NEWS:3434 +#: ../NEWS:3608 msgid "" -":gh:`140911`: :mod:`collections`: Ensure that the methods " -"``UserString.rindex()`` and ``UserString.index()`` accept " -":class:`collections.UserString` instances as the sub argument." +":gh:`140911`: :mod:`collections`: Ensure that the methods ``UserString." +"rindex()`` and ``UserString.index()`` accept :class:`collections.UserString` " +"instances as the sub argument." msgstr "" -#: ../NEWS:3438 +#: ../NEWS:3612 msgid "" -":gh:`140797`: The undocumented :class:`!re.Scanner` class now forbids regular" -" expressions containing capturing groups in its lexicon patterns. Patterns " -"using capturing groups could previously lead to crashes with segmentation " -"fault. Use non-capturing groups (?:...) instead." +":gh:`140797`: The undocumented :class:`!re.Scanner` class now forbids " +"regular expressions containing capturing groups in its lexicon patterns. " +"Patterns using capturing groups could previously lead to crashes with " +"segmentation fault. Use non-capturing groups (?:...) instead." msgstr "" -#: ../NEWS:3443 +#: ../NEWS:3617 msgid "" ":gh:`125115`: Refactor the :mod:`pdb` parsing issue so positional arguments " "can pass through intuitively." msgstr "" -#: ../NEWS:3446 +#: ../NEWS:3620 msgid "" ":gh:`140815`: :mod:`faulthandler` now detects if a frame or a code object is " "invalid or freed. Patch by Victor Stinner." msgstr "" -#: ../NEWS:3449 +#: ../NEWS:3623 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." +":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:3453 +#: ../NEWS:3627 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:3457 +#: ../NEWS:3631 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:3460 +#: ../NEWS:3634 msgid "" ":gh:`140874`: Bump the version of pip bundled in ensurepip to version 25.3" msgstr "" -#: ../NEWS:3462 +#: ../NEWS:3636 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:3466 +#: ../NEWS:3640 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." +":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:3470 +#: ../NEWS:3644 msgid ":gh:`120057`: Add :func:`os.reload_environ` to ``os.__all__``." msgstr "" -#: ../NEWS:3472 +#: ../NEWS:3646 msgid "" -":gh:`140228`: Avoid making unnecessary filesystem calls for frozen modules in" -" :mod:`linecache` when the global module cache is not present." +":gh:`140228`: Avoid making unnecessary filesystem calls for frozen modules " +"in :mod:`linecache` when the global module cache is not present." msgstr "" -#: ../NEWS:3475 +#: ../NEWS:3649 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." +":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:3479 +#: ../NEWS:3653 msgid "" -":gh:`125434`: Display thread name in :mod:`faulthandler` on Windows. Patch by" -" Victor Stinner." +":gh:`125434`: Display thread name in :mod:`faulthandler` on Windows. Patch " +"by Victor Stinner." msgstr "" -#: ../NEWS:3482 +#: ../NEWS:3656 msgid "" -":gh:`140634`: Fix a reference counting bug in " -":meth:`!os.sched_param.__reduce__`." +":gh:`140634`: Fix a reference counting bug in :meth:`!os.sched_param." +"__reduce__`." msgstr "" -#: ../NEWS:3485 +#: ../NEWS:3659 msgid "" ":gh:`140633`: Ignore :exc:`AttributeError` when setting a module's " "``__file__`` attribute when loading an extension module packaged as Apple " "Framework." msgstr "" -#: ../NEWS:3489 +#: ../NEWS:3663 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:3493 +#: ../NEWS:3667 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)." +"bytes returned by :meth:`io.RawIOBase.readinto` is valid (inside the " +"provided buffer)." msgstr "" -#: ../NEWS:3497 +#: ../NEWS:3671 msgid "" ":gh:`138162`: Fix :class:`logging.LoggerAdapter` with ``merge_extra=True`` " "and without the *extra* argument." msgstr "" -#: ../NEWS:3500 +#: ../NEWS:3674 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:3504 +#: ../NEWS:3678 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:3507 +#: ../NEWS:3681 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:3511 +#: ../NEWS:3685 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:3515 +#: ../NEWS:3689 msgid "" -":gh:`140272`: Fix memory leak in the :meth:`!clear` method of the " -":mod:`dbm.gnu` database." +":gh:`140272`: Fix memory leak in the :meth:`!clear` method of the :mod:`dbm." +"gnu` database." msgstr "" -#: ../NEWS:3518 +#: ../NEWS:3692 msgid "" ":gh:`140041`: Fix import of :mod:`ctypes` on Android and Cygwin when ABI " "flags are present." msgstr "" -#: ../NEWS:3521 +#: ../NEWS:3695 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:3524 +#: ../NEWS:3698 msgid "" ":gh:`139905`: Add suggestion to error message for :class:`typing.Generic` " "subclasses when ``cls.__parameters__`` is missing due to a parent class " -"failing to call :meth:`super().__init_subclass__() " -"` in its ``__init_subclass__``." +"failing to call :meth:`super().__init_subclass__() ` in its ``__init_subclass__``." msgstr "" -#: ../NEWS:3529 +#: ../NEWS:3703 msgid "" ":gh:`139894`: Fix incorrect sharing of current task with the child process " "while forking in :mod:`asyncio`. Patch by Kumar Aditya." msgstr "" -#: ../NEWS:3532 +#: ../NEWS:3706 msgid "" ":gh:`139845`: Fix to not print KeyboardInterrupt twice in default asyncio " "REPL." msgstr "" -#: ../NEWS:3535 +#: ../NEWS:3709 msgid "" ":gh:`139783`: Fix :func:`inspect.getsourcelines` for the case when a " "decorator is followed by a comment or an empty line." msgstr "" -#: ../NEWS:3538 +#: ../NEWS:3712 msgid "" -":gh:`139809`: Prevent premature colorization of subparser ``prog`` in " -":meth:`argparse.ArgumentParser.add_subparsers` to respect color environment " +":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:3542 +#: ../NEWS:3716 msgid "" -":gh:`139736`: Fix excessive indentation in the default :mod:`argparse` " -":class:`!HelpFormatter`. Patch by Alexander Edland." +":gh:`139736`: Fix excessive indentation in the default :mod:`argparse` :" +"class:`!HelpFormatter`. Patch by Alexander Edland." msgstr "" -#: ../NEWS:3545 +#: ../NEWS:3719 msgid "" -":gh:`70765`: :mod:`http.server`: fix default handling of HTTP/0.9 requests in" -" :class:`~http.server.BaseHTTPRequestHandler`. Previously, " -":meth:`!BaseHTTPRequestHandler.parse_request` incorrectly waited for headers " -"in the request although those are not supported in HTTP/0.9. Patch by " -"Bénédikt Tran." +":gh:`70765`: :mod:`http.server`: fix default handling of HTTP/0.9 requests " +"in :class:`~http.server.BaseHTTPRequestHandler`. Previously, :meth:`!" +"BaseHTTPRequestHandler.parse_request` incorrectly waited for headers in the " +"request although those are not supported in HTTP/0.9. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3551 +#: ../NEWS:3725 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:3555 +#: ../NEWS:3729 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:3559 +#: ../NEWS:3733 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:3563 +#: ../NEWS:3737 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:3566 +#: ../NEWS:3740 msgid ":gh:`139246`: fix: paste zero-width in default repl width is wrong." msgstr "" -#: ../NEWS:3568 +#: ../NEWS:3742 msgid "" -":gh:`90949`: Add " -":meth:`~xml.parsers.expat.xmlparser.SetAllocTrackerActivationThreshold` and " -":meth:`~xml.parsers.expat.xmlparser.SetAllocTrackerMaximumAmplification` to " -":ref:`xmlparser ` objects to tune protections against " -"disproportional amounts of dynamic memory usage from within an Expat parser. " -"Patch by Bénédikt Tran." +":gh:`90949`: Add :meth:`~xml.parsers.expat.xmlparser." +"SetAllocTrackerActivationThreshold` and :meth:`~xml.parsers.expat.xmlparser." +"SetAllocTrackerMaximumAmplification` to :ref:`xmlparser ` " +"objects to tune protections against disproportional amounts of dynamic " +"memory usage from within an Expat parser. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3576 +#: ../NEWS:3750 msgid "" -":gh:`139210`: Fix use-after-free when reporting unknown event in " -":func:`xml.etree.ElementTree.iterparse`. Patch by Ken Jin." +":gh:`139210`: Fix use-after-free when reporting unknown event in :func:`xml." +"etree.ElementTree.iterparse`. Patch by Ken Jin." msgstr "" -#: ../NEWS:3579 +#: ../NEWS:3753 msgid "" ":gh:`138860`: Lazy import :mod:`rlcompleter` in :mod:`pdb` to avoid deadlock " "in subprocess." msgstr "" -#: ../NEWS:3582 +#: ../NEWS:3756 msgid "" ":gh:`112729`: Fix crash when calling :func:`concurrent.interpreters.create` " "when the process is out of memory." msgstr "" -#: ../NEWS:3585 +#: ../NEWS:3759 msgid "" -":gh:`135729`: Fix unraisable exception during finalization when using " -":mod:`concurrent.interpreters` in the REPL." +":gh:`135729`: Fix unraisable exception during finalization when using :mod:" +"`concurrent.interpreters` in the REPL." msgstr "" -#: ../NEWS:3588 +#: ../NEWS:3762 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:3592 +#: ../NEWS:3766 msgid "" ":gh:`139065`: Fix trailing space before a wrapped long word if the line " "length is exactly *width* in :mod:`textwrap`." msgstr "" -#: ../NEWS:3595 +#: ../NEWS:3769 msgid "" ":gh:`139001`: Fix race condition in :class:`pathlib.Path` on the internal " "``_raw_paths`` field." msgstr "" -#: ../NEWS:3598 +#: ../NEWS:3772 msgid "" ":gh:`138813`: :class:`!multiprocessing.BaseProcess` defaults ``kwargs`` to " "``None`` instead of a shared dictionary." msgstr "" -#: ../NEWS:3601 +#: ../NEWS:3775 msgid ":gh:`138993`: Dedent :data:`credits` text." msgstr "" -#: ../NEWS:3603 +#: ../NEWS:3777 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:3607 +#: ../NEWS:3781 msgid "" ":gh:`130567`: Fix possible crash in :func:`locale.strxfrm` due to a platform " "bug on macOS." msgstr "" -#: ../NEWS:3610 +#: ../NEWS:3784 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:3614 +#: ../NEWS:3788 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:3619 +#: ../NEWS:3793 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:3623 +#: ../NEWS:3797 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:3626 +#: ../NEWS:3800 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." +":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:3630 +#: ../NEWS:3804 msgid "" -":gh:`137706`: Fix the partial evaluation of annotations that use " -"``typing.Annotated[T, x]`` where ``T`` is a forward reference." +":gh:`137706`: Fix the partial evaluation of annotations that use ``typing." +"Annotated[T, x]`` where ``T`` is a forward reference." msgstr "" -#: ../NEWS:3633 +#: ../NEWS:3807 msgid "" -":gh:`88375`: Fix normalization of the ``robots.txt`` rules and URLs in the " -":mod:`urllib.robotparser` module. No longer ignore trailing ``?``. " +":gh:`88375`: Fix normalization of the ``robots.txt`` rules and URLs in the :" +"mod:`urllib.robotparser` module. No longer ignore trailing ``?``. " "Distinguish raw special characters ``?``, ``=`` and ``&`` from the percent-" "encoded ones." msgstr "" -#: ../NEWS:3638 +#: ../NEWS:3812 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." +"Don't fail trying to parse weird paths. Don't fail trying to decode non-" +"UTF-8 ``robots.txt`` files." msgstr "" -#: ../NEWS:3642 +#: ../NEWS:3816 msgid "" ":gh:`98896`: Fix a failure in multiprocessing resource_tracker when " "SharedMemory names contain colons. Patch by Rani Pinchuk." msgstr "" -#: ../NEWS:3645 +#: ../NEWS:3819 msgid "" ":gh:`138425`: Fix partial evaluation of :class:`annotationlib.ForwardRef` " "objects which rely on names defined as globals." msgstr "" -#: ../NEWS:3648 +#: ../NEWS:3822 msgid "" -":gh:`138432`: :meth:`zoneinfo.reset_tzpath` will now convert any " -":class:`os.PathLike` objects it receives into strings before adding them to " -"``TZPATH``. It will raise ``TypeError`` if anything other than a string is " -"found after this conversion. If given an :class:`os.PathLike` object that " -"represents a relative path, it will now raise ``ValueError`` instead of " -"``TypeError``, and present a more informative error message." +":gh:`138432`: :meth:`zoneinfo.reset_tzpath` will now convert any :class:`os." +"PathLike` objects it receives into strings before adding them to ``TZPATH``. " +"It will raise ``TypeError`` if anything other than a string is found after " +"this conversion. If given an :class:`os.PathLike` object that represents a " +"relative path, it will now raise ``ValueError`` instead of ``TypeError``, " +"and present a more informative error message." msgstr "" -#: ../NEWS:3655 +#: ../NEWS:3829 msgid "" ":gh:`138008`: Fix segmentation faults in the :mod:`ctypes` module due to " "invalid :attr:`~ctypes._CFuncPtr.argtypes`. Patch by Dung Nguyen." msgstr "" -#: ../NEWS:3658 +#: ../NEWS:3832 msgid "" ":gh:`60462`: Fix :func:`locale.strxfrm` on Solaris (and possibly other " "platforms)." msgstr "" -#: ../NEWS:3661 +#: ../NEWS:3835 msgid "" -":gh:`138239`: The REPL now highlights :keyword:`type` as a soft keyword in " -":ref:`type statements `." +":gh:`138239`: The REPL now highlights :keyword:`type` as a soft keyword in :" +"ref:`type statements `." msgstr "" -#: ../NEWS:3664 +#: ../NEWS:3838 msgid "" ":gh:`138204`: Forbid expansion of shared anonymous :mod:`memory maps ` " "on Linux, which caused a bus error." msgstr "" -#: ../NEWS:3667 +#: ../NEWS:3841 msgid "" -":gh:`138010`: Fix an issue where defining a class with an " -":func:`@warnings.deprecated `-decorated base class may " -"not invoke the correct :meth:`~object.__init_subclass__` method in cases " -"involving multiple inheritance. Patch by Brian Schubert." +":gh:`138010`: Fix an issue where defining a class with an :func:`@warnings." +"deprecated `-decorated base class may not invoke the " +"correct :meth:`~object.__init_subclass__` method in cases involving multiple " +"inheritance. Patch by Brian Schubert." msgstr "" -#: ../NEWS:3672 +#: ../NEWS:3846 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:3676 +#: ../NEWS:3850 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:3680 +#: ../NEWS:3854 msgid "" ":gh:`137754`: Fix import of the :mod:`zoneinfo` module if the C " "implementation of the :mod:`datetime` module is not available." msgstr "" -#: ../NEWS:3683 +#: ../NEWS:3857 msgid "" -":gh:`137490`: Handle :data:`~errno.ECANCELED` in the same way as " -":data:`~errno.EINTR` in :func:`signal.sigwaitinfo` on NetBSD." +":gh:`137490`: Handle :data:`~errno.ECANCELED` in the same way as :data:" +"`~errno.EINTR` in :func:`signal.sigwaitinfo` on NetBSD." msgstr "" -#: ../NEWS:3686 +#: ../NEWS:3860 msgid "" ":gh:`137477`: Fix :func:`!inspect.getblock`, :func:`inspect.getsourcelines` " "and :func:`inspect.getsource` for generator expressions." msgstr "" -#: ../NEWS:3689 +#: ../NEWS:3863 msgid "" ":gh:`137044`: Return large limit values as positive integers instead of " "negative integers in :func:`resource.getrlimit`. Accept large values and " -"reject negative values (except :data:`~resource.RLIM_INFINITY`) for limits in" -" :func:`resource.setrlimit`." +"reject negative values (except :data:`~resource.RLIM_INFINITY`) for limits " +"in :func:`resource.setrlimit`." msgstr "" -#: ../NEWS:3694 +#: ../NEWS:3868 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`.)" +":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:3699 +#: ../NEWS:3873 msgid "" ":gh:`137017`: Fix :obj:`threading.Thread.is_alive` to remain ``True`` until " "the underlying OS thread is fully cleaned up. This avoids false negatives in " -"edge cases involving thread monitoring or premature " -":obj:`threading.Thread.is_alive` calls." +"edge cases involving thread monitoring or premature :obj:`threading.Thread." +"is_alive` calls." msgstr "" -#: ../NEWS:3704 +#: ../NEWS:3878 msgid "" ":gh:`137273`: Fix debug assertion failure in :func:`locale.setlocale` on " "Windows." msgstr "" -#: ../NEWS:3707 +#: ../NEWS:3881 msgid "" ":gh:`137239`: :mod:`heapq`: Update :data:`!heapq.__all__` with ``*_max`` " "functions." msgstr "" -#: ../NEWS:3710 +#: ../NEWS:3884 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:3714 +#: ../NEWS:3888 msgid "" -":gh:`137185`: Fix a potential async-signal-safety issue in " -":mod:`faulthandler` when printing C stack traces." +":gh:`137185`: Fix a potential async-signal-safety issue in :mod:" +"`faulthandler` when printing C stack traces." msgstr "" -#: ../NEWS:3717 +#: ../NEWS:3891 msgid "" ":gh:`136914`: Fix retrieval of :attr:`doctest.DocTest.lineno` for objects " "decorated with :func:`functools.cache` or :class:`functools.cached_property`." msgstr "" -#: ../NEWS:3721 +#: ../NEWS:3895 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:3725 +#: ../NEWS:3899 msgid "" -":gh:`83424`: Allows creating a :class:`ctypes.CDLL` without name when passing" -" a handle as an argument." +":gh:`83424`: Allows creating a :class:`ctypes.CDLL` without name when " +"passing a handle as an argument." msgstr "" -#: ../NEWS:3728 +#: ../NEWS:3902 msgid "" ":gh:`136234`: Fix :meth:`asyncio.WriteTransport.writelines` to be robust to " -"connection failure, by using the same behavior as " -":meth:`~asyncio.WriteTransport.write`." +"connection failure, by using the same behavior as :meth:`~asyncio." +"WriteTransport.write`." msgstr "" -#: ../NEWS:3732 +#: ../NEWS:3906 msgid ":gh:`136507`: Fix mimetypes CLI to handle multiple file parameters." msgstr "" -#: ../NEWS:3734 +#: ../NEWS:3908 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:3737 +#: ../NEWS:3911 msgid "" ":gh:`135386`: Fix opening a :mod:`dbm.sqlite3` database for reading from " "read-only file or directory." msgstr "" -#: ../NEWS:3740 +#: ../NEWS:3914 msgid "" ":gh:`135444`: Fix :meth:`asyncio.DatagramTransport.sendto` to account for " "datagram header size when data cannot be sent." msgstr "" -#: ../NEWS:3743 +#: ../NEWS:3917 msgid "" ":gh:`126631`: Fix :mod:`multiprocessing` ``forkserver`` bug which prevented " "``__main__`` from being preloaded." msgstr "" -#: ../NEWS:3746 +#: ../NEWS:3920 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:3749 +#: ../NEWS:3923 msgid "" ":gh:`134453`: Fixed :func:`subprocess.Popen.communicate` ``input=`` handling " "of :class:`memoryview` instances that were non-byte shaped on POSIX " @@ -6463,246 +6683,245 @@ msgid "" "truncating the input. Windows platforms did not have this bug." msgstr "" -#: ../NEWS:3754 +#: ../NEWS:3928 msgid "" -":gh:`134698`: Fix a crash when calling methods of :class:`ssl.SSLContext` or " -":class:`ssl.SSLSocket` across multiple threads." +":gh:`134698`: Fix a crash when calling methods of :class:`ssl.SSLContext` " +"or :class:`ssl.SSLSocket` across multiple threads." msgstr "" -#: ../NEWS:3757 +#: ../NEWS:3931 msgid "" -":gh:`125996`: Fix thread safety of :class:`collections.OrderedDict`. Patch by" -" Kumar Aditya." +":gh:`125996`: Fix thread safety of :class:`collections.OrderedDict`. Patch " +"by Kumar Aditya." msgstr "" -#: ../NEWS:3760 +#: ../NEWS:3934 msgid "" ":gh:`133789`: Fix unpickling of :mod:`pathlib` objects that were pickled in " "Python 3.13." msgstr "" -#: ../NEWS:3763 +#: ../NEWS:3937 msgid "" ":gh:`127081`: Fix libc thread safety issues with :mod:`dbm` by performing " "stateful operations in critical sections." msgstr "" -#: ../NEWS:3766 +#: ../NEWS:3940 msgid "" ":gh:`132551`: Make :class:`io.BytesIO` safe in :term:`free-threaded ` build." msgstr "" -#: ../NEWS:3769 +#: ../NEWS:3943 msgid "" ":gh:`131788`: Make ``ResourceTracker.send`` from :mod:`multiprocessing` re-" "entrant safe" msgstr "" -#: ../NEWS:3772 +#: ../NEWS:3946 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." +"that can happen when the child proc dies early by closing the child fds " +"right away." msgstr "" -#: ../NEWS:3776 +#: ../NEWS:3950 msgid "" -":gh:`102431`: Clarify constraints for \"logical\" arguments in methods of " -":class:`decimal.Context`." +":gh:`102431`: Clarify constraints for \"logical\" arguments in methods of :" +"class:`decimal.Context`." msgstr "" -#: ../NEWS:3779 +#: ../NEWS:3953 msgid "" ":gh:`78319`: UTF8 support for the IMAP APPEND command has been made RFC " "compliant." msgstr "" -#: ../NEWS:3782 +#: ../NEWS:3956 msgid "" ":issue:`38735`: Fix failure when importing a module from the root directory " "on unix-like platforms with sys.pycache_prefix set." msgstr "" -#: ../NEWS:3785 +#: ../NEWS:3959 msgid "" -":issue:`41839`: Allow negative priority values from " -":func:`os.sched_get_priority_min` and :func:`os.sched_get_priority_max` " -"functions." +":issue:`41839`: Allow negative priority values from :func:`os." +"sched_get_priority_min` and :func:`os.sched_get_priority_max` functions." msgstr "" -#: ../NEWS:3792 +#: ../NEWS:3966 msgid "" ":gh:`96491`: Deduplicate version number in IDLE shell title bar after saving " "to a file." msgstr "" -#: ../NEWS:3795 +#: ../NEWS:3969 msgid "" ":gh:`139742`: Colorize t-string prefixes for template strings in IDLE, as " "done for f-string prefixes." msgstr "" -#: ../NEWS:3801 +#: ../NEWS:3975 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 `_. " -"Patch by Sebastian Pipping." +":gh:`141994`: :mod:`xml.sax.handler`: Make Documentation of :data:`xml.sax." +"handler.feature_external_ges` warn of opening up to `external entity attacks " +"`_. Patch by " +"Sebastian Pipping." msgstr "" -#: ../NEWS:3807 +#: ../NEWS:3981 msgid "" -":gh:`140578`: Remove outdated sencence in the documentation for " -":mod:`multiprocessing`, that implied that " -":class:`concurrent.futures.ThreadPoolExecutor` did not exist." +":gh:`140578`: Remove outdated sencence in the documentation for :mod:" +"`multiprocessing`, that implied that :class:`concurrent.futures." +"ThreadPoolExecutor` did not exist." msgstr "" -#: ../NEWS:3814 +#: ../NEWS:3988 msgid "" ":gh:`142048`: Fix quadratically increasing garbage collection delays in free-" "threaded build." msgstr "" -#: ../NEWS:3820 +#: ../NEWS:3994 msgid "" ":gh:`116738`: Fix thread safety issue with :mod:`re` scanner objects in free-" "threaded builds." msgstr "" -#: ../NEWS:3826 +#: ../NEWS:4000 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:3830 +#: ../NEWS:4004 msgid "" ":gh:`120158`: Fix inconsistent state when enabling or disabling monitoring " "events too many times." msgstr "" -#: ../NEWS:3833 +#: ../NEWS:4007 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 base. If" -" outside of these bounds assume that it is OK. This prevents false positives " -"when user-space threads swap stacks." +":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 " +"base. If outside of these bounds assume that it is OK. This prevents false " +"positives when user-space threads swap stacks." msgstr "" -#: ../NEWS:3838 +#: ../NEWS:4012 msgid "" ":gh:`139103`: Improve multithreaded scaling of dataclasses on the free-" "threaded build." msgstr "" -#: ../NEWS:3841 +#: ../NEWS:4015 msgid "" ":gh:`141579`: Fix :func:`sys.activate_stack_trampoline` to properly support " "the ``perf_jit`` backend. Patch by Pablo Galindo." msgstr "" -#: ../NEWS:3844 +#: ../NEWS:4018 msgid "" ":gh:`114203`: Skip locking if object is already locked by two-mutex critical " "section." msgstr "" -#: ../NEWS:3847 +#: ../NEWS:4021 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." +":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:3851 +#: ../NEWS:4025 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 " +":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:3858 +#: ../NEWS:4032 msgid "" ":gh:`116738`: Make csv module thread-safe on the :term:`free threaded ` build." msgstr "" -#: ../NEWS:3864 +#: ../NEWS:4038 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`." +"formated with the ``%*b`` format with a large width that results in a :exc:" +"`MemoryError`." msgstr "" -#: ../NEWS:3871 +#: ../NEWS:4045 msgid "" -":gh:`140260`: Fix :mod:`struct` data race in endian table initialization with" -" subinterpreters. Patch by Shamil Abdulaev." +":gh:`140260`: Fix :mod:`struct` data race in endian table initialization " +"with subinterpreters. Patch by Shamil Abdulaev." msgstr "" -#: ../NEWS:3877 +#: ../NEWS:4051 msgid "" -":gh:`140530`: Fix a reference leak when ``raise exc from cause`` fails. Patch" -" by Bénédikt Tran." +":gh:`140530`: Fix a reference leak when ``raise exc from cause`` fails. " +"Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3880 +#: ../NEWS:4054 msgid "" ":gh:`140373`: Correctly emit ``PY_UNWIND`` event when generator object is " "closed. Patch by Mikhail Efimov." msgstr "" -#: ../NEWS:3883 +#: ../NEWS:4057 msgid "" ":gh:`140576`: Fixed crash in :func:`tokenize.generate_tokens` in case of " "specific incorrect input. Patch by Mikhail Efimov." msgstr "" -#: ../NEWS:3886 +#: ../NEWS:4060 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." +":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:3889 +#: ../NEWS:4063 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." +":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:3893 +#: ../NEWS:4067 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:3897 +#: ../NEWS:4071 msgid "" ":gh:`140431`: Fix a crash in Python's :term:`garbage collector ` due to partially initialized :term:`coroutine` objects when " -"coroutine origin tracking depth is enabled " -"(:func:`sys.set_coroutine_origin_tracking_depth`)." +"coroutine origin tracking depth is enabled (:func:`sys." +"set_coroutine_origin_tracking_depth`)." msgstr "" -#: ../NEWS:3905 +#: ../NEWS:4079 msgid "" -":gh:`140398`: Fix memory leaks in :mod:`readline` functions " -":func:`~readline.read_init_file`, :func:`~readline.read_history_file`, " -":func:`~readline.write_history_file`, and " -":func:`~readline.append_history_file` when :c:func:`PySys_Audit` fails." +":gh:`140398`: Fix memory leaks in :mod:`readline` functions :func:`~readline." +"read_init_file`, :func:`~readline.read_history_file`, :func:`~readline." +"write_history_file`, and :func:`~readline.append_history_file` when :c:func:" +"`PySys_Audit` fails." msgstr "" -#: ../NEWS:3913 +#: ../NEWS:4087 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:3916 +#: ../NEWS:4090 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 " @@ -6710,340 +6929,340 @@ msgid "" "unreachable objects. Contributed by Pål Grønås Drange." msgstr "" -#: ../NEWS:3921 +#: ../NEWS:4095 msgid "" ":gh:`140306`: Fix memory leaks in cross-interpreter channel operations and " "shared namespace handling." msgstr "" -#: ../NEWS:3924 +#: ../NEWS:4098 msgid ":gh:`140301`: Fix memory leak of ``PyConfig`` in subinterpreters." msgstr "" -#: ../NEWS:3926 +#: ../NEWS:4100 msgid "" ":gh:`140257`: Fix data race between interpreter_clear() and take_gil() on " "eval_breaker during finalization with daemon threads." msgstr "" -#: ../NEWS:3929 +#: ../NEWS:4103 msgid "" ":gh:`139951`: Fixes a regression in GC performance for a growing heap " "composed mostly of small tuples." msgstr "" -#: ../NEWS:3932 +#: ../NEWS:4106 msgid "" -"Counts number of actually tracked objects, instead of trackable objects. This" -" ensures that untracking tuples has the desired effect of reducing GC " +"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:3934 +#: ../NEWS:4108 msgid "" "Does not track most untrackable tuples during creation. This prevents large " "numbers of small tuples causing excessive GCs." msgstr "" -#: ../NEWS:3937 +#: ../NEWS:4111 msgid "" -":gh:`140104`: Fix a bug with exception handling in the JIT. Patch by Ken Jin." -" Bug reported by Daniel Diniz." +":gh:`140104`: Fix a bug with exception handling in the JIT. Patch by Ken " +"Jin. Bug reported by Daniel Diniz." msgstr "" -#: ../NEWS:3940 +#: ../NEWS:4114 msgid "" -":gh:`140061`: Fixing the checking of whether an object is uniquely referenced" -" to ensure free-threaded compatibility. Patch by Sergey Miryanov." +":gh:`140061`: Fixing the checking of whether an object is uniquely " +"referenced to ensure free-threaded compatibility. Patch by Sergey Miryanov." msgstr "" -#: ../NEWS:3943 +#: ../NEWS:4117 msgid ":gh:`140067`: Fix memory leak in sub-interpreter creation." msgstr "" -#: ../NEWS:3945 +#: ../NEWS:4119 msgid "" -":gh:`140000`: Fix potential memory leak when a reference cycle exists between" -" an instance of :class:`typing.TypeAliasType`, :class:`typing.TypeVar`, " -":class:`typing.ParamSpec`, or :class:`typing.TypeVarTuple` and its " +":gh:`140000`: Fix potential memory leak when a reference cycle exists " +"between an instance of :class:`typing.TypeAliasType`, :class:`typing." +"TypeVar`, :class:`typing.ParamSpec`, or :class:`typing.TypeVarTuple` and its " "``__name__`` attribute. Patch by Mikhail Efimov." msgstr "" -#: ../NEWS:3950 +#: ../NEWS:4124 msgid "" ":gh:`139914`: Restore support for HP PA-RISC, which has an upwards-growing " "stack." msgstr "" -#: ../NEWS:3953 +#: ../NEWS:4127 msgid "" -":gh:`139988`: Fix a memory leak when failing to create a " -":class:`~typing.Union` type. Patch by Bénédikt Tran." +":gh:`139988`: Fix a memory leak when failing to create a :class:`~typing." +"Union` type. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:3956 +#: ../NEWS:4130 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." +"path strings or bytes such as :func:`compile` and :func:`os.system`. Patch " +"by Bénédikt Tran." msgstr "" -#: ../NEWS:3960 +#: ../NEWS:4134 msgid "" ":gh:`139516`: Fix lambda colon erroneously start format spec in f-string in " "tokenizer." msgstr "" -#: ../NEWS:3963 +#: ../NEWS:4137 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." +"``return``/``break``/``continue`` in ``finally`` (see :pep:`765`) -- they " +"are only emitted during compilation." msgstr "" -#: ../NEWS:3967 +#: ../NEWS:4141 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:3971 +#: ../NEWS:4145 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 " +":gh:`63161`: Support non-UTF-8 shebang and comments in Python source files " +"if non-UTF-8 encoding is specified. Detect decoding error in comments for " "default (UTF-8) encoding. Show the line and position of decoding error for " "default encoding in a traceback. Show the line containing the coding cookie " "when it conflicts with the BOM in a traceback." msgstr "" -#: ../NEWS:3980 +#: ../NEWS:4154 msgid "" ":gh:`116738`: Make :mod:`mmap` thread-safe on the :term:`free threaded ` build." msgstr "" -#: ../NEWS:3986 +#: ../NEWS:4160 msgid "" ":gh:`138558`: Fix handling of unusual t-string annotations in annotationlib. " "Patch by Dave Peck." msgstr "" -#: ../NEWS:3989 +#: ../NEWS:4163 msgid "" ":gh:`134466`: Don't run PyREPL in a degraded environment where setting " "termios attributes is not allowed." msgstr "" -#: ../NEWS:3992 +#: ../NEWS:4166 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." +"the same line as a valid ``import ... as ...`` or ``from ... import ... " +"as ...`` statement. Patch by Brian Schubert." msgstr "" -#: ../NEWS:3996 +#: ../NEWS:4170 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`." +":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:4000 +#: ../NEWS:4174 msgid "" -":gh:`69605`: Fix some standard library submodules missing from the " -":term:`REPL` auto-completion of imports." +":gh:`69605`: Fix some standard library submodules missing from the :term:" +"`REPL` auto-completion of imports." msgstr "" -#: ../NEWS:4006 +#: ../NEWS:4180 msgid "" ":gh:`116738`: Make :mod:`cProfile` thread-safe on the :term:`free threaded " "` build." msgstr "" -#: ../NEWS:4009 +#: ../NEWS:4183 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:4016 +#: ../NEWS:4190 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:4020 ../NEWS:4326 +#: ../NEWS:4194 ../NEWS:4500 msgid "" ":gh:`137400`: Fix a crash in the :term:`free threading` build when disabling " -"profiling or tracing across all threads with " -":c:func:`PyEval_SetProfileAllThreads` or :c:func:`PyEval_SetTraceAllThreads` " -"or their Python equivalents :func:`threading.settrace_all_threads` and " -":func:`threading.setprofile_all_threads`." +"profiling or tracing across all threads with :c:func:" +"`PyEval_SetProfileAllThreads` or :c:func:`PyEval_SetTraceAllThreads` or " +"their Python equivalents :func:`threading.settrace_all_threads` and :func:" +"`threading.setprofile_all_threads`." msgstr "" -#: ../NEWS:4027 +#: ../NEWS:4201 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:4031 +#: ../NEWS:4205 msgid "" ":gh:`132657`: Improve performance of :class:`frozenset` by removing locks in " "the free-threading build." msgstr "" -#: ../NEWS:4034 +#: ../NEWS:4208 msgid "" ":gh:`133400`: Fixed Ctrl+D (^D) behavior in _pyrepl module to match old " "pre-3.13 REPL behavior." msgstr "" -#: ../NEWS:4037 +#: ../NEWS:4211 msgid "" ":gh:`128640`: Fix a crash when using threads inside of a subinterpreter." msgstr "" -#: ../NEWS:4042 +#: ../NEWS:4216 msgid "" -":gh:`137422`: Fix :term:`free threading` race condition in " -":c:func:`PyImport_AddModuleRef`. It was previously possible for two calls to " -"the function return two different objects, only one of which was stored in " -":data:`sys.modules`." +":gh:`137422`: Fix :term:`free threading` race condition in :c:func:" +"`PyImport_AddModuleRef`. It was previously possible for two calls to the " +"function return two different objects, only one of which was stored in :data:" +"`sys.modules`." msgstr "" -#: ../NEWS:4047 +#: ../NEWS:4221 msgid "" ":gh:`140042`: Removed the sqlite3_shutdown call that could cause closing " "connections for sqlite when used with multiple sub interpreters." msgstr "" -#: ../NEWS:4050 +#: ../NEWS:4224 msgid "" -":gh:`141042`: Make qNaN in :c:func:`PyFloat_Pack2` and " -":c:func:`PyFloat_Pack4`, if while conversion to a narrower precision " -"floating-point format --- the remaining after truncation payload will be " -"zero. Patch by Sergey B Kirpichev." +":gh:`141042`: Make qNaN in :c:func:`PyFloat_Pack2` and :c:func:" +"`PyFloat_Pack4`, if while conversion to a narrower precision floating-point " +"format --- the remaining after truncation payload will be zero. Patch by " +"Sergey B Kirpichev." msgstr "" -#: ../NEWS:4055 +#: ../NEWS:4229 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:4059 +#: ../NEWS:4233 msgid "" ":gh:`140153`: Fix :c:func:`Py_REFCNT` definition on limited C API 3.11-3.13. " "Patch by Victor Stinner." msgstr "" -#: ../NEWS:4062 +#: ../NEWS:4236 msgid "" -":gh:`139653`: Add :c:func:`PyUnstable_ThreadState_SetStackProtection` and " -":c:func:`PyUnstable_ThreadState_ResetStackProtection` functions to set the " +":gh:`139653`: Add :c:func:`PyUnstable_ThreadState_SetStackProtection` and :c:" +"func:`PyUnstable_ThreadState_ResetStackProtection` functions to set the " "stack protection base address and stack protection size of a Python thread " "state. Patch by Victor Stinner." msgstr "" -#: ../NEWS:4070 +#: ../NEWS:4244 msgid "" -":gh:`141808`: Do not generate the jit stencils twice in case of PGO builds on" -" Windows." +":gh:`141808`: Do not generate the jit stencils twice in case of PGO builds " +"on Windows." msgstr "" -#: ../NEWS:4073 +#: ../NEWS:4247 msgid "" -":gh:`141784`: Fix ``_remote_debugging_module.c`` compilation on 32-bit Linux." -" Include Python.h before system headers to make sure that " +":gh:`141784`: Fix ``_remote_debugging_module.c`` compilation on 32-bit " +"Linux. Include Python.h before system headers to make sure that " "``_remote_debugging_module.c`` uses the same types (ABI) than Python. Patch " "by Victor Stinner." msgstr "" -#: ../NEWS:4078 +#: ../NEWS:4252 msgid "" ":gh:`140768`: Warn when the WASI SDK version doesn't match what's supported." msgstr "" -#: ../NEWS:4080 +#: ../NEWS:4254 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:4084 +#: ../NEWS:4258 msgid ":gh:`140189`: iOS builds were added to CI." msgstr "" -#: ../NEWS:4086 +#: ../NEWS:4260 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:4090 +#: ../NEWS:4264 msgid "" "This fixes the ``libinstall`` task which requires the ``build-details.json`` " "file during the process." msgstr "" -#: ../NEWS:4093 +#: ../NEWS:4267 msgid "" ":gh:`137618`: ``PYTHON_FOR_REGEN`` now requires Python 3.10 to Python 3.15. " "Patch by Adam Turner." msgstr "" -#: ../NEWS:4096 +#: ../NEWS:4270 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:4102 +#: ../NEWS:4276 msgid "Python 3.14.0 final" msgstr "" -#: ../NEWS:4104 +#: ../NEWS:4278 msgid "*Release date: 2025-10-07*" msgstr "" -#: ../NEWS:4109 +#: ../NEWS:4283 msgid ":gh:`124111`: Update macOS installer to use Tcl/Tk 8.6.17." msgstr "" -#: ../NEWS:4111 ../NEWS:4116 +#: ../NEWS:4285 ../NEWS:4290 msgid ":gh:`139573`: Updated bundled version of OpenSSL to 3.0.18." msgstr "" -#: ../NEWS:4121 +#: ../NEWS:4295 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:4125 +#: ../NEWS:4299 msgid "" -":gh:`132006`: XCframeworks now include privacy manifests to satisfy Apple App" -" Store submission requirements." +":gh:`132006`: XCframeworks now include privacy manifests to satisfy Apple " +"App Store submission requirements." msgstr "" -#: ../NEWS:4128 +#: ../NEWS:4302 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." +"this change, the top level ``iOS`` folder has been moved to be a " +"subdirectory of the ``Apple`` folder." msgstr "" -#: ../NEWS:4135 +#: ../NEWS:4309 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 " @@ -7051,31 +7270,31 @@ msgid "" "Patch by Sebastian Pipping." msgstr "" -#: ../NEWS:4144 +#: ../NEWS:4318 msgid ":gh:`139312`: Upgrade bundled libexpat to 2.7.3" msgstr "" -#: ../NEWS:4148 +#: ../NEWS:4322 msgid "Python 3.14.0 release candidate 3" msgstr "" -#: ../NEWS:4150 +#: ../NEWS:4324 msgid "*Release date: 2025-09-18*" msgstr "" -#: ../NEWS:4155 +#: ../NEWS:4329 msgid "" ":gh:`138896`: Fix error installing C runtime on non-updated Windows machines" msgstr "" -#: ../NEWS:4160 +#: ../NEWS:4334 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:4167 +#: ../NEWS:4341 msgid "" ":gh:`135661`: Fix CDATA section parsing in :class:`html.parser.HTMLParser` " "according to the HTML5 standard: ``] ]>`` and ``]] >`` no longer end the " @@ -7084,238 +7303,238 @@ msgid "" "content (SVG or MathML) or as a bogus comment in the HTML namespace." msgstr "" -#: ../NEWS:4177 +#: ../NEWS:4351 msgid ":gh:`138998`: Update bundled libexpat to 2.7.2" msgstr "" -#: ../NEWS:4179 +#: ../NEWS:4353 msgid "" -":gh:`118803`: Add back :class:`collections.abc.ByteString` and " -":class:`typing.ByteString`. Both had been removed in prior alpha, beta and " -"release candidates for Python 3.14, but their removal has now been postponed " -"to Python 3.17." +":gh:`118803`: Add back :class:`collections.abc.ByteString` and :class:" +"`typing.ByteString`. Both had been removed in prior alpha, beta and release " +"candidates for Python 3.14, but their removal has now been postponed to " +"Python 3.17." msgstr "" -#: ../NEWS:4184 +#: ../NEWS:4358 msgid "" -":gh:`137226`: Fix :func:`typing.get_type_hints` calls on generic " -":class:`typing.TypedDict` classes defined with string annotations." +":gh:`137226`: Fix :func:`typing.get_type_hints` calls on generic :class:" +"`typing.TypedDict` classes defined with string annotations." msgstr "" -#: ../NEWS:4187 +#: ../NEWS:4361 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." +":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:4191 +#: ../NEWS:4365 msgid "" ":gh:`128636`: Fix crash in PyREPL when os.environ is overwritten with an " "invalid value for mac" msgstr "" -#: ../NEWS:4194 +#: ../NEWS:4368 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." +":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:4198 +#: ../NEWS:4372 msgid ":gh:`138515`: :mod:`email` is added to Emscripten build." msgstr "" -#: ../NEWS:4200 +#: ../NEWS:4374 msgid "" ":gh:`99948`: :func:`ctypes.util.find_library` now works in Emscripten build." msgstr "" -#: ../NEWS:4202 +#: ../NEWS:4376 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:4206 +#: ../NEWS:4380 msgid "" ":gh:`138133`: Prevent infinite traceback loop when sending CTRL^C to Python " "through ``strace``." msgstr "" -#: ../NEWS:4209 +#: ../NEWS:4383 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." +":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:4212 +#: ../NEWS:4386 msgid "" ":gh:`90548`: Fix ``musl`` detection for :func:`platform.libc_ver` on Alpine " "Linux if compiled with --strip-all." msgstr "" -#: ../NEWS:4215 +#: ../NEWS:4389 msgid "" -":gh:`136134`: :meth:`!SMTP.auth_cram_md5` now raises an " -":exc:`~smtplib.SMTPException` instead of a :exc:`ValueError` if Python has " -"been built without MD5 support. In particular, :class:`~smtplib.SMTP` clients" -" will not attempt to use this method even if the remote server is assumed to " -"support it. Patch by Bénédikt Tran." +":gh:`136134`: :meth:`!SMTP.auth_cram_md5` now raises an :exc:`~smtplib." +"SMTPException` instead of a :exc:`ValueError` if Python has been built " +"without MD5 support. In particular, :class:`~smtplib.SMTP` clients will not " +"attempt to use this method even if the remote server is assumed to support " +"it. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:4221 +#: ../NEWS:4395 msgid "" -":gh:`136134`: :meth:`IMAP4.login_cram_md5 ` now" -" raises an :exc:`IMAP4.error ` if CRAM-MD5 " +":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:4225 +#: ../NEWS:4399 msgid "" ":gh:`134953`: Expand ``_colorize`` theme with ``keyword_constant`` and " "implement in :term:`repl`." msgstr "" -#: ../NEWS:4231 +#: ../NEWS:4405 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:4234 +#: ../NEWS:4408 msgid "" ":gh:`138192`: Fix :mod:`contextvars` initialization so that all " "subinterpreters are assigned the :attr:`~contextvars.Token.MISSING` value." msgstr "" -#: ../NEWS:4237 +#: ../NEWS:4411 msgid "" ":gh:`138479`: Fix a crash when a generic object's ``__typing_subst__`` " "returns an object that isn't a :class:`tuple`." msgstr "" -#: ../NEWS:4240 +#: ../NEWS:4414 msgid "" ":gh:`138372`: Fix :exc:`SyntaxWarning` emitted for erroneous subscript " "expressions involving :ref:`template string literals `. Patch by " "Brian Schubert." msgstr "" -#: ../NEWS:4244 +#: ../NEWS:4418 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:4248 +#: ../NEWS:4422 msgid "" ":gh:`138349`: Fix crash in certain cases where a module contains both a " "module-level annotation and a comprehension." msgstr "" -#: ../NEWS:4251 +#: ../NEWS:4425 msgid "" ":gh:`137384`: Fix a crash when using the :mod:`warnings` module in a " "finalizer at shutdown. Patch by Kumar Aditya." msgstr "" -#: ../NEWS:4254 +#: ../NEWS:4428 msgid "" ":gh:`137883`: Fix runaway recursion when calling a function with keyword " "arguments." msgstr "" -#: ../NEWS:4257 +#: ../NEWS:4431 msgid "" -":gh:`137079`: Fix keyword typo recognition when parsing files. Patch by Pablo" -" Galindo." +":gh:`137079`: Fix keyword typo recognition when parsing files. Patch by " +"Pablo Galindo." msgstr "" -#: ../NEWS:4260 +#: ../NEWS:4434 msgid "" -":gh:`137728`: Fix the JIT's handling of many local variables. This previously" -" caused a segfault." +":gh:`137728`: Fix the JIT's handling of many local variables. This " +"previously caused a segfault." msgstr "" -#: ../NEWS:4263 +#: ../NEWS:4437 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:4268 +#: ../NEWS:4442 msgid "Python 3.14.0 release candidate 2" msgstr "" -#: ../NEWS:4270 +#: ../NEWS:4444 msgid "*Release date: 2025-08-14*" msgstr "" -#: ../NEWS:4275 +#: ../NEWS:4449 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:4279 +#: ../NEWS:4453 msgid "" ":gh:`137134`: Update macOS installer to ship with SQLite version 3.50.4." msgstr "" -#: ../NEWS:4284 +#: ../NEWS:4458 msgid ":gh:`137134`: Update Windows installer to ship with SQLite 3.50.4." msgstr "" -#: ../NEWS:4289 +#: ../NEWS:4463 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``." +":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:4293 +#: ../NEWS:4467 msgid "" -":gh:`137282`: Fix tab completion and :func:`dir` on " -":mod:`concurrent.futures`." +":gh:`137282`: Fix tab completion and :func:`dir` on :mod:`concurrent." +"futures`." msgstr "" -#: ../NEWS:4296 +#: ../NEWS:4470 msgid "" ":gh:`137257`: Bump the version of pip bundled in ensurepip to version 25.2" msgstr "" -#: ../NEWS:4298 +#: ../NEWS:4472 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:4302 +#: ../NEWS:4476 msgid "" -":gh:`130522`: Fix unraisable :exc:`TypeError` raised during " -":term:`interpreter shutdown` in the :mod:`threading` module." +":gh:`130522`: Fix unraisable :exc:`TypeError` raised during :term:" +"`interpreter shutdown` in the :mod:`threading` module." msgstr "" -#: ../NEWS:4305 +#: ../NEWS:4479 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." +"URL authority by :func:`urllib.request.url2pathname`. This fixes a " +"regression in earlier pre-releases of Python 3.14." msgstr "" -#: ../NEWS:4309 +#: ../NEWS:4483 msgid "" ":gh:`130577`: :mod:`tarfile` now validates archives to ensure member offsets " -"are non-negative. (Contributed by Alexander Enrique Urieles Nieto in " -":gh:`130577`.)" +"are non-negative. (Contributed by Alexander Enrique Urieles Nieto in :gh:" +"`130577`.)" msgstr "" -#: ../NEWS:4313 +#: ../NEWS:4487 msgid "" ":gh:`135228`: When :mod:`dataclasses` replaces a class with a slotted " "dataclass, the original class can now be garbage collected again. Earlier " @@ -7323,174 +7542,174 @@ msgid "" "together with the replacement class synthesized by :mod:`dataclasses`." msgstr "" -#: ../NEWS:4321 +#: ../NEWS:4495 msgid "" ":gh:`136155`: We are now checking for fatal errors in EPUB builds in CI." msgstr "" -#: ../NEWS:4333 +#: ../NEWS:4507 msgid "" ":gh:`137314`: Fixed a regression where raw f-strings incorrectly interpreted " "escape sequences in format specifications. Raw f-strings now properly " "preserve literal backslashes in format specs, matching the behavior from " -"Python 3.11. For example, ``rf\"{obj:\\xFF}\"`` now correctly produces " -"``'\\\\xFF'`` instead of ``'ÿ'``. Patch by Pablo Galindo." +"Python 3.11. For example, ``rf\"{obj:\\xFF}\"`` now correctly produces ``'\\" +"\\xFF'`` instead of ``'ÿ'``. Patch by Pablo Galindo." msgstr "" -#: ../NEWS:4339 +#: ../NEWS:4513 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. " +":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:4343 +#: ../NEWS:4517 msgid "" ":gh:`137288`: Fix bug where some bytecode instructions of a boolean " "expression are not associated with the correct exception handler." msgstr "" -#: ../NEWS:4346 +#: ../NEWS:4520 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:4349 +#: ../NEWS:4523 msgid "" ":gh:`131338`: Disable computed stack limit checks on non-glibc linux " "platforms to fix crashes on deep recursion." msgstr "" -#: ../NEWS:4352 +#: ../NEWS:4526 msgid "" ":gh:`136870`: Fix data races while de-instrumenting bytecode of code objects " "running concurrently in threads." msgstr "" -#: ../NEWS:4358 +#: ../NEWS:4532 msgid "" ":gh:`137573`: Mark ``_PyOptimizer_Optimize`` as :c:macro:`Py_NO_INLINE` to " "prevent stack overflow crashes on macOS." msgstr "" -#: ../NEWS:4364 +#: ../NEWS:4538 msgid ":gh:`132339`: Add support for OpenSSL 3.5." msgstr "" -#: ../NEWS:4368 +#: ../NEWS:4542 msgid "Python 3.14.0 release candidate 1" msgstr "" -#: ../NEWS:4370 +#: ../NEWS:4544 msgid "*Release date: 2025-07-22*" msgstr "" -#: ../NEWS:4375 +#: ../NEWS:4549 msgid "" -":gh:`136251`: Fixes and usability improvements for " -"``Tools/wasm/emscripten/web_example``" +":gh:`136251`: Fixes and usability improvements for ``Tools/wasm/emscripten/" +"web_example``" msgstr "" -#: ../NEWS:4381 +#: ../NEWS:4555 msgid "" ":gh:`135661`: Fix parsing attributes with whitespaces around the ``=`` " "separator in :class:`html.parser.HTMLParser` according to the HTML5 standard." msgstr "" -#: ../NEWS:4385 +#: ../NEWS:4559 msgid "" ":gh:`118350`: Fix support of escapable raw text mode (elements \"textarea\" " "and \"title\") in :class:`html.parser.HTMLParser`." msgstr "" -#: ../NEWS:4391 +#: ../NEWS:4565 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 have in " -"some situations so the result was not always what a user might expect." +":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 " +"have in some situations so the result was not always what a user might " +"expect." msgstr "" -#: ../NEWS:4395 +#: ../NEWS:4569 msgid ":gh:`124621`: pyrepl now works in Emscripten." msgstr "" -#: ../NEWS:4397 +#: ../NEWS:4571 msgid "" -":gh:`136874`: Discard URL query and fragment in " -":func:`urllib.request.url2pathname`." +":gh:`136874`: Discard URL query and fragment in :func:`urllib.request." +"url2pathname`." msgstr "" -#: ../NEWS:4400 +#: ../NEWS:4574 msgid ":gh:`130645`: Enable color help by default in :mod:`argparse`." msgstr "" -#: ../NEWS:4402 +#: ../NEWS:4576 msgid ":gh:`136549`: Fix signature of :func:`threading.excepthook`." msgstr "" -#: ../NEWS:4404 +#: ../NEWS:4578 msgid "" ":gh:`136523`: Fix :class:`wave.Wave_write` emitting an unraisable when open " "raises." msgstr "" -#: ../NEWS:4407 +#: ../NEWS:4581 msgid "" -":gh:`52876`: Add missing ``keepends`` (default ``True``) parameter to " -":meth:`!codecs.StreamReaderWriter.readline` and " -":meth:`!codecs.StreamReaderWriter.readlines`." +":gh:`52876`: Add missing ``keepends`` (default ``True``) parameter to :meth:" +"`!codecs.StreamReaderWriter.readline` and :meth:`!codecs.StreamReaderWriter." +"readlines`." msgstr "" -#: ../NEWS:4411 +#: ../NEWS:4585 msgid "" ":gh:`136470`: Correct :class:`concurrent.futures.InterpreterPoolExecutor`'s " "default thread name." msgstr "" -#: ../NEWS:4414 +#: ../NEWS:4588 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:4417 +#: ../NEWS:4591 msgid "" -":gh:`136434`: Fix docs generation of ``UnboundItem`` in " -":mod:`concurrent.interpreters` when running with :option:`-OO`." +":gh:`136434`: Fix docs generation of ``UnboundItem`` in :mod:`concurrent." +"interpreters` when running with :option:`-OO`." msgstr "" -#: ../NEWS:4420 +#: ../NEWS:4594 msgid "" -":gh:`136380`: Raises :exc:`AttributeError` when accessing " -":class:`concurrent.futures.InterpreterPoolExecutor` and subinterpreters are " -"not available." +":gh:`136380`: Raises :exc:`AttributeError` when accessing :class:`concurrent." +"futures.InterpreterPoolExecutor` and subinterpreters are not available." msgstr "" -#: ../NEWS:4424 +#: ../NEWS:4598 msgid "" -":gh:`134759`: Fix :exc:`UnboundLocalError` in " -":func:`email.message.Message.get_payload` when the payload to decode is a " -":class:`bytes` object. Patch by Kliment Lamonov." +":gh:`134759`: Fix :exc:`UnboundLocalError` in :func:`email.message.Message." +"get_payload` when the payload to decode is a :class:`bytes` object. Patch by " +"Kliment Lamonov." msgstr "" -#: ../NEWS:4428 +#: ../NEWS:4602 msgid "" -":gh:`134657`: :mod:`asyncio`: Remove some private names from " -"``asyncio.__all__``." +":gh:`134657`: :mod:`asyncio`: Remove some private names from ``asyncio." +"__all__``." msgstr "" -#: ../NEWS:4434 +#: ../NEWS:4608 msgid "" ":gh:`136801`: Fix PyREPL syntax highlighting on match cases after multi-line " "case. Contributed by Olga Matoula." msgstr "" -#: ../NEWS:4440 +#: ../NEWS:4614 msgid ":gh:`136421`: Fix crash when initializing :mod:`datetime` concurrently." msgstr "" -#: ../NEWS:4445 +#: ../NEWS:4619 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, " @@ -7498,227 +7717,228 @@ msgid "" "Pablo Galindo." msgstr "" -#: ../NEWS:4450 +#: ../NEWS:4624 msgid "" ":gh:`136517`: Fixed a typo that prevented printing of uncollectable objects " "when the :const:`gc.DEBUG_UNCOLLECTABLE` mode was set." msgstr "" -#: ../NEWS:4453 +#: ../NEWS:4627 msgid "" ":gh:`136525`: Fix issue where per-thread bytecode was not instrumented for " "newly created threads." msgstr "" -#: ../NEWS:4456 +#: ../NEWS:4630 msgid "" ":gh:`132661`: ``Interpolation.expression`` now has a default, the empty " "string." msgstr "" -#: ../NEWS:4459 +#: ../NEWS:4633 msgid ":gh:`132661`: Reflect recent :pep:`750` change." msgstr "" -#: ../NEWS:4461 +#: ../NEWS:4635 msgid "" "Disallow concatenation of ``string.templatelib.Template`` and :class:`str`. " -"Also, disallow implicit concatenation of t-string literals with string or " -"f-string literals." +"Also, disallow implicit concatenation of t-string literals with string or f-" +"string literals." msgstr "" -#: ../NEWS:4468 +#: ../NEWS:4642 msgid "" ":gh:`116738`: Make functions in :mod:`grp` thread-safe on the :term:`free " "threaded ` build." msgstr "" -#: ../NEWS:4474 +#: ../NEWS:4648 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:4478 +#: ../NEWS:4652 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:4482 +#: ../NEWS:4656 msgid "" ":gh:`91153`: Fix a crash when a :class:`bytearray` is concurrently mutated " "during item assignment." msgstr "" -#: ../NEWS:4485 +#: ../NEWS:4659 msgid "" ":gh:`127971`: Fix off-by-one read beyond the end of a string in string " "search." msgstr "" -#: ../NEWS:4491 +#: ../NEWS:4665 msgid "" ":gh:`112068`: Revert support of nullable arguments in :c:func:`PyArg_Parse`." msgstr "" -#: ../NEWS:4493 +#: ../NEWS:4667 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:4497 +#: ../NEWS:4671 msgid "" ":gh:`134009`: Expose :c:func:`PyMutex_IsLocked` as part of the public C API." msgstr "" -#: ../NEWS:4502 +#: ../NEWS:4676 msgid "" -":gh:`135621`: PyREPL no longer depends on the :mod:`curses` standard library." -" Contributed by Łukasz Langa." +":gh:`135621`: PyREPL no longer depends on the :mod:`curses` standard " +"library. Contributed by Łukasz Langa." msgstr "" -#: ../NEWS:4507 +#: ../NEWS:4681 msgid "Python 3.14.0 beta 4" msgstr "" -#: ../NEWS:4509 +#: ../NEWS:4683 msgid "*Release date: 2025-07-08*" msgstr "" -#: ../NEWS:4514 +#: ../NEWS:4688 msgid "" ":gh:`135968`: Stubs for ``strip`` are now provided as part of an iOS install." msgstr "" -#: ../NEWS:4516 +#: ../NEWS:4690 msgid ":gh:`133600`: Backport file reorganization for Tools/wasm/wasi." msgstr "" -#: ../NEWS:4518 +#: ../NEWS:4692 msgid "" "This should make backporting future code changes easier. It also simplifies " "instructions around how to do WASI builds in the devguide." msgstr "" -#: ../NEWS:4524 +#: ../NEWS:4698 msgid "" ":gh:`135966`: The iOS testbed now handles the ``app_packages`` folder as a " "site directory." msgstr "" -#: ../NEWS:4527 +#: ../NEWS:4701 msgid "" ":gh:`135494`: Fix regrtest to support excluding tests from ``--pgo`` tests. " "Patch by Victor Stinner." msgstr "" -#: ../NEWS:4533 +#: ../NEWS:4707 msgid "" -":gh:`136053`: :mod:`marshal`: fix a possible crash when deserializing " -":class:`slice` objects." +":gh:`136053`: :mod:`marshal`: fix a possible crash when deserializing :class:" +"`slice` objects." msgstr "" -#: ../NEWS:4536 +#: ../NEWS:4710 msgid "" -":gh:`135661`: Fix parsing start and end tags in " -":class:`html.parser.HTMLParser` according to the HTML5 standard." +":gh:`135661`: Fix parsing start and end tags in :class:`html.parser." +"HTMLParser` according to the HTML5 standard." msgstr "" -#: ../NEWS:4539 +#: ../NEWS:4713 msgid "" "Whitespaces no longer accepted between ```` does not end the script section." msgstr "" -#: ../NEWS:4542 +#: ../NEWS:4716 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:4545 +#: ../NEWS:4719 msgid "Null character (U+0000) no longer ends the tag name." msgstr "" -#: ../NEWS:4547 +#: ../NEWS:4721 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:4551 +#: ../NEWS:4725 msgid "" -"Multiple slashes and whitespaces between the last attribute and closing ``>``" -" are now ignored in both start and end tags. E.g. ````." +"Multiple slashes and whitespaces between the last attribute and closing " +"``>`` are now ignored in both start and end tags. E.g. ````." msgstr "" -#: ../NEWS:4554 +#: ../NEWS:4728 msgid "" -"Multiple ``=`` between attribute name and value are no longer collapsed. E.g." -" ```` produces attribute \"foo\" with value \"=bar\"." +"Multiple ``=`` between attribute name and value are no longer collapsed. E." +"g. ```` produces attribute \"foo\" with value \"=bar\"." msgstr "" -#: ../NEWS:4557 +#: ../NEWS:4731 msgid "" "[Reverted in :gh:`136927`] Whitespaces between the ``=`` separator and " -"attribute name or value are no longer ignored. E.g. ```` produces" -" two attributes \"foo\" and \"=bar\", both with value None; ```` " -"produces two attributes: \"foo\" with value \"\" and \"bar\" with value None." +"attribute name or value are no longer ignored. E.g. ```` " +"produces two attributes \"foo\" and \"=bar\", both with value None; ```` produces two attributes: \"foo\" with value \"\" and \"bar\" " +"with value None." msgstr "" -#: ../NEWS:4562 +#: ../NEWS:4736 msgid "" ":gh:`102555`: Fix comment parsing in :class:`html.parser.HTMLParser` " "according to the HTML5 standard. ``--!>`` now ends the comment. ``-- >`` no " -"longer ends the comment. Support abnormally ended empty comments ``<-->`` and" -" ``<--->``." +"longer ends the comment. Support abnormally ended empty comments ``<-->`` " +"and ``<--->``." msgstr "" -#: ../NEWS:4570 +#: ../NEWS:4744 msgid "" ":gh:`136286`: Fix pickling failures for protocols 0 and 1 for many objects " "realted to subinterpreters." msgstr "" -#: ../NEWS:4573 +#: ../NEWS:4747 msgid "" -":gh:`136316`: Improve support for evaluating nested forward references in " -":func:`typing.evaluate_forward_ref`." +":gh:`136316`: Improve support for evaluating nested forward references in :" +"func:`typing.evaluate_forward_ref`." msgstr "" -#: ../NEWS:4576 +#: ../NEWS:4750 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." +":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:4580 +#: ../NEWS:4754 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." +":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:4584 +#: ../NEWS:4758 msgid "" ":gh:`135995`: In the palmos encoding, make byte ``0x9b`` decode to ``›`` " "(U+203A - SINGLE RIGHT-POINTING ANGLE QUOTATION MARK)." msgstr "" -#: ../NEWS:4587 +#: ../NEWS:4761 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:4591 +#: ../NEWS:4765 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 " @@ -7726,236 +7946,236 @@ msgid "" "before 3.14.0b2." msgstr "" -#: ../NEWS:4596 +#: ../NEWS:4770 msgid "" ":gh:`135878`: Fixes a crash of :class:`types.SimpleNamespace` on :term:`free " -"threading` builds, when several threads were calling its " -":meth:`~object.__repr__` method at the same time." +"threading` builds, when several threads were calling its :meth:`~object." +"__repr__` method at the same time." msgstr "" -#: ../NEWS:4600 +#: ../NEWS:4774 msgid "" -":gh:`135836`: Fix :exc:`IndexError` in :meth:`asyncio.loop.create_connection`" -" that could occur when non-\\ :exc:`OSError` exception is raised during " -"connection and socket's ``close()`` raises :exc:`!OSError`." +":gh:`135836`: Fix :exc:`IndexError` in :meth:`asyncio.loop." +"create_connection` that could occur when non-\\ :exc:`OSError` exception is " +"raised during connection and socket's ``close()`` raises :exc:`!OSError`." msgstr "" -#: ../NEWS:4604 +#: ../NEWS:4778 msgid "" -":gh:`135836`: Fix :exc:`IndexError` in :meth:`asyncio.loop.create_connection`" -" that could occur when the Happy Eyeballs algorithm resulted in an empty " -"exceptions list during connection attempts." +":gh:`135836`: Fix :exc:`IndexError` in :meth:`asyncio.loop." +"create_connection` that could occur when the Happy Eyeballs algorithm " +"resulted in an empty exceptions list during connection attempts." msgstr "" -#: ../NEWS:4608 +#: ../NEWS:4782 msgid "" -":gh:`135855`: Raise :exc:`TypeError` instead of :exc:`SystemError` when " -":func:`!_interpreters.set___main___attrs` is passed a non-dict object. Patch " +":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:4612 +#: ../NEWS:4786 msgid "" ":gh:`135815`: :mod:`netrc`: skip security checks if :func:`os.getuid` is " "missing. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:4615 +#: ../NEWS:4789 msgid "" -":gh:`135640`: Address bug where it was possible to call " -":func:`xml.etree.ElementTree.ElementTree.write` on an ElementTree object with" -" an invalid root element. This behavior blanked the file passed to ``write`` " -"if it already existed." +":gh:`135640`: Address bug where it was possible to call :func:`xml.etree." +"ElementTree.ElementTree.write` on an ElementTree object with an invalid root " +"element. This behavior blanked the file passed to ``write`` if it already " +"existed." msgstr "" -#: ../NEWS:4620 +#: ../NEWS:4794 msgid "" -":gh:`135645`: Added ``supports_isolated_interpreters`` field to " -":data:`sys.implementation`." +":gh:`135645`: Added ``supports_isolated_interpreters`` field to :data:`sys." +"implementation`." msgstr "" -#: ../NEWS:4623 +#: ../NEWS:4797 msgid "" -":gh:`135646`: Raise consistent :exc:`NameError` exceptions in " -":func:`annotationlib.ForwardRef.evaluate`" +":gh:`135646`: Raise consistent :exc:`NameError` exceptions in :func:" +"`annotationlib.ForwardRef.evaluate`" msgstr "" -#: ../NEWS:4626 +#: ../NEWS:4800 msgid "" ":gh:`135557`: Fix races on :mod:`heapq` updates and :class:`list` reads on " "the :term:`free threaded ` build." msgstr "" -#: ../NEWS:4629 +#: ../NEWS:4803 msgid "" -":gh:`119180`: Only fetch globals and locals if necessary in " -":func:`annotationlib.get_annotations`" +":gh:`119180`: Only fetch globals and locals if necessary in :func:" +"`annotationlib.get_annotations`" msgstr "" -#: ../NEWS:4632 +#: ../NEWS:4806 msgid "" ":gh:`135561`: Fix a crash on DEBUG builds when an HACL* HMAC routine fails. " "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:4635 +#: ../NEWS:4809 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:4639 +#: ../NEWS:4813 msgid "" ":gh:`135335`: :mod:`multiprocessing`: Flush ``stdout`` and ``stderr`` after " "preloading modules in the ``forkserver``." msgstr "" -#: ../NEWS:4642 +#: ../NEWS:4816 msgid "" -":gh:`135069`: Fix the \"Invalid error handling\" exception in " -":class:`!encodings.idna.IncrementalDecoder` to correctly replace the 'errors'" -" parameter." +":gh:`135069`: Fix the \"Invalid error handling\" exception in :class:`!" +"encodings.idna.IncrementalDecoder` to correctly replace the 'errors' " +"parameter." msgstr "" -#: ../NEWS:4646 +#: ../NEWS:4820 msgid "" -":gh:`130662`: +Accept leading zeros in precision and width fields for " -"+:class:`~decimal.Decimal` formatting, for example ``format(Decimal(1.25), " +":gh:`130662`: +Accept leading zeros in precision and width fields for +:" +"class:`~decimal.Decimal` formatting, for example ``format(Decimal(1.25), " "'.016f')``." msgstr "" -#: ../NEWS:4650 +#: ../NEWS:4824 msgid "" -":gh:`130662`: Accept leading zeros in precision and width fields for " -":class:`~fractions.Fraction` formatting, for example ``format(Fraction(1, 3)," -" '.016f')``." +":gh:`130662`: Accept leading zeros in precision and width fields for :class:" +"`~fractions.Fraction` formatting, for example ``format(Fraction(1, 3), " +"'.016f')``." msgstr "" -#: ../NEWS:4654 +#: ../NEWS:4828 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:4658 +#: ../NEWS:4832 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:4662 +#: ../NEWS:4836 msgid "" ":gh:`130664`: Handle corner-case for :class:`~fractions.Fraction`'s " -"formatting: treat zero-padding (preceding the width field by a zero (``'0'``)" -" character) as an equivalent to a fill character of ``'0'`` with an alignment" -" type of ``'='``, just as in case of :class:`float`'s." +"formatting: treat zero-padding (preceding the width field by a zero " +"(``'0'``) character) as an equivalent to a fill character of ``'0'`` with an " +"alignment type of ``'='``, just as in case of :class:`float`'s." msgstr "" -#: ../NEWS:4670 +#: ../NEWS:4844 msgid "" ":gh:`136155`: EPUB builds are fixed by excluding non-XHTML-compatible tags." msgstr "" -#: ../NEWS:4675 +#: ../NEWS:4849 msgid ":gh:`109700`: Fix memory error handling in :c:func:`PyDict_SetDefault`." msgstr "" -#: ../NEWS:4677 +#: ../NEWS:4851 msgid "" -":gh:`78465`: Fix error message for ``cls.__new__(cls, ...)`` where ``cls`` is" -" not instantiable builtin or extension type (with ``tp_new`` set to " +":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:4681 +#: ../NEWS:4855 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:4684 +#: ../NEWS:4858 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:4688 +#: ../NEWS:4862 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:4692 +#: ../NEWS:4866 msgid "" -":gh:`135607`: Fix potential :mod:`weakref` races in an object's destructor on" -" the :term:`free threaded ` build." +":gh:`135607`: Fix potential :mod:`weakref` races in an object's destructor " +"on the :term:`free threaded ` build." msgstr "" -#: ../NEWS:4695 +#: ../NEWS:4869 msgid ":gh:`135608`: Fix a crash in the JIT involving attributes of modules." msgstr "" -#: ../NEWS:4697 +#: ../NEWS:4871 msgid "" -":gh:`135543`: Emit ``sys.remote_exec`` audit event when " -":func:`sys.remote_exec` is called and migrate ``remote_debugger_script`` to " -"``cpython.remote_debugger_script``." +":gh:`135543`: Emit ``sys.remote_exec`` audit event when :func:`sys." +"remote_exec` is called and migrate ``remote_debugger_script`` to ``cpython." +"remote_debugger_script``." msgstr "" -#: ../NEWS:4701 +#: ../NEWS:4875 msgid "" ":gh:`134280`: Disable constant folding for ``~`` with a boolean argument. " "This moves the deprecation warning from compile time to runtime." msgstr "" -#: ../NEWS:4707 +#: ../NEWS:4881 msgid "" -":gh:`135906`: Fix compilation errors when compiling the internal headers with" -" a C++ compiler." +":gh:`135906`: Fix compilation errors when compiling the internal headers " +"with a C++ compiler." msgstr "" -#: ../NEWS:4713 +#: ../NEWS:4887 msgid "" ":gh:`134273`: Add support for configuring compiler flags for the JIT with " "``CFLAGS_JIT``" msgstr "" -#: ../NEWS:4718 +#: ../NEWS:4892 msgid "Python 3.14.0 beta 3" msgstr "" -#: ../NEWS:4720 +#: ../NEWS:4894 msgid "*Release date: 2025-06-17*" msgstr "" -#: ../NEWS:4725 +#: ../NEWS:4899 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:4732 +#: ../NEWS:4906 msgid "" ":gh:`132815`: Fix test__opcode: add ``JUMP_BACKWARD`` to specialization " "stats." msgstr "" -#: ../NEWS:4735 +#: ../NEWS:4909 msgid "" -":gh:`135489`: Show verbose output for failing tests during PGO profiling step" -" with --enable-optimizations." +":gh:`135489`: Show verbose output for failing tests during PGO profiling " +"step with --enable-optimizations." msgstr "" -#: ../NEWS:4738 +#: ../NEWS:4912 msgid ":gh:`135120`: Add :func:`!test.support.subTests`." msgstr "" -#: ../NEWS:4743 +#: ../NEWS:4917 msgid "" ":gh:`135462`: Fix quadratic complexity in processing specially crafted input " "in :class:`html.parser.HTMLParser`. End-of-file errors are now handled " @@ -7963,114 +8183,113 @@ msgid "" "closed, tags are ignored." msgstr "" -#: ../NEWS:4748 +#: ../NEWS:4922 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:4752 +#: ../NEWS:4926 msgid "" -"Addresses :cve:`2024-12718`, :cve:`2025-4138`, :cve:`2025-4330`, and " -":cve:`2025-4517`." +"Addresses :cve:`2024-12718`, :cve:`2025-4138`, :cve:`2025-4330`, and :cve:" +"`2025-4517`." msgstr "" -#: ../NEWS:4758 +#: ../NEWS:4932 msgid "" ":gh:`65697`: :class:`configparser`'s error message when attempting to write " "an invalid key is now more helpful." msgstr "" -#: ../NEWS:4761 +#: ../NEWS:4935 msgid "" ":gh:`135497`: Fix :func:`os.getlogin` failing for longer usernames on BSD-" "based platforms." msgstr "" -#: ../NEWS:4764 +#: ../NEWS:4938 msgid "" ":gh:`135429`: Fix the argument mismatch in ``_lsprof`` for ``PY_THROW`` " "event." msgstr "" -#: ../NEWS:4767 +#: ../NEWS:4941 msgid "" -":gh:`135368`: Fix :class:`unittest.mock.Mock` generation on " -":func:`dataclasses.dataclass` objects. Now all special attributes are set as " -"it was before :gh:`124429`." +":gh:`135368`: Fix :class:`unittest.mock.Mock` generation on :func:" +"`dataclasses.dataclass` objects. Now all special attributes are set as it " +"was before :gh:`124429`." msgstr "" -#: ../NEWS:4771 +#: ../NEWS:4945 msgid "" ":gh:`133967`: Do not normalize :mod:`locale` name 'C.UTF-8' to 'en_US.UTF-8'." msgstr "" -#: ../NEWS:4773 +#: ../NEWS:4947 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:4776 +#: ../NEWS:4950 msgid "" -":gh:`135276`: Backported bugfixes in zipfile.Path from zipp 3.23. Fixed " -"``.name``, ``.stem`` and other basename-based properties on Windows when " +":gh:`135276`: Backported bugfixes in zipfile.Path from zipp 3.23. Fixed ``." +"name``, ``.stem`` and other basename-based properties on Windows when " "working with a zipfile on disk." msgstr "" -#: ../NEWS:4780 +#: ../NEWS:4954 msgid "" -":gh:`135244`: :mod:`uuid`: when the MAC address cannot be determined, the " -"48-bit node ID is now generated with a cryptographically-secure pseudo-random" -" number generator (CSPRNG) as per :rfc:`RFC 9562, §6.10.3 " -"<9562#section-6.10-3>`. This affects :func:`~uuid.uuid1` and " -":func:`~uuid.uuid6`." +":gh:`135244`: :mod:`uuid`: when the MAC address cannot be determined, the 48-" +"bit node ID is now generated with a cryptographically-secure pseudo-random " +"number generator (CSPRNG) as per :rfc:`RFC 9562, §6.10.3 " +"<9562#section-6.10-3>`. This affects :func:`~uuid.uuid1` and :func:`~uuid." +"uuid6`." msgstr "" -#: ../NEWS:4786 +#: ../NEWS:4960 msgid "" -":gh:`134970`: Fix the \"unknown action\" exception in " -":meth:`argparse.ArgumentParser.add_argument_group` to correctly replace the " -"action class." +":gh:`134970`: Fix the \"unknown action\" exception in :meth:`argparse." +"ArgumentParser.add_argument_group` to correctly replace the action class." msgstr "" -#: ../NEWS:4790 +#: ../NEWS:4964 msgid "" ":gh:`134718`: :func:`ast.dump` now only omits ``None`` and ``[]`` values if " "they are default values." msgstr "" -#: ../NEWS:4793 +#: ../NEWS:4967 msgid "" ":gh:`134939`: Add the :mod:`concurrent.interpreters` module. See :pep:`734`." msgstr "" -#: ../NEWS:4795 +#: ../NEWS:4969 msgid "" ":gh:`134885`: Fix possible crash in the :mod:`compression.zstd` module " "related to setting parameter types. Patch by Jelle Zijlstra." msgstr "" -#: ../NEWS:4798 +#: ../NEWS:4972 msgid "" -":gh:`134857`: Improve error report for :mod:`doctest`\\ s run with " -":mod:`unittest`. Remove :mod:`!doctest` module frames from tracebacks and " +":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:4802 +#: ../NEWS:4976 msgid "" ":gh:`128840`: Fix parsing long IPv6 addresses with embedded IPv4 address." msgstr "" -#: ../NEWS:4804 +#: ../NEWS:4978 msgid "" ":gh:`134637`: Fix performance regression in calling a :mod:`ctypes` function " "pointer in :term:`free threading`." msgstr "" -#: ../NEWS:4807 +#: ../NEWS:4981 msgid "" ":gh:`134696`: Built-in HACL* and OpenSSL implementations of hash function " "constructors now correctly accept the same *documented* named arguments. For " @@ -8079,86 +8298,86 @@ msgid "" "implementation but these calls were not compatible. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:4814 +#: ../NEWS:4988 msgid "" -":gh:`134151`: :mod:`email`: Fix :exc:`TypeError` in " -":func:`email.utils.decode_params` when sorting :rfc:`2231` continuations that" -" contain an unnumbered section." +":gh:`134151`: :mod:`email`: Fix :exc:`TypeError` in :func:`email.utils." +"decode_params` when sorting :rfc:`2231` continuations that contain an " +"unnumbered section." msgstr "" -#: ../NEWS:4818 +#: ../NEWS:4992 msgid "" ":gh:`134210`: :func:`curses.window.getch` now correctly handles signals. " "Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:4821 +#: ../NEWS:4995 msgid "" ":gh:`134152`: :mod:`email`: Fix parsing of email message ID with invalid " "domain." msgstr "" -#: ../NEWS:4824 +#: ../NEWS:4998 msgid "" -":gh:`133489`: :func:`random.getrandbits` can now generate more that 2 " -":sup:`31` bits. :func:`random.randbytes` can now generate more that 256 MiB." +":gh:`133489`: :func:`random.getrandbits` can now generate more that 2 :sup:" +"`31` bits. :func:`random.randbytes` can now generate more that 256 MiB." msgstr "" -#: ../NEWS:4828 +#: ../NEWS:5002 msgid "" -":gh:`132813`: Improve error messages for incorrect types and values of " -":class:`csv.Dialect` attributes." +":gh:`132813`: Improve error messages for incorrect types and values of :" +"class:`csv.Dialect` attributes." msgstr "" -#: ../NEWS:4831 +#: ../NEWS:5005 msgid "" ":gh:`132969`: Prevent the :class:`~concurrent.futures.ProcessPoolExecutor` " "executor thread, which remains running when :meth:`shutdown(wait=False) " -"`, from attempting to adjust the pool's" -" worker processes after the object state has already been reset during " +"`, from attempting to adjust the " +"pool's worker processes after the object state has already been reset during " "shutdown. A combination of conditions, including a worker process having " "terminated abormally, resulted in an exception and a potential hang when the " "still-running executor thread attempted to replace dead workers within the " "pool." msgstr "" -#: ../NEWS:4840 +#: ../NEWS:5014 msgid "" ":gh:`127081`: Fix libc thread safety issues with :mod:`os` by replacing " "``getlogin`` with ``getlogin_r`` re-entrant version." msgstr "" -#: ../NEWS:4843 +#: ../NEWS:5017 msgid "" ":gh:`131884`: Fix formatting issues in :func:`json.dump` when both *indent* " "and *skipkeys* are used." msgstr "" -#: ../NEWS:4846 +#: ../NEWS:5020 msgid "" ":gh:`130999`: Avoid exiting the new REPL and offer suggestions even if there " "are non-string candidates when errors occur." msgstr "" -#: ../NEWS:4852 +#: ../NEWS:5026 msgid "" -":gh:`135171`: Document that the :term:`iterator` for the leftmost " -":keyword:`!for` clause in the generator expression is created immediately." +":gh:`135171`: Document that the :term:`iterator` for the leftmost :keyword:`!" +"for` clause in the generator expression is created immediately." msgstr "" -#: ../NEWS:4855 +#: ../NEWS:5029 msgid "" ":issue:`45210`: Document that error indicator may be set in tp_dealloc, and " "how to avoid clobbering it." msgstr "" -#: ../NEWS:4861 +#: ../NEWS:5035 msgid "" ":gh:`135496`: Fix typo in the f-string conversion type error " "(\"exclamanation\" -> \"exclamation\")." msgstr "" -#: ../NEWS:4864 +#: ../NEWS:5038 msgid "" ":gh:`135371`: Fixed :mod:`asyncio` debugging tools to properly display " "internal coroutine call stacks alongside external task dependencies. The " @@ -8166,62 +8385,62 @@ msgid "" "complete execution context. Patch by Pablo Galindo." msgstr "" -#: ../NEWS:4872 +#: ../NEWS:5046 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." +":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:4879 +#: ../NEWS:5053 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:4883 +#: ../NEWS:5057 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." +"containing names that are prefixes of soft keywords is encountered. Patch " +"by Pablo Galindo." msgstr "" -#: ../NEWS:4887 +#: ../NEWS:5061 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 no " -"longer possible to cause a crash in the debugger by altering the generator " -"expression's local variables. This is achieved by moving the ``GET_ITER`` " -"instruction back to the creation of the generator expression and adding an " -"additional check to ``FOR_ITER``." +":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 " +"no longer possible to cause a crash in the debugger by altering the " +"generator expression's local variables. This is achieved by moving the " +"``GET_ITER`` instruction back to the creation of the generator expression " +"and adding an additional check to ``FOR_ITER``." msgstr "" -#: ../NEWS:4897 +#: ../NEWS:5071 msgid "" ":gh:`116738`: Make methods in :mod:`heapq` thread-safe on the :term:`free " "threaded ` build." msgstr "" -#: ../NEWS:4903 +#: ../NEWS:5077 msgid "" ":gh:`134876`: Add support to :pep:`768` remote debugging for Linux kernels " "which don't have CONFIG_CROSS_MEMORY_ATTACH configured." msgstr "" -#: ../NEWS:4906 +#: ../NEWS:5080 msgid "" ":gh:`134889`: Fix handling of a few opcodes that leave operands on the stack " "when optimizing ``LOAD_FAST``." msgstr "" -#: ../NEWS:4912 +#: ../NEWS:5086 msgid "" -":gh:`134908`: Fix crash when iterating over lines in a text file on the " -":term:`free threaded ` build." +":gh:`134908`: Fix crash when iterating over lines in a text file on the :" +"term:`free threaded ` build." msgstr "" -#: ../NEWS:4918 +#: ../NEWS:5092 msgid "" ":gh:`132617`: Fix :meth:`dict.update` modification check that could " "incorrectly raise a \"dict mutated during update\" error when a different " @@ -8229,26 +8448,26 @@ msgid "" "object." msgstr "" -#: ../NEWS:4923 +#: ../NEWS:5097 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:4926 +#: ../NEWS:5100 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:4930 +#: ../NEWS:5104 msgid "" ":gh:`133912`: Fix the C API function ``PyObject_GenericSetDict`` to handle " "extension classes with inline values." msgstr "" -#: ../NEWS:4936 +#: ../NEWS:5110 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 " @@ -8256,47 +8475,47 @@ msgid "" "Stinner." msgstr "" -#: ../NEWS:4941 +#: ../NEWS:5115 msgid "" -":gh:`134989`: Implement :c:func:`PyObject_DelAttr` and " -":c:func:`PyObject_DelAttrString` as macros in the limited C API 3.12 and " -"older. Patch by Victor Stinner." +":gh:`134989`: Implement :c:func:`PyObject_DelAttr` and :c:func:" +"`PyObject_DelAttrString` as macros in the limited C API 3.12 and older. " +"Patch by Victor Stinner." msgstr "" -#: ../NEWS:4945 +#: ../NEWS:5119 msgid "" ":gh:`133968`: Add :c:func:`PyUnicodeWriter_WriteASCII` function to write an " -"ASCII string into a :c:type:`PyUnicodeWriter`. The function is faster than " -":c:func:`PyUnicodeWriter_WriteUTF8`, but has an undefined behavior if the " +"ASCII string into a :c:type:`PyUnicodeWriter`. The function is faster than :" +"c:func:`PyUnicodeWriter_WriteUTF8`, but has an undefined behavior if the " "input string contains non-ASCII characters. Patch by Victor Stinner." msgstr "" -#: ../NEWS:4953 +#: ../NEWS:5127 msgid "" ":gh:`119132`: Remove \"experimental\" tag from the CPython free-threading " "build." msgstr "" -#: ../NEWS:4956 +#: ../NEWS:5130 msgid "" ":gh:`135497`: Fix the detection of ``MAXLOGNAME`` in the ``configure.ac`` " "script." msgstr "" -#: ../NEWS:4959 +#: ../NEWS:5133 msgid "" -":gh:`134923`: Windows builds with profile-guided optimization enabled now use" -" ``/GENPROFILE`` and ``/USEPROFILE`` instead of deprecated ``/LTCG:`` " +":gh:`134923`: Windows builds with profile-guided optimization enabled now " +"use ``/GENPROFILE`` and ``/USEPROFILE`` instead of deprecated ``/LTCG:`` " "options." msgstr "" -#: ../NEWS:4963 +#: ../NEWS:5137 msgid "" ":gh:`134774`: Fix :c:macro:`Py_DEBUG` macro redefinition warnings on Windows " "debug builds. Patch by Chris Eibl." msgstr "" -#: ../NEWS:4966 +#: ../NEWS:5140 msgid "" ":gh:`134632`: Fixed ``build-details.json`` generation to use ``INCLUDEPY``, " "in order to reference the ``pythonX.Y`` subdirectory of the include " @@ -8304,233 +8523,233 @@ msgid "" "directory." msgstr "" -#: ../NEWS:4973 +#: ../NEWS:5147 msgid "Python 3.14.0 beta 2" msgstr "" -#: ../NEWS:4975 +#: ../NEWS:5149 msgid "*Release date: 2025-05-26*" msgstr "" -#: ../NEWS:4980 +#: ../NEWS:5154 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:4983 +#: ../NEWS:5157 msgid "" ":gh:`76023`: Make :func:`os.path.realpath` ignore Windows error 1005 when in " "non-strict mode." msgstr "" -#: ../NEWS:4986 +#: ../NEWS:5160 msgid "" ":gh:`133779`: Reverts the change to generate different :file:`pyconfig.h` " "files based on compiler settings, as it was frequently causing extension " -"builds to break. In particular, the ``Py_GIL_DISABLED`` preprocessor variable" -" must now always be defined explicitly when compiling for the experimental " -"free-threaded runtime. The :func:`sysconfig.get_config_var` function can be " -"used to determine whether the current runtime was compiled with that flag or " -"not." +"builds to break. In particular, the ``Py_GIL_DISABLED`` preprocessor " +"variable must now always be defined explicitly when compiling for the " +"experimental free-threaded runtime. The :func:`sysconfig.get_config_var` " +"function can be used to determine whether the current runtime was compiled " +"with that flag or not." msgstr "" -#: ../NEWS:4994 +#: ../NEWS:5168 msgid "" ":gh:`133626`: Ensures packages are not accidentally bundled into the " "traditional installer." msgstr "" -#: ../NEWS:5000 +#: ../NEWS:5174 msgid "" ":gh:`134215`: :term:`REPL` import autocomplete only suggests private modules " "when explicitly specified." msgstr "" -#: ../NEWS:5006 +#: ../NEWS:5180 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." +":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:5010 +#: ../NEWS:5184 msgid "" -":gh:`133682`: Fixed test case " -"``test.test_annotationlib.TestStringFormat.test_displays`` which ensures " -"proper handling of complex data structures (lists, sets, dictionaries, and " -"tuples) in string annotations." +":gh:`133682`: Fixed test case ``test.test_annotationlib.TestStringFormat." +"test_displays`` which ensures proper handling of complex data structures " +"(lists, sets, dictionaries, and tuples) in string annotations." msgstr "" -#: ../NEWS:5015 +#: ../NEWS:5189 msgid "" -":gh:`133639`: Fix ``TestPyReplAutoindent.test_auto_indent_default()`` doesn't" -" run ``input_code``." +":gh:`133639`: Fix ``TestPyReplAutoindent.test_auto_indent_default()`` " +"doesn't run ``input_code``." msgstr "" -#: ../NEWS:5021 +#: ../NEWS:5195 msgid "" ":gh:`133767`: Fix use-after-free in the \"unicode-escape\" decoder with a " "non-\"strict\" error handler." msgstr "" -#: ../NEWS:5024 +#: ../NEWS:5198 msgid "" -":gh:`128840`: Short-circuit the processing of long IPv6 addresses early in " -":mod:`ipaddress` to prevent excessive memory consumption and a minor denial-" +":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:5031 +#: ../NEWS:5205 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:5035 +#: ../NEWS:5209 msgid "" ":gh:`80334`: :func:`multiprocessing.freeze_support` now checks for work on " "any \"spawn\" start method platform rather than only on Windows." msgstr "" -#: ../NEWS:5038 +#: ../NEWS:5212 msgid "" -":gh:`134582`: Fix tokenize.untokenize() round-trip errors related to " -"t-strings braces escaping" +":gh:`134582`: Fix tokenize.untokenize() round-trip errors related to t-" +"strings braces escaping" msgstr "" -#: ../NEWS:5041 +#: ../NEWS:5215 msgid "" -":gh:`134546`: Ensure :mod:`pdb` remote debugging script is readable by remote" -" Python process." +":gh:`134546`: Ensure :mod:`pdb` remote debugging script is readable by " +"remote Python process." msgstr "" -#: ../NEWS:5044 +#: ../NEWS:5218 msgid "" ":gh:`134451`: Converted ``asyncio.tools.CycleFoundException`` from dataclass " "to a regular exception type." msgstr "" -#: ../NEWS:5047 +#: ../NEWS:5221 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:5050 +#: ../NEWS:5224 msgid "" -":gh:`90871`: Fixed an off by one error concerning the backlog parameter in " -":meth:`~asyncio.loop.create_unix_server`. Contributed by Christian Harries." +":gh:`90871`: Fixed an off by one error concerning the backlog parameter in :" +"meth:`~asyncio.loop.create_unix_server`. Contributed by Christian Harries." msgstr "" -#: ../NEWS:5054 +#: ../NEWS:5228 msgid ":gh:`134323`: Fix the :meth:`threading.RLock.locked` method." msgstr "" -#: ../NEWS:5056 +#: ../NEWS:5230 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:5060 +#: ../NEWS:5234 msgid "" -":gh:`134209`: :mod:`curses`: The :meth:`curses.window.instr` and " -":meth:`curses.window.getstr` methods now allocate their internal buffer on " -"the heap instead of the stack; in addition, the max buffer size is increased " +":gh:`134209`: :mod:`curses`: The :meth:`curses.window.instr` and :meth:" +"`curses.window.getstr` methods now allocate their internal buffer on the " +"heap instead of the stack; in addition, the max buffer size is increased " "from 1023 to 2047." msgstr "" -#: ../NEWS:5065 +#: ../NEWS:5239 msgid "" ":gh:`134235`: Updated tab completion on REPL to include builtin modules. " "Contributed by Tom Wang, Hunter Young" msgstr "" -#: ../NEWS:5068 +#: ../NEWS:5242 msgid "" -":gh:`134152`: Fixed :exc:`UnboundLocalError` that could occur during " -":mod:`email` header parsing if an expected trailing delimiter is missing in " -"some contexts." +":gh:`134152`: Fixed :exc:`UnboundLocalError` that could occur during :mod:" +"`email` header parsing if an expected trailing delimiter is missing in some " +"contexts." msgstr "" -#: ../NEWS:5072 +#: ../NEWS:5246 msgid "" -":gh:`134168`: :mod:`http.server`: Fix IPv6 address binding and " -":option:`--directory ` handling when using HTTPS." +":gh:`134168`: :mod:`http.server`: Fix IPv6 address binding and :option:`--" +"directory ` handling when using HTTPS." msgstr "" -#: ../NEWS:5075 +#: ../NEWS:5249 msgid "" ":gh:`62184`: Remove import of C implementation of :class:`io.FileIO` from " "Python implementation which has its own implementation" msgstr "" -#: ../NEWS:5078 +#: ../NEWS:5252 msgid "" -":gh:`133982`: Emit :exc:`RuntimeWarning` in the Python implementation of " -":mod:`io` when the :term:`file-like object ` is not closed " +":gh:`133982`: Emit :exc:`RuntimeWarning` in the Python implementation of :" +"mod:`io` when the :term:`file-like object ` is not closed " "explicitly in the presence of multiple I/O layers." msgstr "" -#: ../NEWS:5082 +#: ../NEWS:5256 msgid "" -":gh:`133890`: The :mod:`tarfile` module now handles :exc:`UnicodeEncodeError`" -" in the same way as :exc:`OSError` when cannot extract a member." +":gh:`133890`: The :mod:`tarfile` module now handles :exc:" +"`UnicodeEncodeError` in the same way as :exc:`OSError` when cannot extract a " +"member." msgstr "" -#: ../NEWS:5085 +#: ../NEWS:5259 msgid "" ":gh:`134097`: Fix interaction of the new :term:`REPL` and :option:`-X " "showrefcount <-X>` command line option." msgstr "" -#: ../NEWS:5088 +#: ../NEWS:5262 msgid "" -":gh:`133889`: The generated directory listing page in " -":class:`http.server.SimpleHTTPRequestHandler` now only shows the decoded path" -" component of the requested URL, and not the query and fragment." +":gh:`133889`: The generated directory listing page in :class:`http.server." +"SimpleHTTPRequestHandler` now only shows the decoded path component of the " +"requested URL, and not the query and fragment." msgstr "" -#: ../NEWS:5092 +#: ../NEWS:5266 msgid "" ":gh:`134098`: Fix handling paths that end with a percent-encoded slash " "(``%2f`` or ``%2F``) in :class:`http.server.SimpleHTTPRequestHandler`." msgstr "" -#: ../NEWS:5095 +#: ../NEWS:5269 msgid "" -":gh:`132124`: On POSIX-compliant systems, " -":func:`!multiprocessing.util.get_temp_dir` now ignores :envvar:`TMPDIR` (and " -"similar environment variables) if the path length of ``AF_UNIX`` socket files" -" exceeds the platform-specific maximum length when using the :ref:`forkserver" -" ` start method. Patch by Bénédikt " +":gh:`132124`: On POSIX-compliant systems, :func:`!multiprocessing.util." +"get_temp_dir` now ignores :envvar:`TMPDIR` (and similar environment " +"variables) if the path length of ``AF_UNIX`` socket files exceeds the " +"platform-specific maximum length when using the :ref:`forkserver " +"` start method. Patch by Bénédikt " "Tran." msgstr "" -#: ../NEWS:5102 +#: ../NEWS:5276 msgid "" ":gh:`134062`: :mod:`ipaddress`: fix collisions in :meth:`~object.__hash__` " "for :class:`~ipaddress.IPv4Network` and :class:`~ipaddress.IPv6Network` " "objects." msgstr "" -#: ../NEWS:5106 +#: ../NEWS:5280 msgid "" -":gh:`133970`: Make :class:`!string.templatelib.Template` and " -":class:`!string.templatelib.Interpolation` generic." +":gh:`133970`: Make :class:`!string.templatelib.Template` and :class:`!string." +"templatelib.Interpolation` generic." msgstr "" -#: ../NEWS:5109 +#: ../NEWS:5283 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:5113 +#: ../NEWS:5287 msgid "" ":gh:`133960`: Simplify and improve :func:`typing.evaluate_forward_ref`. It " "now no longer raises errors on certain invalid types. In several situations, " @@ -8538,61 +8757,61 @@ msgid "" "unsupported." msgstr "" -#: ../NEWS:5118 +#: ../NEWS:5292 msgid "" ":gh:`133925`: Make the private class ``typing._UnionGenericAlias`` hashable." msgstr "" -#: ../NEWS:5120 +#: ../NEWS:5294 msgid "" -":gh:`133653`: Fix :class:`argparse.ArgumentParser` with the *formatter_class*" -" argument. Fix TypeError when *formatter_class* is a custom subclass of " -":class:`!HelpFormatter`. Fix TypeError when *formatter_class* is not a " -"subclass of :class:`!HelpFormatter` and non-standard *prefix_char* is used. " -"Fix support of colorizing when *formatter_class* is not a subclass of " -":class:`!HelpFormatter`." +":gh:`133653`: Fix :class:`argparse.ArgumentParser` with the " +"*formatter_class* argument. Fix TypeError when *formatter_class* is a custom " +"subclass of :class:`!HelpFormatter`. Fix TypeError when *formatter_class* is " +"not a subclass of :class:`!HelpFormatter` and non-standard *prefix_char* is " +"used. Fix support of colorizing when *formatter_class* is not a subclass of :" +"class:`!HelpFormatter`." msgstr "" -#: ../NEWS:5127 +#: ../NEWS:5301 msgid "" ":gh:`132641`: Fixed a race in :func:`functools.lru_cache` under free-" "threading." msgstr "" -#: ../NEWS:5130 +#: ../NEWS:5304 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:5134 +#: ../NEWS:5308 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:5138 +#: ../NEWS:5312 msgid "" -":gh:`77057`: Fix handling of invalid markup declarations in " -":class:`html.parser.HTMLParser`." +":gh:`77057`: Fix handling of invalid markup declarations in :class:`html." +"parser.HTMLParser`." msgstr "" -#: ../NEWS:5141 +#: ../NEWS:5315 msgid "" ":gh:`130328`: Speedup pasting in ``PyREPL`` on Windows in a legacy console. " "Patch by Chris Eibl." msgstr "" -#: ../NEWS:5144 +#: ../NEWS:5318 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:5148 +#: ../NEWS:5322 msgid "" ":gh:`133581`: Improve unparsing of t-strings in :func:`ast.unparse` and " "``from __future__ import annotations``. Empty t-strings now round-trip " @@ -8600,253 +8819,253 @@ msgid "" "Zijlstra." msgstr "" -#: ../NEWS:5153 +#: ../NEWS:5327 msgid "" ":gh:`133551`: Support t-strings (:pep:`750`) in :mod:`annotationlib`. Patch " "by Jelle Zijlstra." msgstr "" -#: ../NEWS:5156 +#: ../NEWS:5330 msgid "" ":gh:`133439`: Fix dot commands with trailing spaces are mistaken for multi-" "line SQL statements in the sqlite3 command-line interface." msgstr "" -#: ../NEWS:5159 +#: ../NEWS:5333 msgid "" -":gh:`132493`: Avoid accessing ``__annotations__`` unnecessarily in " -":func:`inspect.signature`." +":gh:`132493`: Avoid accessing ``__annotations__`` unnecessarily in :func:" +"`inspect.signature`." msgstr "" -#: ../NEWS:5162 +#: ../NEWS:5336 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 " -"them, so results may change slightly, in rare cases of very small results, on" -" Windows versions before 11." +"them, so results may change slightly, in rare cases of very small results, " +"on Windows versions before 11." msgstr "" -#: ../NEWS:5167 +#: ../NEWS:5341 msgid "" -":gh:`133009`: :mod:`xml.etree.ElementTree`: Fix a crash in " -":meth:`Element.__deepcopy__ ` when the element is " -"concurrently mutated. Patch by Bénédikt Tran." +":gh:`133009`: :mod:`xml.etree.ElementTree`: Fix a crash in :meth:`Element." +"__deepcopy__ ` when the element is concurrently " +"mutated. Patch by Bénédikt Tran." msgstr "" -#: ../NEWS:5171 +#: ../NEWS:5345 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:5175 +#: ../NEWS:5349 msgid "" -":gh:`125028`: :data:`functools.Placeholder` cannot be passed to " -":func:`functools.partial` as a keyword argument." +":gh:`125028`: :data:`functools.Placeholder` cannot be passed to :func:" +"`functools.partial` as a keyword argument." msgstr "" -#: ../NEWS:5178 +#: ../NEWS:5352 msgid "" ":gh:`62824`: Fix aliases for ``iso8859_8`` encoding. Patch by Dave Goncalves." msgstr "" -#: ../NEWS:5180 +#: ../NEWS:5354 msgid "" ":gh:`86155`: :meth:`html.parser.HTMLParser.close` no longer loses data when " "the ``