1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
Changelog for Falcon 1.4.0
==========================
Breaking Changes
----------------
- :attr:`falcon.testing.Result.json` now returns None when the response body is
empty, rather than raising an error.
Changes to Supported Platforms
------------------------------
- Python 3 is now supported on PyPy as of PyPy3.5 v5.10.
- Support for CPython 3.3 is now deprecated and will be removed in
Falcon 2.0.
- As with the previous release, Python 2.6 and Jython 2.7 remain deprecated and
will no longer be supported in Falcon 2.0.
New & Improved
--------------
- We added a new method, :meth:`~.API.add_static_route`, that makes it easy to
serve files from a local directory. This feature provides an alternative to
serving files from the web server when you don't have that option, when
authorization is required, or for testing purposes.
- Arguments can now be passed to hooks (see :ref:`Hooks <hooks>`).
- The default JSON media type handler will now use
`ujson <https://pypi.python.org/pypi/ujson>`_, if available, to
speed up JSON (de)serialization under CPython.
- Semantic validation via the *format* keyword is now enabled for the
:meth:`~falcon.media.validators.jsonschema.validate` JSON Schema decorator.
- We added a new helper, :meth:`~falcon.Request.get_param_as_uuid`, to the
:class:`~falcon.Request` class.
- Falcon now supports WebDAV methods
(`RFC 3253 <https://www.ietf.org/rfc/rfc3253.txt>`_), such as UPDATE and
REPORT.
- We added a new property, :attr:`~falcon.Response.downloadable_as`, to the
:class:`~falcon.Response` class for setting the Content-Disposition header.
- :meth:`~falcon.routing.create_http_method_map` has been refactored into two
new methods, :meth:`~falcon.routing.map_http_methods` and :meth:`~falcon.routing.set_default_responders`, so that
custom routers can better pick and choose the functionality they need. The
original method is still available for backwards-compatibility, but will
be removed in a future release.
- We added a new `json` param to :meth:`~falcon.testing.simulate_request` et al.
to automatically serialize the request body from a JSON serializable object
or type (for a complete list of serializable types, see
`json.JSONEncoder <https://docs.python.org/3.6/library/json.html#json.JSONEncoder>`_).
- :class:`~.TestClient`'s ``simulate_*()`` methods now call
:meth:`~.TestClient.simulate_request` to make it easier for subclasses to
override :class:`~.TestClient`'s behavior.
- :class:`~.TestClient` can now be configured with a default set of headers to
send with every request.
- The :ref:`FAQ <faq>` has been reorganized and greatly expanded.
- We restyled the docs to match https://falconframework.org
Fixed
-----
- Forwarded headers containing quoted strings with commas were not being parsed
correctly. This has been fixed, and the parser generally made more robust.
- :class:`~falcon.media.JSONHandler` was raising an error under Python 2.x when
serializing strings containing Unicode code points. This issue has been
fixed.
- Overriding a resource class and calling its responders via ``super()`` did
not work when passing URI template params as positional arguments. This has
now been fixed.
- Python 3.6 was generating warnings for strings containing ``'\s'`` within
Falcon. These strings have been converted to raw strings to mitigate the
warning.
- Several syntax errors were found and fixed in the code examples used in the
docs.
Contributors to this Release
----------------------------
Many thanks to all of our talented and stylish contributors for this release!
- GriffGeorge
- hynek
- kgriffs
- rhemz
- santeyio
- timc13
- tyronegroves
- vytas7
- zhanghanyun
|