~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: Patch Queue Manager
  • Date: 2011-12-05 11:32:59 UTC
  • mfrom: (6336.2.3 is_environment_error)
  • Revision ID: pqm@pqm.ubuntu.com-20111205113259-ias55e1z6dsn2ksp
(gz) Add is_environment_error() to check if exceptions are due to the
 process environment (Martin Packman)

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
import getpass
29
29
import ntpath
30
30
import posixpath
 
31
import select
31
32
# We need to import both shutil and rmtree as we export the later on posix
32
33
# and need the former on windows
33
34
import shutil
2518
2519
    fn = getattr(os, 'fdatasync', getattr(os, 'fsync', None))
2519
2520
    if fn is not None:
2520
2521
        fn(fileno)
 
2522
 
 
2523
 
 
2524
def is_environment_error(evalue):
 
2525
    """True if exception instance is due to a process environment issue
 
2526
 
 
2527
    This includes OSError and IOError, but also other errors that come from
 
2528
    the operating system or core libraries but are not subclasses of those.
 
2529
    """
 
2530
    if isinstance(evalue, (EnvironmentError, select.error)):
 
2531
        return True
 
2532
    if sys.platform == "win32" and win32utils._is_pywintypes_error(evalue):
 
2533
        return True
 
2534
    return False