In this new EAP build, we’ve introduced the ability to execute asynchronous code in the Debug Console and Evaluate dialog, improved the parsing and rendering of some sections for class docstrings, enhanced UX for working with the HTTP client and Docker, and added support for new CSS features.
This blog post covers the most notable updates in the third EAP build. To catch up on the previously announced features expected in v2022.3, check out our prior 2022.3 EAP blog posts.
Important: PyCharm EAP builds are not fully tested and might be unstable!
Docstrings
PyCharm 2022.3 EAP 3 offers updated support for docstrings, including improvements to parsing for attributes and parameters, as well as to the way docstrings are rendered.
Better parsing for attributes and parameters from class docstrings
PyCharm now renders the Attributes section of class docstrings. This helps provide information about inherited attributes.
PyCharm is now able to retrieve the attribute description that is contained in a class docstring and render it in the Quick Documentation popup for the attribute.
The IDE recognizes descriptions for init parameters from class docstrings and renders them in the Quick Documentation popup for the parameters.
To view the Quick Documentation popup, just hover over the symbol in the editor or place the caret at the symbol and press F1 on macOS or Ctrl+P on Windows and Linux.
Proper rendering for sections without a blank line after the docstring description
PyCharm 2022.3 will improve the way the IDE parses and renders docstrings. PyCharm will provide a neatly organized Quick Documentation popup, as the description will be separate from further sections even if you omit the blank line between the description and parameter tags or section names in the docstring.
Debugger
Ability to execute asynchronous code in the Debug Console
PyCharm 2022.3 will recognize and execute asynchronous code in the Debug Console, in the Evaluate dialog, in breakpoints in the Condition property, and for evaluating results with the Evaluate and log property.
When evaluating asynchronous expressions, you will be able to use the await keyword outside the function both in the Debug Console and in the Evaluate dialog.
As part of our effort to improve the experience of working with asynchronous code in the debugger, we fixed an issue with processing multiple event loops.
Note that this functionality is available for Python versions 3.8 and above.
Code style improvements for the HTTP Client
The HTTP Client now provides better formatting options for requests with long URLs. You can also use the Put query parameters on separate lines intention action to break the query into smaller fragments on different lines.
To control your preferences regarding HTTP request formatting, we’ve implemented a new option in Settings / Preferences | Editor | Code Style | HTTP Request | Wrapping and Braces.
HTTP Client: Pre-request scripts and new APIs for JavaScript handlers
The HTTP Client now supports script blocks executed before requests. You can generate some data before request execution and put it in the final request using variables.
PyCharm 2022.3 also provides the сrypto API, making your code capable of computing the md5 or sha1 hash values for an HTTP request.
For simple cases, the IDE now features a new set of random variables.
Support for new CSS features
This release introduces a number of improvements to PyCharm’s CSS support.
First, PyCharm now understands the @supports at-rule, which associates a block of statements with an @supports condition.
PyCharm 2022.3 also includes support for viewport units. The viewport-percentage lengths are relative to the size of the initial containing block. This block is itself based on the size of either the viewport (for continuous media) or the page area (for paged media), and is scaled accordingly.
Docker
New intention action: Pull image
There is now an easy way to pull a required image without running it from Dockerfile, docker-compose.yml, or even from tests using the Testcontainers. Simply call up the context actions (Alt-Enter / ⌥⏎) on the highlighted image name and then select Pull Docker image.
Support for the .dockerignore file type
We’ve introduced full support for .dockerignore files, including code highlighting and completion. These files are now taken into account when you build an image from the IDE.
Support for the heredoc format in Dockerfile files
Here documents allow you to redirect subsequent Dockerfile lines to the input of RUN or COPY commands. PyCharm now supports this syntax, so you can use it to generate config files or multiline scripts right in your Dockerfiles.
Docker connections from Docker Contexts
You can now set up additional Docker connections using Docker Contexts if you already have such settings in your Docker config. You can do so by calling the Add Service context menu in the Services view and selecting Docker Connections From Docker Contexts.
Further improvements
The Parameter Info popup is now shorter, making it easier to work with. [PY-46053]Reformatting a multiline return statement no longer leads to the over-indentation of the multiline part. [PY-24792]Live templates: The Python super template now has a version in the Python 3 style, and PyCharm suggests it automatically if Python 3 is detected as a project interpreter. [PY-26060]Profiler: The layout of the nodes in the Call Graph now displays properly. [PY-51458]
These are the key updates! For the full list of changes, refer to the release notes.
We encourage you to try out the changes introduced in this build and share your feedback with us. If you have any questions or comments, use the comments section below or reach out to us on Twitter. If you find a bug while coding, please report it to our issue tracker.