PyCharm release 2016.3: Full Python 3.6 support, improvements in the Python console, variable browser, and more
Hello! Yesterday we released the new PyCharm 2016.3, which is already available for download . This release is the latest major update with new functionality in 2016.
Since the previous release of PyCharm, exactly 4 months have passed. During this time, PyCharm has received a number of new useful improvements in tools for Python, Django, the web and scientific development, which, as always, are tightly integrated and work effectively with each other. Today we are happy to tell you what is interesting and important in the new version of PyCharm.
Full Python 3.6 support
First of all, we note that PyCharm 2016.3 fully supports the latest Python 3.6 . Now Python 3.6 is in a stable beta-stage, and we are well prepared for its official release, scheduled for December of this year. The following standards are supported: ')
PEP 526: Variable annotation syntax . Now PyCharm understands the new variable type annotation syntax and uses this information to calculate the types in the code. Ultimately, this translates into improved code analysis and auto-completion. Also, by Alt + Enter, PyCharm can convert annotations in comments into a new syntax and back.
PEP 498: Formatted lowercase literals . PyCharm understands the syntax of the new f-strings construct and provides special autocompletion inside f-strings. By Alt-Enter, you can automatically convert traditionally formatted strings using% and str.format () to the new format introduced in Python 3.6.
PEP 515: Underscores in numeric literals . This standard extends Python syntax. Now underscores can serve as delimiters between numbers in numeric literals.
PEP 525 and PEP 530. These two standards describe asynchronous generators and inclusions. For them, we added new inspections to PyCharm.
Django support
We have added support for Django-projects with a couple of small improvements:
In PyCharm 2016.3, you can create a new Django project for running and debugging on a remote machine without the need to set up a local interpreter. You can specify the interpreter located on the VM, in the Docker-container or remote server, at the stage of project creation.
We implemented autocompletion specific to Django-forms in Django Views implemented in classes — in the same way as in the last release for Views implemented through functions.
Multi-line commands in the Python console
In this release, we fixed a lot of bugs in the Python console, mainly concerning the formatting and display of multi-line commands. Now, experimenting and writing code in the console has become much more convenient and visually more pleasant. In addition to many minor improvements to the Python console, we added autocompletion for IPython by pressing Tab.
Variable Browser
Now, in the debug mode, only the variables used in the current project are in the workspace. All service and system variables are hidden under the “Special Variables” section. If an IPython interpreter is used, all IPython service variables are also placed in “Special Variables”:
For large arrays, such as NumPy arrays or pandas DataFrames, we added the ability to view them in a separate specialized browser. Just click “View as ...” in the variables browser:
Activate virtualenv in the terminal
If virtualenv is used as the project interpreter, the virtual environment is automatically activated when the built-in terminal is started. Automatic activation of venv works for bash, zsh, fish and Windows cmd.
Docker Compose support
At the configuration stage of the remote interpreter, when choosing the Docker Compose configuration, you can now specify several files that extend the Compose configuration. If Compose files use environment variables, they can now be set at the same stage in a special field.
Coverage for branches
In PyCharm 2016.3, the built-in code coverage analysis tool has been improved with the new “Branch coverage” option. This option is disabled by default, but can be activated in Settings (Preferences) |Build, Execution, Deployment |Coverage |Python coverage . When the option is activated, PyCharm adds information about line-by-line coverage of alternative branches in code to the standard profiler report, as shown in the screenshot.
Line profiling
In the previous release, we added support for VMprof, and already in this release we improved it by adding the “profile lines” mode to the display directly in the code editor. This mode works by default when using VMprof in profiling mode. After collecting statistics, in addition to viewing the standard profiler reports, PyCharm displays the results of line-by-line profiling directly in the editor. Rows that use a significant portion of CPU time are displayed in different colors, from yellow to red, in order of increasing resource intensity. To try this mode, you need to install the vmprof package on the current interpreter of the project.
Other improvements
This release also significantly improves support for advanced web technologies : Flow support, improved TypeScript support, support for PostCSS, Stylelint, and more:
PyCharm 2016.3 also includes many new features and enhancements from the IntelliJ Platform: improved ergonomic features and speed of the VCS log, improved the Merge dialog box, syntax highlighting in the Diff and Merge dialog boxes, and an interface for managing Git remote repositories in the project :
In addition, the database tools have been improved - thanks to colleagues from the JetBrains DataGrip team:
Below is a short demo in English from Paul Averit, our developer lawyer:
If you are interested, we offer a 30-day free trial for the full-featured PyCharm Professional Edition, and in the price section you can find out about the cost of a subscription. Many improvements to this release are also available in the free PyCharm Community Edition. The differences between PyCharm Professional and Community can be found here .
Learn more about the innovations and improvements in PyCharm 2016.3 on our website .
Watch also for articles and updates in our English-language blog . We will be happy to answer any of your questions in the comments.