PyCharm 2017.3 EAP 10

This week’s early access program (EAP) version of PyCharm is now available from our website:

Get PyCharm 2017.3 EAP 10

The release is getting close, and we’re just polishing out the last small issues until it’s ready.

Improvements in This Version

  • kwargs autocompletion for Model.objects.create(). Django support is only available in PyCharm Professional Edition
  • An issue that would cause PyCharm to fill multiple log files per minute has been fixed
  • Docker Run configurations have been improving steadily throughout the EAP phase, in this version ports that are used in a binding but haven’t been exposed yet will be auto-exposed (Docker support is available only in PyCharm Professional Edition)
  • And more, have a look at the release notes for details

If these features sound interesting to you, try them yourself:

Get PyCharm 2017.3 EAP 10

If you are using a recent version of Ubuntu (16.04 and later) you can also install PyCharm EAP versions using snap:

sudo snap install [pycharm-professional | pycharm-community] --classic --edge

If you already used snap for the previous version, you can update using:

sudo snap refresh [pycharm-professional | pycharm-community] --classic --edge

As a reminder, PyCharm EAP versions:

  • Are free, including PyCharm Professional Edition EAP
  • Will work for 30 days from being built, you’ll need to update when the build expires

If you run into any issues with this version, or another version of PyCharm, please let us know on our YouTrack. If you have other suggestions or remarks, you can reach us on Twitter, or by commenting on the blog.

Posted in Early Access Preview | Tagged | 1 Comment

PyCharm 2017.3 EAP 9

This week’s early access program (EAP) version of PyCharm is now available from our website:

Get PyCharm 2017.3 EAP 9

We’re entering the last weeks until the release, and we’re focusing on fixing up the last remaining bugs.

Improvements in This Version

  • All words in Django’s settings.py have been added to our spellcheck dictionary, so no more false positives for ‘WSGI’ or ‘clickjacking’.
  • The debugger speedups now install correctly for a snap-installed PyCharm
  • TypeScript 2.6 is now supported (TypeScript, and other WebStorm features, are available only in the Professional Edition)
  • And more, have a look at the release notes for details

If these features sound interesting to you, try them yourself:

Get PyCharm 2017.3 EAP 9

If you are using a recent version of Ubuntu (16.04 and later) you can also install PyCharm EAP versions using snap:

sudo snap install [pycharm-professional | pycharm-community] --classic --edge

If you already used snap for the previous version, you can update using:

sudo snap refresh [pycharm-professional | pycharm-community] --classic --edge

As a reminder, PyCharm EAP versions:

  • Are free, including PyCharm Professional Edition EAP
  • Will work for 30 days from being built, you’ll need to update when the build expires

If you run into any issues with this version, or another version of PyCharm, please let us know on our YouTrack. If you have other suggestions or remarks, you can reach us on Twitter, or by commenting on the blog.

Posted in Early Access Preview | Tagged | Leave a comment

Webinar: Putting Type Hints to Work

Optional type hinting in Python: after an initial flurry of “WAT?!”, PEP 484 has settled in, spawned follow-on-work, and started to see adoption. In this webinar, Daniel Pyrathon, host of PyBay’s opening panel on type hinting, joins us for “Putting Type Hints to Work”:

  • Tuesday, November 28th
  • 17:00 European Time, 11AM Eastern Standard Time
  • Register here

webinar_type_hints_register

This webinar introduces the subject of optional static type hinting as part of Python development, in contrast to strong runtime enforcement in other languages. We’ll introduce the history of type hinting, the role of function and variable annotations in the language, demonstrate type hinting in action, and show how to get value from type annotations in your project.

This hands-on webinar is aimed at the Python developer that has looked at type hinting and is either interested or terrified.

Speaking to you

Daniel Pyrathon lives in San Francisco and is a Data Engineer at Coffee Meets Bagel, where he works on various recommendation engines and the matching algorithm. Daniel is also a voting member of the PSF and organizes SF Python, one of the biggest Python meetups in the Bay Area, helping new and experienced developers learn about Python and land jobs at great tech companies.

Posted in Webinar | Leave a comment

PyCharm 2017.3 EAP 8

This week’s early access program (EAP) version of PyCharm is now available from our website:

Get PyCharm 2017.3 EAP 8

Precompiled Cython Extensions on macOS

When debugging in PyCharm on macOS or Linux, you may have noticed the little popup which asks whether you’d like to install the Cython extensions. We hope many of you have already done this, but in case you haven’t yet, you now don’t need to anymore on macOS. This is good news, as it makes the PyCharm debugger a lot faster:

Debugger Performance with Cython

Of course, the debugger with Cython extensions works with your Python code, you don’t need to write Cython to use it.

Further Improvements

  • A critical bug that resulted in some users having to wait 5-10 seconds until their script started has been resolved
  • File watchers now have a ‘Run on external change’ option, this will make sure that your JS/CSS preprocessor runs when you change branches.
  • Desktop entries for PyCharm installed using snap, on Ubuntu 17.10 have been fixed.
  • And more, have a look at the release notes for details

If these features sound interesting to you, try them yourself:

Get PyCharm 2017.3 EAP 8

If you are using a recent version of Ubuntu (16.04 and later) you can also install PyCharm EAP versions using snap:

sudo snap install [pycharm-professional | pycharm-community] --classic --edge

If you already used snap for the previous version, you can update using:

sudo snap refresh [pycharm-professional | pycharm-community] --classic --edge

As a reminder, PyCharm EAP versions:

  • Are free, including PyCharm Professional Edition EAP
  • Will work for 30 days from being built, you’ll need to update when the build expires

If you run into any issues with this version, or another version of PyCharm, please let us know on our YouTrack. If you have other suggestions or remarks, you can reach us on Twitter, or by commenting on the blog.

Posted in Early Access Preview | Tagged | Leave a comment

Webinar Recording: “GraphQL in the Python World” with Nafiul Islam

Yesterday’s webinar on GraphQL was a hit: one of our highest-registrations ever, and Nafiul Islam gave a thorough introduction with live coding and answering a big list of audience questions:

Specifically, Nafiul covered:

  • An explanation of GraphQL
  • Usage of the visual GraphiQL client against the GitHub GraphQL endpoints
  • Writing a todo application in Flask which publishes GraphQL endpoints
  • Inspecting those endpoints via a browser

The recording is 54 minutes. If you have any questions about the material, post them here and we’ll either try to answer or ask Nafiul to pitch in. Thanks to Nafiul and thanks to everyone that participated.

-PyCharm Team
The Drive to Develop

Posted in Video, Webinar | 4 Comments

PyCharm 2017.2.4 is out now

We’re happy to announce that PyCharm 2017.2.4 is now available from our website. You can also update from within PyCharm (Help | Check for Updates) or by using JetBrains Toolbox, our tool for keeping all your JetBrains updated.

Improvements in this minor update:

  • a fix for StackOverflowException during code analysis
  • a fix for unresolved True, False and None keywords in docstrings
  • a fix for unexpected arguments inspection in functions with keyword-only arguments

For more details, please see the release notes.

Get it now from our website! If you have any questions or comments, you can leave them as a comment on this blog post, you can also reach out to us on Twitter.

Posted in Release Announcements | Tagged | 4 Comments

PyCharm 2017.3 EAP 7

The latest and greatest early access program (EAP) version of PyCharm is now available from our website:

Get PyCharm 2017.3 EAP 7

SSH Config Support for Database Connections

You’ve been able to connect to remote interpreters using your SSH config file’s settings since a couple of EAPs already, and now we’ve brought this new functionality to SSH proxies for databases as well. If you use bastion hosts to connect to your RDS / EC2 databases on AWS, this will help you out a lot.

SSH Config for Database Connection

Angular 2 Property Binding

PyCharm now supports code completion for Angular 2 property binding. If you haven’t used them yet, check the Angular docs for details.

Angular 2 Property Bindings

Further Improvements

  • The IDE will now no longer flag a raise with no arguments in a finally block
  • We’ve made some improvements to the Docker run configurations, let us know how you like them in the comments
  • And more, have a look at the release notes for details

If these features sound interesting to you, try them yourself:

Get PyCharm 2017.3 EAP 7

As a reminder, PyCharm EAP versions:

  • Are free, including PyCharm Professional Edition EAP
  • Will work for 30 days from being built, you’ll need to update when the build expires

If you run into any issues with this version, or another version of PyCharm, please let us know on our YouTrack. If you have other suggestions or remarks, you can reach us on Twitter, or by commenting on the blog.

Posted in Early Access Preview | Tagged | Leave a comment

PyCharm 2017.2.4 RC now available

Happy Friday everyone,

Today we’ve published PyCharm 2017.2.4 Release Candidate. It’s now available for download from Confluence.

Important bug fixes in this version:

  • a fix for StackOverflowException during code analysis
  • a fix for unresolved True, False and None keywords in docstrings
  • a fix for unexpected arguments inspection in functions with keyword-only arguments

Read full release notes

Download it now from the Confluence EAP page

We’d like to invite you to try out this version, if you run into any issues please let us know on YouTrack.

Using Ubuntu? Try installing PyCharm 2017.2.4 RC with snap packages:

1. Install PyCharm Professional Edition or PyCharm Community Edition EAP from the ‘edge’ channel:

$sudo snap install [pycharm-professional | pycharm-community] --classic --candidate

2. Run PyCharm:

$[pycharm-professional | pycharm-community]

Give us your feedback on your snap installation experience on Twitter or in comments to this blog post! Read more about how snaps work.

Posted in Early Access Preview | Tagged | Leave a comment

PyCharm 2017.3 EAP 6: Improved interpreter selection interface

The latest and greatest early access program (EAP) version of PyCharm is now available from our website:

Get PyCharm 2017.3 EAP 6

Improved Python interpreter selection interface

In the previous PyCharm 2017.3 EAP 5 build we introduced a new UI for configuring project interpreters in your existing projects. To recap:

  • The project interpreter dropdown in Settings | Project | Project interpreter now has only the virtualenvs you have specifically configured for that particular project, and virtualenvs that you’ve specifically configured to be shared between projects: venvselector
  • Under the gear icon you will find ‘Add Local’ and ‘Add Remote’. Local interpreters are those that run directly on your operating system; remote interpreters include Docker and Vagrant in addition to any remote computers you connect to through SSH:localremote
  • A new “Add local interpreter” dialog makes it much easier to configure a new virtualenv or conda environment and make it available for other projects:newdialog

This build has a new UI for configuring project interpreters during the project creation.
Go to File | New project…:newproject

In the New Project dialog you will get a similar experience to the one described above for the existing project interpreter selection. Here, if you’d like to reuse an existing virtualenv or system interpreter, you can select it under ‘Existing interpreter’. And if you create a new virtualenv and would like to reuse it in other projects in the future, you can check the ‘Make available to all projects’ option and it will appear in the dropdown on the project interpreter page in all of your other projects.

Install PyCharm with snap packages

Starting from this EAP build, we are offering an alternative installation method using snap packages for Ubuntu users. Snaps are quick to install, safe to run, easy to manage and they are updated automatically in the background every day, so you always have the newest builds as soon as they’re out. If you are running Ubuntu 16.04 LTS or later, snap is already preinstalled, so you can begin using snaps from the command line right away.

Installing PyCharm Professional or Community Edition 2017.3 EAP is now as easy as this simple command (please make sure you use just one option from square brackets):

$sudo snap install [pycharm-professional | pycharm-community] --classic --edge

This command will install PyCharm Professional or Community from the “Edge” channel where we store EAP builds. Please note, the snap installation method is experimental, and currently, we officially distribute only PyCharm 2017.3 EAP in the Edge channel.

Depending on which snap you’ve installed, you can run your new PyCharm 2017.3 EAP with:

$[pycharm-professional | pycharm-community]

You can now use other snap commands for managing your snaps. The most frequently used commands are:

  • snap list – to list all the installed snaps,
  • snap refresh –edge – to manually update a snap from the edge channel
  • sudo snap remove – to remove a snap from your system
  • sudo snap revert – To revert a snap to the previously installed version should there be anything wrong with the current version

Snap supports auto updates from the stable channel only. Since we distribute 2017.3 EAP builds in the edge channel, to update to the next EAP build, you’ll need to manually invoke:

$snap refresh [pycharm-professional | pycharm-community]--classic --edge

Read more about how snaps work and let us know about your experience with using snap for installing and updating PyCharm 2017.3 EAP so we can consider whether snaps might be something we can utilize for our official stable releases. You can give us your feedback on Twitter or in the comments to this blog post.

Other improvements in this build:

  • Foreign Data Wrappers support for Postgres (PyCharm Pro only)
  • New folder-based grouping for data sources (PyCharm Pro only)
  • Completion for environment variables in the REST client (PyCharm Pro only)
  • Improved JavaScript support (PyCharm Pro only)
  • Various fixes for the Python debugger, console and Python code insight
  • And more, have a look at the release notes for details

If these features sound interesting to you, try them yourself:

Get PyCharm 2017.3 EAP 6

As a reminder, PyCharm EAP versions:

  • Are free, including PyCharm Professional Edition EAP
  • Will work for 30 days from being built, you’ll need to then update when the build expires

If you run into any issues with this version, or any other version of PyCharm, please let us know on our YouTrack. If you have any suggestions or remarks, you can reach us on Twitter, or by commenting on the blog.

Posted in Cool Feature, Early Access Preview | Tagged | 5 Comments

Interview: Quazi Naiful on Python web frameworks and GraphQL

Web development has long been a key part of Python’s appeal. In modern web apps, rich frontends work with Python backends over REST. But even that’s getting re-examined, with recent interest in GraphQL as a query language for web data.

Want an introduction to what GraphQL means for Python? We’re fortunate to have Quazi Nafiul as the presenter for the “GraphQL in the Python World” October 31st webinar on October 31st. Quazi is known in PyCharm as the author of Mastering PyCharm, is a long-time Python web developer, and currently a software engineer at Suitsupply.

p8r

To set the scene for the webinar, we asked Quazi to join us for a quick interview.

Thanks for joining us on the webinar. Let’s jump right into GraphQL. What is one killer feature about it that you really like?

Declarative data fetching. This feature allows you to get exactly what you ask for and makes versioning much easier since one simply adds more functionality through extending a GraphQL model (very similar to a resource).

Give us a little background on yourself, your Python origin story and what you’re doing now.

My university was predominantly C++ and Java, and those languages although powerful, never felt fast to develop with for me. So, I was trying to look for something different and stumbled onto MITx’s Introduction to Computer Science, which taught the course in Python. I’ve been using Python ever since. After the MITx course, I started hanging out on StackOverflow, and realized how little I knew. I tried to expand my understanding by answering questions on the site.

In the meantime, I started doing consultancy work for companies in NY and London. I also was a developer evangelist for a short time. I wrote plenty of bad code back then. I also started writing a book on PyCharm around this period. Once the book was complete and published, and I got bored with remote work, I started applying to companies around the world and eventually ended up in Amsterdam as a software developer.

Similar question: what did you start with for Python web frameworks, what have you used, and what’s your preference now?

I started with Django, quickly moved to Flask and now I use both Django and Flask in my day job. I remember at the time Django had the most comprehensive beginner documentation you could find. I didn’t understand a lot of it when I was first starting out, so every part of the tutorial would send me down a rabbit hole. Eventually, I was able to understand how HTTP as a protocol works. Funnily enough, I thought that one always interacts with a database with an ORM, and as a result, my understanding of SQL was a little hampered in the beginning, but I eventually managed to fix that.

Just to close out on Python web frameworks, what do you think is “next big thing”?

I honestly don’t know. Python web frameworks market shares seem to be in a kind of equilibrium at the moment. Flask serves you well if you need to build something small to medium-sized, but indeed you can build huge applications with it. Django is amazing if you just want to get up and running with a CRUD application that sits on top of a regular RDBMS. I think Django will continue to have a strong presence with the resurgence of SQL and SQL databases. Pyramid is great if you need something super flexible, and you can hack to its very core, but it does not have ecosystems as strong as Flask or Django.

Back to GraphQL. What kinds of things will you be showing, and what should people expect to learn in the webinar?

My aims are twofold. The first thing is to introduce GraphQL, and really just show people how powerful it is, and how its features can bring tangible benefits to your team and allow your businesses to move forward. The second part of that is to show that you can use all the power that GraphQL brings along with the frameworks and libraries that you’re already used to, like Flask, Django, and SQLAlchemy.

Do you plan to have any working code in advance that people can review?

Yes, absolutely. I want people to be able to follow what I’m doing, and also take that code, and work on their own implementations and ideas. I’m going to be building a generic application, but I’ll do my best to showcase the most important features, so that they can take that code and start playing around on their own.

Does GraphQL mean throwing out your current database?

Nope. You don’t even have to throw out your current ORM (in most cases). If you’re using Django or SQLAlchemy, then you can just re-use your existing models! Although, it does not have the best support for Mongo or other NoSQL databases, and so you might need to build integrations with those databases.

Every “next big thing” has some rough edges. What are tricky parts for GraphQL in Python?

I would say having a standardized form of authentication. GraphQL implements a level-based authentication system (or rather you can implement it). I would say that a lot of different services that are used to HTTP REST, might not really like this, since clients don’t exist for all languages. One example would be Salesforce APEX and .NET.

Posted in Interview, Uncategorized, Webinar | Leave a comment