Пример #1
0
 def open(self, mode='rb'):
     try:
         if 'r' in mode:
             if self.s is not None:
                 if 'b' in mode:
                     self.buffer = BytesIO(self.s)
                 else:
                     self.buffer = StringIO(self.s)
             else:
                 raise ArgumentError('no string data supplied')
         elif 'w' in mode:
             if self.buffer is not None:
                 self.buffer.close()
             if 'b' in mode:
                 self.buffer = BytesIO()
             else:
                 self.buffer = StringIO()
         elif 'a' in mode:
             if self.buffer is None:
                 if 'b' in mode:
                     self.buffer = BytesIO()
                 else:
                     self.buffer = StringIO()
         yield Uncloseable(self.buffer)
     except:
         raise
     finally:
         pass  # don't close the buffer