badges
Have working_directory yield its directory

This way, there is no need to call a function that returns a path, then call working directory. It allows for operations like:

with working_directory(tempfile.mkdtemp()) as temp_dir:
    # do stuff...
new context manager: temporary_directory!

It makes temp directories and cleans them up after.