Python Bytes

#457: Tapping into HTTP

Topics covered in this episode:

  • httptap
  • 10 Smart Performance Hacks For Faster Python Code
  • FastRTC
  • Explore Python dependencies with pipdeptree and uv pip tree
  • Extras
  • Joke
Watch on YouTube

About the show

Sponsored by us! Support our work through:

  • Our courses at Talk Python Training
  • The Complete pytest Course
  • Patreon Supporters

Connect with the hosts

  • Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)
  • Brian: @brianokken@fosstodon.org / @brianokken.bsky.social
  • Show: @pythonbytes@fosstodon.org / @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.

Michael #1: httptap

  • Rich-powered CLI that breaks each HTTP request into DNS, connect, TLS, wait, and transfer phases with waterfall timelines, compact summaries, or metrics-only output.
  • Features
    • Phase-by-phase timing – precise measurements built from httpcore trace hooks (with sane fallbacks when metal-level data is unavailable).
    • All HTTP methods – GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS with request body support.
    • Request body support – send JSON, XML, or any data inline or from file with automatic Content-Type detection.
    • IPv4/IPv6 aware – the resolver and TLS inspector report both the address and its family.
    • TLS insights – certificate CN, expiry countdown, cipher suite, and protocol version are captured automatically.
    • Multiple output modes – rich waterfall view, compact single-line summaries, or -metrics-only for scripting.
    • JSON export – persist full step data (including redirect chains) for later processing.
    • Extensible – clean Protocol interfaces for DNS, TLS, timing, visualization, and export so you can plug in custom behavior.
  • Example:

Brian #2: 10 Smart Performance Hacks For Faster Python Code

  • Dido Grigorov
  • A few from the list
    • Use math functions instead of operators
    • Avoid exception handling in hot loops
    • Use itertools for combinatorial operations - huge speedup
    • Use bisect for sorted list operations - huge speedup

Michael #3: FastRTC

  • The Real-Time Communication Library for Python: Turn any python function into a real-time audio and video stream over WebRTC or WebSockets.
  • Features
    • 🗣️ Automatic Voice Detection and Turn Taking built-in, only worry about the logic for responding to the user.
    • 💻 Automatic UI - Use the .ui.launch() method to launch the webRTC-enabled built-in Gradio UI.
    • 🔌 Automatic WebRTC Support - Use the .mount(app) method to mount the stream on a FastAPI app and get a webRTC endpoint for your own frontend!
    • ⚡️ Websocket Support - Use the .mount(app) method to mount the stream on a FastAPI app and get a websocket endpoint for your own frontend!
    • 📞 Automatic Telephone Support - Use the fastphone() method of the stream to launch the application and get a free temporary phone number!
    • 🤖 Completely customizable backend - A Stream can easily be mounted on a FastAPI app so you can easily extend it to fit your production application. See the Talk To Claude demo for an example of how to serve a custom JS frontend.

Brian #4: Explore Python dependencies with <code>pipdeptree</code> and <code>uv pip tree</code>

  • Suggested by Nicholas Carsner
    • We have covered it, but in 2017 on episode 17.
  • pipdeptree
    • Use pipdeptree --python auto to allow it to read your venv
  • uv pip tree
    • Also check out uv pip tree and some useful flags
      • --show-version-specifiers to show the rules
      • --outdated notes packages that need updated

Extras

Brian:

  • Lean TDD 0.1.1 includes an updated intro and another chapter, “Essential Components”
  • VSCode Peacock Extension - color code your different projects

Joke: Sure Grandma