<s> '''<STR_LIT>''' <EOL> class ObjectProxy ( object ) : <EOL> '''<STR_LIT>''' <EOL> def __new__ ( cls , obj = None ) : <EOL> '''<STR_LIT>''' <EOL> self = object . __new__ ( cls ) <EOL> self . __dict__ [ '<STR_LIT>' ] = obj <EOL> return self <EOL> def _object ( self ) : <EOL> return self . __dict__ [ '<STR_LIT>' ] <EOL> def _set_object ( self , obj ) : <EOL> self . __dict__ [ '<STR_LIT>' ] = obj <EOL> def __getattr__ ( self , attr ) : <EOL> return getattr ( self . _object ( ) , attr ) <EOL> def __setattr__ ( self , attr , value ) : <EOL> setattr ( self . _object ( ) , attr , value ) <EOL> def __delattr__ ( self , name ) : <EOL> delattr ( self . _object ( ) , name ) <EOL> def __getitem__ ( self , key ) : <EOL> return self . _object ( ) [ key ] <EOL> def __setitem__ ( self , key , value ) : <EOL> self . _object ( ) [ key ] = value <EOL> def __delitem__ ( self , key ) : <EOL> del self . _object ( ) [ key ] <EOL> def __call__ ( self , * args , ** kw ) : <EOL> return self . _object ( ) ( * args , ** kw ) <EOL> def __repr__ ( self ) : <EOL> try : <EOL> return repr ( self . _object ( ) ) <EOL> except ( TypeError , AttributeError ) : <EOL> return '<STR_LIT>' % ( self . __class__ . __module__ , self . __class__ . __name__ , id ( self ) ) <EOL> def __iter__ ( self ) : <EOL> return iter ( self . _object ( ) ) <EOL> def __len__ ( self ) : <EOL> return len ( self . _object ( ) ) <EOL> def __contains__ ( self , key ) : <EOL> return key in self . _object ( ) <EOL> def __hash__ ( self ) : <EOL> return hash ( self . _object ( ) ) <EOL> def __nonzero__ ( self ) : <EOL> return bool ( self . _object ( ) ) <EOL> def __eq__ ( self , b ) : <EOL> return self . _object ( ) == b <EOL> def __cmp__ ( self , b ) : <EOL> return cmp ( self . _object ( ) , b ) </s>
