# 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-07-23 14:38+0200\n" "PO-Revision-Date: 2018-08-03 23:47+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: whatsnew/3.7.rst:3 #, fuzzy msgid "What's New In Python 3.7" msgstr "Nouveautés de Python 3.0" #: whatsnew/3.7.rst:0 msgid "Editor" msgstr "Rédacteur" #: whatsnew/3.7.rst:5 msgid "Elvis Pranskevichus " msgstr "" #: whatsnew/3.7.rst:47 msgid "" "This article explains the new features in Python 3.7, compared to 3.6. " "Python 3.7 was released on June 27, 2018. For full details, see the :ref:" "`changelog `." msgstr "" #: whatsnew/3.7.rst:53 msgid "Summary -- Release Highlights" msgstr "" #: whatsnew/3.7.rst:58 msgid "New syntax features:" msgstr "" #: whatsnew/3.7.rst:60 msgid "" ":ref:`PEP 563 `, postponed evaluation of type annotations." msgstr "" #: whatsnew/3.7.rst:62 msgid "Backwards incompatible syntax changes:" msgstr "" #: whatsnew/3.7.rst:64 msgid ":keyword:`async` and :keyword:`await` are now reserved keywords." msgstr "" #: whatsnew/3.7.rst:66 msgid "New library modules:" msgstr "" #: whatsnew/3.7.rst:68 msgid "" ":mod:`contextvars`: :ref:`PEP 567 -- Context Variables `" msgstr "" #: whatsnew/3.7.rst:69 msgid ":mod:`dataclasses`: :ref:`PEP 557 -- Data Classes `" msgstr "" #: whatsnew/3.7.rst:70 msgid ":ref:`whatsnew37_importlib_resources`" msgstr ":ref:`whatsnew37_importlib_resources`" #: whatsnew/3.7.rst:72 msgid "New built-in features:" msgstr "" #: whatsnew/3.7.rst:74 msgid "" ":ref:`PEP 553 `, the new :func:`breakpoint` function." msgstr "" #: whatsnew/3.7.rst:76 msgid "Python data model improvements:" msgstr "" #: whatsnew/3.7.rst:78 msgid "" ":ref:`PEP 562 `, customization of access to module " "attributes." msgstr "" #: whatsnew/3.7.rst:81 msgid "" ":ref:`PEP 560 `, core support for typing module and " "generic types." msgstr "" #: whatsnew/3.7.rst:84 msgid "" "the insertion-order preservation nature of :ref:`dict ` " "objects `has been declared`_ to be an official part of the Python language " "spec." msgstr "" #: whatsnew/3.7.rst:90 msgid "Significant improvements in the standard library:" msgstr "" #: whatsnew/3.7.rst:92 msgid "" "The :mod:`asyncio` module has received new features, significant :ref:" "`usability and performance improvements `." msgstr "" #: whatsnew/3.7.rst:95 msgid "" "The :mod:`time` module gained support for :ref:`functions with nanosecond " "resolution `." msgstr "" #: whatsnew/3.7.rst:98 msgid "CPython implementation improvements:" msgstr "" #: whatsnew/3.7.rst:100 msgid "Avoiding the use of ASCII as a default text encoding:" msgstr "" #: whatsnew/3.7.rst:102 msgid ":ref:`PEP 538 `, legacy C locale coercion" msgstr "" #: whatsnew/3.7.rst:103 msgid ":ref:`PEP 540 `, forced UTF-8 runtime mode" msgstr "" #: whatsnew/3.7.rst:104 msgid ":ref:`PEP 552 `, deterministic .pycs" msgstr "" #: whatsnew/3.7.rst:105 msgid ":ref:`New Python Development Mode `" msgstr "" #: whatsnew/3.7.rst:106 msgid "" ":ref:`PEP 565 `, improved :exc:`DeprecationWarning` " "handling" msgstr "" #: whatsnew/3.7.rst:109 msgid "C API improvements:" msgstr "" #: whatsnew/3.7.rst:111 msgid ":ref:`PEP 539 `, new C API for thread-local storage" msgstr "" #: whatsnew/3.7.rst:113 msgid "Documentation improvements:" msgstr "" #: whatsnew/3.7.rst:115 msgid ":ref:`PEP 545 `, Python documentation translations" msgstr "" #: whatsnew/3.7.rst:116 msgid "" "New documentation translations: `Japanese `_, " "`French `_, and `Korean `_." msgstr "" #: whatsnew/3.7.rst:120 msgid "" "This release features notable performance improvements in many areas. The :" "ref:`whatsnew37-perf` section lists them in detail." msgstr "" #: whatsnew/3.7.rst:123 msgid "" "For a list of changes that may affect compatibility with previous Python " "releases please refer to the :ref:`porting-to-python-37` section." msgstr "" #: whatsnew/3.7.rst:128 msgid "New Features" msgstr "Nouvelles fonctionnalités" #: whatsnew/3.7.rst:133 msgid "PEP 563: Postponed Evaluation of Annotations" msgstr "" #: whatsnew/3.7.rst:135 msgid "" "The advent of type hints in Python uncovered two glaring usability issues " "with the functionality of annotations added in :pep:`3107` and refined " "further in :pep:`526`:" msgstr "" #: whatsnew/3.7.rst:139 msgid "" "annotations could only use names which were already available in the current " "scope, in other words they didn't support forward references of any kind; and" msgstr "" #: whatsnew/3.7.rst:143 msgid "" "annotating source code had adverse effects on startup time of Python " "programs." msgstr "" #: whatsnew/3.7.rst:146 msgid "" "Both of these issues are fixed by postponing the evaluation of annotations. " "Instead of compiling code which executes expressions in annotations at their " "definition time, the compiler stores the annotation in a string form " "equivalent to the AST of the expression in question. If needed, annotations " "can be resolved at runtime using :func:`typing.get_type_hints`. In the " "common case where this is not required, the annotations are cheaper to store " "(since short strings are interned by the interpreter) and make startup time " "faster." msgstr "" #: whatsnew/3.7.rst:155 msgid "" "Usability-wise, annotations now support forward references, making the " "following syntax valid::" msgstr "" #: whatsnew/3.7.rst:169 msgid "" "Since this change breaks compatibility, the new behavior needs to be enabled " "on a per-module basis in Python 3.7 using a :mod:`__future__` import::" msgstr "" #: whatsnew/3.7.rst:174 msgid "It will become the default in Python 3.10." msgstr "" #: whatsnew/3.7.rst:178 #, fuzzy msgid ":pep:`563` -- Postponed evaluation of annotations" msgstr ":pep:`563` — Évaluation différée des annotations" #: whatsnew/3.7.rst:179 msgid "PEP written and implemented by Łukasz Langa." msgstr "" #: whatsnew/3.7.rst:185 msgid "PEP 538: Legacy C Locale Coercion" msgstr "" #: whatsnew/3.7.rst:187 msgid "" "An ongoing challenge within the Python 3 series has been determining a " "sensible default strategy for handling the \"7-bit ASCII\" text encoding " "assumption currently implied by the use of the default C or POSIX locale on " "non-Windows platforms." msgstr "" #: whatsnew/3.7.rst:192 msgid "" ":pep:`538` updates the default interpreter command line interface to " "automatically coerce that locale to an available UTF-8 based locale as " "described in the documentation of the new :envvar:`PYTHONCOERCECLOCALE` " "environment variable. Automatically setting ``LC_CTYPE`` this way means that " "both the core interpreter and locale-aware C extensions (such as :mod:" "`readline`) will assume the use of UTF-8 as the default text encoding, " "rather than ASCII." msgstr "" #: whatsnew/3.7.rst:200 msgid "" "The platform support definition in :pep:`11` has also been updated to limit " "full text handling support to suitably configured non-ASCII based locales." msgstr "" #: whatsnew/3.7.rst:203 msgid "" "As part of this change, the default error handler for :data:`~sys.stdin` " "and :data:`~sys.stdout` is now ``surrogateescape`` (rather than ``strict``) " "when using any of the defined coercion target locales (currently ``C." "UTF-8``, ``C.utf8``, and ``UTF-8``). The default error handler for :data:" "`~sys.stderr` continues to be ``backslashreplace``, regardless of locale." msgstr "" #: whatsnew/3.7.rst:209 msgid "" "Locale coercion is silent by default, but to assist in debugging potentially " "locale related integration problems, explicit warnings (emitted directly on :" "data:`~sys.stderr`) can be requested by setting " "``PYTHONCOERCECLOCALE=warn``. This setting will also cause the Python " "runtime to emit a warning if the legacy C locale remains active when the " "core interpreter is initialized." msgstr "" #: whatsnew/3.7.rst:215 msgid "" "While :pep:`538`'s locale coercion has the benefit of also affecting " "extension modules (such as GNU ``readline``), as well as child processes " "(including those running non-Python applications and older versions of " "Python), it has the downside of requiring that a suitable target locale be " "present on the running system. To better handle the case where no suitable " "target locale is available (as occurs on RHEL/CentOS 7, for example), Python " "3.7 also implements :ref:`whatsnew37-pep540`." msgstr "" #: whatsnew/3.7.rst:225 msgid ":pep:`538` -- Coercing the legacy C locale to a UTF-8 based locale" msgstr "" #: whatsnew/3.7.rst:226 msgid "PEP written and implemented by Nick Coghlan." msgstr "" #: whatsnew/3.7.rst:232 msgid "PEP 540: Forced UTF-8 Runtime Mode" msgstr "" #: whatsnew/3.7.rst:234 msgid "" "The new :option:`-X` ``utf8`` command line option and :envvar:`PYTHONUTF8` " "environment variable can be used to enable the :ref:`Python UTF-8 Mode `." msgstr "" #: whatsnew/3.7.rst:238 msgid "" "When in UTF-8 mode, CPython ignores the locale settings, and uses the UTF-8 " "encoding by default. The error handlers for :data:`sys.stdin` and :data:" "`sys.stdout` streams are set to ``surrogateescape``." msgstr "" #: whatsnew/3.7.rst:242 msgid "" "The forced UTF-8 mode can be used to change the text handling behavior in an " "embedded Python interpreter without changing the locale settings of an " "embedding application." msgstr "" #: whatsnew/3.7.rst:246 msgid "" "While :pep:`540`'s UTF-8 mode has the benefit of working regardless of which " "locales are available on the running system, it has the downside of having " "no effect on extension modules (such as GNU ``readline``), child processes " "running non-Python applications, and child processes running older versions " "of Python. To reduce the risk of corrupting text data when communicating " "with such components, Python 3.7 also implements :ref:`whatsnew37-pep540`)." msgstr "" #: whatsnew/3.7.rst:253 msgid "" "The UTF-8 mode is enabled by default when the locale is ``C`` or ``POSIX``, " "and the :pep:`538` locale coercion feature fails to change it to a UTF-8 " "based alternative (whether that failure is due to ``PYTHONCOERCECLOCALE=0`` " "being set, ``LC_ALL`` being set, or the lack of a suitable target locale)." msgstr "" #: whatsnew/3.7.rst:260 msgid ":pep:`540` -- Add a new UTF-8 mode" msgstr "" #: whatsnew/3.7.rst:363 msgid "PEP written and implemented by Victor Stinner" msgstr "" #: whatsnew/3.7.rst:267 msgid "PEP 553: Built-in ``breakpoint()``" msgstr "" #: whatsnew/3.7.rst:269 msgid "" "Python 3.7 includes the new built-in :func:`breakpoint` function as an easy " "and consistent way to enter the Python debugger." msgstr "" #: whatsnew/3.7.rst:272 msgid "" "Built-in ``breakpoint()`` calls :func:`sys.breakpointhook`. By default, the " "latter imports :mod:`pdb` and then calls ``pdb.set_trace()``, but by binding " "``sys.breakpointhook()`` to the function of your choosing, ``breakpoint()`` " "can enter any debugger. Additionally, the environment variable :envvar:" "`PYTHONBREAKPOINT` can be set to the callable of your debugger of choice. " "Set ``PYTHONBREAKPOINT=0`` to completely disable built-in ``breakpoint()``." msgstr "" #: whatsnew/3.7.rst:282 msgid ":pep:`553` -- Built-in breakpoint()" msgstr "" #: whatsnew/3.7.rst:283 msgid "PEP written and implemented by Barry Warsaw" msgstr "" #: whatsnew/3.7.rst:289 msgid "PEP 539: New C API for Thread-Local Storage" msgstr "" #: whatsnew/3.7.rst:291 msgid "" "While Python provides a C API for thread-local storage support; the " "existing :ref:`Thread Local Storage (TLS) API ` " "has used :c:expr:`int` to represent TLS keys across all platforms. This has " "not generally been a problem for officially support platforms, but that is " "neither POSIX-compliant, nor portable in any practical sense." msgstr "" #: whatsnew/3.7.rst:297 msgid "" ":pep:`539` changes this by providing a new :ref:`Thread Specific Storage " "(TSS) API ` to CPython which supersedes use of " "the existing TLS API within the CPython interpreter, while deprecating the " "existing API. The TSS API uses a new type :c:type:`Py_tss_t` instead of :c:" "expr:`int` to represent TSS keys--an opaque type the definition of which may " "depend on the underlying TLS implementation. Therefore, this will allow to " "build CPython on platforms where the native TLS key is defined in a way that " "cannot be safely cast to :c:expr:`int`." msgstr "" #: whatsnew/3.7.rst:306 msgid "" "Note that on platforms where the native TLS key is defined in a way that " "cannot be safely cast to :c:expr:`int`, all functions of the existing TLS " "API will be no-op and immediately return failure. This indicates clearly " "that the old API is not supported on platforms where it cannot be used " "reliably, and that no effort will be made to add such support." msgstr "" #: whatsnew/3.7.rst:314 msgid ":pep:`539` -- A New C-API for Thread-Local Storage in CPython" msgstr "" #: whatsnew/3.7.rst:315 msgid "PEP written by Erik M. Bray; implementation by Masayuki Yamamoto." msgstr "" #: whatsnew/3.7.rst:321 msgid "PEP 562: Customization of Access to Module Attributes" msgstr "" #: whatsnew/3.7.rst:323 msgid "" "Python 3.7 allows defining :meth:`__getattr__` on modules and will call it " "whenever a module attribute is otherwise not found. Defining :meth:" "`__dir__` on modules is now also allowed." msgstr "" #: whatsnew/3.7.rst:327 msgid "" "A typical example of where this may be useful is module attribute " "deprecation and lazy loading." msgstr "" #: whatsnew/3.7.rst:332 #, fuzzy msgid ":pep:`562` -- Module ``__getattr__`` and ``__dir__``" msgstr ":pep:`562` — ``__getattr__`` et ``__dir__`` pour un module" #: whatsnew/3.7.rst:422 msgid "PEP written and implemented by Ivan Levkivskyi" msgstr "" #: whatsnew/3.7.rst:339 msgid "PEP 564: New Time Functions With Nanosecond Resolution" msgstr "" #: whatsnew/3.7.rst:341 msgid "" "The resolution of clocks in modern systems can exceed the limited precision " "of a floating point number returned by the :func:`time.time` function and " "its variants. To avoid loss of precision, :pep:`564` adds six new " "\"nanosecond\" variants of the existing timer functions to the :mod:`time` " "module:" msgstr "" #: whatsnew/3.7.rst:1447 msgid ":func:`time.clock_gettime_ns`" msgstr ":func:`time.clock_gettime_ns`" #: whatsnew/3.7.rst:1448 msgid ":func:`time.clock_settime_ns`" msgstr ":func:`time.clock_settime_ns`" #: whatsnew/3.7.rst:1449 msgid ":func:`time.monotonic_ns`" msgstr ":func:`time.monotonic_ns`" #: whatsnew/3.7.rst:1450 msgid ":func:`time.perf_counter_ns`" msgstr ":func:`time.perf_counter_ns`" #: whatsnew/3.7.rst:1451 msgid ":func:`time.process_time_ns`" msgstr ":func:`time.process_time_ns`" #: whatsnew/3.7.rst:1452 msgid ":func:`time.time_ns`" msgstr ":func:`time.time_ns`" #: whatsnew/3.7.rst:354 msgid "The new functions return the number of nanoseconds as an integer value." msgstr "" #: whatsnew/3.7.rst:356 msgid "" "`Measurements `_ show that on Linux and Windows the resolution of :func:`time." "time_ns` is approximately 3 times better than that of :func:`time.time`." msgstr "" #: whatsnew/3.7.rst:362 msgid ":pep:`564` -- Add new time functions with nanosecond resolution" msgstr "" #: whatsnew/3.7.rst:369 msgid "PEP 565: Show DeprecationWarning in ``__main__``" msgstr "" #: whatsnew/3.7.rst:371 msgid "" "The default handling of :exc:`DeprecationWarning` has been changed such that " "these warnings are once more shown by default, but only when the code " "triggering them is running directly in the :mod:`__main__` module. As a " "result, developers of single file scripts and those using Python " "interactively should once again start seeing deprecation warnings for the " "APIs they use, but deprecation warnings triggered by imported application, " "library and framework modules will continue to be hidden by default." msgstr "" #: whatsnew/3.7.rst:379 msgid "" "As a result of this change, the standard library now allows developers to " "choose between three different deprecation warning behaviours:" msgstr "" #: whatsnew/3.7.rst:382 msgid "" ":exc:`FutureWarning`: always displayed by default, recommended for warnings " "intended to be seen by application end users (e.g. for deprecated " "application configuration settings)." msgstr "" #: whatsnew/3.7.rst:385 msgid "" ":exc:`DeprecationWarning`: displayed by default only in :mod:`__main__` and " "when running tests, recommended for warnings intended to be seen by other " "Python developers where a version upgrade may result in changed behaviour or " "an error." msgstr "" #: whatsnew/3.7.rst:389 msgid "" ":exc:`PendingDeprecationWarning`: displayed by default only when running " "tests, intended for cases where a future version upgrade will change the " "warning category to :exc:`DeprecationWarning` or :exc:`FutureWarning`." msgstr "" #: whatsnew/3.7.rst:393 msgid "" "Previously both :exc:`DeprecationWarning` and :exc:" "`PendingDeprecationWarning` were only visible when running tests, which " "meant that developers primarily writing single file scripts or using Python " "interactively could be surprised by breaking changes in the APIs they used." msgstr "" #: whatsnew/3.7.rst:400 msgid ":pep:`565` -- Show DeprecationWarning in ``__main__``" msgstr "" #: whatsnew/3.7.rst:401 msgid "PEP written and implemented by Nick Coghlan" msgstr "" #: whatsnew/3.7.rst:407 msgid "PEP 560: Core Support for ``typing`` module and Generic Types" msgstr "" #: whatsnew/3.7.rst:409 msgid "" "Initially :pep:`484` was designed in such way that it would not introduce " "*any* changes to the core CPython interpreter. Now type hints and the :mod:" "`typing` module are extensively used by the community, so this restriction " "is removed. The PEP introduces two special methods :meth:`__class_getitem__` " "and ``__mro_entries__``, these methods are now used by most classes and " "special constructs in :mod:`typing`. As a result, the speed of various " "operations with types increased up to 7 times, the generic types can be used " "without metaclass conflicts, and several long standing bugs in :mod:`typing` " "module are fixed." msgstr "" #: whatsnew/3.7.rst:421 #, fuzzy msgid ":pep:`560` -- Core support for typing module and generic types" msgstr "" ":pep:`560` — Gestion de base pour les types modules et les types génériques" #: whatsnew/3.7.rst:428 msgid "PEP 552: Hash-based .pyc Files" msgstr "" #: whatsnew/3.7.rst:430 msgid "" "Python has traditionally checked the up-to-dateness of bytecode cache files " "(i.e., ``.pyc`` files) by comparing the source metadata (last-modified " "timestamp and size) with source metadata saved in the cache file header when " "it was generated. While effective, this invalidation method has its " "drawbacks. When filesystem timestamps are too coarse, Python can miss " "source updates, leading to user confusion. Additionally, having a timestamp " "in the cache file is problematic for `build reproducibility `_ and content-based build systems." msgstr "" #: whatsnew/3.7.rst:439 msgid "" ":pep:`552` extends the pyc format to allow the hash of the source file to be " "used for invalidation instead of the source timestamp. Such ``.pyc`` files " "are called \"hash-based\". By default, Python still uses timestamp-based " "invalidation and does not generate hash-based ``.pyc`` files at runtime. " "Hash-based ``.pyc`` files may be generated with :mod:`py_compile` or :mod:" "`compileall`." msgstr "" #: whatsnew/3.7.rst:445 msgid "" "Hash-based ``.pyc`` files come in two variants: checked and unchecked. " "Python validates checked hash-based ``.pyc`` files against the corresponding " "source files at runtime but doesn't do so for unchecked hash-based pycs. " "Unchecked hash-based ``.pyc`` files are a useful performance optimization " "for environments where a system external to Python (e.g., the build system) " "is responsible for keeping ``.pyc`` files up-to-date." msgstr "" #: whatsnew/3.7.rst:452 msgid "See :ref:`pyc-invalidation` for more information." msgstr "" #: whatsnew/3.7.rst:456 msgid ":pep:`552` -- Deterministic pycs" msgstr "" #: whatsnew/3.7.rst:457 msgid "PEP written and implemented by Benjamin Peterson" msgstr "" #: whatsnew/3.7.rst:463 msgid "PEP 545: Python Documentation Translations" msgstr "" #: whatsnew/3.7.rst:465 msgid "" ":pep:`545` describes the process of creating and maintaining Python " "documentation translations." msgstr "" #: whatsnew/3.7.rst:468 msgid "Three new translations have been added:" msgstr "" #: whatsnew/3.7.rst:470 msgid "Japanese: https://docs.python.org/ja/" msgstr "" #: whatsnew/3.7.rst:471 msgid "French: https://docs.python.org/fr/" msgstr "" #: whatsnew/3.7.rst:472 msgid "Korean: https://docs.python.org/ko/" msgstr "" #: whatsnew/3.7.rst:477 msgid ":pep:`545` -- Python Documentation Translations" msgstr "" #: whatsnew/3.7.rst:477 msgid "" "PEP written and implemented by Julien Palard, Inada Naoki, and Victor " "Stinner." msgstr "" #: whatsnew/3.7.rst:484 msgid "Python Development Mode (-X dev)" msgstr "" #: whatsnew/3.7.rst:486 msgid "" "The new :option:`-X` ``dev`` command line option or the new :envvar:" "`PYTHONDEVMODE` environment variable can be used to enable :ref:`Python " "Development Mode `. When in development mode, Python performs " "additional runtime checks that are too expensive to be enabled by default. " "See :ref:`Python Development Mode ` documentation for the full " "description." msgstr "" #: whatsnew/3.7.rst:495 msgid "Other Language Changes" msgstr "" #: whatsnew/3.7.rst:497 msgid "" "An :keyword:`await` expression and comprehensions containing an :keyword:" "`async for` clause were illegal in the expressions in :ref:`formatted string " "literals ` due to a problem with the implementation. In Python " "3.7 this restriction was lifted." msgstr "" #: whatsnew/3.7.rst:502 msgid "" "More than 255 arguments can now be passed to a function, and a function can " "now have more than 255 parameters. (Contributed by Serhiy Storchaka in :" "issue:`12844` and :issue:`18896`.)" msgstr "" #: whatsnew/3.7.rst:506 msgid "" ":meth:`bytes.fromhex` and :meth:`bytearray.fromhex` now ignore all ASCII " "whitespace, not only spaces. (Contributed by Robert Xiao in :issue:`28927`.)" msgstr "" #: whatsnew/3.7.rst:509 msgid "" ":class:`str`, :class:`bytes`, and :class:`bytearray` gained support for the " "new :meth:`isascii() ` method, which can be used to test if a " "string or bytes contain only the ASCII characters. (Contributed by INADA " "Naoki in :issue:`32677`.)" msgstr "" #: whatsnew/3.7.rst:514 msgid "" ":exc:`ImportError` now displays module name and module ``__file__`` path " "when ``from ... import ...`` fails. (Contributed by Matthias Bussonnier in :" "issue:`29546`.)" msgstr "" #: whatsnew/3.7.rst:518 msgid "" "Circular imports involving absolute imports with binding a submodule to a " "name are now supported. (Contributed by Serhiy Storchaka in :issue:`30024`.)" msgstr "" #: whatsnew/3.7.rst:522 msgid "" "``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather than " "``format(str(self), '')``. (Contributed by Serhiy Storchaka in :issue:" "`28974`.)" msgstr "" #: whatsnew/3.7.rst:526 msgid "" "In order to better support dynamic creation of stack traces, :class:`types." "TracebackType` can now be instantiated from Python code, and the ``tb_next`` " "attribute on :ref:`tracebacks ` is now writable. " "(Contributed by Nathaniel J. Smith in :issue:`30579`.)" msgstr "" #: whatsnew/3.7.rst:532 msgid "" "When using the :option:`-m` switch, ``sys.path[0]`` is now eagerly expanded " "to the full starting directory path, rather than being left as the empty " "directory (which allows imports from the *current* working directory at the " "time when an import occurs) (Contributed by Nick Coghlan in :issue:`33053`.)" msgstr "" #: whatsnew/3.7.rst:538 msgid "" "The new :option:`-X` ``importtime`` option or the :envvar:" "`PYTHONPROFILEIMPORTTIME` environment variable can be used to show the " "timing of each module import. (Contributed by Inada Naoki in :issue:`31415`.)" msgstr "" #: whatsnew/3.7.rst:545 msgid "New Modules" msgstr "" #: whatsnew/3.7.rst:550 msgid "contextvars" msgstr "" #: whatsnew/3.7.rst:552 msgid "" "The new :mod:`contextvars` module and a set of :ref:`new C APIs " "` introduce support for *context variables*. Context " "variables are conceptually similar to thread-local variables. Unlike TLS, " "context variables support asynchronous code correctly." msgstr "" #: whatsnew/3.7.rst:558 msgid "" "The :mod:`asyncio` and :mod:`decimal` modules have been updated to use and " "support context variables out of the box. Particularly the active decimal " "context is now stored in a context variable, which allows decimal operations " "to work with the correct context in asynchronous code." msgstr "" #: whatsnew/3.7.rst:565 msgid ":pep:`567` -- Context Variables" msgstr "" #: whatsnew/3.7.rst:566 msgid "PEP written and implemented by Yury Selivanov" msgstr "" #: whatsnew/3.7.rst:572 msgid "dataclasses" msgstr "" #: whatsnew/3.7.rst:574 msgid "" "The new :func:`~dataclasses.dataclass` decorator provides a way to declare " "*data classes*. A data class describes its attributes using class variable " "annotations. Its constructor and other magic methods, such as :meth:" "`~object.__repr__`, :meth:`~object.__eq__`, and :meth:`~object.__hash__` are " "generated automatically." msgstr "" #: whatsnew/3.7.rst:580 msgid "Example::" msgstr "Exemple ::" #: whatsnew/3.7.rst:593 msgid ":pep:`557` -- Data Classes" msgstr "" #: whatsnew/3.7.rst:594 msgid "PEP written and implemented by Eric V. Smith" msgstr "" #: whatsnew/3.7.rst:600 msgid "importlib.resources" msgstr "" #: whatsnew/3.7.rst:602 msgid "" "The new :mod:`importlib.resources` module provides several new APIs and one " "new ABC for access to, opening, and reading *resources* inside packages. " "Resources are roughly similar to files inside packages, but they needn't be " "actual files on the physical file system. Module loaders can provide a :" "meth:`get_resource_reader()` function which returns a :class:`importlib.abc." "ResourceReader` instance to support this new API. Built-in file path " "loaders and zip file loaders both support this." msgstr "" #: whatsnew/3.7.rst:610 msgid "Contributed by Barry Warsaw and Brett Cannon in :issue:`32248`." msgstr "" #: whatsnew/3.7.rst:614 msgid "" "`importlib_resources `_ -- a PyPI backport for earlier Python versions." msgstr "" #: whatsnew/3.7.rst:619 msgid "Improved Modules" msgstr "" #: whatsnew/3.7.rst:623 msgid "argparse" msgstr "argparse" #: whatsnew/3.7.rst:625 msgid "" "The new :meth:`ArgumentParser.parse_intermixed_args() ` method allows intermixing options and " "positional arguments. (Contributed by paul.j3 in :issue:`14191`.)" msgstr "" #: whatsnew/3.7.rst:1951 msgid "asyncio" msgstr "asyncio" #: whatsnew/3.7.rst:636 msgid "" "The :mod:`asyncio` module has received many new features, usability and :ref:" "`performance improvements `. Notable changes " "include:" msgstr "" #: whatsnew/3.7.rst:640 msgid "" "The new :term:`provisional ` :func:`asyncio.run` function " "can be used to run a coroutine from synchronous code by automatically " "creating and destroying the event loop. (Contributed by Yury Selivanov in :" "issue:`32314`.)" msgstr "" #: whatsnew/3.7.rst:645 msgid "" "asyncio gained support for :mod:`contextvars`. :meth:`loop.call_soon() " "`, :meth:`loop.call_soon_threadsafe() `, :meth:`loop.call_later() `, :meth:`loop.call_at() `, and :meth:" "`Future.add_done_callback() ` have a new " "optional keyword-only *context* parameter. :class:`Tasks ` now " "track their context automatically. See :pep:`567` for more details. " "(Contributed by Yury Selivanov in :issue:`32436`.)" msgstr "" #: whatsnew/3.7.rst:656 msgid "" "The new :func:`asyncio.create_task` function has been added as a shortcut to " "``asyncio.get_event_loop().create_task()``. (Contributed by Andrew Svetlov " "in :issue:`32311`.)" msgstr "" #: whatsnew/3.7.rst:660 msgid "" "The new :meth:`loop.start_tls() ` method can be used " "to upgrade an existing connection to TLS. (Contributed by Yury Selivanov in :" "issue:`23749`.)" msgstr "" #: whatsnew/3.7.rst:664 msgid "" "The new :meth:`loop.sock_recv_into() ` method " "allows reading data from a socket directly into a provided buffer making it " "possible to reduce data copies. (Contributed by Antoine Pitrou in :issue:" "`31819`.)" msgstr "" #: whatsnew/3.7.rst:669 msgid "" "The new :func:`asyncio.current_task` function returns the currently running :" "class:`~asyncio.Task` instance, and the new :func:`asyncio.all_tasks` " "function returns a set of all existing ``Task`` instances in a given loop. " "The :meth:`Task.current_task() ` and :meth:`Task." "all_tasks() ` methods have been deprecated. " "(Contributed by Andrew Svetlov in :issue:`32250`.)" msgstr "" #: whatsnew/3.7.rst:676 msgid "" "The new *provisional* :class:`~asyncio.BufferedProtocol` class allows " "implementing streaming protocols with manual control over the receive " "buffer. (Contributed by Yury Selivanov in :issue:`32251`.)" msgstr "" #: whatsnew/3.7.rst:680 msgid "" "The new :func:`asyncio.get_running_loop` function returns the currently " "running loop, and raises a :exc:`RuntimeError` if no loop is running. This " "is in contrast with :func:`asyncio.get_event_loop`, which will *create* a " "new event loop if none is running. (Contributed by Yury Selivanov in :issue:" "`32269`.)" msgstr "" #: whatsnew/3.7.rst:686 msgid "" "The new :meth:`StreamWriter.wait_closed() ` coroutine method allows waiting until the stream writer is " "closed. The new :meth:`StreamWriter.is_closing() ` method can be used to determine if the writer is closing. " "(Contributed by Andrew Svetlov in :issue:`32391`.)" msgstr "" #: whatsnew/3.7.rst:692 msgid "" "The new :meth:`loop.sock_sendfile() ` coroutine " "method allows sending files using :mod:`os.sendfile` when possible. " "(Contributed by Andrew Svetlov in :issue:`32410`.)" msgstr "" #: whatsnew/3.7.rst:696 msgid "" "The new :meth:`Future.get_loop() ` and ``Task." "get_loop()`` methods return the instance of the loop on which a task or a " "future were created. :meth:`Server.get_loop() ` " "allows doing the same for :class:`asyncio.Server` objects. (Contributed by " "Yury Selivanov in :issue:`32415` and Srinivas Reddy Thatiparthy in :issue:" "`32418`.)" msgstr "" #: whatsnew/3.7.rst:704 msgid "" "It is now possible to control how instances of :class:`asyncio.Server` begin " "serving. Previously, the server would start serving immediately when " "created. The new *start_serving* keyword argument to :meth:`loop." "create_server() ` and :meth:`loop." "create_unix_server() `, as well as :meth:" "`Server.start_serving() `, and :meth:`Server." "serve_forever() ` can be used to decouple " "server instantiation and serving. The new :meth:`Server.is_serving() " "` method returns ``True`` if the server is " "serving. :class:`~asyncio.Server` objects are now asynchronous context " "managers::" msgstr "" #: whatsnew/3.7.rst:723 msgid "(Contributed by Yury Selivanov in :issue:`32662`.)" msgstr "" #: whatsnew/3.7.rst:725 msgid "" "Callback objects returned by :func:`loop.call_later() ` gained the new :meth:`when() ` method " "which returns an absolute scheduled callback timestamp. (Contributed by " "Andrew Svetlov in :issue:`32741`.)" msgstr "" #: whatsnew/3.7.rst:731 msgid "" "The :meth:`loop.create_datagram_endpoint() \\ ` method gained support for Unix sockets. " "(Contributed by Quentin Dawans in :issue:`31245`.)" msgstr "" #: whatsnew/3.7.rst:736 msgid "" "The :func:`asyncio.open_connection`, :func:`asyncio.start_server` " "functions, :meth:`loop.create_connection() `, :meth:`loop.create_server() `, :meth:`loop.create_accepted_socket() ` methods and their corresponding UNIX socket " "variants now accept the *ssl_handshake_timeout* keyword argument. " "(Contributed by Neil Aspinall in :issue:`29970`.)" msgstr "" #: whatsnew/3.7.rst:744 msgid "" "The new :meth:`Handle.cancelled() ` method returns " "``True`` if the callback was cancelled. (Contributed by Marat Sharafutdinov " "in :issue:`31943`.)" msgstr "" #: whatsnew/3.7.rst:748 msgid "" "The asyncio source has been converted to use the :keyword:`async`/:keyword:" "`await` syntax. (Contributed by Andrew Svetlov in :issue:`32193`.)" msgstr "" #: whatsnew/3.7.rst:752 msgid "" "The new :meth:`ReadTransport.is_reading() ` method can be used to determine the reading state of the " "transport. Additionally, calls to :meth:`ReadTransport.resume_reading() " "` and :meth:`ReadTransport." "pause_reading() ` are now idempotent. " "(Contributed by Yury Selivanov in :issue:`32356`.)" msgstr "" #: whatsnew/3.7.rst:760 msgid "" "Loop methods which accept socket paths now support passing :term:`path-like " "objects `. (Contributed by Yury Selivanov in :issue:" "`32066`.)" msgstr "" #: whatsnew/3.7.rst:764 msgid "" "In :mod:`asyncio` TCP sockets on Linux are now created with ``TCP_NODELAY`` " "flag set by default. (Contributed by Yury Selivanov and Victor Stinner in :" "issue:`27456`.)" msgstr "" #: whatsnew/3.7.rst:768 msgid "" "Exceptions occurring in cancelled tasks are no longer logged. (Contributed " "by Yury Selivanov in :issue:`30508`.)" msgstr "" #: whatsnew/3.7.rst:771 msgid "" "New ``WindowsSelectorEventLoopPolicy`` and " "``WindowsProactorEventLoopPolicy`` classes. (Contributed by Yury Selivanov " "in :issue:`33792`.)" msgstr "" #: whatsnew/3.7.rst:775 msgid "" "Several ``asyncio`` APIs have been :ref:`deprecated `." msgstr "" #: whatsnew/3.7.rst:780 msgid "binascii" msgstr "binascii" #: whatsnew/3.7.rst:782 msgid "" "The :func:`~binascii.b2a_uu` function now accepts an optional *backtick* " "keyword argument. When it's true, zeros are represented by ``'`'`` instead " "of spaces. (Contributed by Xiang Zhang in :issue:`30103`.)" msgstr "" #: whatsnew/3.7.rst:788 msgid "calendar" msgstr "" #: whatsnew/3.7.rst:790 msgid "" "The :class:`~calendar.HTMLCalendar` class has new class attributes which " "ease the customization of CSS classes in the produced HTML calendar. " "(Contributed by Oz Tiram in :issue:`30095`.)" msgstr "" #: whatsnew/3.7.rst:1965 msgid "collections" msgstr "" #: whatsnew/3.7.rst:798 msgid "" "``collections.namedtuple()`` now supports default values. (Contributed by " "Raymond Hettinger in :issue:`32320`.)" msgstr "" #: whatsnew/3.7.rst:803 msgid "compileall" msgstr "compileall" #: whatsnew/3.7.rst:805 msgid "" ":func:`compileall.compile_dir` learned the new *invalidation_mode* " "parameter, which can be used to enable :ref:`hash-based .pyc invalidation " "`. The invalidation mode can also be specified on the " "command line using the new ``--invalidation-mode`` argument. (Contributed by " "Benjamin Peterson in :issue:`31650`.)" msgstr "" #: whatsnew/3.7.rst:814 msgid "concurrent.futures" msgstr "concurrent.futures" #: whatsnew/3.7.rst:816 msgid "" ":class:`ProcessPoolExecutor ` and :" "class:`ThreadPoolExecutor ` now " "support the new *initializer* and *initargs* constructor arguments. " "(Contributed by Antoine Pitrou in :issue:`21423`.)" msgstr "" #: whatsnew/3.7.rst:821 msgid "" "The :class:`ProcessPoolExecutor ` " "can now take the multiprocessing context via the new *mp_context* argument. " "(Contributed by Thomas Moreau in :issue:`31540`.)" msgstr "" #: whatsnew/3.7.rst:827 msgid "contextlib" msgstr "contextlib" #: whatsnew/3.7.rst:829 msgid "" "The new :func:`~contextlib.nullcontext` is a simpler and faster no-op " "context manager than :class:`~contextlib.ExitStack`. (Contributed by Jesse-" "Bakker in :issue:`10049`.)" msgstr "" #: whatsnew/3.7.rst:833 msgid "" "The new :func:`~contextlib.asynccontextmanager`, :class:`~contextlib." "AbstractAsyncContextManager`, and :class:`~contextlib.AsyncExitStack` have " "been added to complement their synchronous counterparts. (Contributed by " "Jelle Zijlstra in :issue:`29679` and :issue:`30241`, and by Alexander Mohr " "and Ilya Kulakov in :issue:`29302`.)" msgstr "" #: whatsnew/3.7.rst:842 msgid "cProfile" msgstr "" #: whatsnew/3.7.rst:844 msgid "" "The :mod:`cProfile` command line now accepts ``-m module_name`` as an " "alternative to script path. (Contributed by Sanyam Khurana in :issue:" "`21862`.)" msgstr "" #: whatsnew/3.7.rst:849 msgid "crypt" msgstr "crypt" #: whatsnew/3.7.rst:851 msgid "" "The :mod:`crypt` module now supports the Blowfish hashing method. " "(Contributed by Serhiy Storchaka in :issue:`31664`.)" msgstr "" #: whatsnew/3.7.rst:854 msgid "" "The :func:`~crypt.mksalt` function now allows specifying the number of " "rounds for hashing. (Contributed by Serhiy Storchaka in :issue:`31702`.)" msgstr "" #: whatsnew/3.7.rst:859 msgid "datetime" msgstr "datetime" #: whatsnew/3.7.rst:861 msgid "" "The new :meth:`datetime.fromisoformat() ` " "method constructs a :class:`~datetime.datetime` object from a string in one " "of the formats output by :meth:`datetime.isoformat() `. (Contributed by Paul Ganssle in :issue:`15873`.)" msgstr "" #: whatsnew/3.7.rst:867 msgid "" "The :class:`tzinfo ` class now supports sub-minute offsets. " "(Contributed by Alexander Belopolsky in :issue:`5288`.)" msgstr "" #: whatsnew/3.7.rst:1975 msgid "dbm" msgstr "dbm" #: whatsnew/3.7.rst:874 msgid "" ":mod:`dbm.dumb` now supports reading read-only files and no longer writes " "the index file when it is not changed." msgstr "" #: whatsnew/3.7.rst:879 msgid "decimal" msgstr "" #: whatsnew/3.7.rst:881 msgid "" "The :mod:`decimal` module now uses :ref:`context variables ` to store the decimal context. (Contributed by Yury Selivanov in :" "issue:`32630`.)" msgstr "" #: whatsnew/3.7.rst:887 msgid "dis" msgstr "dis" #: whatsnew/3.7.rst:889 msgid "" "The :func:`~dis.dis` function is now able to disassemble nested code objects " "(the code of comprehensions, generator expressions and nested functions, and " "the code used for building nested classes). The maximum depth of " "disassembly recursion is controlled by the new *depth* parameter. " "(Contributed by Serhiy Storchaka in :issue:`11822`.)" msgstr "" #: whatsnew/3.7.rst:898 msgid "distutils" msgstr "distutils" #: whatsnew/3.7.rst:900 msgid "" "``README.rst`` is now included in the list of distutils standard READMEs and " "therefore included in source distributions. (Contributed by Ryan Gonzalez " "in :issue:`11913`.)" msgstr "" #: whatsnew/3.7.rst:1985 msgid "enum" msgstr "enum" #: whatsnew/3.7.rst:908 msgid "" "The :class:`Enum ` learned the new ``_ignore_`` class property, " "which allows listing the names of properties which should not become enum " "members. (Contributed by Ethan Furman in :issue:`31801`.)" msgstr "" #: whatsnew/3.7.rst:913 msgid "" "In Python 3.8, attempting to check for non-Enum objects in :class:`Enum` " "classes will raise a :exc:`TypeError` (e.g. ``1 in Color``); similarly, " "attempting to check for non-Flag objects in a :class:`Flag` member will " "raise :exc:`TypeError` (e.g. ``1 in Perm.RW``); currently, both operations " "return :const:`False` instead and are deprecated. (Contributed by Ethan " "Furman in :issue:`33217`.)" msgstr "" #: whatsnew/3.7.rst:922 msgid "functools" msgstr "" #: whatsnew/3.7.rst:924 msgid "" ":func:`functools.singledispatch` now supports registering implementations " "using type annotations. (Contributed by Łukasz Langa in :issue:`32227`.)" msgstr "" #: whatsnew/3.7.rst:930 msgid "gc" msgstr "" #: whatsnew/3.7.rst:932 msgid "" "The new :func:`gc.freeze` function allows freezing all objects tracked by " "the garbage collector and excluding them from future collections. This can " "be used before a POSIX ``fork()`` call to make the GC copy-on-write friendly " "or to speed up collection. The new :func:`gc.unfreeze` functions reverses " "this operation. Additionally, :func:`gc.get_freeze_count` can be used to " "obtain the number of frozen objects. (Contributed by Li Zekun in :issue:" "`31558`.)" msgstr "" #: whatsnew/3.7.rst:942 msgid "hmac" msgstr "" #: whatsnew/3.7.rst:944 msgid "" "The :mod:`hmac` module now has an optimized one-shot :func:`~hmac.digest` " "function, which is up to three times faster than :func:`~hmac.HMAC`. " "(Contributed by Christian Heimes in :issue:`32433`.)" msgstr "" #: whatsnew/3.7.rst:950 msgid "http.client" msgstr "" #: whatsnew/3.7.rst:952 msgid "" ":class:`~http.client.HTTPConnection` and :class:`~http.client." "HTTPSConnection` now support the new *blocksize* argument for improved " "upload throughput. (Contributed by Nir Soffer in :issue:`31945`.)" msgstr "" #: whatsnew/3.7.rst:958 msgid "http.server" msgstr "" #: whatsnew/3.7.rst:960 msgid "" ":class:`~http.server.SimpleHTTPRequestHandler` now supports the HTTP ``If-" "Modified-Since`` header. The server returns the 304 response status if the " "target file was not modified after the time specified in the header. " "(Contributed by Pierre Quentel in :issue:`29654`.)" msgstr "" #: whatsnew/3.7.rst:965 msgid "" ":class:`~http.server.SimpleHTTPRequestHandler` accepts the new *directory* " "argument, in addition to the new ``--directory`` command line argument. With " "this parameter, the server serves the specified directory, by default it " "uses the current working directory. (Contributed by Stéphane Wirtel and " "Julien Palard in :issue:`28707`.)" msgstr "" #: whatsnew/3.7.rst:971 msgid "" "The new :class:`ThreadingHTTPServer ` class " "uses threads to handle requests using :class:`~socketserver.ThreadingMixin`. " "It is used when ``http.server`` is run with ``-m``. (Contributed by Julien " "Palard in :issue:`31639`.)" msgstr "" #: whatsnew/3.7.rst:978 msgid "idlelib and IDLE" msgstr "" #: whatsnew/3.7.rst:980 msgid "" "Multiple fixes for autocompletion. (Contributed by Louie Lu in :issue:" "`15786`.)" msgstr "" #: whatsnew/3.7.rst:982 msgid "" "Module Browser (on the File menu, formerly called Class Browser), now " "displays nested functions and classes in addition to top-level functions and " "classes. (Contributed by Guilherme Polo, Cheryl Sabella, and Terry Jan Reedy " "in :issue:`1612262`.)" msgstr "" #: whatsnew/3.7.rst:988 msgid "" "The Settings dialog (Options, Configure IDLE) has been partly rewritten to " "improve both appearance and function. (Contributed by Cheryl Sabella and " "Terry Jan Reedy in multiple issues.)" msgstr "" #: whatsnew/3.7.rst:992 msgid "" "The font sample now includes a selection of non-Latin characters so that " "users can better see the effect of selecting a particular font. (Contributed " "by Terry Jan Reedy in :issue:`13802`.) The sample can be edited to include " "other characters. (Contributed by Serhiy Storchaka in :issue:`31860`.)" msgstr "" #: whatsnew/3.7.rst:998 msgid "" "The IDLE features formerly implemented as extensions have been reimplemented " "as normal features. Their settings have been moved from the Extensions tab " "to other dialog tabs. (Contributed by Charles Wohlganger and Terry Jan Reedy " "in :issue:`27099`.)" msgstr "" #: whatsnew/3.7.rst:1003 msgid "" "Editor code context option revised. Box displays all context lines up to " "maxlines. Clicking on a context line jumps the editor to that line. " "Context colors for custom themes is added to Highlights tab of Settings " "dialog. (Contributed by Cheryl Sabella and Terry Jan Reedy in :issue:" "`33642`, :issue:`33768`, and :issue:`33679`.)" msgstr "" #: whatsnew/3.7.rst:1009 msgid "" "On Windows, a new API call tells Windows that tk scales for DPI. On Windows " "8.1+ or 10, with DPI compatibility properties of the Python binary " "unchanged, and a monitor resolution greater than 96 DPI, this should make " "text and lines sharper. It should otherwise have no effect. (Contributed by " "Terry Jan Reedy in :issue:`33656`.)" msgstr "" #: whatsnew/3.7.rst:1015 msgid "New in 3.7.1:" msgstr "" #: whatsnew/3.7.rst:1017 msgid "" "Output over N lines (50 by default) is squeezed down to a button. N can be " "changed in the PyShell section of the General page of the Settings dialog. " "Fewer, but possibly extra long, lines can be squeezed by right clicking on " "the output. Squeezed output can be expanded in place by double-clicking the " "button or into the clipboard or a separate window by right-clicking the " "button. (Contributed by Tal Einat in :issue:`1529353`.)" msgstr "" #: whatsnew/3.7.rst:1024 msgid "The changes above have been backported to 3.6 maintenance releases." msgstr "" #: whatsnew/3.7.rst:1026 msgid "NEW in 3.7.4:" msgstr "" #: whatsnew/3.7.rst:1028 msgid "" "Add \"Run Customized\" to the Run menu to run a module with customized " "settings. Any command line arguments entered are added to sys.argv. They re-" "appear in the box for the next customized run. One can also suppress the " "normal Shell main module restart. (Contributed by Cheryl Sabella, Terry Jan " "Reedy, and others in :issue:`5680` and :issue:`37627`.)" msgstr "" #: whatsnew/3.7.rst:1034 msgid "New in 3.7.5:" msgstr "" #: whatsnew/3.7.rst:1036 msgid "" "Add optional line numbers for IDLE editor windows. Windows open without line " "numbers unless set otherwise in the General tab of the configuration " "dialog. Line numbers for an existing window are shown and hidden in the " "Options menu. (Contributed by Tal Einat and Saimadhav Heblikar in :issue:" "`17535`.)" msgstr "" #: whatsnew/3.7.rst:2004 msgid "importlib" msgstr "importlib" #: whatsnew/3.7.rst:1046 msgid "" "The :class:`importlib.abc.ResourceReader` ABC was introduced to support the " "loading of resources from packages. See also :ref:" "`whatsnew37_importlib_resources`. (Contributed by Barry Warsaw, Brett Cannon " "in :issue:`32248`.)" msgstr "" #: whatsnew/3.7.rst:1051 msgid "" ":func:`importlib.reload` now raises :exc:`ModuleNotFoundError` if the module " "lacks a spec. (Contributed by Garvit Khatri in :issue:`29851`.)" msgstr "" #: whatsnew/3.7.rst:1055 msgid "" ":func:`importlib.find_spec` now raises :exc:`ModuleNotFoundError` instead " "of :exc:`AttributeError` if the specified parent module is not a package (i." "e. lacks a ``__path__`` attribute). (Contributed by Milan Oberkirch in :" "issue:`30436`.)" msgstr "" #: whatsnew/3.7.rst:1060 msgid "" "The new :func:`importlib.source_hash` can be used to compute the hash of the " "passed source. A :ref:`hash-based .pyc file ` embeds the " "value returned by this function." msgstr "" #: whatsnew/3.7.rst:1066 msgid "io" msgstr "" #: whatsnew/3.7.rst:1068 msgid "" "The new :meth:`TextIOWrapper.reconfigure() ` " "method can be used to reconfigure the text stream with the new settings. " "(Contributed by Antoine Pitrou in :issue:`30526` and INADA Naoki in :issue:" "`15216`.)" msgstr "" #: whatsnew/3.7.rst:1075 msgid "ipaddress" msgstr "" #: whatsnew/3.7.rst:1077 msgid "" "The new ``subnet_of()`` and ``supernet_of()`` methods of :class:`ipaddress." "IPv6Network` and :class:`ipaddress.IPv4Network` can be used for network " "containment tests. (Contributed by Michel Albert and Cheryl Sabella in :" "issue:`20825`.)" msgstr "" #: whatsnew/3.7.rst:1084 msgid "itertools" msgstr "" #: whatsnew/3.7.rst:1086 msgid "" ":func:`itertools.islice` now accepts :meth:`integer-like objects ` as start, stop, and slice arguments. (Contributed by Will " "Roberts in :issue:`30537`.)" msgstr "" #: whatsnew/3.7.rst:2022 msgid "locale" msgstr "" #: whatsnew/3.7.rst:1095 msgid "" "The new *monetary* argument to :func:`locale.format_string` can be used to " "make the conversion use monetary thousands separators and grouping strings. " "(Contributed by Garvit in :issue:`10379`.)" msgstr "" #: whatsnew/3.7.rst:1099 msgid "" "The :func:`locale.getpreferredencoding` function now always returns " "``'UTF-8'`` on Android or when in the :ref:`forced UTF-8 mode `." msgstr "" #: whatsnew/3.7.rst:1104 msgid "logging" msgstr "" #: whatsnew/3.7.rst:1106 msgid "" ":class:`~logging.Logger` instances can now be pickled. (Contributed by Vinay " "Sajip in :issue:`30520`.)" msgstr "" #: whatsnew/3.7.rst:1109 msgid "" "The new :meth:`StreamHandler.setStream() ` " "method can be used to replace the logger stream after handler creation. " "(Contributed by Vinay Sajip in :issue:`30522`.)" msgstr "" #: whatsnew/3.7.rst:1113 msgid "" "It is now possible to specify keyword arguments to handler constructors in " "configuration passed to :func:`logging.config.fileConfig`. (Contributed by " "Preston Landers in :issue:`31080`.)" msgstr "" #: whatsnew/3.7.rst:1119 msgid "math" msgstr "" #: whatsnew/3.7.rst:1121 msgid "" "The new :func:`math.remainder` function implements the IEEE 754-style " "remainder operation. (Contributed by Mark Dickinson in :issue:`29962`.)" msgstr "" #: whatsnew/3.7.rst:1126 msgid "mimetypes" msgstr "" #: whatsnew/3.7.rst:1128 msgid "" "The MIME type of .bmp has been changed from ``'image/x-ms-bmp'`` to ``'image/" "bmp'``. (Contributed by Nitish Chandra in :issue:`22589`.)" msgstr "" #: whatsnew/3.7.rst:1134 msgid "msilib" msgstr "" #: whatsnew/3.7.rst:1136 msgid "" "The new :meth:`Database.Close() ` method can be used " "to close the :abbr:`MSI` database. (Contributed by Berker Peksag in :issue:" "`20486`.)" msgstr "" #: whatsnew/3.7.rst:1142 msgid "multiprocessing" msgstr "multiprocessing" #: whatsnew/3.7.rst:1144 msgid "" "The new :meth:`Process.close() ` method " "explicitly closes the process object and releases all resources associated " "with it. :exc:`ValueError` is raised if the underlying process is still " "running. (Contributed by Antoine Pitrou in :issue:`30596`.)" msgstr "" #: whatsnew/3.7.rst:1150 msgid "" "The new :meth:`Process.kill() ` method can be " "used to terminate the process using the :data:`SIGKILL` signal on Unix. " "(Contributed by Vitor Pereira in :issue:`30794`.)" msgstr "" #: whatsnew/3.7.rst:1154 msgid "" "Non-daemonic threads created by :class:`~multiprocessing.Process` are now " "joined on process exit. (Contributed by Antoine Pitrou in :issue:`18966`.)" msgstr "" #: whatsnew/3.7.rst:1160 msgid "os" msgstr "" #: whatsnew/3.7.rst:1162 msgid "" ":func:`os.fwalk` now accepts the *path* argument as :class:`bytes`. " "(Contributed by Serhiy Storchaka in :issue:`28682`.)" msgstr "" #: whatsnew/3.7.rst:1165 msgid "" ":func:`os.scandir` gained support for :ref:`file descriptors `. " "(Contributed by Serhiy Storchaka in :issue:`25996`.)" msgstr "" #: whatsnew/3.7.rst:1168 msgid "" "The new :func:`~os.register_at_fork` function allows registering Python " "callbacks to be executed at process fork. (Contributed by Antoine Pitrou in :" "issue:`16500`.)" msgstr "" #: whatsnew/3.7.rst:1172 msgid "" "Added :func:`os.preadv` (combine the functionality of :func:`os.readv` and :" "func:`os.pread`) and :func:`os.pwritev` functions (combine the functionality " "of :func:`os.writev` and :func:`os.pwrite`). (Contributed by Pablo Galindo " "in :issue:`31368`.)" msgstr "" #: whatsnew/3.7.rst:1177 msgid "" "The mode argument of :func:`os.makedirs` no longer affects the file " "permission bits of newly created intermediate-level directories. " "(Contributed by Serhiy Storchaka in :issue:`19930`.)" msgstr "" #: whatsnew/3.7.rst:1181 msgid "" ":func:`os.dup2` now returns the new file descriptor. Previously, ``None`` " "was always returned. (Contributed by Benjamin Peterson in :issue:`32441`.)" msgstr "" #: whatsnew/3.7.rst:1185 msgid "" "The structure returned by :func:`os.stat` now contains the :attr:`~os." "stat_result.st_fstype` attribute on Solaris and its derivatives. " "(Contributed by Jesús Cea Avión in :issue:`32659`.)" msgstr "" #: whatsnew/3.7.rst:1191 msgid "pathlib" msgstr "pathlib" #: whatsnew/3.7.rst:1193 msgid "" "The new :meth:`Path.is_mount() ` method is now " "available on POSIX systems and can be used to determine whether a path is a " "mount point. (Contributed by Cooper Ry Lees in :issue:`30897`.)" msgstr "" #: whatsnew/3.7.rst:1199 msgid "pdb" msgstr "" #: whatsnew/3.7.rst:1201 msgid "" ":func:`pdb.set_trace` now takes an optional *header* keyword-only argument. " "If given, it is printed to the console just before debugging begins. " "(Contributed by Barry Warsaw in :issue:`31389`.)" msgstr "" #: whatsnew/3.7.rst:1205 msgid "" ":mod:`pdb` command line now accepts ``-m module_name`` as an alternative to " "script file. (Contributed by Mario Corchero in :issue:`32206`.)" msgstr "" #: whatsnew/3.7.rst:1210 msgid "py_compile" msgstr "" #: whatsnew/3.7.rst:1212 msgid "" ":func:`py_compile.compile` -- and by extension, :mod:`compileall` -- now " "respects the :envvar:`SOURCE_DATE_EPOCH` environment variable by " "unconditionally creating ``.pyc`` files for hash-based validation. This " "allows for guaranteeing `reproducible builds `_ of ``.pyc`` files when they are created eagerly. (Contributed by " "Bernhard M. Wiedemann in :issue:`29708`.)" msgstr "" #: whatsnew/3.7.rst:1222 msgid "pydoc" msgstr "" #: whatsnew/3.7.rst:1224 msgid "" "The pydoc server can now bind to an arbitrary hostname specified by the new " "``-n`` command-line argument. (Contributed by Feanil Patel in :issue:" "`31128`.)" msgstr "" #: whatsnew/3.7.rst:1230 msgid "queue" msgstr "" #: whatsnew/3.7.rst:1232 msgid "" "The new :class:`~queue.SimpleQueue` class is an unbounded :abbr:`FIFO` " "queue. (Contributed by Antoine Pitrou in :issue:`14976`.)" msgstr "" #: whatsnew/3.7.rst:1237 msgid "re" msgstr "" #: whatsnew/3.7.rst:1239 msgid "" "The flags :const:`re.ASCII`, :const:`re.LOCALE` and :const:`re.UNICODE` can " "be set within the scope of a group. (Contributed by Serhiy Storchaka in :" "issue:`31690`.)" msgstr "" #: whatsnew/3.7.rst:1243 msgid "" ":func:`re.split` now supports splitting on a pattern like ``r'\\b'``, " "``'^$'`` or ``(?=-)`` that matches an empty string. (Contributed by Serhiy " "Storchaka in :issue:`25054`.)" msgstr "" #: whatsnew/3.7.rst:1247 msgid "" "Regular expressions compiled with the :const:`re.LOCALE` flag no longer " "depend on the locale at compile time. Locale settings are applied only when " "the compiled regular expression is used. (Contributed by Serhiy Storchaka " "in :issue:`30215`.)" msgstr "" #: whatsnew/3.7.rst:1252 msgid "" ":exc:`FutureWarning` is now emitted if a regular expression contains " "character set constructs that will change semantically in the future, such " "as nested sets and set operations. (Contributed by Serhiy Storchaka in :" "issue:`30349`.)" msgstr "" #: whatsnew/3.7.rst:1257 msgid "" "Compiled regular expression and match objects can now be copied using :func:" "`copy.copy` and :func:`copy.deepcopy`. (Contributed by Serhiy Storchaka in :" "issue:`10076`.)" msgstr "" #: whatsnew/3.7.rst:1263 msgid "signal" msgstr "" #: whatsnew/3.7.rst:1265 msgid "" "The new *warn_on_full_buffer* argument to the :func:`signal.set_wakeup_fd` " "function makes it possible to specify whether Python prints a warning on " "stderr when the wakeup buffer overflows. (Contributed by Nathaniel J. Smith " "in :issue:`30050`.)" msgstr "" #: whatsnew/3.7.rst:2045 msgid "socket" msgstr "" #: whatsnew/3.7.rst:1274 msgid "" "The new :func:`socket.getblocking() ` method " "returns ``True`` if the socket is in blocking mode and ``False`` otherwise. " "(Contributed by Yury Selivanov in :issue:`32373`.)" msgstr "" #: whatsnew/3.7.rst:1278 msgid "" "The new :func:`socket.close` function closes the passed socket file " "descriptor. This function should be used instead of :func:`os.close` for " "better compatibility across platforms. (Contributed by Christian Heimes in :" "issue:`32454`.)" msgstr "" #: whatsnew/3.7.rst:1283 msgid "" "The :mod:`socket` module now exposes the :const:`socket.TCP_CONGESTION` " "(Linux 2.6.13), :const:`socket.TCP_USER_TIMEOUT` (Linux 2.6.37), and :const:" "`socket.TCP_NOTSENT_LOWAT` (Linux 3.12) constants. (Contributed by Omar " "Sandoval in :issue:`26273` and Nathaniel J. Smith in :issue:`29728`.)" msgstr "" #: whatsnew/3.7.rst:1289 msgid "" "Support for :const:`socket.AF_VSOCK` sockets has been added to allow " "communication between virtual machines and their hosts. (Contributed by " "Cathy Avery in :issue:`27584`.)" msgstr "" #: whatsnew/3.7.rst:1293 msgid "" "Sockets now auto-detect family, type and protocol from file descriptor by " "default. (Contributed by Christian Heimes in :issue:`28134`.)" msgstr "" #: whatsnew/3.7.rst:1299 msgid "socketserver" msgstr "" #: whatsnew/3.7.rst:1301 msgid "" ":meth:`socketserver.ThreadingMixIn.server_close` now waits until all non-" "daemon threads complete. :meth:`socketserver.ForkingMixIn.server_close` now " "waits until all child processes complete." msgstr "" #: whatsnew/3.7.rst:1305 msgid "" "Add a new :attr:`socketserver.ForkingMixIn.block_on_close` class attribute " "to :class:`socketserver.ForkingMixIn` and :class:`socketserver." "ThreadingMixIn` classes. Set the class attribute to ``False`` to get the " "pre-3.7 behaviour." msgstr "" #: whatsnew/3.7.rst:1311 msgid "sqlite3" msgstr "" #: whatsnew/3.7.rst:1313 msgid "" ":class:`sqlite3.Connection` now exposes the :meth:`~sqlite3.Connection." "backup` method when the underlying SQLite library is at version 3.6.11 or " "higher. (Contributed by Lele Gaifax in :issue:`27645`.)" msgstr "" #: whatsnew/3.7.rst:1317 msgid "" "The *database* argument of :func:`sqlite3.connect` now accepts any :term:" "`path-like object`, instead of just a string. (Contributed by Anders " "Lorentsen in :issue:`31843`.)" msgstr "" #: whatsnew/3.7.rst:2054 msgid "ssl" msgstr "" #: whatsnew/3.7.rst:1325 msgid "" "The :mod:`ssl` module now uses OpenSSL's builtin API instead of :func:`~ssl." "match_hostname` to check a host name or an IP address. Values are validated " "during TLS handshake. Any certificate validation error including failing " "the host name check now raises :exc:`~ssl.SSLCertVerificationError` and " "aborts the handshake with a proper TLS Alert message. The new exception " "contains additional information. Host name validation can be customized " "with :attr:`SSLContext.hostname_checks_common_name `. (Contributed by Christian Heimes in :issue:" "`31399`.)" msgstr "" #: whatsnew/3.7.rst:1336 msgid "" "The improved host name check requires a *libssl* implementation compatible " "with OpenSSL 1.0.2 or 1.1. Consequently, OpenSSL 0.9.8 and 1.0.1 are no " "longer supported (see :ref:`37-platform-support-removals` for more details). " "The ssl module is mostly compatible with LibreSSL 2.7.2 and newer." msgstr "" #: whatsnew/3.7.rst:1341 msgid "" "The ``ssl`` module no longer sends IP addresses in SNI TLS extension. " "(Contributed by Christian Heimes in :issue:`32185`.)" msgstr "" #: whatsnew/3.7.rst:1344 msgid "" ":func:`~ssl.match_hostname` no longer supports partial wildcards like ``www*." "example.org``. (Contributed by Mandeep Singh in :issue:`23033` and Christian " "Heimes in :issue:`31399`.)" msgstr "" #: whatsnew/3.7.rst:1349 msgid "" "The default cipher suite selection of the ``ssl`` module now uses a " "blacklist approach rather than a hard-coded whitelist. Python no longer re-" "enables ciphers that have been blocked by OpenSSL security updates. Default " "cipher suite selection can be configured at compile time. (Contributed by " "Christian Heimes in :issue:`31429`.)" msgstr "" #: whatsnew/3.7.rst:1355 msgid "" "Validation of server certificates containing internationalized domain names " "(IDNs) is now supported. As part of this change, the :attr:`SSLSocket." "server_hostname ` attribute now stores the " "expected hostname in A-label form (``\"xn--pythn-mua.org\"``), rather than " "the U-label form (``\"pythön.org\"``). (Contributed by Nathaniel J. Smith " "and Christian Heimes in :issue:`28414`.)" msgstr "" #: whatsnew/3.7.rst:1362 msgid "" "The ``ssl`` module has preliminary and experimental support for TLS 1.3 and " "OpenSSL 1.1.1. At the time of Python 3.7.0 release, OpenSSL 1.1.1 is still " "under development and TLS 1.3 hasn't been finalized yet. The TLS 1.3 " "handshake and protocol behaves slightly differently than TLS 1.2 and " "earlier, see :ref:`ssl-tlsv1_3`. (Contributed by Christian Heimes in :issue:" "`32947`, :issue:`20995`, :issue:`29136`, :issue:`30622` and :issue:`33618`)" msgstr "" #: whatsnew/3.7.rst:1370 msgid "" ":class:`~ssl.SSLSocket` and :class:`~ssl.SSLObject` no longer have a public " "constructor. Direct instantiation was never a documented and supported " "feature. Instances must be created with :class:`~ssl.SSLContext` methods :" "meth:`~ssl.SSLContext.wrap_socket` and :meth:`~ssl.SSLContext.wrap_bio`. " "(Contributed by Christian Heimes in :issue:`32951`)" msgstr "" #: whatsnew/3.7.rst:1376 msgid "" "OpenSSL 1.1 APIs for setting the minimum and maximum TLS protocol version " "are available as :attr:`SSLContext.minimum_version ` and :attr:`SSLContext.maximum_version `. Supported protocols are indicated by several new flags, " "such as :data:`~ssl.HAS_TLSv1_1`. (Contributed by Christian Heimes in :issue:" "`32609`.)" msgstr "" #: whatsnew/3.7.rst:1385 msgid "string" msgstr "*string*" #: whatsnew/3.7.rst:1387 msgid "" ":class:`string.Template` now lets you to optionally modify the regular " "expression pattern for braced placeholders and non-braced placeholders " "separately. (Contributed by Barry Warsaw in :issue:`1198569`.)" msgstr "" #: whatsnew/3.7.rst:1393 msgid "subprocess" msgstr "subprocess" #: whatsnew/3.7.rst:1395 msgid "" "The :func:`subprocess.run` function accepts the new *capture_output* keyword " "argument. When true, stdout and stderr will be captured. This is equivalent " "to passing :const:`subprocess.PIPE` as *stdout* and *stderr* arguments. " "(Contributed by Bo Bayles in :issue:`32102`.)" msgstr "" #: whatsnew/3.7.rst:1401 msgid "" "The ``subprocess.run`` function and the :class:`subprocess.Popen` " "constructor now accept the *text* keyword argument as an alias to " "*universal_newlines*. (Contributed by Andrew Clegg in :issue:`31756`.)" msgstr "" #: whatsnew/3.7.rst:1406 msgid "" "On Windows the default for *close_fds* was changed from ``False`` to " "``True`` when redirecting the standard handles. It's now possible to set " "*close_fds* to true when redirecting the standard handles. See :class:" "`subprocess.Popen`. This means that *close_fds* now defaults to ``True`` on " "all supported platforms. (Contributed by Segev Finer in :issue:`19764`.)" msgstr "" #: whatsnew/3.7.rst:1413 msgid "" "The subprocess module is now more graceful when handling :exc:" "`KeyboardInterrupt` during :func:`subprocess.call`, :func:`subprocess.run`, " "or in a :class:`~subprocess.Popen` context manager. It now waits a short " "amount of time for the child to exit, before continuing the handling of the " "``KeyboardInterrupt`` exception. (Contributed by Gregory P. Smith in :issue:" "`25942`.)" msgstr "" #: whatsnew/3.7.rst:2070 msgid "sys" msgstr "sys" #: whatsnew/3.7.rst:1425 msgid "" "The new :func:`sys.breakpointhook` hook function is called by the built-in :" "func:`breakpoint`. (Contributed by Barry Warsaw in :issue:`31353`.)" msgstr "" #: whatsnew/3.7.rst:1429 msgid "" "On Android, the new :func:`sys.getandroidapilevel` returns the build-time " "Android API version. (Contributed by Victor Stinner in :issue:`28740`.)" msgstr "" #: whatsnew/3.7.rst:1433 msgid "" "The new :func:`sys.get_coroutine_origin_tracking_depth` function returns the " "current coroutine origin tracking depth, as set by the new :func:`sys." "set_coroutine_origin_tracking_depth`. :mod:`asyncio` has been converted to " "use this new API instead of the deprecated :func:`sys." "set_coroutine_wrapper`. (Contributed by Nathaniel J. Smith in :issue:" "`32591`.)" msgstr "" #: whatsnew/3.7.rst:1442 msgid "time" msgstr "time" #: whatsnew/3.7.rst:1444 msgid "" ":pep:`564` adds six new functions with nanosecond resolution to the :mod:" "`time` module:" msgstr "" #: whatsnew/3.7.rst:1454 msgid "New clock identifiers have been added:" msgstr "" #: whatsnew/3.7.rst:1456 msgid "" ":const:`time.CLOCK_BOOTTIME` (Linux): Identical to :const:`time." "CLOCK_MONOTONIC`, except it also includes any time that the system is " "suspended." msgstr "" #: whatsnew/3.7.rst:1459 msgid "" ":const:`time.CLOCK_PROF` (FreeBSD, NetBSD and OpenBSD): High-resolution per-" "process CPU timer." msgstr "" #: whatsnew/3.7.rst:1461 msgid "" ":const:`time.CLOCK_UPTIME` (FreeBSD, OpenBSD): Time whose absolute value is " "the time the system has been running and not suspended, providing accurate " "uptime measurement." msgstr "" #: whatsnew/3.7.rst:1465 msgid "" "The new :func:`time.thread_time` and :func:`time.thread_time_ns` functions " "can be used to get per-thread CPU time measurements. (Contributed by Antoine " "Pitrou in :issue:`32025`.)" msgstr "" #: whatsnew/3.7.rst:1469 msgid "" "The new :func:`time.pthread_getcpuclockid` function returns the clock ID of " "the thread-specific CPU-time clock." msgstr "" #: whatsnew/3.7.rst:1474 msgid "tkinter" msgstr "tkinter" #: whatsnew/3.7.rst:1476 msgid "" "The new :class:`tkinter.ttk.Spinbox` class is now available. (Contributed by " "Alan Moore in :issue:`32585`.)" msgstr "" #: whatsnew/3.7.rst:1481 msgid "tracemalloc" msgstr "tracemalloc" #: whatsnew/3.7.rst:1483 msgid "" ":class:`tracemalloc.Traceback` behaves more like regular tracebacks, sorting " "the frames from oldest to most recent. :meth:`Traceback.format() " "` now accepts negative *limit*, truncating the " "result to the ``abs(limit)`` oldest frames. To get the old behaviour, use " "the new *most_recent_first* argument to ``Traceback.format()``. (Contributed " "by Jesse Bakker in :issue:`32121`.)" msgstr "" #: whatsnew/3.7.rst:1493 msgid "types" msgstr "" #: whatsnew/3.7.rst:1495 msgid "" "The new :class:`~types.WrapperDescriptorType`, :class:`~types." "MethodWrapperType`, :class:`~types.MethodDescriptorType`, and :class:`~types." "ClassMethodDescriptorType` classes are now available. (Contributed by Manuel " "Krebber and Guido van Rossum in :issue:`29377`, and Serhiy Storchaka in :" "issue:`32265`.)" msgstr "" #: whatsnew/3.7.rst:1501 msgid "" "The new :func:`types.resolve_bases` function resolves MRO entries " "dynamically as specified by :pep:`560`. (Contributed by Ivan Levkivskyi in :" "issue:`32717`.)" msgstr "" #: whatsnew/3.7.rst:1507 msgid "unicodedata" msgstr "unicodedata" #: whatsnew/3.7.rst:1509 msgid "" "The internal :mod:`unicodedata` database has been upgraded to use `Unicode " "11 `_. (Contributed by " "Benjamin Peterson.)" msgstr "" #: whatsnew/3.7.rst:1515 msgid "unittest" msgstr "unittest" #: whatsnew/3.7.rst:1517 msgid "" "The new ``-k`` command-line option allows filtering tests by a name " "substring or a Unix shell-like pattern. For example, ``python -m unittest -k " "foo`` runs ``foo_tests.SomeTest.test_something``, ``bar_tests.SomeTest." "test_foo``, but not ``bar_tests.FooTest.test_something``. (Contributed by " "Jonas Haag in :issue:`32071`.)" msgstr "" #: whatsnew/3.7.rst:1526 msgid "unittest.mock" msgstr "unittest.mock" #: whatsnew/3.7.rst:1528 msgid "" "The :const:`~unittest.mock.sentinel` attributes now preserve their identity " "when they are :mod:`copied ` or :mod:`pickled `. (Contributed " "by Serhiy Storchaka in :issue:`20804`.)" msgstr "" #: whatsnew/3.7.rst:1532 msgid "" "The new :func:`~unittest.mock.seal` function allows sealing :class:" "`~unittest.mock.Mock` instances, which will disallow further creation of " "attribute mocks. The seal is applied recursively to all attributes that are " "themselves mocks. (Contributed by Mario Corchero in :issue:`30541`.)" msgstr "" #: whatsnew/3.7.rst:1540 msgid "urllib.parse" msgstr "urllib.parse" #: whatsnew/3.7.rst:1542 msgid "" ":func:`urllib.parse.quote` has been updated from :rfc:`2396` to :rfc:`3986`, " "adding ``~`` to the set of characters that are never quoted by default. " "(Contributed by Christian Theune and Ratnadeep Debnath in :issue:`16285`.)" msgstr "" #: whatsnew/3.7.rst:1548 msgid "uu" msgstr "uu" #: whatsnew/3.7.rst:1550 msgid "" "The :func:`uu.encode` function now accepts an optional *backtick* keyword " "argument. When it's true, zeros are represented by ``'`'`` instead of " "spaces. (Contributed by Xiang Zhang in :issue:`30103`.)" msgstr "" #: whatsnew/3.7.rst:1556 msgid "uuid" msgstr "" #: whatsnew/3.7.rst:1558 msgid "" "The new :attr:`UUID.is_safe ` attribute relays " "information from the platform about whether generated UUIDs are generated " "with a multiprocessing-safe method. (Contributed by Barry Warsaw in :issue:" "`22807`.)" msgstr "" #: whatsnew/3.7.rst:1563 msgid "" ":func:`uuid.getnode` now prefers universally administered MAC addresses over " "locally administered MAC addresses. This makes a better guarantee for global " "uniqueness of UUIDs returned from :func:`uuid.uuid1`. If only locally " "administered MAC addresses are available, the first such one found is " "returned. (Contributed by Barry Warsaw in :issue:`32107`.)" msgstr "" #: whatsnew/3.7.rst:1572 msgid "warnings" msgstr "" #: whatsnew/3.7.rst:1574 msgid "" "The initialization of the default warnings filters has changed as follows:" msgstr "" #: whatsnew/3.7.rst:1576 msgid "" "warnings enabled via command line options (including those for :option:`-b` " "and the new CPython-specific :option:`-X` ``dev`` option) are always passed " "to the warnings machinery via the :data:`sys.warnoptions` attribute." msgstr "" #: whatsnew/3.7.rst:1580 msgid "" "warnings filters enabled via the command line or the environment now have " "the following order of precedence:" msgstr "" #: whatsnew/3.7.rst:1583 msgid "the ``BytesWarning`` filter for :option:`-b` (or ``-bb``)" msgstr "" #: whatsnew/3.7.rst:1584 msgid "any filters specified with the :option:`-W` option" msgstr "" #: whatsnew/3.7.rst:1585 msgid "" "any filters specified with the :envvar:`PYTHONWARNINGS` environment variable" msgstr "" #: whatsnew/3.7.rst:1587 msgid "" "any other CPython specific filters (e.g. the ``default`` filter added for " "the new ``-X dev`` mode)" msgstr "" #: whatsnew/3.7.rst:1589 msgid "any implicit filters defined directly by the warnings machinery" msgstr "" #: whatsnew/3.7.rst:1591 msgid "" "in :ref:`CPython debug builds `, all warnings are now displayed " "by default (the implicit filter list is empty)" msgstr "" #: whatsnew/3.7.rst:1594 msgid "" "(Contributed by Nick Coghlan and Victor Stinner in :issue:`20361`, :issue:" "`32043`, and :issue:`32230`.)" msgstr "" #: whatsnew/3.7.rst:1597 msgid "" "Deprecation warnings are once again shown by default in single-file scripts " "and at the interactive prompt. See :ref:`whatsnew37-pep565` for details. " "(Contributed by Nick Coghlan in :issue:`31975`.)" msgstr "" #: whatsnew/3.7.rst:1603 msgid "xml.etree" msgstr "xml.etree" #: whatsnew/3.7.rst:1605 msgid "" ":ref:`ElementPath ` predicates in the :meth:`find` " "methods can now compare text of the current node with ``[. = \"text\"]``, " "not only text in children. Predicates also allow adding spaces for better " "readability. (Contributed by Stefan Behnel in :issue:`31648`.)" msgstr "" #: whatsnew/3.7.rst:1612 msgid "xmlrpc.server" msgstr "" #: whatsnew/3.7.rst:1614 msgid "" ":meth:`SimpleXMLRPCDispatcher.register_function ` can now be used as a decorator. (Contributed by " "Xiang Zhang in :issue:`7769`.)" msgstr "" #: whatsnew/3.7.rst:1620 msgid "zipapp" msgstr "zipapp" #: whatsnew/3.7.rst:1622 msgid "" "Function :func:`~zipapp.create_archive` now accepts an optional *filter* " "argument to allow the user to select which files should be included in the " "archive. (Contributed by Irmen de Jong in :issue:`31072`.)" msgstr "" #: whatsnew/3.7.rst:1626 msgid "" "Function :func:`~zipapp.create_archive` now accepts an optional *compressed* " "argument to generate a compressed archive. A command line option ``--" "compress`` has also been added to support compression. (Contributed by " "Zhiming Wang in :issue:`31638`.)" msgstr "" #: whatsnew/3.7.rst:1633 msgid "zipfile" msgstr "zipfile" #: whatsnew/3.7.rst:1635 msgid "" ":class:`~zipfile.ZipFile` now accepts the new *compresslevel* parameter to " "control the compression level. (Contributed by Bo Bayles in :issue:`21417`.)" msgstr "" #: whatsnew/3.7.rst:1639 msgid "" "Subdirectories in archives created by ``ZipFile`` are now stored in " "alphabetical order. (Contributed by Bernhard M. Wiedemann in :issue:`30693`.)" msgstr "" #: whatsnew/3.7.rst:1645 msgid "C API Changes" msgstr "" #: whatsnew/3.7.rst:1647 msgid "" "A new API for thread-local storage has been implemented. See :ref:" "`whatsnew37-pep539` for an overview and :ref:`thread-specific-storage-api` " "for a complete reference. (Contributed by Masayuki Yamamoto in :issue:" "`25658`.)" msgstr "" #: whatsnew/3.7.rst:1652 msgid "" "The new :ref:`context variables ` functionality exposes a " "number of :ref:`new C APIs `." msgstr "" #: whatsnew/3.7.rst:1655 msgid "" "The new :c:func:`PyImport_GetModule` function returns the previously " "imported module with the given name. (Contributed by Eric Snow in :issue:" "`28411`.)" msgstr "" #: whatsnew/3.7.rst:1659 msgid "" "The new :c:macro:`Py_RETURN_RICHCOMPARE` macro eases writing rich comparison " "functions. (Contributed by Petr Victorin in :issue:`23699`.)" msgstr "" #: whatsnew/3.7.rst:1663 msgid "" "The new :c:macro:`Py_UNREACHABLE` macro can be used to mark unreachable code " "paths. (Contributed by Barry Warsaw in :issue:`31338`.)" msgstr "" #: whatsnew/3.7.rst:1667 msgid "" "The :mod:`tracemalloc` now exposes a C API through the new :c:func:" "`PyTraceMalloc_Track` and :c:func:`PyTraceMalloc_Untrack` functions. " "(Contributed by Victor Stinner in :issue:`30054`.)" msgstr "" #: whatsnew/3.7.rst:1672 msgid "" "The new :c:func:`import__find__load__start` and :c:func:" "`import__find__load__done` static markers can be used to trace module " "imports. (Contributed by Christian Heimes in :issue:`31574`.)" msgstr "" #: whatsnew/3.7.rst:1677 msgid "" "The fields :c:member:`name` and :c:member:`doc` of structures :c:type:" "`PyMemberDef`, :c:type:`PyGetSetDef`, :c:type:`PyStructSequence_Field`, :c:" "type:`PyStructSequence_Desc`, and :c:type:`wrapperbase` are now of type " "``const char *`` rather of ``char *``. (Contributed by Serhiy Storchaka in :" "issue:`28761`.)" msgstr "" #: whatsnew/3.7.rst:1683 msgid "" "The result of :c:func:`PyUnicode_AsUTF8AndSize` and :c:func:" "`PyUnicode_AsUTF8` is now of type ``const char *`` rather of ``char *``. " "(Contributed by Serhiy Storchaka in :issue:`28769`.)" msgstr "" #: whatsnew/3.7.rst:1687 msgid "" "The result of :c:func:`PyMapping_Keys`, :c:func:`PyMapping_Values` and :c:" "func:`PyMapping_Items` is now always a list, rather than a list or a tuple. " "(Contributed by Oren Milman in :issue:`28280`.)" msgstr "" #: whatsnew/3.7.rst:1691 msgid "" "Added functions :c:func:`PySlice_Unpack` and :c:func:" "`PySlice_AdjustIndices`. (Contributed by Serhiy Storchaka in :issue:`27867`.)" msgstr "" #: whatsnew/3.7.rst:1694 msgid "" ":c:func:`PyOS_AfterFork` is deprecated in favour of the new functions :c:" "func:`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` and :c:func:" "`PyOS_AfterFork_Child`. (Contributed by Antoine Pitrou in :issue:`16500`.)" msgstr "" #: whatsnew/3.7.rst:1699 msgid "" "The ``PyExc_RecursionErrorInst`` singleton that was part of the public API " "has been removed as its members being never cleared may cause a segfault " "during finalization of the interpreter. Contributed by Xavier de Gaye in :" "issue:`22898` and :issue:`30697`." msgstr "" #: whatsnew/3.7.rst:1704 msgid "" "Added C API support for timezones with timezone constructors :c:func:" "`PyTimeZone_FromOffset` and :c:func:`PyTimeZone_FromOffsetAndName`, and " "access to the UTC singleton with :c:data:`PyDateTime_TimeZone_UTC`. " "Contributed by Paul Ganssle in :issue:`10381`." msgstr "" #: whatsnew/3.7.rst:1709 msgid "" "The type of results of :c:func:`PyThread_start_new_thread` and :c:func:" "`PyThread_get_thread_ident`, and the *id* parameter of :c:func:" "`PyThreadState_SetAsyncExc` changed from :c:expr:`long` to :c:expr:`unsigned " "long`. (Contributed by Serhiy Storchaka in :issue:`6532`.)" msgstr "" #: whatsnew/3.7.rst:1715 msgid "" ":c:func:`PyUnicode_AsWideCharString` now raises a :exc:`ValueError` if the " "second argument is ``NULL`` and the :c:expr:`wchar_t*` string contains null " "characters. (Contributed by Serhiy Storchaka in :issue:`30708`.)" msgstr "" #: whatsnew/3.7.rst:1719 msgid "" "Changes to the startup sequence and the management of dynamic memory " "allocators mean that the long documented requirement to call :c:func:" "`Py_Initialize` before calling most C API functions is now relied on more " "heavily, and failing to abide by it may lead to segfaults in embedding " "applications. See the :ref:`porting-to-python-37` section in this document " "and the :ref:`pre-init-safe` section in the C API documentation for more " "details." msgstr "" #: whatsnew/3.7.rst:1727 msgid "" "The new :c:func:`PyInterpreterState_GetID` returns the unique ID for a given " "interpreter. (Contributed by Eric Snow in :issue:`29102`.)" msgstr "" #: whatsnew/3.7.rst:1731 msgid "" ":c:func:`Py_DecodeLocale`, :c:func:`Py_EncodeLocale` now use the UTF-8 " "encoding when the :ref:`UTF-8 mode ` is enabled. " "(Contributed by Victor Stinner in :issue:`29240`.)" msgstr "" #: whatsnew/3.7.rst:1735 msgid "" ":c:func:`PyUnicode_DecodeLocaleAndSize` and :c:func:`PyUnicode_EncodeLocale` " "now use the current locale encoding for ``surrogateescape`` error handler. " "(Contributed by Victor Stinner in :issue:`29240`.)" msgstr "" #: whatsnew/3.7.rst:1739 msgid "" "The *start* and *end* parameters of :c:func:`PyUnicode_FindChar` are now " "adjusted to behave like string slices. (Contributed by Xiang Zhang in :issue:" "`28822`.)" msgstr "" #: whatsnew/3.7.rst:1745 msgid "Build Changes" msgstr "" #: whatsnew/3.7.rst:1747 msgid "" "Support for building ``--without-threads`` has been removed. The :mod:" "`threading` module is now always available. (Contributed by Antoine Pitrou " "in :issue:`31370`.)." msgstr "" #: whatsnew/3.7.rst:1751 msgid "" "A full copy of libffi is no longer bundled for use when building the :mod:" "`_ctypes ` module on non-OSX UNIX platforms. An installed copy of " "libffi is now required when building ``_ctypes`` on such platforms. " "(Contributed by Zachary Ware in :issue:`27979`.)" msgstr "" #: whatsnew/3.7.rst:1756 msgid "" "The Windows build process no longer depends on Subversion to pull in " "external sources, a Python script is used to download zipfiles from GitHub " "instead. If Python 3.6 is not found on the system (via ``py -3.6``), NuGet " "is used to download a copy of 32-bit Python for this purpose. (Contributed " "by Zachary Ware in :issue:`30450`.)" msgstr "" #: whatsnew/3.7.rst:1762 msgid "" "The :mod:`ssl` module requires OpenSSL 1.0.2 or 1.1 compatible libssl. " "OpenSSL 1.0.1 has reached end of lifetime on 2016-12-31 and is no longer " "supported. LibreSSL is temporarily not supported as well. LibreSSL releases " "up to version 2.6.4 are missing required OpenSSL 1.0.2 APIs." msgstr "" #: whatsnew/3.7.rst:1771 #, fuzzy msgid "Optimizations" msgstr "Optimisation" #: whatsnew/3.7.rst:1773 msgid "" "The overhead of calling many methods of various standard library classes " "implemented in C has been significantly reduced by porting more code to use " "the ``METH_FASTCALL`` convention. (Contributed by Victor Stinner in :issue:" "`29300`, :issue:`29507`, :issue:`29452`, and :issue:`29286`.)" msgstr "" #: whatsnew/3.7.rst:1779 msgid "" "Various optimizations have reduced Python startup time by 10% on Linux and " "up to 30% on macOS. (Contributed by Victor Stinner, INADA Naoki in :issue:" "`29585`, and Ivan Levkivskyi in :issue:`31333`.)" msgstr "" #: whatsnew/3.7.rst:1784 msgid "" "Method calls are now up to 20% faster due to the bytecode changes which " "avoid creating bound method instances. (Contributed by Yury Selivanov and " "INADA Naoki in :issue:`26110`.)" msgstr "" #: whatsnew/3.7.rst:1790 msgid "" "The :mod:`asyncio` module received a number of notable optimizations for " "commonly used functions:" msgstr "" #: whatsnew/3.7.rst:1793 msgid "" "The :func:`asyncio.get_event_loop` function has been reimplemented in C to " "make it up to 15 times faster. (Contributed by Yury Selivanov in :issue:" "`32296`.)" msgstr "" #: whatsnew/3.7.rst:1797 msgid "" ":class:`asyncio.Future` callback management has been optimized. (Contributed " "by Yury Selivanov in :issue:`32348`.)" msgstr "" #: whatsnew/3.7.rst:1800 msgid "" ":func:`asyncio.gather` is now up to 15% faster. (Contributed by Yury " "Selivanov in :issue:`32355`.)" msgstr "" #: whatsnew/3.7.rst:1803 msgid "" ":func:`asyncio.sleep` is now up to 2 times faster when the *delay* argument " "is zero or negative. (Contributed by Andrew Svetlov in :issue:`32351`.)" msgstr "" #: whatsnew/3.7.rst:1807 msgid "" "The performance overhead of asyncio debug mode has been reduced. " "(Contributed by Antoine Pitrou in :issue:`31970`.)" msgstr "" #: whatsnew/3.7.rst:1810 msgid "" "As a result of :ref:`PEP 560 work `, the import time of :" "mod:`typing` has been reduced by a factor of 7, and many typing operations " "are now faster. (Contributed by Ivan Levkivskyi in :issue:`32226`.)" msgstr "" #: whatsnew/3.7.rst:1815 msgid "" ":func:`sorted` and :meth:`list.sort` have been optimized for common cases to " "be up to 40-75% faster. (Contributed by Elliot Gorokhovsky in :issue:" "`28685`.)" msgstr "" #: whatsnew/3.7.rst:1819 msgid "" ":meth:`dict.copy` is now up to 5.5 times faster. (Contributed by Yury " "Selivanov in :issue:`31179`.)" msgstr "" #: whatsnew/3.7.rst:1822 msgid "" ":func:`hasattr` and :func:`getattr` are now about 4 times faster when *name* " "is not found and *obj* does not override :meth:`object.__getattr__` or :meth:" "`object.__getattribute__`. (Contributed by INADA Naoki in :issue:`32544`.)" msgstr "" #: whatsnew/3.7.rst:1827 msgid "" "Searching for certain Unicode characters (like Ukrainian capital \"Є\") in a " "string was up to 25 times slower than searching for other characters. It is " "now only 3 times slower in the worst case. (Contributed by Serhiy Storchaka " "in :issue:`24821`.)" msgstr "" #: whatsnew/3.7.rst:1832 msgid "" "The :func:`collections.namedtuple` factory has been reimplemented to make " "the creation of named tuples 4 to 6 times faster. (Contributed by Jelle " "Zijlstra with further improvements by INADA Naoki, Serhiy Storchaka, and " "Raymond Hettinger in :issue:`28638`.)" msgstr "" #: whatsnew/3.7.rst:1837 msgid "" ":meth:`date.fromordinal` and :meth:`date.fromtimestamp` are now up to 30% " "faster in the common case. (Contributed by Paul Ganssle in :issue:`32403`.)" msgstr "" #: whatsnew/3.7.rst:1841 msgid "" "The :func:`os.fwalk` function is now up to 2 times faster thanks to the use " "of :func:`os.scandir`. (Contributed by Serhiy Storchaka in :issue:`25996`.)" msgstr "" #: whatsnew/3.7.rst:1845 msgid "" "The speed of the :func:`shutil.rmtree` function has been improved by 20--40% " "thanks to the use of the :func:`os.scandir` function. (Contributed by Serhiy " "Storchaka in :issue:`28564`.)" msgstr "" #: whatsnew/3.7.rst:1849 msgid "" "Optimized case-insensitive matching and searching of :mod:`regular " "expressions `. Searching some patterns can now be up to 20 times " "faster. (Contributed by Serhiy Storchaka in :issue:`30285`.)" msgstr "" #: whatsnew/3.7.rst:1853 msgid "" ":func:`re.compile` now converts ``flags`` parameter to int object if it is " "``RegexFlag``. It is now as fast as Python 3.5, and faster than Python 3.6 " "by about 10% depending on the pattern. (Contributed by INADA Naoki in :issue:" "`31671`.)" msgstr "" #: whatsnew/3.7.rst:1858 msgid "" "The :meth:`~selectors.BaseSelector.modify` methods of classes :class:" "`selectors.EpollSelector`, :class:`selectors.PollSelector` and :class:" "`selectors.DevpollSelector` may be around 10% faster under heavy loads. " "(Contributed by Giampaolo Rodola' in :issue:`30014`)" msgstr "" #: whatsnew/3.7.rst:1863 msgid "" "Constant folding has been moved from the peephole optimizer to the new AST " "optimizer, which is able perform optimizations more consistently. " "(Contributed by Eugene Toder and INADA Naoki in :issue:`29469` and :issue:" "`11549`.)" msgstr "" #: whatsnew/3.7.rst:1868 msgid "" "Most functions and methods in :mod:`abc` have been rewritten in C. This " "makes creation of abstract base classes, and calling :func:`isinstance` and :" "func:`issubclass` on them 1.5x faster. This also reduces Python start-up " "time by up to 10%. (Contributed by Ivan Levkivskyi and INADA Naoki in :issue:" "`31333`)" msgstr "" #: whatsnew/3.7.rst:1874 msgid "" "Significant speed improvements to alternate constructors for :class:" "`datetime.date` and :class:`datetime.datetime` by using fast-path " "constructors when not constructing subclasses. (Contributed by Paul Ganssle " "in :issue:`32403`)" msgstr "" #: whatsnew/3.7.rst:1879 msgid "" "The speed of comparison of :class:`array.array` instances has been improved " "considerably in certain cases. It is now from 10x to 70x faster when " "comparing arrays holding values of the same integer type. (Contributed by " "Adrian Wielgosik in :issue:`24700`.)" msgstr "" #: whatsnew/3.7.rst:1884 msgid "" "The :func:`math.erf` and :func:`math.erfc` functions now use the (faster) C " "library implementation on most platforms. (Contributed by Serhiy Storchaka " "in :issue:`26121`.)" msgstr "" #: whatsnew/3.7.rst:1890 msgid "Other CPython Implementation Changes" msgstr "" #: whatsnew/3.7.rst:1892 msgid "" "Trace hooks may now opt out of receiving the ``line`` and opt into receiving " "the ``opcode`` events from the interpreter by setting the corresponding new " "``f_trace_lines`` and ``f_trace_opcodes`` attributes on the frame being " "traced. (Contributed by Nick Coghlan in :issue:`31344`.)" msgstr "" #: whatsnew/3.7.rst:1897 msgid "" "Fixed some consistency problems with namespace package module attributes. " "Namespace module objects now have an ``__file__`` that is set to ``None`` " "(previously unset), and their ``__spec__.origin`` is also set to ``None`` " "(previously the string ``\"namespace\"``). See :issue:`32305`. Also, the " "namespace module object's ``__spec__.loader`` is set to the same value as " "``__loader__`` (previously, the former was set to ``None``). See :issue:" "`32303`." msgstr "" #: whatsnew/3.7.rst:1905 msgid "" "The :func:`locals` dictionary now displays in the lexical order that " "variables were defined. Previously, the order was undefined. (Contributed " "by Raymond Hettinger in :issue:`32690`.)" msgstr "" #: whatsnew/3.7.rst:1909 msgid "" "The :mod:`distutils` ``upload`` command no longer tries to change CR end-of-" "line characters to CRLF. This fixes a corruption issue with sdists that " "ended with a byte equivalent to CR. (Contributed by Bo Bayles in :issue:" "`32304`.)" msgstr "" #: whatsnew/3.7.rst:1916 msgid "Deprecated Python Behavior" msgstr "" #: whatsnew/3.7.rst:1918 msgid "" "Yield expressions (both ``yield`` and ``yield from`` clauses) are now " "deprecated in comprehensions and generator expressions (aside from the " "iterable expression in the leftmost :keyword:`!for` clause). This ensures " "that comprehensions always immediately return a container of the appropriate " "type (rather than potentially returning a :term:`generator iterator` " "object), while generator expressions won't attempt to interleave their " "implicit output with the output from any explicit yield expressions. In " "Python 3.7, such expressions emit :exc:`DeprecationWarning` when compiled, " "in Python 3.8 this will be a :exc:`SyntaxError`. (Contributed by Serhiy " "Storchaka in :issue:`10544`.)" msgstr "" #: whatsnew/3.7.rst:1929 msgid "" "Returning a subclass of :class:`complex` from :meth:`object.__complex__` is " "deprecated and will be an error in future Python versions. This makes " "``__complex__()`` consistent with :meth:`object.__int__` and :meth:`object." "__float__`. (Contributed by Serhiy Storchaka in :issue:`28894`.)" msgstr "" #: whatsnew/3.7.rst:1938 msgid "Deprecated Python modules, functions and methods" msgstr "" #: whatsnew/3.7.rst:1941 msgid "aifc" msgstr "aifc" #: whatsnew/3.7.rst:1943 msgid "" ":func:`aifc.openfp` has been deprecated and will be removed in Python 3.9. " "Use :func:`aifc.open` instead. (Contributed by Brian Curtin in :issue:" "`31985`.)" msgstr "" #: whatsnew/3.7.rst:1953 msgid "" "Support for directly ``await``-ing instances of :class:`asyncio.Lock` and " "other asyncio synchronization primitives has been deprecated. An " "asynchronous context manager must be used in order to acquire and release " "the synchronization resource. (Contributed by Andrew Svetlov in :issue:" "`32253`.)" msgstr "" #: whatsnew/3.7.rst:1959 msgid "" "The :meth:`asyncio.Task.current_task` and :meth:`asyncio.Task.all_tasks` " "methods have been deprecated. (Contributed by Andrew Svetlov in :issue:" "`32250`.)" msgstr "" #: whatsnew/3.7.rst:1967 msgid "" "In Python 3.8, the abstract base classes in :mod:`collections.abc` will no " "longer be exposed in the regular :mod:`collections` module. This will help " "create a clearer distinction between the concrete classes and the abstract " "base classes. (Contributed by Serhiy Storchaka in :issue:`25988`.)" msgstr "" #: whatsnew/3.7.rst:1977 msgid "" ":mod:`dbm.dumb` now supports reading read-only files and no longer writes " "the index file when it is not changed. A deprecation warning is now emitted " "if the index file is missing and recreated in the ``'r'`` and ``'w'`` modes " "(this will be an error in future Python releases). (Contributed by Serhiy " "Storchaka in :issue:`28847`.)" msgstr "" #: whatsnew/3.7.rst:1987 msgid "" "In Python 3.8, attempting to check for non-Enum objects in :class:`Enum` " "classes will raise a :exc:`TypeError` (e.g. ``1 in Color``); similarly, " "attempting to check for non-Flag objects in a :class:`Flag` member will " "raise :exc:`TypeError` (e.g. ``1 in Perm.RW``); currently, both operations " "return :const:`False` instead. (Contributed by Ethan Furman in :issue:" "`33217`.)" msgstr "" #: whatsnew/3.7.rst:1996 msgid "gettext" msgstr "" #: whatsnew/3.7.rst:1998 msgid "" "Using non-integer value for selecting a plural form in :mod:`gettext` is now " "deprecated. It never correctly worked. (Contributed by Serhiy Storchaka in :" "issue:`28692`.)" msgstr "" #: whatsnew/3.7.rst:2006 msgid "" "Methods :meth:`MetaPathFinder.find_module() ` (replaced by :meth:`MetaPathFinder.find_spec() `) and :meth:`PathEntryFinder.find_loader() " "` (replaced by :meth:" "`PathEntryFinder.find_spec() `) " "both deprecated in Python 3.4 now emit :exc:`DeprecationWarning`. " "(Contributed by Matthias Bussonnier in :issue:`29576`)" msgstr "" #: whatsnew/3.7.rst:2017 msgid "" "The :class:`importlib.abc.ResourceLoader` ABC has been deprecated in favour " "of :class:`importlib.abc.ResourceReader`." msgstr "" #: whatsnew/3.7.rst:2024 msgid "" ":func:`locale.format` has been deprecated, use :meth:`locale.format_string` " "instead. (Contributed by Garvit in :issue:`10379`.)" msgstr "" #: whatsnew/3.7.rst:2029 msgid "macpath" msgstr "" #: whatsnew/3.7.rst:2031 msgid "" "The :mod:`macpath` is now deprecated and will be removed in Python 3.8. " "(Contributed by Chi Hsuan Yen in :issue:`9850`.)" msgstr "" #: whatsnew/3.7.rst:2036 msgid "threading" msgstr "threading" #: whatsnew/3.7.rst:2038 msgid "" ":mod:`dummy_threading` and :mod:`_dummy_thread` have been deprecated. It is " "no longer possible to build Python with threading disabled. Use :mod:" "`threading` instead. (Contributed by Antoine Pitrou in :issue:`31370`.)" msgstr "" #: whatsnew/3.7.rst:2047 msgid "" "The silent argument value truncation in :func:`socket.htons` and :func:" "`socket.ntohs` has been deprecated. In future versions of Python, if the " "passed argument is larger than 16 bits, an exception will be raised. " "(Contributed by Oren Milman in :issue:`28332`.)" msgstr "" #: whatsnew/3.7.rst:2056 msgid "" ":func:`ssl.wrap_socket` is deprecated. Use :meth:`ssl.SSLContext." "wrap_socket` instead. (Contributed by Christian Heimes in :issue:`28124`.)" msgstr "" #: whatsnew/3.7.rst:2062 msgid "sunau" msgstr "" #: whatsnew/3.7.rst:2064 msgid "" ":func:`sunau.openfp` has been deprecated and will be removed in Python 3.9. " "Use :func:`sunau.open` instead. (Contributed by Brian Curtin in :issue:" "`31985`.)" msgstr "" #: whatsnew/3.7.rst:2072 msgid "" "Deprecated :func:`sys.set_coroutine_wrapper` and :func:`sys." "get_coroutine_wrapper`." msgstr "" #: whatsnew/3.7.rst:2075 msgid "" "The undocumented ``sys.callstats()`` function has been deprecated and will " "be removed in a future Python version. (Contributed by Victor Stinner in :" "issue:`28799`.)" msgstr "" #: whatsnew/3.7.rst:2081 msgid "wave" msgstr "wave" #: whatsnew/3.7.rst:2083 msgid "" ":func:`wave.openfp` has been deprecated and will be removed in Python 3.9. " "Use :func:`wave.open` instead. (Contributed by Brian Curtin in :issue:" "`31985`.)" msgstr "" #: whatsnew/3.7.rst:2089 msgid "Deprecated functions and types of the C API" msgstr "" #: whatsnew/3.7.rst:2091 msgid "" "Function :c:func:`PySlice_GetIndicesEx` is deprecated and replaced with a " "macro if ``Py_LIMITED_API`` is not set or set to a value in the range " "between ``0x03050400`` and ``0x03060000`` (not inclusive), or is " "``0x03060100`` or higher. (Contributed by Serhiy Storchaka in :issue:" "`27867`.)" msgstr "" #: whatsnew/3.7.rst:2096 msgid "" ":c:func:`PyOS_AfterFork` has been deprecated. Use :c:func:" "`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` or :c:func:" "`PyOS_AfterFork_Child()` instead. (Contributed by Antoine Pitrou in :issue:" "`16500`.)" msgstr "" #: whatsnew/3.7.rst:2104 msgid "Platform Support Removals" msgstr "" #: whatsnew/3.7.rst:2106 msgid "FreeBSD 9 and older are no longer officially supported." msgstr "" #: whatsnew/3.7.rst:2107 msgid "" "For full Unicode support, including within extension modules, \\*nix " "platforms are now expected to provide at least one of ``C.UTF-8`` (full " "locale), ``C.utf8`` (full locale) or ``UTF-8`` (``LC_CTYPE``-only locale) as " "an alternative to the legacy ``ASCII``-based ``C`` locale." msgstr "" #: whatsnew/3.7.rst:2111 msgid "" "OpenSSL 0.9.8 and 1.0.1 are no longer supported, which means building " "CPython 3.7 with SSL/TLS support on older platforms still using these " "versions requires custom build options that link to a more recent version of " "OpenSSL." msgstr "" #: whatsnew/3.7.rst:2115 msgid "" "Notably, this issue affects the Debian 8 (aka \"jessie\") and Ubuntu 14.04 " "(aka \"Trusty\") LTS Linux distributions, as they still use OpenSSL 1.0.1 by " "default." msgstr "" #: whatsnew/3.7.rst:2119 msgid "" "Debian 9 (\"stretch\") and Ubuntu 16.04 (\"xenial\"), as well as recent " "releases of other LTS Linux releases (e.g. RHEL/CentOS 7.5, SLES 12-SP3), " "use OpenSSL 1.0.2 or later, and remain supported in the default build " "configuration." msgstr "" #: whatsnew/3.7.rst:2123 msgid "" "CPython's own `CI configuration file `_ provides an example of using the SSL :source:" "`compatibility testing infrastructure ` in " "CPython's test suite to build and link against OpenSSL 1.1.0 rather than an " "outdated system provided OpenSSL." msgstr "" #: whatsnew/3.7.rst:2132 msgid "API and Feature Removals" msgstr "" #: whatsnew/3.7.rst:2134 msgid "The following features and APIs have been removed from Python 3.7:" msgstr "" #: whatsnew/3.7.rst:2136 msgid "" "The ``os.stat_float_times()`` function has been removed. It was introduced " "in Python 2.3 for backward compatibility with Python 2.2, and was deprecated " "since Python 3.1." msgstr "" #: whatsnew/3.7.rst:2140 msgid "" "Unknown escapes consisting of ``'\\'`` and an ASCII letter in replacement " "templates for :func:`re.sub` were deprecated in Python 3.5, and will now " "cause an error." msgstr "" #: whatsnew/3.7.rst:2144 msgid "" "Removed support of the *exclude* argument in :meth:`tarfile.TarFile.add`. It " "was deprecated in Python 2.7 and 3.2. Use the *filter* argument instead." msgstr "" #: whatsnew/3.7.rst:2147 msgid "" "The ``splitunc()`` function in the :mod:`ntpath` module was deprecated in " "Python 3.1, and has now been removed. Use the :func:`~os.path.splitdrive` " "function instead." msgstr "" #: whatsnew/3.7.rst:2151 msgid "" ":func:`collections.namedtuple` no longer supports the *verbose* parameter or " "``_source`` attribute which showed the generated source code for the named " "tuple class. This was part of an optimization designed to speed-up class " "creation. (Contributed by Jelle Zijlstra with further improvements by INADA " "Naoki, Serhiy Storchaka, and Raymond Hettinger in :issue:`28638`.)" msgstr "" #: whatsnew/3.7.rst:2157 msgid "" "Functions :func:`bool`, :func:`float`, :func:`list` and :func:`tuple` no " "longer take keyword arguments. The first argument of :func:`int` can now be " "passed only as positional argument." msgstr "" #: whatsnew/3.7.rst:2161 msgid "" "Removed previously deprecated in Python 2.4 classes ``Plist``, ``Dict`` and " "``_InternalDict`` in the :mod:`plistlib` module. Dict values in the result " "of functions :func:`~plistlib.readPlist` and :func:`~plistlib." "readPlistFromBytes` are now normal dicts. You no longer can use attribute " "access to access items of these dictionaries." msgstr "" #: whatsnew/3.7.rst:2167 msgid "" "The ``asyncio.windows_utils.socketpair()`` function has been removed. Use " "the :func:`socket.socketpair` function instead, it is available on all " "platforms since Python 3.5. ``asyncio.windows_utils.socketpair`` was just an " "alias to ``socket.socketpair`` on Python 3.5 and newer." msgstr "" #: whatsnew/3.7.rst:2173 msgid "" ":mod:`asyncio` no longer exports the :mod:`selectors` and :mod:`_overlapped` " "modules as ``asyncio.selectors`` and ``asyncio._overlapped``. Replace ``from " "asyncio import selectors`` with ``import selectors``." msgstr "" #: whatsnew/3.7.rst:2178 msgid "" "Direct instantiation of :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` " "objects is now prohibited. The constructors were never documented, tested, " "or designed as public constructors. Users were supposed to use :func:`ssl." "wrap_socket` or :class:`ssl.SSLContext`. (Contributed by Christian Heimes " "in :issue:`32951`.)" msgstr "" #: whatsnew/3.7.rst:2184 msgid "" "The unused :mod:`distutils` ``install_misc`` command has been removed. " "(Contributed by Eric N. Vander Weele in :issue:`29218`.)" msgstr "" #: whatsnew/3.7.rst:2189 msgid "Module Removals" msgstr "" #: whatsnew/3.7.rst:2191 msgid "" "The ``fpectl`` module has been removed. It was never enabled by default, " "never worked correctly on x86-64, and it changed the Python ABI in ways that " "caused unexpected breakage of C extensions. (Contributed by Nathaniel J. " "Smith in :issue:`29137`.)" msgstr "" #: whatsnew/3.7.rst:2474 msgid "Windows-only Changes" msgstr "" #: whatsnew/3.7.rst:2200 msgid "" "The python launcher, (py.exe), can accept 32 & 64 bit specifiers **without** " "having to specify a minor version as well. So ``py -3-32`` and ``py -3-64`` " "become valid as well as ``py -3.7-32``, also the -*m*-64 and -*m.n*-64 forms " "are now accepted to force 64 bit python even if 32 bit would have otherwise " "been used. If the specified version is not available py.exe will error exit. " "(Contributed by Steve Barnes in :issue:`30291`.)" msgstr "" #: whatsnew/3.7.rst:2207 msgid "" "The launcher can be run as ``py -0`` to produce a list of the installed " "pythons, *with default marked with an asterisk*. Running ``py -0p`` will " "include the paths. If py is run with a version specifier that cannot be " "matched it will also print the *short form* list of available specifiers. " "(Contributed by Steve Barnes in :issue:`30362`.)" msgstr "" #: whatsnew/3.7.rst:2217 #, fuzzy msgid "Porting to Python 3.7" msgstr "Portage vers Python 2.7" #: whatsnew/3.7.rst:2219 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" #: whatsnew/3.7.rst:2224 msgid "Changes in Python Behavior" msgstr "" #: whatsnew/3.7.rst:2226 msgid "" ":keyword:`async` and :keyword:`await` names are now reserved keywords. Code " "using these names as identifiers will now raise a :exc:`SyntaxError`. " "(Contributed by Jelle Zijlstra in :issue:`30406`.)" msgstr "" #: whatsnew/3.7.rst:2230 msgid "" ":pep:`479` is enabled for all code in Python 3.7, meaning that :exc:" "`StopIteration` exceptions raised directly or indirectly in coroutines and " "generators are transformed into :exc:`RuntimeError` exceptions. (Contributed " "by Yury Selivanov in :issue:`32670`.)" msgstr "" #: whatsnew/3.7.rst:2236 msgid "" ":meth:`object.__aiter__` methods can no longer be declared as asynchronous. " "(Contributed by Yury Selivanov in :issue:`31709`.)" msgstr "" #: whatsnew/3.7.rst:2239 msgid "" "Due to an oversight, earlier Python versions erroneously accepted the " "following syntax::" msgstr "" #: whatsnew/3.7.rst:2247 msgid "" "Python 3.7 now correctly raises a :exc:`SyntaxError`, as a generator " "expression always needs to be directly inside a set of parentheses and " "cannot have a comma on either side, and the duplication of the parentheses " "can be omitted only on calls. (Contributed by Serhiy Storchaka in :issue:" "`32012` and :issue:`32023`.)" msgstr "" #: whatsnew/3.7.rst:2253 msgid "" "When using the :option:`-m` switch, the initial working directory is now " "added to :data:`sys.path`, rather than an empty string (which dynamically " "denoted the current working directory at the time of each import). Any " "programs that are checking for the empty string, or otherwise relying on the " "previous behaviour, will need to be updated accordingly (e.g. by also " "checking for ``os.getcwd()`` or ``os.path.dirname(__main__.__file__)``, " "depending on why the code was checking for the empty string in the first " "place)." msgstr "" #: whatsnew/3.7.rst:2263 msgid "Changes in the Python API" msgstr "" #: whatsnew/3.7.rst:2265 msgid "" ":meth:`socketserver.ThreadingMixIn.server_close` now waits until all non-" "daemon threads complete. Set the new :attr:`socketserver.ThreadingMixIn." "block_on_close` class attribute to ``False`` to get the pre-3.7 behaviour. " "(Contributed by Victor Stinner in :issue:`31233` and :issue:`33540`.)" msgstr "" #: whatsnew/3.7.rst:2271 msgid "" ":meth:`socketserver.ForkingMixIn.server_close` now waits until all child " "processes complete. Set the new :attr:`socketserver.ForkingMixIn." "block_on_close` class attribute to ``False`` to get the pre-3.7 behaviour. " "(Contributed by Victor Stinner in :issue:`31151` and :issue:`33540`.)" msgstr "" #: whatsnew/3.7.rst:2277 msgid "" "The :func:`locale.localeconv` function now temporarily sets the ``LC_CTYPE`` " "locale to the value of ``LC_NUMERIC`` in some cases. (Contributed by Victor " "Stinner in :issue:`31900`.)" msgstr "" #: whatsnew/3.7.rst:2281 msgid "" ":meth:`pkgutil.walk_packages` now raises a :exc:`ValueError` if *path* is a " "string. Previously an empty list was returned. (Contributed by Sanyam " "Khurana in :issue:`24744`.)" msgstr "" #: whatsnew/3.7.rst:2285 msgid "" "A format string argument for :meth:`string.Formatter.format` is now :ref:" "`positional-only `. Passing it as a keyword " "argument was deprecated in Python 3.5. (Contributed by Serhiy Storchaka in :" "issue:`29193`.)" msgstr "" #: whatsnew/3.7.rst:2290 msgid "" "Attributes :attr:`~http.cookies.Morsel.key`, :attr:`~http.cookies.Morsel." "value` and :attr:`~http.cookies.Morsel.coded_value` of class :class:`http." "cookies.Morsel` are now read-only. Assigning to them was deprecated in " "Python 3.5. Use the :meth:`~http.cookies.Morsel.set` method for setting " "them. (Contributed by Serhiy Storchaka in :issue:`29192`.)" msgstr "" #: whatsnew/3.7.rst:2298 msgid "" "The *mode* argument of :func:`os.makedirs` no longer affects the file " "permission bits of newly created intermediate-level directories. To set " "their file permission bits you can set the umask before invoking " "``makedirs()``. (Contributed by Serhiy Storchaka in :issue:`19930`.)" msgstr "" #: whatsnew/3.7.rst:2304 msgid "" "The :attr:`struct.Struct.format` type is now :class:`str` instead of :class:" "`bytes`. (Contributed by Victor Stinner in :issue:`21071`.)" msgstr "" #: whatsnew/3.7.rst:2307 msgid "" ":func:`~cgi.parse_multipart` now accepts the *encoding* and *errors* " "arguments and returns the same results as :class:`~FieldStorage`: for non-" "file fields, the value associated to a key is a list of strings, not bytes. " "(Contributed by Pierre Quentel in :issue:`29979`.)" msgstr "" #: whatsnew/3.7.rst:2313 msgid "" "Due to internal changes in :mod:`socket`, calling :func:`socket.fromshare` " "on a socket created by :func:`socket.share ` in older " "Python versions is not supported." msgstr "" #: whatsnew/3.7.rst:2317 msgid "" "``repr`` for :exc:`BaseException` has changed to not include the trailing " "comma. Most exceptions are affected by this change. (Contributed by Serhiy " "Storchaka in :issue:`30399`.)" msgstr "" #: whatsnew/3.7.rst:2321 msgid "" "``repr`` for :class:`datetime.timedelta` has changed to include the keyword " "arguments in the output. (Contributed by Utkarsh Upadhyay in :issue:`30302`.)" msgstr "" #: whatsnew/3.7.rst:2324 msgid "" "Because :func:`shutil.rmtree` is now implemented using the :func:`os." "scandir` function, the user specified handler *onerror* is now called with " "the first argument ``os.scandir`` instead of ``os.listdir`` when listing the " "directory is failed." msgstr "" #: whatsnew/3.7.rst:2329 msgid "" "Support for nested sets and set operations in regular expressions as in " "`Unicode Technical Standard #18`_ might be added in the future. This would " "change the syntax. To facilitate this future change a :exc:`FutureWarning` " "will be raised in ambiguous cases for the time being. That include sets " "starting with a literal ``'['`` or containing literal character sequences " "``'--'``, ``'&&'``, ``'~~'``, and ``'||'``. To avoid a warning, escape them " "with a backslash. (Contributed by Serhiy Storchaka in :issue:`30349`.)" msgstr "" #: whatsnew/3.7.rst:2340 msgid "" "The result of splitting a string on a :mod:`regular expression ` that " "could match an empty string has been changed. For example splitting on " "``r'\\s*'`` will now split not only on whitespaces as it did previously, but " "also on empty strings before all non-whitespace characters and just before " "the end of the string. The previous behavior can be restored by changing the " "pattern to ``r'\\s+'``. A :exc:`FutureWarning` was emitted for such " "patterns since Python 3.5." msgstr "" #: whatsnew/3.7.rst:2349 msgid "" "For patterns that match both empty and non-empty strings, the result of " "searching for all matches may also be changed in other cases. For example " "in the string ``'a\\n\\n'``, the pattern ``r'(?m)^\\s*?$'`` will not only " "match empty strings at positions 2 and 3, but also the string ``'\\n'`` at " "positions 2--3. To match only blank lines, the pattern should be rewritten " "as ``r'(?m)^[^\\S\\n]*$'``." msgstr "" #: whatsnew/3.7.rst:2356 msgid "" ":func:`re.sub()` now replaces empty matches adjacent to a previous non-empty " "match. For example ``re.sub('x*', '-', 'abxd')`` returns now ``'-a-b--d-'`` " "instead of ``'-a-b-d-'`` (the first minus between 'b' and 'd' replaces 'x', " "and the second minus replaces an empty string between 'x' and 'd')." msgstr "" #: whatsnew/3.7.rst:2362 msgid "(Contributed by Serhiy Storchaka in :issue:`25054` and :issue:`32308`.)" msgstr "" #: whatsnew/3.7.rst:2364 msgid "" "Change :func:`re.escape` to only escape regex special characters instead of " "escaping all characters other than ASCII letters, numbers, and ``'_'``. " "(Contributed by Serhiy Storchaka in :issue:`29995`.)" msgstr "" #: whatsnew/3.7.rst:2368 msgid "" ":class:`tracemalloc.Traceback` frames are now sorted from oldest to most " "recent to be more consistent with :mod:`traceback`. (Contributed by Jesse " "Bakker in :issue:`32121`.)" msgstr "" #: whatsnew/3.7.rst:2372 msgid "" "On OSes that support :const:`socket.SOCK_NONBLOCK` or :const:`socket." "SOCK_CLOEXEC` bit flags, the :attr:`socket.type ` no " "longer has them applied. Therefore, checks like ``if sock.type == socket." "SOCK_STREAM`` work as expected on all platforms. (Contributed by Yury " "Selivanov in :issue:`32331`.)" msgstr "" #: whatsnew/3.7.rst:2379 msgid "" "On Windows the default for the *close_fds* argument of :class:`subprocess." "Popen` was changed from :const:`False` to :const:`True` when redirecting the " "standard handles. If you previously depended on handles being inherited when " "using :class:`subprocess.Popen` with standard io redirection, you will have " "to pass ``close_fds=False`` to preserve the previous behaviour, or use :attr:" "`STARTUPINFO.lpAttributeList `." msgstr "" #: whatsnew/3.7.rst:2387 msgid "" ":meth:`importlib.machinery.PathFinder.invalidate_caches` -- which implicitly " "affects :func:`importlib.invalidate_caches` -- now deletes entries in :data:" "`sys.path_importer_cache` which are set to ``None``. (Contributed by Brett " "Cannon in :issue:`33169`.)" msgstr "" #: whatsnew/3.7.rst:2392 msgid "" "In :mod:`asyncio`, :meth:`loop.sock_recv() `, :meth:" "`loop.sock_sendall() `, :meth:`loop.sock_accept() " "`, :meth:`loop.getaddrinfo() `, :meth:`loop.getnameinfo() ` have " "been changed to be proper coroutine methods to match their documentation. " "Previously, these methods returned :class:`asyncio.Future` instances. " "(Contributed by Yury Selivanov in :issue:`32327`.)" msgstr "" #: whatsnew/3.7.rst:2403 msgid "" ":attr:`asyncio.Server.sockets` now returns a copy of the internal list of " "server sockets, instead of returning it directly. (Contributed by Yury " "Selivanov in :issue:`32662`.)" msgstr "" #: whatsnew/3.7.rst:2407 msgid "" ":attr:`Struct.format ` is now a :class:`str` instance " "instead of a :class:`bytes` instance. (Contributed by Victor Stinner in :" "issue:`21071`.)" msgstr "" #: whatsnew/3.7.rst:2411 msgid "" ":mod:`argparse` subparsers can now be made mandatory by passing " "``required=True`` to :meth:`ArgumentParser.add_subparsers() `. (Contributed by Anthony Sottile in :issue:" "`26510`.)" msgstr "" #: whatsnew/3.7.rst:2415 msgid "" ":meth:`ast.literal_eval()` is now stricter. Addition and subtraction of " "arbitrary numbers are no longer allowed. (Contributed by Serhiy Storchaka " "in :issue:`31778`.)" msgstr "" #: whatsnew/3.7.rst:2419 msgid "" ":meth:`Calendar.itermonthdates ` will now " "consistently raise an exception when a date falls outside of the " "``0001-01-01`` through ``9999-12-31`` range. To support applications that " "cannot tolerate such exceptions, the new :meth:`Calendar.itermonthdays3 " "` and :meth:`Calendar.itermonthdays4 " "` can be used. The new methods return " "tuples and are not restricted by the range supported by :class:`datetime." "date`. (Contributed by Alexander Belopolsky in :issue:`28292`.)" msgstr "" #: whatsnew/3.7.rst:2429 msgid "" ":class:`collections.ChainMap` now preserves the order of the underlying " "mappings. (Contributed by Raymond Hettinger in :issue:`32792`.)" msgstr "" #: whatsnew/3.7.rst:2432 msgid "" "The ``submit()`` method of :class:`concurrent.futures.ThreadPoolExecutor` " "and :class:`concurrent.futures.ProcessPoolExecutor` now raises a :exc:" "`RuntimeError` if called during interpreter shutdown. (Contributed by Mark " "Nemec in :issue:`33097`.)" msgstr "" #: whatsnew/3.7.rst:2437 msgid "" "The :class:`configparser.ConfigParser` constructor now uses ``read_dict()`` " "to process the default values, making its behavior consistent with the rest " "of the parser. Non-string keys and values in the defaults dictionary are " "now being implicitly converted to strings. (Contributed by James Tocknell " "in :issue:`23835`.)" msgstr "" #: whatsnew/3.7.rst:2443 msgid "" "Several undocumented internal imports were removed. One example is that ``os." "errno`` is no longer available; use ``import errno`` directly instead. Note " "that such undocumented internal imports may be removed any time without " "notice, even in micro version releases." msgstr "" #: whatsnew/3.7.rst:2451 msgid "Changes in the C API" msgstr "" #: whatsnew/3.7.rst:2453 msgid "" "The function :c:func:`PySlice_GetIndicesEx` is considered unsafe for " "resizable sequences. If the slice indices are not instances of :class:" "`int`, but objects that implement the :meth:`!__index__` method, the " "sequence can be resized after passing its length to :c:func:`!" "PySlice_GetIndicesEx`. This can lead to returning indices out of the length " "of the sequence. For avoiding possible problems use new functions :c:func:" "`PySlice_Unpack` and :c:func:`PySlice_AdjustIndices`. (Contributed by Serhiy " "Storchaka in :issue:`27867`.)" msgstr "" #: whatsnew/3.7.rst:2464 msgid "CPython bytecode changes" msgstr "" #: whatsnew/3.7.rst:2466 msgid "" "There are two new opcodes: :opcode:`LOAD_METHOD` and :opcode:`CALL_METHOD`. " "(Contributed by Yury Selivanov and INADA Naoki in :issue:`26110`.)" msgstr "" #: whatsnew/3.7.rst:2469 msgid "" "The :opcode:`STORE_ANNOTATION` opcode has been removed. (Contributed by Mark " "Shannon in :issue:`32550`.)" msgstr "" #: whatsnew/3.7.rst:2476 msgid "" "The file used to override :data:`sys.path` is now called ``._pth`` instead of ``'sys.path'``. See :ref:" "`windows_finding_modules` for more information. (Contributed by Steve Dower " "in :issue:`28137`.)" msgstr "" #: whatsnew/3.7.rst:2483 msgid "Other CPython implementation changes" msgstr "" #: whatsnew/3.7.rst:2485 msgid "" "In preparation for potential future changes to the public CPython runtime " "initialization API (see :pep:`432` for an initial, but somewhat outdated, " "draft), CPython's internal startup and configuration management logic has " "been significantly refactored. While these updates are intended to be " "entirely transparent to both embedding applications and users of the regular " "CPython CLI, they're being mentioned here as the refactoring changes the " "internal order of various operations during interpreter startup, and hence " "may uncover previously latent defects, either in embedding applications, or " "in CPython itself. (Initially contributed by Nick Coghlan and Eric Snow as " "part of :issue:`22257`, and further updated by Nick, Eric, and Victor " "Stinner in a number of other issues). Some known details affected:" msgstr "" #: whatsnew/3.7.rst:2498 msgid "" ":c:func:`PySys_AddWarnOptionUnicode` is not currently usable by embedding " "applications due to the requirement to create a Unicode object prior to " "calling ``Py_Initialize``. Use :c:func:`PySys_AddWarnOption` instead." msgstr "" #: whatsnew/3.7.rst:2502 msgid "" "warnings filters added by an embedding application with :c:func:" "`PySys_AddWarnOption` should now more consistently take precedence over the " "default filters set by the interpreter" msgstr "" #: whatsnew/3.7.rst:2506 msgid "" "Due to changes in the way the default warnings filters are configured, " "setting :c:data:`Py_BytesWarningFlag` to a value greater than one is no " "longer sufficient to both emit :exc:`BytesWarning` messages and have them " "converted to exceptions. Instead, the flag must be set (to cause the " "warnings to be emitted in the first place), and an explicit ``error::" "BytesWarning`` warnings filter added to convert them to exceptions." msgstr "" #: whatsnew/3.7.rst:2513 msgid "" "Due to a change in the way docstrings are handled by the compiler, the " "implicit ``return None`` in a function body consisting solely of a docstring " "is now marked as occurring on the same line as the docstring, not on the " "function's header line." msgstr "" #: whatsnew/3.7.rst:2518 msgid "" "The current exception state has been moved from the frame object to the co-" "routine. This simplified the interpreter and fixed a couple of obscure bugs " "caused by having swap exception state when entering or exiting a generator. " "(Contributed by Mark Shannon in :issue:`25612`.)" msgstr "" #: whatsnew/3.7.rst:2524 msgid "Notable changes in Python 3.7.1" msgstr "" #: whatsnew/3.7.rst:2526 msgid "" "Starting in 3.7.1, :c:func:`Py_Initialize` now consistently reads and " "respects all of the same environment settings as :c:func:`Py_Main` (in " "earlier Python versions, it respected an ill-defined subset of those " "environment variables, while in Python 3.7.0 it didn't read any of them due " "to :issue:`34247`). If this behavior is unwanted, set :c:data:" "`Py_IgnoreEnvironmentFlag` to 1 before calling :c:func:`Py_Initialize`." msgstr "" #: whatsnew/3.7.rst:2533 msgid "" "In 3.7.1 the C API for Context Variables :ref:`was updated " "` to use :c:type:`PyObject` " "pointers. See also :issue:`34762`." msgstr "" #: whatsnew/3.7.rst:2537 msgid "" "In 3.7.1 the :mod:`tokenize` module now implicitly emits a ``NEWLINE`` token " "when provided with input that does not have a trailing new line. This " "behavior now matches what the C tokenizer does internally. (Contributed by " "Ammar Askar in :issue:`33899`.)" msgstr "" #: whatsnew/3.7.rst:2543 msgid "Notable changes in Python 3.7.2" msgstr "" #: whatsnew/3.7.rst:2545 msgid "" "In 3.7.2, :mod:`venv` on Windows no longer copies the original binaries, but " "creates redirector scripts named ``python.exe`` and ``pythonw.exe`` instead. " "This resolves a long standing issue where all virtual environments would " "have to be upgraded or recreated with each Python update. However, note that " "this release will still require recreation of virtual environments in order " "to get the new scripts." msgstr "" #: whatsnew/3.7.rst:2553 msgid "Notable changes in Python 3.7.6" msgstr "" #: whatsnew/3.7.rst:2555 msgid "" "Due to significant security concerns, the *reuse_address* parameter of :meth:" "`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " "because of the behavior of the socket option ``SO_REUSEADDR`` in UDP. For " "more details, see the documentation for ``loop.create_datagram_endpoint()``. " "(Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in :issue:" "`37228`.)" msgstr "" #: whatsnew/3.7.rst:2563 #, fuzzy msgid "Notable changes in Python 3.7.10" msgstr "Portage vers Python 2.7" #: whatsnew/3.7.rst:2565 msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " "parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." "parse.parse_qsl`. Due to security concerns, and to conform with newer W3C " "recommendations, this has been changed to allow only a single separator key, " "with ``&`` as the default. This change also affects :func:`cgi.parse` and :" "func:`cgi.parse_multipart` as they use the affected functions internally. " "For more details, please see their respective documentation. (Contributed by " "Adam Goldschmidt, Senthil Kumaran and Ken Jin in :issue:`42967`.)" msgstr ""