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

#391: A weak episode

Published Tue, Jul 9, 2024, recorded Tue, Jul 9, 2024
Watch this episode on YouTube
Play on YouTube
Watch the live stream replay

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


Want to go deeper? Check our projects