[pypy-commit] cffi tmpdir-from-environ: Add support for 'CFFI_TMPDIR' environment variable

malthe noreply at buildbot.pypy.org
Wed Sep 3 10:25:53 CEST 2014


Author: malthe
Branch: tmpdir-from-environ
Changeset: r1562:a9fa3e1d222d
Date: 2014-09-02 14:07 +0200
http://bitbucket.org/cffi/cffi/changeset/a9fa3e1d222d/

Log:	Add support for 'CFFI_TMPDIR' environment variable

	If set, the value is used as the 'tmpdir' instead of the caller
	directory's '__pycache__'.

	This allows correct run-time operation when the package source is
	read-only.

diff --git a/cffi/verifier.py b/cffi/verifier.py
--- a/cffi/verifier.py
+++ b/cffi/verifier.py
@@ -42,7 +42,7 @@
             modulename = '_cffi_%s_%s%s%s' % (tag, self._vengine._class_key,
                                               k1, k2)
         suffix = _get_so_suffixes()[0]
-        self.tmpdir = tmpdir or _caller_dir_pycache()
+        self.tmpdir = tmpdir or os.environ.get('CFFI_TMPDIR') or _caller_dir_pycache()
         self.sourcefilename = os.path.join(self.tmpdir, modulename + '.c')
         self.modulefilename = os.path.join(self.tmpdir, modulename + suffix)
         self.ext_package = ext_package
diff --git a/doc/source/index.rst b/doc/source/index.rst
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -381,7 +381,10 @@
 Alternatively, you can just completely remove the ``__pycache__``
 directory.
 
-
+An alternative cache directory can be given as the ``tmpdir`` argument
+to ``verify()``, via the environment variable ``CFFI_TMPDIR``, or by
+calling ``cffi.verifier.set_tmpdir(path)`` prior to calling
+``verify``.
 
 
 =======================================================


More information about the pypy-commit mailing list