API Stability // Werkzeug Documentation

# Werkzeug

The Swiss Army Knife For Python Web Developers

## API Stability

Werkzeug has not yet reached 1.0 and as a matter of fact some things might change over time. The following modules will very likely change in one of the next release versions:

werkzeug.contrib
  The community-contributed modules are yet undocumented and we expect some upcoming changes there.

### Backwards Incompatible Changes

0.3
  - Werkzeug 0.3 will be the last release with Python 2.3 compatibility.
  - The environ_property is now read-only by default. This decision was made because the request in general should be considered read-only.
0.2
  - The BaseReporterStream is now part of the contrib module, the new module is werkzeug.contrib.reporterstream. Starting with 0.3, the old import will not work any longer.
  - RequestRedirect now uses a 301 status code. Previously a 302 status code was used incorrectly. If you want to continue using this 302 code, use `response = redirect(e.new_url, 302)`.
  - lazy_property is now called cached_property. The alias for the old name will disappear in Werkzeug 0.3.
  - match can now raise MethodNotAllowed if configured for methods and there was no method for that request.
  - The response_body attribute on the response object is now called data. With Werkzeug 0.3 the old name will not work any longer.
  - The file-like methods on the response object are deprecated. If you want to use the response object as file like object use the Response class or a subclass of BaseResponse and mix the new ResponseStreamMixin class and use response.stream.