The Modern Command-Line Tool Stack: Pipenv, Click, and Friends
By Matt Behrens

Until recently, I was still writing Python command-line tools like it's the mid-00s. In this talk, you'll learn about the tools I found to modernize development, installation, and isolation as well as the libraries that make building CLIs and working with the OS easy. We'll cover Pipenv and how best to use it with setuptools, as well as Click and other libraries useful for this task.

Saturday 11:15 a.m.–11:45 a.m. in Barbie Tootle

I've been a Python developer since 2001, and when I sit down to make a new command-line Python tool, I often write them like it's still early last decade. Late last year, I built a new command-line program that has proven to be reasonably popular, but I found that getting my tool up and running cleanly, with predictable dependencies, was a problem.

Early this year, I decided to modernize this particular project, simplifying it so that anyone could get set up with exactly the same dependencies I had, and improving the user experience by making the tool a modern one.

This talk will cover how I use Pipenv to modernize the experience of using my tool after cloning it from GitHub, transparently setting up a virtualenv in one command without reconfiguring their working environment.

I'll also talk about libraries I now use to build the app, including Click, and a number of other things both in and out of the standard library that give the tool a modern command-line UX and make it a good citizen of the OS.

Matt Behrens

Matt has been a software developer and consultant with Atomic Object for three years; during that time and for decades before, he's worked and supported on several full-stack applications on the web, desktop, servers, and in the mobile space, across several different industries.

Matt has always had a love for networking since the day he first strung copper across his parents' basement to get his stack of cast-off PCs talking to each other and the rest of the world, and to this day he's happiest working on applications where he gets to roll up his sleeves and get systems talking to each other.