What’s New in PyCharm 2021.3

Poetry Support, New FastAPI Project Type, Remote Development beta, and a New Jupyter Notebook Experience

We’ve been listening to you and working hard to deliver features in PyCharm that will make your coding smoother and more productive. This release cycle introduces Poetry support, the new FastAPI project type, the Beta version of our Remote Development support, and a redesigned Jupyter Notebook experience.


Poetry Support

Poetry is becoming more and more popular among Python developers, and there were a lot of issues reported to our tracker to add support for it. The good news for Poetry users (and for those willing to try it) is that PyCharm now supports Poetry and provides code completion for your pyproject.toml files out of the box! Kudos to Koudai Aono, who developed the original plugin that has been merged into the PyCharm source code.

Further improvements:

Web Development Pro

FastAPI Support

FastAPI, a popular high-performance Python web framework for building APIs, is now supported in PyCharm. Select the FastAPI project type and let PyCharm install all its dependencies and create the run/debug configurations for you. Alternatively, open an existing FastAPI project with PyCharm and create a FastAPI run configuration yourself. PyCharm will detect your application and run Uvicorn for you.

It is now easier to test your HTTP endpoints using the “test.http” file. Send GET, POST, and other request types to your application endpoints right from the editor.

New Endpoints Tool Window for FastAPI and Flask

If you develop web applications using FastAPI and Flask, you likely work with endpoints. As you may already know, this workflow can be cumbersome in larger projects, so PyCharm 2021.3 introduces the new Endpoints tool window for FastAPI and Flask project types.

As soon as you start working on a new or existing project, PyCharm will scan its routes and list them in the Endpoints tool window, where you have code completion, navigation, and refactoring capabilities for your URLs. This tool window also provides you with a better overview of your endpoints and quick access to the documentation.

Further improvements:

  • PyCharm no longer requires you to start your HTML tags using ‘<’ to get code completion suggestions.
  • You can now update npm packages in your package.json file to the latest version right from the editor using the new Update ‘package name’ to the latest version inspection.
  • Download remote ES6 modules by typing in the URL and using a quick-fix on the import path in the ES6 files.

New Jupyter Notebook Experience Pro

We’ve been working hard to improve PyCharm for software engineers working in the data science sphere and have made the Jupyter notebooks experience in PyCharm Pro better!

New Notebook UI

Notebook support is now smoother. PyCharm now provides the classic Jupyter notebook UI out of the box, but with all of the powerful tools that you would expect from an IDE, including auto import, code completion, and refactoring capabilities.

Popular Shortcuts

Support for all of the standard Jupyter shortcuts has been added, including running your cells with shift+enter, switching between command and editor modes with a single keystroke, navigating over cells with arrow keys, and more.

Interactive Outputs

PyCharm Pro now has full support for both static and JavaScript-based outputs used by popular scientific libraries such as Plotly, Bokeh, Altair, ipywidgets, and others, as well as rich support for DataFrames. Explore DataFrames in situ or open them in a dedicated tab.

Debugging Capabilities

Debug inside Jupyter notebooks and make your notebook debugging experience more enjoyable. Stop at breakpoints, step through the code, browse and manage the state of variables, and much more.

Remote development Beta Pro

PyCharm Pro now supports a beta version of the remote development workflow via JetBrains Gateway. PyCharm users can connect to remote machines from anywhere in the world, run PyCharm’s backend, and take advantage of remote computing power while feeling that everything is running locally.

To try it out, just click Remote Development on the Welcome Screen, select the SSH option and follow the wizard to provide credentials, establish the connection, and download the IDE on the server. This feature is in Beta and we’d appreciate your feedback on it.

For more details refer to our documentation.

User experience

Download Shared Indexes for Popular Python Packages Pro

Users of popular packages on PyPI such as Numpy, Pandas, Matplotlib, Sqlalchemy, Scikit-image, Plotly, Scipy, and others can now download prebuilt indexes to speed up the IDE indexing time. These shared indexes are not included in the PyCharm installation, so the IDE will ask for permission before downloading any.

Split the Run Tool Window

You can now split the Run tool window into tabs so you can have multiple configurations running simultaneously while still being able to access their results. Just drag and drop the tabs to the highlighted area inside the Run tool window to split it.

Feature trainer: New onboarding tour and a series of Git lessons

If you are new to PyCharm or just want to get a refresher on how to use it, the IDE feature trainer now comes with an onboarding tour and a lesson about the Git features in PyCharm. To try it out, click ‘Learn PyCharm’ on the Welcome screen or click Help > Learn IDE in the main menu in the IDE.

Evaluate expressions from the debugger

In this release, the discoverability of the Evaluate feature has been improved. Instead of using watches, you can now quickly access the Evaluate field right in the Debug tool window.

Further improvements:

  • You can create and edit Run Configurations during indexing.
  • You have more information about failures during the installation of Python packages so there is more context to fix any undesired issues.
  • You can stop PyCharm automatically numbering and indenting the next line in markdown lists. Go to Preferences > Languages & Frameworks > Markdown, and disable Automatic assistance in the editor.
  • You can now add multiple cells to an execution queue in the Python Console. PyCharm no longer blocks you until the previous execution is completed.
  • You can now specify an HTTP or SOCKS proxy server for your SSH configuration in Preferences/Settings | Tools | SSH Configurations.

Version Control

Reorganized Version Control Settings

We reorganized the VCS settings and made them more discoverable. In Preferences / Settings | Version Control you will now find a list of all the available settings, serving as a starting point for configuring your VCS.

The settings inside the sections are organized by the most important processes: Commit, Push, and Update. There is a separate node for Directory mappings, and the background operations are on by default.

Checkout and Rebase onto Current for Remote Branches

When you need to check out the selected branch and rebase it on top of a branch that is currently checked out, you can use the Checkout and Rebase onto Current action, which was previously available for local branches only. In PyCharm 2021.3, you can use it for remote branches as well.

Push all up to here Action

A new Push all up to here action is available that allows you to push only the commits you are confident about and leave the rest for later. It allows you to push commits up to the one you have selected in the Log tab of the Git tool window. To use it, pick the commit you want to stop at, right-click on it to call the context menu, and select the new Push All up to Here action.

Databases Pro

New Database Diff Window

The new database diff window is available from the context menu. It has a better UI and clearly shows what result you’ll get after you perform the synchronization.

The legend shows what the colors mean for your potential result:

  • Green and italic: object will be created.
  • Grey: object will be deleted.
  • Blue: object will be changed.

The Script preview tab shows the result script, which can be either opened in a new console or run from this dialog. The script applies the changes to make the database on the right (target) a copy of the database on the left (source).

In addition to the Script preview tab, there are two more tabs on the bottom pane of the database diff window: Object Properties Diff and DDL Diff. They display the differences between the particular versions of the object in the original and target databases.

Data Editor Aggregates

The ability to display an Aggregate view for a range of cells is available. This is a long-awaited feature that will help you manage your data and spare you from having to write additional queries!

This makes the data editor more powerful and easier to use, bringing it a step closer to Excel and Google Spreadsheets. To use this feature you will first need to select the cell range you want to see the view for, then right-click and select Show Aggregate View from the menu.

Further improvements:

  • When you open or import a CSV file, PyCharm automatically detects that the first row is the header and contains the names of the columns.

End of Support

End of support for Mako, Buildout, and Web2Py

From PyCharm 2021.3 onwards, there will no longer be support for Mako, Buildout, or Web2Py.