Changelog for Falcon 0.3.0 ========================== Breaking Changes ---------------- - Date headers are now returned as :py:class:`datetime.datetime` objects instead of strings. - The expected signature for the ``add_route()`` method of custom routers no longer includes a `method_map` parameter. Custom routers should, instead, call the :py:meth:`falcon.routing.util.map_http_methods` function directly from their ``add_route()`` method if they require this mapping. New & Improved -------------- - This release includes a new router architecture for improved performance and flexibility. - A custom router can now be specified when instantiating the :py:class:`API` class. - URI templates can now include multiple parameterized fields within a single path segment. - Falcon now supports reading and writing cookies. - Falcon now supports Jython 2.7. - A method for getting a query param as a date was added to the :py:class:`Request` class. - Date headers are now returned as :py:class:`datetime.datetime` objects. - A default value can now be specified when calling :py:meth:`Request.get_param`. This provides an alternative to using the pattern:: value = req.get_param(name) or default_value - Friendly constants for status codes were added (e.g., :py:attr:`falcon.HTTP_NO_CONTENT` vs. :py:attr:`falcon.HTTP_204`.) - Several minor performance optimizations were made to the code base. Fixed ----- - The query string parser was modified to improve handling of percent-encoded data. - Several errors in the documentation were corrected. - The :py:mod:`six` package was pinned to 1.4.0 or better. :py:attr:`six.PY2` is required by Falcon, but that wasn't added to :py:mod:`six` until version 1.4.0.