parent
18413201f4
commit
6795b4d23c
|
@ -72,3 +72,4 @@ def callcapture(func, *args, **kwargs):
|
||||||
finally:
|
finally:
|
||||||
out, err = so.reset()
|
out, err = so.reset()
|
||||||
return res, out, err
|
return res, out, err
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,14 @@
|
||||||
import os
|
import os
|
||||||
|
|
||||||
def dupfile(f, mode=None, buffering=0, raising=False):
|
def dupfile(f, mode=None, buffering=0, raising=False):
|
||||||
|
""" return a new open file object that's a duplicate of f
|
||||||
|
|
||||||
|
mode is duplicated if not given, buffering controls
|
||||||
|
buffer size (defaulting to no buffering) and raising
|
||||||
|
defines whether an exception is raised when an incompatible
|
||||||
|
file object is passed in (if raising is False, the file
|
||||||
|
object itself will be returned)
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
fd = f.fileno()
|
fd = f.fileno()
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
|
@ -11,3 +19,4 @@ def dupfile(f, mode=None, buffering=0, raising=False):
|
||||||
newfd = os.dup(fd)
|
newfd = os.dup(fd)
|
||||||
mode = mode and mode or f.mode
|
mode = mode and mode or f.mode
|
||||||
return os.fdopen(newfd, mode, buffering)
|
return os.fdopen(newfd, mode, buffering)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue