*suffix* and *prefix* now accept and default to ``None`` to cause
an appropriate default value to be used.
+ .. versionchanged:: 3.6
+ The *dir* parameter now accepts a :term:`path-like object`.
+
.. function:: mkdtemp(suffix=None, prefix=None, dir=None)
*suffix* and *prefix* now accept and default to ``None`` to cause
an appropriate default value to be used.
+ .. versionchanged:: 3.6
+ The *dir* parameter now accepts a :term:`path-like object`.
+
.. function:: gettempdir()
import errno
import io
import os
+import pathlib
import signal
import sys
import re
with self.assertRaises(TypeError):
tempfile._infer_return_type(b'', None, '')
+ def test_infer_return_type_pathlib(self):
+ self.assertIs(str, tempfile._infer_return_type(pathlib.Path('/')))
+
# Common functionality.
nsuf = nbase[len(nbase)-len(suf):]
if dir is not None:
- self.assertIs(type(name), str if type(dir) is str else bytes,
- "unexpected return type")
+ self.assertIs(
+ type(name),
+ str
+ if type(dir) is str or isinstance(dir, os.PathLike) else
+ bytes,
+ "unexpected return type",
+ )
if pre is not None:
self.assertIs(type(name), str if type(pre) is str else bytes,
"unexpected return type")
dir = tempfile.mkdtemp()
try:
self.do_create(dir=dir).write(b"blat")
+ self.do_create(dir=pathlib.Path(dir)).write(b"blat")
finally:
os.rmdir(dir)
dir = tempfile.mkdtemp()
try:
self.do_create(dir=dir)
+ self.do_create(dir=pathlib.Path(dir))
finally:
os.rmdir(dir)
dir = tempfile.mkdtemp()
try:
os.rmdir(self.do_create(dir=dir))
+ os.rmdir(self.do_create(dir=pathlib.Path(dir)))
finally:
os.rmdir(dir)