@@ -121,7 +121,7 @@ def handle_error(self, request, client_address):
121121response_queue = Queue .Queue (0 )
122122
123123
124- class SocketIO :
124+ class SocketIO ( object ) :
125125
126126 nextseq = 0
127127
@@ -475,7 +475,7 @@ def EOFhook(self):
475475
476476#----------------- end class SocketIO --------------------
477477
478- class RemoteObject :
478+ class RemoteObject ( object ) :
479479 # Token mix-in class
480480 pass
481481
@@ -484,7 +484,7 @@ def remoteref(obj):
484484 objecttable [oid ] = obj
485485 return RemoteProxy (oid )
486486
487- class RemoteProxy :
487+ class RemoteProxy ( object ) :
488488
489489 def __init__ (self , oid ):
490490 self .oid = oid
@@ -533,7 +533,7 @@ def accept(self):
533533 def get_remote_proxy (self , oid ):
534534 return RPCProxy (self , oid )
535535
536- class RPCProxy :
536+ class RPCProxy ( object ) :
537537
538538 __methods = None
539539 __attributes = None
@@ -549,7 +549,11 @@ def __getattr__(self, name):
549549 return MethodProxy (self .sockio , self .oid , name )
550550 if self .__attributes is None :
551551 self .__getattributes ()
552- if not self .__attributes .has_key (name ):
552+ if self .__attributes .has_key (name ):
553+ value = self .sockio .remotecall (self .oid , '__getattribute__' ,
554+ (name ,), {})
555+ return value
556+ else :
553557 raise AttributeError , name
554558
555559 def __getattributes (self ):
@@ -579,7 +583,7 @@ def _getattributes(obj, attributes):
579583 if not callable (attr ):
580584 attributes [name ] = 1
581585
582- class MethodProxy :
586+ class MethodProxy ( object ) :
583587
584588 def __init__ (self , sockio , oid , name ):
585589 self .sockio = sockio
0 commit comments