PyCharm 2016.3 Public Preview

Great news: Today we’ve released PyCharm 2016.3 Public Preview, marking the feature freeze for the next major release planned for this fall.

Everyone is very welcome to download and try its new features, bug fixes and other important improvements. As usual, we’re eager to hear your feedback on it in comments to this post or in our public issue tracker.

pycharm_splash2016_3_pp

The release of PyCharm 2016.3 Public Preview indicates that PyCharm 2016.3 has entered the Beta phase. It’s now feature complete and we won’t be adding any new features, but focusing on polishing the existing functionality.

Let’s take a closer look at what’s coming in PyCharm 2016.3:

Python 3.6 support

PyCharm 2016.3 will come with the following support for the latest Python 3.6:

PEP 526: Syntax for variable annotations: PyCharm now recognizes the new syntax and uses this meta information about types for type inference. Ultimately this positively affects code completion, inspections and error checking. Additionally we’ve added a special code intention (invoked with Alt+Enter) to automatically convert comment-based type hints to variable annotations syntax.

PEP 498: Formatted string literals: Basic support for f-strings recognizes their syntax and provides code completion inside them for replacement fields surrounded by curly braces. A special code intention (invoked with Alt+Enter on a code statement) automatically converts %-formatted strings and str.format() into formatted string literals:

f-strings-cropped

PEP 515: Underscores in numeric literals: This PEP extends Python’s syntax and number-from-string constructors so that underscores can be used as visual separators for digit grouping purposes in integral, floating-point and complex number literals.

PEP 525 and PEP 530: These 2 standards introduce asynchronous generators and comprehensions. PyCharm provides code inspections for them and uses them for type inference.

Additional support for new PEPs now includes code injections for annotations inside function type comments. That means PyCharm recognizes the syntax and provides highlighting for type hints specified in comments, checks them for errors, provides quick-fixes and monitors that all hints used are properly imported from the typing module. That makes it easier and safer to use type annotations in your code.

Django support

Dango support has been enhanced in many ways:

  • Django projects Run/Debug on a remote machine: With PyCharm 2016.3 you can create a new project setting it up for running and debugging on a remote machine without need of having any local interpreter on your development machine. All you need is to specify a remote interpreter on the Django project creation stage.djangovagrant
  • We’ve implemented code completion for Django forms in class-based views. PyCharm now understands the forms context in class-based views and shows forms-specific autocompletion and suggestions in the same way it’s done for function-based views.
  • Pycharm 2016.3 supports the new syntax for TEMPLATES first introduced in Django 1.8:
    • New projects are now created using the latest format
    • Template dirs and template app dirs are loaded in the way it works in Django 1.8 (from TEMPLATES)
    • Code completion is provided for all template dict keys, options and context_processors

Better handling of multi-line commands in Python console

console

Thanks to our active user Yuli Fiterman for his generous help and valuable code contributions, together we’ve fixed a bunch of bugs related to multi-line commands in Python console. IPython console got some improvements as well.

Enhanced Variable Explorer

The brand-new Simplified Variables View option is enabled by default and hides all dunder variables, instances of function, classobj and module under a separate group named “Special Variables” in the Variables Explorer. Additionally, if an IPython-powered interpreter is used in the debug mode, all the utility IPython variables are moved to this group as well:

variables

For variables with long values such as numpy arrays or pandas dataframes, you can notice the special new “View as…” hyperlink in the variables explorer. Click it to view a value in a separate popup viewer:

viewasarray

Docker Compose Integration

docker

On the Docker Compose integration side we’ve made a couple of neat improvements:

  • Now it’s possible to specify multiple Compose files when defining a Docker Compose-based python interpreter for your project to extend an entire Compose file. Previously you could only specify a directory or a specific Compose file in Docker Compose interpreter configuration. Now, in PyCharm 2016.3 you can specify a particular Compose file and extend it with additional overriding configurations.

Note: Using multiple Compose files enables you to customize a Compose application for different environments or different workflows.

  • Some Compose files can contain variables that are substituted with corresponding environment variables on docker-compose execution. PyCharm 2016.3 provides a convenient way to specify the environment variables right in the Docker Compose interpreter configuration dialog as shown on the screenshot above.

Venv Activation in Terminal

venv

The virtual environment associated with the current project you’re working on is now activated by default when opening PyCharm’s embedded terminal. Auto venv activation is supported for bash, zsh, fish or Windows CMD. You can specify or alter the shell of your preference in Settings (Preferences) | Tools | Terminal.

Branch coverage support

coverage

With PyCharm 2016.3 we bring you improved code coverage tool integration. We’ve added a new “Branch coverage” option, which is disabled by default, but can be easily enabled in Settings (Preferences) | Build, Execution, Deployment | Coverage | Python coverage. When this option is enabled, PyCharm adds additional information to pure line coverage reports, marking the coverage of lines with conditional statements as incomplete in case one or more branches haven’t been executed.

Line profiling with vmprof

lineprofiler

We’ve implemented integration with VMprof in PyCharm 2016.2. With this new release we take another step forward towards productive profiling, with support for the “profile lines” option available for VMprof. This option is enabled by default when you run your project in the profiling mode. Once statistics is gathered, apart from just seeing the standard profiler report, call graph and call tree, you can also see the line profiling results right in the editor in the left gutter. Lines consuming more processor time are marked in red. To use this functionality, you just need to install the vmprof package on your interpreter with the package manager.

Version Control Improvements

  • Undo commit and delete/restore tracked branch actions
  • Sign-off commits and file scope highlighting
  • Enhanced Log for Git & Mercurial
  • Auto resolve for versioning conflicts
  • Managing Git remotes
  • and more

Platform and UI changes

  • Improved find in path dialog
  • New flat file icons
  • Font improvements including the new default San Francisco font for Mac OS

Web-related improvements in PyCharm 2016.3 Public Preview include:

  • Smarter Rename for TypeScript
  • Angular CLI
  • Grouped files in Project view
  • Destructuring assignments for ECMAScript 6
  • Integration with Flow
  • Using Docker with Node.js apps
  • Enhanced coding assistance for Angular 2
  • New React projects with Create React App
  • TypeScript support improvements

PyCharm incorporates most of the new functionality of the upcoming WebStorm 2016.3. Feel free to learn more about what’s coming from WebStorm 2016.3.

Database tool improvements

In PyCharm 2016.3 Public Preview you can find various Database tool enhancements, which come from DataGrip, the JetBrains database IDE. PyCharm incorporates all the new features of DataGrip:

  • Database Driver management
  • Edit several fields at once in the Table Editor
  • Bulk submit changes
  • Renaming views
  • XML extractor
  • and more

To download the preview build (available in both PyCharm editions) for your platform, go to our EAP page. As always, your feedback is very appreciated in our issue tracker!

Your PyCharm Team
The Drive to Develop

Posted in Early Access Preview | 14 Comments

Announcing the PyCharm Edu 3.0.1 release update

Today we bring you PyCharm Edu 3.0.1, an updated version of our free, easy and professional tool for learning programming with Python.

Download PyCharm Edu 3.0.1 for your platform today!

PyCharm Edu 3.0.1 is a small bug-update release that includes some minor fixes for recently added functionality and latest platform improvements as well as a fix for a problem with login to Stepik.

Let’s take a look at what was new in PyCharm Edu 3:

  • Brand-new experimental adaptive Python course
  • Hyperlinks in task descriptions
  • Course preview within the course creation mode
  • Running and debugging custom tests
  • Automatic course dependencies
  • Multiple hints for subtasks
  • Python version compatibility information
  • Enhanced course view in the course creation mode
  • And more

Please see the What’s new page for more details.

If you haven’t checked out PyСharm Edu before, find out how it helps novice programmers with little or no previous programming experience to learn programming with Python easily and effectively.

As an instructor, you can use PyCharm Edu 3 to create, modify and distribute your own courses. Read more on how to create your own course or, for a quick visual overview, watch this video:

We encourage you to download PyCharm Edu 3.0.1 for your platform and start learning (or teaching) Python programming today!

If you already have a previous version of PyCharm Edu 3 installed on your machine, you can update it with a patch: just go to Help | Check for Update.

Other cool things you can do:

  • Spread the word about this tool
  • Follow us on twitter
  • Report bugs or request new features in our public issue tracker
  • If you ever need help, you’re always welcome to contact our professional support team
  • Read our blog to stay tuned for news, updates and everything that goes on with PyCharm and PyCharm Edu. And do give us feedback on how we’re doing!

JetBrains PyCharm Team
The Drive To Develop!

Posted in Release Announcements | Leave a comment

PyCharm 2016.3 EAP 4 (build 163.6512)

Today we continue the weekly delivery of PyCharm 2016.3 preview builds with the PyCharm 2016.2 EAP build 163.6512.

Download and try it today!

Comparing to the previous EAP build, this one mostly consolidates fixes and improvements for recently added features. The most notable usability improvement in this EAP build is the Simplified Variables View option for the variable explorer:

variables

The “Simplified Variables View” option is enabled by default and hides all dunder variables, instances of function, classobj and module under a separate group named “Special Variables”. Additionally, if an IPython-powered interpreter is used in the debug mode, all the utility IPython variables are moved to this group as well. Should you want to disable this behaviour, you can turn off the option in tool window settings (the blue gear icon on the screenshot).

The list of all bug fixes and improvements for this build can be found in the Release Notes.

We encourage you to give PyCharm 2016.3 EAP 163.6512 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 from the last PyCharm 2016.3 EAP build 163.6110 or download the full installer for your platform. Please report any bugs and feature request to our issue tracker.

-PyCharm team

Posted in Early Access Preview | 1 Comment

Django/PyCharm promotion results and future partnership

We’re happy to announce the results of the Django/PyСharm fundraising campaign we ran this summer. Overall the campaign was a huge success. Together we raised a total of $50,000 USD for the Django Software Foundation!

All money raised will go towards Django outreach and diversity programs: Django Girls workshops, the Django Fellowship program, sponsoring official Django conferences, and others. Additionally, a portion of money will be used to fund the support for type hints in a future release of Django, which is the next step of our partnership:

pepThe type hinting standards, first introduced in Python 3.5, are already quite stable, with only a few amendments over the last year. With this work, which is starting soon, the DSF will be funding Django core developers and other community members to help with bringing type hints into future versions of Django.

There’s no exact timeline for the project yet, but keep an eye on the django-developers mailing list and the Django blog for updates as work progresses.

 

The DSF general fundraising campaign is still on-going, and we encourage everyone to contribute to the Django success by donating to DSF.

If you have any questions, get in touch with us at fundraising@djangoproject.com or JetBrains at pycharm-support@jetbrains.com.

Posted in Sales and Promotions | 1 Comment

PyCharm 2016.3 EAP 3 (build 163.6110.26)

Weekly previews of PyCharm 2016.3 continue with the third PyCharm 2016.3 EAP build number 163.6110.26. Download and try it today.

Let’s take a look at what’s new in this build:

Code completion for Django forms in class-based views

This build brings enhanced support for Django forms. PyCharm now understands the forms context in class-based views and shows forms-specific autocompletion and suggestions:

class-based-views

Better handling of multi-line commands in Python console

Thanks to our user Yuli Fiterman for his generous help and valuable code contributions, together we’ve fixed a bunch of bugs related to multi-line commands in Python console:

console

Please check the improved Python console and let us know what else should be improved, by submitting bugs and feature requests to our public issue tracker.

Various Improvements for Python 3.6 support

As a recap, in previous EAP builds we added support for:

  • PEP 526: Syntax for Variable Annotations
  • PEP 498: Formatted String Literals
  • PEP 515: Underscores in Numeric Literals
  • PEP 525: Asynchronous Generators
  • PEP 530: Asynchronous Comprehensions

In this build we have refined the support for these new standards and also improved code insight and compatibility checks.

Database tool improvements

In this build you can find various Database tool enhancements, which come from DataGrip, the JetBrains database IDE. PyCharm incorporates all the new features of DataGrip:

  • Database Driver management
  • Bulk submit changes
  • Renaming views
  • XML extractor
  • SQLite support improvements
  • and more

Web development improvements

Many web-related improvements come from the IntelliJ platform and WebStorm:

  • Destructuring assignments for ECMAScript 6
  • Enhanced coding assistance for Angular 2
  • New React projects with Create React App
  • Integration with Stylelint
  • TypeScript support improvements
  • and more

The full list of changes from the previous EAP build is available in the Release notes.

Please take PyCharm 2016.3 EAP build 163.6110.26 for a spin! Should you encounter any problems, please report them to our public tracker.

You can download the build or use the patch-based upgrade to upgrade from within the IDE (from the previous PyCharm 2016.3 EAP 163.5644.6 build only) without a full re-installation. Just make sure you’ve selected the EAP channel in update settings.

Read about the features and improvements added in previous PyCharm 2016.3 EAP builds:

  • PyCharm 2016.3 EAP 2 (build 163.5644.6): PEP 525: Asynchronous generators, PEP 530: Asynchronous comprehensions
  • PyCharm 2016.3 EAP 1 (build 163.5219.9): Initial Support for Python 3.6 and various platform features

PyCharm Team
The Drive to Develop

Posted in Early Access Preview | Leave a comment

PyCharm 2016.3 EAP 2 (build 163.5644.6)

Today we announced PyCharm 2016.3 EAP build 163.5644.6.

Please download and try it today!

Some highlights of the PyCharm 2016.3 EAP build 163.5644.6 are:

  • Support for PEP 525: Asynchronous generators
  • Support for PEP 530: Asynchronous comprehensions
  • Various bug fixes

The list of numerous bug fixes and improvements for this build can be found in the Release Notes.

We encourage you to give PyCharm 2016.3 EAP163.5644.6 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 from the previous PyCharm 2016.3 EAP build or download the full installer for your platform. Please report any bugs and feature request to our issue tracker.

-PyCharm team

Posted in Early Access Preview | 1 Comment

PyCharm 2016.3 EAP is Available with Initial Support for Python 3.6

Great news: a couple of weeks ago Python 3.6.0 beta 1 was released, marking the end of the feature development phase for Python 3.6. And today we give you the first PyCharm 2016.3 Early Access Preview build which includes initial support for Python 3.6.

Head on over to the PyCharm Early Access Preview (EAP) page and have a look at the download section where you can get it for your platform right now.

pycharm_splash2016_3_eap-01

PyCharm 2016.3 EAP introduces new features and bug-fixes that are unique to PyCharm, as well as a lot of improvements from the Web and IntelliJ Platform sides. Talking about Python-related improvements, the new features in this first preview build are mostly concentrated around initial support for Python 3.6, not to mention many bug fixes in various subsystems.

Support for PEP 526: Syntax for variable annotations
PyCharm 2016.3 EAP brings support for the new PEP 526 Python 3.6 standard, which introduces the syntax for type annotations of variables including class variables and instance variables. That means PyCharm now recognizes the new syntax and uses this meta information about types for type inference. Ultimately this positively affects code completion, inspections and error checking:

variable-annotations4-cropped

Support for PEP 498: Formatted string literals

Per the description of the standard, formatted string literals are a new kind of string literals, prefixed with ‘f’. They are similar to the format strings accepted by str.format(). They contain replacement fields surrounded by curly braces. Replacement fields are expressions that are evaluated at run-time and then formatted using the format() protocol. PyCharm so far provides basic support for f-strings, recognizing their syntax and providing code completion inside them:

f-strings-cropped

There are still many things we need to do in order to provide full support for f-strings and type annotations to leverage them for better development experience. There are also many other new language features and standards which will likely change before the final release of Python 3.6. We’re going to consider and implement these changes during the PyCharm 2016.3 Early Access Program.

We’ve added a few more Python-specific features:

  • Support for PEP 515: Underscores in numeric literals
  • Type checking of the inferred type of a function against the type specified in the type hint
  • Tab code completion in IPython console

PyCharm 2016.3 EAP also includes all of the recent IntelliJ Platform improvements:

  • Improved Version Control integration with new undo commit and delete/restore tracked branch actions, sign-off commits and file scope highlighting
  • Improved Database Tools: database drivers auto-updates, improved table editor, external dump tools integration, improved SQL code completion and inspections, and many others
  • Improved find in path dialog
  • Font improvements including the new default San Francisco font for Mac OS X

Web-related improvements in PyCharm 2016.3 EAP include:

  • Integration with Flow
  • PostCSS support
  • Using Docker with Node.js apps
  • Smarter Rename for TypeScript
  • Angular CLI
  • Grouped files in Project view
  • Generate .editorconfig
  • Spaces around arrow functions
  • And more

We encourage you to give PyCharm 2016.3 EAP a spin and try the latest features ahead of the official release. After downloading the latest EAP build you’ll start getting weekly updates with new features and improvements. (To be notified of updates, make sure to select “Early Access Program” in your update settings.) Your feature requests and bug reports are welcome and much appreciated in our issue tracker. We also look forward to your feedback in the comments to this blog post.

Your PyCharm Team
The Drive to Develop

Posted in Early Access Preview | 3 Comments

Productive Python with PyCharm tutorial materials from PyCon India 2016

logolg

September 23th – 25th, the JetBrains PyCharm Team will be in New Delhi, India for PyCon India 2016. As an important part of our participation, we’re going to conduct a 3-hours Productive Coding with PyCharm workshop on Friday and give a “Polyglot Python with PyCharm” talk on Saturday.

Good news, everyone can take advantage of this workshop, as we have all the materials publicly available. The tutorial is broken down into separate sections each of them represented by a number of steps and tasks. It’s perfectly suitable for self-studying as most of the sections have accompanying videos explaining the most important concepts and the code samples available on GitHub, so you can go to any section/step just checking out the code required. The tutorial writeup details the work to do, followed by an analysis section, and an extra credit section.

The tutorial is intended for developers with no previous PyCharm experience so the materials in the tutorial are pretty basic. We encourage you to check it out and recommend it to your friends and colleagues who’re interested in starting Python development with PyCharm. Your suggestions and comments are very welcome in the comment section of this blog post.

For those of you who’re going to visit PyCon India 2016, we invite you to stop by our booth with your questions and chat about your experiences with PyCharm and other JetBrains tools. We will be raffling PyCharm licenses so be sure to register and grab some of our cool giveaways!

Your PyCharm team
The Drive to Develop

Posted in Conferences & Events | Leave a comment

Announcing PyCharm 2016.2.3

PyCharm 2016.2.3 has been uploaded and is now available from the download page. It also will be available soon as a patch update from the previous 2016.2.2 and 2016.2.3 RC versions.

The Release Notes lists all fixes for this update. Some notable highlights of this update include:

  • Important fixes for Docker Compose support
  • Fixes for project interpreter settings problems
  • A fix for the hanging “Reloading generated skeletons” background task
  • A fix for a performance problem with one CPU core running at 100%
  • A fix for the integrated Python profiler

Download PyСharm 2016.2.3 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 | 8 Comments

PyCharm 2016.2.3 RC is Available

Today we announce the PyCharm 2016.2.3 Release Candidate build #162.1967. The list of bug fixes and improvements for this build can be found in the release notes.

Some highlights of the PyCharm 2016.2.3 RC are:

  • Important fixes for Docker Compose support
  • Fixes for project interpreter settings problems
  • A fix for the hanging “Reloading generated skeletons” background task
  • A fix for a performance problem with one CPU core running at 100%
  • and much more

Please give PyCharm 2016.2.3 RC a try before its official release and please report any bugs and feature request to our issue tracker.

Posted in Early Access Preview | 1 Comment