Skip to content

Commit

Permalink
python 2 fix for improved error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
koehlma committed Jan 15, 2016
1 parent 94b620f commit 84c1b71
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions uv/error.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,27 @@

from __future__ import print_function, unicode_literals, division, absolute_import

import builtins
import io
import socket

from . import common
from .library import ffi, lib

try:
import builtins
except ImportError:
if isinstance(__builtins__, dict):
class _Builtins(object):
def __getattr__(self, item):
try:
return __builtins__[item]
except KeyError:
raise AttributeError()

builtins = _Builtins()
else:
builtins = __builtins__

__all__ = ['StatusCodes', 'UVError', 'ClosedStructureError', 'ClosedHandleError',
'ClosedLoopError', 'AddressNotAvailableError',
'AddressFamilyNotSupportedError']
Expand Down Expand Up @@ -788,6 +802,10 @@ def _get_builtin(name, default=None):
return getattr(builtins, name, default)


class _DummyClass(object):
pass


# support for PEP 3151
_ConnectionError = _get_builtin('ConnectionError', builtins.IOError)
_BrokenPipeError = _get_builtin('BrokenPipeError', builtins.IOError)
Expand All @@ -796,11 +814,11 @@ def _get_builtin(name, default=None):
_ConnectionResetError = _get_builtin('ConnectionResetError', socket.error)
_FileExistsError = _get_builtin('FileExistsError', builtins.IOError)
_FileNotFoundError = _get_builtin('FileNotFoundError', builtins.IOError)
_InterruptedError = _get_builtin('InterruptedError', UVError)
_InterruptedError = _get_builtin('InterruptedError', _DummyClass)
_IsADirectoryError = _get_builtin('IsADirectoryError', builtins.IOError)
_NotADirectoryError = _get_builtin('NotADirectoryError', builtins.IOError)
_PermissionError = _get_builtin('PermissionError', builtins.IOError)
_ProcessLookupError = _get_builtin('ProcessLookupError', UVError)
_ProcessLookupError = _get_builtin('ProcessLookupError', _DummyClass)
_TimeoutError = _get_builtin('TimeoutError', socket.timeout)

# assign default exception
Expand Down

0 comments on commit 84c1b71

Please sign in to comment.