##// END OF EJS Templates
dispatch: don't mangle ImportError abort messages...
dispatch: don't mangle ImportError abort messages Previously, Mercurial assumed that the last word of the string representation was the name of the moduled that was imported. This assmption is incorrect, despite being true for the common case of an exception raised by the Python VM. For example, hgsubversion raises an ImportError with a helpful message if the Subversion bindings were not found. The final word of this message is not meaningful on its own, and is never the name of a module. This patch changes the output printed to be a simple stringification of the exception instance. In most cases, this will be `abort: No module named X!' rather than `abort: could not import module X!'. No functionality change; all tests pass.

File last commit:

r10651:5f091fc1 default
r11053:59d0d715 stable
Show More
osutil.py
59 lines | 1.5 KiB | text/x-python | PythonLexer
Martin Geisler
pure/osutil: add copyright and license header
r8232 # osutil.py - pure Python version of osutil.c
#
# Copyright 2009 Matt Mackall <mpm@selenic.com> and others
#
# This software may be used and distributed according to the terms of the
Matt Mackall
Update license to GPLv2+
r10263 # GNU General Public License version 2 or any later version.
Martin Geisler
pure/osutil: add copyright and license header
r8232
Martin Geisler
move mercurial.osutil to mercurial.pure.osutil
r7704 import os
import stat as _stat
Alejandro Santos
compat: use open() instead of file() everywhere
r9031 posixfile = open
Sune Foldager
posixfile: remove posixfile_nt and fix import bug in windows.py...
r8421
Martin Geisler
move mercurial.osutil to mercurial.pure.osutil
r7704 def _mode_to_kind(mode):
Matt Mackall
many, many trivial check-code fixups
r10282 if _stat.S_ISREG(mode):
return _stat.S_IFREG
if _stat.S_ISDIR(mode):
return _stat.S_IFDIR
if _stat.S_ISLNK(mode):
return _stat.S_IFLNK
if _stat.S_ISBLK(mode):
return _stat.S_IFBLK
if _stat.S_ISCHR(mode):
return _stat.S_IFCHR
if _stat.S_ISFIFO(mode):
return _stat.S_IFIFO
if _stat.S_ISSOCK(mode):
return _stat.S_IFSOCK
Martin Geisler
move mercurial.osutil to mercurial.pure.osutil
r7704 return mode
def listdir(path, stat=False, skip=None):
'''listdir(path, stat=False) -> list_of_tuples
Return a sorted list containing information about the entries
in the directory.
If stat is True, each element is a 3-tuple:
(name, type, stat object)
Otherwise, each element is a 2-tuple:
(name, type)
'''
result = []
prefix = path
if not prefix.endswith(os.sep):
prefix += os.sep
names = os.listdir(path)
names.sort()
for fn in names:
st = os.lstat(prefix + fn)
if fn == skip and _stat.S_ISDIR(st.st_mode):
return []
if stat:
result.append((fn, _mode_to_kind(st.st_mode), st))
else:
result.append((fn, _mode_to_kind(st.st_mode)))
return result
Sune Foldager
posixfile: remove posixfile_nt and fix import bug in windows.py...
r8421