Create the ProxyError Exception. Raise it when an unproxy
operation fails because information is wrong or not available. --HG-- extra : convert_revision : 1fd90c1291618b09752179cfa6894f1df495fffd
This commit is contained in:
parent
adf47c95b0
commit
45ecb2b69e
|
@ -27,6 +27,9 @@
|
||||||
from __future__ import division
|
from __future__ import division
|
||||||
import operator, re, types
|
import operator, re, types
|
||||||
|
|
||||||
|
class ProxyError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
def unproxy(proxy):
|
def unproxy(proxy):
|
||||||
if hasattr(proxy, '__unproxy__'):
|
if hasattr(proxy, '__unproxy__'):
|
||||||
return proxy.__unproxy__()
|
return proxy.__unproxy__()
|
||||||
|
@ -336,7 +339,12 @@ class AttrProxy(Proxy):
|
||||||
self.attr = attr
|
self.attr = attr
|
||||||
|
|
||||||
def __unproxy__(self):
|
def __unproxy__(self):
|
||||||
return unproxy(getattr(unproxy(self.proxy), self.attr))
|
proxy = unproxy(self.proxy)
|
||||||
|
try:
|
||||||
|
attr = getattr(proxy, self.attr)
|
||||||
|
except AttributeError, e:
|
||||||
|
raise ProxyError, e
|
||||||
|
return unproxy(attr)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '%s.%s' % (self.proxy, self.attr)
|
return '%s.%s' % (self.proxy, self.attr)
|
||||||
|
|
Loading…
Reference in a new issue