Hey, Pycharm, hey.

Pycharm - main python module in ELDonation Tracker

Back in September I wrote about moving to KDevelop for my larger Python projects and also staying with Kate for my smaller projects. I’ve REALLY been enjoying all the features as I work on more and more complex packages involving lots of files. But for a few episodes of Python Bytes now (and/or maybe Talk Python to Me – they share a host) they’ve been talking about how awesome it is to use an IDE that has a Python debugger built in. It may be that KDevelop has that ability (I’m pretty sure it does for C++), but I’m not sure. I am nearly certain that Pycharm does have a debugger built-in. A while ago I’d set up the Pycharm COPR repo on my laptop. I tried playing with it a little at the time, but I was coding on a very small project without a venv, so things didn’t work out well. (Pycharm is pretty opinionated about the way a Python project should work)

So in light of these recent mentions on the podcasts, I loaded up ELDonation Tracker, since that DOES use a virtual environment. I do have to say that I was pretty darned impressed. Here’s what it loaded up when I opened that folder:

What impressed me most, was that it rendered my readme.md. Rather than guessing at what it will look like on Github based on this view in KDevelop, I’ll know exactly what it’ll look like:

To be fair, KDevelop was created for hacking on C++ for KDE back before Github was even a thing. But it’s still a neat feature. Another thing that could potentially save me some time vs running Sphinx’s make html and then reloading my local page, is that PyCharm also renders rst (Python’s official markdown language):

That could save me a bit of time and it could save a dev team LOTS of man-hours. It was even able to run my unit tests from within PyCharm. Pretty neat vs having to run an entire PyTest run if I just need to check one function or check one test that I’m designing.

As for its Python Parser. It was even more involved than KDevelop – it seems to be running MyPy and PEP-8 automatically. It also offered to run coverage on my file. I couldn’t get the pop-up to show up in the screenshot, but below it was telling me on line 84 that there’s a different way I could do that instantiation. It was also a bit aggressive on some other things that I would probably ignore – like how it has Amnt as a mispelling, but that dictionary key becomes a filename for text output and I’d rather not have it be ridiculously long.

I’d been planning for a few weeks now to write up a blog post documenting all the programs I’m using while programming – IDEs, Editors, Git GUIs, etc. I think I’m going to have to install it on my main dev box (one point against PyCharm is that it can tend to be a bit heavy to run on my laptop) and give it a test run to see if I like it more than KDevelop. Also, Kate blog posts have been pointing to Kate getting better parsers for its languages (not sure if they’ll end up sharing with KDevelop or not) as well as maybe also getting some built-in Git awarements to match their competition in VSCode. So I’m not sure if there’ll end up being ONE IDE/EDITOR TO RULE THEM ALL or not. I also want to try and find some time to explore some Vim plugins, etc for those times when I’m on the commandline or don’t want to fire up a GUI just to do a really quick edit.