The Python releases have come at a very steady pace over the last two months, consistently moving the language ahead. Recently, the Python Software Foundation produced the latest release in the 3.5 series–Python 3.5.3.
Today we are announcing general availability of ActivePython 3.5.3 on Windows, Linux, and MacOS. This comes on the heels of our recent ActivePython 3.6 release, the latest in the 3 series. We have included, on all platforms, the same great set of packages that every serious Python developer uses, such as requests, six, pytest, pyflakes, datetime, coverage and many others.
This new release of Python 3.5.3 includes a variety of changes to resolve memory leaks in some edge cases, dozens of fixes for other issues including in the core libraries. Of note: work on Python 3.5.4 has begun, but no schedule is set as yet for its release.
Security Changes
Several security items were addressed including a change to remediate a shell injection issue, removal of 3DES from the ssl module, as well as changes to mitigate against an HTTPoxy attack in CGI scripts. For a more detailed dive into these items please see the full change log.
What’s New in Python 3.5.3 (and ActivePython 3.5.3)
Dynamic Typing Changes
Dynamic typing has always been both a benefit and a source of bugs. Python 3.5.3 continues to improve on the typed annotations introduced in 3.5. Type annotations provide hints to help developers to better understand their code and make it more maintainable overall. This will also allow development tools to be built on top of this functionality to provide better checking for the developer and potentially code generation. Python creator Guido van Rossum has been a driving force behind getting type hinting into the language.
Asynchronous Programming Capabilities
Python 3.5.3 has continued to evolve its asynchronous programming capabilities with changes to the asyncio module. There are several bug fixes in this version as well as some performance improvements. Overall asynchronous programming allows the developer to not have to wait for a particular (typically longer running) result such as I/O.
You now have your pick of either of the latest Python series 3 or series 2 versions with ActivePython 3.5.3 or 2.7.13 production-ready and available for download.