PyCharm 4.5 EAP build 141.988: Introducing Python Profiler

Today we’re glad to let you know that the third PyCharm 4.5 EAP build 141.988 is ready for your evaluation. Please download it from our EAP page.

Just as always, this EAP build can be used for 30 days after its release date and it doesn’t require any license.

Comparing to the previous EAP builds, this one mostly includes a consolidation of fixes for various bugs and problems, and improvements for recently added features. Among them are various IPython Notebook integration fixes and fixes for the python formatter. For the detailed list of notable changes and improvements, please check the Release Notes.

The most notable brand-new feature in this build is the Python Profiler Integration which is available right away from the toolbar or Run | Profile…:


This special profiler configuration starts your application with your current run/debug configuration and attaches the python profiler to it. If you have a yappi profiler installed on your interpreter, it starts with it by default, otherwise it uses the standard cProfile profiler as shown on the screenshot above.
By clicking the Capture Snapshot icon on the profiler console you can get the detailed statistics on functions within your code and view the call graph as well as navigate to the function definition:


Another notable new feature in this build is “Step into my code” which is available from the debugger:


This feature helps you avoid stepping through library sources and lets you stay focused on your own code.

Please take PyCharm 4.5 EAP build 141.988 for a spin! We hope that there will be no major issues, however, 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 previous PyCharm 4.5 EAP builds only) without a full re-installation. Just make sure you’ve selected the EAP channel in update settings.

Stay tuned for PyCharm 4.5 release announcements, follow us on twitter, and develop with pleasure!

-PyCharm team

Posted in Early Access Preview | 16 Comments

Announcing the PyCharm 4.5 EAP build 141.832

Having announced the first Early Access Preview build of PyCharm 4.5 a couple of weeks ago, today we’re eager to let you know that the second PyCharm 4.5 EAP build 141.832 is ready for your evaluation. Please download it for your platform from our EAP page.

Just as always, this EAP build can be used for 30 days starting from its release date and it does not require any license.

This build introduces the brand-new and significantly reworked tool for Django projects with a new user interface, autocompletion for tasks and their arguments:


The console preserves the command history so you can easily fetch previous commands just by hitting up/down arrows. Quick documentation for commands is also supported. Put a caret to any command and hit Ctrl+Q for the quick reference or external documentation:


The IPython Notebook integration has been significantly improved with the new IPython Notebook console and numerous bug fixes:


The other notable improvements in this EAP build are:

  • a fix for matplotlib interactive mode in the debug console
  • a number of fixes for a Python formatter
  • general fixes for the editor and code insight
  • a fix for preventing of indexing .tox folder

That’s not all as this build has many other improvements and bug fixes – for example, improved Django 1.8 code insight and Behave’s default parse mode for step parameters. So we urge you to check the fixed issues and compare this build to the previous one!

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

Develop with Pleasure!
-PyCharm team

Posted in Early Access Preview | 5 Comments

Meet the winners of the Best Interactive Programming Course Contest

A couple of months ago the Best Interactive Programming Course Contest organized by JetBrains came to a close. The courses that were produced as part of this contest will surely help thousands of students around the world learn Python using our free, modern and professional tool — PyCharm Educational Edition.


Dmitry Filippov seized the opportunity and interviewed the contest winners: John Zurawski, the author of “Logging in Python” (1st place) and Lisa Chung, who contributed “Introduction to Classic Ciphers” (2nd place). Read on to learn more about them, their experience participating in the contest, their interactive courses and PyCharm Educational Edition.

— Hi John and Lisa, could you tell us a bit about yourself and your day jobs?
John: I am a professional software developer using Python. I also volunteer as a co-organizer of the DFW Pythoneers, a Python user group for the Dallas/Fort-Worth metroplex.
Lisa: I’m a software developer for The Motley Fool (Washington, DC). At the moment, my team’s building a tool for managing APIs.

— What was your motivation for creating a course for the contest?
John: I know a lot of people new to programming in general are coming to Python because it’s easy to learn and has a rich ecosystem of open source libraries. In many cases these developers are more focused on solving their problems, so are not always familiar with the techniques professional software developers use to debug their programs. I felt it was important to show them better solutions exist and take almost no additional effort.
Lisa: I’m interested in coaching others to become coders. Many are capable of coding, but getting started is the hard part. Tools like PyCharm Educational Edition can be a big help for those newcomers.


— Tell us about the courses you’ve created. What are they all about and how will they help students learn something new?
John: I created a course about the Python logging module. I am passionate about logging, because it has helped me solve many complex problems over the years. I felt if I could introduce this topic to people new to programming as an important debugging tool. I thought the interactive approach offered by PyCharm Educational, would allow them to see the benefits of using the logging module very quickly, and hopefully see the value in investing the time to learn more.

Lisa: “Introduction to Classic Ciphers” is a very brief overview of the null, Caesar, and Atbash ciphers. These are three of the more accessible classical ciphers. What makes it a python course is that we work on python implementations of the encipher and decipher algorithms of each cipher. The course also forces you to read chunks of code written by someone else (me). I think it’s important to practice reading and debugging code written by others. For me, it’s a good measure of how well I understand a programming language.


— In your opinion, how well does an interactive approach to learning work when combined with professional tools like PyCharm?
John: I feel the benefit of a professional tool like PyCharm is the effort to get started is very low compared to alternatives. Having everything in one cross-platform solution eliminates a lot of frustration with getting the environment set up and working, for both educators and students.
Lisa: I’m a fan, especially when it’s paired with a professional tool such as PyCharm, which I myself use. Coders of all levels can use PyCharm to write their code; newcomers and professionals both benefit from this. For newcomers, it certainly removes one hurdle of transitioning into a professional coder. Professional coders benefit because the tool is less likely to grow bloated.


— How much time did you spend creating your amazing courses?
John: I spent about one entire weekend and several evenings working on the course. The first 80% came fairly easily, but the last 20% was a bit of a struggle to get done in time for the contest deadline. The contest organizers gave plenty of time, but unfortunately I didn’t get started until closer to the deadline.
Lisa: PyCharm Educational Edition is very straightforward. I watched the tutorial video and brainstormed for a few days. With respect to writing the course, I spent one day. Had I budgeted more time, I could see myself spending more days to flesh out and refine the course.

— What was your experience like creating a course with PyCharm Educational Edition?
John: I learned a lot by writing the course. There are some features in the standard library module I had no idea existed. Going through the effort to explain the course material in simple terms caused me to strengthen my own knowledge in this area.
Lisa: I had fun! Until PyCharm Educational Edition, I had never considered creating an educational course. You and your team have done a great job with the framework; for course creators like me, there is very little overhead beyond writing up the content. I appreciate the course structure, in that you have to think in terms of Lessons, each Lesson with a set of Tasks, with each Task having an html page and a python exercise. The enforced structure really helps course creators like me (no training in teaching or curriculum development) stay focused.


— Would you recommend PyCharm Educational Edition to other educators?
John: I would actually recommend PyCharm Educational Edition to anyone who is interested in Python. I would recommend picking a subject area they have an interest in and attempt to create a course using PyCharm Educational Edition. It’s something that can help other users in the Python community, but will also provide an opportunity to master the subject area for their own benefit. I believe there is truth in the quote: “To teach is to learn twice.” I recommend planning out your complete course before you attempt to author your course inside PyCharm Educational edition. This will help you identify introductory topics you missed and ensure the course flows well between tasks.
Lisa: Yes, especially if you wish to develop your own courses.

— What was the most challenging part of creating your course?
John: I found it challenging to come up with fun tasks. I was not very happy with some of my examples and feel there is room for making them more interesting. I feel making interesting and fun tasks is an important part of keeping people engaged with a course.


—Do you feel anything is missing in PyCharm Educational Edition?
John: Although the emphasis is on interactive programming tasks, I would like to see the ability to organize a course into description-only tasks and quizzes. Description-only tasks would have allowed me to break up some of the longer explanatory tasks into smaller and easier to digest pieces. Quizzes would have helped reinforce key subject areas without having to implement repetitive looking tasks. I feel the courses would be easier for self-study by students with these features.
Lisa: I’m curious whether an online forum for each course would benefit participants. This could be a place for users to ask for additional support (“could you explain Task x in more detail?”) and for the course creator to collect input on how to refine the course.

— Is there anything else you would like to add?
John: I would like to thank JetBrains for being active in supporting the Python community. Not only by offering the free PyCharm Educational and Community editions, but with their support of Python events and user groups.

— Thanks for the interview, John and Lisa!

You can download PyCharm Educational Edition here and make use of the winning courses contributed by John and Lisa. To check them out, go to File / New Project / Educational and click the refresh button.

Develop and learn with pleasure!
-PyCharm team

Posted in Conferences & Events, Contest | 4 Comments

PyCon 2015: How It All Happened

PyCon2015-logo-lockupCircleWhat a whirlwind the past couple weeks have been! We just got back from Montreal, Canada, which hosted PyCon 2015. The conference was awesome and the people just amazing! Let me tell you all about our experience (and announce the winners of our license raffle!).


Five of us from the PyCharm team attended this conference:


From left to right: Anna Morozova, Dmitry Trofimov, Ekaterina Tuzova, Andrey Vlasovskikh, Dmitry Filippov

Lots of things kept us busy during the conference days.

First, we attended the Python Language Summit where the latest trends of the Python language were discussed, such as the development of the new PEP 484 for type hinting. As you may already know, at PyCharm we’re constantly improving our static code analysis to provide you with better autocompletion, navigation, code inspections, refactorings and so forth. We have our own way to infer types and the annotations format to help us better understand your code. At the summit, we shared the challenges we’ve come across with static analysis, as well as some of our ideas for improving Python to be more friendly to static analysis tools like PyCharm. For a long while we at PyCharm had been actively working on co-creation of the new PEP 484, so it was great to talk face-to-face with core Python developers like Guido van Rossum, Jukka Lehtosalo, and Łukasz Langa. We took a pulse of the current developments and discussed further arrangements. At the end of the conference, Guido did a closing keynote about type hints and the future plans of the community. So, many exciting things to look forward to in this area!

Python Education Summit was another fantastic event. We learned a lot about how Python is being used to teach programming to kids, novice programmers and those for whom Python is a second language. Our lightning talk covering the brand-new PyCharm Educational Edition was received very well by the community. It helped us understand where we’re all heading and what the current needs are in this domain. We’re proud that PyCharm Educational Edition is evolving in the right direction. Talking to teachers and developers who are passionate about nurturing novice developers, we agreed to collaborate on getting Python-rich curriculums adopted in some local US schools, which is one of the major problems in the community right now.

The main PyCon 2015 conference was just awesome. We felt privileged to be a part of the community that is setting a standard every day in the world of Python programming. We had a booth in the expo hall, participated in development sprints and talked to hundreds of people, answering questions about our company, products, PyCharm itself and collecting valuable feedback:


Having kicked off PyCharm 4.5 EAP prior to the conference, we were able to show off some new stuff we’d worked on lately.

It was also a great chance to meet a lot of our happy users and friends as well as new people passionate about Python and new technologies. To all the conference attendees, we say “Thank you!”. We hope you enjoyed it as much as we did!


We also held a PyCharm license raffle at the conference, with some cool swag up for grabs. Today we’re glad to give you the randomly chosen winners:

  • Natasha Scott
  • Steven D Gonzales
  • Thomas Kluyver
  • Jason Oliver
  • Luke Petschauer
  • Jeremy Ehrhardt
  • John Hagen

Congratulations! Your license notifications will be mailed out to you in the coming days.

If you didn’t win, you’ll still get a 15% discount for a new PyCharm personal license (if you ticked that option in the raffle application). We will get in touch with you soon with more information on how to redeem your personal discount.

With any problems, concerns or questions, ping us in comments below.

Develop with pleasure!
-PyCharm team

Posted in Conferences & Events | Leave a comment

Announcing The PyCharm 4.5 EAP Opening

Today is an exciting day for JetBrains PyCharm team! And for two reasons…

First of all, PyCon 2015 in Montréal has just started! We are looking forward to this great event and will be at JetBrains booth in Expo hall, listening to all the feedback and answering all the questions that you have!

The second, but not less exciting, is that the first PyCharm 4.5 public preview build 141.583 is finally available for download! Head on over to the download section of the PyCharm Early Access Preview (EAP) page where you can get it for your platform right now.

Note: The PyCharm 4.5 EAP build is not in the final product release stage and might contain some bugs, so it’s supposed to be installed along with your current PyCharm installation for evaluation and checking out new features. No patch update for this EAP build will be available from within the IDE.

The PyCharm 4.5 preview build introduces a lot of new features, bug fixes and improvements, including a number of recently added PyCharm’s unique features as well as some features and improvements from the Web and IntelliJ platform sides.

The most notable PyCharm’s unique features in this preview build are:

  • The matplotlib interactive mode is now supported in both PyCharm’s and the debugger’s consoles.
  • The debugger is improved with the new “Ignore library files” option.
  • Inline debugger for Python: it shows variable values right in the editor, next to their usages.
  • Navigation from debugger’s variables view to code where an object or its type are defined.
  • Initial support for Python 3.5 with support of PEP 465: a dedicated infix operator for matrix multiplication. We’ll continue implementing support for Python 3.5 with next EAP builds as soon as PEP 484: Type Hints and PEP 448: Additional unpacking generalizations are finalized.
  • Various code insight improvements: structural types inferring based on the usage of attributes and nominal types inferring from structural types, better Numpy-specific coding assistance.
  • Multiple per-project Vagrant configurations are now supported.
  • The new “Bulk move” refactoring dialog: helps you perform a move refactoring on a group of code snippets with all dependencies resolved.
  • The new Scratch Files feature: temporary virtual files which support running and debugging.

As usual, PyCharm 4.5 will have all features of the recently released WebStorm 10 (read more about it in the WebStorm blog). Here is just a short summary of what’s new available in the PyCharm 4.5 preview build 141.583 from the Web side:

  • Improved JavaScript support: completely reworked support for JavaScript and enhancements in ECMAScript 6 support.
  • TypeScript 1.4 support and built-in compiler: Instantly provides a compiled JavaScript file and highlights any compilation errors in the editor.
  • Application dependency diagrams: this new feature in spy-js allows you to visualize and explore your app structure based on the runtime data.
  • spy-js support for source maps: enjoy spy-js features for any language compiled to JavaScript.
  • V8 profiling for Node.js apps: capture and analyze V8 CPU profiles and heap snapshots to eliminate performance bottlenecks and fight memory issues.
  • Improved Grunt integration.
  • Project-wide Dart code analysis.

Some of the Webstorm features are not bundled with PyCharm by default but available for installation from JetBrains plugin repository.

Apart from additional features and improvements from the Web side, PyCharm 4.5 gets improvements from the recently released IntelliJ IDEA 14.1. The most noteworthy changes are:

  • Distraction-free mode (a view with no toolbars, no tool windows, no editor tabs – just code on your screen. To switch to this mode, click View | Enter Distraction Free Mode)
  • HiDPI support for Windows or Linux.
  • Git and Mercurial log viewers have been improved.
  • Database tools offer multiple consoles per data source, now with a schema switcher, local history, and easier access.
  • The HTML editor has been extended with a cool new option for simultaneously editing both opening and closing HTML tags.

Download PyCharm 4.5 preview build 141.583 for your platform right from the project EAP page and please report any bugs and feature request to our Issue Tracker.

The PyCharm 4.5 preview build is available in two editions – free/open source PyCharm Community Edition and full-fledged PyCharm Professional Edition. While both of them are available for download and use at no charge, PyCharm Professional Edition has a 30-day evaluation period, which means PyCharm 4.5 Professional Edition EAP build 141.583 comes with a 30-day time-limited license as well.

Note: Remember to install .zip & .tar.gz versions into a completely empty folder. Do not just unpack over previous version!

Develop with pleasure!
-JetBrains PyCharm Team

Posted in Early Access Preview | 22 Comments

Announcing the PyCharm 4.0.6 release update

Today we’re glad to announce the immediate availability of the PyCharm 4.0.6 bug-fix update.

It’s already available for download from our website. It also will be available soon as a patch update from within the IDE (from PyCharm 4.x only).

As a recap, the most notable fixes in PyCharm 4.0.6 are: a fix for the Django ORM inspection problem, a fix for the ManyToManyField resolve bug, a fix for an incremental search bug, a fix for HTML indentation broken when using Jinja tags, a fix for the “Nothing to show” bug in Structure View for Jinja2 HTML files, and fixes for a couple of platform bugs.

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 on our public PyCharm forum and twitter.

Develop with Pleasure!
-PyCharm team

Posted in Release Announcements | 1 Comment

PyCharm 4.0.6 RC is available

Today we’ve published the PyCharm 4.0.6 RC bug-fix update.

This build has a few fixes that can be found in the release notes: a fix for the Django ORM inspection problem, a fix for the ManyToManyField resolve bug, a fix for an incremental search bug, a fix for HTML indentation broken when using Jinja tags, a fix for the “Nothing to show” bug in Structure View for Jinja2 HTML files, and fixes for a couple of platform bugs.

Download PyСharm 4.0.6 RC for your platform from the project EAP page 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. Make sure you’ve selected the Beta Releases channel in update settings.

Develop with Pleasure!
-PyCharm team

Posted in Early Access Preview | 11 Comments

Feature Spotlight: Python remote development with PyCharm

Happy Friday everyone,

In today’s blog post I’m going to cover some basic principles and features in PyCharm that make Python remote development easy as pie. To demonstrate them I’ll use a very simple flask web application from the official flask github repository. Enjoy the read!

Note: Remote development functionality is only available in PyCharm Professional Edition. For more details please see the editions comparison page

First I clone the official flask repository from Then from the PyCharm’s Welcome screen I open the blueprintexample directory, which stores the source of the super simple flask application I’m going to use for the demo:


PyCharm opens the directory and creates a project based on it:


Now I’m going to set up the remote machine to start with the remote development. I use Vagrant which PyCharm offers great support for. In one of my previous blog posts I already covered Vagrant integration, so here are just the straight steps to provision and run a VM. I go to Tools | Vagrant | Init in Project Root and select the Ubuntu 14.04 image which was previously imported from the collection of vagrant boxes. This creates the Vagrantfile in the project root. Now, I’m going to edit this file to configure a private network and make my VM visible from my host machine:


Next, I run the VM with Tools | Vagrant | Up and PyCharm shows me that the VM is up and running:


We can open a local terminal inside PyCharm to test the VM:


Alright, the VM responses to ping. Now, I want to run my web application on the VM, so I need to copy my project sources to the remote host. This is easily done with the Deployment tool inside PyCharm.
I go to Tools | Deployment | Configuration and specify the connection details for my VM:


On the Mappings tab in the same window I specify the path mapping rule:


In my case I want my current local project directory blueprintexampe to be mapped to remote /home/vagrant/blueprintremote.
Now I can right-click my project in the project view and select Upload to:


And this will upload my project to the specified directory on the remote machine:


One of the handiest features is that you can set up automatic upload to the remote machine by simply clicking Tools | Deployment | Automatic Upload:


From this point on, all changes made locally will be uploaded to the remote machine automatically, so you don’t need to worry about having fresh sources on the remote host. Cool, isn’t it?

So now, I’m going to modify one of the files in my project, so the flask application will be visible remotely (adding host=’’ as a parameter to the ), and PyCharm automatically uploads the changes to the remote machine:


Next, I specify the python interpreter to be used for my project. I go to File | Settings (Preferences for Mac OS) | Project | Project Interpreter. By default, PyCharm sets the local Python interpreter as a project interpreter, so I’ll change it to the remote one:


As I’ve already created a deployment configuration, PyCharm offers to export Python interpreter settings from the existing deployment configuration:


But I can also specify the remote interpreter manually, using SSH credentials or a Vagrant configuration. Here I’ll do it manually:


After I specify the new remote python interpreter, PyCharm starts indexing and finds that the flask package is not installed on the project interpreter:


I can fix this easily with Alt + Enter on the unresolved reference error highlighted with red:


Alright. Now everything is ok, so we can finally specify Run/Debug configuration and launch our application. Let’s go to Run | Edit Configurations and add a new Python run/debug configuration:


In the Run/Debug configuration dialog, I specify the name for my new configuration and the script to be executed on the remote host. PyCharm sets the project interpreter (remote in this case) by default for this new run configuration, and finally I need to specify path mappings for this particular run configuration:


It seems we’re all set. I click the Run button:


PyCharm shows that the application is up and running on port 5000 on the VM.
I open the browser to check that the application is really working:


From this point on, we can work with this project like with a normal local project. PyCharm takes care of uploading any changes to the remote machine and keeps the VM up and running.

With the same Run/Debug configuration, we can do a simple remote debug session putting a few breakpoints right in the editor:


Click the debug button or go to Run | Debug:


That’s it! Hopefully you’ll appreciate this remote development functionality in PyCharm that makes Python remote development a breeze.

If you’re still craving for more details on PyCharm remote development capabilities, as well as other remote development features, please see the online help.

Talk to you next week,

Posted in Cool Feature | 25 Comments

Feature Spotlight: VCS integration in PyCharm

Happy Friday everyone,

Today we’ll take a look at some of the basic VCS features in PyCharm that can help manage different version control systems.

You may already know that PyCharm has seamless integration with major version controls like Git, GitHub, Subversion, Mercurial, Perforce (available only in PyCharm Professional Edition), and CVS. Even though all these version controls have different models and command sets, PyCharm makes life a lot easier by advocating a VCS-agnostic approach for managing them wherever possible.

So here we go:

Checking out a project from a VCS

To import a project from a version control system, click the Check out from Version Control button on the Welcome screen, or use the same VCS command from the main menu:


Version Control settings

A project’s version control settings are accessed via Settings → Version Control. You can associate any of the project folders with a repository root. These associations can be removed at any time, or you can even opt to disable the version control integration entirely:


PyCharm can handle multiple VCS repositories assigned to different folders of the project hierarchy, and perform all VCS operations on them in uniform manner.

Changes tool window and changelists

After version control is enabled for a project, you can see and manage your local changes via the Changes tool window. To quickly access the tool window, press Alt + 9 (Cmd-9 on a Mac):


All changes are organized into changelists that can be created, removed, and made active.

Quick list of VCS operations

When you need to perform a VCS operation on a currently selected file, directory, or even on the entire project, bring up the VCS operations quick-list via Alt+Back Quote (Ctrl-V on a Mac):


Show History

The history of changes is available for a set of files or directories via the VCS operations quick-list, or in the main menu VCS →<version control name> → Show History, or in the context menu → Show History:


To see all changes for a specific code snippet, use the Show History for Selection action.


Annotations are available from the quick-list, the main menu or the context menu. They allow you to see who changed a certain line of code and when:


When you click the annotation, you will see the detailed information about the corresponding commit.

Useful shortcuts

  • Commit current changelist Ctrl+K (Cmd-K on a Mac)
  • Update the project Ctrl+T (Cmd-T on a Mac)
  • Mark selected files and folders as added Ctrl+Alt+A (Alt-Cmd-A on a Mac)
  • Mark selected files and folders as changed (checked out) via Ctrl+Alt+E (Alt-Cmd-E on a Mac)
  • Show diff (available in the Changes tool window) via Ctrl+D (Cmd-D on a Mac)
  • Move changes to another change list (available in the Changes tool window) via F6
  • Push commits to remote repositories via Ctrl+Shift+K (Cmd-Shift-K on a Mac)

Commit options

When committing changes, PyCharm lets you perform a variety of operations:

  • change the file set to commit to,
  • join the changes with the previous commit by using the Amend commit option,
  • reformat the changed code,
  • optimize imports,
  • ensure that there are no inspection warnings,
  • update the copyright information,
  • or even upload the changes to a remote FTP server.


Ignored files

To configure the ignored files, go to Settings → Version Control, or use the corresponding button in the Changes tool window:


The actual list of ignored files can be displayed in the Changes tool window next to the changelists by clicking the corresponding button.


With PyCharm you can easily create, switch, merge, compare and delete branches (available for Git and Mercurial only). To see a list of existing branches or create a new one, use either the Branches from the main or context menu, or the VCS operations quick-list, or the widget on the right-hand side of the status bar:


For multiple repositories, PyCharm performs all VCS operations on all branches simultaneously, so you don’t need to switch between them manually.

Shelves, stashes, and patches

Shelves and Stashes help you when you need to put away some local changes without committing them to repository, then switch to the repository version of the files, and then come back to your changes later. The difference between them is that Shelves are handled by PyCharm itself and are stored in the local file system, while Stashes are kept in a VCS repository.

Patches allow you to save a set of changes to a file that can be transferred via email or file sharing and then applied to the code. They are helpful when you’re working remotely without having a constant connection to your VCS repository and still need to contribute:



To see the entire list of commits in a repository, sorted and filtered by branch, user, date, folder, or even a phrase in description, use the Log tab in the Changes tool window. This is the easiest way to find a particular commit, or to just browse through the history:


In this blog post we touched just a tip of the VCS integration iceberg. Go ahead and try this functionality in action! Here’s a tutorial that can walk you through the VCS integration features and provide additional information. And if after that you’re still craving yet more details, please see our online help.

That’s it for today. See you next week!

Posted in Cool Feature | 2 Comments

Best Interactive Programming Course Contest 2015 is over!


On March 5th the Best Interactive Programming Course contest organized by JetBrains came to a close. Based around the theme of PROGRAMMING EDUCATION WITH PYTHON, this contest was a great chance for teachers and instructors all around the globe to show their experience and skills as they vowed to create a programming course that thousands of learners would use inside PyCharm Educational Edition.

We hope it was a great experience for everyone who attempted to create a course using PyCharm Educational Edition. The courses this contest has produced will surely be helpful for thousands of students around the globe.

The Results

All submitted courses have been scored on:

  • The overall idea (engaging topic, originality/uniqueness)
  • Seamless experience going through the course
  • Course length and structure
  • Usage of PyCharm Edu functionality
  • Course content quality

And the winners are:
1st place: John Zurawski, “Logging in Python”
This course provides an introduction to the standard Python logging module. It includes basic and advanced examples that can help you debug your Python software. Best practices are demonstrated to help you get the most out of Python logging. This course was tested using Python 2.7 and Python 3.4.

2nd place: Lisa C, “Introduction to Classic Ciphers”
Python implementations of classic text ciphers. Appropriate for python beginners who have had some practice with manipulating strings and lists, writing ‘for’ loops, and organizing code into functions.

3rd place: Tal Einat, “Python Unit-Testing”
An introductory interactive course about unit testing in Python.

The jury also selected “Introduction to Classic Ciphers” as the Best Course Idea.

Thanks to everyone who entered in the contest and congratulations to the winners!

The winning courses will soon be available in PyCharm Educational Edition along with the default “Introduction to Python” course. To check them out, go to File | New Project | Educational and click the refresh button.

This has been an amazing experience for the PyCharm team. Thanks a lot for all your entries and keep the love flowing!

What’s up next?

Currently we’re working on the next version of PyCharm Educational Edition. It’s going to be more polished, the new features will be introduced and of course with this new release we’ll address different usability and some common problems that both students and educators have experienced with the first version!

Stay tuned for further news, subscribe to both PyCharm and PyCharm Educational Edition twitters, report any problems you find to our public issue tracker.

Develop and learn with pleasure!
PyCharm team

Posted in Conferences & Events, Contest | 3 Comments