PyCharm 2023.2: новые шаблоны Live Templates для Django, интеграция с инструментом форматирования Black, всплывающее окно Run Anything и помощник на основе искусственного интеллекта AI Assistant
В 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 REST. Вы можете искать объявления конечных точек, переходить к нужным объявлениям и переименовывать сегменты URL-пути. Работая с вкладкой HTTP Client, можно пользоваться автодополнением кода при изменении конечных точек. Попробуйте эту функцию и расскажите нам, что вы хотели бы увидеть в следующих релизах PyCharm.
В PyCharm 2023.2 появилась интеграция с инструментом форматирования Black. Если у вас уже установлен Black, PyCharm предложит настроить его для вашего проекта.
В PyCharm инструмент Black работает с файлами .py
и .pyi
. Форматировать можно как файлы целиком, так и отдельные фрагменты. Black можно запустить вместо встроенного инструмента форматирования, если вы хотите переформатировать код вручную (нажав Ctrl+Alt+L или выбрав в главном меню Code | Reformat Code) или если вы хотите сохранить изменения в файлах. Подробнее о возможностях настройки Black читайте в документации.
В PyCharm 2023.2 появился очень удобный инструмент Run Anything, который действительно позволяет запускать все, что угодно, независимо от того, какой файл открыт в настоящий момент. С его помощью можно быстро создать и запустить конфигурации запуска/отладки, запустить консоль Python, управлять пакетами Python, а также запускать приложения, скрипты, команды и задания. Чтобы открыть всплывающее окно Run Anything, дважды нажмите Ctrl.
В этой версии мы представляем важное дополнение к PyCharm Professional — AI Assistant. Текущий набор функций AI Assistant включает в себя чат-бота на основе искусственного интеллекта, автоматическое создание документирующих комментариев, предложение имен, генерацию сообщений коммитов и многое другое.
AI Assistant работает на базе сервиса JetBrains AI, который сейчас подключается к OpenAI, а в будущем будет интегрирован с другими поставщиками языковых моделей. Чтобы получить доступ к возможностям искусственного интеллекта, нужно вручную установить плагин JetBrains AI и войти в сервис JetBrains AI, используя свой JetBrains-аккаунт. На начальном этапе доступ к сервису может быть ограничен. Подробнее об AI Assistant и о том, как получить к нему доступ, читайте в нашем блоге.
Если в вашем коде используется Qt Modeling Language (QML), PyCharm теперь предоставляет поддержку его синтаксиса. Она включает в себя:
По умолчанию PyCharm использует встроенные настройки стиля для кода QML. Пути Qt и QML, qmlformat как инструмент форматирования и языковой сервер QML можно настроить в меню Settings | Languages & Frameworks | QML.
Мы упростили взаимодействие с диалогом Run/Debug Configurations для конфигураций запуска Python. В новой версии при открытии диалога вы сразу получаете доступ к самым часто используемым настройкам. Все дополнительные настройки, например Run with Python Console, Emulate terminal in output console и Before Launch, теперь находятся в меню Modify options.
Окно Python Packages — быстрый и удобный способ управления пакетами PyPI, Conda или частными пакетами для вашего проекта.
В PyCharm 2023.2 можно просмотреть список новых версий пакетов в левой части окна Python Packages и при необходимости скачать и установить их прямо из этого списка.
PyCharm 2023.2 предлагает возможность сворачивания сложных подсказок типов. Это позволяет улучшить читаемость кода. Если вы предпочитаете читать код без аннотаций типов, в меню Settings | Editor | General | Code Folding | Python | Type annotations можно изменить настройки, чтобы при открытии проектов аннотации были по умолчанию свернуты. Можно также использовать действия Collapse Python Type Annotations и Expand Python Type Annotations, чтобы быстро убрать аннотации типов или вернуть их при необходимости.
Функция 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
.
Версия PyCharm 2023.2 автоматически распознает файлы с расширением .jinja
как шаблоны Jinja так же, как это происходит для файлов .j2
и .jinja2
. После этого IDE предлагает подсветку синтаксиса и автодополнение кода.
В файлах со сложными расширениями, например в шаблонах Ansible, теперь работает правильная подсветка синтаксиса и автодополнение кода как для языка шаблона, так и для языка данных. Распознаются текстовые форматы .xml
, .yaml
и .properties
. Файлы *-playbook.yaml
также распознаются как файлы Jinja2 с языком данных YAML.
dependencies
и requires
в файлах pyproject.toml
. Кроме того, IDE предложит установить отсутствующие пакеты из этих атрибутов. <py-config>
. Кроме того, новая версия обеспечивает автодополнение кода для элементов display
, Element
и Element.write
внутри тега <py-script>
и проверяет типы их аргументов. Теперь каждому проекту можно присвоить уникальный цвет и значок, а также изменить заранее настроенные цвета заголовков. Для этого кликните правой кнопкой мыши по заголовку окна и зайдите в контекстное меню, а затем выберите опцию Change Toolbar Color и укажите желаемый цвет. Чтобы отключить эту функцию, просто снимите флажок с опции Show Project Gradient в контекстном меню.
Мы усовершенствовали светлую тему, добавив альтернативный вариант Light with Light Header, отличающийся светлыми заголовками окон, всплывающими подсказками и уведомлениями.
В PyCharm 2023.2 появилось долгожданное упорядочивание файлов в представлении Project по времени их изменения. Файлы автоматически пересортировываются при сохранении изменений в проекте. Чтобы включить эту функцию, нажмите на три точки на панели Project и выберите Tree Appearance | Sort by Modification Time.
Чтобы вам было проще управлять несколькими конфигурациями запуска, наиболее часто используемые теперь можно закреплять в виджете Run. Для этого нажмите на три точки рядом с названием конфигурации и в открывшемся меню выберите Pin. Если вы хотите изменить порядок закрепленных конфигураций, просто перетащите их вверх или вниз по списку.
В PyCharm 2023.2 можно настраивать управляемые серверы Jupyter: указать для них переменные окружения, настроить запуск управляемых серверов из любой директории и запускать серверы с помощью файла jupyter.exe
, который хранится отдельно от выбранного интерпретатора Python. Кроме того, можно указать дополнительные параметры для серверов Jupyter или JupyterLab.
В PyCharm 2023.2 можно работать с интерактивными таблицами Polars в Jupyter-ноутбуках. В консоли Python можно просматривать Polars DataFrames с помощью опции View as DataFrame в списке Special Variables. С Polars работают как отладчики Python, так и отладчики Jupyter. PyCharm предоставляет информацию о типах и размерах таблиц, предлагает автодополнение имен и типов столбцов, позволяет сортировать данные в таблицах.
Обратите внимание: Polars DataFrames не поддерживаются в режиме Scientific.
В PyCharm 2023.2 появился новый инструмент командной строки для быстрого создания и загрузки общих индексов. Он оптимизирует работу команды и позволяет не тратить время на локальное индексирование больших проектов. С ним вы сможете создавать общие индексы всего за несколько кликов без использования дополнительных скриптов и сервисов. Подробнее.
В этой версии мы устранили сложности с настройкой инструментов статического анализа благодаря полной интеграции с Qodana — платформой для контроля качества кода.
Теперь можно запустить статический анализ кода прямо в PyCharm, просмотреть список проблем по всему проекту и настроить критерии качества в CI/CD-системе. Более того, можно, не выходя из PyCharm, посмотреть результаты анализа на стороне сервера.
Платформа Qodana только что была официально выпущена, подробнее о релизе читайте в этой статье.
В PyCharm 2023.2 мы постарались улучшить способ представления ошибок типов в JavaScript и TypeScript. Благодаря новому форматированию информацию об ошибках и предупреждениях проще читать, а значит легче находить проблемы в коде. Новым способом отображаются все ошибки в TypeScript-коде, наиболее распространенные ошибки в JavaScript и даже локализованные ошибки.
Версия PyCharm 2023.2 поддерживает вложенность CSS. Мы добавили поддержку синтаксиса и инспекцию, которая предупредит вас о том, что вложенный селектор начинается с идентификатора или функциональной нотации.
В PyCharm 2023.2 был встроен плагин спецификаций OpenAPI. Он обеспечивает поддержку файлов спецификаций OpenAPI и Swagger. Основные возможности: проверка на соответствие схеме JSON, навигация и генерация кода с помощью Swagger Codegen и OpenAPI Generator.
PyCharm теперь поддерживает превью Redoc UI для файлов спецификаций OpenAPI и Swagger, включая файлы YAML и JSON, и можно переключаться между интерфейсами Redoc и Swagger внутри IDE. Благодаря интеграции с Redocly у вас есть доступ к консоли Try it из PyCharm, и вы можете использовать ее для установки параметров и отправки запросов к API.
Работать с форматом спецификаций AsyncAPI в PyCharm стало намного проще. IDE поддерживает проверку схем и предоставляет автодополнение ссылок, окно Endpoints и панель Editor Preview.
Теперь в HTTP-клиенте можно отправлять gRPC-запросы с использованием протокола Transport Layer Security (TLS). Он обеспечивает шифрование и аутентификацию, гарантируя конфиденциальность и целостность передаваемых данных. В синтаксисе запроса поддерживаются схемы https://
и grpcs://
.
HTTP-клиент теперь понимает спецификации Swagger и OpenAPI и предоставляет подходящие варианты автодополнения для тела JSON-запроса.
В PyCharm 2023.2 появилась возможность совместного использования общего JavaScript-кода для обработчиков запросов в HTTP-клиенте при помощи импортируемых модулей.
PyCharm теперь показывает превью PDF- и HTML-файлов прямо в результатах запроса в HTTP-клиенте.
Теперь в PyCharm можно использовать CLI HTTP-клиента для взаимодействия с API GraphQL и установки WebSocket-соединений с сервисами, например, для тестов или скриптов автоматизации.
В PyCharm 2023.2 появилась интеграция с GitLab для оптимизации рабочего процесса. Теперь вы можете работать с функцией Merge Request прямо из IDE: просматривать список реквестов, проверять изменения, оставлять комментарии и переходить к соответствующим представлениям.
В PyCharm 2023.2 появилась долгожданная возможность выбирать для коммита только определенные фрагменты кода. Чтобы сделать частичный коммит, выберите строки внутри блока кода и вызовите действие Include these lines into commit из контекстного меню. Блок будет разделен на отдельные строки, а выбранные строки будут выделены. Используйте флажки или контекстное меню, чтобы добавить или снять выделение со строки.
В окне Services теперь можно посмотреть превью содержимого слоев Docker-образов. Выберите образ из списка, нажмите Show layers, а затем Analyze image for more information. Вы увидите список файлов, хранящихся в слое, из которого можно легко открыть выбранный файл в редакторе, кликнув по нему правой кнопкой мыши и выбрав Open File (или Download File для исполняемых файлов).
Теперь можно запускать конфигурацию запуска Docker перед другой конфигурацией, обозначив ее как Before Launch task. IDE не будет инициировать следующую конфигурацию запуска, пока текущий контейнер не достигнет состояния готовности. Чтобы поставить конфигурацию запуска Docker в очередь, сначала создайте ее, а затем добавьте в соответствующий контейнер с помощью команды Modify options | Add before launch task | Run configuration.
kubeconfig
в одном проекте В новой версии появилась возможность использовать несколько файлов kubeconfig
в одном проекте. Это упрощает работу с несколькими кластерами или средами на разных кластерах в рамках одного проекта. Для настройки файлов перейдите в раздел File | Settings | Build, Execution, Deployment | Kubernetes.
Теперь в окне Services можно просматривать журналы развертывания в кластерах Kubernetes. Кликните правой кнопкой мыши по Deployment в дереве и выберите в контекстном меню Follow Log или Download Log.
Теперь вы можете подключиться к Redis Cluster и получить тот же набор функций, что и при использовании автономного Redis. При подключении к кластеру перед требуемым URL-адресом необходимо ввести jdbc:redis:cluster:
, а затем выбрать соответствующий тип соединения. Если для подключения к кластеру требуется SSH-туннелирование, то в URL следует указать хосты и порты всех узлов кластера.
В версии 2023.2 мы переработали интерфейс миграции схем. Основное отличие заключается в том, что теперь одинаковые объекты располагаются на одной строке в обеих частях диалога: так проще понять, какие объекты будут добавлены в целевую схему, удалены из нее или изменены.
В разделе настроек Data Editor and Viewer появилось новое поле Time zone: в нем можно задать часовой пояс, в котором должно отображаться значение datetime.
Общие базы данных и их содержимое теперь подвергаются интроспекции. Также интроспективно проверяются datashares, на которых создаются эти базы.