Topics covered in this episode:
* Switching to direnv, Starship, and uv*
* rqlite - Distributed SQLite DB*
* Some Markdown Stuff*
Extras
Joke
Watch on YouTube
About the show
Sponsored by PropelAuth: pythonbytes.fm/propelauth77
Connect with the hosts
Michael: @
[email protected] / @mkennedy.codes (bsky)
Brian: @
[email protected] / @brianokken.bsky.social
Show: @
[email protected] / @pythonbytes.fm (bsky)
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Brian #1: Switching to direnv, Starship, and uv
Last week I mentioned that I’m ready to try direnv again, but secretly, I still had some worries about the process. Thankfully, Trey has a tutorial to walk me past the troublesome parts.
direnv - an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory.
Switching from virtualenvwrapper to direnv, Starship, and uv
- Trey Hunner**
Trey has solved a bunch of the problems I had when I tried direnv before
Show the virtual environment name in the prompt
Place new virtual environments in local .venv instead of in .direnv/python3.12
Silence all of the “loading”, “unloading” statements every time you enter a directory
Have a script called
venv
to create an environment, activate it, create a
.envrc
file
I’m more used to a create script, so I’ll stick with that name and Trey’s contents
A
workon
script to be able to switch around to different projects.
This is a carry over from “virtualenvwrapper’, but seems cool. I’ll take it.
Adding
uv
to the mix for creating virtual environments.
Interestingly including --seed which, for one, installs pip in the new environment. (Some tools need it, even if you don’t)
Starship
Trey also has some setup for Starship. But I’ll get through the above first, then MAYBE try Starship again.
Some motivation
Trey’s setup is pretty simple. Maybe I was trying to get too fancy before
Starship config in toml files that can be loaded with direnv and be different for different projects. Neato
Also, Trey mentions his dotfiles repo. This is a cool idea that I’ve been meaning to do for a long time.
See also:
It's Terminal - Bootstrapping With Starship, Just, Direnv, and UV - Mario Munoz
Michael #2: rqlite - Distributed SQLite DB
via themlu, thanks!
rqlite is a lightweight, user-friendly, distributed relational database built on SQLite.
Built on SQLite, the world’s most popular database
Supports full-text search, Vector Search, and JSON documents
Access controls and encryption for secure deployments
Michael #3: A Python dict that can report which keys you did not use
by Peter Bengtsson
Very cool for testing that a dictionary has been used as expected (e.g. all data has been sent out via an API or report).
Note: It does NOT track d.get(), but it’s easy to just add it to the class in the post.
Maybe someone should polish it up and put it on pypi (that person is not me :) ).
Brian #4: Some Markdown Stuff
Textual 4.0.0
adds Markdown.append which can be used to efficiently stream markdown content
The reason for the major bump is due to an interface change to Widget.anchor
Refreshing to see a symantic change cause a major version bump.
html-to-markdown
Converts html to markdown
A complete rewrite fork of markdownify
Lots of fun features like “streaming support”
Curious if it can stream to Textual’s Markdown.append method. hmmm.
Joke: Vibecon is hard to attend