Topics covered in this episode:- Syntax Error #11: Debugging Python
- umami and umami-analytics
- pytest-suite-timeout
- Listmonk and (py) listmonk
- 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
- Brian: @brianokken@fosstodon.org
- Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live 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.
Extras
Michael:
- Every github repo that has โreleasesโ has a releases RSS feed, e.g. Umami
- Kolo Django + VS Code
- Warp Terminal on linux
- bpytop and btop - live server monitoring
Joke: The cloud, visualized