Что нового в PyCharm 2023.2

PyCharm 2023.2: новые шаблоны Live Templates для Django, интеграция с инструментом форматирования Black, всплывающее окно Run Anything и помощник на основе искусственного интеллекта AI Assistant

Главное

Обновленная поддержка Django
Pro

Новые шаблоны Live Templates для форм и моделей Django

Новые шаблоны Live Templates для форм и моделей Django

В PyCharm 2023.2 расширен список шаблонов Live Templates для Django. Новые шаблоны позволяют вставлять распространенные конструкции кода для представлений, форм и моделей Django (в том числе Django Admin), просто набрав короткую последовательность символов. Шаблоны можно посмотреть и изменить в меню Settings | Editor | Live Templates | Django. Подробнее об изменении существующих шаблонов или создании новых — на странице справки PyCharm.

Кроме того, мы расширили список шаблонов Live Templates для быстрого создания тегов Django в файлах шаблонов. Обновленный список можно посмотреть в меню Settings | Editor | Live Templates | Django Templates.

Окно Endpoints для Django

Окно Endpoints для Django

В окне Endpoints появилась начальная поддержка фреймворка Django REST. Вы можете искать объявления конечных точек, переходить к нужным объявлениям и переименовывать сегменты URL-пути. Работая с вкладкой HTTP Client, можно пользоваться автодополнением кода при изменении конечных точек. Попробуйте эту функцию и расскажите нам, что вы хотели бы увидеть в следующих релизах PyCharm.

Интеграция с инструментом форматирования Black

Интеграция с инструментом форматирования Black

В PyCharm 2023.2 появилась интеграция с инструментом форматирования Black. Если у вас уже установлен Black, PyCharm предложит настроить его для вашего проекта.

В PyCharm инструмент Black работает с файлами .py и .pyi. Форматировать можно как файлы целиком, так и отдельные фрагменты. Black можно запустить вместо встроенного инструмента форматирования, если вы хотите переформатировать код вручную (нажав Ctrl+Alt+L или выбрав в главном меню Code | Reformat Code) или если вы хотите сохранить изменения в файлах. Подробнее о возможностях настройки Black читайте в документации.

Run Anything

Run Anything

В PyCharm 2023.2 появился очень удобный инструмент Run Anything, который действительно позволяет запускать все, что угодно, независимо от того, какой файл открыт в настоящий момент. С его помощью можно быстро создать и запустить конфигурации запуска/отладки, запустить консоль Python, управлять пакетами Python, а также запускать приложения, скрипты, команды и задания. Чтобы открыть всплывающее окно Run Anything, дважды нажмите Ctrl.

AI Assistant

AI Assistant Ограниченный доступ
Pro

В этой версии мы представляем важное дополнение к PyCharm Professional — AI Assistant. Текущий набор функций AI Assistant включает в себя чат-бота на основе искусственного интеллекта, автоматическое создание документирующих комментариев, предложение имен, генерацию сообщений коммитов и многое другое.

AI Assistant работает на базе сервиса JetBrains AI, который сейчас подключается к OpenAI, а в будущем будет интегрирован с другими поставщиками языковых моделей. Чтобы получить доступ к возможностям искусственного интеллекта, нужно вручную установить плагин JetBrains AI и войти в сервис JetBrains AI, используя свой JetBrains-аккаунт. На начальном этапе доступ к сервису может быть ограничен. Подробнее об AI Assistant и о том, как получить к нему доступ, читайте в нашем блоге.

Поддержка QML
Pro

Поддержка синтаксиса QML

Поддержка синтаксиса QML

Если в вашем коде используется Qt Modeling Language (QML), PyCharm теперь предоставляет поддержку его синтаксиса. Она включает в себя:

  • подсветку и автодополнение кода;
  • поиск использований;
  • представление Structure для быстрой навигации по QML-файлам;
  • всплывающее окно Quick Documentation для получения информации о символах.
Форматирование QML и другие настройки

Форматирование QML и другие настройки

По умолчанию PyCharm использует встроенные настройки стиля для кода QML. Пути Qt и QML, qmlformat как инструмент форматирования и языковой сервер QML можно настроить в меню Settings | Languages & Frameworks | QML.

Взаимодействие с IDE

Переработанный диалог Run/Debug Configurations для Python

Переработанный диалог Run/Debug Configurations для Python

Мы упростили взаимодействие с диалогом Run/Debug Configurations для конфигураций запуска Python. В новой версии при открытии диалога вы сразу получаете доступ к самым часто используемым настройкам. Все дополнительные настройки, например Run with Python Console, Emulate terminal in output console и Before Launch, теперь находятся в меню Modify options.

Возможность обновления пакетов через окно Python Packages

Обновление пакетов через окно Python Packages

Окно Python Packages — быстрый и удобный способ управления пакетами PyPI, Conda или частными пакетами для вашего проекта.

В PyCharm 2023.2 можно просмотреть список новых версий пакетов в левой части окна Python Packages и при необходимости скачать и установить их прямо из этого списка.

Возможность сворачивания аннотаций типов Python

Сворачивание аннотаций типов Python

PyCharm 2023.2 предлагает возможность сворачивания сложных подсказок типов. Это позволяет улучшить читаемость кода. Если вы предпочитаете читать код без аннотаций типов, в меню Settings | Editor | General | Code Folding | Python | Type annotations можно изменить настройки, чтобы при открытии проектов аннотации были по умолчанию свернуты. Можно также использовать действия Collapse Python Type Annotations и Expand Python Type Annotations, чтобы быстро убрать аннотации типов или вернуть их при необходимости.

Текстовый поиск в Search Everywhere

Текстовый поиск в Search Everywhere

Функция Search Everywhere (двойное нажатие Shift) в основном используется для поиска файлов, классов, методов, действий и настроек. Теперь, когда по заданному запросу мало или вообще нет результатов, отображаются результаты текстового поиска.

Анализ кода

Встроенные подсказки имен параметров

Встроенные подсказки имен параметров

Чтобы было проще читать вызовы функций, содержащие много аргументов, в PyCharm 2023.2 были добавлены встроенные подсказки имен параметров. Их поведение можно настроить в меню Settings | Editor | Inlay Hints. С помощью сочетания клавиш Ctrl+Click можно также отключить подсказки имен параметров для определенных методов.

Улучшенные подсказки типов

Улучшенные подсказки типов

PyCharm 2023.2 распознает вызовы функций с аннотацией typing.NoReturn. Теперь при вызове таких функций IDE отображает корректную информацию о недостижимом коде и возможных неинициализированных переменных.

Поддержка переопределения тестовых классов

Поддержка переопределения тестовых классов

Для переопределенных тестовых классов pytest PyCharm 2023.2 обеспечивает корректный вывод типов, навигацию и автодополнение кода. Новая версия IDE разрешает тестовые классы так же, как и pytest: сначала выполняет проверку внутри тестового класса, затем в текущем файле и операторах импорта, и наконец в ближайшем файле conftest.py.

Улучшенная поддержка шаблонов Jinja

Улучшенная поддержка шаблонов Jinja

Версия PyCharm 2023.2 автоматически распознает файлы с расширением .jinja как шаблоны Jinja так же, как это происходит для файлов .j2 и .jinja2. После этого IDE предлагает подсветку синтаксиса и автодополнение кода.

В файлах со сложными расширениями, например в шаблонах Ansible, теперь работает правильная подсветка синтаксиса и автодополнение кода как для языка шаблона, так и для языка данных. Распознаются текстовые форматы .xml, .yaml и .properties. Файлы *-playbook.yaml также распознаются как файлы Jinja2 с языком данных YAML.

Другие улучшения

  • PyCharm 2023.2 предлагает автодополнение кода для имен пакетов в атрибутах dependencies и requires в файлах pyproject.toml. Кроме того, IDE предложит установить отсутствующие пакеты из этих атрибутов.
  • В PyCharm 2023.2 добавлена возможность сворачивания кода в скобках при переносе строки. Эта функция работает для двоичных выражений, цепочек вызовов, строк и операторов относительного импорта.
  • PyCharm 2023.2 предлагает подсветку синтаксиса для содержимого тега <py-config>. Кроме того, новая версия обеспечивает автодополнение кода для элементов display, Element и Element.write внутри тега <py-script> и проверяет типы их аргументов.

Интерфейс

Цветные заголовки проектов в новом интерфейсе

Цветные заголовки проектов в новом интерфейсе

Теперь каждому проекту можно присвоить уникальный цвет и значок, а также изменить заранее настроенные цвета заголовков. Для этого кликните правой кнопкой мыши по заголовку окна и зайдите в контекстное меню, а затем выберите опцию Change Toolbar Color и укажите желаемый цвет. Чтобы отключить эту функцию, просто снимите флажок с опции Show Project Gradient в контекстном меню.

Светлая тема со светлыми заголовками в новом интерфейсе

Светлая тема со светлыми заголовками в новом интерфейсе

Мы усовершенствовали светлую тему, добавив альтернативный вариант Light with Light Header, отличающийся светлыми заголовками окон, всплывающими подсказками и уведомлениями.

Сортировка файлов по времени изменения в представлении Project

Сортировка файлов по времени изменения в представлении Project

В PyCharm 2023.2 появилось долгожданное упорядочивание файлов в представлении Project по времени их изменения. Файлы автоматически пересортировываются при сохранении изменений в проекте. Чтобы включить эту функцию, нажмите на три точки на панели Project и выберите Tree Appearance | Sort by Modification Time.

Закрепленные конфигурации запуска в виджете Run

Закрепленные конфигурации запуска в виджете Run

Чтобы вам было проще управлять несколькими конфигурациями запуска, наиболее часто используемые теперь можно закреплять в виджете Run. Для этого нажмите на три точки рядом с названием конфигурации и в открывшемся меню выберите Pin. Если вы хотите изменить порядок закрепленных конфигураций, просто перетащите их вверх или вниз по списку.

Другие улучшения

  • Мы расширили возможности кастомизации главной панели инструментов в новом интерфейсе. Кликните правой кнопкой мыши по любому виджету, выберите опцию Add to Main Toolbar, и вы увидите доступные варианты.

Data Science
Pro

Возможность настройки управляемых серверов Jupyter

Возможность настройки управляемых серверов Jupyter

В PyCharm 2023.2 можно настраивать управляемые серверы Jupyter: указать для них переменные окружения, настроить запуск управляемых серверов из любой директории и запускать серверы с помощью файла jupyter.exe, который хранится отдельно от выбранного интерпретатора Python. Кроме того, можно указать дополнительные параметры для серверов Jupyter или JupyterLab.

Поддержка Polars DataFrames

Поддержка Polars DataFrames

В PyCharm 2023.2 можно работать с интерактивными таблицами Polars в Jupyter-ноутбуках. В консоли Python можно просматривать Polars DataFrames с помощью опции View as DataFrame в списке Special Variables. С Polars работают как отладчики Python, так и отладчики Jupyter. PyCharm предоставляет информацию о типах и размерах таблиц, предлагает автодополнение имен и типов столбцов, позволяет сортировать данные в таблицах.

Обратите внимание: Polars DataFrames не поддерживаются в режиме Scientific.

Производительность
Pro

Новый инструмент для быстрого создания общих индексов

В PyCharm 2023.2 появился новый инструмент командной строки для быстрого создания и загрузки общих индексов. Он оптимизирует работу команды и позволяет не тратить время на локальное индексирование больших проектов. С ним вы сможете создавать общие индексы всего за несколько кликов без использования дополнительных скриптов и сервисов. Подробнее.

Обеспечение качества кода
Pro

Интеграция с JetBrains Qodana — платформой для контроля качества кода

Интеграция с JetBrains Qodana — платформой для контроля качества кода

В этой версии мы устранили сложности с настройкой инструментов статического анализа благодаря полной интеграции с Qodana — платформой для контроля качества кода.

Теперь можно запустить статический анализ кода прямо в PyCharm, просмотреть список проблем по всему проекту и настроить критерии качества в CI/CD-системе. Более того, можно, не выходя из PyCharm, посмотреть результаты анализа на стороне сервера.

Платформа Qodana только что была официально выпущена, подробнее о релизе читайте в этой статье.

Веб-разработка
Pro

Улучшенное форматирование ошибок в JavaScript и TypeScript

Улучшенное форматирование ошибок в JavaScript и TypeScript

В PyCharm 2023.2 мы постарались улучшить способ представления ошибок типов в JavaScript и TypeScript. Благодаря новому форматированию информацию об ошибках и предупреждениях проще читать, а значит легче находить проблемы в коде. Новым способом отображаются все ошибки в TypeScript-коде, наиболее распространенные ошибки в JavaScript и даже локализованные ошибки.

Поддержка вложенности CSS

Поддержка вложенности CSS

Версия PyCharm 2023.2 поддерживает вложенность CSS. Мы добавили поддержку синтаксиса и инспекцию, которая предупредит вас о том, что вложенный селектор начинается с идентификатора или функциональной нотации.

Встроенный плагин спецификаций OpenAPI

Встроенный плагин спецификаций OpenAPI

В PyCharm 2023.2 был встроен плагин спецификаций OpenAPI. Он обеспечивает поддержку файлов спецификаций OpenAPI и Swagger. Основные возможности: проверка на соответствие схеме JSON, навигация и генерация кода с помощью Swagger Codegen и OpenAPI Generator.

Превью Redoc UI для файлов OpenAPI и Swagger

Превью Redoc UI для файлов OpenAPI и Swagger

PyCharm теперь поддерживает превью Redoc UI для файлов спецификаций OpenAPI и Swagger, включая файлы YAML и JSON, и можно переключаться между интерфейсами Redoc и Swagger внутри IDE. Благодаря интеграции с Redocly у вас есть доступ к консоли Try it из PyCharm, и вы можете использовать ее для установки параметров и отправки запросов к API.

Поддержка редактирования файлов AsyncAPI

Поддержка редактирования файлов AsyncAPI

Работать с форматом спецификаций AsyncAPI в PyCharm стало намного проще. IDE поддерживает проверку схем и предоставляет автодополнение ссылок, окно Endpoints и панель Editor Preview.

HTTP-клиент

gRPC-запросы с использованием TLS в HTTP-клиенте

gRPC-запросы с использованием TLS в HTTP-клиенте

Теперь в HTTP-клиенте можно отправлять gRPC-запросы с использованием протокола Transport Layer Security (TLS). Он обеспечивает шифрование и аутентификацию, гарантируя конфиденциальность и целостность передаваемых данных. В синтаксисе запроса поддерживаются схемы https:// и grpcs://.

Поддержка схем Swagger и OpenAPI в HTTP-клиенте

HTTP-клиент теперь понимает спецификации Swagger и OpenAPI и предоставляет подходящие варианты автодополнения для тела JSON-запроса.

Поддержка импорта JavaScript в HTTP-клиенте

Поддержка импорта JavaScript в HTTP-клиенте

В PyCharm 2023.2 появилась возможность совместного использования общего JavaScript-кода для обработчиков запросов в HTTP-клиенте при помощи импортируемых модулей.

Превью PDF- и HTML-файлов в ответах в HTTP-клиенте

Превью PDF- и HTML-файлов в ответах в HTTP-клиенте

PyCharm теперь показывает превью PDF- и HTML-файлов прямо в результатах запроса в HTTP-клиенте.

Поддержка GraphQL и WebSocket в CLI HTTP-клиента

Поддержка GraphQL и WebSocket в CLI HTTP-клиента

Теперь в PyCharm можно использовать CLI HTTP-клиента для взаимодействия с API GraphQL и установки WebSocket-соединений с сервисами, например, для тестов или скриптов автоматизации.

Система контроля версий

Интеграция с GitLab

Интеграция с GitLab

В PyCharm 2023.2 появилась интеграция с GitLab для оптимизации рабочего процесса. Теперь вы можете работать с функцией Merge Request прямо из IDE: просматривать список реквестов, проверять изменения, оставлять комментарии и переходить к соответствующим представлениям.

Коммит отдельных строк кода

Коммит отдельных строк кода

В PyCharm 2023.2 появилась долгожданная возможность выбирать для коммита только определенные фрагменты кода. Чтобы сделать частичный коммит, выберите строки внутри блока кода и вызовите действие Include these lines into commit из контекстного меню. Блок будет разделен на отдельные строки, а выбранные строки будут выделены. Используйте флажки или контекстное меню, чтобы добавить или снять выделение со строки.

Docker
Pro

Превью файлов внутри слоев Docker-образов

Превью файлов внутри слоев Docker-образов

В окне Services теперь можно посмотреть превью содержимого слоев Docker-образов. Выберите образ из списка, нажмите Show layers, а затем Analyze image for more information. Вы увидите список файлов, хранящихся в слое, из которого можно легко открыть выбранный файл в редакторе, кликнув по нему правой кнопкой мыши и выбрав Open File (или Download File для исполняемых файлов).

Запуск Docker-контейнера в качестве задачи Before Launch

Запуск Docker-контейнера в качестве задачи Before Launch

Теперь можно запускать конфигурацию запуска Docker перед другой конфигурацией, обозначив ее как Before Launch task. IDE не будет инициировать следующую конфигурацию запуска, пока текущий контейнер не достигнет состояния готовности. Чтобы поставить конфигурацию запуска Docker в очередь, сначала создайте ее, а затем добавьте в соответствующий контейнер с помощью команды Modify options | Add before launch task | Run configuration.

Kubernetes
Pro

Поддержка нескольких файлов kubeconfig в рамках одного проекта

Поддержка нескольких файлов kubeconfig в одном проекте

В новой версии появилась возможность использовать несколько файлов kubeconfig в одном проекте. Это упрощает работу с несколькими кластерами или средами на разных кластерах в рамках одного проекта. Для настройки файлов перейдите в раздел File | Settings | Build, Execution, Deployment | Kubernetes.

Просмотр журналов развертывания

Просмотр журналов развертывания

Теперь в окне Services можно просматривать журналы развертывания в кластерах Kubernetes. Кликните правой кнопкой мыши по Deployment в дереве и выберите в контекстном меню Follow Log или Download Log.

Инструменты для работы с базами данных
Pro

Поддержка Redis Cluster

Поддержка Redis Cluster

Теперь вы можете подключиться к Redis Cluster и получить тот же набор функций, что и при использовании автономного Redis. При подключении к кластеру перед требуемым URL-адресом необходимо ввести jdbc:redis:cluster:, а затем выбрать соответствующий тип соединения. Если для подключения к кластеру требуется SSH-туннелирование, то в URL следует указать хосты и порты всех узлов кластера.

Обновленный диалог миграции схем

Обновленный диалог миграции схем

В версии 2023.2 мы переработали интерфейс миграции схем. Основное отличие заключается в том, что теперь одинаковые объекты располагаются на одной строке в обеих частях диалога: так проще понять, какие объекты будут добавлены в целевую схему, удалены из нее или изменены.

Настройка часового пояса в редакторе данных

Настройка часового пояса в редакторе данных

В разделе настроек Data Editor and Viewer появилось новое поле Time zone: в нем можно задать часовой пояс, в котором должно отображаться значение datetime.

Поддержка внешних баз данных и общего доступа в Redshift

Общие базы данных и их содержимое теперь подвергаются интроспекции. Также интроспективно проверяются datashares, на которых создаются эти базы.

Другие возможности

  • В этой версии мы добавили LSP API, предназначенный для разработчиков плагинов, которые хотят использовать определенный LSP-сервер, чтобы получать помощь в написании кода в IDE. Если вы создали свой собственный язык программирования или фреймворк, для его поддержки в IDE можно написать LSP-сервер и плагин. Обратите внимание, что эта возможность доступна только в платной версии IDE. Подробнее.
  • Мы разобрали плагин Big Data Tools на составные части, которые можно использовать по отдельности. Таким образом, для PyCharm теперь есть шесть новых плагинов: Kafka, Spark, Flink, Remote File Systems, Big Data File Viewer и Zeppelin. Если вам нужны все шесть, вы все еще можете установить Big Data Tools и получить все плагины в один клик.
  • Начиная с версии 2023.2, стандартное значение максимального размера кучи (-Xmx) было изменено на 2 ГБ.