def deprecated_property(attr, name, text, version):
 def warn():
  warn_deprecation(('The attribute %s is deprecated: %s' % (attr, text)), version, 3)
 def fget(self):
  warn()
  return attr.__get__(self, type(self))
 def fset(self, val):
  warn()
  attr.__set__(self, val)
 def fdel(self):
  warn()
  attr.__delete__(self)
 return property(fget, fset, fdel, ('<Deprecated attribute %s>' % attr))

def deprecated_property ( attr , name , text , version ) : def warn ( ) : warn_deprecation ( ( 'The attribute %s is deprecated: %s' % ( attr , text ) ) , version , 3 ) def fget ( self ) : warn ( ) return attr . __get__ ( self , type ( self ) ) def fset ( self , val ) : warn ( ) attr . __set__ ( self , val ) def fdel ( self ) : warn ( ) attr . __delete__ ( self ) return property ( fget , fset , fdel , ( '<Deprecated attribute %s>' % attr ) )
wraps a descriptor .