def close(self): try: self.stream.close() except: pass def __nonzero__(self): return bool(self.filename) def __getattr__(self, name): return getattr(self.stream, name) def __iter__(self): return iter(self.readline, '') def __repr__(self): return '<%s: %r (%r)>' % (self.__class__.__name__, self.filename, self.content_type) from werkzeug.http import dump_options_header, dump_header, generate_etag, quote_header_value, parse_set_header, unquote_etag from werkzeug.exceptions import BadRequest for _cls in (MultiDict, OrderedMultiDict, CombinedMultiDict, Headers, EnvironHeaders): _cls.KeyError = BadRequest.wrap(KeyError, _cls.__name__ + '.KeyError') del _cls