This was my first trip to PyCon, and I can definitely say it is a strange bird as conferences go (surprisingly emotional). On the more standard conference side of it, besides a lot of hacking and people trying to sell things or hire people, these elements stood out:

Python 2:
Everyone is sort of dancing on Python 2’s grave in the Python community. There are stickers of its grave that were so popular I could only get ones that have a company name on them as well. The transition is firmly established as a Good Thing, and it is now seen as a problematic issue to have Python 2 in an environment (*glares at Debian*). This is probably well-known here, but it bears mentioning.  Also: https://pythonclock.org/

Black:
The auto formatter black is catching on a lot. Django is considering a move to it. CircuitPython has an open issue to move everything in basically all libraries that isn’t C to it. It is becoming a fairly well-regarded way of generating low-diff code by way of simply not making formatting decisions (which is why it has no configuration except the CLI arg to change line length). I’ve been using it on things I touch where it makes sense.

PEP554:
The effort to allow sub-interpreters and make threading so much more disastrously fun is moving right along. If you hate the GIL, you’ll like this or hate this even more. It is expected to actually show up in python 3.8-3.9 somewhere.  This means, it probably won’t show up in Buster?  However, with the power of pyenv and similar things, actual concurrency in Python may be coming to a Toolforge or someone’s VPS project near you one day.  Until then, it’s kind of cool to know it might be coming.
https://www.python.org/dev/peps/pep-0554/

pipenv:
Pipenv is still not “standard”, but it is picking up steam. If other efforts to package up OpenStack in deb, containers, etc. fail, the specificity of using Pipenv.lock files and such may turn pipenv into a possible very good deploy alternative. They don’t usually seem to want to say it, but I will, it makes deploying python as well-developed as deploying nodejs or rails ;-)
https://github.com/pypa/pipenv

There was a lot of other cool stuff going on, but a lot of it was not the most pertinent things to WMCS, perhaps.  We won’t get the f-strings that everyone’s excited about until Buster (and can’t use them reliably until that’s the old-stable), and the walrus operator won’t actually end up in Debian until…the Future (https://www.python.org/dev/peps/pep-0572/).  Apparently Python is also the primary language choice of dystopia (see also TensorFlow)—nothing new but really in-your-face at PyCon.  It is also very clear that people would like to know how to deploy Python on Toolforge and our setup there.  I was asked repeatedly to give a talk/demo, do an open space or have a development sprint on our stuff (dev sprints are hard when you are on Gerrit, though—the tutorial for other folks is 100% github/lab).  I am interested in trying to do one or more of those next year if everything aligns.


Brooke Storm
Operations Engineer
Wikimedia Cloud Services
bstorm@wikimedia.org
IRC: bstorm_