PyCharm 2019.2

Improves Jupyter Notebook, IDE and support for Python 3.8.
July 25, 2019
New Version

Features

Jupyter Notebook

  • Run All, Run All Above, Run All Below - One of the most requested features in the Jupyter support has been to run all cells with a single button click. This feature is now available in PyCharm.
  • Improved server configuration - With multiple projects open, PyCharm would implicitly use the first project you’ve opened to start a managed Jupyter server. This is now configurable. You can also now choose a specific port for the Jupyter server to listen on.
  • Spacing with virtual lines - When you view a Jupyter Notebook in the browser, the layout naturally spaces out the cells a little bit. The PyCharm approach of displaying the code as a Python file therefore looks a little more dense. To make the code look better, it now inserts virtual empty lines in your notebook that are not persisted to the file.
  • Inline display of variable values - The PyCharm debugger helps you keep track of your variables, and shows you their current state as you’re working with your notebook.
  • Further improvements
    • Another oft-requested feature was the ability to restart the kernel, and this is now possible.
    • You can now directly publish notebooks from PyCharm to JetBrains Datalore

IDE Improvements

  • Code highlighting for many popular languages - Do you work on projects where code in a different language sneaks into your project? PyCharm will now highlight the syntax of Windows .bat files, C#, C++, Groovy, Lua, Makefiles, and more.
  • Basic bash support - Most projects, at some stage in their life, get some bash files checked in to their repo. Some of you may already be familiar with the BashSupport plugin, which offers advanced functionality. For those who can’t or don’t want to install plugins, now shipping some basic bash support out of the box.
  • Improved look on Windows - PyCharm now looks better than ever on Windows: tweaked the look of the UI to be more modern.
  • cURL support for the REST client - cURL format is now supported out of the box. Just copy your cURL formatted request and paste it directly to your HTTP Request file to convert it into the proper format. To use this new functionality, just create a new .http file or a HTTP-request scratch file, and then paste a cURL string. It will be automatically converted to a full request.
  • Preserve cookies between requests - Imagine you made an authentication request on a service to later call endpoints that will ask for permission. In the past this authentication response was lost, forcing you to ask for it every time it was needed. Now this is not an issue! All the cookies will be kept for your future usage and will be transferred in the next requests you perform.
  • Improved EditorConfig support - EditorConfig files allow you to embed code style settings directly in your repo. Now improved this functionality to be more flexible; for example, it’s now possible to use multiple EditorConfig files to set different settings for different parts of your project.

Python

  • Python 3.8: Positional-only parameters - Designate positional-only parameters to your function definitions to restrict the usage of your functions. This new syntax will allow you to define strictly those arguments that are purely intended to be called according to a specific sequence.
  • Python 3.8: Assignment Expressions - Assign a value within an expression to enhance your code compactness and readability. You can now, for example, use one line of code to create conditional expressions and at the same time assign variable values.
  • Final annotation for variables - Design classes and subclasses with restricted usage of methods, classes, and variables by using the ‘Final’ qualifier to avoid unwanted inheritance or overriding.
  • Use equals sign in f-strings - f-Strings can now use ‘=’ to show expressions and their values at the same time. Use f'{expr=}' to generate a string that will show both your expression and its output.
  • Inline Python functions - One of the key features in PyCharm is its ability to automatically refactor your code. This way you know for sure that after you’ve completed the operation, the behavior of your code didn’t change. Now added the ability to automatically inline a Python function. Learn more about Python refactoring.
  • Find duplicate code quickly - Duplicate code is smelly code, so PyCharm lets you know if there’s something you might want to refactor into a single function.

JavaScript

  • Improved variable renaming - Refactoring code is now more customizable, with an option to rename or not rename dynamic references. If selected, you can decide which occurrences you want to actually rename and which ones to leave as they are, by using a preview interface.
  • Updated Smart step into while debugging - The ‘Smart step into’ (Shift-F7) feature received a boost. Targets are now more visible, and you can easily switch between them with the arrow keys or Tab, and then press Enter to step into the selected target.
  • Improved visibility of libraries in the debugger - The filter icon on the debugger call stack allows you to hide all the calls from third-party code. Now everything that you mark as a library can be hidden with this new feature.

Databases

  • Full-Text Search - Did you know that PyCharm Professional Edition bundles all database features from JetBrains DataGrip, the professional database IDE? One of the new features in the database tooling is full-text search across multiple data sources: now you can find your data, no matter where it is hiding.
Jupyter Notebook

PyCharm

The Python IDE for professional developers.

PyCharm is also available in:

Got a Question?

Live Chat with our JetBrains licensing specialists now.