Brought to you by Michael and Brian - take a Talk Python course or get Brian's pytest book

#368: That episode where we just ship open source

Published Tue, Jan 23, 2024, recorded Tue, Jan 23, 2024
Watch this episode on YouTube
Play on YouTube
Watch the live stream replay

About the show

Sponsored by us! Support our work through:

Connect with the hosts

Join us on YouTube at to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.

Brian #1: Syntax Error #11: Debugging Python

  • Juhis
  • Issue 11 of a fun debugging newsletter from Juhis
  • Debugging advice
    • mindeset
      • take a break
      • adopt a process
      • talk to a duck
    • tools & techniques
      • print
      • snoop
      • debuggers
      • Django debug toolbar & Kolo for VS Code

Michael #2: umami and umami-analytics

  • Umami makes it easy to collect, analyze, and understand your web data โ€” while maintaining visitor privacy and data ownership.
  • umami-analytics is a client for privacy-preserving, open source Umami analytics platform based on httpx and pydantic.
  • Core features
  • โž• Add a custom event to your Umami analytics dashboard.
  • ๐ŸŒ List all websites with details that you have registered at Umami.
  • ๐Ÿ”€ Both sync and async programming models.
  • โš’๏ธ Structured data with Pydantic models for API responses.
  • ๐Ÿ‘ฉโ€๐Ÿ’ป Login / authenticate for either a self-hosted or SaaS hosted instance of Umami.
  • ๐Ÿฅ‡Set a default website for a simplified API going forward.

Brian #3: pytest-suite-timeout

  • While recording Python Test 213 : Repeating Tests
    • I noted that pytest-repeat doesnโ€™t have a timeout, but pytest-flakefinder does.
    • And perhaps I should add a timeout to pytest-repeat
  • But also, maybe thereโ€™s other places Iโ€™d like a timeout, not just with repeat, but often with other parametrizations and even parametrize matrices.
  • So, pytest-suite-timeout is born
  • But Why not pytest-timeout? asks Mike Felder
    • timeout is only timeouts per test, and it isnโ€™t always graceful
    • suite-timeout is for the full suite, and only times out between tests.
    • so, you could use both

Michael #4: Listmonk and (py) listmonk

  • Listmonk
    • Self-hosted newsletter and mailing list manager (think mailchimp)
    • Built on Go and Vue
    • Backed by a company charing for this service as SaaS
    • Still requires a mail infrastructure backend (Iโ€™m using Sendgrid)
  • listmonk (on PyPI)
    • API Client for Python
    • Created by Yours Truly
    • I tried 4 other options first, they were all bad in their own way.
    • Features:
    • โž•Add a subscriber to your subscribed users.
    • ๐Ÿ™Ž Get subscriber details by email, ID, UUID, and more.
    • ๐Ÿ“ Modify subscriber details (including custom attribute collection).
    • ๐Ÿ” Search your users based on app and custom attributes.
    • ๐Ÿฅ Check the health and connectivity of your instance.
    • ๐Ÿ‘ฅ Retrieve your segmentation lists, list details, and subscribers.
    • ๐Ÿ™… Unsubscribe and block users who don't want to be contacted further.
    • ๐Ÿ’ฅ Completely delete a subscriber from your instance.
    • ๐Ÿ“ง Send transactional email with template data (e.g. password reset emails).
  • These pair well in my new docker cluster infrastructure
    • Calls to the API from a client app (e.g. Talk Python Training) are basically loopback on the local docker bridge network.



Joke: The cloud, visualized

Want to go deeper? Check our projects