# 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: 2022-10-18 12:22+0200\n" "Last-Translator: Julien Palard \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.2.rst:3 msgid "What's New In Python 3.2" msgstr "Nouveautés de Python 3.2" #: whatsnew/3.2.rst:0 msgid "Author" msgstr "Auteur" #: whatsnew/3.2.rst:5 msgid "Raymond Hettinger" msgstr "Raymond Hettinger" #: whatsnew/3.2.rst:51 msgid "" "This article explains the new features in Python 3.2 as compared to 3.1. " "Python 3.2 was released on February 20, 2011. It focuses on a few highlights " "and gives a few examples. For full details, see the `Misc/NEWS `__ file." msgstr "" #: whatsnew/3.2.rst:60 msgid ":pep:`392` - Python 3.2 Release Schedule" msgstr "" #: whatsnew/3.2.rst:64 msgid "PEP 384: Defining a Stable ABI" msgstr "" #: whatsnew/3.2.rst:66 msgid "" "In the past, extension modules built for one Python version were often not " "usable with other Python versions. Particularly on Windows, every feature " "release of Python required rebuilding all extension modules that one wanted " "to use. This requirement was the result of the free access to Python " "interpreter internals that extension modules could use." msgstr "" #: whatsnew/3.2.rst:72 msgid "" "With Python 3.2, an alternative approach becomes available: extension " "modules which restrict themselves to a limited API (by defining " "Py_LIMITED_API) cannot use many of the internals, but are constrained to a " "set of API functions that are promised to be stable for several releases. As " "a consequence, extension modules built for 3.2 in that mode will also work " "with 3.3, 3.4, and so on. Extension modules that make use of details of " "memory structures can still be built, but will need to be recompiled for " "every feature release." msgstr "" #: whatsnew/3.2.rst:83 msgid ":pep:`384` - Defining a Stable ABI" msgstr "" #: whatsnew/3.2.rst:84 msgid "PEP written by Martin von Löwis." msgstr "" #: whatsnew/3.2.rst:88 msgid "PEP 389: Argparse Command Line Parsing Module" msgstr "" #: whatsnew/3.2.rst:90 msgid "" "A new module for command line parsing, :mod:`argparse`, was introduced to " "overcome the limitations of :mod:`optparse` which did not provide support " "for positional arguments (not just options), subcommands, required options " "and other common patterns of specifying and validating options." msgstr "" #: whatsnew/3.2.rst:95 msgid "" "This module has already had widespread success in the community as a third-" "party module. Being more fully featured than its predecessor, the :mod:" "`argparse` module is now the preferred module for command-line processing. " "The older module is still being kept available because of the substantial " "amount of legacy code that depends on it." msgstr "" #: whatsnew/3.2.rst:101 msgid "" "Here's an annotated example parser showing features like limiting results to " "a set of choices, specifying a *metavar* in the help screen, validating that " "one or more positional arguments is present, and making a required option::" msgstr "" #: whatsnew/3.2.rst:120 msgid "Example of calling the parser on a command string::" msgstr "" #: whatsnew/3.2.rst:131 msgid "Example of the parser's automatically generated help::" msgstr "" #: whatsnew/3.2.rst:150 msgid "" "An especially nice :mod:`argparse` feature is the ability to define " "subparsers, each with their own argument patterns and help displays::" msgstr "" #: whatsnew/3.2.rst:176 msgid ":pep:`389` - New Command Line Parsing Module" msgstr "" #: whatsnew/3.2.rst:176 msgid "PEP written by Steven Bethard." msgstr "" #: whatsnew/3.2.rst:178 msgid "" ":ref:`upgrading-optparse-code` for details on the differences from :mod:" "`optparse`." msgstr "" #: whatsnew/3.2.rst:182 msgid "PEP 391: Dictionary Based Configuration for Logging" msgstr "" #: whatsnew/3.2.rst:184 msgid "" "The :mod:`logging` module provided two kinds of configuration, one style " "with function calls for each option or another style driven by an external " "file saved in a :mod:`ConfigParser` format. Those options did not provide " "the flexibility to create configurations from JSON or YAML files, nor did " "they support incremental configuration, which is needed for specifying " "logger options from a command line." msgstr "" #: whatsnew/3.2.rst:191 msgid "" "To support a more flexible style, the module now offers :func:`logging." "config.dictConfig` for specifying logging configuration with plain Python " "dictionaries. The configuration options include formatters, handlers, " "filters, and loggers. Here's a working example of a configuration " "dictionary::" msgstr "" #: whatsnew/3.2.rst:215 msgid "" "If that dictionary is stored in a file called :file:`conf.json`, it can be " "loaded and called with code like this::" msgstr "" #: whatsnew/3.2.rst:230 msgid ":pep:`391` - Dictionary Based Configuration for Logging" msgstr "" #: whatsnew/3.2.rst:231 msgid "PEP written by Vinay Sajip." msgstr "" #: whatsnew/3.2.rst:235 msgid "PEP 3148: The ``concurrent.futures`` module" msgstr "" #: whatsnew/3.2.rst:237 msgid "" "Code for creating and managing concurrency is being collected in a new top-" "level namespace, *concurrent*. Its first member is a *futures* package " "which provides a uniform high-level interface for managing threads and " "processes." msgstr "" #: whatsnew/3.2.rst:241 msgid "" "The design for :mod:`concurrent.futures` was inspired by the *java.util." "concurrent* package. In that model, a running call and its result are " "represented by a :class:`~concurrent.futures.Future` object that abstracts " "features common to threads, processes, and remote procedure calls. That " "object supports status checks (running or done), timeouts, cancellations, " "adding callbacks, and access to results or exceptions." msgstr "" #: whatsnew/3.2.rst:248 msgid "" "The primary offering of the new module is a pair of executor classes for " "launching and managing calls. The goal of the executors is to make it " "easier to use existing tools for making parallel calls. They save the effort " "needed to setup a pool of resources, launch the calls, create a results " "queue, add time-out handling, and limit the total number of threads, " "processes, or remote procedure calls." msgstr "" #: whatsnew/3.2.rst:255 msgid "" "Ideally, each application should share a single executor across multiple " "components so that process and thread limits can be centrally managed. This " "solves the design challenge that arises when each component has its own " "competing strategy for resource management." msgstr "" #: whatsnew/3.2.rst:260 msgid "" "Both classes share a common interface with three methods: :meth:`~concurrent." "futures.Executor.submit` for scheduling a callable and returning a :class:" "`~concurrent.futures.Future` object; :meth:`~concurrent.futures.Executor." "map` for scheduling many asynchronous calls at a time, and :meth:" "`~concurrent.futures.Executor.shutdown` for freeing resources. The class is " "a :term:`context manager` and can be used in a :keyword:`with` statement to " "assure that resources are automatically released when currently pending " "futures are done executing." msgstr "" #: whatsnew/3.2.rst:269 msgid "" "A simple of example of :class:`~concurrent.futures.ThreadPoolExecutor` is a " "launch of four parallel threads for copying files::" msgstr "" #: whatsnew/3.2.rst:282 msgid ":pep:`3148` - Futures -- Execute Computations Asynchronously" msgstr "" #: whatsnew/3.2.rst:282 msgid "PEP written by Brian Quinlan." msgstr "" #: whatsnew/3.2.rst:284 msgid "" ":ref:`Code for Threaded Parallel URL reads`, an " "example using threads to fetch multiple web pages in parallel." msgstr "" #: whatsnew/3.2.rst:287 msgid "" ":ref:`Code for computing prime numbers in parallel`, an example demonstrating :class:`~concurrent.futures." "ProcessPoolExecutor`." msgstr "" #: whatsnew/3.2.rst:293 msgid "PEP 3147: PYC Repository Directories" msgstr "" #: whatsnew/3.2.rst:295 msgid "" "Python's scheme for caching bytecode in *.pyc* files did not work well in " "environments with multiple Python interpreters. If one interpreter " "encountered a cached file created by another interpreter, it would recompile " "the source and overwrite the cached file, thus losing the benefits of " "caching." msgstr "" #: whatsnew/3.2.rst:300 msgid "" "The issue of \"pyc fights\" has become more pronounced as it has become " "commonplace for Linux distributions to ship with multiple versions of " "Python. These conflicts also arise with CPython alternatives such as Unladen " "Swallow." msgstr "" #: whatsnew/3.2.rst:304 msgid "" "To solve this problem, Python's import machinery has been extended to use " "distinct filenames for each interpreter. Instead of Python 3.2 and Python " "3.3 and Unladen Swallow each competing for a file called \"mymodule.pyc\", " "they will now look for \"mymodule.cpython-32.pyc\", \"mymodule.cpython-33." "pyc\", and \"mymodule.unladen10.pyc\". And to prevent all of these new " "files from cluttering source directories, the *pyc* files are now collected " "in a \"__pycache__\" directory stored under the package directory." msgstr "" #: whatsnew/3.2.rst:312 msgid "" "Aside from the filenames and target directories, the new scheme has a few " "aspects that are visible to the programmer:" msgstr "" #: whatsnew/3.2.rst:315 msgid "" "Imported modules now have a :attr:`__cached__` attribute which stores the " "name of the actual file that was imported:" msgstr "" #: whatsnew/3.2.rst:322 msgid "" "The tag that is unique to each interpreter is accessible from the :mod:`imp` " "module:" msgstr "" #: whatsnew/3.2.rst:329 msgid "" "Scripts that try to deduce source filename from the imported file now need " "to be smarter. It is no longer sufficient to simply strip the \"c\" from a " "\".pyc\" filename. Instead, use the new functions in the :mod:`imp` module:" msgstr "" #: whatsnew/3.2.rst:338 msgid "" "The :mod:`py_compile` and :mod:`compileall` modules have been updated to " "reflect the new naming convention and target directory. The command-line " "invocation of *compileall* has new options: ``-i`` for specifying a list of " "files and directories to compile and ``-b`` which causes bytecode files to " "be written to their legacy location rather than *__pycache__*." msgstr "" #: whatsnew/3.2.rst:345 msgid "" "The :mod:`importlib.abc` module has been updated with new :term:`abstract " "base classes ` for loading bytecode files. The " "obsolete ABCs, :class:`~importlib.abc.PyLoader` and :class:`~importlib.abc." "PyPycLoader`, have been deprecated (instructions on how to stay Python 3.1 " "compatible are included with the documentation)." msgstr "" #: whatsnew/3.2.rst:353 msgid ":pep:`3147` - PYC Repository Directories" msgstr "" #: whatsnew/3.2.rst:385 msgid "PEP written by Barry Warsaw." msgstr "" #: whatsnew/3.2.rst:358 msgid "PEP 3149: ABI Version Tagged .so Files" msgstr "" #: whatsnew/3.2.rst:360 msgid "" "The PYC repository directory allows multiple bytecode cache files to be co-" "located. This PEP implements a similar mechanism for shared object files by " "giving them a common directory and distinct names for each version." msgstr "" #: whatsnew/3.2.rst:364 msgid "" "The common directory is \"pyshared\" and the file names are made distinct by " "identifying the Python implementation (such as CPython, PyPy, Jython, etc.), " "the major and minor version numbers, and optional build flags (such as \"d\" " "for debug, \"m\" for pymalloc, \"u\" for wide-unicode). For an arbitrary " "package \"foo\", you may see these files when the distribution package is " "installed::" msgstr "" #: whatsnew/3.2.rst:373 msgid "" "In Python itself, the tags are accessible from functions in the :mod:" "`sysconfig` module::" msgstr "" #: whatsnew/3.2.rst:384 msgid ":pep:`3149` - ABI Version Tagged .so Files" msgstr "" #: whatsnew/3.2.rst:389 msgid "PEP 3333: Python Web Server Gateway Interface v1.0.1" msgstr "" #: whatsnew/3.2.rst:391 msgid "" "This informational PEP clarifies how bytes/text issues are to be handled by " "the WSGI protocol. The challenge is that string handling in Python 3 is " "most conveniently handled with the :class:`str` type even though the HTTP " "protocol is itself bytes oriented." msgstr "" #: whatsnew/3.2.rst:396 msgid "" "The PEP differentiates so-called *native strings* that are used for request/" "response headers and metadata versus *byte strings* which are used for the " "bodies of requests and responses." msgstr "" #: whatsnew/3.2.rst:400 msgid "" "The *native strings* are always of type :class:`str` but are restricted to " "code points between *U+0000* through *U+00FF* which are translatable to " "bytes using *Latin-1* encoding. These strings are used for the keys and " "values in the environment dictionary and for response headers and statuses " "in the :func:`start_response` function. They must follow :rfc:`2616` with " "respect to encoding. That is, they must either be *ISO-8859-1* characters or " "use :rfc:`2047` MIME encoding." msgstr "" #: whatsnew/3.2.rst:408 msgid "" "For developers porting WSGI applications from Python 2, here are the salient " "points:" msgstr "" #: whatsnew/3.2.rst:411 msgid "" "If the app already used strings for headers in Python 2, no change is needed." msgstr "" #: whatsnew/3.2.rst:413 msgid "" "If instead, the app encoded output headers or decoded input headers, then " "the headers will need to be re-encoded to Latin-1. For example, an output " "header encoded in utf-8 was using ``h.encode('utf-8')`` now needs to convert " "from bytes to native strings using ``h.encode('utf-8').decode('latin-1')``." msgstr "" #: whatsnew/3.2.rst:418 msgid "" "Values yielded by an application or sent using the :meth:`write` method must " "be byte strings. The :func:`start_response` function and environ must use " "native strings. The two cannot be mixed." msgstr "" #: whatsnew/3.2.rst:422 msgid "" "For server implementers writing CGI-to-WSGI pathways or other CGI-style " "protocols, the users must to be able access the environment using native " "strings even though the underlying platform may have a different " "convention. To bridge this gap, the :mod:`wsgiref` module has a new " "function, :func:`wsgiref.handlers.read_environ` for transcoding CGI " "variables from :attr:`os.environ` into native strings and returning a new " "dictionary." msgstr "" #: whatsnew/3.2.rst:431 msgid ":pep:`3333` - Python Web Server Gateway Interface v1.0.1" msgstr "" #: whatsnew/3.2.rst:432 msgid "PEP written by Phillip Eby." msgstr "" #: whatsnew/3.2.rst:436 msgid "Other Language Changes" msgstr "" #: whatsnew/3.2.rst:438 msgid "Some smaller changes made to the core Python language are:" msgstr "" #: whatsnew/3.2.rst:440 msgid "" "String formatting for :func:`format` and :meth:`str.format` gained new " "capabilities for the format character **#**. Previously, for integers in " "binary, octal, or hexadecimal, it caused the output to be prefixed with " "'0b', '0o', or '0x' respectively. Now it can also handle floats, complex, " "and Decimal, causing the output to always have a decimal point even when no " "digits follow it." msgstr "" #: whatsnew/3.2.rst:452 msgid "" "(Suggested by Mark Dickinson and implemented by Eric Smith in :issue:`7094`.)" msgstr "" #: whatsnew/3.2.rst:454 msgid "" "There is also a new :meth:`str.format_map` method that extends the " "capabilities of the existing :meth:`str.format` method by accepting " "arbitrary :term:`mapping` objects. This new method makes it possible to use " "string formatting with any of Python's many dictionary-like objects such as :" "class:`~collections.defaultdict`, :class:`~shelve.Shelf`, :class:" "`~configparser.ConfigParser`, or :mod:`dbm`. It is also useful with custom :" "class:`dict` subclasses that normalize keys before look-up or that supply a :" "meth:`__missing__` method for unknown keys::" msgstr "" #: whatsnew/3.2.rst:481 msgid "" "(Suggested by Raymond Hettinger and implemented by Eric Smith in :issue:" "`6081`.)" msgstr "" #: whatsnew/3.2.rst:484 msgid "" "The interpreter can now be started with a quiet option, ``-q``, to prevent " "the copyright and version information from being displayed in the " "interactive mode. The option can be introspected using the :attr:`sys." "flags` attribute:" msgstr "" #: whatsnew/3.2.rst:496 msgid "(Contributed by Marcin Wojdyr in :issue:`1772833`)." msgstr "(Contribution par Marcin Wojdyr; :issue:`1772833`)." #: whatsnew/3.2.rst:498 msgid "" "The :func:`hasattr` function works by calling :func:`getattr` and detecting " "whether an exception is raised. This technique allows it to detect methods " "created dynamically by :meth:`__getattr__` or :meth:`__getattribute__` which " "would otherwise be absent from the class dictionary. Formerly, *hasattr* " "would catch any exception, possibly masking genuine errors. Now, *hasattr* " "has been tightened to only catch :exc:`AttributeError` and let other " "exceptions pass through::" msgstr "" #: whatsnew/3.2.rst:517 msgid "" "(Discovered by Yury Selivanov and fixed by Benjamin Peterson; :issue:`9666`.)" msgstr "" #: whatsnew/3.2.rst:519 msgid "" "The :func:`str` of a float or complex number is now the same as its :func:" "`repr`. Previously, the :func:`str` form was shorter but that just caused " "confusion and is no longer needed now that the shortest possible :func:" "`repr` is displayed by default:" msgstr "" #: whatsnew/3.2.rst:530 msgid "(Proposed and implemented by Mark Dickinson; :issue:`9337`.)" msgstr "" #: whatsnew/3.2.rst:532 msgid "" ":class:`memoryview` objects now have a :meth:`~memoryview.release()` method " "and they also now support the context management protocol. This allows " "timely release of any resources that were acquired when requesting a buffer " "from the original object." msgstr "" #: whatsnew/3.2.rst:541 msgid "(Added by Antoine Pitrou; :issue:`9757`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`9757`.)" #: whatsnew/3.2.rst:543 #, fuzzy msgid "" "Previously it was illegal to delete a name from the local namespace if it " "occurs as a free variable in a nested block::" msgstr "" "Auparavant, il était illégal de supprimer un nom dans l'espace des noms " "locaux si celui-ci apparaissait comme variable libre dans un bloc imbriqué ::" #: whatsnew/3.2.rst:552 msgid "" "This is now allowed. Remember that the target of an :keyword:`except` " "clause is cleared, so this code which used to work with Python 2.6, raised " "a :exc:`SyntaxError` with Python 3.1 and now works again::" msgstr "" #: whatsnew/3.2.rst:565 msgid "(See :issue:`4617`.)" msgstr "" #: whatsnew/3.2.rst:567 msgid "" "The internal :c:type:`structsequence` tool now creates subclasses of tuple. " "This means that C structures like those returned by :func:`os.stat`, :func:" "`time.gmtime`, and :attr:`sys.version_info` now work like a :term:`named " "tuple` and now work with functions and methods that expect a tuple as an " "argument. This is a big step forward in making the C structures as flexible " "as their pure Python counterparts:" msgstr "" #: whatsnew/3.2.rst:580 msgid "" "(Suggested by Arfrever Frehtes Taifersar Arahesis and implemented by " "Benjamin Peterson in :issue:`8413`.)" msgstr "" #: whatsnew/3.2.rst:583 msgid "" "Warnings are now easier to control using the :envvar:`PYTHONWARNINGS` " "environment variable as an alternative to using ``-W`` at the command line:" msgstr "" #: whatsnew/3.2.rst:590 msgid "" "(Suggested by Barry Warsaw and implemented by Philip Jenvey in :issue:" "`7301`.)" msgstr "" #: whatsnew/3.2.rst:592 msgid "" "A new warning category, :exc:`ResourceWarning`, has been added. It is " "emitted when potential issues with resource consumption or cleanup are " "detected. It is silenced by default in normal release builds but can be " "enabled through the means provided by the :mod:`warnings` module, or on the " "command line." msgstr "" #: whatsnew/3.2.rst:598 msgid "" "A :exc:`ResourceWarning` is issued at interpreter shutdown if the :data:`gc." "garbage` list isn't empty, and if :attr:`gc.DEBUG_UNCOLLECTABLE` is set, all " "uncollectable objects are printed. This is meant to make the programmer " "aware that their code contains object finalization issues." msgstr "" #: whatsnew/3.2.rst:603 msgid "" "A :exc:`ResourceWarning` is also issued when a :term:`file object` is " "destroyed without having been explicitly closed. While the deallocator for " "such object ensures it closes the underlying operating system resource " "(usually, a file descriptor), the delay in deallocating the object could " "produce various issues, especially under Windows. Here is an example of " "enabling the warning from the command line:" msgstr "" #: whatsnew/3.2.rst:617 msgid "" "(Added by Antoine Pitrou and Georg Brandl in :issue:`10093` and :issue:" "`477863`.)" msgstr "" #: whatsnew/3.2.rst:619 msgid "" ":class:`range` objects now support *index* and *count* methods. This is part " "of an effort to make more objects fully implement the :class:`collections." "Sequence` :term:`abstract base class`. As a result, the language will have " "a more uniform API. In addition, :class:`range` objects now support slicing " "and negative indices, even with values larger than :attr:`sys.maxsize`. " "This makes *range* more interoperable with lists::" msgstr "" #: whatsnew/3.2.rst:635 msgid "" "(Contributed by Daniel Stutzbach in :issue:`9213`, by Alexander Belopolsky " "in :issue:`2690`, and by Nick Coghlan in :issue:`10889`.)" msgstr "" #: whatsnew/3.2.rst:638 msgid "" "The :func:`callable` builtin function from Py2.x was resurrected. It " "provides a concise, readable alternative to using an :term:`abstract base " "class` in an expression like ``isinstance(x, collections.Callable)``:" msgstr "" #: whatsnew/3.2.rst:647 msgid "(See :issue:`10518`.)" msgstr "" #: whatsnew/3.2.rst:649 msgid "" "Python's import mechanism can now load modules installed in directories with " "non-ASCII characters in the path name. This solved an aggravating problem " "with home directories for users with non-ASCII characters in their usernames." msgstr "" #: whatsnew/3.2.rst:653 msgid "(Required extensive work by Victor Stinner in :issue:`9425`.)" msgstr "" #: whatsnew/3.2.rst:657 msgid "New, Improved, and Deprecated Modules" msgstr "" #: whatsnew/3.2.rst:659 msgid "" "Python's standard library has undergone significant maintenance efforts and " "quality improvements." msgstr "" #: whatsnew/3.2.rst:662 msgid "" "The biggest news for Python 3.2 is that the :mod:`email` package, :mod:" "`mailbox` module, and :mod:`nntplib` modules now work correctly with the " "bytes/text model in Python 3. For the first time, there is correct handling " "of messages with mixed encodings." msgstr "" #: whatsnew/3.2.rst:667 msgid "" "Throughout the standard library, there has been more careful attention to " "encodings and text versus bytes issues. In particular, interactions with " "the operating system are now better able to exchange non-ASCII data using " "the Windows MBCS encoding, locale-aware encodings, or UTF-8." msgstr "" #: whatsnew/3.2.rst:672 msgid "" "Another significant win is the addition of substantially better support for " "*SSL* connections and security certificates." msgstr "" #: whatsnew/3.2.rst:675 msgid "" "In addition, more classes now implement a :term:`context manager` to support " "convenient and reliable resource clean-up using a :keyword:`with` statement." msgstr "" #: whatsnew/3.2.rst:679 msgid "email" msgstr "email" #: whatsnew/3.2.rst:681 msgid "" "The usability of the :mod:`email` package in Python 3 has been mostly fixed " "by the extensive efforts of R. David Murray. The problem was that emails " "are typically read and stored in the form of :class:`bytes` rather than :" "class:`str` text, and they may contain multiple encodings within a single " "email. So, the email package had to be extended to parse and generate email " "messages in bytes format." msgstr "" #: whatsnew/3.2.rst:688 msgid "" "New functions :func:`~email.message_from_bytes` and :func:`~email." "message_from_binary_file`, and new classes :class:`~email.parser." "BytesFeedParser` and :class:`~email.parser.BytesParser` allow binary message " "data to be parsed into model objects." msgstr "" #: whatsnew/3.2.rst:693 msgid "" "Given bytes input to the model, :meth:`~email.message.Message.get_payload` " "will by default decode a message body that has a :mailheader:`Content-" "Transfer-Encoding` of *8bit* using the charset specified in the MIME headers " "and return the resulting string." msgstr "" #: whatsnew/3.2.rst:698 msgid "" "Given bytes input to the model, :class:`~email.generator.Generator` will " "convert message bodies that have a :mailheader:`Content-Transfer-Encoding` " "of *8bit* to instead have a *7bit* :mailheader:`Content-Transfer-Encoding`." msgstr "" #: whatsnew/3.2.rst:702 msgid "" "Headers with unencoded non-ASCII bytes are deemed to be :rfc:`2047`\\ -" "encoded using the *unknown-8bit* character set." msgstr "" #: whatsnew/3.2.rst:705 msgid "" "A new class :class:`~email.generator.BytesGenerator` produces bytes as " "output, preserving any unchanged non-ASCII data that was present in the " "input used to build the model, including message bodies with a :mailheader:" "`Content-Transfer-Encoding` of *8bit*." msgstr "" #: whatsnew/3.2.rst:710 msgid "" "The :mod:`smtplib` :class:`~smtplib.SMTP` class now accepts a byte string " "for the *msg* argument to the :meth:`~smtplib.SMTP.sendmail` method, and a " "new method, :meth:`~smtplib.SMTP.send_message` accepts a :class:`~email." "message.Message` object and can optionally obtain the *from_addr* and " "*to_addrs* addresses directly from the object." msgstr "" #: whatsnew/3.2.rst:716 msgid "" "(Proposed and implemented by R. David Murray, :issue:`4661` and :issue:" "`10321`.)" msgstr "" #: whatsnew/3.2.rst:719 msgid "elementtree" msgstr "elementtree" #: whatsnew/3.2.rst:721 msgid "" "The :mod:`xml.etree.ElementTree` package and its :mod:`xml.etree." "cElementTree` counterpart have been updated to version 1.3." msgstr "" #: whatsnew/3.2.rst:724 msgid "Several new and useful functions and methods have been added:" msgstr "" #: whatsnew/3.2.rst:726 msgid "" ":func:`xml.etree.ElementTree.fromstringlist` which builds an XML document " "from a sequence of fragments" msgstr "" #: whatsnew/3.2.rst:728 msgid "" ":func:`xml.etree.ElementTree.register_namespace` for registering a global " "namespace prefix" msgstr "" #: whatsnew/3.2.rst:730 msgid "" ":func:`xml.etree.ElementTree.tostringlist` for string representation " "including all sublists" msgstr "" #: whatsnew/3.2.rst:732 msgid "" ":meth:`xml.etree.ElementTree.Element.extend` for appending a sequence of " "zero or more elements" msgstr "" #: whatsnew/3.2.rst:734 msgid "" ":meth:`xml.etree.ElementTree.Element.iterfind` searches an element and " "subelements" msgstr "" #: whatsnew/3.2.rst:736 msgid "" ":meth:`xml.etree.ElementTree.Element.itertext` creates a text iterator over " "an element and its subelements" msgstr "" #: whatsnew/3.2.rst:738 msgid "" ":meth:`xml.etree.ElementTree.TreeBuilder.end` closes the current element" msgstr "" #: whatsnew/3.2.rst:739 msgid "" ":meth:`xml.etree.ElementTree.TreeBuilder.doctype` handles a doctype " "declaration" msgstr "" #: whatsnew/3.2.rst:742 msgid "Two methods have been deprecated:" msgstr "Deux méthodes ont été dépréciées :" #: whatsnew/3.2.rst:744 msgid ":meth:`xml.etree.ElementTree.getchildren` use ``list(elem)`` instead." msgstr "" #: whatsnew/3.2.rst:745 msgid ":meth:`xml.etree.ElementTree.getiterator` use ``Element.iter`` instead." msgstr "" #: whatsnew/3.2.rst:747 msgid "" "For details of the update, see `Introducing ElementTree `_ on " "Fredrik Lundh's website." msgstr "" #: whatsnew/3.2.rst:751 msgid "(Contributed by Florent Xicluna and Fredrik Lundh, :issue:`6472`.)" msgstr "(Contribution par Florent Xicluna et Fredrik Lundh; :issue:`6472`)" #: whatsnew/3.2.rst:754 msgid "functools" msgstr "" #: whatsnew/3.2.rst:756 msgid "" "The :mod:`functools` module includes a new decorator for caching function " "calls. :func:`functools.lru_cache` can save repeated queries to an external " "resource whenever the results are expected to be the same." msgstr "" #: whatsnew/3.2.rst:760 msgid "" "For example, adding a caching decorator to a database query function can " "save database accesses for popular searches:" msgstr "" #: whatsnew/3.2.rst:773 msgid "" "To help with choosing an effective cache size, the wrapped function is " "instrumented for tracking cache statistics:" msgstr "" #: whatsnew/3.2.rst:779 msgid "" "If the phonelist table gets updated, the outdated contents of the cache can " "be cleared with:" msgstr "" #: whatsnew/3.2.rst:784 msgid "" "(Contributed by Raymond Hettinger and incorporating design ideas from Jim " "Baker, Miki Tebeka, and Nick Coghlan; see `recipe 498245 `_\\, `recipe 577479 `_\\, :issue:`10586`, and :issue:`10593`.)" msgstr "" #: whatsnew/3.2.rst:790 msgid "" "The :func:`functools.wraps` decorator now adds a :attr:`__wrapped__` " "attribute pointing to the original callable function. This allows wrapped " "functions to be introspected. It also copies :attr:`__annotations__` if " "defined. And now it also gracefully skips over missing attributes such as :" "attr:`__doc__` which might not be defined for the wrapped callable." msgstr "" #: whatsnew/3.2.rst:796 msgid "" "In the above example, the cache can be removed by recovering the original " "function:" msgstr "" #: whatsnew/3.2.rst:801 msgid "" "(By Nick Coghlan and Terrence Cole; :issue:`9567`, :issue:`3445`, and :issue:" "`8814`.)" msgstr "" #: whatsnew/3.2.rst:804 msgid "" "To help write classes with rich comparison methods, a new decorator :func:" "`functools.total_ordering` will use existing equality and inequality methods " "to fill in the remaining methods." msgstr "" #: whatsnew/3.2.rst:808 msgid "" "For example, supplying *__eq__* and *__lt__* will enable :func:`~functools." "total_ordering` to fill-in *__le__*, *__gt__* and *__ge__*::" msgstr "" #: whatsnew/3.2.rst:821 msgid "" "With the *total_ordering* decorator, the remaining comparison methods are " "filled in automatically." msgstr "" #: whatsnew/3.2.rst:836 whatsnew/3.2.rst:901 whatsnew/3.2.rst:1785 #: whatsnew/3.2.rst:1830 msgid "(Contributed by Raymond Hettinger.)" msgstr "" #: whatsnew/3.2.rst:826 msgid "" "To aid in porting programs from Python 2, the :func:`functools.cmp_to_key` " "function converts an old-style comparison function to modern :term:`key " "function`:" msgstr "" #: whatsnew/3.2.rst:833 msgid "" "For sorting examples and a brief sorting tutorial, see the `Sorting HowTo " "`_ tutorial." msgstr "" #: whatsnew/3.2.rst:839 msgid "itertools" msgstr "" #: whatsnew/3.2.rst:841 msgid "" "The :mod:`itertools` module has a new :func:`~itertools.accumulate` function " "modeled on APL's *scan* operator and Numpy's *accumulate* function:" msgstr "" #: whatsnew/3.2.rst:852 msgid "" "For an example using :func:`~itertools.accumulate`, see the :ref:`examples " "for the random module `." msgstr "" #: whatsnew/3.2.rst:855 msgid "" "(Contributed by Raymond Hettinger and incorporating design suggestions from " "Mark Dickinson.)" msgstr "" #: whatsnew/3.2.rst:859 msgid "collections" msgstr "" #: whatsnew/3.2.rst:861 msgid "" "The :class:`collections.Counter` class now has two forms of in-place " "subtraction, the existing *-=* operator for `saturating subtraction `_ and the new :meth:" "`~collections.Counter.subtract` method for regular subtraction. The former " "is suitable for `multisets `_ which " "only have positive counts, and the latter is more suitable for use cases " "that allow negative counts:" msgstr "" #: whatsnew/3.2.rst:882 msgid "" "The :class:`collections.OrderedDict` class has a new method :meth:" "`~collections.OrderedDict.move_to_end` which takes an existing key and moves " "it to either the first or last position in the ordered sequence." msgstr "" #: whatsnew/3.2.rst:886 msgid "" "The default is to move an item to the last position. This is equivalent of " "renewing an entry with ``od[k] = od.pop(k)``." msgstr "" #: whatsnew/3.2.rst:889 msgid "" "A fast move-to-end operation is useful for resequencing entries. For " "example, an ordered dictionary can be used to track order of access by aging " "entries from the oldest to the most recently accessed." msgstr "" #: whatsnew/3.2.rst:903 msgid "" "The :class:`collections.deque` class grew two new methods :meth:" "`~collections.deque.count` and :meth:`~collections.deque.reverse` that make " "them more substitutable for :class:`list` objects:" msgstr "" #: whatsnew/3.2.rst:918 msgid "threading" msgstr "threading" #: whatsnew/3.2.rst:920 msgid "" "The :mod:`threading` module has a new :class:`~threading.Barrier` " "synchronization class for making multiple threads wait until all of them " "have reached a common barrier point. Barriers are useful for making sure " "that a task with multiple preconditions does not run until all of the " "predecessor tasks are complete." msgstr "" #: whatsnew/3.2.rst:926 msgid "" "Barriers can work with an arbitrary number of threads. This is a " "generalization of a `Rendezvous `_ which is defined for only two threads." msgstr "" #: whatsnew/3.2.rst:930 msgid "" "Implemented as a two-phase cyclic barrier, :class:`~threading.Barrier` " "objects are suitable for use in loops. The separate *filling* and " "*draining* phases assure that all threads get released (drained) before any " "one of them can loop back and re-enter the barrier. The barrier fully " "resets after each cycle." msgstr "" #: whatsnew/3.2.rst:935 msgid "Example of using barriers::" msgstr "" #: whatsnew/3.2.rst:949 msgid "" "In this example, the barrier enforces a rule that votes cannot be counted at " "any polling site until all polls are closed. Notice how a solution with a " "barrier is similar to one with :meth:`threading.Thread.join`, but the " "threads stay alive and continue to do work (summarizing ballots) after the " "barrier point is crossed." msgstr "" #: whatsnew/3.2.rst:955 msgid "" "If any of the predecessor tasks can hang or be delayed, a barrier can be " "created with an optional *timeout* parameter. Then if the timeout period " "elapses before all the predecessor tasks reach the barrier point, all " "waiting threads are released and a :exc:`~threading.BrokenBarrierError` " "exception is raised::" msgstr "" #: whatsnew/3.2.rst:971 msgid "" "In this example, the barrier enforces a more robust rule. If some election " "sites do not finish before midnight, the barrier times-out and the ballots " "are sealed and deposited in a queue for later handling." msgstr "" #: whatsnew/3.2.rst:975 msgid "" "See `Barrier Synchronization Patterns `_ for more examples " "of how barriers can be used in parallel computing. Also, there is a simple " "but thorough explanation of barriers in `The Little Book of Semaphores " "`_, " "*section 3.6*." msgstr "" #: whatsnew/3.2.rst:981 msgid "" "(Contributed by Kristján Valur Jónsson with an API review by Jeffrey Yasskin " "in :issue:`8777`.)" msgstr "" #: whatsnew/3.2.rst:985 msgid "datetime and time" msgstr "" #: whatsnew/3.2.rst:987 msgid "" "The :mod:`datetime` module has a new type :class:`~datetime.timezone` that " "implements the :class:`~datetime.tzinfo` interface by returning a fixed UTC " "offset and timezone name. This makes it easier to create timezone-aware " "datetime objects::" msgstr "" #: whatsnew/3.2.rst:1000 msgid "" "Also, :class:`~datetime.timedelta` objects can now be multiplied by :class:" "`float` and divided by :class:`float` and :class:`int` objects. And :class:" "`~datetime.timedelta` objects can now divide one another." msgstr "" #: whatsnew/3.2.rst:1004 msgid "" "The :meth:`datetime.date.strftime` method is no longer restricted to years " "after 1900. The new supported year range is from 1000 to 9999 inclusive." msgstr "" #: whatsnew/3.2.rst:1007 msgid "" "Whenever a two-digit year is used in a time tuple, the interpretation has " "been governed by :attr:`time.accept2dyear`. The default is ``True`` which " "means that for a two-digit year, the century is guessed according to the " "POSIX rules governing the ``%y`` strptime format." msgstr "" #: whatsnew/3.2.rst:1012 msgid "" "Starting with Py3.2, use of the century guessing heuristic will emit a :exc:" "`DeprecationWarning`. Instead, it is recommended that :attr:`time." "accept2dyear` be set to ``False`` so that large date ranges can be used " "without guesswork::" msgstr "" #: whatsnew/3.2.rst:1031 msgid "" "Several functions now have significantly expanded date ranges. When :attr:" "`time.accept2dyear` is false, the :func:`time.asctime` function will accept " "any year that fits in a C int, while the :func:`time.mktime` and :func:`time." "strftime` functions will accept the full range supported by the " "corresponding operating system functions." msgstr "" #: whatsnew/3.2.rst:1037 msgid "" "(Contributed by Alexander Belopolsky and Victor Stinner in :issue:" "`1289118`, :issue:`5094`, :issue:`6641`, :issue:`2706`, :issue:`1777412`, :" "issue:`8013`, and :issue:`10827`.)" msgstr "" #: whatsnew/3.2.rst:1044 msgid "math" msgstr "" #: whatsnew/3.2.rst:1046 msgid "" "The :mod:`math` module has been updated with six new functions inspired by " "the C99 standard." msgstr "" #: whatsnew/3.2.rst:1049 msgid "" "The :func:`~math.isfinite` function provides a reliable and fast way to " "detect special values. It returns ``True`` for regular numbers and " "``False`` for *Nan* or *Infinity*:" msgstr "" #: whatsnew/3.2.rst:1057 msgid "" "The :func:`~math.expm1` function computes ``e**x-1`` for small values of *x* " "without incurring the loss of precision that usually accompanies the " "subtraction of nearly equal quantities:" msgstr "" #: whatsnew/3.2.rst:1065 msgid "" "The :func:`~math.erf` function computes a probability integral or `Gaussian " "error function `_. The " "complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``:" msgstr "" #: whatsnew/3.2.rst:1080 msgid "" "The :func:`~math.gamma` function is a continuous extension of the factorial " "function. See https://en.wikipedia.org/wiki/Gamma_function for details. " "Because the function is related to factorials, it grows large even for small " "values of *x*, so there is also a :func:`~math.lgamma` function for " "computing the natural logarithm of the gamma function:" msgstr "" #: whatsnew/3.2.rst:1092 msgid "(Contributed by Mark Dickinson.)" msgstr "" #: whatsnew/3.2.rst:1095 msgid "abc" msgstr "" #: whatsnew/3.2.rst:1097 msgid "" "The :mod:`abc` module now supports :func:`~abc.abstractclassmethod` and :" "func:`~abc.abstractstaticmethod`." msgstr "" #: whatsnew/3.2.rst:1100 msgid "" "These tools make it possible to define an :term:`abstract base class` that " "requires a particular :func:`classmethod` or :func:`staticmethod` to be " "implemented::" msgstr "" #: whatsnew/3.2.rst:1112 msgid "(Patch submitted by Daniel Urban; :issue:`5867`.)" msgstr "" #: whatsnew/3.2.rst:1115 msgid "io" msgstr "" #: whatsnew/3.2.rst:1117 msgid "" "The :class:`io.BytesIO` has a new method, :meth:`~io.BytesIO.getbuffer`, " "which provides functionality similar to :func:`memoryview`. It creates an " "editable view of the data without making a copy. The buffer's random access " "and support for slice notation are well-suited to in-place editing::" msgstr "" #: whatsnew/3.2.rst:1143 msgid "(Contributed by Antoine Pitrou in :issue:`5506`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`5506`.)" #: whatsnew/3.2.rst:1146 msgid "reprlib" msgstr "" #: whatsnew/3.2.rst:1148 msgid "" "When writing a :meth:`__repr__` method for a custom container, it is easy to " "forget to handle the case where a member refers back to the container " "itself. Python's builtin objects such as :class:`list` and :class:`set` " "handle self-reference by displaying \"...\" in the recursive part of the " "representation string." msgstr "" #: whatsnew/3.2.rst:1154 msgid "" "To help write such :meth:`__repr__` methods, the :mod:`reprlib` module has a " "new decorator, :func:`~reprlib.recursive_repr`, for detecting recursive " "calls to :meth:`__repr__` and substituting a placeholder string instead::" msgstr "" #: whatsnew/3.2.rst:1169 msgid "(Contributed by Raymond Hettinger in :issue:`9826` and :issue:`9840`.)" msgstr "(Contribution par Raymond Hettinger; :issue:`9826` et :issue:`9840`)" #: whatsnew/3.2.rst:1172 msgid "logging" msgstr "" #: whatsnew/3.2.rst:1174 msgid "" "In addition to dictionary-based configuration described above, the :mod:" "`logging` package has many other improvements." msgstr "" #: whatsnew/3.2.rst:1177 msgid "" "The logging documentation has been augmented by a :ref:`basic tutorial " "`\\, an :ref:`advanced tutorial `\\, and a :ref:`cookbook ` of logging recipes. " "These documents are the fastest way to learn about logging." msgstr "" #: whatsnew/3.2.rst:1182 msgid "" "The :func:`logging.basicConfig` set-up function gained a *style* argument to " "support three different types of string formatting. It defaults to \"%\" " "for traditional %-formatting, can be set to \"{\" for the new :meth:`str." "format` style, or can be set to \"$\" for the shell-style formatting " "provided by :class:`string.Template`. The following three configurations " "are equivalent::" msgstr "" #: whatsnew/3.2.rst:1193 msgid "" "If no configuration is set-up before a logging event occurs, there is now a " "default configuration using a :class:`~logging.StreamHandler` directed to :" "attr:`sys.stderr` for events of ``WARNING`` level or higher. Formerly, an " "event occurring before a configuration was set-up would either raise an " "exception or silently drop the event depending on the value of :attr:" "`logging.raiseExceptions`. The new default handler is stored in :attr:" "`logging.lastResort`." msgstr "" #: whatsnew/3.2.rst:1201 msgid "" "The use of filters has been simplified. Instead of creating a :class:" "`~logging.Filter` object, the predicate can be any Python callable that " "returns ``True`` or ``False``." msgstr "" #: whatsnew/3.2.rst:1205 msgid "" "There were a number of other improvements that add flexibility and simplify " "configuration. See the module documentation for a full listing of changes " "in Python 3.2." msgstr "" #: whatsnew/3.2.rst:1210 msgid "csv" msgstr "csv" #: whatsnew/3.2.rst:1212 msgid "" "The :mod:`csv` module now supports a new dialect, :class:`~csv." "unix_dialect`, which applies quoting for all fields and a traditional Unix " "style with ``'\\n'`` as the line terminator. The registered dialect name is " "``unix``." msgstr "" #: whatsnew/3.2.rst:1216 msgid "" "The :class:`csv.DictWriter` has a new method, :meth:`~csv.DictWriter." "writeheader` for writing-out an initial row to document the field names::" msgstr "" #: whatsnew/3.2.rst:1230 msgid "" "(New dialect suggested by Jay Talbot in :issue:`5975`, and the new method " "suggested by Ed Abraham in :issue:`1537721`.)" msgstr "" #: whatsnew/3.2.rst:1234 msgid "contextlib" msgstr "contextlib" #: whatsnew/3.2.rst:1236 msgid "" "There is a new and slightly mind-blowing tool :class:`~contextlib." "ContextDecorator` that is helpful for creating a :term:`context manager` " "that does double duty as a function decorator." msgstr "" #: whatsnew/3.2.rst:1240 msgid "" "As a convenience, this new functionality is used by :func:`~contextlib." "contextmanager` so that no extra effort is needed to support both roles." msgstr "" #: whatsnew/3.2.rst:1244 msgid "" "The basic idea is that both context managers and function decorators can be " "used for pre-action and post-action wrappers. Context managers wrap a group " "of statements using a :keyword:`with` statement, and function decorators " "wrap a group of statements enclosed in a function. So, occasionally there " "is a need to write a pre-action or post-action wrapper that can be used in " "either role." msgstr "" #: whatsnew/3.2.rst:1250 msgid "" "For example, it is sometimes useful to wrap functions or groups of " "statements with a logger that can track the time of entry and time of exit. " "Rather than writing both a function decorator and a context manager for the " "task, the :func:`~contextlib.contextmanager` provides both capabilities in a " "single definition::" msgstr "" #: whatsnew/3.2.rst:1267 msgid "Formerly, this would have only been usable as a context manager::" msgstr "" #: whatsnew/3.2.rst:1273 msgid "Now, it can be used as a decorator as well::" msgstr "" #: whatsnew/3.2.rst:1280 msgid "" "Trying to fulfill two roles at once places some limitations on the " "technique. Context managers normally have the flexibility to return an " "argument usable by a :keyword:`with` statement, but there is no parallel for " "function decorators." msgstr "" #: whatsnew/3.2.rst:1284 msgid "" "In the above example, there is not a clean way for the " "*track_entry_and_exit* context manager to return a logging instance for use " "in the body of enclosed statements." msgstr "" #: whatsnew/3.2.rst:1288 msgid "(Contributed by Michael Foord in :issue:`9110`.)" msgstr "(Contribution par Michael Foord; :issue:`9110`)" #: whatsnew/3.2.rst:1291 msgid "decimal and fractions" msgstr "" #: whatsnew/3.2.rst:1293 msgid "" "Mark Dickinson crafted an elegant and efficient scheme for assuring that " "different numeric datatypes will have the same hash value whenever their " "actual values are equal (:issue:`8188`)::" msgstr "" #: whatsnew/3.2.rst:1300 msgid "" "Some of the hashing details are exposed through a new attribute, :attr:`sys." "hash_info`, which describes the bit width of the hash value, the prime " "modulus, the hash values for *infinity* and *nan*, and the multiplier used " "for the imaginary part of a number:" msgstr "" #: whatsnew/3.2.rst:1308 msgid "" "An early decision to limit the inter-operability of various numeric types " "has been relaxed. It is still unsupported (and ill-advised) to have " "implicit mixing in arithmetic expressions such as ``Decimal('1.1') + " "float('1.1')`` because the latter loses information in the process of " "constructing the binary float. However, since existing floating point value " "can be converted losslessly to either a decimal or rational representation, " "it makes sense to add them to the constructor and to support mixed-type " "comparisons." msgstr "" #: whatsnew/3.2.rst:1316 msgid "" "The :class:`decimal.Decimal` constructor now accepts :class:`float` objects " "directly so there in no longer a need to use the :meth:`~decimal.Decimal." "from_float` method (:issue:`8257`)." msgstr "" #: whatsnew/3.2.rst:1320 msgid "" "Mixed type comparisons are now fully supported so that :class:`~decimal." "Decimal` objects can be directly compared with :class:`float` and :class:" "`fractions.Fraction` (:issue:`2531` and :issue:`8188`)." msgstr "" #: whatsnew/3.2.rst:1324 msgid "" "Similar changes were made to :class:`fractions.Fraction` so that the :meth:" "`~fractions.Fraction.from_float()` and :meth:`~fractions.Fraction." "from_decimal` methods are no longer needed (:issue:`8294`):" msgstr "" #: whatsnew/3.2.rst:1335 msgid "" "Another useful change for the :mod:`decimal` module is that the :attr:" "`Context.clamp` attribute is now public. This is useful in creating " "contexts that correspond to the decimal interchange formats specified in " "IEEE 754 (see :issue:`8540`)." msgstr "" #: whatsnew/3.2.rst:1340 msgid "(Contributed by Mark Dickinson and Raymond Hettinger.)" msgstr "" #: whatsnew/3.2.rst:1343 msgid "ftp" msgstr "" #: whatsnew/3.2.rst:1345 msgid "" "The :class:`ftplib.FTP` class now supports the context management protocol " "to unconditionally consume :exc:`socket.error` exceptions and to close the " "FTP connection when done::" msgstr "" #: whatsnew/3.2.rst:1360 msgid "" "Other file-like objects such as :class:`mmap.mmap` and :func:`fileinput." "input` also grew auto-closing context managers::" msgstr "" #: whatsnew/3.2.rst:1367 msgid "" "(Contributed by Tarek Ziadé and Giampaolo Rodolà in :issue:`4972`, and by " "Georg Brandl in :issue:`8046` and :issue:`1286`.)" msgstr "" #: whatsnew/3.2.rst:1370 msgid "" "The :class:`~ftplib.FTP_TLS` class now accepts a *context* parameter, which " "is a :class:`ssl.SSLContext` object allowing bundling SSL configuration " "options, certificates and private keys into a single (potentially long-" "lived) structure." msgstr "" #: whatsnew/3.2.rst:1374 msgid "(Contributed by Giampaolo Rodolà; :issue:`8806`.)" msgstr "(Contribution par Giampaolo Rodolà; :issue:`8806`)" #: whatsnew/3.2.rst:1377 msgid "popen" msgstr "" #: whatsnew/3.2.rst:1379 msgid "" "The :func:`os.popen` and :func:`subprocess.Popen` functions now support :" "keyword:`with` statements for auto-closing of the file descriptors." msgstr "" #: whatsnew/3.2.rst:1382 msgid "" "(Contributed by Antoine Pitrou and Brian Curtin in :issue:`7461` and :issue:" "`10554`.)" msgstr "" "(Contribution par Antoine Pitrou et Brian Curtin; :issue:`7461` et :issue:" "`10554`)" #: whatsnew/3.2.rst:1386 msgid "select" msgstr "" #: whatsnew/3.2.rst:1388 msgid "" "The :mod:`select` module now exposes a new, constant attribute, :attr:" "`~select.PIPE_BUF`, which gives the minimum number of bytes which are " "guaranteed not to block when :func:`select.select` says a pipe is ready for " "writing." msgstr "" #: whatsnew/3.2.rst:1397 msgid "(Available on Unix systems. Patch by Sébastien Sablé in :issue:`9862`)" msgstr "" #: whatsnew/3.2.rst:1400 msgid "gzip and zipfile" msgstr "" #: whatsnew/3.2.rst:1402 msgid "" ":class:`gzip.GzipFile` now implements the :class:`io.BufferedIOBase` :term:" "`abstract base class` (except for ``truncate()``). It also has a :meth:" "`~gzip.GzipFile.peek` method and supports unseekable as well as zero-padded " "file objects." msgstr "" #: whatsnew/3.2.rst:1407 msgid "" "The :mod:`gzip` module also gains the :func:`~gzip.compress` and :func:" "`~gzip.decompress` functions for easier in-memory compression and " "decompression. Keep in mind that text needs to be encoded as :class:`bytes` " "before compressing and decompressing:" msgstr "" #: whatsnew/3.2.rst:1424 msgid "" "(Contributed by Anand B. Pillai in :issue:`3488`; and by Antoine Pitrou, Nir " "Aides and Brian Curtin in :issue:`9962`, :issue:`1675951`, :issue:`7471` " "and :issue:`2846`.)" msgstr "" #: whatsnew/3.2.rst:1428 msgid "" "Also, the :class:`zipfile.ZipExtFile` class was reworked internally to " "represent files stored inside an archive. The new implementation is " "significantly faster and can be wrapped in an :class:`io.BufferedReader` " "object for more speedups. It also solves an issue where interleaved calls " "to *read* and *readline* gave the wrong results." msgstr "" #: whatsnew/3.2.rst:1434 msgid "(Patch submitted by Nir Aides in :issue:`7610`.)" msgstr "" #: whatsnew/3.2.rst:1437 msgid "tarfile" msgstr "" #: whatsnew/3.2.rst:1439 msgid "" "The :class:`~tarfile.TarFile` class can now be used as a context manager. " "In addition, its :meth:`~tarfile.TarFile.add` method has a new option, " "*filter*, that controls which files are added to the archive and allows the " "file metadata to be edited." msgstr "" #: whatsnew/3.2.rst:1444 msgid "" "The new *filter* option replaces the older, less flexible *exclude* " "parameter which is now deprecated. If specified, the optional *filter* " "parameter needs to be a :term:`keyword argument`. The user-supplied filter " "function accepts a :class:`~tarfile.TarInfo` object and returns an updated :" "class:`~tarfile.TarInfo` object, or if it wants the file to be excluded, the " "function can return ``None``::" msgstr "" #: whatsnew/3.2.rst:1468 msgid "" "(Proposed by Tarek Ziadé and implemented by Lars Gustäbel in :issue:`6856`.)" msgstr "" #: whatsnew/3.2.rst:1471 msgid "hashlib" msgstr "" #: whatsnew/3.2.rst:1473 msgid "" "The :mod:`hashlib` module has two new constant attributes listing the " "hashing algorithms guaranteed to be present in all implementations and those " "available on the current implementation::" msgstr "" #: whatsnew/3.2.rst:1488 msgid "(Suggested by Carl Chenet in :issue:`7418`.)" msgstr "" #: whatsnew/3.2.rst:1491 msgid "ast" msgstr "ast" #: whatsnew/3.2.rst:1493 msgid "" "The :mod:`ast` module has a wonderful a general-purpose tool for safely " "evaluating expression strings using the Python literal syntax. The :func:" "`ast.literal_eval` function serves as a secure alternative to the builtin :" "func:`eval` function which is easily abused. Python 3.2 adds :class:`bytes` " "and :class:`set` literals to the list of supported types: strings, bytes, " "numbers, tuples, lists, dicts, sets, booleans, and ``None``." msgstr "" #: whatsnew/3.2.rst:1514 msgid "(Implemented by Benjamin Peterson and Georg Brandl.)" msgstr "" #: whatsnew/3.2.rst:1517 msgid "os" msgstr "" #: whatsnew/3.2.rst:1519 msgid "" "Different operating systems use various encodings for filenames and " "environment variables. The :mod:`os` module provides two new functions, :" "func:`~os.fsencode` and :func:`~os.fsdecode`, for encoding and decoding " "filenames:" msgstr "" #: whatsnew/3.2.rst:1529 msgid "" "Some operating systems allow direct access to encoded bytes in the " "environment. If so, the :attr:`os.supports_bytes_environ` constant will be " "true." msgstr "" #: whatsnew/3.2.rst:1533 msgid "" "For direct access to encoded environment variables (if available), use the " "new :func:`os.getenvb` function or use :data:`os.environb` which is a bytes " "version of :data:`os.environ`." msgstr "" #: whatsnew/3.2.rst:1537 msgid "(Contributed by Victor Stinner.)" msgstr "(Contribution par Victor Stinner)" #: whatsnew/3.2.rst:1540 msgid "shutil" msgstr "" #: whatsnew/3.2.rst:1542 msgid "The :func:`shutil.copytree` function has two new options:" msgstr "" #: whatsnew/3.2.rst:1544 msgid "" "*ignore_dangling_symlinks*: when ``symlinks=False`` so that the function " "copies a file pointed to by a symlink, not the symlink itself. This option " "will silence the error raised if the file doesn't exist." msgstr "" #: whatsnew/3.2.rst:1548 msgid "" "*copy_function*: is a callable that will be used to copy files. :func:" "`shutil.copy2` is used by default." msgstr "" #: whatsnew/3.2.rst:1589 msgid "(Contributed by Tarek Ziadé.)" msgstr "" #: whatsnew/3.2.rst:1553 msgid "" "In addition, the :mod:`shutil` module now supports :ref:`archiving " "operations ` for zipfiles, uncompressed tarfiles, " "gzipped tarfiles, and bzipped tarfiles. And there are functions for " "registering additional archiving file formats (such as xz compressed " "tarfiles or custom formats)." msgstr "" #: whatsnew/3.2.rst:1558 msgid "" "The principal functions are :func:`~shutil.make_archive` and :func:`~shutil." "unpack_archive`. By default, both operate on the current directory (which " "can be set by :func:`os.chdir`) and on any sub-directories. The archive " "filename needs to be specified with a full pathname. The archiving step is " "non-destructive (the original files are left unchanged)." msgstr "" #: whatsnew/3.2.rst:1592 msgid "sqlite3" msgstr "" #: whatsnew/3.2.rst:1594 msgid "" "The :mod:`sqlite3` module was updated to pysqlite version 2.6.0. It has two " "new capabilities." msgstr "" #: whatsnew/3.2.rst:1596 msgid "" "The :attr:`sqlite3.Connection.in_transit` attribute is true if there is an " "active transaction for uncommitted changes." msgstr "" #: whatsnew/3.2.rst:1599 msgid "" "The :meth:`sqlite3.Connection.enable_load_extension` and :meth:`sqlite3." "Connection.load_extension` methods allows you to load SQLite extensions from " "\".so\" files. One well-known extension is the fulltext-search extension " "distributed with SQLite." msgstr "" #: whatsnew/3.2.rst:1604 msgid "(Contributed by R. David Murray and Shashwat Anand; :issue:`8845`.)" msgstr "" #: whatsnew/3.2.rst:1607 msgid "html" msgstr "" #: whatsnew/3.2.rst:1609 msgid "" "A new :mod:`html` module was introduced with only a single function, :func:" "`~html.escape`, which is used for escaping reserved characters from HTML " "markup:" msgstr "" #: whatsnew/3.2.rst:1618 msgid "socket" msgstr "" #: whatsnew/3.2.rst:1620 msgid "The :mod:`socket` module has two new improvements." msgstr "" #: whatsnew/3.2.rst:1622 msgid "" "Socket objects now have a :meth:`~socket.socket.detach()` method which puts " "the socket into closed state without actually closing the underlying file " "descriptor. The latter can then be reused for other purposes. (Added by " "Antoine Pitrou; :issue:`8524`.)" msgstr "" #: whatsnew/3.2.rst:1627 msgid "" ":func:`socket.create_connection` now supports the context management " "protocol to unconditionally consume :exc:`socket.error` exceptions and to " "close the socket when done. (Contributed by Giampaolo Rodolà; :issue:`9794`.)" msgstr "" #: whatsnew/3.2.rst:1633 msgid "ssl" msgstr "" #: whatsnew/3.2.rst:1635 msgid "" "The :mod:`ssl` module added a number of features to satisfy common " "requirements for secure (encrypted, authenticated) internet connections:" msgstr "" #: whatsnew/3.2.rst:1638 msgid "" "A new class, :class:`~ssl.SSLContext`, serves as a container for persistent " "SSL data, such as protocol settings, certificates, private keys, and various " "other options. It includes a :meth:`~ssl.SSLContext.wrap_socket` for " "creating an SSL socket from an SSL context." msgstr "" #: whatsnew/3.2.rst:1643 msgid "" "A new function, :func:`ssl.match_hostname`, supports server identity " "verification for higher-level protocols by implementing the rules of HTTPS " "(from :rfc:`2818`) which are also suitable for other protocols." msgstr "" #: whatsnew/3.2.rst:1647 msgid "" "The :func:`ssl.wrap_socket` constructor function now takes a *ciphers* " "argument. The *ciphers* string lists the allowed encryption algorithms " "using the format described in the `OpenSSL documentation `__." msgstr "" #: whatsnew/3.2.rst:1652 msgid "" "When linked against recent versions of OpenSSL, the :mod:`ssl` module now " "supports the Server Name Indication extension to the TLS protocol, allowing " "multiple \"virtual hosts\" using different certificates on a single IP port. " "This extension is only supported in client mode, and is activated by passing " "the *server_hostname* argument to :meth:`ssl.SSLContext.wrap_socket`." msgstr "" #: whatsnew/3.2.rst:1658 msgid "" "Various options have been added to the :mod:`ssl` module, such as :data:" "`~ssl.OP_NO_SSLv2` which disables the insecure and obsolete SSLv2 protocol." msgstr "" #: whatsnew/3.2.rst:1662 msgid "" "The extension now loads all the OpenSSL ciphers and digest algorithms. If " "some SSL certificates cannot be verified, they are reported as an \"unknown " "algorithm\" error." msgstr "" #: whatsnew/3.2.rst:1666 msgid "" "The version of OpenSSL being used is now accessible using the module " "attributes :data:`ssl.OPENSSL_VERSION` (a string), :data:`ssl." "OPENSSL_VERSION_INFO` (a 5-tuple), and :data:`ssl.OPENSSL_VERSION_NUMBER` " "(an integer)." msgstr "" #: whatsnew/3.2.rst:1671 msgid "" "(Contributed by Antoine Pitrou in :issue:`8850`, :issue:`1589`, :issue:" "`8322`, :issue:`5639`, :issue:`4870`, :issue:`8484`, and :issue:`8321`.)" msgstr "" #: whatsnew/3.2.rst:1675 msgid "nntp" msgstr "" #: whatsnew/3.2.rst:1677 msgid "" "The :mod:`nntplib` module has a revamped implementation with better bytes " "and text semantics as well as more practical APIs. These improvements break " "compatibility with the nntplib version in Python 3.1, which was partly " "dysfunctional in itself." msgstr "" #: whatsnew/3.2.rst:1682 msgid "" "Support for secure connections through both implicit (using :class:`nntplib." "NNTP_SSL`) and explicit (using :meth:`nntplib.NNTP.starttls`) TLS has also " "been added." msgstr "" #: whatsnew/3.2.rst:1686 msgid "" "(Contributed by Antoine Pitrou in :issue:`9360` and Andrew Vant in :issue:" "`1926`.)" msgstr "" "(Contribution par Antoine Pitrou, :issue:`9360`, et Andrew Vant, :issue:" "`1926`)" #: whatsnew/3.2.rst:1689 msgid "certificates" msgstr "" #: whatsnew/3.2.rst:1691 msgid "" ":class:`http.client.HTTPSConnection`, :class:`urllib.request.HTTPSHandler` " "and :func:`urllib.request.urlopen` now take optional arguments to allow for " "server certificate checking against a set of Certificate Authorities, as " "recommended in public uses of HTTPS." msgstr "" #: whatsnew/3.2.rst:1696 msgid "(Added by Antoine Pitrou, :issue:`9003`.)" msgstr "(Ajouté par Antoine Pitrou; :issue:`9003`.)" #: whatsnew/3.2.rst:1699 msgid "imaplib" msgstr "" #: whatsnew/3.2.rst:1701 msgid "" "Support for explicit TLS on standard IMAP4 connections has been added " "through the new :mod:`imaplib.IMAP4.starttls` method." msgstr "" #: whatsnew/3.2.rst:1704 msgid "(Contributed by Lorenzo M. Catucci and Antoine Pitrou, :issue:`4471`.)" msgstr "" "(Contribution par Lorenzo M. Catucci et Antoine Pitrou; :issue:`4471`.)" #: whatsnew/3.2.rst:1707 msgid "http.client" msgstr "" #: whatsnew/3.2.rst:1709 msgid "" "There were a number of small API improvements in the :mod:`http.client` " "module. The old-style HTTP 0.9 simple responses are no longer supported and " "the *strict* parameter is deprecated in all classes." msgstr "" #: whatsnew/3.2.rst:1713 msgid "" "The :class:`~http.client.HTTPConnection` and :class:`~http.client." "HTTPSConnection` classes now have a *source_address* parameter for a (host, " "port) tuple indicating where the HTTP connection is made from." msgstr "" #: whatsnew/3.2.rst:1718 msgid "" "Support for certificate checking and HTTPS virtual hosts were added to :" "class:`~http.client.HTTPSConnection`." msgstr "" #: whatsnew/3.2.rst:1721 msgid "" "The :meth:`~http.client.HTTPConnection.request` method on connection objects " "allowed an optional *body* argument so that a :term:`file object` could be " "used to supply the content of the request. Conveniently, the *body* " "argument now also accepts an :term:`iterable` object so long as it includes " "an explicit ``Content-Length`` header. This extended interface is much more " "flexible than before." msgstr "" #: whatsnew/3.2.rst:1728 msgid "" "To establish an HTTPS connection through a proxy server, there is a new :" "meth:`~http.client.HTTPConnection.set_tunnel` method that sets the host and " "port for HTTP Connect tunneling." msgstr "" #: whatsnew/3.2.rst:1732 msgid "" "To match the behavior of :mod:`http.server`, the HTTP client library now " "also encodes headers with ISO-8859-1 (Latin-1) encoding. It was already " "doing that for incoming headers, so now the behavior is consistent for both " "incoming and outgoing traffic. (See work by Armin Ronacher in :issue:" "`10980`.)" msgstr "" #: whatsnew/3.2.rst:1738 msgid "unittest" msgstr "unittest" #: whatsnew/3.2.rst:1740 msgid "" "The unittest module has a number of improvements supporting test discovery " "for packages, easier experimentation at the interactive prompt, new testcase " "methods, improved diagnostic messages for test failures, and better method " "names." msgstr "" #: whatsnew/3.2.rst:1745 msgid "" "The command-line call ``python -m unittest`` can now accept file paths " "instead of module names for running specific tests (:issue:`10620`). The " "new test discovery can find tests within packages, locating any test " "importable from the top-level directory. The top-level directory can be " "specified with the ``-t`` option, a pattern for matching files with ``-p``, " "and a directory to start discovery with ``-s``:" msgstr "" #: whatsnew/3.2.rst:1765 whatsnew/3.2.rst:1921 msgid "(Contributed by Michael Foord.)" msgstr "" #: whatsnew/3.2.rst:1758 msgid "" "Experimentation at the interactive prompt is now easier because the :class:" "`unittest.case.TestCase` class can now be instantiated without arguments:" msgstr "" #: whatsnew/3.2.rst:1767 msgid "" "The :mod:`unittest` module has two new methods, :meth:`~unittest.TestCase." "assertWarns` and :meth:`~unittest.TestCase.assertWarnsRegex` to verify that " "a given warning type is triggered by the code under test::" msgstr "" #: whatsnew/3.2.rst:1775 msgid "(Contributed by Antoine Pitrou, :issue:`9754`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`9754`.)" #: whatsnew/3.2.rst:1777 msgid "" "Another new method, :meth:`~unittest.TestCase.assertCountEqual` is used to " "compare two iterables to determine if their element counts are equal " "(whether the same elements are present with the same number of occurrences " "regardless of order)::" msgstr "" #: whatsnew/3.2.rst:1787 msgid "" "A principal feature of the unittest module is an effort to produce " "meaningful diagnostics when a test fails. When possible, the failure is " "recorded along with a diff of the output. This is especially helpful for " "analyzing log files of failed test runs. However, since diffs can sometime " "be voluminous, there is a new :attr:`~unittest.TestCase.maxDiff` attribute " "that sets maximum length of diffs displayed." msgstr "" #: whatsnew/3.2.rst:1794 msgid "" "In addition, the method names in the module have undergone a number of clean-" "ups." msgstr "" #: whatsnew/3.2.rst:1796 msgid "" "For example, :meth:`~unittest.TestCase.assertRegex` is the new name for :" "meth:`~unittest.TestCase.assertRegexpMatches` which was misnamed because the " "test uses :func:`re.search`, not :func:`re.match`. Other methods using " "regular expressions are now named using short form \"Regex\" in preference " "to \"Regexp\" -- this matches the names used in other unittest " "implementations, matches Python's old name for the :mod:`re` module, and it " "has unambiguous camel-casing." msgstr "" #: whatsnew/3.2.rst:1804 msgid "(Contributed by Raymond Hettinger and implemented by Ezio Melotti.)" msgstr "" #: whatsnew/3.2.rst:1806 msgid "" "To improve consistency, some long-standing method aliases are being " "deprecated in favor of the preferred names:" msgstr "" #: whatsnew/3.2.rst:1810 msgid "Old Name" msgstr "" #: whatsnew/3.2.rst:1810 msgid "Preferred Name" msgstr "" #: whatsnew/3.2.rst:1812 msgid ":meth:`assert_`" msgstr ":meth:`assert_`" #: whatsnew/3.2.rst:1812 msgid ":meth:`.assertTrue`" msgstr ":meth:`.assertTrue`" #: whatsnew/3.2.rst:1813 msgid ":meth:`assertEquals`" msgstr ":meth:`assertEquals`" #: whatsnew/3.2.rst:1813 msgid ":meth:`.assertEqual`" msgstr ":meth:`.assertEqual`" #: whatsnew/3.2.rst:1814 msgid ":meth:`assertNotEquals`" msgstr ":meth:`assertNotEquals`" #: whatsnew/3.2.rst:1814 msgid ":meth:`.assertNotEqual`" msgstr ":meth:`.assertNotEqual`" #: whatsnew/3.2.rst:1815 msgid ":meth:`assertAlmostEquals`" msgstr ":meth:`assertAlmostEquals`" #: whatsnew/3.2.rst:1815 msgid ":meth:`.assertAlmostEqual`" msgstr ":meth:`.assertAlmostEqual`" #: whatsnew/3.2.rst:1816 msgid ":meth:`assertNotAlmostEquals`" msgstr ":meth:`assertNotAlmostEquals`" #: whatsnew/3.2.rst:1816 msgid ":meth:`.assertNotAlmostEqual`" msgstr ":meth:`.assertNotAlmostEqual`" #: whatsnew/3.2.rst:1819 msgid "" "Likewise, the ``TestCase.fail*`` methods deprecated in Python 3.1 are " "expected to be removed in Python 3.3. Also see the :ref:`deprecated-" "aliases` section in the :mod:`unittest` documentation." msgstr "" #: whatsnew/3.2.rst:1823 msgid "(Contributed by Ezio Melotti; :issue:`9424`.)" msgstr "(Contribution par Ezio Melotti; :issue:`9424`)" #: whatsnew/3.2.rst:1825 msgid "" "The :meth:`~unittest.TestCase.assertDictContainsSubset` method was " "deprecated because it was misimplemented with the arguments in the wrong " "order. This created hard-to-debug optical illusions where tests like " "``TestCase().assertDictContainsSubset({'a':1, 'b':2}, {'a':1})`` would fail." msgstr "" #: whatsnew/3.2.rst:1833 msgid "random" msgstr "" #: whatsnew/3.2.rst:1835 msgid "" "The integer methods in the :mod:`random` module now do a better job of " "producing uniform distributions. Previously, they computed selections with " "``int(n*random())`` which had a slight bias whenever *n* was not a power of " "two. Now, multiple selections are made from a range up to the next power of " "two and a selection is kept only when it falls within the range ``0 <= x < " "n``. The functions and methods affected are :func:`~random.randrange`, :" "func:`~random.randint`, :func:`~random.choice`, :func:`~random.shuffle` and :" "func:`~random.sample`." msgstr "" #: whatsnew/3.2.rst:1844 msgid "(Contributed by Raymond Hettinger; :issue:`9025`.)" msgstr "(Contribution par Raymond Hettinger; :issue:`9025`)" #: whatsnew/3.2.rst:1847 msgid "poplib" msgstr "" #: whatsnew/3.2.rst:1849 msgid "" ":class:`~poplib.POP3_SSL` class now accepts a *context* parameter, which is " "a :class:`ssl.SSLContext` object allowing bundling SSL configuration " "options, certificates and private keys into a single (potentially long-" "lived) structure." msgstr "" #: whatsnew/3.2.rst:1854 msgid "(Contributed by Giampaolo Rodolà; :issue:`8807`.)" msgstr "(Contribution par Giampaolo Rodolà; :issue:`8807`)" #: whatsnew/3.2.rst:1857 msgid "asyncore" msgstr "asyncore" #: whatsnew/3.2.rst:1859 msgid "" ":class:`asyncore.dispatcher` now provides a :meth:`~asyncore.dispatcher." "handle_accepted()` method returning a ``(sock, addr)`` pair which is called " "when a connection has actually been established with a new remote endpoint. " "This is supposed to be used as a replacement for old :meth:`~asyncore." "dispatcher.handle_accept()` and avoids the user to call :meth:`~asyncore." "dispatcher.accept()` directly." msgstr "" #: whatsnew/3.2.rst:1866 msgid "(Contributed by Giampaolo Rodolà; :issue:`6706`.)" msgstr "(Contribution par Giampaolo Rodolà; :issue:`6706`)" #: whatsnew/3.2.rst:1869 msgid "tempfile" msgstr "" #: whatsnew/3.2.rst:1871 msgid "" "The :mod:`tempfile` module has a new context manager, :class:`~tempfile." "TemporaryDirectory` which provides easy deterministic cleanup of temporary " "directories::" msgstr "" #: whatsnew/3.2.rst:1878 msgid "(Contributed by Neil Schemenauer and Nick Coghlan; :issue:`5178`.)" msgstr "(Contribution par Neil Schemenauer et Nick Coghlan; :issue:`5178`.)" #: whatsnew/3.2.rst:1881 msgid "inspect" msgstr "" #: whatsnew/3.2.rst:1883 msgid "" "The :mod:`inspect` module has a new function :func:`~inspect." "getgeneratorstate` to easily identify the current state of a generator-" "iterator::" msgstr "" #: whatsnew/3.2.rst:1901 msgid "(Contributed by Rodolpho Eckhardt and Nick Coghlan, :issue:`10220`.)" msgstr "(Contribution par Rodolpho Eckhardt et Nick Coghlan; :issue:`10220`.)" #: whatsnew/3.2.rst:1903 msgid "" "To support lookups without the possibility of activating a dynamic " "attribute, the :mod:`inspect` module has a new function, :func:`~inspect." "getattr_static`. Unlike :func:`hasattr`, this is a true read-only search, " "guaranteed not to change state while it is searching::" msgstr "" #: whatsnew/3.2.rst:1924 msgid "pydoc" msgstr "" #: whatsnew/3.2.rst:1926 msgid "" "The :mod:`pydoc` module now provides a much-improved web server interface, " "as well as a new command-line option ``-b`` to automatically open a browser " "window to display that server:" msgstr "" #: whatsnew/3.2.rst:1934 msgid "(Contributed by Ron Adam; :issue:`2001`.)" msgstr "(Contribution par Ron Adam; :issue:`2001`.)" #: whatsnew/3.2.rst:1937 msgid "dis" msgstr "dis" #: whatsnew/3.2.rst:1939 msgid "" "The :mod:`dis` module gained two new functions for inspecting code, :func:" "`~dis.code_info` and :func:`~dis.show_code`. Both provide detailed code " "object information for the supplied function, method, source code string or " "code object. The former returns a string and the latter prints it::" msgstr "" #: whatsnew/3.2.rst:1966 msgid "" "In addition, the :func:`~dis.dis` function now accepts string arguments so " "that the common idiom ``dis(compile(s, '', 'eval'))`` can be shortened to " "``dis(s)``::" msgstr "" #: whatsnew/3.2.rst:1988 msgid "" "Taken together, these improvements make it easier to explore how CPython is " "implemented and to see for yourself what the language syntax does under-the-" "hood." msgstr "" #: whatsnew/3.2.rst:1992 msgid "(Contributed by Nick Coghlan in :issue:`9147`.)" msgstr "(Contribution par Nick Coghlan; :issue:`9147`.)" #: whatsnew/3.2.rst:1995 msgid "dbm" msgstr "dbm" #: whatsnew/3.2.rst:1997 msgid "" "All database modules now support the :meth:`get` and :meth:`setdefault` " "methods." msgstr "" #: whatsnew/3.2.rst:1999 msgid "(Suggested by Ray Allen in :issue:`9523`.)" msgstr "" #: whatsnew/3.2.rst:2002 msgid "ctypes" msgstr "ctypes" #: whatsnew/3.2.rst:2004 msgid "" "A new type, :class:`ctypes.c_ssize_t` represents the C :c:type:`ssize_t` " "datatype." msgstr "" #: whatsnew/3.2.rst:2007 msgid "site" msgstr "" #: whatsnew/3.2.rst:2009 msgid "" "The :mod:`site` module has three new functions useful for reporting on the " "details of a given Python installation." msgstr "" #: whatsnew/3.2.rst:2012 msgid "" ":func:`~site.getsitepackages` lists all global site-packages directories." msgstr "" #: whatsnew/3.2.rst:2014 msgid "" ":func:`~site.getuserbase` reports on the user's base directory where data " "can be stored." msgstr "" #: whatsnew/3.2.rst:2017 msgid "" ":func:`~site.getusersitepackages` reveals the user-specific site-packages " "directory path." msgstr "" #: whatsnew/3.2.rst:2032 msgid "" "Conveniently, some of site's functionality is accessible directly from the " "command-line:" msgstr "" #: whatsnew/3.2.rst:2042 msgid "(Contributed by Tarek Ziadé in :issue:`6693`.)" msgstr "(Contribution par Tarek Ziadé; :issue:`6693`.)" #: whatsnew/3.2.rst:2045 msgid "sysconfig" msgstr "" #: whatsnew/3.2.rst:2047 msgid "" "The new :mod:`sysconfig` module makes it straightforward to discover " "installation paths and configuration variables that vary across platforms " "and installations." msgstr "" #: whatsnew/3.2.rst:2051 msgid "" "The module offers access simple access functions for platform and version " "information:" msgstr "" #: whatsnew/3.2.rst:2054 msgid "" ":func:`~sysconfig.get_platform` returning values like *linux-i586* or " "*macosx-10.6-ppc*." msgstr "" #: whatsnew/3.2.rst:2056 msgid "" ":func:`~sysconfig.get_python_version` returns a Python version string such " "as \"3.2\"." msgstr "" #: whatsnew/3.2.rst:2059 msgid "" "It also provides access to the paths and variables corresponding to one of " "seven named schemes used by :mod:`distutils`. Those include *posix_prefix*, " "*posix_home*, *posix_user*, *nt*, *nt_user*, *os2*, *os2_home*:" msgstr "" #: whatsnew/3.2.rst:2063 msgid "" ":func:`~sysconfig.get_paths` makes a dictionary containing installation " "paths for the current installation scheme." msgstr "" #: whatsnew/3.2.rst:2065 msgid "" ":func:`~sysconfig.get_config_vars` returns a dictionary of platform specific " "variables." msgstr "" #: whatsnew/3.2.rst:2068 msgid "There is also a convenient command-line interface:" msgstr "" #: whatsnew/3.2.rst:2107 msgid "(Moved out of Distutils by Tarek Ziadé.)" msgstr "" #: whatsnew/3.2.rst:2110 msgid "pdb" msgstr "" #: whatsnew/3.2.rst:2112 msgid "" "The :mod:`pdb` debugger module gained a number of usability improvements:" msgstr "" #: whatsnew/3.2.rst:2114 msgid "" ":file:`pdb.py` now has a ``-c`` option that executes commands as given in a :" "file:`.pdbrc` script file." msgstr "" #: whatsnew/3.2.rst:2116 msgid "" "A :file:`.pdbrc` script file can contain ``continue`` and ``next`` commands " "that continue debugging." msgstr "" #: whatsnew/3.2.rst:2118 msgid "The :class:`Pdb` class constructor now accepts a *nosigint* argument." msgstr "" #: whatsnew/3.2.rst:2119 msgid "" "New commands: ``l(list)``, ``ll(long list)`` and ``source`` for listing " "source code." msgstr "" #: whatsnew/3.2.rst:2121 msgid "" "New commands: ``display`` and ``undisplay`` for showing or hiding the value " "of an expression if it has changed." msgstr "" #: whatsnew/3.2.rst:2123 msgid "" "New command: ``interact`` for starting an interactive interpreter containing " "the global and local names found in the current scope." msgstr "" #: whatsnew/3.2.rst:2125 msgid "Breakpoints can be cleared by breakpoint number." msgstr "" #: whatsnew/3.2.rst:2127 msgid "(Contributed by Georg Brandl, Antonio Cuni and Ilya Sandler.)" msgstr "" #: whatsnew/3.2.rst:2130 msgid "configparser" msgstr "configparser" #: whatsnew/3.2.rst:2132 msgid "" "The :mod:`configparser` module was modified to improve usability and " "predictability of the default parser and its supported INI syntax. The old :" "class:`ConfigParser` class was removed in favor of :class:`SafeConfigParser` " "which has in turn been renamed to :class:`~configparser.ConfigParser`. " "Support for inline comments is now turned off by default and section or " "option duplicates are not allowed in a single configuration source." msgstr "" #: whatsnew/3.2.rst:2139 msgid "Config parsers gained a new API based on the mapping protocol::" msgstr "" #: whatsnew/3.2.rst:2167 msgid "" "The new API is implemented on top of the classical API, so custom parser " "subclasses should be able to use it without modifications." msgstr "" #: whatsnew/3.2.rst:2170 msgid "" "The INI file structure accepted by config parsers can now be customized. " "Users can specify alternative option/value delimiters and comment prefixes, " "change the name of the *DEFAULT* section or switch the interpolation syntax." msgstr "" #: whatsnew/3.2.rst:2174 msgid "" "There is support for pluggable interpolation including an additional " "interpolation handler :class:`~configparser.ExtendedInterpolation`::" msgstr "" #: whatsnew/3.2.rst:2207 msgid "" "A number of smaller features were also introduced, like support for " "specifying encoding in read operations, specifying fallback values for get-" "functions, or reading directly from dictionaries and strings." msgstr "" #: whatsnew/3.2.rst:2211 msgid "(All changes contributed by Łukasz Langa.)" msgstr "" #: whatsnew/3.2.rst:2216 msgid "urllib.parse" msgstr "urllib.parse" #: whatsnew/3.2.rst:2218 msgid "" "A number of usability improvements were made for the :mod:`urllib.parse` " "module." msgstr "" #: whatsnew/3.2.rst:2220 msgid "" "The :func:`~urllib.parse.urlparse` function now supports `IPv6 `_ addresses as described in :rfc:`2732`:" msgstr "" #: whatsnew/3.2.rst:2232 msgid "" "The :func:`~urllib.parse.urldefrag` function now returns a :term:`named " "tuple`::" msgstr "" #: whatsnew/3.2.rst:2242 msgid "" "And, the :func:`~urllib.parse.urlencode` function is now much more flexible, " "accepting either a string or bytes type for the *query* argument. If it is " "a string, then the *safe*, *encoding*, and *error* parameters are sent to :" "func:`~urllib.parse.quote_plus` for encoding::" msgstr "" #: whatsnew/3.2.rst:2253 msgid "" "As detailed in :ref:`parsing-ascii-encoded-bytes`, all the :mod:`urllib." "parse` functions now accept ASCII-encoded byte strings as input, so long as " "they are not mixed with regular strings. If ASCII-encoded byte strings are " "given as parameters, the return types will also be an ASCII-encoded byte " "strings:" msgstr "" #: whatsnew/3.2.rst:2262 msgid "" "(Work by Nick Coghlan, Dan Mahn, and Senthil Kumaran in :issue:`2987`, :" "issue:`5468`, and :issue:`9873`.)" msgstr "" #: whatsnew/3.2.rst:2266 msgid "mailbox" msgstr "" #: whatsnew/3.2.rst:2268 msgid "" "Thanks to a concerted effort by R. David Murray, the :mod:`mailbox` module " "has been fixed for Python 3.2. The challenge was that mailbox had been " "originally designed with a text interface, but email messages are best " "represented with :class:`bytes` because various parts of a message may have " "different encodings." msgstr "" #: whatsnew/3.2.rst:2273 msgid "" "The solution harnessed the :mod:`email` package's binary support for parsing " "arbitrary email messages. In addition, the solution required a number of " "API changes." msgstr "" #: whatsnew/3.2.rst:2277 msgid "" "As expected, the :meth:`~mailbox.Mailbox.add` method for :class:`mailbox." "Mailbox` objects now accepts binary input." msgstr "" #: whatsnew/3.2.rst:2280 msgid "" ":class:`~io.StringIO` and text file input are deprecated. Also, string " "input will fail early if non-ASCII characters are used. Previously it would " "fail when the email was processed in a later step." msgstr "" #: whatsnew/3.2.rst:2284 msgid "" "There is also support for binary output. The :meth:`~mailbox.Mailbox." "get_file` method now returns a file in the binary mode (where it used to " "incorrectly set the file to text-mode). There is also a new :meth:`~mailbox." "Mailbox.get_bytes` method that returns a :class:`bytes` representation of a " "message corresponding to a given *key*." msgstr "" #: whatsnew/3.2.rst:2290 msgid "" "It is still possible to get non-binary output using the old API's :meth:" "`~mailbox.Mailbox.get_string` method, but that approach is not very useful. " "Instead, it is best to extract messages from a :class:`~mailbox.Message` " "object or to load them from binary input." msgstr "" #: whatsnew/3.2.rst:2295 msgid "" "(Contributed by R. David Murray, with efforts from Steffen Daode Nurpmeso " "and an initial patch by Victor Stinner in :issue:`9124`.)" msgstr "" #: whatsnew/3.2.rst:2299 msgid "turtledemo" msgstr "turtledemo" #: whatsnew/3.2.rst:2301 msgid "" "The demonstration code for the :mod:`turtle` module was moved from the " "*Demo* directory to main library. It includes over a dozen sample scripts " "with lively displays. Being on :attr:`sys.path`, it can now be run directly " "from the command-line:" msgstr "" #: whatsnew/3.2.rst:2310 msgid "" "(Moved from the Demo directory by Alexander Belopolsky in :issue:`10199`.)" msgstr "" #: whatsnew/3.2.rst:2313 msgid "Multi-threading" msgstr "Fils d'exécution" #: whatsnew/3.2.rst:2315 msgid "" "The mechanism for serializing execution of concurrently running Python " "threads (generally known as the :term:`GIL` or Global Interpreter Lock) has " "been rewritten. Among the objectives were more predictable switching " "intervals and reduced overhead due to lock contention and the number of " "ensuing system calls. The notion of a \"check interval\" to allow thread " "switches has been abandoned and replaced by an absolute duration expressed " "in seconds. This parameter is tunable through :func:`sys." "setswitchinterval()`. It currently defaults to 5 milliseconds." msgstr "" #: whatsnew/3.2.rst:2324 msgid "" "Additional details about the implementation can be read from a `python-dev " "mailing-list message `_ (however, \"priority requests\" as exposed in this " "message have not been kept for inclusion)." msgstr "" #: whatsnew/3.2.rst:2330 msgid "(Contributed by Antoine Pitrou.)" msgstr "(Contribution par Antoine Pitrou)" #: whatsnew/3.2.rst:2332 msgid "" "Regular and recursive locks now accept an optional *timeout* argument to " "their :meth:`~threading.Lock.acquire` method. (Contributed by Antoine " "Pitrou; :issue:`7316`.)" msgstr "" "Les verrous standards et récursifs acceptent désormais un argument optionnel " "*timeout* à leur méthode :meth:`~threading.Lock.acquire`. (Contribution par " "Antoine Pitrou; :issue:`7316`)." #: whatsnew/3.2.rst:2336 msgid "" "Similarly, :meth:`threading.Semaphore.acquire` also gained a *timeout* " "argument. (Contributed by Torsten Landschoff; :issue:`850728`.)" msgstr "" "Pareillement, :meth:`threading.Semaphore.acquire` acquière un argument " "*timeout* (Contribution par Torsten Landschoff; :issue:`850728`)." #: whatsnew/3.2.rst:2339 msgid "" "Regular and recursive lock acquisitions can now be interrupted by signals on " "platforms using Pthreads. This means that Python programs that deadlock " "while acquiring locks can be successfully killed by repeatedly sending " "SIGINT to the process (by pressing :kbd:`Ctrl+C` in most shells). " "(Contributed by Reid Kleckner; :issue:`8844`.)" msgstr "" #: whatsnew/3.2.rst:2347 #, fuzzy msgid "Optimizations" msgstr "Optimisation" #: whatsnew/3.2.rst:2349 msgid "A number of small performance enhancements have been added:" msgstr "" #: whatsnew/3.2.rst:2351 msgid "" "Python's peephole optimizer now recognizes patterns such ``x in {1, 2, 3}`` " "as being a test for membership in a set of constants. The optimizer recasts " "the :class:`set` as a :class:`frozenset` and stores the pre-built constant." msgstr "" #: whatsnew/3.2.rst:2355 msgid "" "Now that the speed penalty is gone, it is practical to start writing " "membership tests using set-notation. This style is both semantically clear " "and operationally fast::" msgstr "" #: whatsnew/3.2.rst:2363 msgid "" "(Patch and additional tests contributed by Dave Malcolm; :issue:`6690`)." msgstr "" #: whatsnew/3.2.rst:2365 msgid "" "Serializing and unserializing data using the :mod:`pickle` module is now " "several times faster." msgstr "" #: whatsnew/3.2.rst:2368 msgid "" "(Contributed by Alexandre Vassalotti, Antoine Pitrou and the Unladen Swallow " "team in :issue:`9410` and :issue:`3873`.)" msgstr "" #: whatsnew/3.2.rst:2371 msgid "" "The `Timsort algorithm `_ used in :" "meth:`list.sort` and :func:`sorted` now runs faster and uses less memory " "when called with a :term:`key function`. Previously, every element of a " "list was wrapped with a temporary object that remembered the key value " "associated with each element. Now, two arrays of keys and values are sorted " "in parallel. This saves the memory consumed by the sort wrappers, and it " "saves time lost to delegating comparisons." msgstr "" #: whatsnew/3.2.rst:2379 msgid "(Patch by Daniel Stutzbach in :issue:`9915`.)" msgstr "" #: whatsnew/3.2.rst:2381 msgid "" "JSON decoding performance is improved and memory consumption is reduced " "whenever the same string is repeated for multiple keys. Also, JSON encoding " "now uses the C speedups when the ``sort_keys`` argument is true." msgstr "" #: whatsnew/3.2.rst:2385 msgid "" "(Contributed by Antoine Pitrou in :issue:`7451` and by Raymond Hettinger and " "Antoine Pitrou in :issue:`10314`.)" msgstr "" #: whatsnew/3.2.rst:2388 msgid "" "Recursive locks (created with the :func:`threading.RLock` API) now benefit " "from a C implementation which makes them as fast as regular locks, and " "between 10x and 15x faster than their previous pure Python implementation." msgstr "" #: whatsnew/3.2.rst:2392 msgid "(Contributed by Antoine Pitrou; :issue:`3001`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`3001`.)" #: whatsnew/3.2.rst:2394 msgid "" "The fast-search algorithm in stringlib is now used by the :meth:`split`, :" "meth:`rsplit`, :meth:`splitlines` and :meth:`replace` methods on :class:" "`bytes`, :class:`bytearray` and :class:`str` objects. Likewise, the " "algorithm is also used by :meth:`rfind`, :meth:`rindex`, :meth:`rsplit` and :" "meth:`rpartition`." msgstr "" #: whatsnew/3.2.rst:2400 msgid "(Patch by Florent Xicluna in :issue:`7622` and :issue:`7462`.)" msgstr "" #: whatsnew/3.2.rst:2403 msgid "" "Integer to string conversions now work two \"digits\" at a time, reducing " "the number of division and modulo operations." msgstr "" #: whatsnew/3.2.rst:2406 msgid "(:issue:`6713` by Gawain Bolton, Mark Dickinson, and Victor Stinner.)" msgstr "" #: whatsnew/3.2.rst:2408 msgid "" "There were several other minor optimizations. Set differencing now runs " "faster when one operand is much larger than the other (patch by Andress " "Bennetts in :issue:`8685`). The :meth:`array.repeat` method has a faster " "implementation (:issue:`1569291` by Alexander Belopolsky). The :class:" "`BaseHTTPRequestHandler` has more efficient buffering (:issue:`3709` by " "Andrew Schaaf). The :func:`operator.attrgetter` function has been sped-up (:" "issue:`10160` by Christos Georgiou). And :class:`ConfigParser` loads multi-" "line arguments a bit faster (:issue:`7113` by Łukasz Langa)." msgstr "" #: whatsnew/3.2.rst:2419 msgid "Unicode" msgstr "Unicode" #: whatsnew/3.2.rst:2421 msgid "" "Python has been updated to `Unicode 6.0.0 `_. The update to the standard adds over 2,000 new characters " "including `emoji `_ symbols which are " "important for mobile phones." msgstr "" #: whatsnew/3.2.rst:2426 msgid "" "In addition, the updated standard has altered the character properties for " "two Kannada characters (U+0CF1, U+0CF2) and one New Tai Lue numeric " "character (U+19DA), making the former eligible for use in identifiers while " "disqualifying the latter. For more information, see `Unicode Character " "Database Changes `_." msgstr "" #: whatsnew/3.2.rst:2434 msgid "Codecs" msgstr "Codecs" #: whatsnew/3.2.rst:2436 msgid "Support was added for *cp720* Arabic DOS encoding (:issue:`1616979`)." msgstr "" #: whatsnew/3.2.rst:2438 msgid "" "MBCS encoding no longer ignores the error handler argument. In the default " "strict mode, it raises an :exc:`UnicodeDecodeError` when it encounters an " "undecodable byte sequence and an :exc:`UnicodeEncodeError` for an " "unencodable character." msgstr "" #: whatsnew/3.2.rst:2443 msgid "" "The MBCS codec supports ``'strict'`` and ``'ignore'`` error handlers for " "decoding, and ``'strict'`` and ``'replace'`` for encoding." msgstr "" #: whatsnew/3.2.rst:2446 msgid "" "To emulate Python3.1 MBCS encoding, select the ``'ignore'`` handler for " "decoding and the ``'replace'`` handler for encoding." msgstr "" #: whatsnew/3.2.rst:2449 msgid "" "On Mac OS X, Python decodes command line arguments with ``'utf-8'`` rather " "than the locale encoding." msgstr "" #: whatsnew/3.2.rst:2452 msgid "" "By default, :mod:`tarfile` uses ``'utf-8'`` encoding on Windows (instead of " "``'mbcs'``) and the ``'surrogateescape'`` error handler on all operating " "systems." msgstr "" #: whatsnew/3.2.rst:2458 msgid "Documentation" msgstr "Documentation" #: whatsnew/3.2.rst:2460 msgid "The documentation continues to be improved." msgstr "" #: whatsnew/3.2.rst:2462 msgid "" "A table of quick links has been added to the top of lengthy sections such " "as :ref:`built-in-funcs`. In the case of :mod:`itertools`, the links are " "accompanied by tables of cheatsheet-style summaries to provide an overview " "and memory jog without having to read all of the docs." msgstr "" #: whatsnew/3.2.rst:2467 msgid "" "In some cases, the pure Python source code can be a helpful adjunct to the " "documentation, so now many modules now feature quick links to the latest " "version of the source code. For example, the :mod:`functools` module " "documentation has a quick link at the top labeled:" msgstr "" #: whatsnew/3.2.rst:2472 #, fuzzy msgid "**Source code** :source:`Lib/functools.py`." msgstr "**Code source :** :source:`Lib/functools.py`" #: whatsnew/3.2.rst:2474 msgid "" "(Contributed by Raymond Hettinger; see `rationale `_.)" msgstr "" #: whatsnew/3.2.rst:2477 msgid "" "The docs now contain more examples and recipes. In particular, :mod:`re` " "module has an extensive section, :ref:`re-examples`. Likewise, the :mod:" "`itertools` module continues to be updated with new :ref:`itertools-recipes`." msgstr "" #: whatsnew/3.2.rst:2482 msgid "" "The :mod:`datetime` module now has an auxiliary implementation in pure " "Python. No functionality was changed. This just provides an easier-to-read " "alternate implementation." msgstr "" #: whatsnew/3.2.rst:2486 msgid "(Contributed by Alexander Belopolsky in :issue:`9528`.)" msgstr "(Contribution par Alexander Belopolsky; :issue:`9528`.)" #: whatsnew/3.2.rst:2488 msgid "" "The unmaintained :file:`Demo` directory has been removed. Some demos were " "integrated into the documentation, some were moved to the :file:`Tools/demo` " "directory, and others were removed altogether." msgstr "" #: whatsnew/3.2.rst:2492 msgid "(Contributed by Georg Brandl in :issue:`7962`.)" msgstr "(Contribution par Georg Brandl; :issue:`7962`.)" #: whatsnew/3.2.rst:2496 msgid "IDLE" msgstr "IDLE" #: whatsnew/3.2.rst:2498 msgid "" "The format menu now has an option to clean source files by stripping " "trailing whitespace." msgstr "" #: whatsnew/3.2.rst:2501 msgid "(Contributed by Raymond Hettinger; :issue:`5150`.)" msgstr "(Contribution par Raymond Hettinger; :issue:`5150`.)" #: whatsnew/3.2.rst:2503 msgid "IDLE on Mac OS X now works with both Carbon AquaTk and Cocoa AquaTk." msgstr "" #: whatsnew/3.2.rst:2505 msgid "" "(Contributed by Kevin Walzer, Ned Deily, and Ronald Oussoren; :issue:`6075`.)" msgstr "" #: whatsnew/3.2.rst:2508 msgid "Code Repository" msgstr "" #: whatsnew/3.2.rst:2510 msgid "" "In addition to the existing Subversion code repository at https://svn.python." "org there is now a `Mercurial `_ repository " "at https://hg.python.org/\\ ." msgstr "" #: whatsnew/3.2.rst:2514 msgid "" "After the 3.2 release, there are plans to switch to Mercurial as the primary " "repository. This distributed version control system should make it easier " "for members of the community to create and share external changesets. See :" "pep:`385` for details." msgstr "" #: whatsnew/3.2.rst:2519 msgid "" "To learn to use the new version control system, see the `Quick Start " "`_ or the `Guide to Mercurial " "Workflows `_." msgstr "" #: whatsnew/3.2.rst:2525 msgid "Build and C API Changes" msgstr "" #: whatsnew/3.2.rst:2527 msgid "Changes to Python's build process and to the C API include:" msgstr "" #: whatsnew/3.2.rst:2529 msgid "" "The *idle*, *pydoc* and *2to3* scripts are now installed with a version-" "specific suffix on ``make altinstall`` (:issue:`10679`)." msgstr "" #: whatsnew/3.2.rst:2532 msgid "" "The C functions that access the Unicode Database now accept and return " "characters from the full Unicode range, even on narrow unicode builds " "(Py_UNICODE_TOLOWER, Py_UNICODE_ISDECIMAL, and others). A visible " "difference in Python is that :func:`unicodedata.numeric` now returns the " "correct value for large code points, and :func:`repr` may consider more " "characters as printable." msgstr "" #: whatsnew/3.2.rst:2539 msgid "" "(Reported by Bupjoe Lee and fixed by Amaury Forgeot D'Arc; :issue:`5127`.)" msgstr "" #: whatsnew/3.2.rst:2541 msgid "" "Computed gotos are now enabled by default on supported compilers (which are " "detected by the configure script). They can still be disabled selectively " "by specifying ``--without-computed-gotos``." msgstr "" #: whatsnew/3.2.rst:2545 msgid "(Contributed by Antoine Pitrou; :issue:`9203`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`9203`.)" #: whatsnew/3.2.rst:2547 msgid "" "The option ``--with-wctype-functions`` was removed. The built-in unicode " "database is now used for all functions." msgstr "" #: whatsnew/3.2.rst:2550 msgid "(Contributed by Amaury Forgeot D'Arc; :issue:`9210`.)" msgstr "(Contribution par Amaury Forgeot D'Arc; :issue:`9210`.)" #: whatsnew/3.2.rst:2552 msgid "" "Hash values are now values of a new type, :c:type:`Py_hash_t`, which is " "defined to be the same size as a pointer. Previously they were of type " "long, which on some 64-bit operating systems is still only 32 bits long. As " "a result of this fix, :class:`set` and :class:`dict` can now hold more than " "``2**32`` entries on builds with 64-bit pointers (previously, they could " "grow to that size but their performance degraded catastrophically)." msgstr "" #: whatsnew/3.2.rst:2559 msgid "" "(Suggested by Raymond Hettinger and implemented by Benjamin Peterson; :issue:" "`9778`.)" msgstr "" #: whatsnew/3.2.rst:2562 msgid "" "A new macro :c:macro:`Py_VA_COPY` copies the state of the variable argument " "list. It is equivalent to C99 *va_copy* but available on all Python " "platforms (:issue:`2443`)." msgstr "" #: whatsnew/3.2.rst:2566 msgid "" "A new C API function :c:func:`PySys_SetArgvEx` allows an embedded " "interpreter to set :attr:`sys.argv` without also modifying :attr:`sys.path` " "(:issue:`5753`)." msgstr "" #: whatsnew/3.2.rst:2570 msgid "" ":c:macro:`PyEval_CallObject` is now only available in macro form. The " "function declaration, which was kept for backwards compatibility reasons, is " "now removed -- the macro was introduced in 1997 (:issue:`8276`)." msgstr "" #: whatsnew/3.2.rst:2574 msgid "" "There is a new function :c:func:`PyLong_AsLongLongAndOverflow` which is " "analogous to :c:func:`PyLong_AsLongAndOverflow`. They both serve to convert " "Python :class:`int` into a native fixed-width type while providing detection " "of cases where the conversion won't fit (:issue:`7767`)." msgstr "" #: whatsnew/3.2.rst:2579 msgid "" "The :c:func:`PyUnicode_CompareWithASCIIString` function now returns *not " "equal* if the Python string is *NUL* terminated." msgstr "" #: whatsnew/3.2.rst:2582 msgid "" "There is a new function :c:func:`PyErr_NewExceptionWithDoc` that is like :c:" "func:`PyErr_NewException` but allows a docstring to be specified. This lets " "C exceptions have the same self-documenting capabilities as their pure " "Python counterparts (:issue:`7033`)." msgstr "" #: whatsnew/3.2.rst:2587 msgid "" "When compiled with the ``--with-valgrind`` option, the pymalloc allocator " "will be automatically disabled when running under Valgrind. This gives " "improved memory leak detection when running under Valgrind, while taking " "advantage of pymalloc at other times (:issue:`2422`)." msgstr "" #: whatsnew/3.2.rst:2592 msgid "" "Removed the ``O?`` format from the *PyArg_Parse* functions. The format is " "no longer used and it had never been documented (:issue:`8837`)." msgstr "" #: whatsnew/3.2.rst:2595 msgid "" "There were a number of other small changes to the C-API. See the `Misc/NEWS " "`__ file for a " "complete list." msgstr "" #: whatsnew/3.2.rst:2599 msgid "" "Also, there were a number of updates to the Mac OS X build, see `Mac/" "BuildScript/README.txt `_ for details. For users running a 32/64-bit build, " "there is a known problem with the default Tcl/Tk on Mac OS X 10.6. " "Accordingly, we recommend installing an updated alternative such as " "`ActiveState Tcl/Tk 8.5.9 `_\\. See https://www.python.org/download/mac/tcltk/ for " "additional details." msgstr "" #: whatsnew/3.2.rst:2608 msgid "Porting to Python 3.2" msgstr "Portage vers Python 3.2" #: whatsnew/3.2.rst:2610 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" msgstr "" #: whatsnew/3.2.rst:2613 msgid "" "The :mod:`configparser` module has a number of clean-ups. The major change " "is to replace the old :class:`ConfigParser` class with long-standing " "preferred alternative :class:`SafeConfigParser`. In addition there are a " "number of smaller incompatibilities:" msgstr "" #: whatsnew/3.2.rst:2618 msgid "" "The interpolation syntax is now validated on :meth:`~configparser." "ConfigParser.get` and :meth:`~configparser.ConfigParser.set` operations. In " "the default interpolation scheme, only two tokens with percent signs are " "valid: ``%(name)s`` and ``%%``, the latter being an escaped percent sign." msgstr "" #: whatsnew/3.2.rst:2624 msgid "" "The :meth:`~configparser.ConfigParser.set` and :meth:`~configparser." "ConfigParser.add_section` methods now verify that values are actual " "strings. Formerly, unsupported types could be introduced unintentionally." msgstr "" #: whatsnew/3.2.rst:2629 msgid "" "Duplicate sections or options from a single source now raise either :exc:" "`~configparser.DuplicateSectionError` or :exc:`~configparser." "DuplicateOptionError`. Formerly, duplicates would silently overwrite a " "previous entry." msgstr "" #: whatsnew/3.2.rst:2634 msgid "" "Inline comments are now disabled by default so now the **;** character can " "be safely used in values." msgstr "" #: whatsnew/3.2.rst:2637 msgid "" "Comments now can be indented. Consequently, for **;** or **#** to appear at " "the start of a line in multiline values, it has to be interpolated. This " "keeps comment prefix characters in values from being mistaken as comments." msgstr "" #: whatsnew/3.2.rst:2641 msgid "" "``\"\"`` is now a valid value and is no longer automatically converted to an " "empty string. For empty strings, use ``\"option =\"`` in a line." msgstr "" #: whatsnew/3.2.rst:2644 msgid "" "The :mod:`nntplib` module was reworked extensively, meaning that its APIs " "are often incompatible with the 3.1 APIs." msgstr "" #: whatsnew/3.2.rst:2647 msgid "" ":class:`bytearray` objects can no longer be used as filenames; instead, they " "should be converted to :class:`bytes`." msgstr "" "Les objets :class:`bytearray` ne peuvent plus être utilisés en tant que nom " "de fichiers : ils doivent être convertis en :class:`bytes` à la place." #: whatsnew/3.2.rst:2650 msgid "" "The :meth:`array.tostring` and :meth:`array.fromstring` have been renamed " "to :meth:`array.tobytes` and :meth:`array.frombytes` for clarity. The old " "names have been deprecated. (See :issue:`8990`.)" msgstr "" #: whatsnew/3.2.rst:2654 msgid "``PyArg_Parse*()`` functions:" msgstr "Les fonctions ``PyArg_Parse*()`` :" #: whatsnew/3.2.rst:2656 msgid "\"t#\" format has been removed: use \"s#\" or \"s*\" instead" msgstr "Le format \"t#\" a été supprimé : utiliser \"s#\" ou \"s*\" à la place" #: whatsnew/3.2.rst:2657 msgid "\"w\" and \"w#\" formats has been removed: use \"w*\" instead" msgstr "" "Les formats \"w\" et \"w#\" ont été supprimés : utiliser \"w*\" à la place" #: whatsnew/3.2.rst:2659 msgid "" "The :c:type:`PyCObject` type, deprecated in 3.1, has been removed. To wrap " "opaque C pointers in Python objects, the :c:type:`PyCapsule` API should be " "used instead; the new type has a well-defined interface for passing typing " "safety information and a less complicated signature for calling a destructor." msgstr "" #: whatsnew/3.2.rst:2664 msgid "" "The :func:`sys.setfilesystemencoding` function was removed because it had a " "flawed design." msgstr "" #: whatsnew/3.2.rst:2667 msgid "" "The :func:`random.seed` function and method now salt string seeds with an " "sha512 hash function. To access the previous version of *seed* in order to " "reproduce Python 3.1 sequences, set the *version* argument to *1*, ``random." "seed(s, version=1)``." msgstr "" #: whatsnew/3.2.rst:2672 msgid "" "The previously deprecated :func:`string.maketrans` function has been removed " "in favor of the static methods :meth:`bytes.maketrans` and :meth:`bytearray." "maketrans`. This change solves the confusion around which types were " "supported by the :mod:`string` module. Now, :class:`str`, :class:`bytes`, " "and :class:`bytearray` each have their own **maketrans** and **translate** " "methods with intermediate translation tables of the appropriate type." msgstr "" #: whatsnew/3.2.rst:2680 msgid "(Contributed by Georg Brandl; :issue:`5675`.)" msgstr "(Contribution par Georg Brandl; :issue:`5675`.)" #: whatsnew/3.2.rst:2682 msgid "" "The previously deprecated :func:`contextlib.nested` function has been " "removed in favor of a plain :keyword:`with` statement which can accept " "multiple context managers. The latter technique is faster (because it is " "built-in), and it does a better job finalizing multiple context managers " "when one of them raises an exception::" msgstr "" #: whatsnew/3.2.rst:2693 msgid "" "(Contributed by Georg Brandl and Mattias Brändström; `appspot issue 53094 " "`_.)" msgstr "" #: whatsnew/3.2.rst:2696 msgid "" ":func:`struct.pack` now only allows bytes for the ``s`` string pack code. " "Formerly, it would accept text arguments and implicitly encode them to bytes " "using UTF-8. This was problematic because it made assumptions about the " "correct encoding and because a variable-length encoding can fail when " "writing to fixed length segment of a structure." msgstr "" #: whatsnew/3.2.rst:2702 msgid "" "Code such as ``struct.pack('<6sHHBBB', 'GIF87a', x, y)`` should be rewritten " "with to use bytes instead of text, ``struct.pack('<6sHHBBB', b'GIF87a', x, " "y)``." msgstr "" #: whatsnew/3.2.rst:2705 msgid "" "(Discovered by David Beazley and fixed by Victor Stinner; :issue:`10783`.)" msgstr "" #: whatsnew/3.2.rst:2707 msgid "" "The :class:`xml.etree.ElementTree` class now raises an :exc:`xml.etree." "ElementTree.ParseError` when a parse fails. Previously it raised an :exc:" "`xml.parsers.expat.ExpatError`." msgstr "" #: whatsnew/3.2.rst:2711 msgid "" "The new, longer :func:`str` value on floats may break doctests which rely on " "the old output format." msgstr "" #: whatsnew/3.2.rst:2714 msgid "" "In :class:`subprocess.Popen`, the default value for *close_fds* is now " "``True`` under Unix; under Windows, it is ``True`` if the three standard " "streams are set to ``None``, ``False`` otherwise. Previously, *close_fds* " "was always ``False`` by default, which produced difficult to solve bugs or " "race conditions when open file descriptors would leak into the child process." msgstr "" #: whatsnew/3.2.rst:2721 msgid "" "Support for legacy HTTP 0.9 has been removed from :mod:`urllib.request` and :" "mod:`http.client`. Such support is still present on the server side (in :" "mod:`http.server`)." msgstr "" #: whatsnew/3.2.rst:2725 msgid "(Contributed by Antoine Pitrou, :issue:`10711`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`10711`.)" #: whatsnew/3.2.rst:2727 msgid "" "SSL sockets in timeout mode now raise :exc:`socket.timeout` when a timeout " "occurs, rather than a generic :exc:`~ssl.SSLError`." msgstr "" #: whatsnew/3.2.rst:2730 msgid "(Contributed by Antoine Pitrou, :issue:`10272`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`10272`.)" #: whatsnew/3.2.rst:2732 msgid "" "The misleading functions :c:func:`PyEval_AcquireLock()` and :c:func:" "`PyEval_ReleaseLock()` have been officially deprecated. The thread-state " "aware APIs (such as :c:func:`PyEval_SaveThread()` and :c:func:" "`PyEval_RestoreThread()`) should be used instead." msgstr "" #: whatsnew/3.2.rst:2737 msgid "" "Due to security risks, :func:`asyncore.handle_accept` has been deprecated, " "and a new function, :func:`asyncore.handle_accepted`, was added to replace " "it." msgstr "" #: whatsnew/3.2.rst:2740 msgid "(Contributed by Giampaolo Rodola in :issue:`6706`.)" msgstr "(Contribution par Giampaolo Rodola; :issue:`6706`.)" #: whatsnew/3.2.rst:2742 msgid "" "Due to the new :term:`GIL` implementation, :c:func:`PyEval_InitThreads()` " "cannot be called before :c:func:`Py_Initialize()` anymore." msgstr ""