Don't use TextIOBase implementations in _RPCFile.

This commit is contained in:
Martin v. Löwis 2012-07-11 08:49:58 +02:00
parent dbde88696b
commit 1ba32187c0
1 changed files with 8 additions and 2 deletions

View File

@ -251,12 +251,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):