What’s New in PyCharm 2018.1
Python 3.7 support, code cells for scientific development, easier configuration of SSH-based Python interpreters, and partial git add.
Use the newest Python features with PyCharm: dataclasses, from __future__ import annotations, and more.
PyCharm 2018.1 makes it even easier to use type hints to annotate your code. Type hints are now inherited from superclasses, and you can use typing.NewType to define custom types. If you prefer to leave things implicit, we’ve also improved the type inference for collections.
When writing scientific code, it doesn’t always make sense to run the whole file. Run only the part of the file you are working on – and never wait to reload your data. Just turn on the scientific mode (View | Scientific Mode) and try them now!
Get started with your analysis quickly by creating a scientific project. The scientific project will create a folder structure for your data and a Conda environment for you right away. Using a custom Conda installation? You can now tell PyCharm which Conda executable to use.
Flask has introduced the `flask` commands in its newer versions. You can now create run configurations that use the `flask` commands in PyCharm.
Do you like granular commits? PyCharm 2018.1 lets you choose exactly which changes to include in your commit.
Rebasing is a task that few developers look forward to. Ease the pain with PyCharm’s new rebase integration.
Do you like to run code on remote machines? Whether it's an EC2 box or your Raspberry Pi, PyCharm makes it easy to connect.
We’ve added support for Docker Compose 3.3 and later, improved the performance of Docker Compose-based interpreters, and changed the output to make the logs look more like they do when using command-line Docker.
PyCharm Professional Edition bundles all of the features of JetBrains DataGrip, our database IDE. To take advantage of this easy-to-use integration, you can now find tables of connected databases using the 'Find class' window.
When setting up an SSH interpreter, there are a couple of things PyCharm needs to transfer: first are some tools to run and debug the code remotely. These tools then generate skeletons which, with the remote standard library, need to be transferred back to the local machine. We have made several large improvements to the way we do this, and it is significantly faster now. Please keep in mind though, that the performance is dependent on certain factors, including your connection speed, and the number of packages you have configured on the remote interpreter.
PyCharm’s debugger is written mostly in Python and so we’ve been able to alleviate some of the performance bottlenecks by using Cython to compile our code. Windows users have been getting a precompiled version. Our macOS users now also get a speedup of up to 27x by default. On Linux, you should still click ‘Install’ when prompted about the debugger speedups.
If you store large amounts of data in your variables, e.g. large DataFrames, you might have had to wait a while during debugging as the values were loaded by PyCharm. In 2017.3 these values are loaded asynchronously, and you won’t have to wait for the huge DataFrame to load before you see your other variables.
Unless you’re doing a replication study, data analysis is an exploratory and interactive process. To make this easier, we’ve created a data science mode which shows you your data while you are working on it. As visualizing your data is a key step in finding new links, we’ve integrated a matplotlib viewer as well.
When developing an API you often have to send it a complex request to test your functionality. That’s why we’ve built an all-new REST client for PyCharm 2017.3. Try it yourself: create a scratch file (Ctrl+Alt+Shift+Insert, Cmd+Shift+N on macOS), and choose ‘HTTP Request’.
PyCharm 2017.3 is ready for the newest version of Python’s most popular web framework.
One of the few things in Python that confuse developers are virtualenvs. We’ve been working on making interpreter configuration easier, and you can see the first results in PyCharm 2017.3.
If you use jump hosts, or another complex SSH setup, you’ll be happy to learn that PyCharm 2017.3 will use the settings from your regular SSH config file.
Several Python frameworks should be run using a module, you can now use PyCharm to run this code exactly like you would from the command line.
An oft-requested feature is the ability to give function calls a different color; this is now available in PyCharm 2017.3. In addition, you can also change the color of type hints in your code.
Have you ever debugged code that takes a while to start up, and stepped just a couple lines too far? In PyCharm 2017.3 you can tell the Python interpreter where to go next, whether forwards or backwards. Just right-click on the code and choose ‘Jump to Cursor’
For those of you who work on large projects, you may have noticed that sometimes when you switch branches, it takes a little bit of time for the project to refresh. We’ve made optimizations to make this a lot faster.
A lot of developers work with feature branches. If you work on different tasks in different branches, you’ll appreciate PyCharm remembering the files you were working on in all your branches, and switching to them automatically.
Ever worked on a large data science project with many databases? Or had several environments for your web application? You’ll appreciate the ability to group data sources.
We’ve made a couple of small improvements to make your development experience smoother. Now if you’re writing a call to a function, but you realize you need an additional parameter, you can use the change signature quickfix. If you’re using str.format, PyCharm 2017.2 will check to make sure that you’re providing the right input. Finally, we’ve added autocompletion for type hints.
The PyCharm data view keeps getting better. In 2017.2 we added support for Pandas series in addition to the already-supported Numpy arrays and Pandas DataFrames.
Do you not like typing your keys’ passphrases over and over again? Maybe you’re using ssh-agent or Pageant (PuTTY’s implementation of ssh-agent) to manage your keys. Good news: PyCharm now supports this, so no more need to separately enter your passphrase in PyCharm.
By popular demand, we’ve expanded our support of Docker Compose to Windows. Whether you’re using native Docker for Windows, or Docker Machine, you can now run your code from PyCharm on Windows.
You can now select ‘Attach Console’ on any SQL fragment, whether it’s in your Python code or in a separate file. After letting PyCharm know on which server you’d like to execute the code, you can instantly see what is returned by right-clicking and choosing ‘Execute’ (or by pressing Ctrl+Enter)
If you’re using a PostgreSQL server with multiple databases configured, you now no longer need to configure each database as a separate connection in PyCharm’s database tools.
PyCharm now comes with support for Amazon Redshift and Microsoft Azure databases. Connect to them just like you’d connect to any other database using the database tools. To learn more about this feature, and further improvements to the database tools in PyCharm, check out what’s new in DataGrip. PyCharm Professional Edition comes with most of DataGrip’s features.
Have you ever committed something, and noticed a typo right after? We all have, and PyCharm now makes fixing it easier. Just right click your commit, and choose reword. Made a bigger mistake? Revert will create a new commit that undoes everything the selected commit introduced.
Do you like to keep your commit messages formatted nicely? PyCharm can now help you out by ensuring there’s a blank line between your subject and the commit message body, and keep track of the line length for you.
In React we now support completion and auto-imports for stateless components. For Angular, completion and navigation are now supported for Angular Material attributes.
We’re working on improving the basics: find in path now gets a gutter just like the regular editor. See at a glance which files have been changed, and navigate to related code straight from the results.
Do you have a 4K screen, and another lower resolution screen? We now support per monitor scaling on Windows.