PyCharm

Changes in PyCharm 1.1 - 1.5


PyCharm 1.5 (June, 2011)

Ultimate Documentation Support

External Documentation

Open the documentation Web site for an element under the caret in your Web browser by pressing Shift-F1. PyCharm knows documentation sites for the Python standard library, Django and Google App Engine. And you can define URLs for
any other library.

Rendered Docstrings

The Quick Documentation Popup in PyCharm now renders the Epydoc or reStructuredText markup in your documentation strings, instead of displaying the docstrings as raw text.

Rendered Epydoc

Docstrings Equals Code

PyCharm highlights Epydoc and reStructuredText markup and provides code completion for tags and tag parameters.
It also checks that the names of the parameters match between the docstrings and the code, and updates the docstring automatically when a parameter is renamed.

Docstring Highlighting

Docstring Stub Generation

PyCharm can now automatically generate a docstring stub for a method, according to the format specified in Settings | Python Integrated Tools (either Epydoc or reStructuredText).
To generate the stub, press Alt-Enter on the method name, or simply type the opening """ and hit Enter or Space.

Docstring Stub

reStructuredText support

reStructuredText (.rst) is now a fully supported file type in PyCharm, with syntax highlighting and code completion.

rst Highlighting Completion

Django

Django Templates Debugging

PyCharm allows breakpoints inside Django templates now.
Stop your web application right where you need for a detailed code step through.

Django templates debugging

Database Support

In Django applications PyCharm will automatically recognize the databases referenced from your settings.py file and offer to configure data sources for them. Works for SQLite, MySQL and PostgreSQL database engines. Other related additions include:

  • Syntax highlighting and code completion while editing .sql files
  • Browsing the tables structure on your database server,
  • Running queries and viewing their results in SQL console.

General

Move Class/Function Refactoring

Simply press F6 on a class or a function to move it to another file, and IDE updates all imports as needed to keep the project code green.

Easier to Use Code Completion

Don't bother pressing Shift anymore: the improved code completion will understand you perfectly and quickly provide the matches you need.

Shift-less code completion

Directory & Images Diff

New Diff Tools added for comparing local directories and images.

Database Diff Tool


PyCharm 1.2 (March, 2011)

Django

Get the benefits of Django 1.3 such as class-based views. PyCharm understands the new approach and provides an appropriate quick-fix to update your code.

Django 1.3

'Create from usage' approach is extended for Django templates. Write a new template name when you need it and invoke intention action to create it instantly.

Create Django template from usage

Academic License

Use the fully-functional version of PyCharm for non-commercial purposes, including education and research, at a more affordable price.

Learn more and apply for Academic license.

i18n

Working on multilingual applications gets easier because now PyCharm understands the syntax of .po files and provides a highlighting for it.

.po files syntax

More advanced i18n features are coming in future versions.

Code Analysis

If you are targeting multiple Python versions or want to have a smooth migration to Python 3, PyCharm offers 'Python version compatibility inspection' and provides quick-fixes to automatically convert the code to compatible syntax.

.po files syntax

You can activate the inspection in IDE Settings and select the versions to check compatibility with up to Python 3.2.

IDE General

UI for Find/Replace inside the current file has been reworked.


PyCharm 1.1 (Jan, 2011)

Code Editor

Code even faster, with the new Code Completion Autopopup. No need to invoke it anymore: just type code as usual and choose from the list of options the IDE suggests to speed up.

The code completion suggestions have been made smarter in Django and Google App Engine code.

We've also added more intention and quick-fix actions so you can quickly modify and improve code. For example, 'add a forgotten self. qualifier' or 'join two if statements'.

Python Intention

New dark editor color schemes are now bundled: Twilight, Monokai and WarmNeon.

Color Schemes

Debugger

PyCharm 1.1 brings the following additions to the integrated debugger.

Remote debugging lets you connect to an application running on a remote host and debug it based on locally-stored source code.

Debug console allows executing any Python statements in the context of the process being debugged while stopped at a breakpoint.

New breakpoint types: use conditional breakpoints to stop only when a certain condition is met, or use exception breakpoints to stop only when an exception is raised.

Debug Console

Unit Testing

PyCharm now supports running doctests and nose tests in the integrated test runner UI. The latest version of the py.test framework is supported.

Test Runner

Save the results of any executed tests to a separate HTML or XML file. Works for all supported testing frameworks.

Test HTML

IDE General

You can now drag the editor window outside of the IDE frame.


You can set up "Remote Hosts" to be FTP, SFTP, etc. PyCharm can open projects from such remote location and autoupload files from the IDE once they are saved.


You can work with your issue tracker from the IDE.

Control "IDE Contexts" based on your current task. An IDE context includes open editor tabs, VCS changelist, active breakpoints, and the selected Run/Debug configuration.


Git support now includes a brand new Git log view, along with other major new features.

Git Log

Native GitHub integration: open projects right from the repository, or share your project as a new repository right from the IDE.

Check Out From

Open files and projects in PyCharm from the command line, either when PyCharm is not running or in an already running instance. This works on Linux and Mac OS X.

Command Line

Create JavaScript Libraries, and specify their usage scope, e.g. file or folder, to get more precise code completion for JavaScript code.

JavaScript Libraries