What’s New in PyCharm 2016.1

PyCharm 2016.1 is the first update in the series of releases planned for 2016. It brings an outstanding lineup of new features for professional Python, Web and scientific development that work together smoothly to offer you a unique coding experience.

Please note that features marked pro only are supported only in PyCharm Professional Edition.

Full-fledged Professional
or Free Community
Take a short video tour

Python Tools

Python 2 and Python 3 Compatible Type Hinting

PyCharm 2016.1 brings support for the recent addition to PEP 484: Suggested syntax for Python 2.7 and straddling code. Use the Python 2/3 compatible syntax to provide type hint information in your code. PyCharm uses this information to provide autocompletion or flag certain issues as you code.

Optional Type Hinting Using Run-time Collected Types

PyCharm is now able to generate type annotations based on the information on types it has collected during a debug session. This type information will be inserted in a format compatible with your project interpreter’s Python version.

Python Code Compatibility Inspection Improvements

PyCharm helps ensure your code is compatible with particular Python versions. Whenever your code makes use of the __future__ or six modules, PyCharm now suggests enabling the “Code compatibility inspection” for latest Python 2.7 and Python 3.5 by default.

Docker Compose
Support pro only

With PyCharm 2016.1 we introduce initial support for Docker Compose. Specify the Docker Compose configuration file (docker-compose.yml) and the service representing your project, and PyCharm will take care of the rest for you.

Docker Container
Settings pro only

In addition to Docker Compose support, we've improved Docker support with custom parameters for running Docker containers. Once you've set up a remote Docker interpreter, you may notice this new option in the run configuration (Run | Edit Configurations).

Tox Support

PyCharm now supports Tox, the virtualenv management and testing tool. Simply right-click the tox.ini file in the project view and choose Run “Tox” (or press Ctrl (Cmd) + Shift + F10). See the tests running and results nicely represented in the graphical test runner.

Improved Support
for Django Forms pro only

In PyCharm 2016.1 we implemented advanced support for Django forms. PyCharm now understands the forms' context and shows forms-specific autocompletion and suggestions in Django templates and views. You can also refactor a form or form members with Rename and other refactorings, navigate to form definitions from templates and views, and much more.

Debugger Performance Improvements

PyCharm's debugger receives a number of performance improvements that we hope you'll enjoy. The debugger is reported to be now overall 40% faster without optional Cython modules, and 138% faster with Cython in the benchmarks created.

Stepping Over yield from and await

A small but neat improvement for developers who use Python 3, PyCharm's debugger is now able to step over yield from and await expressions. Put a breakpoint before a yield from or an await expression and click the Step over button (or press F8). The debugger will step to the next line after the expression.

Stepping Filters in Debugger

Additionally to stepping over yield from and await expressions, PyCharm 2016.1 introduces another debugger feature: stepping filters. By using stepping filters for Python code, you can exclude library and custom modules from being stepped into during a debugging session.

Improved Attach to Process

The debugger's 'attach to process' feature gets a small but useful improvement. We've slightly changed its UI and added a “Recent” section for recently attached processes. To attach the PyCharm's debugger to an already-running python process, select Run | Attach to Local Process.

Improved IPython Notebook support

Thanks to the new rendering mechanism for IPython Notebook cells, PyCharm 2016.1 displays cells with Markdown, LaTeX and HTML content far better than before. Additionally, you can run all cells in a Notebook file simply by pressing Shift+F10.

Devpi and Optional PyPI Repositories

Take full control over package repositories and PyPI mirroring solutions with support for optional repositories in PyCharm.

Postfix Code Completion

Postfix code completion helps reduce backward caret jumps as you write code. It lets you transform an already typed expression to another one based on the postfix you've added and the context of the expression.

Additional Folding for Python Code

In addition to the existing code folding functionality in PyCharm's code editor, we've implemented code folding for other code structure elements: multi-line dictionaries, lists and comments, and if-else, for/while and try-except-finally code blocks in case a code block contains more than one statement.

IDE Improvements

Git Rebase and Rename

Two new actions will help you work with Git branches, available via the Branches popup (VCS | Git | Branches): Checkout with Rebase onto and Rename. If you do an Interactive Rebase, PyCharm now automatically stashes and unstashes local changes and assists with resolving conflicts.

Git Worktree Support

Git 2.5 introduced managing multiple worktrees to simplify working with clones of a single repository: instead of making a repository clone you can create a lightweight worktree. Now PyCharm lets you work with those worktrees just like you do with regular repositories.

By-word changes highlighting

Merging and comparing revisions with Git and other VCS just got easier with the added by-word difference highlighting. Now you can also disable inspections in the Diff Viewer to minimize distraction.

Enhanced Database
Tools pro only

PyCharm 2016.1 brings support for table truncation, table and column comments, PostgreSQL 9.5 support and support for сustom types in SQL Server (alias types and table types).

Local Terminal Improvements

Embedded local terminal now supports "Find in text". Press Ctrl+F in the terminal and start searching in the terminal output.Additionally the terminal is now capable of performing Alt+Backspace for deleting symbols to the left of a caret position and Ctrl(Cmd)+Left/Right to move caret to the left or right of the current word.

Show usages

We have improved speed search in the Show usages popup. Now, when you use it, the matches are highlighted for easier navigation (Ctrl(Cmd)+Alt+7).


  • Support for RTL languages (Arabic and Hebrew).
  • Improved support for React, Angular 1.5 and 2
  • Improved JavaScript debugger supporting JS async code
  • Better coding assistance for JavaScript, ECMAScript and TypeScript
  • Unused imports warning and сode folding for ES6 imports
  • Remote run and debug for Node.js apps
  • Css custom properties
  • Inline rename for TypeScript
  • npm support improvements and Webpack support
  • And more

PyCharm 2016.1 Professional Edition incorporates most of the new functionality of the latest WebStorm 2016.1.

Learn more about new WebStorm 2016.1 features
that are also available in PyCharm 2016.1
Professional Edition

Get PyCharm 2016.1 Now
Full-fledged Professional or Free Community