# Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. # msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-01-15 22:33+0100\n" "PO-Revision-Date: 2018-07-31 23:09+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: whatsnew/3.3.rst:3 msgid "What's New In Python 3.3" msgstr "Nouveautés de Python 3.3" #: whatsnew/3.3.rst:45 msgid "" "This article explains the new features in Python 3.3, compared to 3.2. " "Python 3.3 was released on September 29, 2012. For full details, see the " "`changelog `_." msgstr "" #: whatsnew/3.3.rst:51 msgid ":pep:`398` - Python 3.3 Release Schedule" msgstr "" #: whatsnew/3.3.rst:55 msgid "Summary -- Release highlights" msgstr "Résumé – Points forts de la publication" #: whatsnew/3.3.rst:60 msgid "New syntax features:" msgstr "" #: whatsnew/3.3.rst:62 msgid "" "New ``yield from`` expression for :ref:`generator delegation `." msgstr "" #: whatsnew/3.3.rst:63 msgid "The ``u'unicode'`` syntax is accepted again for :class:`str` objects." msgstr "" #: whatsnew/3.3.rst:65 msgid "New library modules:" msgstr "" #: whatsnew/3.3.rst:67 msgid ":mod:`faulthandler` (helps debugging low-level crashes)" msgstr "" #: whatsnew/3.3.rst:68 msgid "" ":mod:`ipaddress` (high-level objects representing IP addresses and masks)" msgstr "" #: whatsnew/3.3.rst:69 msgid ":mod:`lzma` (compress data using the XZ / LZMA algorithm)" msgstr "" #: whatsnew/3.3.rst:70 msgid "" ":mod:`unittest.mock` (replace parts of your system under test with mock " "objects)" msgstr "" #: whatsnew/3.3.rst:71 msgid "" ":mod:`venv` (Python :ref:`virtual environments `, as in the popular " "``virtualenv`` package)" msgstr "" #: whatsnew/3.3.rst:74 msgid "New built-in features:" msgstr "" #: whatsnew/3.3.rst:76 msgid "Reworked :ref:`I/O exception hierarchy `." msgstr "" #: whatsnew/3.3.rst:78 msgid "Implementation improvements:" msgstr "" #: whatsnew/3.3.rst:80 msgid "" "Rewritten :ref:`import machinery ` based on :mod:`importlib`." msgstr "" #: whatsnew/3.3.rst:81 msgid "More compact :ref:`unicode strings `." msgstr "" #: whatsnew/3.3.rst:82 msgid "More compact :ref:`attribute dictionaries `." msgstr "" #: whatsnew/3.3.rst:84 msgid "Significantly Improved Library Modules:" msgstr "" #: whatsnew/3.3.rst:86 msgid "C Accelerator for the :ref:`decimal ` module." msgstr "" #: whatsnew/3.3.rst:87 msgid "" "Better unicode handling in the :ref:`email ` module (:term:" "`provisional `)." msgstr "" #: whatsnew/3.3.rst:90 msgid "Security improvements:" msgstr "" #: whatsnew/3.3.rst:92 msgid "Hash randomization is switched on by default." msgstr "" #: whatsnew/3.3.rst:94 msgid "Please read on for a comprehensive list of user-facing changes." msgstr "" #: whatsnew/3.3.rst:100 msgid "PEP 405: Virtual Environments" msgstr "" #: whatsnew/3.3.rst:102 msgid "" "Virtual environments help create separate Python setups while sharing a " "system-wide base install, for ease of maintenance. Virtual environments " "have their own set of private site packages (i.e. locally installed " "libraries), and are optionally segregated from the system-wide site " "packages. Their concept and implementation are inspired by the popular " "``virtualenv`` third-party package, but benefit from tighter integration " "with the interpreter core." msgstr "" #: whatsnew/3.3.rst:110 msgid "" "This PEP adds the :mod:`venv` module for programmatic access, and the " "``pyvenv`` script for command-line access and administration. The Python " "interpreter checks for a ``pyvenv.cfg``, file whose existence signals the " "base of a virtual environment's directory tree." msgstr "" #: whatsnew/3.3.rst:118 msgid ":pep:`405` - Python Virtual Environments" msgstr "" #: whatsnew/3.3.rst:119 msgid "PEP written by Carl Meyer; implementation by Carl Meyer and Vinay Sajip" msgstr "" #: whatsnew/3.3.rst:123 msgid "PEP 420: Implicit Namespace Packages" msgstr "" #: whatsnew/3.3.rst:125 msgid "" "Native support for package directories that don't require ``__init__.py`` " "marker files and can automatically span multiple path segments (inspired by " "various third party approaches to namespace packages, as described in :pep:" "`420`)" msgstr "" #: whatsnew/3.3.rst:133 msgid ":pep:`420` - Implicit Namespace Packages" msgstr "" #: whatsnew/3.3.rst:133 msgid "" "PEP written by Eric V. Smith; implementation by Eric V. Smith and Barry " "Warsaw" msgstr "" #: whatsnew/3.3.rst:140 msgid "" "PEP 3118: New memoryview implementation and buffer protocol documentation" msgstr "" #: whatsnew/3.3.rst:142 msgid "The implementation of :pep:`3118` has been significantly improved." msgstr "" #: whatsnew/3.3.rst:144 msgid "" "The new memoryview implementation comprehensively fixes all ownership and " "lifetime issues of dynamically allocated fields in the Py_buffer struct that " "led to multiple crash reports. Additionally, several functions that crashed " "or returned incorrect results for non-contiguous or multi-dimensional input " "have been fixed." msgstr "" #: whatsnew/3.3.rst:150 msgid "" "The memoryview object now has a PEP-3118 compliant getbufferproc() that " "checks the consumer's request type. Many new features have been added, most " "of them work in full generality for non-contiguous arrays and arrays with " "suboffsets." msgstr "" #: whatsnew/3.3.rst:155 msgid "" "The documentation has been updated, clearly spelling out responsibilities " "for both exporters and consumers. Buffer request flags are grouped into " "basic and compound flags. The memory layout of non-contiguous and multi-" "dimensional NumPy-style arrays is explained." msgstr "" #: whatsnew/3.3.rst:1122 msgid "Features" msgstr "Caractéristiques" #: whatsnew/3.3.rst:163 msgid "" "All native single character format specifiers in struct module syntax " "(optionally prefixed with '@') are now supported." msgstr "" #: whatsnew/3.3.rst:166 msgid "" "With some restrictions, the cast() method allows changing of format and " "shape of C-contiguous arrays." msgstr "" #: whatsnew/3.3.rst:169 msgid "" "Multi-dimensional list representations are supported for any array type." msgstr "" #: whatsnew/3.3.rst:171 msgid "Multi-dimensional comparisons are supported for any array type." msgstr "" #: whatsnew/3.3.rst:173 msgid "" "One-dimensional memoryviews of hashable (read-only) types with formats B, b " "or c are now hashable. (Contributed by Antoine Pitrou in :issue:`13411`.)" msgstr "" #: whatsnew/3.3.rst:176 msgid "" "Arbitrary slicing of any 1-D arrays type is supported. For example, it is " "now possible to reverse a memoryview in O(1) by using a negative step." msgstr "" #: whatsnew/3.3.rst:1132 msgid "API changes" msgstr "" #: whatsnew/3.3.rst:182 msgid "The maximum number of dimensions is officially limited to 64." msgstr "" #: whatsnew/3.3.rst:184 msgid "" "The representation of empty shape, strides and suboffsets is now an empty " "tuple instead of ``None``." msgstr "" #: whatsnew/3.3.rst:187 msgid "" "Accessing a memoryview element with format 'B' (unsigned bytes) now returns " "an integer (in accordance with the struct module syntax). For returning a " "bytes object the view must be cast to 'c' first." msgstr "" #: whatsnew/3.3.rst:191 msgid "" "memoryview comparisons now use the logical structure of the operands and " "compare all array elements by value. All format strings in struct module " "syntax are supported. Views with unrecognised format strings are still " "permitted, but will always compare as unequal, regardless of view contents." msgstr "" #: whatsnew/3.3.rst:197 msgid "" "For further changes see `Build and C API Changes`_ and `Porting C code`_." msgstr "" #: whatsnew/3.3.rst:199 msgid "(Contributed by Stefan Krah in :issue:`10181`.)" msgstr "(Contribution par Stefan Krah; :issue:`10181`.)" #: whatsnew/3.3.rst:203 msgid ":pep:`3118` - Revising the Buffer Protocol" msgstr "" #: whatsnew/3.3.rst:209 msgid "PEP 393: Flexible String Representation" msgstr "" #: whatsnew/3.3.rst:211 msgid "" "The Unicode string type is changed to support multiple internal " "representations, depending on the character with the largest Unicode ordinal " "(1, 2, or 4 bytes) in the represented string. This allows a space-efficient " "representation in common cases, but gives access to full UCS-4 on all " "systems. For compatibility with existing APIs, several representations may " "exist in parallel; over time, this compatibility should be phased out." msgstr "" #: whatsnew/3.3.rst:218 msgid "On the Python side, there should be no downside to this change." msgstr "" #: whatsnew/3.3.rst:220 msgid "" "On the C API side, :pep:`393` is fully backward compatible. The legacy API " "should remain available at least five years. Applications using the legacy " "API will not fully benefit of the memory reduction, or - worse - may use a " "bit more memory, because Python may have to maintain two versions of each " "string (in the legacy format and in the new efficient storage)." msgstr "" #: whatsnew/3.3.rst:227 msgid "Functionality" msgstr "" #: whatsnew/3.3.rst:229 msgid "Changes introduced by :pep:`393` are the following:" msgstr "" #: whatsnew/3.3.rst:231 msgid "" "Python now always supports the full range of Unicode code points, including " "non-BMP ones (i.e. from ``U+0000`` to ``U+10FFFF``). The distinction " "between narrow and wide builds no longer exists and Python now behaves like " "a wide build, even under Windows." msgstr "" #: whatsnew/3.3.rst:236 msgid "" "With the death of narrow builds, the problems specific to narrow builds have " "also been fixed, for example:" msgstr "" #: whatsnew/3.3.rst:239 msgid "" ":func:`len` now always returns 1 for non-BMP characters, so " "``len('\\U0010FFFF') == 1``;" msgstr "" #: whatsnew/3.3.rst:242 msgid "" "surrogate pairs are not recombined in string literals, so " "``'\\uDBFF\\uDFFF' != '\\U0010FFFF'``;" msgstr "" #: whatsnew/3.3.rst:245 msgid "" "indexing or slicing non-BMP characters returns the expected value, so " "``'\\U0010FFFF'[0]`` now returns ``'\\U0010FFFF'`` and not ``'\\uDBFF'``;" msgstr "" #: whatsnew/3.3.rst:248 msgid "" "all other functions in the standard library now correctly handle non-BMP " "code points." msgstr "" #: whatsnew/3.3.rst:251 msgid "" "The value of :data:`sys.maxunicode` is now always ``1114111`` (``0x10FFFF`` " "in hexadecimal). The :c:func:`PyUnicode_GetMax` function still returns " "either ``0xFFFF`` or ``0x10FFFF`` for backward compatibility, and it should " "not be used with the new Unicode API (see :issue:`13054`)." msgstr "" #: whatsnew/3.3.rst:256 msgid "The :file:`./configure` flag ``--with-wide-unicode`` has been removed." msgstr "" #: whatsnew/3.3.rst:259 msgid "Performance and resource usage" msgstr "" #: whatsnew/3.3.rst:261 msgid "" "The storage of Unicode strings now depends on the highest code point in the " "string:" msgstr "" #: whatsnew/3.3.rst:263 msgid "" "pure ASCII and Latin1 strings (``U+0000-U+00FF``) use 1 byte per code point;" msgstr "" #: whatsnew/3.3.rst:265 msgid "BMP strings (``U+0000-U+FFFF``) use 2 bytes per code point;" msgstr "" #: whatsnew/3.3.rst:267 msgid "non-BMP strings (``U+10000-U+10FFFF``) use 4 bytes per code point." msgstr "" #: whatsnew/3.3.rst:269 msgid "" "The net effect is that for most applications, memory usage of string storage " "should decrease significantly - especially compared to former wide unicode " "builds - as, in many cases, strings will be pure ASCII even in international " "contexts (because many strings store non-human language data, such as XML " "fragments, HTTP headers, JSON-encoded data, etc.). We also hope that it " "will, for the same reasons, increase CPU cache efficiency on non-trivial " "applications. The memory usage of Python 3.3 is two to three times smaller " "than Python 3.2, and a little bit better than Python 2.7, on a Django " "benchmark (see the PEP for details)." msgstr "" #: whatsnew/3.3.rst:283 msgid ":pep:`393` - Flexible String Representation" msgstr "" #: whatsnew/3.3.rst:283 msgid "" "PEP written by Martin von Löwis; implementation by Torsten Becker and Martin " "von Löwis." msgstr "" #: whatsnew/3.3.rst:290 msgid "PEP 397: Python Launcher for Windows" msgstr "" #: whatsnew/3.3.rst:292 msgid "" "The Python 3.3 Windows installer now includes a ``py`` launcher application " "that can be used to launch Python applications in a version independent " "fashion." msgstr "" #: whatsnew/3.3.rst:296 msgid "" "This launcher is invoked implicitly when double-clicking ``*.py`` files. If " "only a single Python version is installed on the system, that version will " "be used to run the file. If multiple versions are installed, the most recent " "version is used by default, but this can be overridden by including a Unix-" "style \"shebang line\" in the Python script." msgstr "" #: whatsnew/3.3.rst:302 msgid "" "The launcher can also be used explicitly from the command line as the ``py`` " "application. Running ``py`` follows the same version selection rules as " "implicitly launching scripts, but a more specific version can be selected by " "passing appropriate arguments (such as ``-3`` to request Python 3 when " "Python 2 is also installed, or ``-2.6`` to specifically request an earlier " "Python version when a more recent version is installed)." msgstr "" #: whatsnew/3.3.rst:309 msgid "" "In addition to the launcher, the Windows installer now includes an option to " "add the newly installed Python to the system PATH. (Contributed by Brian " "Curtin in :issue:`3561`.)" msgstr "" #: whatsnew/3.3.rst:317 msgid ":pep:`397` - Python Launcher for Windows" msgstr "" #: whatsnew/3.3.rst:316 msgid "" "PEP written by Mark Hammond and Martin v. Löwis; implementation by Vinay " "Sajip." msgstr "" #: whatsnew/3.3.rst:319 msgid "Launcher documentation: :ref:`launcher`" msgstr "" #: whatsnew/3.3.rst:321 msgid "Installer PATH modification: :ref:`windows-path-mod`" msgstr "" #: whatsnew/3.3.rst:327 msgid "PEP 3151: Reworking the OS and IO exception hierarchy" msgstr "" #: whatsnew/3.3.rst:329 msgid "" "The hierarchy of exceptions raised by operating system errors is now both " "simplified and finer-grained." msgstr "" #: whatsnew/3.3.rst:332 msgid "" "You don't have to worry anymore about choosing the appropriate exception " "type between :exc:`OSError`, :exc:`IOError`, :exc:`EnvironmentError`, :exc:" "`WindowsError`, :exc:`mmap.error`, :exc:`socket.error` or :exc:`select." "error`. All these exception types are now only one: :exc:`OSError`. The " "other names are kept as aliases for compatibility reasons." msgstr "" #: whatsnew/3.3.rst:339 msgid "" "Also, it is now easier to catch a specific error condition. Instead of " "inspecting the ``errno`` attribute (or ``args[0]``) for a particular " "constant from the :mod:`errno` module, you can catch the adequate :exc:" "`OSError` subclass. The available subclasses are the following:" msgstr "" #: whatsnew/3.3.rst:344 msgid ":exc:`BlockingIOError`" msgstr ":exc:`BlockingIOError`" #: whatsnew/3.3.rst:345 msgid ":exc:`ChildProcessError`" msgstr ":exc:`ChildProcessError`" #: whatsnew/3.3.rst:346 msgid ":exc:`ConnectionError`" msgstr ":exc:`ConnectionError`" #: whatsnew/3.3.rst:347 msgid ":exc:`FileExistsError`" msgstr ":exc:`FileExistsError`" #: whatsnew/3.3.rst:348 msgid ":exc:`FileNotFoundError`" msgstr ":exc:`FileNotFoundError`" #: whatsnew/3.3.rst:349 msgid ":exc:`InterruptedError`" msgstr ":exc:`InterruptedError`" #: whatsnew/3.3.rst:350 msgid ":exc:`IsADirectoryError`" msgstr ":exc:`IsADirectoryError`" #: whatsnew/3.3.rst:351 msgid ":exc:`NotADirectoryError`" msgstr ":exc:`NotADirectoryError`" #: whatsnew/3.3.rst:352 msgid ":exc:`PermissionError`" msgstr ":exc:`PermissionError`" #: whatsnew/3.3.rst:353 msgid ":exc:`ProcessLookupError`" msgstr ":exc:`ProcessLookupError`" #: whatsnew/3.3.rst:354 msgid ":exc:`TimeoutError`" msgstr ":exc:`TimeoutError`" #: whatsnew/3.3.rst:356 msgid "And the :exc:`ConnectionError` itself has finer-grained subclasses:" msgstr "" #: whatsnew/3.3.rst:358 msgid ":exc:`BrokenPipeError`" msgstr ":exc:`BrokenPipeError`" #: whatsnew/3.3.rst:359 msgid ":exc:`ConnectionAbortedError`" msgstr ":exc:`ConnectionAbortedError`" #: whatsnew/3.3.rst:360 msgid ":exc:`ConnectionRefusedError`" msgstr ":exc:`ConnectionRefusedError`" #: whatsnew/3.3.rst:361 msgid ":exc:`ConnectionResetError`" msgstr ":exc:`ConnectionResetError`" #: whatsnew/3.3.rst:363 msgid "" "Thanks to the new exceptions, common usages of the :mod:`errno` can now be " "avoided. For example, the following code written for Python 3.2::" msgstr "" #: whatsnew/3.3.rst:379 msgid "" "can now be written without the :mod:`errno` import and without manual " "inspection of exception attributes::" msgstr "" #: whatsnew/3.3.rst:392 #, fuzzy msgid ":pep:`3151` - Reworking the OS and IO Exception Hierarchy" msgstr ":pep:`3151` -- Refonte de la hiérarchie des exceptions système et IO" #: whatsnew/3.3.rst:393 msgid "PEP written and implemented by Antoine Pitrou" msgstr "" #: whatsnew/3.3.rst:402 msgid "PEP 380: Syntax for Delegating to a Subgenerator" msgstr "" #: whatsnew/3.3.rst:404 msgid "" "PEP 380 adds the ``yield from`` expression, allowing a :term:`generator` to " "delegate part of its operations to another generator. This allows a section " "of code containing :keyword:`yield` to be factored out and placed in another " "generator. Additionally, the subgenerator is allowed to return with a value, " "and the value is made available to the delegating generator." msgstr "" #: whatsnew/3.3.rst:411 msgid "" "While designed primarily for use in delegating to a subgenerator, the " "``yield from`` expression actually allows delegation to arbitrary " "subiterators." msgstr "" #: whatsnew/3.3.rst:414 msgid "" "For simple iterators, ``yield from iterable`` is essentially just a " "shortened form of ``for item in iterable: yield item``::" msgstr "" #: whatsnew/3.3.rst:424 msgid "" "However, unlike an ordinary loop, ``yield from`` allows subgenerators to " "receive sent and thrown values directly from the calling scope, and return a " "final value to the outer generator::" msgstr "" #: whatsnew/3.3.rst:455 msgid "" "The main principle driving this change is to allow even generators that are " "designed to be used with the ``send`` and ``throw`` methods to be split into " "multiple subgenerators as easily as a single large function can be split " "into multiple subfunctions." msgstr "" #: whatsnew/3.3.rst:464 msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" msgstr ":pep:`380` -- Syntaxe pour déléguer à un sous-générateur" #: whatsnew/3.3.rst:463 msgid "" "PEP written by Greg Ewing; implementation by Greg Ewing, integrated into 3.3 " "by Renaud Blanch, Ryan Kelly and Nick Coghlan; documentation by Zbigniew " "Jędrzejewski-Szmek and Nick Coghlan" msgstr "" #: whatsnew/3.3.rst:469 msgid "PEP 409: Suppressing exception context" msgstr "" #: whatsnew/3.3.rst:471 msgid "" "PEP 409 introduces new syntax that allows the display of the chained " "exception context to be disabled. This allows cleaner error messages in " "applications that convert between exception types::" msgstr "" #: whatsnew/3.3.rst:490 msgid "" "Without the ``from None`` suffix to suppress the cause, the original " "exception would be displayed by default::" msgstr "" #: whatsnew/3.3.rst:514 msgid "" "No debugging capability is lost, as the original exception context remains " "available if needed (for example, if an intervening library has incorrectly " "suppressed valuable underlying details)::" msgstr "" #: whatsnew/3.3.rst:528 msgid ":pep:`409` - Suppressing exception context" msgstr "" #: whatsnew/3.3.rst:528 msgid "" "PEP written by Ethan Furman; implemented by Ethan Furman and Nick Coghlan." msgstr "" #: whatsnew/3.3.rst:533 msgid "PEP 414: Explicit Unicode literals" msgstr "" #: whatsnew/3.3.rst:535 msgid "" "To ease the transition from Python 2 for Unicode aware Python applications " "that make heavy use of Unicode literals, Python 3.3 once again supports the " "\"``u``\" prefix for string literals. This prefix has no semantic " "significance in Python 3, it is provided solely to reduce the number of " "purely mechanical changes in migrating to Python 3, making it easier for " "developers to focus on the more significant semantic changes (such as the " "stricter default separation of binary and text data)." msgstr "" #: whatsnew/3.3.rst:545 msgid ":pep:`414` - Explicit Unicode literals" msgstr "" #: whatsnew/3.3.rst:546 msgid "PEP written by Armin Ronacher." msgstr "" #: whatsnew/3.3.rst:550 msgid "PEP 3155: Qualified name for classes and functions" msgstr "" #: whatsnew/3.3.rst:552 msgid "" "Functions and class objects have a new ``__qualname__`` attribute " "representing the \"path\" from the module top-level to their definition. " "For global functions and classes, this is the same as ``__name__``. For " "other functions and classes, it provides better information about where they " "were actually defined, and how they might be accessible from the global " "scope." msgstr "" #: whatsnew/3.3.rst:558 msgid "Example with (non-bound) methods::" msgstr "" #: whatsnew/3.3.rst:568 msgid "Example with nested classes::" msgstr "" #: whatsnew/3.3.rst:584 msgid "Example with nested functions::" msgstr "" #: whatsnew/3.3.rst:596 msgid "" "The string representation of those objects is also changed to include the " "new, more precise information::" msgstr "" #: whatsnew/3.3.rst:606 msgid ":pep:`3155` - Qualified name for classes and functions" msgstr "" #: whatsnew/3.3.rst:607 msgid "PEP written and implemented by Antoine Pitrou." msgstr "" #: whatsnew/3.3.rst:613 msgid "PEP 412: Key-Sharing Dictionary" msgstr "" #: whatsnew/3.3.rst:615 msgid "" "Dictionaries used for the storage of objects' attributes are now able to " "share part of their internal storage between each other (namely, the part " "which stores the keys and their respective hashes). This reduces the memory " "consumption of programs creating many instances of non-builtin types." msgstr "" #: whatsnew/3.3.rst:622 msgid ":pep:`412` - Key-Sharing Dictionary" msgstr "" #: whatsnew/3.3.rst:623 msgid "PEP written and implemented by Mark Shannon." msgstr "" #: whatsnew/3.3.rst:627 msgid "PEP 362: Function Signature Object" msgstr "" #: whatsnew/3.3.rst:629 msgid "" "A new function :func:`inspect.signature` makes introspection of python " "callables easy and straightforward. A broad range of callables is " "supported: python functions, decorated or not, classes, and :func:`functools." "partial` objects. New classes :class:`inspect.Signature`, :class:`inspect." "Parameter` and :class:`inspect.BoundArguments` hold information about the " "call signatures, such as, annotations, default values, parameters kinds, and " "bound arguments, which considerably simplifies writing decorators and any " "code that validates or amends calling signatures or arguments." msgstr "" #: whatsnew/3.3.rst:641 msgid ":pep:`362`: - Function Signature Object" msgstr "" #: whatsnew/3.3.rst:641 msgid "" "PEP written by Brett Cannon, Yury Selivanov, Larry Hastings, Jiwon Seo; " "implemented by Yury Selivanov." msgstr "" #: whatsnew/3.3.rst:646 msgid "PEP 421: Adding sys.implementation" msgstr "" #: whatsnew/3.3.rst:648 msgid "" "A new attribute on the :mod:`sys` module exposes details specific to the " "implementation of the currently running interpreter. The initial set of " "attributes on :attr:`sys.implementation` are ``name``, ``version``, " "``hexversion``, and ``cache_tag``." msgstr "" #: whatsnew/3.3.rst:653 msgid "" "The intention of ``sys.implementation`` is to consolidate into one namespace " "the implementation-specific data used by the standard library. This allows " "different Python implementations to share a single standard library code " "base much more easily. In its initial state, ``sys.implementation`` holds " "only a small portion of the implementation-specific data. Over time that " "ratio will shift in order to make the standard library more portable." msgstr "" #: whatsnew/3.3.rst:660 msgid "" "One example of improved standard library portability is ``cache_tag``. As " "of Python 3.3, ``sys.implementation.cache_tag`` is used by :mod:`importlib` " "to support :pep:`3147` compliance. Any Python implementation that uses " "``importlib`` for its built-in import system may use ``cache_tag`` to " "control the caching behavior for modules." msgstr "" #: whatsnew/3.3.rst:667 msgid "SimpleNamespace" msgstr "" #: whatsnew/3.3.rst:669 msgid "" "The implementation of ``sys.implementation`` also introduces a new type to " "Python: :class:`types.SimpleNamespace`. In contrast to a mapping-based " "namespace, like :class:`dict`, ``SimpleNamespace`` is attribute-based, like :" "class:`object`. However, unlike ``object``, ``SimpleNamespace`` instances " "are writable. This means that you can add, remove, and modify the namespace " "through normal attribute access." msgstr "" #: whatsnew/3.3.rst:678 msgid ":pep:`421` - Adding sys.implementation" msgstr "" #: whatsnew/3.3.rst:679 msgid "PEP written and implemented by Eric Snow." msgstr "" #: whatsnew/3.3.rst:685 msgid "Using importlib as the Implementation of Import" msgstr "" #: whatsnew/3.3.rst:686 msgid "" ":issue:`2377` - Replace __import__ w/ importlib.__import__ :issue:`13959` - " "Re-implement parts of :mod:`imp` in pure Python :issue:`14605` - Make import " "machinery explicit :issue:`14646` - Require loaders set __loader__ and " "__package__" msgstr "" #: whatsnew/3.3.rst:691 msgid "" "The :func:`__import__` function is now powered by :func:`importlib." "__import__`. This work leads to the completion of \"phase 2\" of :pep:`302`. " "There are multiple benefits to this change. First, it has allowed for more " "of the machinery powering import to be exposed instead of being implicit and " "hidden within the C code. It also provides a single implementation for all " "Python VMs supporting Python 3.3 to use, helping to end any VM-specific " "deviations in import semantics. And finally it eases the maintenance of " "import, allowing for future growth to occur." msgstr "" #: whatsnew/3.3.rst:700 msgid "" "For the common user, there should be no visible change in semantics. For " "those whose code currently manipulates import or calls import " "programmatically, the code changes that might possibly be required are " "covered in the `Porting Python code`_ section of this document." msgstr "" #: whatsnew/3.3.rst:706 msgid "New APIs" msgstr "" #: whatsnew/3.3.rst:707 msgid "" "One of the large benefits of this work is the exposure of what goes into " "making the import statement work. That means the various importers that were " "once implicit are now fully exposed as part of the :mod:`importlib` package." msgstr "" #: whatsnew/3.3.rst:711 msgid "" "The abstract base classes defined in :mod:`importlib.abc` have been expanded " "to properly delineate between :term:`meta path finders ` " "and :term:`path entry finders ` by introducing :class:" "`importlib.abc.MetaPathFinder` and :class:`importlib.abc.PathEntryFinder`, " "respectively. The old ABC of :class:`importlib.abc.Finder` is now only " "provided for backwards-compatibility and does not enforce any method " "requirements." msgstr "" #: whatsnew/3.3.rst:719 msgid "" "In terms of finders, :class:`importlib.machinery.FileFinder` exposes the " "mechanism used to search for source and bytecode files of a module. " "Previously this class was an implicit member of :attr:`sys.path_hooks`." msgstr "" #: whatsnew/3.3.rst:723 msgid "" "For loaders, the new abstract base class :class:`importlib.abc.FileLoader` " "helps write a loader that uses the file system as the storage mechanism for " "a module's code. The loader for source files (:class:`importlib.machinery." "SourceFileLoader`), sourceless bytecode files (:class:`importlib.machinery." "SourcelessFileLoader`), and extension modules (:class:`importlib.machinery." "ExtensionFileLoader`) are now available for direct use." msgstr "" #: whatsnew/3.3.rst:731 msgid "" ":exc:`ImportError` now has ``name`` and ``path`` attributes which are set " "when there is relevant data to provide. The message for failed imports will " "also provide the full name of the module now instead of just the tail end of " "the module's name." msgstr "" #: whatsnew/3.3.rst:736 msgid "" "The :func:`importlib.invalidate_caches` function will now call the method " "with the same name on all finders cached in :attr:`sys.path_importer_cache` " "to help clean up any stored state as necessary." msgstr "" #: whatsnew/3.3.rst:741 msgid "Visible Changes" msgstr "" #: whatsnew/3.3.rst:743 msgid "" "For potential required changes to code, see the `Porting Python code`_ " "section." msgstr "" #: whatsnew/3.3.rst:746 msgid "" "Beyond the expanse of what :mod:`importlib` now exposes, there are other " "visible changes to import. The biggest is that :attr:`sys.meta_path` and :" "attr:`sys.path_hooks` now store all of the meta path finders and path entry " "hooks used by import. Previously the finders were implicit and hidden " "within the C code of import instead of being directly exposed. This means " "that one can now easily remove or change the order of the various finders to " "fit one's needs." msgstr "" #: whatsnew/3.3.rst:753 msgid "" "Another change is that all modules have a ``__loader__`` attribute, storing " "the loader used to create the module. :pep:`302` has been updated to make " "this attribute mandatory for loaders to implement, so in the future once 3rd-" "party loaders have been updated people will be able to rely on the existence " "of the attribute. Until such time, though, import is setting the module post-" "load." msgstr "" #: whatsnew/3.3.rst:759 msgid "" "Loaders are also now expected to set the ``__package__`` attribute from :pep:" "`366`. Once again, import itself is already setting this on all loaders " "from :mod:`importlib` and import itself is setting the attribute post-load." msgstr "" #: whatsnew/3.3.rst:763 msgid "" "``None`` is now inserted into :attr:`sys.path_importer_cache` when no finder " "can be found on :attr:`sys.path_hooks`. Since :class:`imp.NullImporter` is " "not directly exposed on :attr:`sys.path_hooks` it could no longer be relied " "upon to always be available to use as a value representing no finder found." msgstr "" #: whatsnew/3.3.rst:768 msgid "" "All other changes relate to semantic changes which should be taken into " "consideration when updating code for Python 3.3, and thus should be read " "about in the `Porting Python code`_ section of this document." msgstr "" #: whatsnew/3.3.rst:772 msgid "(Implementation by Brett Cannon)" msgstr "" #: whatsnew/3.3.rst:776 msgid "Other Language Changes" msgstr "" #: whatsnew/3.3.rst:778 msgid "Some smaller changes made to the core Python language are:" msgstr "" #: whatsnew/3.3.rst:780 msgid "" "Added support for Unicode name aliases and named sequences. Both :func:" "`unicodedata.lookup()` and ``'\\N{...}'`` now resolve name aliases, and :" "func:`unicodedata.lookup()` resolves named sequences too." msgstr "" #: whatsnew/3.3.rst:784 msgid "(Contributed by Ezio Melotti in :issue:`12753`.)" msgstr "(Contribution par Ezio Melotti; :issue:`12753`.)" #: whatsnew/3.3.rst:786 msgid "Unicode database updated to UCD version 6.1.0" msgstr "" #: whatsnew/3.3.rst:788 msgid "" "Equality comparisons on :func:`range` objects now return a result reflecting " "the equality of the underlying sequences generated by those range objects. (:" "issue:`13201`)" msgstr "" #: whatsnew/3.3.rst:792 msgid "" "The ``count()``, ``find()``, ``rfind()``, ``index()`` and ``rindex()`` " "methods of :class:`bytes` and :class:`bytearray` objects now accept an " "integer between 0 and 255 as their first argument." msgstr "" #: whatsnew/3.3.rst:796 msgid "(Contributed by Petri Lehtinen in :issue:`12170`.)" msgstr "(Contribution par Petri Lehtinen; :issue:`12170`.)" #: whatsnew/3.3.rst:798 msgid "" "The ``rjust()``, ``ljust()``, and ``center()`` methods of :class:`bytes` " "and :class:`bytearray` now accept a :class:`bytearray` for the ``fill`` " "argument. (Contributed by Petri Lehtinen in :issue:`12380`.)" msgstr "" #: whatsnew/3.3.rst:802 msgid "" "New methods have been added to :class:`list` and :class:`bytearray`: " "``copy()`` and ``clear()`` (:issue:`10516`). Consequently, :class:" "`~collections.abc.MutableSequence` now also defines a :meth:`~collections." "abc.MutableSequence.clear` method (:issue:`11388`)." msgstr "" #: whatsnew/3.3.rst:807 msgid "" "Raw bytes literals can now be written ``rb\"...\"`` as well as ``br\"...\"``." msgstr "" #: whatsnew/3.3.rst:809 msgid "(Contributed by Antoine Pitrou in :issue:`13748`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`13748`.)" #: whatsnew/3.3.rst:811 msgid "" ":meth:`dict.setdefault` now does only one lookup for the given key, making " "it atomic when used with built-in types." msgstr "" #: whatsnew/3.3.rst:814 msgid "(Contributed by Filip Gruszczyński in :issue:`13521`.)" msgstr "(Contribution par Filip Gruszczyński; :issue:`13521`.)" #: whatsnew/3.3.rst:816 msgid "" "The error messages produced when a function call does not match the function " "signature have been significantly improved." msgstr "" #: whatsnew/3.3.rst:819 msgid "(Contributed by Benjamin Peterson.)" msgstr "(Contribution par Benjamin Peterson)" #: whatsnew/3.3.rst:823 msgid "A Finer-Grained Import Lock" msgstr "" #: whatsnew/3.3.rst:825 msgid "" "Previous versions of CPython have always relied on a global import lock. " "This led to unexpected annoyances, such as deadlocks when importing a module " "would trigger code execution in a different thread as a side-effect. Clumsy " "workarounds were sometimes employed, such as the :c:func:" "`PyImport_ImportModuleNoBlock` C API function." msgstr "" #: whatsnew/3.3.rst:831 msgid "" "In Python 3.3, importing a module takes a per-module lock. This correctly " "serializes importation of a given module from multiple threads (preventing " "the exposure of incompletely initialized modules), while eliminating the " "aforementioned annoyances." msgstr "" #: whatsnew/3.3.rst:836 msgid "(Contributed by Antoine Pitrou in :issue:`9260`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`9260`.)" #: whatsnew/3.3.rst:840 msgid "Builtin functions and types" msgstr "" #: whatsnew/3.3.rst:842 msgid "" ":func:`open` gets a new *opener* parameter: the underlying file descriptor " "for the file object is then obtained by calling *opener* with (*file*, " "*flags*). It can be used to use custom flags like :data:`os.O_CLOEXEC` for " "example. The ``'x'`` mode was added: open for exclusive creation, failing if " "the file already exists." msgstr "" #: whatsnew/3.3.rst:847 msgid "" ":func:`print`: added the *flush* keyword argument. If the *flush* keyword " "argument is true, the stream is forcibly flushed." msgstr "" #: whatsnew/3.3.rst:849 msgid "" ":func:`hash`: hash randomization is enabled by default, see :meth:`object." "__hash__` and :envvar:`PYTHONHASHSEED`." msgstr "" #: whatsnew/3.3.rst:851 msgid "" "The :class:`str` type gets a new :meth:`~str.casefold` method: return a " "casefolded copy of the string, casefolded strings may be used for caseless " "matching. For example, ``'ß'.casefold()`` returns ``'ss'``." msgstr "" #: whatsnew/3.3.rst:854 msgid "" "The sequence documentation has been substantially rewritten to better " "explain the binary/text sequence distinction and to provide specific " "documentation sections for the individual builtin sequence types (:issue:" "`4966`)." msgstr "" #: whatsnew/3.3.rst:861 msgid "New Modules" msgstr "" #: whatsnew/3.3.rst:864 msgid "faulthandler" msgstr "" #: whatsnew/3.3.rst:866 msgid "" "This new debug module :mod:`faulthandler` contains functions to dump Python " "tracebacks explicitly, on a fault (a crash like a segmentation fault), after " "a timeout, or on a user signal. Call :func:`faulthandler.enable` to install " "fault handlers for the :const:`SIGSEGV`, :const:`SIGFPE`, :const:`SIGABRT`, :" "const:`SIGBUS`, and :const:`SIGILL` signals. You can also enable them at " "startup by setting the :envvar:`PYTHONFAULTHANDLER` environment variable or " "by using :option:`-X` ``faulthandler`` command line option." msgstr "" #: whatsnew/3.3.rst:874 msgid "Example of a segmentation fault on Linux:" msgstr "" #: whatsnew/3.3.rst:890 msgid "ipaddress" msgstr "" #: whatsnew/3.3.rst:892 msgid "" "The new :mod:`ipaddress` module provides tools for creating and manipulating " "objects representing IPv4 and IPv6 addresses, networks and interfaces (i.e. " "an IP address associated with a specific IP subnet)." msgstr "" #: whatsnew/3.3.rst:896 msgid "(Contributed by Google and Peter Moody in :pep:`3144`.)" msgstr "(Contribution par Google et Peter Moody; :pep:`3144`)" #: whatsnew/3.3.rst:899 msgid "lzma" msgstr "" #: whatsnew/3.3.rst:901 msgid "" "The newly added :mod:`lzma` module provides data compression and " "decompression using the LZMA algorithm, including support for the ``.xz`` " "and ``.lzma`` file formats." msgstr "" #: whatsnew/3.3.rst:905 msgid "(Contributed by Nadeem Vawda and Per Øyvind Karlsen in :issue:`6715`.)" msgstr "" #: whatsnew/3.3.rst:909 msgid "Improved Modules" msgstr "" #: whatsnew/3.3.rst:912 msgid "abc" msgstr "" #: whatsnew/3.3.rst:914 msgid "" "Improved support for abstract base classes containing descriptors composed " "with abstract methods. The recommended approach to declaring abstract " "descriptors is now to provide :attr:`__isabstractmethod__` as a dynamically " "updated property. The built-in descriptors have been updated accordingly." msgstr "" #: whatsnew/3.3.rst:2245 msgid "" ":class:`abc.abstractproperty` has been deprecated, use :class:`property` " "with :func:`abc.abstractmethod` instead." msgstr "" #: whatsnew/3.3.rst:2247 msgid "" ":class:`abc.abstractclassmethod` has been deprecated, use :class:" "`classmethod` with :func:`abc.abstractmethod` instead." msgstr "" #: whatsnew/3.3.rst:2249 msgid "" ":class:`abc.abstractstaticmethod` has been deprecated, use :class:" "`staticmethod` with :func:`abc.abstractmethod` instead." msgstr "" #: whatsnew/3.3.rst:926 msgid "(Contributed by Darren Dale in :issue:`11610`.)" msgstr "(Contribution par Darren Dale; :issue:`11610`.)" #: whatsnew/3.3.rst:928 msgid "" ":meth:`abc.ABCMeta.register` now returns the registered subclass, which " "means it can now be used as a class decorator (:issue:`10868`)." msgstr "" #: whatsnew/3.3.rst:933 msgid "array" msgstr "*array*" #: whatsnew/3.3.rst:935 msgid "" "The :mod:`array` module supports the :c:expr:`long long` type using ``q`` " "and ``Q`` type codes." msgstr "" #: whatsnew/3.3.rst:938 msgid "(Contributed by Oren Tirosh and Hirokazu Yamamoto in :issue:`1172711`.)" msgstr "(Contribution par Oren Tirosh et Hirokazu Yamamoto; :issue:`1172711`.)" #: whatsnew/3.3.rst:942 msgid "base64" msgstr "base64" #: whatsnew/3.3.rst:944 msgid "" "ASCII-only Unicode strings are now accepted by the decoding functions of " "the :mod:`base64` modern interface. For example, ``base64." "b64decode('YWJj')`` returns ``b'abc'``. (Contributed by Catalin Iacob in :" "issue:`13641`.)" msgstr "" #: whatsnew/3.3.rst:950 msgid "binascii" msgstr "binascii" #: whatsnew/3.3.rst:952 msgid "" "In addition to the binary objects they normally accept, the ``a2b_`` " "functions now all also accept ASCII-only strings as input. (Contributed by " "Antoine Pitrou in :issue:`13637`.)" msgstr "" #: whatsnew/3.3.rst:958 msgid "bz2" msgstr "bz2" #: whatsnew/3.3.rst:960 msgid "" "The :mod:`bz2` module has been rewritten from scratch. In the process, " "several new features have been added:" msgstr "" #: whatsnew/3.3.rst:963 msgid "" "New :func:`bz2.open` function: open a bzip2-compressed file in binary or " "text mode." msgstr "" #: whatsnew/3.3.rst:966 msgid "" ":class:`bz2.BZ2File` can now read from and write to arbitrary file-like " "objects, by means of its constructor's *fileobj* argument." msgstr "" #: whatsnew/3.3.rst:969 msgid "(Contributed by Nadeem Vawda in :issue:`5863`.)" msgstr "(Contribution par Nadeem Vawda; :issue:`5863`.)" #: whatsnew/3.3.rst:971 msgid "" ":class:`bz2.BZ2File` and :func:`bz2.decompress` can now decompress multi-" "stream inputs (such as those produced by the :program:`pbzip2` tool). :class:" "`bz2.BZ2File` can now also be used to create this type of file, using the " "``'a'`` (append) mode." msgstr "" #: whatsnew/3.3.rst:976 msgid "(Contributed by Nir Aides in :issue:`1625`.)" msgstr "(Contribution par Nir Aides; :issue:`1625`.)" #: whatsnew/3.3.rst:978 msgid "" ":class:`bz2.BZ2File` now implements all of the :class:`io.BufferedIOBase` " "API, except for the :meth:`detach` and :meth:`truncate` methods." msgstr "" #: whatsnew/3.3.rst:983 msgid "codecs" msgstr "" #: whatsnew/3.3.rst:985 msgid "" "The :mod:`~encodings.mbcs` codec has been rewritten to handle correctly " "``replace`` and ``ignore`` error handlers on all Windows versions. The :mod:" "`~encodings.mbcs` codec now supports all error handlers, instead of only " "``replace`` to encode and ``ignore`` to decode." msgstr "" #: whatsnew/3.3.rst:990 msgid "" "A new Windows-only codec has been added: ``cp65001`` (:issue:`13216`). It is " "the Windows code page 65001 (Windows UTF-8, ``CP_UTF8``). For example, it " "is used by ``sys.stdout`` if the console output code page is set to cp65001 " "(e.g., using ``chcp 65001`` command)." msgstr "" #: whatsnew/3.3.rst:995 msgid "" "Multibyte CJK decoders now resynchronize faster. They only ignore the first " "byte of an invalid byte sequence. For example, ``b'\\xff\\n'." "decode('gb2312', 'replace')`` now returns a ``\\n`` after the replacement " "character." msgstr "" #: whatsnew/3.3.rst:999 msgid "(:issue:`12016`)" msgstr "" #: whatsnew/3.3.rst:1001 msgid "" "Incremental CJK codec encoders are no longer reset at each call to their " "encode() methods. For example::" msgstr "" #: whatsnew/3.3.rst:1009 msgid "" "This example gives ``b'~{Np~}~{J)~}~{l6~}~{HK~}~{!#~} Bye.'`` with older " "Python versions." msgstr "" #: whatsnew/3.3.rst:1012 msgid "(:issue:`12100`)" msgstr "" #: whatsnew/3.3.rst:1014 msgid "The ``unicode_internal`` codec has been deprecated." msgstr "" #: whatsnew/3.3.rst:1018 msgid "collections" msgstr "" #: whatsnew/3.3.rst:1020 msgid "" "Addition of a new :class:`~collections.ChainMap` class to allow treating a " "number of mappings as a single unit. (Written by Raymond Hettinger for :" "issue:`11089`, made public in :issue:`11297`.)" msgstr "" #: whatsnew/3.3.rst:1024 msgid "" "The abstract base classes have been moved in a new :mod:`collections.abc` " "module, to better differentiate between the abstract and the concrete " "collections classes. Aliases for ABCs are still present in the :mod:" "`collections` module to preserve existing imports. (:issue:`11085`)" msgstr "" #: whatsnew/3.3.rst:1031 msgid "" "The :class:`~collections.Counter` class now supports the unary ``+`` and ``-" "`` operators, as well as the in-place operators ``+=``, ``-=``, ``|=``, and " "``&=``. (Contributed by Raymond Hettinger in :issue:`13121`.)" msgstr "" #: whatsnew/3.3.rst:1037 msgid "contextlib" msgstr "contextlib" #: whatsnew/3.3.rst:1039 msgid "" ":class:`~contextlib.ExitStack` now provides a solid foundation for " "programmatic manipulation of context managers and similar cleanup " "functionality. Unlike the previous ``contextlib.nested`` API (which was " "deprecated and removed), the new API is designed to work correctly " "regardless of whether context managers acquire their resources in their " "``__init__`` method (for example, file objects) or in their ``__enter__`` " "method (for example, synchronisation objects from the :mod:`threading` " "module)." msgstr "" #: whatsnew/3.3.rst:1048 msgid "(:issue:`13585`)" msgstr "" #: whatsnew/3.3.rst:1052 msgid "crypt" msgstr "crypt" #: whatsnew/3.3.rst:1054 msgid "" "Addition of salt and modular crypt format (hashing method) and the :func:" "`~crypt.mksalt` function to the :mod:`crypt` module." msgstr "" #: whatsnew/3.3.rst:1057 msgid "(:issue:`10924`)" msgstr "" #: whatsnew/3.3.rst:1060 msgid "curses" msgstr "curses" #: whatsnew/3.3.rst:1062 msgid "" "If the :mod:`curses` module is linked to the ncursesw library, use Unicode " "functions when Unicode strings or characters are passed (e.g. :c:func:" "`waddwstr`), and bytes functions otherwise (e.g. :c:func:`waddstr`)." msgstr "" #: whatsnew/3.3.rst:1065 msgid "Use the locale encoding instead of ``utf-8`` to encode Unicode strings." msgstr "" #: whatsnew/3.3.rst:1066 msgid "" ":class:`curses.window` has a new :attr:`curses.window.encoding` attribute." msgstr "" #: whatsnew/3.3.rst:1067 msgid "" "The :class:`curses.window` class has a new :meth:`~curses.window.get_wch` " "method to get a wide character" msgstr "" #: whatsnew/3.3.rst:1069 msgid "" "The :mod:`curses` module has a new :meth:`~curses.unget_wch` function to " "push a wide character so the next :meth:`~curses.window.get_wch` will return " "it" msgstr "" #: whatsnew/3.3.rst:1073 msgid "(Contributed by Iñigo Serna in :issue:`6755`.)" msgstr "(Contribution par Iñigo Serna; :issue:`6755`.)" #: whatsnew/3.3.rst:1076 msgid "datetime" msgstr "datetime" #: whatsnew/3.3.rst:1078 msgid "" "Equality comparisons between naive and aware :class:`~datetime.datetime` " "instances now return :const:`False` instead of raising :exc:`TypeError` (:" "issue:`15006`)." msgstr "" #: whatsnew/3.3.rst:1081 msgid "" "New :meth:`datetime.datetime.timestamp` method: Return POSIX timestamp " "corresponding to the :class:`~datetime.datetime` instance." msgstr "" #: whatsnew/3.3.rst:1083 msgid "" "The :meth:`datetime.datetime.strftime` method supports formatting years " "older than 1000." msgstr "" #: whatsnew/3.3.rst:1085 msgid "" "The :meth:`datetime.datetime.astimezone` method can now be called without " "arguments to convert datetime instance to the system timezone." msgstr "" #: whatsnew/3.3.rst:1093 msgid "decimal" msgstr "" #: whatsnew/3.3.rst:1096 msgid ":issue:`7652` - integrate fast native decimal arithmetic." msgstr "" #: whatsnew/3.3.rst:1096 msgid "C-module and libmpdec written by Stefan Krah." msgstr "" #: whatsnew/3.3.rst:1098 msgid "" "The new C version of the decimal module integrates the high speed libmpdec " "library for arbitrary precision correctly rounded decimal floating point " "arithmetic. libmpdec conforms to IBM's General Decimal Arithmetic " "Specification." msgstr "" #: whatsnew/3.3.rst:1102 msgid "" "Performance gains range from 10x for database applications to 100x for " "numerically intensive applications. These numbers are expected gains for " "standard precisions used in decimal floating point arithmetic. Since the " "precision is user configurable, the exact figures may vary. For example, in " "integer bignum arithmetic the differences can be significantly higher." msgstr "" #: whatsnew/3.3.rst:1108 msgid "" "The following table is meant as an illustration. Benchmarks are available at " "https://www.bytereef.org/mpdecimal/quickstart.html." msgstr "" #: whatsnew/3.3.rst:1112 msgid "decimal.py" msgstr "decimal.py" #: whatsnew/3.3.rst:1112 msgid "_decimal" msgstr "" #: whatsnew/3.3.rst:1112 msgid "speedup" msgstr "" #: whatsnew/3.3.rst:1114 msgid "pi" msgstr "" #: whatsnew/3.3.rst:1114 msgid "42.02s" msgstr "" #: whatsnew/3.3.rst:1114 msgid "0.345s" msgstr "" #: whatsnew/3.3.rst:1114 msgid "120x" msgstr "120x" #: whatsnew/3.3.rst:1116 msgid "telco" msgstr "" #: whatsnew/3.3.rst:1116 msgid "172.19s" msgstr "" #: whatsnew/3.3.rst:1116 msgid "5.68s" msgstr "" #: whatsnew/3.3.rst:1116 msgid "30x" msgstr "30x" #: whatsnew/3.3.rst:1118 msgid "psycopg" msgstr "" #: whatsnew/3.3.rst:1118 msgid "3.57s" msgstr "" #: whatsnew/3.3.rst:1118 msgid "0.29s" msgstr "" #: whatsnew/3.3.rst:1118 msgid "12x" msgstr "12x" #: whatsnew/3.3.rst:1124 msgid "" "The :exc:`~decimal.FloatOperation` signal optionally enables stricter " "semantics for mixing floats and Decimals." msgstr "" #: whatsnew/3.3.rst:1127 msgid "" "If Python is compiled without threads, the C version automatically disables " "the expensive thread local context machinery. In this case, the variable :" "data:`~decimal.HAVE_THREADS` is set to ``False``." msgstr "" #: whatsnew/3.3.rst:1134 msgid "" "The C module has the following context limits, depending on the machine " "architecture:" msgstr "" #: whatsnew/3.3.rst:1138 msgid "32-bit" msgstr "32-bit" #: whatsnew/3.3.rst:1138 msgid "64-bit" msgstr "64-bit" #: whatsnew/3.3.rst:1140 msgid ":const:`MAX_PREC`" msgstr ":const:`MAX_PREC`" #: whatsnew/3.3.rst:1142 msgid ":const:`425000000`" msgstr ":const:`425000000`" #: whatsnew/3.3.rst:1142 msgid ":const:`999999999999999999`" msgstr ":const:`999999999999999999`" #: whatsnew/3.3.rst:1142 msgid ":const:`MAX_EMAX`" msgstr ":const:`MAX_EMAX`" #: whatsnew/3.3.rst:1144 msgid ":const:`MIN_EMIN`" msgstr ":const:`MIN_EMIN`" #: whatsnew/3.3.rst:1144 msgid ":const:`-425000000`" msgstr ":const:`-425000000`" #: whatsnew/3.3.rst:1144 msgid ":const:`-999999999999999999`" msgstr ":const:`-999999999999999999`" #: whatsnew/3.3.rst:1147 msgid "" "In the context templates (:class:`~decimal.DefaultContext`, :class:`~decimal." "BasicContext` and :class:`~decimal.ExtendedContext`) the magnitude of :attr:" "`~decimal.Context.Emax` and :attr:`~decimal.Context.Emin` has changed to :" "const:`999999`." msgstr "" #: whatsnew/3.3.rst:1152 msgid "" "The :class:`~decimal.Decimal` constructor in decimal.py does not observe the " "context limits and converts values with arbitrary exponents or precision " "exactly. Since the C version has internal limits, the following scheme is " "used: If possible, values are converted exactly, otherwise :exc:`~decimal." "InvalidOperation` is raised and the result is NaN. In the latter case it is " "always possible to use :meth:`~decimal.Context.create_decimal` in order to " "obtain a rounded or inexact value." msgstr "" #: whatsnew/3.3.rst:1161 msgid "" "The power function in decimal.py is always correctly rounded. In the C " "version, it is defined in terms of the correctly rounded :meth:`~decimal." "Decimal.exp` and :meth:`~decimal.Decimal.ln` functions, but the final result " "is only \"almost always correctly rounded\"." msgstr "" #: whatsnew/3.3.rst:1167 msgid "" "In the C version, the context dictionary containing the signals is a :class:" "`~collections.abc.MutableMapping`. For speed reasons, :attr:`~decimal." "Context.flags` and :attr:`~decimal.Context.traps` always refer to the same :" "class:`~collections.abc.MutableMapping` that the context was initialized " "with. If a new signal dictionary is assigned, :attr:`~decimal.Context.flags` " "and :attr:`~decimal.Context.traps` are updated with the new values, but they " "do not reference the RHS dictionary." msgstr "" #: whatsnew/3.3.rst:1177 msgid "" "Pickling a :class:`~decimal.Context` produces a different output in order to " "have a common interchange format for the Python and C versions." msgstr "" #: whatsnew/3.3.rst:1181 msgid "" "The order of arguments in the :class:`~decimal.Context` constructor has been " "changed to match the order displayed by :func:`repr`." msgstr "" #: whatsnew/3.3.rst:1185 msgid "" "The ``watchexp`` parameter in the :meth:`~decimal.Decimal.quantize` method " "is deprecated." msgstr "" #: whatsnew/3.3.rst:1192 msgid "email" msgstr "email" #: whatsnew/3.3.rst:1195 msgid "Policy Framework" msgstr "" #: whatsnew/3.3.rst:1197 msgid "" "The email package now has a :mod:`~email.policy` framework. A :class:" "`~email.policy.Policy` is an object with several methods and properties that " "control how the email package behaves. The primary policy for Python 3.3 is " "the :class:`~email.policy.Compat32` policy, which provides backward " "compatibility with the email package in Python 3.2. A ``policy`` can be " "specified when an email message is parsed by a :mod:`~email.parser`, or when " "a :class:`~email.message.Message` object is created, or when an email is " "serialized using a :mod:`~email.generator`. Unless overridden, a policy " "passed to a ``parser`` is inherited by all the ``Message`` object and sub-" "objects created by the ``parser``. By default a ``generator`` will use the " "policy of the ``Message`` object it is serializing. The default policy is :" "data:`~email.policy.compat32`." msgstr "" #: whatsnew/3.3.rst:1210 msgid "The minimum set of controls implemented by all ``policy`` objects are:" msgstr "" #: whatsnew/3.3.rst:1215 msgid "max_line_length" msgstr "" #: whatsnew/3.3.rst:1215 msgid "" "The maximum length, excluding the linesep character(s), individual lines may " "have when a ``Message`` is serialized. Defaults to 78." msgstr "" #: whatsnew/3.3.rst:1219 msgid "linesep" msgstr "" #: whatsnew/3.3.rst:1219 msgid "" "The character used to separate individual lines when a ``Message`` is " "serialized. Defaults to ``\\n``." msgstr "" #: whatsnew/3.3.rst:1222 msgid "cte_type" msgstr "cte_type" #: whatsnew/3.3.rst:1222 msgid "" "``7bit`` or ``8bit``. ``8bit`` applies only to a ``Bytes`` ``generator``, " "and means that non-ASCII may be used where allowed by the protocol (or where " "it exists in the original input)." msgstr "" #: whatsnew/3.3.rst:1227 msgid "raise_on_defect" msgstr "" #: whatsnew/3.3.rst:1227 msgid "" "Causes a ``parser`` to raise error when defects are encountered instead of " "adding them to the ``Message`` object's ``defects`` list." msgstr "" #: whatsnew/3.3.rst:1232 msgid "" "A new policy instance, with new settings, is created using the :meth:`~email." "policy.Policy.clone` method of policy objects. ``clone`` takes any of the " "above controls as keyword arguments. Any control not specified in the call " "retains its default value. Thus you can create a policy that uses " "``\\r\\n`` linesep characters like this::" msgstr "" #: whatsnew/3.3.rst:1240 msgid "" "Policies can be used to make the generation of messages in the format needed " "by your application simpler. Instead of having to remember to specify " "``linesep='\\r\\n'`` in all the places you call a ``generator``, you can " "specify it once, when you set the policy used by the ``parser`` or the " "``Message``, whichever your program uses to create ``Message`` objects. On " "the other hand, if you need to generate messages in multiple forms, you can " "still specify the parameters in the appropriate ``generator`` call. Or you " "can have custom policy instances for your different cases, and pass those in " "when you create the ``generator``." msgstr "" #: whatsnew/3.3.rst:1252 msgid "Provisional Policy with New Header API" msgstr "" #: whatsnew/3.3.rst:1254 msgid "" "While the policy framework is worthwhile all by itself, the main motivation " "for introducing it is to allow the creation of new policies that implement " "new features for the email package in a way that maintains backward " "compatibility for those who do not use the new policies. Because the new " "policies introduce a new API, we are releasing them in Python 3.3 as a :term:" "`provisional policy `. Backwards incompatible changes " "(up to and including removal of the code) may occur if deemed necessary by " "the core developers." msgstr "" #: whatsnew/3.3.rst:1262 msgid "" "The new policies are instances of :class:`~email.policy.EmailPolicy`, and " "add the following additional controls:" msgstr "" #: whatsnew/3.3.rst:1268 msgid "refold_source" msgstr "" #: whatsnew/3.3.rst:1268 msgid "" "Controls whether or not headers parsed by a :mod:`~email.parser` are " "refolded by the :mod:`~email.generator`. It can be ``none``, ``long``, or " "``all``. The default is ``long``, which means that source headers with a " "line longer than ``max_line_length`` get refolded. ``none`` means no line " "get refolded, and ``all`` means that all lines get refolded." msgstr "" #: whatsnew/3.3.rst:1277 msgid "header_factory" msgstr "" #: whatsnew/3.3.rst:1277 msgid "" "A callable that take a ``name`` and ``value`` and produces a custom header " "object." msgstr "" #: whatsnew/3.3.rst:1281 msgid "" "The ``header_factory`` is the key to the new features provided by the new " "policies. When one of the new policies is used, any header retrieved from a " "``Message`` object is an object produced by the ``header_factory``, and any " "time you set a header on a ``Message`` it becomes an object produced by " "``header_factory``. All such header objects have a ``name`` attribute equal " "to the header name. Address and Date headers have additional attributes " "that give you access to the parsed data of the header. This means you can " "now do things like this::" msgstr "" #: whatsnew/3.3.rst:1309 msgid "" "You will note that the unicode display name is automatically encoded as " "``utf-8`` when the message is serialized, but that when the header is " "accessed directly, you get the unicode version. This eliminates any need to " "deal with the :mod:`email.header` :meth:`~email.header.decode_header` or :" "meth:`~email.header.make_header` functions." msgstr "" #: whatsnew/3.3.rst:1315 msgid "You can also create addresses from parts::" msgstr "" #: whatsnew/3.3.rst:1325 msgid "Decoding to unicode is done automatically::" msgstr "" #: whatsnew/3.3.rst:1331 msgid "" "When you parse a message, you can use the ``addresses`` and ``groups`` " "attributes of the header objects to access the groups and individual " "addresses::" msgstr "" #: whatsnew/3.3.rst:1340 msgid "" "In summary, if you use one of the new policies, header manipulation works " "the way it ought to: your application works with unicode strings, and the " "email package transparently encodes and decodes the unicode to and from the " "RFC standard Content Transfer Encodings." msgstr "" #: whatsnew/3.3.rst:1346 msgid "Other API Changes" msgstr "" #: whatsnew/3.3.rst:1348 msgid "" "New :class:`~email.parser.BytesHeaderParser`, added to the :mod:`~email." "parser` module to complement :class:`~email.parser.HeaderParser` and " "complete the Bytes API." msgstr "" #: whatsnew/3.3.rst:1352 msgid "New utility functions:" msgstr "" #: whatsnew/3.3.rst:1354 msgid "" ":func:`~email.utils.format_datetime`: given a :class:`~datetime.datetime`, " "produce a string formatted for use in an email header." msgstr "" #: whatsnew/3.3.rst:1357 msgid "" ":func:`~email.utils.parsedate_to_datetime`: given a date string from an " "email header, convert it into an aware :class:`~datetime.datetime`, or a " "naive :class:`~datetime.datetime` if the offset is ``-0000``." msgstr "" #: whatsnew/3.3.rst:1361 msgid "" ":func:`~email.utils.localtime`: With no argument, returns the current local " "time as an aware :class:`~datetime.datetime` using the local :class:" "`~datetime.timezone`. Given an aware :class:`~datetime.datetime`, converts " "it into an aware :class:`~datetime.datetime` using the local :class:" "`~datetime.timezone`." msgstr "" #: whatsnew/3.3.rst:1369 msgid "ftplib" msgstr "" #: whatsnew/3.3.rst:1371 msgid "" ":class:`ftplib.FTP` now accepts a ``source_address`` keyword argument to " "specify the ``(host, port)`` to use as the source address in the bind call " "when creating the outgoing socket. (Contributed by Giampaolo Rodolà in :" "issue:`8594`.)" msgstr "" #: whatsnew/3.3.rst:1376 msgid "" "The :class:`~ftplib.FTP_TLS` class now provides a new :func:`~ftplib.FTP_TLS." "ccc` function to revert control channel back to plaintext. This can be " "useful to take advantage of firewalls that know how to handle NAT with non-" "secure FTP without opening fixed ports. (Contributed by Giampaolo Rodolà " "in :issue:`12139`.)" msgstr "" #: whatsnew/3.3.rst:1382 msgid "" "Added :meth:`ftplib.FTP.mlsd` method which provides a parsable directory " "listing format and deprecates :meth:`ftplib.FTP.nlst` and :meth:`ftplib.FTP." "dir`. (Contributed by Giampaolo Rodolà in :issue:`11072`.)" msgstr "" #: whatsnew/3.3.rst:1388 msgid "functools" msgstr "" #: whatsnew/3.3.rst:1390 msgid "" "The :func:`functools.lru_cache` decorator now accepts a ``typed`` keyword " "argument (that defaults to ``False`` to ensure that it caches values of " "different types that compare equal in separate cache slots. (Contributed by " "Raymond Hettinger in :issue:`13227`.)" msgstr "" #: whatsnew/3.3.rst:1397 msgid "gc" msgstr "" #: whatsnew/3.3.rst:1399 msgid "" "It is now possible to register callbacks invoked by the garbage collector " "before and after collection using the new :data:`~gc.callbacks` list." msgstr "" #: whatsnew/3.3.rst:1404 msgid "hmac" msgstr "" #: whatsnew/3.3.rst:1406 msgid "" "A new :func:`~hmac.compare_digest` function has been added to prevent side " "channel attacks on digests through timing analysis. (Contributed by Nick " "Coghlan and Christian Heimes in :issue:`15061`.)" msgstr "" #: whatsnew/3.3.rst:1412 msgid "http" msgstr "" #: whatsnew/3.3.rst:1414 msgid "" ":class:`http.server.BaseHTTPRequestHandler` now buffers the headers and " "writes them all at once when :meth:`~http.server.BaseHTTPRequestHandler." "end_headers` is called. A new method :meth:`~http.server." "BaseHTTPRequestHandler.flush_headers` can be used to directly manage when " "the accumulated headers are sent. (Contributed by Andrew Schaaf in :issue:" "`3709`.)" msgstr "" #: whatsnew/3.3.rst:1420 msgid "" ":class:`http.server` now produces valid ``HTML 4.01 strict`` output. " "(Contributed by Ezio Melotti in :issue:`13295`.)" msgstr "" #: whatsnew/3.3.rst:1423 msgid "" ":class:`http.client.HTTPResponse` now has a :meth:`~http.client.HTTPResponse." "readinto` method, which means it can be used as an :class:`io.RawIOBase` " "class. (Contributed by John Kuhn in :issue:`13464`.)" msgstr "" #: whatsnew/3.3.rst:1430 msgid "html" msgstr "" #: whatsnew/3.3.rst:1432 msgid "" ":class:`html.parser.HTMLParser` is now able to parse broken markup without " "raising errors, therefore the *strict* argument of the constructor and the :" "exc:`~html.parser.HTMLParseError` exception are now deprecated. The ability " "to parse broken markup is the result of a number of bug fixes that are also " "available on the latest bug fix releases of Python 2.7/3.2. (Contributed by " "Ezio Melotti in :issue:`15114`, and :issue:`14538`, :issue:`13993`, :issue:" "`13960`, :issue:`13358`, :issue:`1745761`, :issue:`755670`, :issue:`13357`, :" "issue:`12629`, :issue:`1200313`, :issue:`670664`, :issue:`13273`, :issue:" "`12888`, :issue:`7311`.)" msgstr "" #: whatsnew/3.3.rst:1442 msgid "" "A new :data:`~html.entities.html5` dictionary that maps HTML5 named " "character references to the equivalent Unicode character(s) (e.g. " "``html5['gt;'] == '>'``) has been added to the :mod:`html.entities` module. " "The dictionary is now also used by :class:`~html.parser.HTMLParser`. " "(Contributed by Ezio Melotti in :issue:`11113` and :issue:`15156`.)" msgstr "" #: whatsnew/3.3.rst:1450 msgid "imaplib" msgstr "" #: whatsnew/3.3.rst:1452 msgid "" "The :class:`~imaplib.IMAP4_SSL` constructor now accepts an SSLContext " "parameter to control parameters of the secure channel." msgstr "" #: whatsnew/3.3.rst:1455 msgid "(Contributed by Sijin Joseph in :issue:`8808`.)" msgstr "(Contribution par Sijin Joseph; :issue:`8808`.)" #: whatsnew/3.3.rst:1459 msgid "inspect" msgstr "" #: whatsnew/3.3.rst:1461 msgid "" "A new :func:`~inspect.getclosurevars` function has been added. This function " "reports the current binding of all names referenced from the function body " "and where those names were resolved, making it easier to verify correct " "internal state when testing code that relies on stateful closures." msgstr "" #: whatsnew/3.3.rst:1466 msgid "(Contributed by Meador Inge and Nick Coghlan in :issue:`13062`.)" msgstr "(Contribution par Meador Inge et Nick Coghlan; :issue:`13062`.)" #: whatsnew/3.3.rst:1468 msgid "" "A new :func:`~inspect.getgeneratorlocals` function has been added. This " "function reports the current binding of local variables in the generator's " "stack frame, making it easier to verify correct internal state when testing " "generators." msgstr "" #: whatsnew/3.3.rst:1473 msgid "(Contributed by Meador Inge in :issue:`15153`.)" msgstr "(Contribution par Meador Inge; :issue:`15153`.)" #: whatsnew/3.3.rst:1476 msgid "io" msgstr "" #: whatsnew/3.3.rst:1478 msgid "" "The :func:`~io.open` function has a new ``'x'`` mode that can be used to " "exclusively create a new file, and raise a :exc:`FileExistsError` if the " "file already exists. It is based on the C11 'x' mode to fopen()." msgstr "" #: whatsnew/3.3.rst:1482 msgid "(Contributed by David Townshend in :issue:`12760`.)" msgstr "(Contribution par David Townshend; :issue:`12760`.)" #: whatsnew/3.3.rst:1484 msgid "" "The constructor of the :class:`~io.TextIOWrapper` class has a new " "*write_through* optional argument. If *write_through* is ``True``, calls to :" "meth:`~io.TextIOWrapper.write` are guaranteed not to be buffered: any data " "written on the :class:`~io.TextIOWrapper` object is immediately handled to " "its underlying binary buffer." msgstr "" #: whatsnew/3.3.rst:1492 msgid "itertools" msgstr "" #: whatsnew/3.3.rst:1494 msgid "" ":func:`~itertools.accumulate` now takes an optional ``func`` argument for " "providing a user-supplied binary function." msgstr "" #: whatsnew/3.3.rst:1499 msgid "logging" msgstr "" #: whatsnew/3.3.rst:1501 msgid "" "The :func:`~logging.basicConfig` function now supports an optional " "``handlers`` argument taking an iterable of handlers to be added to the root " "logger." msgstr "" #: whatsnew/3.3.rst:1504 msgid "" "A class level attribute :attr:`~logging.handlers.SysLogHandler.append_nul` " "has been added to :class:`~logging.handlers.SysLogHandler` to allow control " "of the appending of the ``NUL`` (``\\000``) byte to syslog records, since " "for some daemons it is required while for others it is passed through to the " "log." msgstr "" #: whatsnew/3.3.rst:1512 msgid "math" msgstr "" #: whatsnew/3.3.rst:1514 msgid "" "The :mod:`math` module has a new function, :func:`~math.log2`, which " "returns the base-2 logarithm of *x*." msgstr "" #: whatsnew/3.3.rst:1517 msgid "(Written by Mark Dickinson in :issue:`11888`.)" msgstr "" #: whatsnew/3.3.rst:1521 msgid "mmap" msgstr "" #: whatsnew/3.3.rst:1523 msgid "" "The :meth:`~mmap.mmap.read` method is now more compatible with other file-" "like objects: if the argument is omitted or specified as ``None``, it " "returns the bytes from the current file position to the end of the mapping. " "(Contributed by Petri Lehtinen in :issue:`12021`.)" msgstr "" #: whatsnew/3.3.rst:1530 msgid "multiprocessing" msgstr "multiprocessing" #: whatsnew/3.3.rst:1532 msgid "" "The new :func:`multiprocessing.connection.wait` function allows polling " "multiple objects (such as connections, sockets and pipes) with a timeout. " "(Contributed by Richard Oudkerk in :issue:`12328`.)" msgstr "" #: whatsnew/3.3.rst:1536 msgid "" ":class:`multiprocessing.Connection` objects can now be transferred over " "multiprocessing connections. (Contributed by Richard Oudkerk in :issue:" "`4892`.)" msgstr "" #: whatsnew/3.3.rst:1540 msgid "" ":class:`multiprocessing.Process` now accepts a ``daemon`` keyword argument " "to override the default behavior of inheriting the ``daemon`` flag from the " "parent process (:issue:`6064`)." msgstr "" #: whatsnew/3.3.rst:1544 msgid "" "New attribute :data:`multiprocessing.Process.sentinel` allows a program to " "wait on multiple :class:`~multiprocessing.Process` objects at one time using " "the appropriate OS primitives (for example, :mod:`select` on posix systems)." msgstr "" #: whatsnew/3.3.rst:1549 msgid "" "New methods :meth:`multiprocessing.pool.Pool.starmap` and :meth:" "`~multiprocessing.pool.Pool.starmap_async` provide :func:`itertools.starmap` " "equivalents to the existing :meth:`multiprocessing.pool.Pool.map` and :meth:" "`~multiprocessing.pool.Pool.map_async` functions. (Contributed by Hynek " "Schlawack in :issue:`12708`.)" msgstr "" #: whatsnew/3.3.rst:1558 msgid "nntplib" msgstr "" #: whatsnew/3.3.rst:1560 msgid "" "The :class:`nntplib.NNTP` class now supports the context management protocol " "to unconditionally consume :exc:`socket.error` exceptions and to close the " "NNTP connection when done::" msgstr "" #: whatsnew/3.3.rst:1571 msgid "(Contributed by Giampaolo Rodolà in :issue:`9795`.)" msgstr "(Contribution par Giampaolo Rodolà; :issue:`9795`.)" #: whatsnew/3.3.rst:1575 msgid "os" msgstr "" #: whatsnew/3.3.rst:1577 msgid "" "The :mod:`os` module has a new :func:`~os.pipe2` function that makes it " "possible to create a pipe with :data:`~os.O_CLOEXEC` or :data:`~os." "O_NONBLOCK` flags set atomically. This is especially useful to avoid race " "conditions in multi-threaded programs." msgstr "" #: whatsnew/3.3.rst:1582 msgid "" "The :mod:`os` module has a new :func:`~os.sendfile` function which provides " "an efficient \"zero-copy\" way for copying data from one file (or socket) " "descriptor to another. The phrase \"zero-copy\" refers to the fact that all " "of the copying of data between the two descriptors is done entirely by the " "kernel, with no copying of data into userspace buffers. :func:`~os.sendfile` " "can be used to efficiently copy data from a file on disk to a network " "socket, e.g. for downloading a file." msgstr "" #: whatsnew/3.3.rst:1590 msgid "" "(Patch submitted by Ross Lagerwall and Giampaolo Rodolà in :issue:`10882`.)" msgstr "" #: whatsnew/3.3.rst:1592 msgid "" "To avoid race conditions like symlink attacks and issues with temporary " "files and directories, it is more reliable (and also faster) to manipulate " "file descriptors instead of file names. Python 3.3 enhances existing " "functions and introduces new functions to work on file descriptors (:issue:" "`4761`, :issue:`10755` and :issue:`14626`)." msgstr "" #: whatsnew/3.3.rst:1598 msgid "" "The :mod:`os` module has a new :func:`~os.fwalk` function similar to :func:" "`~os.walk` except that it also yields file descriptors referring to the " "directories visited. This is especially useful to avoid symlink races." msgstr "" #: whatsnew/3.3.rst:1602 msgid "" "The following functions get new optional *dir_fd* (:ref:`paths relative to " "directory descriptors `) and/or *follow_symlinks* (:ref:`not " "following symlinks `): :func:`~os.access`, :func:`~os." "chflags`, :func:`~os.chmod`, :func:`~os.chown`, :func:`~os.link`, :func:`~os." "lstat`, :func:`~os.mkdir`, :func:`~os.mkfifo`, :func:`~os.mknod`, :func:`~os." "open`, :func:`~os.readlink`, :func:`~os.remove`, :func:`~os.rename`, :func:" "`~os.replace`, :func:`~os.rmdir`, :func:`~os.stat`, :func:`~os.symlink`, :" "func:`~os.unlink`, :func:`~os.utime`. Platform support for using these " "parameters can be checked via the sets :data:`os.supports_dir_fd` and :data:" "`os.supports_follows_symlinks`." msgstr "" #: whatsnew/3.3.rst:1613 msgid "" "The following functions now support a file descriptor for their path " "argument: :func:`~os.chdir`, :func:`~os.chmod`, :func:`~os.chown`, :func:" "`~os.execve`, :func:`~os.listdir`, :func:`~os.pathconf`, :func:`~os.path." "exists`, :func:`~os.stat`, :func:`~os.statvfs`, :func:`~os.utime`. Platform " "support for this can be checked via the :data:`os.supports_fd` set." msgstr "" #: whatsnew/3.3.rst:1619 msgid "" ":func:`~os.access` accepts an ``effective_ids`` keyword argument to turn on " "using the effective uid/gid rather than the real uid/gid in the access " "check. Platform support for this can be checked via the :data:`~os." "supports_effective_ids` set." msgstr "" #: whatsnew/3.3.rst:1624 msgid "" "The :mod:`os` module has two new functions: :func:`~os.getpriority` and :" "func:`~os.setpriority`. They can be used to get or set process niceness/" "priority in a fashion similar to :func:`os.nice` but extended to all " "processes instead of just the current one." msgstr "" #: whatsnew/3.3.rst:1629 msgid "(Patch submitted by Giampaolo Rodolà in :issue:`10784`.)" msgstr "" #: whatsnew/3.3.rst:1631 msgid "" "The new :func:`os.replace` function allows cross-platform renaming of a file " "with overwriting the destination. With :func:`os.rename`, an existing " "destination file is overwritten under POSIX, but raises an error under " "Windows. (Contributed by Antoine Pitrou in :issue:`8828`.)" msgstr "" #: whatsnew/3.3.rst:1637 msgid "" "The stat family of functions (:func:`~os.stat`, :func:`~os.fstat`, and :func:" "`~os.lstat`) now support reading a file's timestamps with nanosecond " "precision. Symmetrically, :func:`~os.utime` can now write file timestamps " "with nanosecond precision. (Contributed by Larry Hastings in :issue:" "`14127`.)" msgstr "" #: whatsnew/3.3.rst:1643 msgid "" "The new :func:`os.get_terminal_size` function queries the size of the " "terminal attached to a file descriptor. See also :func:`shutil." "get_terminal_size`. (Contributed by Zbigniew Jędrzejewski-Szmek in :issue:" "`13609`.)" msgstr "" #: whatsnew/3.3.rst:1650 msgid "" "New functions to support Linux extended attributes (:issue:`12720`): :func:" "`~os.getxattr`, :func:`~os.listxattr`, :func:`~os.removexattr`, :func:`~os." "setxattr`." msgstr "" #: whatsnew/3.3.rst:1654 msgid "" "New interface to the scheduler. These functions control how a process is " "allocated CPU time by the operating system. New functions: :func:`~os." "sched_get_priority_max`, :func:`~os.sched_get_priority_min`, :func:`~os." "sched_getaffinity`, :func:`~os.sched_getparam`, :func:`~os." "sched_getscheduler`, :func:`~os.sched_rr_get_interval`, :func:`~os." "sched_setaffinity`, :func:`~os.sched_setparam`, :func:`~os." "sched_setscheduler`, :func:`~os.sched_yield`," msgstr "" #: whatsnew/3.3.rst:1663 msgid "New functions to control the file system:" msgstr "" #: whatsnew/3.3.rst:1665 msgid "" ":func:`~os.posix_fadvise`: Announces an intention to access data in a " "specific pattern thus allowing the kernel to make optimizations." msgstr "" #: whatsnew/3.3.rst:1667 msgid "" ":func:`~os.posix_fallocate`: Ensures that enough disk space is allocated for " "a file." msgstr "" #: whatsnew/3.3.rst:1669 msgid ":func:`~os.sync`: Force write of everything to disk." msgstr "" #: whatsnew/3.3.rst:1671 msgid "Additional new posix functions:" msgstr "" #: whatsnew/3.3.rst:1673 msgid "" ":func:`~os.lockf`: Apply, test or remove a POSIX lock on an open file " "descriptor." msgstr "" #: whatsnew/3.3.rst:1674 msgid "" ":func:`~os.pread`: Read from a file descriptor at an offset, the file offset " "remains unchanged." msgstr "" #: whatsnew/3.3.rst:1676 msgid "" ":func:`~os.pwrite`: Write to a file descriptor from an offset, leaving the " "file offset unchanged." msgstr "" #: whatsnew/3.3.rst:1678 msgid "" ":func:`~os.readv`: Read from a file descriptor into a number of writable " "buffers." msgstr "" #: whatsnew/3.3.rst:1679 msgid "" ":func:`~os.truncate`: Truncate the file corresponding to *path*, so that it " "is at most *length* bytes in size." msgstr "" #: whatsnew/3.3.rst:1681 msgid "" ":func:`~os.waitid`: Wait for the completion of one or more child processes." msgstr "" #: whatsnew/3.3.rst:1682 msgid "" ":func:`~os.writev`: Write the contents of *buffers* to a file descriptor, " "where *buffers* is an arbitrary sequence of buffers." msgstr "" #: whatsnew/3.3.rst:1684 msgid "" ":func:`~os.getgrouplist` (:issue:`9344`): Return list of group ids that " "specified user belongs to." msgstr "" #: whatsnew/3.3.rst:1687 msgid "" ":func:`~os.times` and :func:`~os.uname`: Return type changed from a tuple to " "a tuple-like object with named attributes." msgstr "" #: whatsnew/3.3.rst:1690 msgid "" "Some platforms now support additional constants for the :func:`~os.lseek` " "function, such as ``os.SEEK_HOLE`` and ``os.SEEK_DATA``." msgstr "" #: whatsnew/3.3.rst:1693 msgid "" "New constants :data:`~os.RTLD_LAZY`, :data:`~os.RTLD_NOW`, :data:`~os." "RTLD_GLOBAL`, :data:`~os.RTLD_LOCAL`, :data:`~os.RTLD_NODELETE`, :data:`~os." "RTLD_NOLOAD`, and :data:`~os.RTLD_DEEPBIND` are available on platforms that " "support them. These are for use with the :func:`sys.setdlopenflags` " "function, and supersede the similar constants defined in :mod:`ctypes` and :" "mod:`DLFCN`. (Contributed by Victor Stinner in :issue:`13226`.)" msgstr "" #: whatsnew/3.3.rst:1701 msgid "" ":func:`os.symlink` now accepts (and ignores) the ``target_is_directory`` " "keyword argument on non-Windows platforms, to ease cross-platform support." msgstr "" #: whatsnew/3.3.rst:1706 msgid "pdb" msgstr "" #: whatsnew/3.3.rst:1708 msgid "" "Tab-completion is now available not only for command names, but also their " "arguments. For example, for the ``break`` command, function and file names " "are completed." msgstr "" #: whatsnew/3.3.rst:1712 msgid "(Contributed by Georg Brandl in :issue:`14210`)" msgstr "(Contribution par Georg Brandl; :issue:`14210`.)" #: whatsnew/3.3.rst:1716 msgid "pickle" msgstr "" #: whatsnew/3.3.rst:1718 msgid "" ":class:`pickle.Pickler` objects now have an optional :attr:`~pickle.Pickler." "dispatch_table` attribute allowing per-pickler reduction functions to be set." msgstr "" #: whatsnew/3.3.rst:1722 msgid "(Contributed by Richard Oudkerk in :issue:`14166`.)" msgstr "(Contribution par Richard Oudkerk; :issue:`14166`.)" #: whatsnew/3.3.rst:1726 msgid "pydoc" msgstr "" #: whatsnew/3.3.rst:1728 msgid "" "The Tk GUI and the :func:`~pydoc.serve` function have been removed from the :" "mod:`pydoc` module: ``pydoc -g`` and :func:`~pydoc.serve` have been " "deprecated in Python 3.2." msgstr "" #: whatsnew/3.3.rst:1734 msgid "re" msgstr "" #: whatsnew/3.3.rst:1736 msgid "" ":class:`str` regular expressions now support ``\\u`` and ``\\U`` escapes." msgstr "" #: whatsnew/3.3.rst:1738 msgid "(Contributed by Serhiy Storchaka in :issue:`3665`.)" msgstr "(Contribution par Serhiy Storchaka; :issue:`3665`.)" #: whatsnew/3.3.rst:1742 msgid "sched" msgstr "" #: whatsnew/3.3.rst:1744 msgid "" ":meth:`~sched.scheduler.run` now accepts a *blocking* parameter which when " "set to false makes the method execute the scheduled events due to expire " "soonest (if any) and then return immediately. This is useful in case you " "want to use the :class:`~sched.scheduler` in non-blocking applications. " "(Contributed by Giampaolo Rodolà in :issue:`13449`.)" msgstr "" #: whatsnew/3.3.rst:1750 msgid "" ":class:`~sched.scheduler` class can now be safely used in multi-threaded " "environments. (Contributed by Josiah Carlson and Giampaolo Rodolà in :issue:" "`8684`.)" msgstr "" #: whatsnew/3.3.rst:1754 msgid "" "*timefunc* and *delayfunct* parameters of :class:`~sched.scheduler` class " "constructor are now optional and defaults to :func:`time.time` and :func:" "`time.sleep` respectively. (Contributed by Chris Clark in :issue:`13245`.)" msgstr "" #: whatsnew/3.3.rst:1759 msgid "" ":meth:`~sched.scheduler.enter` and :meth:`~sched.scheduler.enterabs` " "*argument* parameter is now optional. (Contributed by Chris Clark in :issue:" "`13245`.)" msgstr "" #: whatsnew/3.3.rst:1763 msgid "" ":meth:`~sched.scheduler.enter` and :meth:`~sched.scheduler.enterabs` now " "accept a *kwargs* parameter. (Contributed by Chris Clark in :issue:`13245`.)" msgstr "" #: whatsnew/3.3.rst:1769 msgid "select" msgstr "" #: whatsnew/3.3.rst:1771 msgid "" "Solaris and derivative platforms have a new class :class:`select.devpoll` " "for high performance asynchronous sockets via :file:`/dev/poll`. " "(Contributed by Jesús Cea Avión in :issue:`6397`.)" msgstr "" #: whatsnew/3.3.rst:1777 msgid "shlex" msgstr "" #: whatsnew/3.3.rst:1779 msgid "" "The previously undocumented helper function ``quote`` from the :mod:`pipes` " "modules has been moved to the :mod:`shlex` module and documented. :func:" "`~shlex.quote` properly escapes all characters in a string that might be " "otherwise given special meaning by the shell." msgstr "" #: whatsnew/3.3.rst:1786 msgid "shutil" msgstr "" #: whatsnew/3.3.rst:1788 msgid "New functions:" msgstr "Nouvelles fonctions :" #: whatsnew/3.3.rst:1790 msgid "" ":func:`~shutil.disk_usage`: provides total, used and free disk space " "statistics. (Contributed by Giampaolo Rodolà in :issue:`12442`.)" msgstr "" #: whatsnew/3.3.rst:1792 msgid "" ":func:`~shutil.chown`: allows one to change user and/or group of the given " "path also specifying the user/group names and not only their numeric ids. " "(Contributed by Sandro Tosi in :issue:`12191`.)" msgstr "" #: whatsnew/3.3.rst:1795 msgid "" ":func:`shutil.get_terminal_size`: returns the size of the terminal window to " "which the interpreter is attached. (Contributed by Zbigniew Jędrzejewski-" "Szmek in :issue:`13609`.)" msgstr "" #: whatsnew/3.3.rst:1799 msgid "" ":func:`~shutil.copy2` and :func:`~shutil.copystat` now preserve file " "timestamps with nanosecond precision on platforms that support it. They also " "preserve file \"extended attributes\" on Linux. (Contributed by Larry " "Hastings in :issue:`14127` and :issue:`15238`.)" msgstr "" #: whatsnew/3.3.rst:1804 msgid "" "Several functions now take an optional ``symlinks`` argument: when that " "parameter is true, symlinks aren't dereferenced and the operation instead " "acts on the symlink itself (or creates one, if relevant). (Contributed by " "Hynek Schlawack in :issue:`12715`.)" msgstr "" #: whatsnew/3.3.rst:1809 msgid "" "When copying files to a different file system, :func:`~shutil.move` now " "handles symlinks the way the posix ``mv`` command does, recreating the " "symlink rather than copying the target file contents. (Contributed by " "Jonathan Niehof in :issue:`9993`.) :func:`~shutil.move` now also returns " "the ``dst`` argument as its result." msgstr "" #: whatsnew/3.3.rst:1815 msgid "" ":func:`~shutil.rmtree` is now resistant to symlink attacks on platforms " "which support the new ``dir_fd`` parameter in :func:`os.open` and :func:`os." "unlink`. (Contributed by Martin von Löwis and Hynek Schlawack in :issue:" "`4489`.)" msgstr "" #: whatsnew/3.3.rst:1822 msgid "signal" msgstr "" #: whatsnew/3.3.rst:1824 msgid "The :mod:`signal` module has new functions:" msgstr "Le module :mod:`signal` a de nouvelles fonctions :" #: whatsnew/3.3.rst:1826 msgid "" ":func:`~signal.pthread_sigmask`: fetch and/or change the signal mask of the " "calling thread (Contributed by Jean-Paul Calderone in :issue:`8407`);" msgstr "" #: whatsnew/3.3.rst:1828 msgid ":func:`~signal.pthread_kill`: send a signal to a thread;" msgstr "" #: whatsnew/3.3.rst:1829 msgid ":func:`~signal.sigpending`: examine pending functions;" msgstr "" #: whatsnew/3.3.rst:1830 msgid ":func:`~signal.sigwait`: wait a signal;" msgstr "" #: whatsnew/3.3.rst:1831 msgid "" ":func:`~signal.sigwaitinfo`: wait for a signal, returning detailed " "information about it;" msgstr "" #: whatsnew/3.3.rst:1833 msgid "" ":func:`~signal.sigtimedwait`: like :func:`~signal.sigwaitinfo` but with a " "timeout." msgstr "" #: whatsnew/3.3.rst:1836 msgid "" "The signal handler writes the signal number as a single byte instead of a " "nul byte into the wakeup file descriptor. So it is possible to wait more " "than one signal and know which signals were raised." msgstr "" #: whatsnew/3.3.rst:1840 msgid "" ":func:`signal.signal` and :func:`signal.siginterrupt` raise an OSError, " "instead of a RuntimeError: OSError has an errno attribute." msgstr "" #: whatsnew/3.3.rst:1845 msgid "smtpd" msgstr "smtpd" #: whatsnew/3.3.rst:1847 msgid "" "The :mod:`smtpd` module now supports :rfc:`5321` (extended SMTP) and :rfc:" "`1870` (size extension). Per the standard, these extensions are enabled if " "and only if the client initiates the session with an ``EHLO`` command." msgstr "" #: whatsnew/3.3.rst:1851 msgid "" "(Initial ``ELHO`` support by Alberto Trevino. Size extension by Juhana " "Jauhiainen. Substantial additional work on the patch contributed by Michele " "Orrù and Dan Boswell. :issue:`8739`)" msgstr "" #: whatsnew/3.3.rst:1857 msgid "smtplib" msgstr "" #: whatsnew/3.3.rst:1859 msgid "" "The :class:`~smtplib.SMTP`, :class:`~smtplib.SMTP_SSL`, and :class:`~smtplib." "LMTP` classes now accept a ``source_address`` keyword argument to specify " "the ``(host, port)`` to use as the source address in the bind call when " "creating the outgoing socket. (Contributed by Paulo Scardine in :issue:" "`11281`.)" msgstr "" #: whatsnew/3.3.rst:1865 msgid "" ":class:`~smtplib.SMTP` now supports the context management protocol, " "allowing an ``SMTP`` instance to be used in a ``with`` statement. " "(Contributed by Giampaolo Rodolà in :issue:`11289`.)" msgstr "" #: whatsnew/3.3.rst:1869 msgid "" "The :class:`~smtplib.SMTP_SSL` constructor and the :meth:`~smtplib.SMTP." "starttls` method now accept an SSLContext parameter to control parameters of " "the secure channel. (Contributed by Kasun Herath in :issue:`8809`.)" msgstr "" #: whatsnew/3.3.rst:1875 msgid "socket" msgstr "" #: whatsnew/3.3.rst:1877 msgid "" "The :class:`~socket.socket` class now exposes additional methods to process " "ancillary data when supported by the underlying platform:" msgstr "" #: whatsnew/3.3.rst:1880 msgid ":func:`~socket.socket.sendmsg`" msgstr ":func:`~socket.socket.sendmsg`" #: whatsnew/3.3.rst:1881 msgid ":func:`~socket.socket.recvmsg`" msgstr ":func:`~socket.socket.recvmsg`" #: whatsnew/3.3.rst:1882 msgid ":func:`~socket.socket.recvmsg_into`" msgstr ":func:`~socket.socket.recvmsg_into`" #: whatsnew/3.3.rst:1884 msgid "" "(Contributed by David Watson in :issue:`6560`, based on an earlier patch by " "Heiko Wundram)" msgstr "" #: whatsnew/3.3.rst:1887 msgid "" "The :class:`~socket.socket` class now supports the PF_CAN protocol family " "(https://en.wikipedia.org/wiki/Socketcan), on Linux (https://lwn.net/" "Articles/253425)." msgstr "" #: whatsnew/3.3.rst:1891 msgid "" "(Contributed by Matthias Fuchs, updated by Tiago Gonçalves in :issue:" "`10141`.)" msgstr "" #: whatsnew/3.3.rst:1893 msgid "" "The :class:`~socket.socket` class now supports the PF_RDS protocol family " "(https://en.wikipedia.org/wiki/Reliable_Datagram_Sockets and https://oss." "oracle.com/projects/rds/)." msgstr "" #: whatsnew/3.3.rst:1897 msgid "" "The :class:`~socket.socket` class now supports the ``PF_SYSTEM`` protocol " "family on OS X. (Contributed by Michael Goderbauer in :issue:`13777`.)" msgstr "" #: whatsnew/3.3.rst:1900 msgid "" "New function :func:`~socket.sethostname` allows the hostname to be set on " "Unix systems if the calling process has sufficient privileges. (Contributed " "by Ross Lagerwall in :issue:`10866`.)" msgstr "" #: whatsnew/3.3.rst:1906 msgid "socketserver" msgstr "" #: whatsnew/3.3.rst:1908 msgid "" ":class:`~socketserver.BaseServer` now has an overridable method :meth:" "`~socketserver.BaseServer.service_actions` that is called by the :meth:" "`~socketserver.BaseServer.serve_forever` method in the service loop. :class:" "`~socketserver.ForkingMixIn` now uses this to clean up zombie child " "processes. (Contributed by Justin Warkentin in :issue:`11109`.)" msgstr "" #: whatsnew/3.3.rst:1916 msgid "sqlite3" msgstr "" #: whatsnew/3.3.rst:1918 msgid "" "New :class:`sqlite3.Connection` method :meth:`~sqlite3.Connection." "set_trace_callback` can be used to capture a trace of all sql commands " "processed by sqlite. (Contributed by Torsten Landschoff in :issue:`11688`.)" msgstr "" #: whatsnew/3.3.rst:1925 msgid "ssl" msgstr "" #: whatsnew/3.3.rst:1927 msgid "The :mod:`ssl` module has two new random generation functions:" msgstr "" #: whatsnew/3.3.rst:1929 msgid "" ":func:`~ssl.RAND_bytes`: generate cryptographically strong pseudo-random " "bytes." msgstr "" #: whatsnew/3.3.rst:1931 msgid ":func:`~ssl.RAND_pseudo_bytes`: generate pseudo-random bytes." msgstr "" #: whatsnew/3.3.rst:1933 msgid "(Contributed by Victor Stinner in :issue:`12049`.)" msgstr "(Contribution par Victor Stinner; :issue:`12049`.)" #: whatsnew/3.3.rst:1935 msgid "" "The :mod:`ssl` module now exposes a finer-grained exception hierarchy in " "order to make it easier to inspect the various kinds of errors. (Contributed " "by Antoine Pitrou in :issue:`11183`.)" msgstr "" #: whatsnew/3.3.rst:1939 msgid "" ":meth:`~ssl.SSLContext.load_cert_chain` now accepts a *password* argument to " "be used if the private key is encrypted. (Contributed by Adam Simpkins in :" "issue:`12803`.)" msgstr "" #: whatsnew/3.3.rst:1943 msgid "" "Diffie-Hellman key exchange, both regular and Elliptic Curve-based, is now " "supported through the :meth:`~ssl.SSLContext.load_dh_params` and :meth:`~ssl." "SSLContext.set_ecdh_curve` methods. (Contributed by Antoine Pitrou in :issue:" "`13626` and :issue:`13627`.)" msgstr "" #: whatsnew/3.3.rst:1948 msgid "" "SSL sockets have a new :meth:`~ssl.SSLSocket.get_channel_binding` method " "allowing the implementation of certain authentication mechanisms such as " "SCRAM-SHA-1-PLUS. (Contributed by Jacek Konieczny in :issue:`12551`.)" msgstr "" #: whatsnew/3.3.rst:1952 msgid "" "You can query the SSL compression algorithm used by an SSL socket, thanks to " "its new :meth:`~ssl.SSLSocket.compression` method. The new attribute :attr:" "`~ssl.OP_NO_COMPRESSION` can be used to disable compression. (Contributed by " "Antoine Pitrou in :issue:`13634`.)" msgstr "" #: whatsnew/3.3.rst:1957 msgid "" "Support has been added for the Next Protocol Negotiation extension using " "the :meth:`ssl.SSLContext.set_npn_protocols` method. (Contributed by Colin " "Marc in :issue:`14204`.)" msgstr "" #: whatsnew/3.3.rst:1961 msgid "" "SSL errors can now be introspected more easily thanks to :attr:`~ssl." "SSLError.library` and :attr:`~ssl.SSLError.reason` attributes. (Contributed " "by Antoine Pitrou in :issue:`14837`.)" msgstr "" #: whatsnew/3.3.rst:1965 msgid "" "The :func:`~ssl.get_server_certificate` function now supports IPv6. " "(Contributed by Charles-François Natali in :issue:`11811`.)" msgstr "" #: whatsnew/3.3.rst:1968 msgid "" "New attribute :attr:`~ssl.OP_CIPHER_SERVER_PREFERENCE` allows setting SSLv3 " "server sockets to use the server's cipher ordering preference rather than " "the client's (:issue:`13635`)." msgstr "" #: whatsnew/3.3.rst:1974 msgid "stat" msgstr "stat" #: whatsnew/3.3.rst:1976 msgid "" "The undocumented tarfile.filemode function has been moved to :func:`stat." "filemode`. It can be used to convert a file's mode to a string of the form '-" "rwxrwxrwx'." msgstr "" #: whatsnew/3.3.rst:1980 msgid "(Contributed by Giampaolo Rodolà in :issue:`14807`.)" msgstr "(Contribution par Giampaolo Rodolà; :issue:`14807`.)" #: whatsnew/3.3.rst:1984 msgid "struct" msgstr "struct" #: whatsnew/3.3.rst:1986 msgid "" "The :mod:`struct` module now supports ``ssize_t`` and ``size_t`` via the new " "codes ``n`` and ``N``, respectively. (Contributed by Antoine Pitrou in :" "issue:`3163`.)" msgstr "" #: whatsnew/3.3.rst:1992 msgid "subprocess" msgstr "subprocess" #: whatsnew/3.3.rst:1994 msgid "" "Command strings can now be bytes objects on posix platforms. (Contributed " "by Victor Stinner in :issue:`8513`.)" msgstr "" #: whatsnew/3.3.rst:1997 msgid "" "A new constant :data:`~subprocess.DEVNULL` allows suppressing output in a " "platform-independent fashion. (Contributed by Ross Lagerwall in :issue:" "`5870`.)" msgstr "" #: whatsnew/3.3.rst:2003 msgid "sys" msgstr "sys" #: whatsnew/3.3.rst:2005 msgid "" "The :mod:`sys` module has a new :data:`~sys.thread_info` :term:`named tuple` " "holding information about the thread implementation (:issue:`11223`)." msgstr "" #: whatsnew/3.3.rst:2011 msgid "tarfile" msgstr "" #: whatsnew/3.3.rst:2013 msgid "" ":mod:`tarfile` now supports ``lzma`` encoding via the :mod:`lzma` module. " "(Contributed by Lars Gustäbel in :issue:`5689`.)" msgstr "" #: whatsnew/3.3.rst:2018 msgid "tempfile" msgstr "" #: whatsnew/3.3.rst:2020 msgid "" ":class:`tempfile.SpooledTemporaryFile`\\'s :meth:`~tempfile." "SpooledTemporaryFile.truncate` method now accepts a ``size`` parameter. " "(Contributed by Ryan Kelly in :issue:`9957`.)" msgstr "" #: whatsnew/3.3.rst:2026 msgid "textwrap" msgstr "textwrap" #: whatsnew/3.3.rst:2028 msgid "" "The :mod:`textwrap` module has a new :func:`~textwrap.indent` that makes it " "straightforward to add a common prefix to selected lines in a block of text " "(:issue:`13857`)." msgstr "" #: whatsnew/3.3.rst:2034 msgid "threading" msgstr "threading" #: whatsnew/3.3.rst:2036 msgid "" ":class:`threading.Condition`, :class:`threading.Semaphore`, :class:" "`threading.BoundedSemaphore`, :class:`threading.Event`, and :class:" "`threading.Timer`, all of which used to be factory functions returning a " "class instance, are now classes and may be subclassed. (Contributed by Éric " "Araujo in :issue:`10968`.)" msgstr "" #: whatsnew/3.3.rst:2042 msgid "" "The :class:`threading.Thread` constructor now accepts a ``daemon`` keyword " "argument to override the default behavior of inheriting the ``daemon`` flag " "value from the parent thread (:issue:`6064`)." msgstr "" #: whatsnew/3.3.rst:2046 msgid "" "The formerly private function ``_thread.get_ident`` is now available as the " "public function :func:`threading.get_ident`. This eliminates several cases " "of direct access to the ``_thread`` module in the stdlib. Third party code " "that used ``_thread.get_ident`` should likewise be changed to use the new " "public interface." msgstr "" #: whatsnew/3.3.rst:2054 msgid "time" msgstr "time" #: whatsnew/3.3.rst:2056 msgid "The :pep:`418` added new functions to the :mod:`time` module:" msgstr "" #: whatsnew/3.3.rst:2058 msgid ":func:`~time.get_clock_info`: Get information on a clock." msgstr "" #: whatsnew/3.3.rst:2059 msgid "" ":func:`~time.monotonic`: Monotonic clock (cannot go backward), not affected " "by system clock updates." msgstr "" #: whatsnew/3.3.rst:2061 msgid "" ":func:`~time.perf_counter`: Performance counter with the highest available " "resolution to measure a short duration." msgstr "" #: whatsnew/3.3.rst:2063 msgid "" ":func:`~time.process_time`: Sum of the system and user CPU time of the " "current process." msgstr "" #: whatsnew/3.3.rst:2066 msgid "Other new functions:" msgstr "" #: whatsnew/3.3.rst:2068 msgid "" ":func:`~time.clock_getres`, :func:`~time.clock_gettime` and :func:`~time." "clock_settime` functions with ``CLOCK_xxx`` constants. (Contributed by " "Victor Stinner in :issue:`10278`.)" msgstr "" #: whatsnew/3.3.rst:2072 msgid "" "To improve cross platform consistency, :func:`~time.sleep` now raises a :exc:" "`ValueError` when passed a negative sleep value. Previously this was an " "error on posix, but produced an infinite sleep on Windows." msgstr "" #: whatsnew/3.3.rst:2078 msgid "types" msgstr "" #: whatsnew/3.3.rst:2080 msgid "" "Add a new :class:`types.MappingProxyType` class: Read-only proxy of a " "mapping. (:issue:`14386`)" msgstr "" #: whatsnew/3.3.rst:2084 msgid "" "The new functions :func:`types.new_class` and :func:`types.prepare_class` " "provide support for :pep:`3115` compliant dynamic type creation. (:issue:" "`14588`)" msgstr "" #: whatsnew/3.3.rst:2089 msgid "unittest" msgstr "unittest" #: whatsnew/3.3.rst:2091 msgid "" ":meth:`.assertRaises`, :meth:`.assertRaisesRegex`, :meth:`.assertWarns`, " "and :meth:`.assertWarnsRegex` now accept a keyword argument *msg* when used " "as context managers. (Contributed by Ezio Melotti and Winston Ewert in :" "issue:`10775`.)" msgstr "" #: whatsnew/3.3.rst:2096 msgid "" ":meth:`unittest.TestCase.run` now returns the :class:`~unittest.TestResult` " "object." msgstr "" #: whatsnew/3.3.rst:2101 msgid "urllib" msgstr "urllib" #: whatsnew/3.3.rst:2103 msgid "" "The :class:`~urllib.request.Request` class, now accepts a *method* argument " "used by :meth:`~urllib.request.Request.get_method` to determine what HTTP " "method should be used. For example, this will send a ``'HEAD'`` request::" msgstr "" #: whatsnew/3.3.rst:2109 msgid "(:issue:`1673007`)" msgstr "" #: whatsnew/3.3.rst:2113 msgid "webbrowser" msgstr "webbrowser" #: whatsnew/3.3.rst:2115 msgid "" "The :mod:`webbrowser` module supports more \"browsers\": Google Chrome " "(named :program:`chrome`, :program:`chromium`, :program:`chrome-browser` or :" "program:`chromium-browser` depending on the version and operating system), " "and the generic launchers :program:`xdg-open`, from the FreeDesktop.org " "project, and :program:`gvfs-open`, which is the default URI handler for " "GNOME 3. (The former contributed by Arnaud Calmettes in :issue:`13620`, the " "latter by Matthias Klose in :issue:`14493`.)" msgstr "" #: whatsnew/3.3.rst:2125 msgid "xml.etree.ElementTree" msgstr "xml.etree.ElementTree" #: whatsnew/3.3.rst:2127 msgid "" "The :mod:`xml.etree.ElementTree` module now imports its C accelerator by " "default; there is no longer a need to explicitly import :mod:`xml.etree." "cElementTree` (this module stays for backwards compatibility, but is now " "deprecated). In addition, the ``iter`` family of methods of :class:`~xml." "etree.ElementTree.Element` has been optimized (rewritten in C). The module's " "documentation has also been greatly improved with added examples and a more " "detailed reference." msgstr "" #: whatsnew/3.3.rst:2137 msgid "zlib" msgstr "zlib" #: whatsnew/3.3.rst:2139 msgid "" "New attribute :attr:`zlib.Decompress.eof` makes it possible to distinguish " "between a properly formed compressed stream and an incomplete or truncated " "one. (Contributed by Nadeem Vawda in :issue:`12646`.)" msgstr "" #: whatsnew/3.3.rst:2143 msgid "" "New attribute :attr:`zlib.ZLIB_RUNTIME_VERSION` reports the version string " "of the underlying ``zlib`` library that is loaded at runtime. (Contributed " "by Torsten Landschoff in :issue:`12306`.)" msgstr "" #: whatsnew/3.3.rst:2149 #, fuzzy msgid "Optimizations" msgstr "Optimisation" #: whatsnew/3.3.rst:2151 msgid "Major performance enhancements have been added:" msgstr "" #: whatsnew/3.3.rst:2153 msgid "" "Thanks to :pep:`393`, some operations on Unicode strings have been optimized:" msgstr "" #: whatsnew/3.3.rst:2155 msgid "the memory footprint is divided by 2 to 4 depending on the text" msgstr "" #: whatsnew/3.3.rst:2156 msgid "" "encode an ASCII string to UTF-8 doesn't need to encode characters anymore, " "the UTF-8 representation is shared with the ASCII representation" msgstr "" #: whatsnew/3.3.rst:2158 msgid "the UTF-8 encoder has been optimized" msgstr "l’encodeur UTF-8 a été optimisé" #: whatsnew/3.3.rst:2159 msgid "" "repeating a single ASCII letter and getting a substring of an ASCII string " "is 4 times faster" msgstr "" #: whatsnew/3.3.rst:2162 msgid "UTF-8 is now 2x to 4x faster. UTF-16 encoding is now up to 10x faster." msgstr "" #: whatsnew/3.3.rst:2164 msgid "" "(Contributed by Serhiy Storchaka, :issue:`14624`, :issue:`14738` and :issue:" "`15026`.)" msgstr "" #: whatsnew/3.3.rst:2169 msgid "Build and C API Changes" msgstr "" #: whatsnew/3.3.rst:2171 msgid "Changes to Python's build process and to the C API include:" msgstr "" #: whatsnew/3.3.rst:2173 msgid "New :pep:`3118` related function:" msgstr "" #: whatsnew/3.3.rst:2175 msgid ":c:func:`PyMemoryView_FromMemory`" msgstr ":c:func:`PyMemoryView_FromMemory`" #: whatsnew/3.3.rst:2177 msgid ":pep:`393` added new Unicode types, macros and functions:" msgstr "" #: whatsnew/3.3.rst:2179 #, fuzzy msgid "High-level API:" msgstr "Bibliothèques de haut-niveau :" #: whatsnew/3.3.rst:2181 msgid ":c:func:`PyUnicode_CopyCharacters`" msgstr ":c:func:`PyUnicode_CopyCharacters`" #: whatsnew/3.3.rst:2182 msgid ":c:func:`PyUnicode_FindChar`" msgstr ":c:func:`PyUnicode_FindChar`" #: whatsnew/3.3.rst:2183 msgid ":c:func:`PyUnicode_GetLength`, :c:macro:`PyUnicode_GET_LENGTH`" msgstr ":c:func:`PyUnicode_GetLength`, :c:macro:`PyUnicode_GET_LENGTH`" #: whatsnew/3.3.rst:2184 msgid ":c:func:`PyUnicode_New`" msgstr ":c:func:`PyUnicode_New`" #: whatsnew/3.3.rst:2185 msgid ":c:func:`PyUnicode_Substring`" msgstr ":c:func:`PyUnicode_Substring`" #: whatsnew/3.3.rst:2186 msgid ":c:func:`PyUnicode_ReadChar`, :c:func:`PyUnicode_WriteChar`" msgstr ":c:func:`PyUnicode_ReadChar`, :c:func:`PyUnicode_WriteChar`" #: whatsnew/3.3.rst:2188 #, fuzzy msgid "Low-level API:" msgstr "Bibliothèques de bas-niveau :" #: whatsnew/3.3.rst:2190 msgid ":c:type:`Py_UCS1`, :c:type:`Py_UCS2`, :c:type:`Py_UCS4` types" msgstr "" #: whatsnew/3.3.rst:2191 msgid ":c:type:`PyASCIIObject` and :c:type:`PyCompactUnicodeObject` structures" msgstr "" #: whatsnew/3.3.rst:2192 msgid ":c:macro:`PyUnicode_READY`" msgstr ":c:macro:`PyUnicode_READY`" #: whatsnew/3.3.rst:2193 msgid ":c:func:`PyUnicode_FromKindAndData`" msgstr ":c:func:`PyUnicode_FromKindAndData`" #: whatsnew/3.3.rst:2194 msgid ":c:func:`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsUCS4Copy`" msgstr "" #: whatsnew/3.3.rst:2195 msgid "" ":c:macro:`PyUnicode_DATA`, :c:macro:`PyUnicode_1BYTE_DATA`, :c:macro:" "`PyUnicode_2BYTE_DATA`, :c:macro:`PyUnicode_4BYTE_DATA`" msgstr "" #: whatsnew/3.3.rst:2197 msgid "" ":c:macro:`PyUnicode_KIND` with :c:type:`PyUnicode_Kind` enum: :c:data:" "`PyUnicode_WCHAR_KIND`, :c:data:`PyUnicode_1BYTE_KIND`, :c:data:" "`PyUnicode_2BYTE_KIND`, :c:data:`PyUnicode_4BYTE_KIND`" msgstr "" #: whatsnew/3.3.rst:2200 msgid "" ":c:macro:`PyUnicode_READ`, :c:macro:`PyUnicode_READ_CHAR`, :c:macro:" "`PyUnicode_WRITE`" msgstr "" #: whatsnew/3.3.rst:2201 msgid ":c:macro:`PyUnicode_MAX_CHAR_VALUE`" msgstr ":c:macro:`PyUnicode_MAX_CHAR_VALUE`" #: whatsnew/3.3.rst:2203 msgid "" ":c:macro:`PyArg_ParseTuple` now accepts a :class:`bytearray` for the ``c`` " "format (:issue:`12380`)." msgstr "" #: whatsnew/3.3.rst:2209 msgid "Deprecated" msgstr "" #: whatsnew/3.3.rst:2212 msgid "Unsupported Operating Systems" msgstr "" #: whatsnew/3.3.rst:2214 msgid "OS/2 and VMS are no longer supported due to the lack of a maintainer." msgstr "" #: whatsnew/3.3.rst:2216 msgid "" "Windows 2000 and Windows platforms which set ``COMSPEC`` to ``command.com`` " "are no longer supported due to maintenance burden." msgstr "" #: whatsnew/3.3.rst:2219 msgid "OSF support, which was deprecated in 3.2, has been completely removed." msgstr "" #: whatsnew/3.3.rst:2223 msgid "Deprecated Python modules, functions and methods" msgstr "" #: whatsnew/3.3.rst:2225 msgid "" "Passing a non-empty string to ``object.__format__()`` is deprecated, and " "will produce a :exc:`TypeError` in Python 3.4 (:issue:`9856`)." msgstr "" #: whatsnew/3.3.rst:2227 msgid "" "The ``unicode_internal`` codec has been deprecated because of the :pep:" "`393`, use UTF-8, UTF-16 (``utf-16-le`` or ``utf-16-be``), or UTF-32 " "(``utf-32-le`` or ``utf-32-be``)" msgstr "" #: whatsnew/3.3.rst:2230 msgid "" ":meth:`ftplib.FTP.nlst` and :meth:`ftplib.FTP.dir`: use :meth:`ftplib.FTP." "mlsd`" msgstr "" #: whatsnew/3.3.rst:2232 msgid "" ":func:`platform.popen`: use the :mod:`subprocess` module. Check especially " "the :ref:`subprocess-replacements` section (:issue:`11377`)." msgstr "" #: whatsnew/3.3.rst:2234 msgid "" ":issue:`13374`: The Windows bytes API has been deprecated in the :mod:`os` " "module. Use Unicode filenames, instead of bytes filenames, to not depend on " "the ANSI code page anymore and to support any filename." msgstr "" #: whatsnew/3.3.rst:2237 msgid "" ":issue:`13988`: The :mod:`xml.etree.cElementTree` module is deprecated. The " "accelerator is used automatically whenever available." msgstr "" #: whatsnew/3.3.rst:2239 msgid "" "The behaviour of :func:`time.clock` depends on the platform: use the new :" "func:`time.perf_counter` or :func:`time.process_time` function instead, " "depending on your requirements, to have a well defined behaviour." msgstr "" #: whatsnew/3.3.rst:2242 msgid "The :func:`os.stat_float_times` function is deprecated." msgstr "" #: whatsnew/3.3.rst:2243 msgid ":mod:`abc` module:" msgstr "" #: whatsnew/3.3.rst:2252 msgid ":mod:`importlib` package:" msgstr "" #: whatsnew/3.3.rst:2254 msgid "" ":meth:`importlib.abc.SourceLoader.path_mtime` is now deprecated in favour " "of :meth:`importlib.abc.SourceLoader.path_stats` as bytecode files now store " "both the modification time and size of the source file the bytecode file was " "compiled from." msgstr "" #: whatsnew/3.3.rst:2264 msgid "Deprecated functions and types of the C API" msgstr "" #: whatsnew/3.3.rst:2266 msgid "" "The :c:type:`Py_UNICODE` has been deprecated by :pep:`393` and will be " "removed in Python 4. All functions using this type are deprecated:" msgstr "" #: whatsnew/3.3.rst:2269 msgid "" "Unicode functions and methods using :c:type:`Py_UNICODE` and :c:expr:" "`Py_UNICODE*` types:" msgstr "" #: whatsnew/3.3.rst:2272 msgid "" ":c:macro:`PyUnicode_FromUnicode`: use :c:func:`PyUnicode_FromWideChar` or :c:" "func:`PyUnicode_FromKindAndData`" msgstr "" #: whatsnew/3.3.rst:2274 msgid "" ":c:macro:`PyUnicode_AS_UNICODE`, :c:func:`PyUnicode_AsUnicode`, :c:func:" "`PyUnicode_AsUnicodeAndSize`: use :c:func:`PyUnicode_AsWideCharString`" msgstr "" #: whatsnew/3.3.rst:2276 msgid "" ":c:macro:`PyUnicode_AS_DATA`: use :c:macro:`PyUnicode_DATA` with :c:macro:" "`PyUnicode_READ` and :c:macro:`PyUnicode_WRITE`" msgstr "" #: whatsnew/3.3.rst:2278 msgid "" ":c:macro:`PyUnicode_GET_SIZE`, :c:func:`PyUnicode_GetSize`: use :c:macro:" "`PyUnicode_GET_LENGTH` or :c:func:`PyUnicode_GetLength`" msgstr "" #: whatsnew/3.3.rst:2280 msgid "" ":c:macro:`PyUnicode_GET_DATA_SIZE`: use ``PyUnicode_GET_LENGTH(str) * " "PyUnicode_KIND(str)`` (only work on ready strings)" msgstr "" #: whatsnew/3.3.rst:2283 msgid "" ":c:func:`PyUnicode_AsUnicodeCopy`: use :c:func:`PyUnicode_AsUCS4Copy` or :c:" "func:`PyUnicode_AsWideCharString`" msgstr "" #: whatsnew/3.3.rst:2285 msgid ":c:func:`PyUnicode_GetMax`" msgstr ":c:func:`PyUnicode_GetMax`" #: whatsnew/3.3.rst:2288 msgid "Functions and macros manipulating Py_UNICODE* strings:" msgstr "" #: whatsnew/3.3.rst:2290 msgid "" ":c:macro:`Py_UNICODE_strlen`: use :c:func:`PyUnicode_GetLength` or :c:macro:" "`PyUnicode_GET_LENGTH`" msgstr "" #: whatsnew/3.3.rst:2292 msgid "" ":c:macro:`Py_UNICODE_strcat`: use :c:func:`PyUnicode_CopyCharacters` or :c:" "func:`PyUnicode_FromFormat`" msgstr "" ":c:macro:`Py_UNICODE_strcat` : utilisez :c:func:`PyUnicode_CopyCharacters` " "ou :c:func:`PyUnicode_FromFormat`" #: whatsnew/3.3.rst:2294 msgid "" ":c:macro:`Py_UNICODE_strcpy`, :c:macro:`Py_UNICODE_strncpy`, :c:macro:" "`Py_UNICODE_COPY`: use :c:func:`PyUnicode_CopyCharacters` or :c:func:" "`PyUnicode_Substring`" msgstr "" #: whatsnew/3.3.rst:2297 msgid ":c:macro:`Py_UNICODE_strcmp`: use :c:func:`PyUnicode_Compare`" msgstr ":c:macro:`Py_UNICODE_strcmp` : utilisez :c:func:`PyUnicode_Compare`" #: whatsnew/3.3.rst:2298 msgid ":c:macro:`Py_UNICODE_strncmp`: use :c:func:`PyUnicode_Tailmatch`" msgstr ":c:macro:`Py_UNICODE_strncmp` : utilisez :c:func:`PyUnicode_Tailmatch`" #: whatsnew/3.3.rst:2299 msgid "" ":c:macro:`Py_UNICODE_strchr`, :c:macro:`Py_UNICODE_strrchr`: use :c:func:" "`PyUnicode_FindChar`" msgstr "" ":c:macro:`Py_UNICODE_strchr`, :c:macro:`Py_UNICODE_strrchr` : utilisez :c:" "func:`PyUnicode_FindChar`" #: whatsnew/3.3.rst:2301 msgid ":c:macro:`Py_UNICODE_FILL`: use :c:func:`PyUnicode_Fill`" msgstr ":c:macro:`Py_UNICODE_FILL` : utilisez :c:func:`PyUnicode_Fill`" #: whatsnew/3.3.rst:2302 msgid ":c:macro:`Py_UNICODE_MATCH`" msgstr ":c:macro:`Py_UNICODE_MATCH`" #: whatsnew/3.3.rst:2304 msgid "Encoders:" msgstr "Encodeurs :" #: whatsnew/3.3.rst:2306 msgid ":c:func:`PyUnicode_Encode`: use :c:func:`PyUnicode_AsEncodedObject`" msgstr "" ":c:func:`PyUnicode_Encode` : utilisez :c:func:`PyUnicode_AsEncodedObject`" #: whatsnew/3.3.rst:2307 msgid ":c:func:`PyUnicode_EncodeUTF7`" msgstr ":c:func:`PyUnicode_EncodeUTF7`" #: whatsnew/3.3.rst:2308 msgid "" ":c:func:`PyUnicode_EncodeUTF8`: use :c:func:`PyUnicode_AsUTF8` or :c:func:" "`PyUnicode_AsUTF8String`" msgstr "" ":c:func:`PyUnicode_EncodeUTF8` : utilisez :c:func:`PyUnicode_AsUTF8` ou :c:" "func:`PyUnicode_AsUTF8String`" #: whatsnew/3.3.rst:2310 msgid ":c:func:`PyUnicode_EncodeUTF32`" msgstr ":c:func:`PyUnicode_EncodeUTF32`" #: whatsnew/3.3.rst:2311 msgid ":c:func:`PyUnicode_EncodeUTF16`" msgstr ":c:func:`PyUnicode_EncodeUTF16`" #: whatsnew/3.3.rst:2312 msgid "" ":c:func:`PyUnicode_EncodeUnicodeEscape` use :c:func:" "`PyUnicode_AsUnicodeEscapeString`" msgstr "" #: whatsnew/3.3.rst:2314 msgid "" ":c:func:`PyUnicode_EncodeRawUnicodeEscape` use :c:func:" "`PyUnicode_AsRawUnicodeEscapeString`" msgstr "" #: whatsnew/3.3.rst:2316 msgid "" ":c:func:`PyUnicode_EncodeLatin1`: use :c:func:`PyUnicode_AsLatin1String`" msgstr "" ":c:func:`PyUnicode_EncodeLatin1` : utilisez :c:func:" "`PyUnicode_AsLatin1String`" #: whatsnew/3.3.rst:2317 msgid ":c:func:`PyUnicode_EncodeASCII`: use :c:func:`PyUnicode_AsASCIIString`" msgstr "" ":c:func:`PyUnicode_EncodeASCII` : utilisez :c:func:`PyUnicode_AsASCIIString`" #: whatsnew/3.3.rst:2318 msgid ":c:func:`PyUnicode_EncodeCharmap`" msgstr ":c:func:`PyUnicode_EncodeCharmap`" #: whatsnew/3.3.rst:2319 msgid ":c:func:`PyUnicode_TranslateCharmap`" msgstr ":c:func:`PyUnicode_TranslateCharmap`" #: whatsnew/3.3.rst:2320 msgid "" ":c:func:`PyUnicode_EncodeMBCS`: use :c:func:`PyUnicode_AsMBCSString` or :c:" "func:`PyUnicode_EncodeCodePage` (with ``CP_ACP`` code_page)" msgstr "" #: whatsnew/3.3.rst:2322 msgid "" ":c:func:`PyUnicode_EncodeDecimal`, :c:func:" "`PyUnicode_TransformDecimalToASCII`" msgstr "" ":c:func:`PyUnicode_EncodeDecimal`, :c:func:" "`PyUnicode_TransformDecimalToASCII`" #: whatsnew/3.3.rst:2327 msgid "Deprecated features" msgstr "Fonctionnalités obsolètes" #: whatsnew/3.3.rst:2329 msgid "" "The :mod:`array` module's ``'u'`` format code is now deprecated and will be " "removed in Python 4 together with the rest of the (:c:type:`Py_UNICODE`) API." msgstr "" #: whatsnew/3.3.rst:2334 msgid "Porting to Python 3.3" msgstr "Portage vers Python 3.3" #: whatsnew/3.3.rst:2336 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" #: whatsnew/3.3.rst:2342 msgid "Porting Python code" msgstr "Portage de code Python" #: whatsnew/3.3.rst:2344 msgid "" "Hash randomization is enabled by default. Set the :envvar:`PYTHONHASHSEED` " "environment variable to ``0`` to disable hash randomization. See also the :" "meth:`object.__hash__` method." msgstr "" #: whatsnew/3.3.rst:2348 msgid "" ":issue:`12326`: On Linux, sys.platform doesn't contain the major version " "anymore. It is now always 'linux', instead of 'linux2' or 'linux3' depending " "on the Linux version used to build Python. Replace sys.platform == 'linux2' " "with sys.platform.startswith('linux'), or directly sys.platform == 'linux' " "if you don't need to support older Python versions." msgstr "" #: whatsnew/3.3.rst:2354 msgid "" ":issue:`13847`, :issue:`14180`: :mod:`time` and :mod:`datetime`: :exc:" "`OverflowError` is now raised instead of :exc:`ValueError` if a timestamp is " "out of range. :exc:`OSError` is now raised if C functions :c:func:`gmtime` " "or :c:func:`localtime` failed." msgstr "" #: whatsnew/3.3.rst:2359 msgid "" "The default finders used by import now utilize a cache of what is contained " "within a specific directory. If you create a Python source file or " "sourceless bytecode file, make sure to call :func:`importlib." "invalidate_caches` to clear out the cache for the finders to notice the new " "file." msgstr "" #: whatsnew/3.3.rst:2364 msgid "" ":exc:`ImportError` now uses the full name of the module that was attempted " "to be imported. Doctests that check ImportErrors' message will need to be " "updated to use the full name of the module instead of just the tail of the " "name." msgstr "" #: whatsnew/3.3.rst:2369 msgid "" "The *index* argument to :func:`__import__` now defaults to 0 instead of -1 " "and no longer support negative values. It was an oversight when :pep:`328` " "was implemented that the default value remained -1. If you need to continue " "to perform a relative import followed by an absolute import, then perform " "the relative import using an index of 1, followed by another import using an " "index of 0. It is preferred, though, that you use :func:`importlib." "import_module` rather than call :func:`__import__` directly." msgstr "" #: whatsnew/3.3.rst:2377 msgid "" ":func:`__import__` no longer allows one to use an index value other than 0 " "for top-level modules. E.g. ``__import__('sys', level=1)`` is now an error." msgstr "" #: whatsnew/3.3.rst:2380 msgid "" "Because :attr:`sys.meta_path` and :attr:`sys.path_hooks` now have finders on " "them by default, you will most likely want to use :meth:`list.insert` " "instead of :meth:`list.append` to add to those lists." msgstr "" #: whatsnew/3.3.rst:2384 msgid "" "Because ``None`` is now inserted into :attr:`sys.path_importer_cache`, if " "you are clearing out entries in the dictionary of paths that do not have a " "finder, you will need to remove keys paired with values of ``None`` **and** :" "class:`imp.NullImporter` to be backwards-compatible. This will lead to extra " "overhead on older versions of Python that re-insert ``None`` into :attr:`sys." "path_importer_cache` where it represents the use of implicit finders, but " "semantically it should not change anything." msgstr "" #: whatsnew/3.3.rst:2392 msgid "" ":class:`importlib.abc.Finder` no longer specifies a ``find_module()`` " "abstract method that must be implemented. If you were relying on subclasses " "to implement that method, make sure to check for the method's existence " "first. You will probably want to check for ``find_loader()`` first, though, " "in the case of working with :term:`path entry finders `." msgstr "" #: whatsnew/3.3.rst:2398 msgid "" ":mod:`pkgutil` has been converted to use :mod:`importlib` internally. This " "eliminates many edge cases where the old behaviour of the :pep:`302` import " "emulation failed to match the behaviour of the real import system. The " "import emulation itself is still present, but is now deprecated. The :func:" "`pkgutil.iter_importers` and :func:`pkgutil.walk_packages` functions special " "case the standard import hooks so they are still supported even though they " "do not provide the non-standard ``iter_modules()`` method." msgstr "" #: whatsnew/3.3.rst:2406 msgid "" "A longstanding RFC-compliance bug (:issue:`1079`) in the parsing done by :" "func:`email.header.decode_header` has been fixed. Code that uses the " "standard idiom to convert encoded headers into unicode " "(``str(make_header(decode_header(h))``) will see no change, but code that " "looks at the individual tuples returned by decode_header will see that " "whitespace that precedes or follows ``ASCII`` sections is now included in " "the ``ASCII`` section. Code that builds headers using ``make_header`` " "should also continue to work without change, since ``make_header`` continues " "to add whitespace between ``ASCII`` and non-``ASCII`` sections if it is not " "already present in the input strings." msgstr "" #: whatsnew/3.3.rst:2417 msgid "" ":func:`email.utils.formataddr` now does the correct content transfer " "encoding when passed non-``ASCII`` display names. Any code that depended on " "the previous buggy behavior that preserved the non-``ASCII`` unicode in the " "formatted output string will need to be changed (:issue:`1690608`)." msgstr "" #: whatsnew/3.3.rst:2422 msgid "" ":meth:`poplib.POP3.quit` may now raise protocol errors like all other " "``poplib`` methods. Code that assumes ``quit`` does not raise :exc:`poplib." "error_proto` errors may need to be changed if errors on ``quit`` are " "encountered by a particular application (:issue:`11291`)." msgstr "" #: whatsnew/3.3.rst:2427 msgid "" "The ``strict`` argument to :class:`email.parser.Parser`, deprecated since " "Python 2.4, has finally been removed." msgstr "" #: whatsnew/3.3.rst:2430 msgid "" "The deprecated method ``unittest.TestCase.assertSameElements`` has been " "removed." msgstr "" #: whatsnew/3.3.rst:2433 msgid "The deprecated variable ``time.accept2dyear`` has been removed." msgstr "" #: whatsnew/3.3.rst:2435 msgid "" "The deprecated ``Context._clamp`` attribute has been removed from the :mod:" "`decimal` module. It was previously replaced by the public attribute :attr:" "`~decimal.Context.clamp`. (See :issue:`8540`.)" msgstr "" #: whatsnew/3.3.rst:2439 msgid "" "The undocumented internal helper class ``SSLFakeFile`` has been removed " "from :mod:`smtplib`, since its functionality has long been provided directly " "by :meth:`socket.socket.makefile`." msgstr "" #: whatsnew/3.3.rst:2443 msgid "" "Passing a negative value to :func:`time.sleep` on Windows now raises an " "error instead of sleeping forever. It has always raised an error on posix." msgstr "" #: whatsnew/3.3.rst:2446 msgid "" "The ``ast.__version__`` constant has been removed. If you need to make " "decisions affected by the AST version, use :attr:`sys.version_info` to make " "the decision." msgstr "" #: whatsnew/3.3.rst:2450 msgid "" "Code that used to work around the fact that the :mod:`threading` module used " "factory functions by subclassing the private classes will need to change to " "subclass the now-public classes." msgstr "" #: whatsnew/3.3.rst:2454 msgid "" "The undocumented debugging machinery in the threading module has been " "removed, simplifying the code. This should have no effect on production " "code, but is mentioned here in case any application debug frameworks were " "interacting with it (:issue:`13550`)." msgstr "" #: whatsnew/3.3.rst:2461 msgid "Porting C code" msgstr "" #: whatsnew/3.3.rst:2463 msgid "" "In the course of changes to the buffer API the undocumented :c:member:" "`~Py_buffer.smalltable` member of the :c:type:`Py_buffer` structure has been " "removed and the layout of the :c:type:`PyMemoryViewObject` has changed." msgstr "" #: whatsnew/3.3.rst:2468 msgid "" "All extensions relying on the relevant parts in ``memoryobject.h`` or " "``object.h`` must be rebuilt." msgstr "" #: whatsnew/3.3.rst:2471 msgid "" "Due to :ref:`PEP 393 `, the :c:type:`Py_UNICODE` type and all " "functions using this type are deprecated (but will stay available for at " "least five years). If you were using low-level Unicode APIs to construct " "and access unicode objects and you want to benefit of the memory footprint " "reduction provided by :pep:`393`, you have to convert your code to the new :" "doc:`Unicode API <../c-api/unicode>`." msgstr "" #: whatsnew/3.3.rst:2478 msgid "" "However, if you only have been using high-level functions such as :c:func:" "`PyUnicode_Concat()`, :c:func:`PyUnicode_Join` or :c:func:" "`PyUnicode_FromFormat()`, your code will automatically take advantage of the " "new unicode representations." msgstr "" #: whatsnew/3.3.rst:2483 msgid ":c:func:`PyImport_GetMagicNumber` now returns ``-1`` upon failure." msgstr "" #: whatsnew/3.3.rst:2485 msgid "" "As a negative value for the *level* argument to :func:`__import__` is no " "longer valid, the same now holds for :c:func:`PyImport_ImportModuleLevel`. " "This also means that the value of *level* used by :c:func:" "`PyImport_ImportModuleEx` is now ``0`` instead of ``-1``." msgstr "" #: whatsnew/3.3.rst:2492 msgid "Building C extensions" msgstr "" #: whatsnew/3.3.rst:2494 msgid "" "The range of possible file names for C extensions has been narrowed. Very " "rarely used spellings have been suppressed: under POSIX, files named " "``xxxmodule.so``, ``xxxmodule.abi3.so`` and ``xxxmodule.cpython-*.so`` are " "no longer recognized as implementing the ``xxx`` module. If you had been " "generating such files, you have to switch to the other spellings (i.e., " "remove the ``module`` string from the file names)." msgstr "" #: whatsnew/3.3.rst:2502 msgid "(implemented in :issue:`14040`.)" msgstr "" #: whatsnew/3.3.rst:2506 msgid "Command Line Switch Changes" msgstr "" #: whatsnew/3.3.rst:2508 msgid "" "The -Q command-line flag and related artifacts have been removed. Code " "checking sys.flags.division_warning will need updating." msgstr "" #: whatsnew/3.3.rst:2511 msgid "(:issue:`10998`, contributed by Éric Araujo.)" msgstr "" #: whatsnew/3.3.rst:2513 msgid "" "When :program:`python` is started with :option:`-S`, ``import site`` will no " "longer add site-specific paths to the module search paths. In previous " "versions, it did." msgstr "" #: whatsnew/3.3.rst:2517 msgid "" "(:issue:`11591`, contributed by Carl Meyer with editions by Éric Araujo.)" msgstr "" #~ msgid "" #~ ":c:func:`PyUnicode_EncodeUnicodeEscape:` use :c:func:" #~ "`PyUnicode_AsUnicodeEscapeString`" #~ msgstr "" #~ ":c:func:`PyUnicode_EncodeUnicodeEscape:` utilisez :c:func:" #~ "`PyUnicode_AsUnicodeEscapeString`" #~ msgid "" #~ ":c:func:`PyUnicode_EncodeRawUnicodeEscape:` use :c:func:" #~ "`PyUnicode_AsRawUnicodeEscapeString`" #~ msgstr "" #~ ":c:func:`PyUnicode_EncodeRawUnicodeEscape:` utilisez :c:func:" #~ "`PyUnicode_AsRawUnicodeEscapeString`"