Релиз PyCharm 2016.3: Полная поддержка Python 3.6, улучшения в Python консоли, обозревателе переменных, и многое другое

Всем привет! Вчера мы выпустили новый PyCharm 2016.3, который уже доступен для скачивания.
Этот релиз является последним крупным обновлением с новой функциональностью в 2016 году.
ee35c01fd9b4479495a59d1595b473c7.png

С момента предыдущего релиза PyCharm прошло ровно 4 месяца. За это время PyCharm получил ряд новых полезных улучшений в инструментах для Python, Django, веб и научной разработки, которые, как всегда, тесно интегрированы и эффективно работают друг с другом. Сегодня мы рады рассказать, что же интересного и важного появилось в новой версии PyCharm.

Полная поддержка Python 3.6


f01bd455e58a43ab99302ccabbfcc1f4.png

В первую очередь отметим, что PyCharm 2016.3 полностью поддерживает последний Python 3.6. Сейчас Python 3.6 находится в стабильной beta-стадии, и мы хорошо подготовились к его официальному релизу, запланированному на декабрь этого года. Поддерживаются следующие стандарты:

  • PEP 526: Синтаксис аннотаций переменных. Теперь PyCharm понимает новый синтаксис аннотаций типов переменных и использует эту информацию для вычисления типов в коде. В конечном счете это выражается в улучшенном анализе и автодополнении кода. Также по Alt+Enter PyCharm умеет конвертировать аннотации в комментариях в новый синтаксис и обратно.
  • PEP 498: Форматированные строчные литералы. PyCharm понимает синтаксис новой конструкции f-strings и предоставляет специальное автодополнение внутри f-strings. По Alt-Enter можно автоматически сконвертировать традиционно отформатированные строки с помощью % и str.format () в новый формат, введенный в Python 3.6.
  • PEP 515: Подчеркивания в численных литералах. Этот стандарт расширяет синтаксис Python. Теперь подчеркивания могут служить разделителями между цифрами в численных литералах.
  • PEP 525 и PEP 530. Эти два стандарта описывают асинхронные генераторы и включения. Для них мы добавили в PyCharm новые инспекции.

Поддержка Django


1cc50eeed49d4809882e17d9b2caa7a5.png

Мы дополнили поддержку Django-проектов парой небольших улучшений:

  • В PyCharm 2016.3 можно создавать новый Django-проект для запуска и отладки на удаленной машине без необходимости настраивать локальный интерпретатор. Можно указать интерпретатор, находящийся на VM, в Docker-контейнере или удаленном сервере, на этапе создания проекта.
  • Мы реализовали автодополнение, специфичное для Django-форм в Django Views, реализованных в классах, — таким же образом, как в прошлом релизе для Views, реализованных через функции.

Многострочные команды в Python-консоли


5aac1df2626946fda0880fbe4ba2dfc0.png

В этом релизе мы пофиксили много багов в Python-консоли, в основном касающиеся форматирования и отображения многострочных команд. Теперь экспериментировать и писать код в консоли стало намного удобнее и визуально приятнее. В дополнение ко многим небольшим улучшениям Python консоли, мы добавили автодополнение для IPython по нажатии Tab.

Обозреватель переменных


Теперь в режиме отладки в рабочей области находятся только переменные, используемые в текущем проекте. Все служебные и системные переменные скрыты под разделом «Special Variables». Если используется IPython-интерпретатор, все служебные переменные IPython также помещаются в «Special Variables»:

b5ac7a89ce1c4a63bb963ac0dc57c0eb.png

Для больших массивов, например массивов NumPy или pandas DataFrames, мы добавили возможность просматривать их в отдельном специализированном обозревателе. Достаточно нажать «View as…» в обозревателе переменных:

ca23959e8eb34ecb8f627d305cd64e80.png

Активация virtualenv в терминале


23b517c67ab0456d9818d15e8770d6ea.png

Если в качестве интерпретатора проекта используется virtualenv, виртуальное окружение автоматически активируется при запуске встроенного терминала. Автоматическая активация venv работает для bash, zsh, fish и Windows cmd.

Поддержка Docker Compose


d58f80e64f0240ed85951370f58bddb6.png

На этапе конфигурации удаленного интерпретатора, при выборе Docker Compose конфигурации теперь можно указать несколько файлов, расширяющих Compose-конфигурацию. Если Compose-файлы используют переменные окружения, задать их теперь можно на этом же этапе в специальном поле.

Coverage для ветвлений


2815211c1b5a480a9f72298e1e046566.png

В PyCharm 2016.3 встроенный инструмент для анализа покрытия кода был улучшен благодаря новой опции «Branch coverage». Эта опция по умолчанию отключена, но может быть активирована в настройках Settings (Preferences) | Build, Execution, Deployment | Coverage | Python coverage. Когда опция активирована, PyCharm добавляет информацию о построчном покрытии альтернативных ветвлений в коде к стандартному отчету профилировщика, как показано на скриншоте.

Построчное профилирование


ede0c309d37b4b7fbb962ac204eb7c96.png

В предыдущем релизе мы добавили поддержку VMprof и уже в этом релизе улучшили ее, добавив режим «profile lines» к отображению прямо в редакторе кода. Этот режим работает по умолчанию при использовании VMprof в режиме профилирования. После сбора статистики, в дополнение к просмотру стандартных отчетов профилировщика, PyCharm отображает результаты построчной профиляции прямо в редакторе. Строки, использующие значительную часть процессорного времени, отображаются разными цветами, от желтого к красному, по возрастанию ресурсоемкости. Чтобы попробовать этот режим, нужно установить пакет vmprof на текущий интерпретатор проекта.

Прочие улучшения


В этом релизе также значительно усовершенствована поддержка передовых веб-технологий: поддержка Flow, улучшенная поддержка TypeScript, поддержка PostCSS, Stylelint и многое другое:

077d29853862485a9e5093e2c2e91d5f.png

В PyCharm 2016.3 также вошли многие новые возможности и усовершенствования из IntelliJ Platform: улучшены эргономические характеристики и скорость работы журнала VCS, доработано диалоговое окно объединения (Merge), подсветка синтаксиса в диалоговых окнах Diff и Merge, а также интерфейс для управления удаленными репозиториями Git в проекте:

49ed2eec2ce942c58880fa0c0e8a5cb6.gif

Кроме того, улучшены средства работы с базами данных — спасибо коллегам из команды JetBrains DataGrip:

e20c7f77dcb543139354d70113673725.png

Ниже короткое демо на английском от Пола Эверита, нашего девелопер-адвоката:

Если вам стало интересно, мы предлагаем 30-дневную бесплатную пробную версию для полнофункционального PyCharm Professional Edition, а в разделе цен можно узнать о стоимости подписки. Многие улучшения этого релиза также доступны в бесплатном PyCharm Community Edition. Различия между PyCharm Professional и Community можно посмотреть здесь.

Узнайте больше о нововведениях и улучшениях в PyCharm 2016.3 на нашем сайте.

Следите также за статьями и обновлениями в нашем англоязычном блоге. Мы будем рады ответить на любые ваши вопросы в комментариях.

Программируйте с удовольствием!
Команда JetBrains

Комментарии (11)

  • 24 ноября 2016 в 19:15

    0

    А поддержка синтаксиса kivy из коробки будет? А то представленный на сайте jar модуль уже слегка устарел, и много чего не знает.
    • 24 ноября 2016 в 19:51

      0

      Пока не планировалось, но люди просят. Проголосуйте здесь пожалуйста https://youtrack.jetbrains.com/issue/PY-8238.
  • 24 ноября 2016 в 19:51

    0

    Есть ли по Pycharm подробный мануал на русском языке, для новичков в Python? Или это может быть только для коммерческой версии?
    • 24 ноября 2016 в 19:52

      0

      К сожалению документации, гайдов или туториалов на русском нет и не планируется.
  • 24 ноября 2016 в 20:16

    0

    Какова ситуация с notebooks на high-DPI?
    • 24 ноября 2016 в 21:37

      0

      Никаких улучшений в этом направлении пока не было. Но мы планируем серьезнее заняться Notebook.
  • 24 ноября 2016 в 20:21

    0

    Я не питонист, поэтому задам, возможно, глупый вопрос:, а почему не реализовали семантическую подсветку? Она не актуальна в Питоне или, может, реализовали, но не упомянули в анонсе?
    • 24 ноября 2016 в 21:31

      0

      Вы о чем?!

      • 24 ноября 2016 в 21:39

        0

        Кажется об этой фиче https://www.youtube.com/watch? v=8WRH59PQ5Dk
    • 24 ноября 2016 в 21:41

      0

      Мы ее не реализовали в этом релизе. На сколько мне известно, пока семантическая подсветка есть только в IntelliJ IDEA 2016.3, и то не по умолчанию. Возможно мы включим эту функциональность в следующем релизе. В любом случае кое что нужно доработать.
  • 24 ноября 2016 в 20:40

    0

    Не злорадства ради, но может ли быть полная поддержка 3.6 без 3.5?
    Синтаксический анализатор до сих пор не понимает простую конструкцию


    for i in range(10): self.assertEquals(i * 2, await self.x(i))

    https://youtrack.jetbrains.com/issue/PY-20682

© Habrahabr.ru