PyCharm 5.0.2 EAP is Available

It’s been a while since we released PyCharm 5 and today we announce the early preview build of PyCharm 5.0.2. The list of bug fixes and improvements for this build can be found here.

Some highlights of the PyCharm 5.0.2 build 143.869.1 are:

  • fixes for different performance issues
  • a fix for Google docstrings support (PY-17220)
  • a fix for code completion not working in IPython Notebook (PY-16392)
  • a number of fixes for Docker support
  • fixes for integrated test runner
  • a few fixes for Django support
  • and much more

Please give PyCharm 5.0.2 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 | 8 Comments

PyCharm 5.0.1 update released

Just one week after the PyCharm 5 release, we bring you a bug-fix update, PyCharm 5.0.1, available from the download page. It will also be available shortly as a patch update from within the IDE (from PyCharm 5.0 only).

Some notable highlights of this update include:

  • a fix for hangs on opening context menus (PY-17113)
  • a fix for tool windows not being hidden automatically (IDEA-146684)
  • Python 3.5 support fixes (PY-17282)
  • a fix for wrong encodings (PY-17568)
  • a fix for code inspections performance problems (PY-17356)
  • a fix for Docstring support (PY-17470)
  • a fix in the debugger for Attach to Process (PY-17465)
  • a GAE support fix (PY-17473)
  • and more

For further details on the bug-fixes and changes, please consult the Release Notes.

As usual, please report any problems you found in our issue tracker.

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

Develop with Pleasure!
-PyCharm team

Posted in Release Announcements, Uncategorized | 8 Comments

Announcing Educational Plugin for PyCharm 5

Hello everyone,

Did you see the release announcement of the brand-new PyCharm 5 yesterday? Big release indeed. And today we have more amazing news for everyone who’s passionate about learning and teaching programming with Python: We’ve released Educational plugin for PyCharm 5.

This plugin brings educational functionality to PyCharm similar to what we have in PyCharm Edu. That means you can go through interactive programming courses with Python using a real professional development environment, and easily switch to professional Python, Django or Scientific projects afterwards.

In releasing this separate plugin, we aim to provide flexibility. PyCharm Edu remains as the best free, easy and professional tool for learning and teaching programming with Python. All new educational features and improvements will go to PyCharm Edu first.

So what should you choose if you want to learn programming with Python?

  • PyCharm Edu is the better option if you’re new to programming and to Python itself. It’s free and open source, it has a clean and simple UI, and is free of features you don’t need as you take your first steps in learning programming. Nevertheless, you start programming with a real Python IDE that can smoothen your transition to the full-featured PyCharm.
  • PyCharm Professional Edition is the better choice if you’ve got experience with pure Python programming and want to dive deeper, for example to learn Django or other web frameworks, use databases, version control systems, a full-featured debugger, remote development functionality, etc. Install the Educational plugin additionally to make use of interactive programming courses and integrations with learning management systems.

As usual, the plugin can be installed from the plugin manager inside PyCharm 5 (Settings | Plugins).

Note: Educational plugin works only with PyCharm 5 Professional or Community editions.

Follow these instructions to set up the plugin:

  • Download PyCharm 5 (the plugin works with both Professional and Community editions).
  • Install it and go to Settings (Preferences for Mac OS users) | Plugins.
  • Click the ‘Install JetBrains plugin’ button and find ‘Educational Plugin for PyCharm’:eduplugin1
  • Click the install button and proceed with the installation.
  • Restart PyCharm.
  • Follow this online tutorial to create an educational project and start going through an interactive course.

Teachers, instructors and course authors can now create interactive courses with support for all the features that PyCharm Professional Edition provides, such as an interactive Django course. To create your course using PyCharm 5, install the separate ‘Course Creator for PyCharm’ plugin:

eduplugin2

After the installation is complete, please follow the Getting Started for Educators tutorial to learn how to create an interactive course.

Please take the plugin for a spin, discover how the whole concept works, and if you run into any problems with the plugins, please don’t hesitate to report them to the issue tracker.

Develop with Pleasure,
JetBrains Team

Posted in Cool Feature | 4 Comments

Announcing General Availability of PyCharm 5

Hurray, we’ve just released PyCharm 5, the new major version of our intelligent IDE for Python, web and scientific development! It is one of the updates of our desktop products that comprise the brand new JetBrains Toolbox.

PyCharm5Prof_splash

Download PyCharm 5 for your platform today!

PyCharm 5 is available as a full-fledged Professional Edition for Python and Web development, or as a free and open-source Community Edition for pure Python and scientific development.

PyCharm 5 brings an outstanding lineup of new features, including full Python 3.5 support, Docker integration, Thread Concurrency Visualization, code insight for Django ORM methods, Conda integration, and IPython Notebook v4 support, just to name a few.

The highlights of this version include:

Python-related improvements:

  • Full Python 3.5 support
  • Docker integration
  • Thread Concurrency Visualization
  • Better code insight for Django ORM methods
  • Google and NumPy Style Python docstrings
  • Conda integration
  • App Config Tool for Google App Engine projects
  • And more

IDE enhancements:

  • Brand-new indication for running configurations
  • Find in Path with instant preview
  • New UI for testing and tests history
  • Updated database tools
  • Editing code in diff viewer
  • Branch operations from VCS Log Viewer and the new “Rebase” action for git

PyCharm 5 Professional Edition also brings a lot of web development enhancements including:

  • Improved ReactJS support
  • TypeScript 1.6 support
  • Support for AngularJS 2.0
  • Better support for Meteor
  • Dart support enhancements
  • And much more

Please see What’s New in PyCharm 5 for more details, or watch this short What’s New in PyCharm 5 video:

Download PyCharm 5 for your platform here!

PyCharm 5 Professional Edition is a free update for you if purchased your license after November 2, 2014. As usual, a 30-day trial is available if you want to try PyCharm Professional Edition as your new Python IDE.

Develop with pleasure!
JetBrains PyCharm Team

Posted in Release Announcements, Video | 28 Comments

PyCharm 5 RC2 is available

With just a few days before the official release of PyCharm 5, today we’ve published the PyCharm 5 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.

Download PyСharm 5 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 EAP builds only) for those who selected the EAP or Beta Releases channels in the update settings.

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

-PyCharm Team

Posted in Early Access Preview | 1 Comment

PyCharm 5 Release Candidate is available

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

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

PyCharm 5 Release Candidate includes mostly a consolidation of bug fixes as compared to the previous PyCharm 5 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 5 – please see the announcement of PyCharm 5 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 5 EAP builds only) without a full re-installation using the patch-based upgrade. Just make sure you’ve selected the EAP or Beta Releases channel in the update settings.

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 5 release announcement, follow us on twitter, and develop with pleasure!

-PyCharm team

Posted in Early Access Preview | Leave a comment

Announcing PyCharm Edu 2.0.2: CheckiO integration

Today we have great news for everyone passionate about learning and teaching programming with Python.

First, we’ve released PyCharm Edu 2.0.2, an updated version of our free, easy and professional tool for learning programming with Python. This release consolidates many bug fixes and small improvements in different subsystems. Download PyCharm Edu 2.0.2 for your platform today!

Second, and it’s going to be the top story of this blog post: we announce the CheckiO plugin for PyCharm Edu.

checkio

CheckiO is a programming learning platform and a gamified website that teaches problem solving with Python. Its aim is to offer a safe environment to learn writing better code, for beginners and advanced programmers alike. Organized in a game format, CheckIO is very appealing to novice programmers, especially kids, who don’t have any previous coding experience and need to be engaged in the game process.

With CheckiO, programmers can take on missions such as computing the median value, to understand how to use Python and apply programming theory to solve real world problems. Read more and sign up on the CheckiO official website.

The CheckiO plugin is the first plugin for PyCharm Edu. Detailed information is available on the official plugin website. By using this plugin, you can combine the easy learning curve of CheckiO with the power of a real-world professional tool for Python programming. Learning programming with PyCharm Edu prepares you to smoothly advance to other professional development tools such as PyCharm Professional Edition, IntelliJ IDEA, and others.

To get started:
1. Download PyCharm Edu 2.0.2 for your platform and install it.

2. Download CheckiO plugin for PyCharm Edu from the official JetBrains repository.

Note: The CheckiO plugin requires Oracle Java 8. Please make sure the appropriate Java 8 is installed on your platform. This plugin works only with PyCharm Edu 2.0.2.

3. In PyCharm Edu, go to Settings (Preferences for Mac OS users) | Plugins and click the “Install plugin from disk” button.

4. In the opening dialog choose the downloaded CheckIOPyCharmPlugin.zip file and click ok.

5. Click ‘Restart PyCharm Edu’ in the same Plugins dialog:

checkiorestart

6. Go to File | New Project. Select the CheckiO project type, give it a name and select the Python interpreter for this project as shown on the screenshot, and then click “Create”:

checkionewproject

7. PyCharm will open the CheckiO website and ask you to log in. After a successful login, the PyCharm Edu plugin will appear as authorized on the website.

8. Return to PyCharm to see something like this:

checkioinpycharm

You can now perform CheckiO missions right inside PyCharm Edu and enjoy its assistance in solving various programming problems.

On the left-hand side you can see the Project View with a few stations (lessons) and missions (tasks) inside.

On the right-hand side there is a Task info window with the mission description and special buttons. You can submit your solution for checking, navigate to previous / next mission, reset your solution to the initial state, check hints for the mission, update the entire project, and view existing solutions from other CheckiO players:

checkiosolutions

Use the editor to complete a mission. Once you’re ready to check your solution, click the ‘Run and Check’ button as shown below:

checkioruntask

After successfully finishing a mission you are congratulated with “Task solved!” in the Task info, and the mission is marked as completed in the project view:

tasksolved

Continue to the next mission by using navigational buttons or choosing another mission in the project view.

In the bottom right-hand corner you may notice the “User Info” pane. Click it to see your progress:

checkioprogress

Enjoy playing with CheckiO and PyCharm Edu, solving real world problems and learning!

Develop with Pleasure!
JetBrains PyCharm Team

Posted in Cool Feature, Release Announcements | 16 Comments

PyCharm 5 Beta is available

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

Download PyCharm 5 Beta build 143.414 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, as well as improvements for recently added features. You’re welcome to refer to the detailed release notes for more information.

Here’s a recap of what’s new in the upcoming PyCharm 5:

Python-related improvements:

  • Full Python 3.5 support
  • Docker integration
  • Thread Concurrency Visualization
  • Better code insight for Django ORM methods
  • Google and NumPy Style Python docstrings
  • Conda integration
  • App Config Tool for Google App Engine projects

Platform enhancements:

  • Brand-new indication for running configurations
  • Find in Path with instant preview
  • New UI for testing and tests history
  • True HiDPI Support and adjustments for color deficiency
  • Updated database tools
  • Editing code in diff viewer
  • Branch operations from VCS Log Viewer and new “Rebase” action for git

Web development improvements:

  • Improved ReactJS support
  • Support for AngularJS 2.0
  • TypeScript 1.6 support
  • Better support for Meteor
  • New inspections for Node.js
  • Dart support enhancements

For more details about the upcoming features please see these announcements.

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

JetBrains PyCharm Team

Posted in Early Access Preview | 2 Comments

Announcing PyCharm 5 EAP 143.308: Thread Concurrency Visualization

Hello everyone,

Today we bring you PyCharm 5 EAP build 143.308 with Thread Concurrency Visualization for multi-threaded applications, App Config Tool for Google App Engine projects, support for IPython Notebook v4, and a lot of other important enhancements.

Please download the build from our EAP page.

The star feature in this build is Thread Concurrency Visualization.

Note: Thread Concurrency Visualization is available only in PyCharm Professional Edition.

With this brand new functionality, you can take full control over your multi-threaded applications. To get started, note the new Concurrency Diagram button in the toolbar next to the Run, Debug, Coverage and Profile buttons:

1

Click this button to run your application with the current run/debug configuration in the special Concurrency Diagram mode which shows you the real time states of threads inside your running process:

2

On the left-hand side you can see the list of thread names, and on the right the waiting time for each thread.

Different states are marked with different colors on the diagram. You can zoom in and out using magnifier icons on the left side of the window or with Ctrl + mouse wheel. Click on the diagram to see the related stack frame:

3

You can also navigate to a particular line in code from the stack frame.

Right-click on the diagram to open a context menu showing waiting time periods for the same lock. Related waiting time periods stay in the same color, while unrelated are faded:

4

Concurrency visualization also works well with the asyncio module which was introduced in Python 3.4. Simply run your application that makes use of asyncio with the same Concurrency Diagram button and switch to the ‘Asyncio graph’ tab:

5

Other notable improvements in this build include:

  • App Config Tool for Google App Engine projects, which is available from Tools | Google App Engine | Run appcfg.py task:

appengine

This new tool introduces a new user interface and provides autocompletion for appcfg.py tasks and their arguments. The App Config Tool also preserves the command history so you can easily fetch previous commands just by pressing Up / Down arrows. Quick documentation is also available by pressing Ctrl+Q on a appcfg.py command.

Note: GAE support is available only in PyCharm Professional Edition.

  • Injection of the Python language into type hinting comments:

typehints

According to PEP-0484, PyCharm treats the type hinting code inside comments as Python code. It provides navigation and quick documentation for it, and related imports are now marked as used.

And some more:

  • PyCharm now supports IPython Notebook v4.
  • PyCharm uses a single ‘Updating skeletons’ task for newly installed packages, which improves performance on indexing and fixes various bugs.
  • Docker support has been enhanced, and Remote interpreter fixes are available.

For the full list of changes and improvements, please check the Release Notes.

Download PyCharm 5 EAP build 143.308 today! Should you encounter any bugs, 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 5 EAP builds only) without a full re-installation. Just make sure you’ve selected the EAP channel in update settings.

Develop with pleasure!
JetBrains PyCharm Team

Posted in Early Access Preview | 5 Comments

Introducing Paul Everitt, PyCharm Developer Advocate

Please welcome our new PyCharm Developer Advocate, Paul Everitt! He brings a ton of experience from the Python and web worlds so we couldn’t miss the chance to interview him. Get to know Paul in this short Q&A.

Hello Paul and welcome to the JetBrains team! For those who don’t know you, can you tell us a bit about yourself and your background?

headshot-closeup

I’m Paul Everitt, long-time Python and web guy. In the early 90s I was a young Navy officer, which was a great experience, not the least in that I wound up working on the “Navy Internet,” which around 7 people understood. In 1993 I started www.navy.mil. At the time it was listed, it was one of around 200 public web servers. I needed a scripting language for the predecessor of CGI. There was a Perl book, but that’s not how my brain works. I downloaded the Python tutorial and taught myself using an 80286 laptop that I hauled to France, visiting my later-to-become wife. Really, it’s surprising she ever talked to me again.

Some Python-related stuff: I attended the first workshop in 1994, bootstrapped the Python Software Foundation and Plone Foundation, started an open source company in 1994 which released the first open source application server (Zope), got around $14M in venture funding, left to live in France for four years, then formed a consulting company with the creators of Pyramid.

So I’m old. My wife and I have a son and daughter. We live in Fredericksburg, Virginia, where I also coach girls’ lacrosse, the fastest sport on two feet. I have an unhealthy addiction to watching my college’s football (American flavored) team. I’m a dog, not a cat.

How did you find out about the Developer Advocate role for PyCharm and what interested you the most about the position? What will be your role and responsibilities?

Like many others in Python over the years, I tried multiple times to kick the Emacs habit, but all the other Python editors and IDEs generated more pain than they alleviated. I heard about PyCharm and decided to try one more time, expecting to be disappointed. It was a wonderful experience from the get-go, which was truly a surprise, so much that I started badgering people during my speeches to use it. I met Dmitry Filippov at a PyCon, then saw him again, then saw him again, and grew to appreciate how he did things. He invited me to give the first PyCharm webinar, which was quite fun.

I haven’t worked for someone per se since my Navy days, but a few months ago, I realized I wanted to get out of consulting and work with a team on a product that one could be proud of. At the same time, Dmitry reached out to me about becoming PyCharm Developer Advocate. There really wasn’t any product that I was as passionate about as PyCharm, and I’ve enjoyed the team over the years, and the responsibilities are just what I was looking for. Really, it was the opportunity I most wanted but didn’t know existed.

I have always enjoyed people as much as writing code, particularly listening and helping explain. Python has changed since the 20 or so of us met at NIST in 1994. The growth is staggering. As it reaches the mature part of the market, tools like PyCharm are exactly what the mainstream needs. It’s an exciting time.

Tell us more about your experience with PyCharm and what you’ve been working on.

I have been a paid customer for years, primarily using it for Pyramid web applications. Around 2 years ago I started doing polyglot Python projects, with the front end moved out to things such as AngularJS. Because of PyCharm and JetBrains’ multi-tool story, I was just as productive outside of Python as inside of Python.

For Pyramid I did a good bit of documentation writing for the tutorials. This was also a breeze in PyCharm.

What are your favorite PyCharm features that you can’t imagine working without?

It’s funny, the first thing that got me to stick with PyCharm was tabs. As an Emacs guy, I just didn’t want to switch buffers all the time, which made me look at IDEs. But other tools had something in their tabs that, after ten minutes, would rub you the wrong way. I found, and still find, that PyCharm pays attention to the small details and refinements on tabs in ways that other tools don’t. It’s reflective of the mindset that I think PyCharm has, where things aren’t just done, they are done well, and stay done. It’s a trait that has to be part of a product company’s DNA and culture, and it’s the kind of trait that pragmatic, professional developers demand. They don’t want to fiddle, except when they do, and when they do, they want it to work, no alarms, no surprises.

Beyond that, I’ve been impressed at how well PyCharm has kept up with the leaps forward in Python and the Python community. I’m also intrigued by PyCharm Edu and that kind of outreach.

How much time did it take you to learn PyCharm from scratch? Do you think it’s worth investing your time in learning the tool?

I had several iterations of taking long chunks of time off from work and immersing myself in PyCharm, on both the Python side and the JavaScript side. In some cases you are unlearning old habits. In other cases, you are absorbing techniques that have been around forever, but you never got around to learning. There’s still a bunch of goodness in PyCharm that I haven’t scratched the surface on.

I absolutely think it is a wise investment. Similar to paying for PyCharm itself. I’m a professional, and customers expect me to be effective. Buying a quality tool and updating my skills with it are obviously part of the profession.

What trends do you see in Python as a language? Where is it heading? What’s your opinion on latest changes?

I’m from a web background, and there, Python now exists in a polyglot environment with JavaScript as a first-class citizen. PyCharm is a boon in this reality. This is an area in my job that I’m interested in: helping to explain this ‘polyglot’ future to the Python community. It’s fun seeing ES6, ES7, etc. and all the ways (e.g. async/await, list comprehensions, imports) that Python and JavaScript are lining up.

In a larger sense though, I think Python ease-of-learning has wrapped up its position as the first language to start with. That has a huge number of implications for the next 3-5 years. In a way, I think getting Python 3 behind us (and with 3.4, I think that tipping point was reached) was crucial. People can start with Python 3.

The asyncio and async/await additions show that Python is capable of maturely evolving to cover modern uses without becoming un-Pythonic. That’s a challenge when you reach a dominant position. It’s hard to move.

If we look at the modern Python web frameworks, what trends do you see? Which is your favorite one?

I’m a Pyramid guy, and so I’m happy to see that it’s chugging right along with a bigger community and regular releases. But I find the whole field of Python web frameworks fascinating. Django has been able to keep current and evolve while keeping tremendous popularity, and also helping spawn the biggest improvement in Python, which is diversity in the community. Flask continues to grow and spawn a huge number of interesting and mature add-ons. Beyond that, the landing and evolution of async in Python 3 is stirring the pot in exciting ways.

Python is an open-source project and everything around it is open source as well. In your opinion, how does the open-source concept influence and shape the enterprise software? Have you used any open-source projects in your professional career?

As mentioned above, I’m an oldster when it comes to open source and business. We didn’t really do a good job coming up with an open source business model that would churn out the big bucks required when you get funding. Recently I’ve seen some high-profile Python people starting to get jaded about open source and business. Some people seem to expect long-term quality software, for free, and then expect you to write their project for them in StackOverflow, and berate you when you don’t.
I’m eager to get started with this. What’s the best PyCharm can be? What’s the biggest impact we can make on the most important audience? Can we go even further on the motto of “Develop With Pleasure”? Fun times indeed.

Thank you for the interview, Paul!

We’re thrilled to have Paul on our team and wish him the best of luck as a Developer Advocate! If you catch him at a conference, go ahead and ask all your questions. Follow and ping him on Twitter, too.

Develop with Pleasure,
PyCharm team

Posted in interview | 4 Comments