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

#407: Back to the future, destination 3.14

Published Mon, Oct 28, 2024, recorded Mon, Oct 28, 2024
Watch this episode on YouTube
Play on YouTube
Watch the live stream replay

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


Want to go deeper? Check our projects