File: README.rst

package info (click to toggle)
python-volatile 2.1.0-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 100 kB
  • sloc: python: 152; sh: 11; makefile: 4
file content (62 lines) | stat: -rw-r--r-- 1,534 bytes parent folder | download | duplicates (2)
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>`_.