Python 3.6.2 released

Second maintenance release with many new features and optimizations
24 July 2017   1473
Python

Multi-paradigm programming language with easy-to-use syntax and many features including the support of the object-oriented and structured programming.

Great news for all Python developers. Python 3.6.2 is now available.

Python 3.6.2 is the second maintenance release of Python 3.6, which was initially released in 2016-12 to great interest. With the release of 3.6.2, developers provide the second set of bugfixes and documentation updates to 3.6. The next maintenance release is expected to follow in about 3 months, around the end of 2017-09. Let's see what's inside.

Major new features of the 3.6 series, compared to 3.5

Among the new major new features in Python 3.6 are:

  • PEP 468, Preserving Keyword Argument Order
  • PEP 487, Simpler customization of class creation
  • PEP 495, Local Time Disambiguation
  • PEP 498, Literal String Formatting
  • PEP 506, Adding A Secrets Module To The Standard Library
  • PEP 509, Add a private version to dict
  • PEP 515, Underscores in Numeric Literals
  • PEP 519, Adding a file system path protocol
  • PEP 520, Preserving Class Attribute Definition Order
  • PEP 523, Adding a frame evaluation API to CPython
  • PEP 524, Make os.urandom() blocking on Linux (during system startup)
  • PEP 525, Asynchronous Generators (provisional)
  • PEP 526, Syntax for Variable Annotations (provisional)
  • PEP 528, Change Windows console encoding to UTF-8
  • PEP 529, Change Windows filesystem encoding to UTF-8
  • PEP 530, Asynchronous Comprehensions

New library modules:

  • secrets: PEP 506 – Adding A Secrets Module To The Standard Library.

 CPython implementation improvements:

  • The dict type has been reimplemented to use a more compact representation based on a proposal by Raymond Hettinger and similar to the PyPy dict implementation. This resulted in dictionaries using 20% to 25% less memory when compared to Python 3.5.
  • Customization of class creation has been simplified with the new protocol.
  • The class attribute definition order is now preserved.
  • The order of elements in **kwargs now corresponds to the order in which keyword arguments were passed to the function.
  • DTrace and SystemTap probing support has been added.
  • The new PYTHONMALLOC environment variable can now be used to debug the interpreter memory allocation and access errors.

Significant improvements in the standard library:

  • The asyncio module has received new features, significant usability and performance improvements, and a fair amount of bug fixes. Starting with Python 3.6 the asyncio module is no longer provisional and its API is considered stable.
  • A new file system path protocol has been implemented to support path-like objects. All standard library functions operating on paths have been updated to work with the new protocol.
  • The datetime module has gained support for Local Time Disambiguation.
  • The typing module received a number of improvements.
  • The tracemalloc module has been significantly reworked and is now used to provide better output for ResourceWarning as well as provide better diagnostics for memory allocation errors.

Security improvements:

  • The new secrets module has been added to simplify the generation of cryptographically strong pseudo-random numbers suitable for managing secrets such as account authentication, tokens, and similar.
  • On Linux, os.urandom() now blocks until the system urandom entropy pool is initialized to increase the security. See the PEP 524 for the rationale.
  • The hashlib and ssl modules now support OpenSSL 1.1.0.
  • The default settings and feature set of the ssl module have been improved.
  • The hashlib module received support for the BLAKE2, SHA-3 and SHAKE hash algorithms and the scrypt() key derivation function.

Windows improvements:

  • PEP 528 and PEP 529, Windows filesystem and console encoding changed to UTF-8.
  • The py.exe launcher, when used interactively, no longer prefers Python 2 over Python 3 when the user doesn’t specify a version (via command line arguments or a config file). Handling of shebang lines remains unchanged - “python” refers to Python 2 in that case.
  • python.exe and pythonw.exe have been marked as long-path aware, which means that the 260 character path limit may no longer apply.
  • ._pth file can be added to force isolated mode and fully specify all search paths to avoid registry and environment lookup.
  • python36.zip file now works as a landmark to infer PYTHONHOME.

Related links

OpenAI to Create Fake News Creating Algorithm

On the basis of one or two phrases that set the theme, it is able to “write” a fairly plausible story
18 February 2019   145

The GPT-2 algorithm, created by OpenAI for working with language and texts, turned out to be a master in creating fake news. On the basis of one or two phrases that set the theme, it is able to “compose” a fairly plausible story. For example:

  • an article about scientists who have found a herd of unicorns in the Andes;
  • news about pop star Miley Cyrus caught on shoplifting;
  • artistic text about Legolas and Gimli attacking the orcs;
  • an essay on how waste recycling harms the economy, nature, and human health.

The developers did not publish the source code of the model entirely, fearing abuse by unscrupulous users. For fellow researchers, they posted on GitHub a simplified version of the algorithm and gave a link to the preprint of the scientific article. The overall results are published on the OpenAI blog.

GPT-2 is a general purpose algorithm. The developers taught it to answer questions, “understand” the logic of a text, a sentence, finish building phrases. In this case, the algorithm worked worse than the model of a specific purpose. Researchers suggest that the indicators can be improved by expanding the training datasets and choosing computers more efficiently.