Full Line Code Completion, Live Preview for Django Templates, Improvements to Data Visualisation Tools

In PyCharm 2023.3, every tool is at your fingertips, ready to boost your productivity in a streamlined workflow.

AI Assistant Is Out of Preview

General Availability

JetBrains AI Assistant is now generally available with a number of new and improved features to increase your productivity in JetBrains IDEs.

With AI Assistant, you get enhanced code generation directly within the editor, context-aware AI Chat that answers project-related queries without copying code, and project-aware AI Actions that provide more comprehensive results. To improve code change clarity, a new diff view has been integrated into LLM code suggestions.

Use AI Assistant in PyCharm as a supplemental feature with a JetBrains AI Service subscription.

Full Line Code Completion

As you type, PyCharm 2023.3 provides multi-token code completion suggestions while also checking for their correctness. Leveraging a deep learning model, Full Line code completion processes suggestions on your machine, ensuring your code remains private and never leaves your system. This also means you can take advantage of this feature even while offline.


Live Preview for Django templates

PyCharm 2023.3 transforms the experience of editing Django templates with a new live preview feature. Your code springs to life in the preview, updated in real time with on-demand reloading.

Use the address bar to modify and test routes directly. For templates with several routes, simply select the desired pattern in the address bar. With the integrated Developer tools console, troubleshooting becomes part of the flow. Get your templates polished and ready with minimal effort.

Django Structure tool window

Welcome to the Django Structure tool window, your strategic command center for Django projects.

It enables quick access, smart navigation, and instant creation for Django components – apps, models, views, and more.

But that’s not all you can do with this new tool window. You can also refactor models, views, and model admin classes and find usages for them – in one click. You can register models in the admin interface just by choosing an option in the context menu.

Django Structure provides a quick way to start creating new apps and making migrations in the built-in manage.py console.
Concentrate on building and enhancing your Django project without the hassle of browsing through the project files manually.

Data Visualisation

Powerful UI for your dataframes

Add interactivity to your work with dataframes! Sorting, pagination, and infinite scroll are available in the new UI for dataframes.

With the new UI for data frames, you can simply hover your mouse over a column, and the column statistics popup will appear automatically.

You can export the data in a variety of formats to work on it further. CSV, TSV, SQL insert statements, Markdown, HTML, and other options are at your disposal.

Instant graphic representation of your dataframes

Get an overview of the data in your dataframe or series in no time! In PyCharm 2023.3, you can just click on your dataframe and select Show Chart, and your IDE will do all the hard work. Choose the most suitable chart type, and export it as a PNG file when you are happy with the result.

Invest your time into data exploration instead of writing additional code.

Python: 3.12 and more

PEP 669: Low-impact monitoring

PyCharm’s debugger now uses low-impact monitoring, which was added to Python 3.12. This improves overall debugger performance. You can see significant improvements in functionality, like the tracing of raised exceptions and dropping into the debugger on a failed test. These steps are now executed significantly faster than in the old sys.settrace()-based approach.

PEP 701: Syntactic formalization of f-strings

Python 3.12 allows you to use quotes, line breaks, escape sequences, and comments inside f-strings.

PyCharm 2023.3 adjusts its inspections accordingly. Additionally, existing intention actions for string literals, such as converting between various quote types, now work in accordance with the new syntax.

Use the new f-strings functionality to its fullest and get all the benefits of PyCharm’s code insight.

PEP 695: Type Parameter Syntax

Python 3.12 introduces a new convenient syntax for generic classes, functions, and type aliases.

This syntax helps you to write less code when working with types in Python.

PyCharm recognizes the new syntax and understands references to type parameters in classes, functions, and new-style type alias declarations, taking them into account in type inference and type checking.

You can use the new syntax to work with generic classes and type aliases and let your IDE worry about details.

PEP 646: Variadic Generics

PEP 646 introduced a new kind of type variable – TypeVarTuple for defining custom variadic generic types, i.e. generic types that can have an arbitrary number of type parameters, similar to builtin Tuple and Callable. In the future, as this feature gets adopted by the community, it will allow more precise type hinting for multi-dimensional containers, such as Numpy's ndarrays and Tensors.

PyCharm's type checker supports all its standard checks for variadic generics. Additionally, you will get a warning if you use the TypeVar syntax with older versions of Python. PyCharm will suggest that you use typing_extensions.Unpack instead.

PEP 647: User-Defined Type Guards

PEP 647 introduced a way to treat custom functions as “type guards”, which, when used in a conditional statement, leads to the narrowing of their argument types. Think of the built-in functions isinstance and issubclass, which PyCharm already recognizes. Now, the user-defined function returning typing.TypeGuard has the same effect on type inference in PyCharm.

PEP 675: LiteralString

PyCharm 2023.3 is now aware of the LiteralString type in your code. If you are using it, PyCharm will make sure that str and LiteralString types are not mixed.

HTTP Client

OAuth 2.0 Support

In PyCharm 2023.3, the HTTP Client supports authentication with a new Client Credentials grant type, established with OAuth 2.0 or a Password grant type.

You can use the new syntax {$auth.token("my-keycloak1")} to reference authentication data in your requests and navigate to the JSON file containing the authentication details.

No more manual token retrieval. Enjoy the straightforward request execution process.


All-in-one diff viewer

See all of the modified files from a changeset in a single, scrollable frame. PyCharm 2023.3 has a new diff viewer to review all changes at once. It is compatible with GitLab, GitHub, and JetBrains Space reviews.


Option to configure managed Jupyter servers

Automated testing: Introducing Cypress and Playwright support

Are you leveraging automated testing for your web applications? PyCharm 2023.3 is here to elevate your testing strategy. Built on the IDE’s extensive pytest support, it now includes support for Cypress and Playwright, two leading tools in modern web app testing.

PyCharm 2023.3 automatically detects your Cypress and Playwright tests and lets you run and debug them with a single click. The test tree view helps you understand and navigate your test results.

Improvements for TypeScript

PyCharm 2023.3 solves some of the inconsistencies encountered when adding import type statements. We’ve added the option to configure the usage of the TypeScript import type statement or type specifier when importing a type. We’ve also improved the behavior for the exports field of package.json for TypeScript files.