Python Bytes is a weekly podcast hosted by Michael Kennedy and Brian Okken. The show is a short discussion on the headlines and noteworthy news in the Python, developer, and data science space.

#440 Can't Register for VibeCon

July 15, 2025 00:25:20 36.63 MB Downloads: 0
Topics covered in this episode:
Watch on YouTube

About the show

Sponsored by PropelAuth: pythonbytes.fm/propelauth77

Connect with the hosts

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:

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