Improved Jupyter Notebook experience, syntax highlighting for many more languages out of the box, initial Python 3.8 support, and more.
One of the most requested features in our Jupyter support has been to run all cells with a single button click. This turned out not to be as easy as it sounds, because we had to reimplement some of Jupyter’s execution logic on the PyCharm side. We’re happy to announce that this feature is now available in PyCharm.
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.
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, we now insert virtual empty lines in your notebook that are not persisted to the file.
The PyCharm debugger helps you keep track of your variables, and shows you their current state as you’re working with your notebook.
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.
Most projects, at some stage in their life, get some bash files checked in to their repo. PyCharm will now highlight bash syntax, provide basic completion, and integrate with Shellcheck to check your bash files.
PyCharm now looks better than ever on Windows: we’ve tweaked the look of the UI to be more modern.
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.
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.
EditorConfig files allow you to embed code style settings directly in your repo. We’ve 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.
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.
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.
Design classes and subclasses with restricted usage of methods, classes, and variables by using the ‘Final’ qualifier to avoid unwanted inheritance or overriding.
f-Strings can now use ‘=’ to show expressions and their values at the same time. Use
to generate a string that will show both your expression and its output.
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. We’ve now added the ability to automatically inline a Python function.
Duplicate code is smelly code, so PyCharm lets you know if there’s something you might want to refactor into a single function.
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.
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.
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.
Did you know that PyCharm Professional Edition bundles all database features from JetBrains DataGrip, our professional database IDE? One of the new features in our database tooling is full-text search across multiple data sources: now you can find your data, no matter where it is hiding.