PyCharm Migration Tutorial for Text Editors

If you’re a Python developer who uses a text editor such as Vim, Emacs, or Sublime Text, you might wonder what it takes to switch to PyCharm as an IDE for your development. We’ve written a helpful Migrating from Text Editors tutorial for just this topic.

The tutorial starts with the basic question of “What is an IDE?” The line between text editor and IDE can be blurry. PyCharm views the distinction as: a project-level view of your code and coding activities, with project-wide features such as coding assistance and refactoring.

This document then goes over some of the important points when migrating: the project-oriented UI, working with projects instead of files, Vim/Emacs specifics, keyboard shortcuts, customizing, and a discussion of facilities important to text editor users (multiple cursors, split windows, etc.) It then closes by discussing areas the IDE can really help, for example, the managed running and debugging of your code.

Of course, this document is just an overview. Vim and Emacs in particularly have decades of development and features, and PyCharm itself is now very mature with many features itself, so a complete comparison would break the Internet. If you have a specific question, feel free to comment, and we hope you find the tutorial helpful.

Posted in Tutorial | Leave a comment

In-Depth Screencast on Testing

Earlier this year we rolled out a Getting Started Series of screencast videos on the basics of using PyCharm: setup, the UI, running Python code, debugging, etc. We knew at the time that some topics would need more treatment than a quick screencast, so we planned a follow-on series of “in-depth” screencasts, each on a single topic.

Here’s the first: In-Depth: Testing covers more topics than we went over in the Getting Started: Testing screencast. Which makes sense, as PyCharm itself has such a wealth of support in each of its features:

Here are the topics in this just-over-four-minute video:

We hope you enjoy this first in the series of In-Depth screencasts. We have more planned, such as version control. And please, if you have any topics that you’d like to see get expanded screencast attention, let us know.

Posted in Screencast, Tutorial, Video | 4 Comments

Announcing PyCharm 2016.1.2

PyCharm 2016.1.2 is now available from the download page.

Soon it will also be available as a patch update from within the IDE. A patch update from v2016.1.1, which exposed a severe performance regression, will be available shortly today. The patch update from v2016.1 is still under way and will be available tomorrow.

The Release Notes lists all fixes for this update.

We bring you this build shortly after releasing 2016.1.1 because of the important bug-fix, PyCharm freezes on large string literals [PY-19075].

Other fixes for various Docker Compose support problems and a fix for extra libraries indexing are currently in progress and planned for the next bug-fix update.

Download PyСharm 2016.1.2 for your platform from our website and please report any problem you found in the Issue Tracker.

If you would like to discuss your experiences with PyCharm, we look forward to your feedback in comments to this post and on twitter.

Your PyCharm Team
The Drive to Develop

Posted in Release Announcements | 16 Comments

Announcing PyCharm 2016.1.1

Today we are pleased to announce the PyCharm 2016.1.1 bug-fix update. It has been uploaded and is now available from the download page. It also will be available shortly as a patch update from within the IDE (from PyCharm 2016.1 only).

Some notable highlights of this update include:

  • Fixed wrong indentation after copy-paste
  • Fixed generation of reStructuredText doc strings for methods with parameters
  • Fixed folding of custom regions
  • Fixed numerous false positives in formatted strings
  • Fixed wrong highlighting of parameters in formatted strings
  • A fix for a problem with “Gevent compatible” debugger’s mode

Fixes for various Docker Compose support problems and a fix for extra libraries indexing are currently under way and will get to the next bug update.

For further details on the bug fixes and changes, please consult the Release Notes.
As usual, please report any problem you found in the issue tracker.

If you would like to discuss your experiences with PyCharm, we look forward to your feedback in the comments to this blog post and on twitter.

The Drive to Develop
PyCharm Team

Posted in Release Announcements | 16 Comments

PyCharm 2016.1.1 EAP is available

It’s been a week since we released PyCharm 2016.1 and today we announce the early preview build of PyCharm 2016.1.1.

Some highlights of the PyCharm 2016.1.1 EAP build 145.597 are:

  • Supported Python versions changes
    • Dropped support for older Python versions before Python 3.5
    • Added preliminary support for Python 8
  • Various bug fixes
    • Fixed wrong indentation after copy-paste
    • Fixed generation of reStructuredText doc strings for methods with parameters
    • Fixed folding of custom regions

For the complete list of the changes see the release notes.

There’re other fixes that are currently under way and will hopefully get into the final PyCharm 2016.1.1 release. They’re: fixes for various Docker Compose support problems, a fix for extra libraries indexing. Stay tuned for further announcements.

We encourage you to give PyCharm 2016.1.1 EAP a try before its official release. Please change the updates channel to “Early Access Program” in the updates settings (Help|Check for updates…) to get the patch update to the EAP build from the recently released PyCharm 2016.1 or download the installer for your platform. Please report any bugs and feature request to our issue tracker.

-PyCharm team

Posted in Early Access Preview | 4 Comments

Announcing General Availability of PyCharm 2016.1

Today we bring you PyCharm 2016.1, now available for download. This is the first update in the series of releases planned for 2016. Its outstanding new features for professional Python, Web and scientific development work together smoothly to offer you a unique coding experience.

PyCharmPro2016_1_splash@2x

As usual PyCharm 2016.1 is available as a full-featured Professional Edition for Python and Web development, or as a free and open-source Community Edition for pure Python and scientific development.

Here are some notable highlights of this release.

Python-related improvements:

  • Python 2 and Python 3 type hinting and compatibility inspection
  • Docker Compose and Docker container settings
  • Tox Support
  • Improved Support for Django Forms
  • Significant debugger improvements
  • Enhanced support for IPython Notebook

Platform enhancements:

  • Git Rebase and Rename
  • Git Worktree Support
  • By-word changes highlighting in Diff Viewer
  • Enhanced Database Tools
  • Local Terminal Improvements

Web development improvements:

  • Improvements in ECMAScript 6 and TypeScript support
  • Major enhancements in Angular 2 support
  • Support for debugging asynchronous client-side code
  • Running and debugging Node.js apps on remote hosts
  • And even more

For more details please watch this short What’s New in PyCharm 2016.1 video:

Read more about what’s new in PyCharm 2016.1 on the product website and download the IDE for your platform.

New versioning
As we announced earlier, with this release we’re changing the versioning scheme and moving away from one “major” release per year to several “equal” releases per year. Also, we’re aligning releases and version numbers across all products under JetBrains Toolbox. The new versioning will follow the format “YYYY.R” where yyyy represents the year, and “r” the release within that year.

The JetBrains Team
The Drive to Develop

Posted in Release Announcements | Tagged , , , , , | 43 Comments

PyCharm 2016.1 RC2 is Available

With just a day before the official release of PyCharm 2016.1, today we’ve published the PyCharm 2016.1 RC2 build, which is already available for download and evaluation from the EAP page.

The full list of fixes and improvements for this build can be found in the release notes. The most notable fixes are:

  • a fix for an error on creating Docker Compose interpreter (PY-18854)
  • a fix for docker-compose.yml v2 support (PY-18862)
  • a fix for an exception in handling references inside formatted strings (PY-18836)

Download PyСharm 2016.1 RC2 build for your platform and please report any bugs and feature request to our Issue Tracker. It also will be available shortly as a patch update from within the IDE (from previous PyCharm 2016.1 RC only), make sure you’ve selected the Beta Releases or Public Previews channel in the update settings.

Stay tuned for a PyCharm 2016.1 release announcement and follow us on twitter.

-PyCharm Team

Posted in Early Access Preview | 1 Comment

PyCharm 2016.1 RC is Available along with New Versioning

We are now approaching the final steps towards the PyCharm 2016.1 release. So today we’ve published the PyCharm 2016.1 Release Candidate.

The PyCharm 2016.1 RC build 145.258 is available for download from the Early Access Preview page. Please take it for a spin and give us your feedback.

A week ago we announced the new versioning model for all JetBrains Toolbox products. With the upcoming release, former PyCharm 5.1 will become PyCharm 2016.1. The new versioning is aligned with releases of other JetBrains tools, following the new YYYY.R format. Please read more about new versioning in the JetBrains Toolbox—Release and Versioning Changes blog post.

PyCharm 2016.1 Release Candidate includes mostly a consolidation of bug fixes as compared to the previous PyCharm 5.1(2016.1) Beta build. For the detailed list of notable changes and improvements in this build, please check the Release Notes.

In case you missed what’s new in upcoming PyCharm 2016.1 – please see the announcement of PyCharm 5.1 Beta or for detailed information, check the announcements of previous EAP builds.

You can download the build or upgrade from within the IDE (from previous PyCharm 2016.1 Beta only) without a full re-installation using the patch-based upgrade.

We hope that there will be no major bugs, however, should you encounter any problems, please report them to YouTrack – we’ll still have a bit of time to fix stuff before the final release.

Stay tuned for a PyCharm 2016.1 release announcement and follow us on twitter.

-PyCharm team

Posted in Early Access Preview | 14 Comments

PyCharm 5.1 Beta 2 is available

Today we announce the release of PyCharm 5.1 Beta 2, an updated feature-complete preview version of the future PyCharm 2016.1. The build #145.256.43 is already available for download and evaluation from the EAP page.

Yesterday we announced the new versioning model for all JetBrains Toolbox products. With the nearest release, former PyCharm 5.1 will become PyCharm 2016.1. The new versioning will be aligned with releases of other JetBrains tools, following the new YYYY.R format. Please read more about new versioning in the JetBrains Toolbox—Release and Versioning Changes blog post.

Important note: As the versioning migration process takes some time, currently build #145.256.43 has old versioning (PyCharm 5.1 Beta) inside the build. We’re going to finally change versioning with the PyCharm 2016.1 Release Candidate which is planned for next week.

The full list of fixes and improvements for this build can be found in the release notes.

Download PyСharm 5.1 Beta 2 for your platform and please report any bugs and feature requests to our Issue Tracker. It also will be available shortly as a patch update from within the IDE (from the previous EAP build only) for those who selected the EAP or Beta Releases channels in the update settings.

Stay tuned for a PyCharm 2016.1 release announcement and follow us on Twitter.

The Drive to Develop
-PyCharm Team

Posted in Early Access Preview | 1 Comment

PyCharm 5.1 Beta is available

Today we announce the release of PyCharm 5.1 Beta, a feature-complete preview version of PyCharm 5.1.

Download PyCharm 5.1 Beta build 145.184.12 from the Early Access Preview page or as a patch-based update within the IDE (make sure to select the Beta releases or EAP channel in the update settings). After you take it for a spin, please give us your feedback.

Compared to the previous EAP build, this one includes a consolidation of fixes for various bugs and issues for recently added features, as well as a bunch of new features we hope you’ll enjoy:

Docker Compose support

Additionally to Docker container settings in run configurations (introduced in the previous EAP build), in PyCharm 5.1 Beta we introduce Docker Compose support. To get started with Docker Compose in PyCharm, make sure you’ve installed Docker Compose according to its official documentation. Then, check that the docker-compose executable is specified in PyCharm Settings | Build, Execution, Deployment | Docker:

docker1

Next, go to Settings | Project | Project Interpreter, click the gear icon to add a new remote interpreter. You’ll find the brand-new “Docker Compose” option there. All you need to do is just specify the Docker Compose configuration file (docker-compose.yml) and the service representing your project:

docker2At this stage you can also change the Docker engine settings and the Python interpreter path in the container for your service. After that, click OK and PyCharm will configure the required services and Python interpreter. From this point, autocompletion, code inspections, and checks as well as other features will be driven by the interpreter from the Docker container derived from the service description in docker-compose.yml.

Note: Currently there’s a limitation: Docker Compose files v2 are not supported. We’ll fix it before the official release of PyCharm 5.1.

Optional type hinting using run-time collected types

In one of our previous EAP builds we introduced Python 2 and Python 3 Compatible Type Hinting support:

annotate0

With this release we introduce the new experimental feature – generation of type annotations based on the run-time collected types. To use this feature, first enable run-time types collection: Go to Settings | Build, Execution, Deployment | Python Debugger. Enable “Collect run-time types information for code insight”. Next, run your application using the integrated PyCharm debugger. It will collect information about object types used in your code. After that, put the cursor to the function definition and hit Alt+Enter to get the list of the available code intentions:

annotate

Choose “Annotate types” and PyCharm will generate the type annotation based on the information on types it has collected during the debug session. This type information will be inserted in a format compatible with your project interpreter’s Python version:

annotate2

Python code compatibility inspection improvements

Writing Python 2 and Python 3 compatible code is extremely important. PyCharm helps to ensure your code is compatible with particular Python versions. Whenever your code makes use of the __future__ or six modules, PyCharm now offers to enable the “Code compatibility inspection”. If you turn on this inspection, PyCharm enables it for latest Python 2.7 and Python 3.5 by default. To modify the inspection options you can go to Settings | Editor | Inspections and find “Code compatibility inspection” in the list of Python inspections:

inspection

From this point PyCharm will check the code compatibility against two or more Python versions specified.

Improved attach to process

The debugger’s attach to process feature got a small but useful improvement. We slightly changed its UI and added the “Recent” section for recently attached processes. To attach the PyCharm’s debugger to an already-running python process, go to Run | Attach to Local Process:

attach

That’s all about new features in this build. You’re welcome to refer to the detailed release notes for more information on changes in PyCharm 5.1 Beta comparing to the previous EAP.

Here’s a recap of what’s new coming in PyCharm 5.1:

Python-related improvements:

  • Docker Compose support
  • Docker container settings in run configurations
  • Tox support
  • Improved support for Django forms
  • Stepping filters in debugger
  • Stepping over yield from and await
  • Debugger performance improvements
  • Python 2 and Python 3 Compatible Type Hinting
  • Optional type hinting using run-time collected types
  • Python code compatibility inspection improvements
  • Devpi and Optional PyPI repositories support
  • Postfix Code Completion
  • Folding for Python code blocks, collection literals, and multi-line comments
  • Improved attach to process
  • Improved rendering of Markdown, LaTeX, and HTML cells in IPython Notebook files

Platform enhancements:

  • Local Terminal Improvements
  • Support for RTL languages (Arabic and Hebrew).
  • Easier merging with Git and other VCS thanks to the added by-word difference highlighting.
  • Two new actions to help you work with Git branches, available via the Branches popup (VCS | Git | Branches): Checkout with Rebase and Rename.
  • Git worktree support and updated look and feel of Git Log.
  • Improved speed-search in the show usages popup (Ctrl(Cmd)+Alt+7).
  • and more…

Web development improvements:

  • Better coding assistance for JavaScript, ECMAScript and TypeScript
  • Unused imports warning and сode folding for ES6 imports
  • Remote run and debug for Node.js apps
  • Css custom properties
  • Code assistance in tsconfig.json, .babelrc and .eslintrc
  • Inline rename for TypeScript
  • Debugging JS async code
  • Improved support for React, Angular 1.5 and 2
  • npm support improvements and Webpack support
  • and more…

For more details about the upcoming features please see the announcements of the previous EAP builds.

Stay tuned for a PyCharm 5.1 release announcement, follow us on twitter, and develop with pleasure!

JetBrains PyCharm Team

Posted in Cool Feature, Early Access Preview | 12 Comments