Feature request #935915: Add os.path.devnull.
This commit is contained in:
parent
f30d60edbc
commit
bdec50f027
|
@ -1808,3 +1808,11 @@ current platform. This may be a single character, such as \code{'\e
|
||||||
n'} for \POSIX{} or \code{'\e r'} for Mac OS, or multiple characters,
|
n'} for \POSIX{} or \code{'\e r'} for Mac OS, or multiple characters,
|
||||||
for example, \code{'\e r\e n'} for Windows.
|
for example, \code{'\e r\e n'} for Windows.
|
||||||
\end{datadesc}
|
\end{datadesc}
|
||||||
|
|
||||||
|
\begin{datadesc}{devnull}
|
||||||
|
The file path of the null device.
|
||||||
|
For example: \code{'/dev/null'} for \POSIX{} or \code{'Dev:Nul'} for the
|
||||||
|
Macintosh.
|
||||||
|
Also available via \module{os.path}.
|
||||||
|
\versionadded{2.4}
|
||||||
|
\end{datadesc}
|
||||||
|
|
|
@ -8,7 +8,7 @@ __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
|
||||||
"getatime","getctime", "islink","exists","isdir","isfile",
|
"getatime","getctime", "islink","exists","isdir","isfile",
|
||||||
"walk","expanduser","expandvars","normpath","abspath",
|
"walk","expanduser","expandvars","normpath","abspath",
|
||||||
"curdir","pardir","sep","pathsep","defpath","altsep","extsep",
|
"curdir","pardir","sep","pathsep","defpath","altsep","extsep",
|
||||||
"realpath","supports_unicode_filenames"]
|
"devnull","realpath","supports_unicode_filenames"]
|
||||||
|
|
||||||
# strings representing various path-related bits and pieces
|
# strings representing various path-related bits and pieces
|
||||||
curdir = ':'
|
curdir = ':'
|
||||||
|
@ -18,6 +18,7 @@ sep = ':'
|
||||||
pathsep = '\n'
|
pathsep = '\n'
|
||||||
defpath = ':'
|
defpath = ':'
|
||||||
altsep = None
|
altsep = None
|
||||||
|
devnull = 'Dev:Null'
|
||||||
|
|
||||||
# Normalize the case of a pathname. Dummy in Posix, but <s>.lower() here.
|
# Normalize the case of a pathname. Dummy in Posix, but <s>.lower() here.
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
|
||||||
"getatime","getctime", "islink","exists","isdir","isfile","ismount",
|
"getatime","getctime", "islink","exists","isdir","isfile","ismount",
|
||||||
"walk","expanduser","expandvars","normpath","abspath","splitunc",
|
"walk","expanduser","expandvars","normpath","abspath","splitunc",
|
||||||
"curdir","pardir","sep","pathsep","defpath","altsep","extsep",
|
"curdir","pardir","sep","pathsep","defpath","altsep","extsep",
|
||||||
"realpath","supports_unicode_filenames"]
|
"devnull","realpath","supports_unicode_filenames"]
|
||||||
|
|
||||||
# strings representing various path-related bits and pieces
|
# strings representing various path-related bits and pieces
|
||||||
curdir = '.'
|
curdir = '.'
|
||||||
|
@ -29,6 +29,7 @@ if 'ce' in sys.builtin_module_names:
|
||||||
elif 'os2' in sys.builtin_module_names:
|
elif 'os2' in sys.builtin_module_names:
|
||||||
# OS/2 w/ VACPP
|
# OS/2 w/ VACPP
|
||||||
altsep = '/'
|
altsep = '/'
|
||||||
|
devnull = 'nul'
|
||||||
|
|
||||||
# Normalize the case of a pathname and map slashes to backslashes.
|
# Normalize the case of a pathname and map slashes to backslashes.
|
||||||
# Other normalizations (such as optimizing '../' away) are not done
|
# Other normalizations (such as optimizing '../' away) are not done
|
||||||
|
|
|
@ -12,6 +12,7 @@ This exports:
|
||||||
- os.pathsep is the component separator used in $PATH etc
|
- os.pathsep is the component separator used in $PATH etc
|
||||||
- os.linesep is the line separator in text files ('\r' or '\n' or '\r\n')
|
- os.linesep is the line separator in text files ('\r' or '\n' or '\r\n')
|
||||||
- os.defpath is the default search path for executables
|
- os.defpath is the default search path for executables
|
||||||
|
- os.devnull is the file path of the null device ('/dev/null', etc.)
|
||||||
|
|
||||||
Programs that import and use 'os' stand a better chance of being
|
Programs that import and use 'os' stand a better chance of being
|
||||||
portable between different platforms. Of course, they must then
|
portable between different platforms. Of course, they must then
|
||||||
|
@ -28,7 +29,7 @@ _names = sys.builtin_module_names
|
||||||
|
|
||||||
# Note: more names are added to __all__ later.
|
# Note: more names are added to __all__ later.
|
||||||
__all__ = ["altsep", "curdir", "pardir", "sep", "pathsep", "linesep",
|
__all__ = ["altsep", "curdir", "pardir", "sep", "pathsep", "linesep",
|
||||||
"defpath", "name", "path"]
|
"defpath", "name", "path", "devnull"]
|
||||||
|
|
||||||
def _get_exports_list(module):
|
def _get_exports_list(module):
|
||||||
try:
|
try:
|
||||||
|
@ -129,7 +130,8 @@ else:
|
||||||
raise ImportError, 'no os specific module found'
|
raise ImportError, 'no os specific module found'
|
||||||
|
|
||||||
sys.modules['os.path'] = path
|
sys.modules['os.path'] = path
|
||||||
from os.path import curdir, pardir, sep, pathsep, defpath, extsep, altsep
|
from os.path import curdir, pardir, sep, pathsep, defpath, extsep, altsep, \
|
||||||
|
devnull
|
||||||
|
|
||||||
del _names
|
del _names
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
|
||||||
"getatime","getctime", "islink","exists","isdir","isfile","ismount",
|
"getatime","getctime", "islink","exists","isdir","isfile","ismount",
|
||||||
"walk","expanduser","expandvars","normpath","abspath","splitunc",
|
"walk","expanduser","expandvars","normpath","abspath","splitunc",
|
||||||
"curdir","pardir","sep","pathsep","defpath","altsep","extsep",
|
"curdir","pardir","sep","pathsep","defpath","altsep","extsep",
|
||||||
"realpath","supports_unicode_filenames"]
|
"devnull","realpath","supports_unicode_filenames"]
|
||||||
|
|
||||||
# strings representing various path-related bits and pieces
|
# strings representing various path-related bits and pieces
|
||||||
curdir = '.'
|
curdir = '.'
|
||||||
|
@ -23,6 +23,7 @@ sep = '/'
|
||||||
altsep = '\\'
|
altsep = '\\'
|
||||||
pathsep = ';'
|
pathsep = ';'
|
||||||
defpath = '.;C:\\bin'
|
defpath = '.;C:\\bin'
|
||||||
|
devnull = 'nul'
|
||||||
|
|
||||||
# Normalize the case of a pathname and map slashes to backslashes.
|
# Normalize the case of a pathname and map slashes to backslashes.
|
||||||
# Other normalizations (such as optimizing '../' away) are not done
|
# Other normalizations (such as optimizing '../' away) are not done
|
||||||
|
|
|
@ -19,7 +19,7 @@ __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
|
||||||
"walk","expanduser","expandvars","normpath","abspath",
|
"walk","expanduser","expandvars","normpath","abspath",
|
||||||
"samefile","sameopenfile","samestat",
|
"samefile","sameopenfile","samestat",
|
||||||
"curdir","pardir","sep","pathsep","defpath","altsep","extsep",
|
"curdir","pardir","sep","pathsep","defpath","altsep","extsep",
|
||||||
"realpath","supports_unicode_filenames"]
|
"devnull","realpath","supports_unicode_filenames"]
|
||||||
|
|
||||||
# strings representing various path-related bits and pieces
|
# strings representing various path-related bits and pieces
|
||||||
curdir = '.'
|
curdir = '.'
|
||||||
|
@ -29,6 +29,7 @@ sep = '/'
|
||||||
pathsep = ':'
|
pathsep = ':'
|
||||||
defpath = ':/bin:/usr/bin'
|
defpath = ':/bin:/usr/bin'
|
||||||
altsep = None
|
altsep = None
|
||||||
|
devnull = '/dev/null'
|
||||||
|
|
||||||
# Normalize the case of a pathname. Trivial in Posix, string.lower on Mac.
|
# Normalize the case of a pathname. Trivial in Posix, string.lower on Mac.
|
||||||
# On MS-DOS this may also turn slashes into backslashes; however, other
|
# On MS-DOS this may also turn slashes into backslashes; however, other
|
||||||
|
|
|
@ -334,6 +334,14 @@ class MakedirTests (unittest.TestCase):
|
||||||
|
|
||||||
os.removedirs(path)
|
os.removedirs(path)
|
||||||
|
|
||||||
|
class DevNullTests (unittest.TestCase):
|
||||||
|
def test_devnull(self):
|
||||||
|
f = file(os.devnull, 'w')
|
||||||
|
f.write('hello')
|
||||||
|
f.close()
|
||||||
|
f = file(os.devnull, 'r')
|
||||||
|
assert f.read() == ''
|
||||||
|
f.close()
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
test_support.run_unittest(
|
test_support.run_unittest(
|
||||||
|
@ -342,6 +350,7 @@ def test_main():
|
||||||
EnvironTests,
|
EnvironTests,
|
||||||
WalkTests,
|
WalkTests,
|
||||||
MakedirTests,
|
MakedirTests,
|
||||||
|
DevNullTests,
|
||||||
)
|
)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
|
@ -328,6 +328,8 @@ Extension modules
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- os.path.devnull has been added for all supported platforms.
|
||||||
|
|
||||||
- Fixed #877165: distutils now picks the right C++ compiler command
|
- Fixed #877165: distutils now picks the right C++ compiler command
|
||||||
on cygwin and mingw32.
|
on cygwin and mingw32.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue