diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-12-17 16:04:45 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-12-17 16:04:45 +0000 |
| commit | 7b1c3ac42c148b8ef5fdd47fe90542f254d29663 (patch) | |
| tree | 9515e92511b2b946bdfddafe3ec2fc74a682f312 /CHANGES.txt | |
| parent | 4e75b9f4fe1479b5cbde3a8224e386e3392f6b43 (diff) | |
| download | pyramid-7b1c3ac42c148b8ef5fdd47fe90542f254d29663.tar.gz pyramid-7b1c3ac42c148b8ef5fdd47fe90542f254d29663.tar.bz2 pyramid-7b1c3ac42c148b8ef5fdd47fe90542f254d29663.zip | |
- In the past, during traversal, the ModelGraphTraverser (the
default traverser) always passed each URL path segment to any
``__getitem__`` method of a model object as a byte string (a
``str`` object). Now, by default the ModelGraphTraverser attempts
to decode the path segment to Unicode (a ``unicode`` object) using
the UTF-8 encoding before passing it to the ``__getitem__`` method
of a model object. This makes it possible for model objects to be
dumber in ``__getitem__`` when trying to resolve a subobject, as
model objects themselves no longer need to try to divine whether
or not to try to decode the path segment passed by the
traverser.
Note that since 0.5.4, URLs generated by repoze.bfg's
``model_url`` API will contain UTF-8 encoded path segments as
necessary, so any URL generated by BFG itself will be decodeable
by the traverser. If another application generates URLs to a BFG
application, to be resolved successully, it should generate the
URL with UTF-8 encoded path segments to be successfully resolved.
The decoder is not at all magical: if a non-UTF-8-decodeable path
segment (e.g. one encoded using UTF-16 or some other insanity) is
passed in the URL, BFG will raise a ``TypeError`` with a message
indicating it could not decode the path segment.
To turn on the older behavior, where path segments were not
decoded to Unicode before being passed to model object
``__getitem__`` by the traverser, and were passed as a raw byte
string, set the ``unicode_path_segments`` configuration setting to
a false value in your BFG application's section of the paste .ini
file, for example::
unicode_path_segments = False
Or start the application using the ``BFG_UNICODE_PATH_SEGMENT``
envvar set to a false value::
BFG_UNICODE_PATH_SEGMENTS=0
Diffstat (limited to 'CHANGES.txt')
| -rw-r--r-- | CHANGES.txt | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index f7271114c..c41c1090b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,44 @@ +Next release + + Backwards Incompatbilities + + - In the past, during traversal, the ModelGraphTraverser (the + default traverser) always passed each URL path segment to any + ``__getitem__`` method of a model object as a byte string (a + ``str`` object). Now, by default the ModelGraphTraverser attempts + to decode the path segment to Unicode (a ``unicode`` object) using + the UTF-8 encoding before passing it to the ``__getitem__`` method + of a model object. This makes it possible for model objects to be + dumber in ``__getitem__`` when trying to resolve a subobject, as + model objects themselves no longer need to try to divine whether + or not to try to decode the path segment passed by the + traverser. + + Note that since 0.5.4, URLs generated by repoze.bfg's + ``model_url`` API will contain UTF-8 encoded path segments as + necessary, so any URL generated by BFG itself will be decodeable + by the traverser. If another application generates URLs to a BFG + application, to be resolved successully, it should generate the + URL with UTF-8 encoded path segments to be successfully resolved. + The decoder is not at all magical: if a non-UTF-8-decodeable path + segment (e.g. one encoded using UTF-16 or some other insanity) is + passed in the URL, BFG will raise a ``TypeError`` with a message + indicating it could not decode the path segment. + + To turn on the older behavior, where path segments were not + decoded to Unicode before being passed to model object + ``__getitem__`` by the traverser, and were passed as a raw byte + string, set the ``unicode_path_segments`` configuration setting to + a false value in your BFG application's section of the paste .ini + file, for example:: + + unicode_path_segments = False + + Or start the application using the ``BFG_UNICODE_PATH_SEGMENT`` + envvar set to a false value:: + + BFG_UNICODE_PATH_SEGMENTS=0 + 0.5.4 (12/13/2008) Backwards Incompatibilities |
