Python Bytes is a weekly podcast hosted by Michael Kennedy and Brian Okken. The show is a short discussion on the headlines and noteworthy news in the Python, developer, and data science space.

#407 Back to the future, destination 3.14

October 28, 2024 00:28:26 18.58 MB Downloads: 0
Topics covered in this episode:
Watch on YouTube

About the show

Sponsored by us! Support our work through:

Connect with the hosts

Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday 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: Python 3.14.0 alpha 1 is now available

Brian #2: uv supports dependency groups

  • we covered dependency groups in episode 406
  • as of 0.4.27, uv supports dependency groups
  • docs show how to add dependencies with uv add --group
    • also “The --dev, --only-dev, and --no-dev flags are equivalent to --group dev, --only-group dev, and --no-group dev respectively.”
  • To install a group, uv pip install --group doesn’t work yet.
    • It’s waiting for PyPA to decide on an interface for pip, and uv pip will use that interface.
  • But sync works.
    $ uv init # create a pyproject.toml
    $ uv add --group foo pytest
    $ uv venv # create venv
    $ uv sync --group foo # will install all dependencies, including group "foo"
    

Michael #3: dive: A tool for exploring each layer in a docker image

  • via Mike Fiedler
  • Features:
    • Show Docker image contents broken down by layer
    • Indicate what's changed in each layer
    • Estimate "image efficiency"
    • Quick build/analysis cycles
    • CI Integration

Brian #4: pytest-metadata

  • An incredibly useful plugin for adding, you guessed it, metadata, to your pytest results.
  • Required for pytest-html but also useful on it’s own
  • Adds metadata to
    • text output with --verbose
    • xml output when using --junit-xml, handy for CI systems that support junit.xml
  • Other plugins depend on this and report in other ways, such as pytest-html
  • By default, already grabs
    • Python version
    • Platform info
    • List of installed packages
    • List of installed pytest plugins
  • You can add your own metadata
  • You can access all metadata (and add to it) from tests, fixtures, and hook functions via a metadata fixture.
  • This is in the Top pytest Plugins list, currently #5.

Extras

Brian:

Michael:

Joke: Dog names