PyCharm 2023.3.3

Visual Diff and Widget Rendering for Jupyter Notebook, AI-Generation of Unit Tests, and Async Viewer for the Debugger

Visual diff for Jupyter Notebook

Are you working in the same notebook as a team? Now, you can resolve conflicts and grasp the latest changes easily. There is no need to dig into JSONs anymore – PyCharm now provides a diff view for Jupyter notebooks that renders inputs as if you are looking through the actual notebook. Try it yourself to save time and effort when dealing with changes.

AI Assistant: Generate unit tests

Speed up your Python development with automated unit test generation via JetBrains AI Assistant. Define a class or a method you would like to get unit tests for, and AI Assistant will generate them for you, taking into account your default test runner. Review them, adjust them, and once accepted, the file with tests will be created in a test folder inside the current project. Unit test generation also works for JavaScript, TypeScript, and React code.

Jupyter Notebook: Widget rendering

If you work with visualization libraries in your Jupyter notebooks, now you can use them to their fullest in PyCharm. PyCharm will now display interactive graphics for libraries such as Matplotlib, Bokeh, Plotly, TensorBoard, and many more. We are working on further improvements for widgets and will be delivering them in upcoming releases.

Async viewer for debugger

You can now easily get information about the program state and track a coroutine’s evaluation while debugging in PyCharm. The IDE now accepts usage of the await keyword outside of functions directly in the Debug Console. You can now use coroutines and the await keyword in the Evaluate Expression dialog, in the list of Watches, and while setting up Breakpoint evaluate and log and Breakpoint condition properties.

Fixes for the DataFrame viewer

In PyCharm 2023.3, we’ve introduced the ability to view DataFrames and series in a separate editor tab. Following user feedback, we've improved this new view, including new color coding for data and better performance with large datasets.