PyCharm 2.7.2 released

At last, the final version of the new bugfix update of PyCharm, version 2.7.2, has been released. Since we’ve upgraded to a newer version of the IntelliJ Platform (the same one as in IntelliJ IDEA 12.1.1), the full release notes for this update are rather long.

Just to remind you, some of the highlights are:

  • Bundled File Watchers plugin for automatic transpilation support of languages such as CoffeeScript/TypeScript, SASS/LESS and many others;
  • Support for Emmet, a new version of Zen Coding, an advanced system for abbreviated typing in HTML and CSS code;
  • Display of the current line separator for a file in the status bar and the possibility to change it for a single file or for multiple files in the project;
  • Possibility to tell PyCharm not to add the source and/or content roots of a project to PYTHONPATH;
  • Support for using the PyCharm console and “Run manage.py task” actions with remote interpreters.

The new build is available for download on our Web site, as well as for patch-based upgrade if you’re currently running version 2.7.1 or 2.7.2 RC2.

Posted in Release Announcements | 11 Comments

PyCharm 2.7.2 RC2

Since the release of PyCharm 2.7.2 RC, while waiting for a couple of important fixes blocking the final 2.7.2 release, we’ve fixed so much other stuff that we decided to publish another Release Candidate – PyCharm 2.7.2 RC2. The build is now available for download on the EAP page and as IDE update. You can also check out the full release notes for the new build.

As usual, your feedback is so much appreciated in YouTrack.


Earth Day Sale is ongoing

In the spirit of Earth Day, Get up to 50% OFF JetBrains Tools for personal use and support a good cause. Every personal license bought between April 15th and 22nd helps the environment by saving the endangered Atlantic Forest of Brazil.

Think fast! It’s a limited-time offer that you don’t want to miss!

Develop with Pleasure!
PyCharm team

Posted in Early Access Preview, Sales and Promotions | Leave a comment

PyCharm 2.7.2 Release Candidate

Today we’ve released another preview build for PyCharm 2.7.2, and this time we believe it’s good enough to be called Release Candidate. Along with a bunch of Python specific fixes, the new build bring along a number of platform goodies such as the possibility to display the current line separators for a file and to change them in the editor status bar. This build also fixes a noteworthy regression in 129.19 which prevented refactorings and Find Usages from working correctly if the file in question was part of the Python interpreter paths.

The new build is available for download on the EAP page. Unfortunately patch-based upgrade from the previous EAP build is not available; you’ll need to download the complete installer if you’re currently running the build 129.19.

As usual, your feedback is welcome in YouTrack.

Posted in Early Access Preview | 8 Comments

Check out the PyCharm 3.0 roadmap

Wow! What a whirlwind the past couple weeks have been! We got back from PyCon 2013 which was conducted in Santa Clara in the middle of March. The conference was so awesome, people so amazing! We are so privileged to be a part of the community that is setting a standard every day in the Python programming world. We were able to talk to hundreds of people, answer their questions about our company, products, PyCharm itself and collect their valuable feedback. We had a booth in expo hall, participated in development sprints and made the lightning talk about PyCharm key features as well. That was awesome experience indeed!

Although being busy on the main conference and development sprints days, we have not stopped fixing bugs for released version of PyCharm and implementing new features to the our next very major release of PyCharm 3.0.

So, now we a very excited to announce the PyCharm 3.0 Roadmap. The suggested theme for the release is “Intelligence for third-party libraries”. We are really hope you will enjoy these new features are going to be implemented in PyCharm 3.0. As usual, your feedback on them is so much appreciated.

We’d like to thank you all for being with us!
Stay tuned for further updates! And do not forget to:
Develop with Pleasure! :-)

Sincerely yours PyCharm team:

P.S. This photo was made in our Jetbrains Saint-Petersburg office. From left to right: Dmitry Trofimov, Yulia Zozulya, Dmitry Filippov, Andrey Vlasovskikh, Dmitry Jemerov, Ekaterina Tuzova.

Posted in Conferences & Events | 28 Comments

PyCharm 2.7.2 EAP

Today we’re released an Early Access Preview of PyCharm 2.7.2, the next minor update for PyCharm. Despite the small increase in version number, there’s actually a ton of stuff that has changed internally, thanks to the upgrade to a newer version of the underlying IntelliJ Platform.

The main things that you can enjoy in the new build is support for Emmet (a new version of Zen Coding, a powerful abbreviation system for HTML/CSS developers) and File Watchers (a tool for automatic background compilation of CoffeeScript, SASS and other Web languages).

One Python-specific change worth noting is that it’s now possible to specify in the run configuration settings whether you want PyCharm to include the content roots and/or source roots of your project into PYTHONPATH. Previously PyCharm tried to apply heuristics (which changed between versions) to detect if this was needed, which led to much confusion and projects broken by PyCharm upgrades. Now this behavior is under your control.

The new build of PyCharm is already available at the EAP page, and the in-IDE update is going to be available in a short while. Note that we’re not providing detailed release notes for this build; we’ll have the full list of changes ready by the time of the final 2.7.2 release.

Please give the new build a try, and as usual – if you run into any issues, please report them to YouTrack, so that we can fix them before the final 2.7.2 release.

Posted in Uncategorized | 2 Comments

How PyCharm helps you with remote development

Have you ever wanted to develop a Python or Web application for Linux from your laptop running Windows 7 or MAC OS X? To debug or test your application on different operating systems without ever leaving the IDE? Or just to run large applications that you develop as a team on a dedicated provisioned environment, rather than on regular workstations? Guess what: all of this is possible with the remote development features already available in PyCharm.

The central entry point to remote development with PyCharm is the notion of Remote Interpreters.

You can configure PyCharm to use Python interpreter from a remote host and set it as your project interpreter. Then you can configure your run/debug configurations to run, debug or test your applications on the remote host. The remote host can be a physical remote server, a VM or even a virtualenv environment – it doesn’t matter. PyCharm has everything you need to work with all types of remote hosts.

Actually, most of the Remote Development stuff was already available in previous versions of PyCharm and covered in these nice tutorials. But we never stop working on improving your comfort and user experience, so PyCharm 2.7 gets new additional features.

Vagrant integration

Native Vagrant integration is now implemented in PyCharm 2.7+. It is supported via the plugin Vagrant that comes already bundled with PyCharm. Vagrant integration makes it much easier to provision and manage your VMs, connect to them over the SSH and automatically configure a remote interpreter and an FTP deployment, if you run your development environment in a VM using Vagrant. All this without leaving the IDE!

Before you start working with Vagrant, make sure that the Vagrant plugin is enabled (this is the default). Also make sure that Oracle VirtualBox and Vagrant are installed on your machine.

First, open Settings | Project Settings | Vagrant:

Enter appropriate paths for “Vagrant executable” and “Instance folder,” and then add your first Vagrant Box by clicking the Add (green plus) button:

Here, choose a name for your new Vagrant box and provide the Box URL for downloading the template. Click OK to start downloading your VM.

Good! Now, after this step we have VM downloaded and added to our environment:

Next, open Tools | Vagrant. You will see the Vagrant menu node containing different commands, which correspond to the standard Vagrant actions:

First you need to initialize a Vagrantfile for your project. Select “Init in Project Root” in the menu to automatically create the Vagrantfile, and you will be able to see and modify it like any other file within your project.

Now you can start your first VM! To do so, select Tools | Vagrant | Up.
On the bottom of the screen a special console will open showing you the progress and output from Vagrant:

To be able to run your project on the VM or to connect to the VM, you need to configure the remote interpreter.

This is done through Settings | Project Settings | Project Interpreter | Python Interpreters. Click the Add button and select “Remote interpreter.” Here you will get the “Configure Remote Python Interpreter” dialog:

You can fill it manually, as for an arbitrary remote host, or just use “Fill from Vagrant config.” Click it – and voila! All the required fields are filled with your Vagrant box details.

After this step the remote interpreter will be added to your project. You can set it as the default project interpreter as well.

From this point on you can execute your project using the remote interpreter on the VM:

The Vagrant plugin works gracefully with the Vagrantfile. You can manually edit it, and all you need is just to click Tools | Vagrant | Reload for the Vagrant plugin to pick up new settings.

For example you can set up custom path mappings in Vagrantfile:

After the Vagrant Box is reloaded, a mapping will be created and you will see a new shared folder into your project folder.

Integrated SSH console

One of the coolest and most useful features is that you can log in to your remote host via SSH and work in its console without leaving PyCharm. To do that, just select Tools | Run SSH Terminal. A console opens on the bottom with the prompt:

Feel free to discover its usability. You can even launch Vim in it:

As you can see, PyCharm comes with everything but the kitchen sink! So we really hope you’ll enjoy these new enhancements and feel comfortable developing your applications on remote environments. And as always, please report your issues or feature requests to our YouTrack bug-tracker.

Develop with Pleasure!
PyCharm team

Posted in Cool Feature | 15 Comments

Meet the PyCharm team at PyCon 2013!

Recently we came back from PyCon Russia 2013. What a nice conference it was. One of our developers, Andrey Vlasovskikh, gave an exciting talk about static analysis in Python code. People really liked the report and asked us a lot of specific questions. Many were really surprised about how fast and intelligent static analysis is in PyCharm. So we were very happy to get a lot of thanks and positive feedback from our users and even from those who haven’t tried PyCharm. We also raffled off several free PyCharm licenses to happy winners.

Now we’re going to PyCon 2013 which takes place in Santa Clara, California, March 13-21.

We will have a booth in the Expo Hall, so don’t miss this great opportunity to see PyCharm in action with its latest and greatest, all singing, all dancing features. Join us to learn some tips and tricks for productive development with Python, and meet our Technical Evangelist John Lindquist, Paul McCabe and members of the PyCharm development team: Dmitry JemerovDmitry Filippov and Andrey Vlasovskikh. We will definitely answer all of your questions! Expect some surprises from the Team as well ;)

See you soon at PyCon 2013!

Develop with Pleasure!
PyCharm team

Posted in Conferences & Events | Leave a comment

PyCharm 2.7.1 and IntelliJ IDEA Python plugin updates are available

Today we’ve published PyCharm 2.7.1 update!
We’re continuously working on improving the quality and your user experience with PyCharm, thereby PyCharm 2.7.1 includes a number of essential fixes. The most noticeable areas containing them are: code insight and inspections, editing and refactoring features, debugger and a number of fixes on VCS as well. Note that now PyCharm works correctly with PyPI, which has transferred to https recently.

We know that most of you have been looking for IntelliJ IDEA Python plugin update, because we received a lot of questions about that. Fortunately, it is available now and can be used  with latest IntelliJ IDEA 12.1 EAP. This updated plugin contains the functionality comparable with PyCharm 2.7.1.

Check out the release notes for a full list of fixes.
You can download the new build from the website or use “Check for updates” feature to update your current version from the IDE.

Stay tuned for further updates, and if you encounter some problems with this new update, please report them to YouTrack!

Develop with Pleasure!
PyCharm team

Posted in Release Announcements | 8 Comments

Long-awaited PEP 8 checks on the fly, improved doctest support and more in PyCharm 2.7

PyCharm integration with PEP 8

It is not a secret that readability is one of the key features of Python. Indeed, a high level of readability is at the heart of Python’s design, following the recognized fact that code is read much more often than it is written. Developers always need to share their code, so it is very important for that code to be easily understood by others. And here come different coding style guides and standards. One of them, PEP 8, is the de facto coding style guide for Python.

PyCharm 2.7 takes care of readability and general beauty of your code. Now it supports continuous checking of your code for PEP 8 compliance on the fly, as you type it in the editor. PyCharm highlights any coding style violations and gives you suggestions, which you can apply instantly with the well known PyCharm quick-fixes:

Following PEP 8 is a good practice, although there are some situations where it is desirable to depart from the standard. The PyCharm team respects your freedom of choice, so you can disable specific PEP 8  warnings if you really need to. You can do that with the following quick-fix:

 

Or you can completely manage your inspections profile with Settings | Project Settings | Inspections:

Automatic imports optimization in PyCharm

Whenever you remove usages, it’s easy to forget to remove the corresponding imports. Now, in addition to standard PEP 8 checks, PyCharm is capable of optimizing imports. You no longer have to stop what you are doing, scroll to the top of the file, find the unused imports, and remove them manually.

This feature formats the existing import statements, reordering them according to PEP 8, and removes unused ones as well. All you need to do is press Ctrl+Alt+O or go to Code|Optimize imports…

 

 

 


PyCharm recognizes Python code in your doctests

There is a nice standard library module called doctests which lets you document your code and write tests for it simultaneously. Now PyCharm recognizes Python code in your doctests, and provides syntax highlighting and even code insight for it:


It correctly recognizes code in doctests even though it has different context. For example, when performing Optimize imports, PyCharm takes care not to remove imports in doctests in case they are required.

New general editing features in PyCharm

PyCharm 2.7 also includes two minor but neat features:

  • Edit | Fill Paragraph allows you to reflow the current string literal, comment or paragraph in a plain text file, so that lines wrap around and don’t exceed the right margin
  • Shadowing built-ins is a new inspection that highlights definitions of names that match the names of Python built-in functions:

Unwrap/Remove editing action in PyCharm

Now PyCharm supports the Unwrap/Remove action for Python, which provides a quick way to remove a control statement surrounding a block of code. To unwrap or remove a statement, place the caret on the expression and press Ctrl+Shift+Delete or go to Code | Unwrap/Remove.

PyCharm shows a pop-up window with all actions that are available in the current context:

 

We’ve also introduced several refactorings and code insight features that you may find interesting. See the What’s new page or these blog posts for more detailed descriptions: Refactoring enhancements in PyCharm 2.7 and Dynamic runtime type inference in PyCharm 2.7.

Develop with Pleasure!
PyCharm team

Posted in Cool Feature | 2 Comments

Refactoring enhancements in PyCharm 2.7

PyCharm 2.7 now supports the following new refactoring features:

  • Extract Parameter
  • Extract on substrings
  • Create Parameter quick-fix on unresolved reference
  • Change Method Signature

The Extract Parameter refactoring allows you to add a new parameter to a function declaration and update the function calls in your project. Use it to put the result of the selected expression into the function argument list.

This feature is available to be performed “in-place” by default, or through a dialog.
To perform “in-place” refactoring, highlight an expression or place the caret on it and press Ctrl+Alt+P:

Before

After

Note: For more details, please see “Extract Parameter” in Help.

As shown in the example above, now PyCharm is capable of performing the extract refactorings on substrings. Now it is possible to use all the extract refactorings, such as extract constant/field/variable/parameter and other, on substrings.  This is supported for:
• parts of strings with no formatting.
• parts of strings with concatenation via “+”.
• parts of strings with “%” - old-style formatting , including “%()”.
• parts of strings with “str.format()” – new-style formatting, including replacement fields.

Here is an example of the extract variable on a substring with the new-style formatting:

In case of an unresolved symbol, you can easily apply the Create Parameter quick-fix for that, making it a parameter of the function.

Before:

After:
Note: For more information on quick-fixes, please refer to “Resolving Problems” in Help.

 

 

With Change Method Signature you are able to refactor a signature of the selected method and update its calls in your project.

To try it, in the editor place the caret on a function name and press Ctrl+F6.
Alternatively, select Refactor > Change Signature from the main menu to open the same dialog:

With this dialog you can:
• Change the function name.
• Add new parameters and remove the existing ones. Note that you can also add a parameter using the dedicated Extract Parameter refactoring.
• Reorder parameters.
• Change parameter names.

After applying changes, a new code will be generated with the new signature propagated through the method call hierarchy:

We hope these new refactoring features will improve your user experience with PyCharm.

Develop with pleasure!
JetBrains PyCharm Team

Posted in Cool Feature | 4 Comments