# Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. # msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-01-15 22:33+0100\n" "PO-Revision-Date: 2018-07-31 23:30+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.1.rst:3 msgid "What's New In Python 3.1" msgstr "Nouveautés de Python 3.1" #: whatsnew/3.1.rst:0 msgid "Author" msgstr "Auteur" #: whatsnew/3.1.rst:5 msgid "Raymond Hettinger" msgstr "Raymond Hettinger" #: whatsnew/3.1.rst:49 msgid "" "This article explains the new features in Python 3.1, compared to 3.0. " "Python 3.1 was released on June 27, 2009." msgstr "" #: whatsnew/3.1.rst:54 msgid "PEP 372: Ordered Dictionaries" msgstr "" #: whatsnew/3.1.rst:56 msgid "" "Regular Python dictionaries iterate over key/value pairs in arbitrary order. " "Over the years, a number of authors have written alternative implementations " "that remember the order that the keys were originally inserted. Based on " "the experiences from those implementations, a new :class:`collections." "OrderedDict` class has been introduced." msgstr "" #: whatsnew/3.1.rst:62 msgid "" "The OrderedDict API is substantially the same as regular dictionaries but " "will iterate over keys and values in a guaranteed order depending on when a " "key was first inserted. If a new entry overwrites an existing entry, the " "original insertion position is left unchanged. Deleting an entry and " "reinserting it will move it to the end." msgstr "" #: whatsnew/3.1.rst:68 msgid "" "The standard library now supports use of ordered dictionaries in several " "modules. The :mod:`configparser` module uses them by default. This lets " "configuration files be read, modified, and then written back in their " "original order. The *_asdict()* method for :func:`collections.namedtuple` " "now returns an ordered dictionary with the values appearing in the same " "order as the underlying tuple indices. The :mod:`json` module is being " "built-out with an *object_pairs_hook* to allow OrderedDicts to be built by " "the decoder. Support was also added for third-party tools like `PyYAML " "`_." msgstr "" #: whatsnew/3.1.rst:80 msgid ":pep:`372` - Ordered Dictionaries" msgstr "" #: whatsnew/3.1.rst:80 msgid "" "PEP written by Armin Ronacher and Raymond Hettinger. Implementation written " "by Raymond Hettinger." msgstr "" #: whatsnew/3.1.rst:85 msgid "PEP 378: Format Specifier for Thousands Separator" msgstr "" #: whatsnew/3.1.rst:87 msgid "" "The built-in :func:`format` function and the :meth:`str.format` method use a " "mini-language that now includes a simple, non-locale aware way to format a " "number with a thousands separator. That provides a way to humanize a " "program's output, improving its professional appearance and readability::" msgstr "" #: whatsnew/3.1.rst:101 msgid "" "The supported types are :class:`int`, :class:`float`, :class:`complex` and :" "class:`decimal.Decimal`." msgstr "" #: whatsnew/3.1.rst:104 msgid "" "Discussions are underway about how to specify alternative separators like " "dots, spaces, apostrophes, or underscores. Locale-aware applications should " "use the existing *n* format specifier which already has some support for " "thousands separators." msgstr "" #: whatsnew/3.1.rst:112 msgid ":pep:`378` - Format Specifier for Thousands Separator" msgstr "" #: whatsnew/3.1.rst:112 msgid "" "PEP written by Raymond Hettinger and implemented by Eric Smith and Mark " "Dickinson." msgstr "" #: whatsnew/3.1.rst:117 msgid "Other Language Changes" msgstr "" #: whatsnew/3.1.rst:119 msgid "Some smaller changes made to the core Python language are:" msgstr "" #: whatsnew/3.1.rst:121 msgid "" "Directories and zip archives containing a :file:`__main__.py` file can now " "be executed directly by passing their name to the interpreter. The directory/" "zipfile is automatically inserted as the first entry in sys.path. " "(Suggestion and initial patch by Andy Chu; revised patch by Phillip J. Eby " "and Nick Coghlan; :issue:`1739468`.)" msgstr "" #: whatsnew/3.1.rst:127 msgid "" "The :func:`int` type gained a ``bit_length`` method that returns the number " "of bits necessary to represent its argument in binary::" msgstr "" #: whatsnew/3.1.rst:141 msgid "" "(Contributed by Fredrik Johansson, Victor Stinner, Raymond Hettinger, and " "Mark Dickinson; :issue:`3439`.)" msgstr "" #: whatsnew/3.1.rst:144 msgid "" "The fields in :func:`format` strings can now be automatically numbered::" msgstr "" #: whatsnew/3.1.rst:150 msgid "" "Formerly, the string would have required numbered fields such as: ``'Sir {0} " "of {1}'``." msgstr "" #: whatsnew/3.1.rst:153 msgid "(Contributed by Eric Smith; :issue:`5237`.)" msgstr "(Contribution par Eric Smith; :issue:`5237`.)" #: whatsnew/3.1.rst:155 msgid "" "The :func:`string.maketrans` function is deprecated and is replaced by new " "static methods, :meth:`bytes.maketrans` and :meth:`bytearray.maketrans`. " "This change solves the confusion around which types were supported by the :" "mod:`string` module. Now, :class:`str`, :class:`bytes`, and :class:" "`bytearray` each have their own **maketrans** and **translate** methods with " "intermediate translation tables of the appropriate type." msgstr "" #: whatsnew/3.1.rst:162 msgid "(Contributed by Georg Brandl; :issue:`5675`.)" msgstr "(Contribution par Georg Brandl; :issue:`5675`.)" #: whatsnew/3.1.rst:164 msgid "" "The syntax of the :keyword:`with` statement now allows multiple context " "managers in a single statement::" msgstr "" #: whatsnew/3.1.rst:172 msgid "" "With the new syntax, the :func:`contextlib.nested` function is no longer " "needed and is now deprecated." msgstr "" #: whatsnew/3.1.rst:175 msgid "" "(Contributed by Georg Brandl and Mattias Brändström; `appspot issue 53094 " "`_.)" msgstr "" #: whatsnew/3.1.rst:178 msgid "" "``round(x, n)`` now returns an integer if *x* is an integer. Previously it " "returned a float::" msgstr "" #: whatsnew/3.1.rst:184 msgid "(Contributed by Mark Dickinson; :issue:`4707`.)" msgstr "(Contribution par Mark Dickinson; :issue:`4707`.)" #: whatsnew/3.1.rst:186 msgid "" "Python now uses David Gay's algorithm for finding the shortest floating " "point representation that doesn't change its value. This should help " "mitigate some of the confusion surrounding binary floating point numbers." msgstr "" #: whatsnew/3.1.rst:191 msgid "" "The significance is easily seen with a number like ``1.1`` which does not " "have an exact equivalent in binary floating point. Since there is no exact " "equivalent, an expression like ``float('1.1')`` evaluates to the nearest " "representable value which is ``0x1.199999999999ap+0`` in hex or " "``1.100000000000000088817841970012523233890533447265625`` in decimal. That " "nearest value was and still is used in subsequent floating point " "calculations." msgstr "" #: whatsnew/3.1.rst:199 msgid "" "What is new is how the number gets displayed. Formerly, Python used a " "simple approach. The value of ``repr(1.1)`` was computed as ``format(1.1, " "'.17g')`` which evaluated to ``'1.1000000000000001'``. The advantage of " "using 17 digits was that it relied on IEEE-754 guarantees to assure that " "``eval(repr(1.1))`` would round-trip exactly to its original value. The " "disadvantage is that many people found the output to be confusing (mistaking " "intrinsic limitations of binary floating point representation as being a " "problem with Python itself)." msgstr "" #: whatsnew/3.1.rst:208 msgid "" "The new algorithm for ``repr(1.1)`` is smarter and returns ``'1.1'``. " "Effectively, it searches all equivalent string representations (ones that " "get stored with the same underlying float value) and returns the shortest " "representation." msgstr "" #: whatsnew/3.1.rst:213 msgid "" "The new algorithm tends to emit cleaner representations when possible, but " "it does not change the underlying values. So, it is still the case that " "``1.1 + 2.2 != 3.3`` even though the representations may suggest otherwise." msgstr "" #: whatsnew/3.1.rst:217 msgid "" "The new algorithm depends on certain features in the underlying floating " "point implementation. If the required features are not found, the old " "algorithm will continue to be used. Also, the text pickle protocols assure " "cross-platform portability by using the old algorithm." msgstr "" #: whatsnew/3.1.rst:222 msgid "(Contributed by Eric Smith and Mark Dickinson; :issue:`1580`)" msgstr "(Contribution par Eric Smith et Mark Dickinson; :issue:`1580`.)" #: whatsnew/3.1.rst:225 msgid "New, Improved, and Deprecated Modules" msgstr "" #: whatsnew/3.1.rst:227 msgid "" "Added a :class:`collections.Counter` class to support convenient counting of " "unique items in a sequence or iterable::" msgstr "" #: whatsnew/3.1.rst:233 msgid "(Contributed by Raymond Hettinger; :issue:`1696199`.)" msgstr "(Contribution par Raymond Hettinger; :issue:`1696199`.)" #: whatsnew/3.1.rst:235 msgid "" "Added a new module, :mod:`tkinter.ttk` for access to the Tk themed widget " "set. The basic idea of ttk is to separate, to the extent possible, the code " "implementing a widget's behavior from the code implementing its appearance." msgstr "" #: whatsnew/3.1.rst:239 msgid "(Contributed by Guilherme Polo; :issue:`2983`.)" msgstr "(Contribution par Guilherme Polo; :issue:`2983`.)" #: whatsnew/3.1.rst:241 msgid "" "The :class:`gzip.GzipFile` and :class:`bz2.BZ2File` classes now support the " "context management protocol::" msgstr "" #: whatsnew/3.1.rst:248 msgid "(Contributed by Antoine Pitrou.)" msgstr "(Contribution par Antoine Pitrou)" #: whatsnew/3.1.rst:250 msgid "" "The :mod:`decimal` module now supports methods for creating a decimal object " "from a binary :class:`float`. The conversion is exact but can sometimes be " "surprising::" msgstr "" #: whatsnew/3.1.rst:257 msgid "" "The long decimal result shows the actual binary fraction being stored for " "*1.1*. The fraction has many digits because *1.1* cannot be exactly " "represented in binary." msgstr "" #: whatsnew/3.1.rst:261 msgid "(Contributed by Raymond Hettinger and Mark Dickinson.)" msgstr "" #: whatsnew/3.1.rst:263 msgid "" "The :mod:`itertools` module grew two new functions. The :func:`itertools." "combinations_with_replacement` function is one of four for generating " "combinatorics including permutations and Cartesian products. The :func:" "`itertools.compress` function mimics its namesake from APL. Also, the " "existing :func:`itertools.count` function now has an optional *step* " "argument and can accept any type of counting sequence including :class:" "`fractions.Fraction` and :class:`decimal.Decimal`::" msgstr "" #: whatsnew/3.1.rst:282 msgid "(Contributed by Raymond Hettinger.)" msgstr "" #: whatsnew/3.1.rst:284 msgid "" ":func:`collections.namedtuple` now supports a keyword argument *rename* " "which lets invalid fieldnames be automatically converted to positional names " "in the form _0, _1, etc. This is useful when the field names are being " "created by an external source such as a CSV header, SQL field list, or user " "input::" msgstr "" #: whatsnew/3.1.rst:301 msgid "(Contributed by Raymond Hettinger; :issue:`1818`.)" msgstr "(Contribution par Raymond Hettinger; :issue:`1818`.)" #: whatsnew/3.1.rst:303 msgid "" "The :func:`re.sub`, :func:`re.subn` and :func:`re.split` functions now " "accept a flags parameter." msgstr "" #: whatsnew/3.1.rst:306 msgid "(Contributed by Gregory Smith.)" msgstr "" #: whatsnew/3.1.rst:308 msgid "" "The :mod:`logging` module now implements a simple :class:`logging." "NullHandler` class for applications that are not using logging but are " "calling library code that does. Setting-up a null handler will suppress " "spurious warnings such as \"No handlers could be found for logger foo\"::" msgstr "" #: whatsnew/3.1.rst:316 msgid "(Contributed by Vinay Sajip; :issue:`4384`)." msgstr "(Contribution par Vinay Sajip ; :issue:`4384`)." #: whatsnew/3.1.rst:318 msgid "" "The :mod:`runpy` module which supports the ``-m`` command line switch now " "supports the execution of packages by looking for and executing a " "``__main__`` submodule when a package name is supplied." msgstr "" #: whatsnew/3.1.rst:322 msgid "(Contributed by Andi Vajda; :issue:`4195`.)" msgstr "(Contribution par Andi Vajda; :issue:`4195`.)" #: whatsnew/3.1.rst:324 msgid "" "The :mod:`pdb` module can now access and display source code loaded via :mod:" "`zipimport` (or any other conformant :pep:`302` loader)." msgstr "" #: whatsnew/3.1.rst:327 msgid "(Contributed by Alexander Belopolsky; :issue:`4201`.)" msgstr "(Contribution par Alexander Belopolsky; :issue:`4201`.)" #: whatsnew/3.1.rst:329 msgid ":class:`functools.partial` objects can now be pickled." msgstr "" #: whatsnew/3.1.rst:331 msgid "" "(Suggested by Antoine Pitrou and Jesse Noller. Implemented by Jack " "Diederich; :issue:`5228`.)" msgstr "" #: whatsnew/3.1.rst:334 msgid "" "Add :mod:`pydoc` help topics for symbols so that ``help('@')`` works as " "expected in the interactive environment." msgstr "" #: whatsnew/3.1.rst:337 msgid "(Contributed by David Laban; :issue:`4739`.)" msgstr "(Contribution par David Laban; :issue:`4739`.)" #: whatsnew/3.1.rst:339 msgid "" "The :mod:`unittest` module now supports skipping individual tests or classes " "of tests. And it supports marking a test as an expected failure, a test that " "is known to be broken, but shouldn't be counted as a failure on a " "TestResult::" msgstr "" #: whatsnew/3.1.rst:354 msgid "" "Also, tests for exceptions have been builtout to work with context managers " "using the :keyword:`with` statement::" msgstr "" #: whatsnew/3.1.rst:361 msgid "" "In addition, several new assertion methods were added including :func:" "`assertSetEqual`, :func:`assertDictEqual`, :func:" "`assertDictContainsSubset`, :func:`assertListEqual`, :func:" "`assertTupleEqual`, :func:`assertSequenceEqual`, :func:" "`assertRaisesRegexp`, :func:`assertIsNone`, and :func:`assertIsNotNone`." msgstr "" #: whatsnew/3.1.rst:368 msgid "(Contributed by Benjamin Peterson and Antoine Pitrou.)" msgstr "(Contribution par Benjamin Peterson et Antoine Pitrou)" #: whatsnew/3.1.rst:370 msgid "" "The :mod:`io` module has three new constants for the :meth:`seek` method :" "data:`SEEK_SET`, :data:`SEEK_CUR`, and :data:`SEEK_END`." msgstr "" #: whatsnew/3.1.rst:373 msgid "The :attr:`sys.version_info` tuple is now a named tuple::" msgstr "" #: whatsnew/3.1.rst:378 msgid "(Contributed by Ross Light; :issue:`4285`.)" msgstr "(Contribution par Ross Ligh; :issue:`4285`.)" #: whatsnew/3.1.rst:380 msgid "The :mod:`nntplib` and :mod:`imaplib` modules now support IPv6." msgstr "" #: whatsnew/3.1.rst:382 msgid "(Contributed by Derek Morr; :issue:`1655` and :issue:`1664`.)" msgstr "(Contribution par Derek Morr; :issue:`1655` et :issue:`1664`)" #: whatsnew/3.1.rst:384 msgid "" "The :mod:`pickle` module has been adapted for better interoperability with " "Python 2.x when used with protocol 2 or lower. The reorganization of the " "standard library changed the formal reference for many objects. For " "example, ``__builtin__.set`` in Python 2 is called ``builtins.set`` in " "Python 3. This change confounded efforts to share data between different " "versions of Python. But now when protocol 2 or lower is selected, the " "pickler will automatically use the old Python 2 names for both loading and " "dumping. This remapping is turned-on by default but can be disabled with the " "*fix_imports* option::" msgstr "" #: whatsnew/3.1.rst:400 msgid "" "An unfortunate but unavoidable side-effect of this change is that protocol 2 " "pickles produced by Python 3.1 won't be readable with Python 3.0. The latest " "pickle protocol, protocol 3, should be used when migrating data between " "Python 3.x implementations, as it doesn't attempt to remain compatible with " "Python 2.x." msgstr "" #: whatsnew/3.1.rst:406 msgid "" "(Contributed by Alexandre Vassalotti and Antoine Pitrou, :issue:`6137`.)" msgstr "" "(Contribution par Alexandre Vassalotti et Antoine Pitrou; :issue:`6137`.)" #: whatsnew/3.1.rst:408 msgid "" "A new module, :mod:`importlib` was added. It provides a complete, portable, " "pure Python reference implementation of the :keyword:`import` statement and " "its counterpart, the :func:`__import__` function. It represents a " "substantial step forward in documenting and defining the actions that take " "place during imports." msgstr "" #: whatsnew/3.1.rst:414 msgid "(Contributed by Brett Cannon.)" msgstr "" #: whatsnew/3.1.rst:417 #, fuzzy msgid "Optimizations" msgstr "Optimisation" #: whatsnew/3.1.rst:419 msgid "Major performance enhancements have been added:" msgstr "" #: whatsnew/3.1.rst:421 msgid "" "The new I/O library (as defined in :pep:`3116`) was mostly written in Python " "and quickly proved to be a problematic bottleneck in Python 3.0. In Python " "3.1, the I/O library has been entirely rewritten in C and is 2 to 20 times " "faster depending on the task at hand. The pure Python version is still " "available for experimentation purposes through the ``_pyio`` module." msgstr "" #: whatsnew/3.1.rst:428 msgid "(Contributed by Amaury Forgeot d'Arc and Antoine Pitrou.)" msgstr "(Contribution par Amaury Forgeot d'Arc et Antoine Pitrou)" #: whatsnew/3.1.rst:430 msgid "" "Added a heuristic so that tuples and dicts containing only untrackable " "objects are not tracked by the garbage collector. This can reduce the size " "of collections and therefore the garbage collection overhead on long-running " "programs, depending on their particular use of datatypes." msgstr "" #: whatsnew/3.1.rst:435 msgid "(Contributed by Antoine Pitrou, :issue:`4688`.)" msgstr "(Contribution par Antoine Pitrou; :issue:`4688`.)" #: whatsnew/3.1.rst:437 msgid "" "Enabling a configure option named ``--with-computed-gotos`` on compilers " "that support it (notably: gcc, SunPro, icc), the bytecode evaluation loop is " "compiled with a new dispatch mechanism which gives speedups of up to 20%, " "depending on the system, the compiler, and the benchmark." msgstr "" #: whatsnew/3.1.rst:443 msgid "" "(Contributed by Antoine Pitrou along with a number of other participants, :" "issue:`4753`)." msgstr "" "(Contribution par Antoine Pitrou ainsi qu’un certain nombre d’autres " "participants ; :issue:`4753`)." #: whatsnew/3.1.rst:446 msgid "" "The decoding of UTF-8, UTF-16 and LATIN-1 is now two to four times faster." msgstr "" #: whatsnew/3.1.rst:449 msgid "" "(Contributed by Antoine Pitrou and Amaury Forgeot d'Arc, :issue:`4868`.)" msgstr "" "(Contribution par Antoine Pitrou et Amaury Forgeot d'Arc; :issue:`4868`.)" #: whatsnew/3.1.rst:451 msgid "" "The :mod:`json` module now has a C extension to substantially improve its " "performance. In addition, the API was modified so that json works only " "with :class:`str`, not with :class:`bytes`. That change makes the module " "closely match the `JSON specification `_ which is defined " "in terms of Unicode." msgstr "" #: whatsnew/3.1.rst:457 msgid "" "(Contributed by Bob Ippolito and converted to Py3.1 by Antoine Pitrou and " "Benjamin Peterson; :issue:`4136`.)" msgstr "" #: whatsnew/3.1.rst:460 msgid "" "Unpickling now interns the attribute names of pickled objects. This saves " "memory and allows pickles to be smaller." msgstr "" #: whatsnew/3.1.rst:463 msgid "(Contributed by Jake McGuire and Antoine Pitrou; :issue:`5084`.)" msgstr "(Contribution par Jake McGuire et Antoine Pitrou; :issue:`5084`.)" #: whatsnew/3.1.rst:466 msgid "IDLE" msgstr "IDLE" #: whatsnew/3.1.rst:468 msgid "" "IDLE's format menu now provides an option to strip trailing whitespace from " "a source file." msgstr "" #: whatsnew/3.1.rst:471 msgid "(Contributed by Roger D. Serwy; :issue:`5150`.)" msgstr "(Contribution par Roger D. Serwy; :issue:`5150`.)" #: whatsnew/3.1.rst:474 msgid "Build and C API Changes" msgstr "" #: whatsnew/3.1.rst:476 msgid "Changes to Python's build process and to the C API include:" msgstr "" #: whatsnew/3.1.rst:478 msgid "" "Integers are now stored internally either in base ``2**15`` or in base " "``2**30``, the base being determined at build time. Previously, they were " "always stored in base ``2**15``. Using base ``2**30`` gives significant " "performance improvements on 64-bit machines, but benchmark results on 32-bit " "machines have been mixed. Therefore, the default is to use base ``2**30`` " "on 64-bit machines and base ``2**15`` on 32-bit machines; on Unix, there's a " "new configure option ``--enable-big-digits`` that can be used to override " "this default." msgstr "" #: whatsnew/3.1.rst:487 msgid "" "Apart from the performance improvements this change should be invisible to " "end users, with one exception: for testing and debugging purposes there's a " "new :attr:`sys.int_info` that provides information about the internal " "format, giving the number of bits per digit and the size in bytes of the C " "type used to store each digit::" msgstr "" #: whatsnew/3.1.rst:497 msgid "(Contributed by Mark Dickinson; :issue:`4258`.)" msgstr "(Contribution par Mark Dickinson; :issue:`4258`.)" #: whatsnew/3.1.rst:499 msgid "" "The :c:func:`PyLong_AsUnsignedLongLong()` function now handles a negative " "*pylong* by raising :exc:`OverflowError` instead of :exc:`TypeError`." msgstr "" #: whatsnew/3.1.rst:502 msgid "(Contributed by Mark Dickinson and Lisandro Dalcrin; :issue:`5175`.)" msgstr "(Contribution par Mark Dickinson et Lisandro Dalcrin; :issue:`5175`)" #: whatsnew/3.1.rst:504 msgid "" "Deprecated :c:func:`PyNumber_Int`. Use :c:func:`PyNumber_Long` instead." msgstr "" #: whatsnew/3.1.rst:506 msgid "(Contributed by Mark Dickinson; :issue:`4910`.)" msgstr "(Contribution par Mark Dickinson; :issue:`4910`)" #: whatsnew/3.1.rst:508 msgid "" "Added a new :c:func:`PyOS_string_to_double` function to replace the " "deprecated functions :c:func:`PyOS_ascii_strtod` and :c:func:" "`PyOS_ascii_atof`." msgstr "" #: whatsnew/3.1.rst:511 msgid "(Contributed by Mark Dickinson; :issue:`5914`.)" msgstr "(Contribution par Mark Dickinson; :issue:`5914`)" #: whatsnew/3.1.rst:513 msgid "" "Added :c:type:`PyCapsule` as a replacement for the :c:type:`PyCObject` API. " "The principal difference is that the new type has a well defined interface " "for passing typing safety information and a less complicated signature for " "calling a destructor. The old type had a problematic API and is now " "deprecated." msgstr "" #: whatsnew/3.1.rst:519 msgid "(Contributed by Larry Hastings; :issue:`5630`.)" msgstr "(Contribution par Larry Hastings; :issue:`5630`)" #: whatsnew/3.1.rst:522 msgid "Porting to Python 3.1" msgstr "Portage vers Python 3.1" #: whatsnew/3.1.rst:524 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" msgstr "" #: whatsnew/3.1.rst:527 msgid "" "The new floating point string representations can break existing doctests. " "For example::" msgstr "" #: whatsnew/3.1.rst:550 msgid "" "The automatic name remapping in the pickle module for protocol 2 or lower " "can make Python 3.1 pickles unreadable in Python 3.0. One solution is to " "use protocol 3. Another solution is to set the *fix_imports* option to " "``False``. See the discussion above for more details." msgstr ""