Topics covered in this episode:
Vendorize packages from PyPI * A Guide to Python's Weak References Using weakref Module * Making Time Speak * How Should You Test Your Machine Learning Project? A Beginner’s Guide * Extras * Joke*

Watch on YouTube
About the show

Sponsored by Code Comments, an original podcast from RedHat: pythonbytes.fm/code-comments

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 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: Vendorize packages from PyPI

  • Allows pure-Python dependencies to be vendorized: that is, the Python source of the dependency is copied into your own package.
  • Best used for small, pure-Python dependencies

Brian #2: A Guide to Python's Weak References Using weakref Module

  • Martin Heinz
  • Very cool discussion of weakref
  • Quick garbage collection intro, and how references and weak references are used.
  • Using weak references to build data structures.
    • Example of two kinds of trees
  • Implementing the Observer pattern
  • How logging and OrderedDict use weak references

Michael #3: Making Time Speak

  • by Prayson, a former guest and friend of the show
  • Translating time into human-friendly spoken expressions
  • Example: clock("11:15") # 'quarter past eleven'
  • Features
    • Convert time into spoken expressions in various languages.
    • Easy-to-use API with a simple and intuitive design.
    • Pure Python implementation with no external dependencies.
    • Extensible architecture for adding support for additional languages using the plugin design pattern.

Brian #4: How Should You Test Your Machine Learning Project? A Beginner’s Guide

  • François Porcher
  • Using pytest and pytest-cov for testing machine learning projects
  • Lots of pieces can and should be tested just as normal functions.
    • Example of testing a clean_text(text: str) -> str function
  • Test larger chunks with canned input and expected output.
    • Example test_tokenize_text()
  • Using fixtures for larger reusable components in testing
    • Example fixture: bert_tokenizer() with pretrained data
  • Checking coverage

Extras

Michael:

  • Twilio Authy Hack
    • Google Authenticator is the only option? Really?
    • Bitwarden to the rescue
    • Requires (?) an update to their app, whose release notes (v26.1.0) only say “Bug fixes”
  • Introducing Docs in Proton Drive
    • This is what I called on Mozilla to do in “Unsolicited Advice for Mozilla and Firefox” But Proton got there first
  • Early bird ending for Code in a Castle course

Joke: I Lied