#391 A weak episode

Python Bytes

09-07-2024 • 26 mins

Topics covered in this episode:
Watch on YouTube

About the show

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

Connect with the hosts

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:

Joke: I Lied