# BufferedIOBase has not public constructor # so, BufferedIOBase is not a base of IUserBufferedIOBase def detach(self): return self.get_underlying_io().detach() def read(self, size=-1): return self.get_underlying_io().read(size) def read1(self, size=-1): return self.get_underlying_io().read1(size) def write(self, bs): return self.get_underlying_io().write(bs) def readinto(self, bs): return self.get_underlying_io().readinto(bs) def readinto1(self, bs): return self.get_underlying_io().readinto1(bs) BufferedIOBase.register(IUserBufferedIOBase) class UserBufferedIOBase(UserIOBase, IUserBufferedIOBase): pass class IUserBufferedIOBase__aspect(IUserBufferedIOBase, IUserIOBase__aspect): def read(self, size=-1): self.before_io() try: return self.get_underlying_io().read(size) finally: self.after_io() def read1(self, size=-1): self.before_io()