Python

It was inevitable I’d write a python section. I’ve been using python since maybe 2012 or 2013?… and I never wrote things down. Instead, I just relied on ripping out some library I’d written somewhere else and made it work in a new location. Recently, I decided I should break that habit, because it is terrible, and it is not hard to release things on PyPi. I also do a lot of contracting, and it would be great to just write some open source software and allow others to use it where ever they want, instead of rewriting the same few libraries for companies over and over again.

With that in mind, below you’ll find all sorts of random things I told myself I should tell others about as well.

new in python3.11

Packages

Favorite packages

I really do love certain libraries for being really useful, and I made a table. I do love a good table.

module Why it’s great
rich Colored and stylized/formatting of text for the terminal
pyyaml process easy yaml config files
wget consistently just download a file without bells and whistles
xdg Grab the user’s configured XDG env vars or use defaults for things such as caching and config files

Installing Packages and Managing Environments

pip

pip is a package installer

pipx

pipx allows you to Install and Run Python Applications in Isolated Environments.

pip is a general-purpose package installer for both libraries and apps with no environment isolation. pipx is made specifically for application installation, as it adds isolation yet still makes the apps available in your shell: pipx creates an isolated environment for each application and its associated packages.

pipx does not ship with pip, but installing it is often an important part of bootstrapping your system.

conda

conda is a data science focused package installer that installs into managed environments.

poetry

poetry is a package installer.

Linters forever

Honestly… flake8 is still the most consistent but ruff is fastest. Here’s a bunch:

  • pycodestyle
  • pydocstyle
  • flake8
  • pyflakes
  • ruff
  • autoimport

Key-Value Store

Python has a built-in persistent key-value store.

Notebooks

Jupyter notebooks are web based program to interactively demo/test code. There’s more info over on our notebook page

What is everyone else doing tho?

Jetbrains and the Python org regularly survey their user base and then publish an open report of the survey results.


Table of contents