What’s New in PyCharm 2017.3

Performance, Usability, and Data Science

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

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

Performance

Indexing Improvements

Indexing Improvements

For PyCharm’s code intelligence to work effectively, we need to maintain an index of your code. And although this has always meant we had great performance for lookups, unfortunately the generation of this index sometimes kept users waiting. In this release we’ve been able to make improvements to reduce the time you have to wait for the indexing process to complete. In addition to these improvements for Python, indexing JavaScript code is also quicker in PyCharm Professional Edition. For details, read this blog post where the WebStorm team presents the improvements.

Remote Interpreter Setup Speed

Remote Interpreter Setup Speed pro only

When setting up an SSH interpreter, there are a couple of things PyCharm needs to transfer: first are some tools to run and debug the code remotely. These tools then generate skeletons which, with the remote standard library, need to be transferred back to the local machine. We have made several large improvements to the way we do this, and it is significantly faster now. Please keep in mind though, that the performance is dependent on certain factors, including your connection speed, and the number of packages you have configured on the remote interpreter.

Precompiled Debugger Speedups on macOS

Precompiled Debugger Speedups on macOS

PyCharm’s debugger is written mostly in Python and so we’ve been able to alleviate some of the performance bottlenecks by using Cython to compile our code. Windows users have been getting a precompiled version. Our macOS users now also get a speedup of up to 27x by default. On Linux, you should still click ‘Install’ when prompted about the debugger speedups.

See Your Variables Faster While Debugging

See Your Variables Faster While Debugging

If you store large amounts of data in your variables, e.g. large DataFrames, you might have had to wait a while during debugging as the values were loaded by PyCharm. In 2017.3 these values are loaded asynchronously, and you won’t have to wait for the huge DataFrame to load before you see your other variables.

Data Science

Data Science Mode

Scientific Mode pro only

Unless you’re doing a replication study, data analysis is an exploratory and interactive process. To make this easier, we’ve created a data science mode which shows you your data while you are working on it. As visualizing your data is a key step in finding new links, we’ve integrated a matplotlib viewer as well.

Web Development

REST Client

REST Client pro only

When developing an API you often have to send it a complex request to test your functionality. That’s why we’ve built an all-new REST client for PyCharm 2017.3. Try it yourself: create a scratch file (Ctrl+Alt+Shift+Insert, Cmd+Shift+N on macOS), and choose ‘HTTP Request’.

Django 2.0

Django 2.0 pro only

PyCharm 2017.3 is ready for the newest version of Python’s most popular web framework.

Better JavaScript Code Completion

Better JavaScript Code Completion pro only

PyCharm Professional Edition now uses the TypeScript definition files for code completion of standard JavaScript objects and methods. This means that you’ll have more accurate code completion, and you’ll be able to see more of the standard web APIs. You’ll also be able to see MDN documentation in the quick documentation window (Ctrl+Q, or F1 on macOS)

Python

New Interpreter Settings Screen

New Interpreter Settings Screen

One of the few things in Python that confuse developers are virtualenvs. We’ve been working on making interpreter configuration easier, and you can see the first results in PyCharm 2017.3.

SSH Config

SSH Config pro only

If you use jump hosts, or another complex SSH setup, you’ll be happy to learn that PyCharm 2017.3 will use the settings from your regular SSH config file.

Run Python Modules

Run Python Modules

Several Python frameworks should be run using a module, you can now use PyCharm to run this code exactly like you would from the command line.

Code Highlighting: Function Calls & Type Hints

Code Highlighting: Function Calls & Type Hints

An oft-requested feature is the ability to give function calls a different color; this is now available in PyCharm 2017.3. In addition, you can also change the color of type hints in your code.

Set Next Statement

Set Next Statement

Have you ever debugged code that takes a while to start up, and stepped just a couple lines too far? In PyCharm 2017.3 you can tell the Python interpreter where to go next, whether forwards or backwards. Just right-click on the code and choose ‘Jump to Cursor’

VCS

VCS Performance Improvements

Performance Improvements

For those of you who work on large projects, you may have noticed that sometimes when you switch branches, it takes a little bit of time for the project to refresh. We’ve made optimizations to make this a lot faster.

Workspace switching for branches

Workspace switching for branches

A lot of developers work with feature branches. If you work on different tasks in different branches, you’ll appreciate PyCharm remembering the files you were working on in all your branches, and switching to them automatically.

DB Tools

Group sources

Group sources pro only

Ever worked on a large data science project with many databases? Or had several environments for your web application? You’ll appreciate the ability to group data sources.

Other Features

  • Show Expression Type. Are you building a complex chained statement, and losing track of the returned type at some point? Use ‘Expression Type’ (Ctrl+Shift+P) to see the type of any part of your chained statement.
  • PostgreSQL 10 support. PyCharm 2017.3 Professional Edition fully supports the new PostgreSQL 10 grammar. We’ve also added support for role management and Foreign Data Wrappers.
  • Snap Packages. PyCharm can now be installed with a single command: `snap install [pycharm-community|pycharm-professional] --classic`, and you’ll be staying up-to-date automatically. Use the --edge option for EAP versions, or --candidate for RCs. Ubuntu 16.04 Xenial onward all support snap out of the box.
Learn about PyCharm 2017.2

Python

Editor improvements

Editor Improvements

We’ve made a couple of small improvements to make your development experience smoother. Now if you’re writing a call to a function, but you realize you need an additional parameter, you can use the change signature quickfix. If you’re using str.format, PyCharm 2017.2 will check to make sure that you’re providing the right input. Finally, we’ve added autocompletion for type hints.

Data Science

Pandas series

Pandas series in data view

The PyCharm data view keeps getting better. In 2017.2 we added support for Pandas series in addition to the already-supported Numpy arrays and Pandas DataFrames.

Remote Development

SSH Agent

SSH Agent pro only

Do you not like typing your keys’ passphrases over and over again? Maybe you’re using ssh-agent or Pageant (PuTTY’s implementation of ssh-agent) to manage your keys. Good news: PyCharm now supports this, so no more need to separately enter your passphrase in PyCharm.

Docker compose

Docker Compose on Windows pro only

By popular demand, we’ve expanded our support of Docker Compose to Windows. Whether you’re using native Docker for Windows, or Docker Machine, you can now run your code from PyCharm on Windows.

Database Tools

Inline SQL

Run Inline SQL on Multiple Server pro only

You can now select ‘Attach Console’ on any SQL fragment, whether it’s in your Python code or in a separate file. After letting PyCharm know on which server you’d like to execute the code, you can instantly see what is returned by right-clicking and choosing ‘Execute’ (or by pressing Ctrl+Enter)

Multple PosgreSQL databases

Multiple PostgreSQL Databases pro only

If you’re using a PostgreSQL server with multiple databases configured, you now no longer need to configure each database as a separate connection in PyCharm’s database tools.

Amazon Redshift — Azure Databases pro only

PyCharm now comes with support for Amazon Redshift and Microsoft Azure databases. Connect to them just like you’d connect to any other database using the database tools. To learn more about this feature, and further improvements to the database tools in PyCharm, check out what’s new in DataGrip. PyCharm Professional Edition comes with most of DataGrip’s features.

Version Control

Reword commit

Reverting and Rewording Commits

Have you ever committed something, and noticed a typo right after? We all have, and PyCharm now makes fixing it easier. Just right click your commit, and choose reword. Made a bigger mistake? Revert will create a new commit that undoes everything the selected commit introduced.

Commit message style

Commit Message Style

Do you like to keep your commit messages formatted nicely? PyCharm can now help you out by ensuring there’s a blank line between your subject and the commit message body, and keep track of the line length for you.

Web Development

Auto imports in JS

Auto Imports in JavaScript pro only

Press Alt+Enter to import, a feature that has been available for a long time for Python, is now also available for JavaScript.

React and Angular

React and Angular Improvements pro only

In React we now support completion and auto-imports for stateless components. For Angular, completion and navigation are now supported for Angular Material attributes.

Webpack modules

Webpack Module Resolution pro only

Code completion and navigation for Webpack projects just got better: in PyCharm 2017.1 we’re resolving all modules you’ve defined in your webpack.config.js to ensure we can provide completion throughout your project. To learn more about this feature, and further improvements to the JavaScript tools in PyCharm, check out what’s new in WebStorm. PyCharm Professional Edition comes with most of WebStorm’s features.

Platform Improvements

Find in path

Find in Path

We’re working on improving the basics: find in path now gets a gutter just like the regular editor. See at a glance which files have been changed, and navigate to related code straight from the results.

HiDPI

HiDPI

Do you have a 4K screen, and another lower resolution screen? We now support per monitor scaling on Windows.

If you’re interested in PyCharm Professional, you should also check out what’s new in WebStorm 2017.2 and in DataGrip 2017.2. The Professional Edition of PyCharm comes with the JavaScript features from WebStorm, and the database features from DataGrip.

Get PyCharm 2017.2 Now
Full-fledged Professional or Free Community
Learn about PyCharm 2017.1

Python

Faster Debugger

Python 3.6 debugging is now up to 40x faster! We have been able to use some new features in Python 3.6 to radically improve the performance of the PyCharm debugger. Is your project not on 3.6 yet? Python 3.5 (and older) debugging got up to two times faster as well. If you’d like to know more: read the interview with our developer.

New and Improved Test Runners

PyCharm has now adopted the TeamCity API for test runners. This means that test configurations will be consistent between the IDE and CI builds. This allows us to use the native test runners, and will make integration of new test runners in the future easier. Read about the technical details here.

Support for the six Library

If you’d like to upgrade to Python 3, but still need to support Python 2 for a while, you can use the six library. The six library enables you to write a single codebase that can run on both Python 2 and Python 3 interpreters. PyCharm now has accurate code completion and code insight for six.

Web Development

Django, Flask & Pyramid pro only

PyCharm has been updated to support all current versions: Django 1.10, Flask 0.12, and Pyramid 1.8.2.

Vue.js pro only

Vue.js is a rapidly growing new JavaScript framework. Get the Vue.js plugin from the JetBrains repository (Settings | Plugin | Install JetBrains Plugin) to try it out in PyCharm 2017.1! The new version of PyCharm adds Vue autocomplete and code assistance, which also works in multiple languages within .vue files.

JavaScript Unit Test Status Gutter Icons pro only

Unit tests are a great tool to check against regressions, but sometimes you want to change something which breaks your tests. Now you can see right in the editor which tests need an update, and if you’re using Mocha or Jest you can debug them right from there.

Support for Jest pro only

If you’re using React, you should try Jest – Facebook’s JavaScript unit testing framework. In PyCharm 2017.1 we support running and debugging Jest tests. And of course if you spot a failing test, you can just double-click it to go to the test’s source.

Database Tools

Editor Colors pro only

Bad things happen when you think you’re working on staging, but you accidentally opened an SQL prompt on your production server instead. To prevent this, now you can set your editors to different backgrounds.

Version Control

Improved Log Viewer

Our log viewer has a couple of small useful improvements: you can now search commits using regex, and toggle case sensitivity.

File History

We’ve improved our file history panel. For example, you can now easily toggle between seeing only the commits on the branch you’re currently on, or the commits on all branches.

Remote Development

SSH Multi-Factor Authentication pro only

If you’re security-conscious, you may have hardened your server’s SSH access with 2-factor authentication. PyCharm now supports connecting to SSH servers that are protected with Google Authenticator.

Native Docker for Mac pro only

PyCharm 2017.1 supports Docker for Mac using native unix sockets. No more need to use SOCAT to connect your IDE to Docker.

Data Science

Data View for Pandas DataFrames and Numpy Arrays

When doing data science, seeing the data you’re working on makes the work a lot easier. That’s why we’ve taken our DataFrame and Numpy Array viewer, and evolved them into a dedicated Data View pane. Complete with tabs to easily watch multiple datasets.

Remote Jupyter Notebooks pro only

Jupyter Notebooks are a great way to do research. If you do research in a team, you’ll want to share your notebooks with your team members. That’s why PyCharm 2017.1 supports connecting to Jupyter Notebooks on a shared server.

Platform Improvements

Zero-Latency Typing

Lower latency typing means for a better typing experience. Pavel Fatin, one of our developers, worked hard to get the latency down as low as it can go.

Semantic Highlighting

When enabled, semantic highlighting will make it easy to see where a variable is used at a glance. Check out our blog for more information.

Ctrl+Click on Links in Terminal

A small improvement to make your life easier: hold Ctrl and click any link in the terminal to open it in your browser.

Find in Path Dialog

We’ve reworked our Find in Path dialog: it’s cleaner, easier to use, and sleeker-looking! Try it yourself: right-click a folder in your project and select ‘Find in Path.’

If you’re interested in PyCharm Professional, you should also check out what’s new in WebStorm 2017.1 and in DataGrip 2017.1. The Professional Edition of PyCharm comes with the JavaScript features from WebStorm, and the database features from DataGrip.

Get PyCharm 2017.1 Now
Full-fledged Professional or Free Community
Learn about PyCharm 2017.1