1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
volatile
========
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``:
.. code-block:: python
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:
.. code-block:: python
import volatile
with volatile.dir(): as dtmp:
pass # ... can use directory here
# a missing dtmp will not throw an exception!
Unix domain sockets:
.. code-block:: python
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
<https://github.com/mbr/volatile/blob/master/volatile/__init__.py>`_.
|