(self, size=None)
| 243 | self.reason = str(max_length) |
| 244 | |
| 245 | def read(self, size=None): |
| 246 | if size is None: |
| 247 | return self.read(self.max_length - self.bytes_read + 1) # +1 to trigger the max length check |
| 248 | |
| 249 | result = self.stream.read(size) |
| 250 | self.bytes_read += len(result) |
| 251 | |
| 252 | if self.bytes_read > self.max_length: |
| 253 | raise MaxLengthExceeded("Max length (%s) exceeded" % self.reason) |
| 254 | |
| 255 | return result |
| 256 | |
| 257 | def __getattr__(self, attr): |
| 258 | return getattr(self.stream, attr) |