Don't use TextIOBase implementations in _RPCFile.

This commit is contained in:
Martin v. Löwis 2012-07-11 08:48:34 +02:00
parent 8a75bed317
commit c27616580d

View file

@ -247,12 +247,18 @@ class MyRPCServer(rpc.RPCServer):
class _RPCFile(io.TextIOBase): class _RPCFile(io.TextIOBase):
"""Wrapper class for the RPC proxy to typecheck arguments """Wrapper class for the RPC proxy to typecheck arguments
that may not support pickling.""" that may not support pickling. The base class is there only
to support type tests; all implementations come from the remote
object."""
def __init__(self, rpc): def __init__(self, rpc):
super.__setattr__(self, 'rpc', rpc) super.__setattr__(self, 'rpc', rpc)
def __getattr__(self, name): def __getattribute__(self, name):
# When accessing the 'rpc' attribute, use ours
if name == 'rpc':
return io.TextIOBase.__getattribute__(self, name)
# Else only look into the remote object only
return getattr(self.rpc, name) return getattr(self.rpc, name)
def __setattr__(self, name, value): def __setattr__(self, name, value):