PyCharm 2018.2 EAP 3

The third Early Access Program (EAP) version of PyCharm 2018.2 is now available. We’d like to invite you to download this version from our website.

New in PyCharm 2018.2 EAP 3

pytest fixtures support

With pytest fixtures you can create small test units which can be reused across the testing module simply by adding the @pytest.fixture decorator to them. In this EAP we introduce pytest fixtures support, including:

Try pytest fixtures support in this fresh EAP build and let us know if there’s something else we could improve. Create your feature requests and bugs in our public issue tracker.

Learn more about pytest support in Pycharm.

attrs library support

attrs

attrs is the Python package that brings back the joy of writing classes by relieving you from the drudgery of implementing object protocols (aka dunder methods).

PyCharm 2018.2 supports attrs providing correct autocompletion and error checking for classes defined with the @attr decorator. There is a number of features related to attrs support which are not implemented yet, but we’re committed to finish their implementation by the 2018.2 release date.

More details on attrs support in PyCharm

On-demand evaluation in Debugger and Python console

py_change_loading_policy

We’ve added a new option that prevents automatic evaluation of variables during debug sessions. This option is especially useful if some of your variables take time to be evaluated and you don’t need values for all the variables you have in your project.

Learn more on how to manage loading policies and enable on-demand value evaluation.

PyCharm 2018.2 EAP 3 Release Notes

Interested?

Download this EAP from our website. Alternatively, you can use the JetBrains Toolbox App to stay up to date throughout the entire EAP.

If you’re on Ubuntu 16.04 or later, you can use snap to get PyCharm EAP, and stay up to date. You can find the installation instructions on our website.

PyCharm 2018.2 is in development during the EAP phase, therefore not all new features are already available. More features will be added in the coming weeks. As PyCharm 2018.2 is pre-release software, it is not as stable as the release versions. Furthermore, we may decide to change and/or drop certain features as the EAP progresses.
All EAP versions will ship with a built-in EAP license, which means that these versions are free to use for 30 days after the day that they are built. As EAPs are released weekly, you’ll be able to use PyCharm Professional Edition EAP for free for the duration of the EAP program, as long as you upgrade at least once every 30 days.

Posted in Early Access Preview | Tagged | 7 Comments

PyCharm 2018.2 EAP 2

The second Early Access Program (EAP) version of PyCharm 2018.2 is now available. We’d like to invite you to download this version from our website.

New in PyCharm 2018.2 EAP 2

Flexible Package Manager

ij_show_earlier_releases

Previously, PyCharm’s package manager listed all versions of packages whether they were stable or pre-release. In this EAP we changed this behavior, so now by default PyCharm shows only stable versions. We added an option to install pre-released versions though. If you want to extend the scope of the latest available versions for packages to any pre-released versions (such as beta or release candidate), try the Show early releases option.
Learn more about package management in PyCharm.

Attach Debugger to Process Refined

Attach to process is one of the coolest PyCharm’s productivity features. Using this feature you can attach the debugger to a running Python script launched either outside or inside PyCharm. In this EAP we’ve added an option to filter the visible list of processes to attach. To enable filtering, add your pattern to the corresponding field in the Python Debugger settings (Settings/Preferences | Build, Execution, Deployment | Python Debugger ). For example, you can put “Scientific” if you want to attach only processes matching this string:

py_attachToProcess_filter
Learn more about the Attach to Process feature.

New Front-End Development Functionality

As you might already know, PyCharm bundles all features available in WebStorm, a front-end development IDE by JetBrains. With this EAP build we’ve adopted a ton of WebStorm new features:

  • Completion for Vue events and event modifiers
  • Debug scratch files
  • TypeScript 2.9 support
  • Improved Angular support with faster project startup
  • Code style rules from all types of ESLint and TSLint configuration files automatically applied
  • And more. Read the WebStorm EAP blog post to learn about all new front-end features which are also available in PyCharm

Interested?

Download this EAP from our website. Alternatively, you can use the JetBrains Toolbox App to stay up to date throughout the entire EAP.

If you’re on Ubuntu 16.04 or later, you can use snap to get PyCharm EAP, and stay up to date. You can find the installation instructions on our website.

PyCharm 2018.2 is in development during the EAP phase, therefore not all new features are already available. More features will be added in the coming weeks. As PyCharm 2018.2 is pre-release software, it is not as stable as the release versions. Furthermore, we may decide to change and/or drop certain features as the EAP progresses.
All EAP versions will ship with a built-in EAP license, which means that these versions are free to use for 30 days after the day that they are built. As EAPs are released weekly, you’ll be able to use PyCharm Professional Edition EAP for free for the duration of the EAP program, as long as you upgrade at least once every 30 days.

Posted in Early Access Preview | Tagged | 6 Comments

PyCharm 2018.1.4

We’re happy to announce that today a new version of PyCharm is available for download from our website.

Improved in this Version

  • Various issues related to installing packages, both with Conda and virtualenv, were resolved in this version
  • Compilation errors in PL/SQL procedures are now shown in the console output. Did you know that you can manage Oracle databases (and other major databases) in PyCharm Professional Edition? PyCharm Pro bundles all database features from DataGrip, the database IDE by JetBrains.
  • Many small UI bugs were fixed, for example the ‘Tip of the Day’ screen was incorrectly displayed on Windows if a display at 125% scale was used.
  • Read more in our release notes
Posted in Release Announcements | Tagged | 1 Comment

Hotfix for PyPI compatibility for older PyCharm versions

Latest versions of pip starting from v10.0 changed parts of their APIs. That’s why several older versions of PyCharm became incompatible with the newer pip versions. If you use previous PyCharm versions and want to use latest versions of pip, please update PyCharm. Here’s the list of Pycharm versions updated:

  • 2016.3.6
  • 2017.1.8
  • 2017.2.7
  • 2017.3.6

If you’re using a version with a minor update (last number) lower than those mentioned, please update PyCharm. If you wish to update to the latest version (2018.1.3 at the time of writing), get it here. If you wish to get one of the hotfixed older versions, you can find the appropriate release on our previous versions page.

Posted in Release Announcements | Tagged | Leave a comment

PyCharm 2018.1.4 RC

We’re happy to announce that the release candidate for a new version of PyCharm is now available: get it now from our confluence page.

Improved in this Version

  • Various issues related to installing packages, both with Conda and virtualenv, were resolved in this version
  • Compilation errors in PL/SQL procedures are now shown in the console output. Did you know that you can manage Oracle databases (and other major databases) in PyCharm Professional Edition? PyCharm Pro bundles all database features from DataGrip, the database IDE by JetBrains.
  • Many small UI bugs were fixed, for example the ‘Tip of the Day’ screen was incorrectly displayed on Windows if a display at 125% scale was used.
  • Read more in our release notes

Do you have any feedback for us?

This is a preview version, and we’d like to hear if this version works well for you. If you are facing any issues, please reach out to us and let us know. You can report a ticket on YouTrack, our issue tracker, or you can ask our customer support, or send us a message on Twitter.

Posted in Early Access Preview | Tagged | Leave a comment

PyCharm 2018.2 EAP 1

We’re getting started with the Early Access Program for PyCharm 2018.2! Even better, you can download the first version now from our website!

New in PyCharm

Improved Pytest support: Fixtures, and more

EAP 1 - pytest

PyCharm 2018.2 supports using fixtures in Pytest. Using fixtures allows you to separate your setup code from the actual tests, making for more concise, and more readable tests. Additionally, there have been improvements to code navigation and refactoring Pytest tests, and to using parametrized tests.

You might also have noticed that PyCharm’s looks have been updated slightly. In PyCharm 2018.2 we’re introducing a new set of icons that are mostly gray, and use color only to highlight important icons.

Further Improvements

  • Type inference for math functions in Python 3 now works correctly
  • An issue where duplicates were shown in autocompletion popups has been resolved
  • Non-English characters in Django templates are now correctly handled
  • And more: read the release notes for details

Interested?

Download this EAP from our website. Alternatively, you can use the JetBrains Toolbox App to stay up to date throughout the entire EAP.

If you’re on Ubuntu 16.04 or later, you can use snap to get PyCharm EAP, and stay up to date. You can find the installation instructions on our website.

PyCharm 2018.2 is in development during the EAP phase, therefore not all new features are already available. More features will be added in the coming weeks. As PyCharm 2018.2 is pre-release software, it is not as stable as the release versions. Furthermore, we may decide to change and/or drop certain features as the EAP progresses.

All EAP versions will ship with a built-in EAP license, which means that these versions are free to use for 30 days after the day that they are built. As EAPs are released weekly, you’ll be able to use PyCharm Professional Edition EAP for free for the duration of the EAP program, as long as you upgrade at least once every 30 days.

Posted in Early Access Preview | Tagged | 5 Comments

PyCharm 2018.1.3

PyCharm 2018.1.3 is now available for download. Please update PyCharm by choosing Help | Check for Updates, or by downloading the new version from our website.

What’s New

Python Console Messages

Since several versions, PyCharm has folded the startup messages of the Python interpreter in the Python console. This means that you have more room to write your own code, yet you can still see the startup messages by hovering over the folded output.

Unfortunately, if you had configured custom startup code (which you can do in Settings | Build, Execution, Deployment | Console | Python Console), your own code’s output would be folded as well. In PyCharm 2018.1.3, we’re making sure to only fold large startup messages (like IPython’s), and show the output of your custom code:

IPython Console

Further Improvements

  • In the RC, there was an issue with choosing a service in a Docker Compose project, this was resolved in this version.
  • An issue with remotely debugging Python code on Windows computers was resolved
  • Several issues regarding Angular 6 were resolved. Did you know that PyCharm Professional Edition comes with all JavaScript support from WebStorm?
  • Read more in our release notes
Posted in Release Announcements | Tagged | 3 Comments

PyCharm 2018.1.3 RC

We’re happy to announce that the release candidate for a new version of PyCharm is now available: get it now from our confluence page.

What’s New

Python Console Messages

Since several versions, PyCharm has folded the startup messages of the Python interpreter in the Python console. This means that you have more room to write your own code, yet you can still see the startup messages by hovering over the folded output.

Unfortunately, if you had configured custom startup code (which you can do in Settings | Build, Execution, Deployment | Console | Python Console), your own code’s output would be folded as well. In PyCharm 2018.1.3, we’re making sure to only fold large startup messages (like IPython’s), and show the output of your custom code:

IPython Console

Further Improvements

  • An issue with remotely debugging Python code on Windows computers was resolved
  • Several issues regarding Angular 6 were resolved. Did you know that PyCharm Professional Edition comes with all JavaScript support from WebStorm?
  • Read more in our release notes
Posted in Early Access Preview | Tagged | Leave a comment

Webinar Recording: “Set Theory and Practice: Grok Pythonic Collection Types” with Luciano Ramalho

Last Wednesday we were fortunate to have Luciano Ramalho with us for a webinar “Set Theory and Practice: Grok Pythonic Collection”, using material from his book Fluent Python. The recording is now available.

Luciano covered many topics related to the Python data model with an emphasis on collection-like objects:

  • Python collection types
  • Theory and algebraic logic behind set-less and set types
  • Python protocols and operations for collections
  • Code examples for implementations of kinds of sets

Luciano’s slides and repo are also available. If you have any questions for us or for him, please feel free to leave comments below on this blog post.

-PyCharm Team-
The Drive to Develop

Posted in Video, Webinar | Tagged | Leave a comment

Interview with Luciano Ramalho, webinar presenter this Thursday

Python’s combination of power and simplicity has long been one of its key selling points. This includes its data model. Luciano Ramalho, who is our guest presenter for the next webinar, recently wrote about this in Fluent Python, an O’Reilly book widely considered one of the best recent books on Python.

r2

There’s another well-known strength of Python: its community, and Luciano is one of those long-time key people who is warm, inviting, smart, and part of Python’s appeal. We’re lucky to have him with us for the last webinar before PyCon and decided to do a quick interview with him.

Give us a sneak peak on what you’re going to discuss in the webinar and what audience it is aimed at.

What makes an API “Pythonic”? That’s somewhat subjective, but we can learn a lot by looking at concrete examples like the built-in set types: set and frozenset. They “feel right” because they leverage some of Python’s strongest features. The set types are iterable, so they play well with core Python constructs and with powerful libraries like itertools. They also provide handy methods that consume iterables of other types, so you can compute the union of a set and a list, for example. And they leverage operator overloading, enabling concise coding of set expressions.

After covering the strengths of Python sets, I will show how to implement a new set class optimized for dense sets of integers. This talk will be accessible to anyone who knows how to write object-oriented code in Python.

This is part of what you evangelize in the book about the hidden beauty of Python’s data model. Can you explain more about that?

Once you know the basics, I believe anyone interested in mastering Python needs to learn about the Data Model: the set of core interfaces that make the language and standard library so consistent and so powerful.

For example, we expect any collection type in Python to be iterable, so that we can use it in for loops and with handy functions such as sorted, any, all, dropwhile etc. The Data Model specifies the interfaces you need to implement to build an iterable collection.

For debugging and testing, we want objects to be printable and comparable. Supporting operators such as + to join custom data structures? The Data Model explains how to do all of those things and more.

How are book sales and what was it like writing an O’Reilly book?

I was lucky because I decided to write an intermediate Python book when the language was growing faster than ever, and there were lots of basic books but not so many intermediate ones. So Fluent Python was O’Reilly’s best selling item the month after its release and has been going strong since then. It’s also been translated into 7 languages so far.

I’ve always been an avid consumer of O’Reilly books, so writing one for them was a dream come true. My editor, Meghan Blanchette, was excellent, and I could not have asked for a better team of tech reviewers: Alex Martelli, Anna Ravenscroft, Lennart Regebro, Leonardo Rochael, and Victor Stinner.

I also enjoyed writing the book in Asciidoc: I was a fan of RestructuredText, but Asciidoc has friendlier syntax and is better suited for book writing because it was designed to target DocBook, a publishing industry XML standard. You can render Asciidoc to HTML, ePub, PDF and other formats using Python tools, but the best toolset is Asciidoctor, written in Ruby.

Let’s go back in time. You and I became really good friends in the late 90’s, when Python was really taking off and you were the key person in Brazil. Can you give us your Python origin story?

For me, the best thing about getting involved with Python was making friends like you, Paul. I started doing Web development in 1994, using the most popular language for that purpose at the time: Perl. Before that, I had taught myself object-oriented programming with Smalltalk, but Perl did not have a strong OO culture and class libraries, even after Perl 5 came out.

In Perl forums, it was common for people to suggest looking at Python code for inspiration about how to design classes in a language that had more similarities with Perl than Smalltalk or C++ did. So I decided to check out that obscure language and fell in love as soon as a read the first chapter of Guido van Rossum’s tutorial. It seemed as elegant as Smalltalk, but with a more readable Algol-like syntax, and it was as practical as Perl.

In 1998 I started a company focusing on publishing systems for large-scale Web sites. I chose Python as our language, and I chose an even more obscure but incredibly advanced Web framework called Zope as the basis of our systems. Before that year was over, we had deployed a new publishing system for the most important Brazilian IT news portal at the time, and it became one of the first marketing cases for Zope worldwide. You were one of the makers of Zope, and that’s how our friendship started.

You historically have done a ton of teaching. What’s unique about Python as a teaching language?

Python is an awesome teaching language for several reasons. First, because it is a “real” language — not a toy — so people use it in many domains, and there are Python libraries for a lot of different domains. This is the reason why it replaced Scheme as the main language at MIT’s introductory programming classes.

Second, it is easy to learn because it has a simple syntax, very consistent semantics, and a fail fast philosophy: Python “refuses to guess” so it raises exceptions where other scripting languages fail silently or behave unexpectedly (looking at you, JavaScript, Perl, and PHP).

Third, Python’s interactive console is a great learning and exploration tool. IPython and Jupyter Notebooks make that even better. Now we have a virtuous cycle: as Python becomes more widely used for teaching, more teaching resources are available for it, like Philip Guo’s Python Tutor, programmable devices like the BBC micro:bit and Adafruit’s CircuitPython products, MOOCs, beginner’s books, academic textbooks, etc.

You’ve always been a language junkie and that’s accelerated recently. Based on that, what’s the next big thing for Python, and the next big thing outside of Python?

I learned about a dozen languages before Python, but I got a bit lazy to learn others because Python is so practical and fits my brain so well. I was very interested in Ruby around 2006, and a few times I’ve tried hard to like JavaScript, but failed. I became more interested in concurrency because of the success of Node.js. But JavaScript, Python, and Ruby are not ideal to tackle large-scale concurrency challenges. Yes, we can do efficient “IO bound” programming in these languages, but I’ve learned that IO bound systems become CPU bound as they grow: lots of small functions slow down the event loop, which slows down everything else. To deal with this, the language runtime must be able to spread the load over multiple CPU cores, so that no single slow function blocks all others. So I am very interested in languages that were designed from the start for concurrent programming. Right now, I am focusing on Go and Elixir.

The next big thing for Python seems to be type hinting and all the tooling it will enable. But I would be most excited if we got rid of the infamous GIL (Global Interpreter Lock), or found a way to work around it that’s mostly transparent to the user. However, the GIL makes writing Python extensions in other languages easier than it would be otherwise. And Python owes much of its popularity to the huge number of extensions people have written. So the GIL is like a deal we made with the devil. We had a lot of success… Can we walk away from that deal?

After Go and Elixir, I want to dive into Rust, but for a different reason: it seems to be a great language for writing Python extensions. I also want to try Cython. As long as the GIL is around, we might as well enjoy its benefits by writing more awesome extensions.

Posted in Interview, Webinar | Tagged | Leave a comment