GitHub

Temporary files and directories.

Contains replacement for tempfile.NamedTemporaryFile that does not delete the file on close(), but still unlinks it after the context manager ends, as well as a mkdtemp-based temporary directory implementation.

  • Mostly reuses the stdlib implementations, supporting the same signatures.
  • Due to that, uses the OS's built-in temporary file facilities, no custom schemes.
  • Tested on Python 2.6+ and 3.3+

Usage

A typical use-case that is not possible with the regular NamedTemporaryFile:

import volatile
with volatile.file() as tmp:
    # tmp behaves like a regular NamedTemporaryFile here, except for that
    # it gets unlinked at the end of the context manager, instead of when
    # close() is called.
    tmp.close()
    # run the users $EDITOR
    run_editor(tmp.name)
    buf = open(tmp.name).read()
    # ...

Temporary directories:

import volatile
with volatile.dir(): as dtmp:
    pass  # ... can use directory here
# a missing dtmp will not throw an exception!

Unix domain sockets:

import volatile
with volatile.unix_socket(): as (sock, addr):
    # sock is the bound socket, addr its address on the filesystem
    pass  # ... can use directory here

The source is fairly short and contains API docs in the comments.

Read the original on github.com ↗