repoze.bfg 0.6.4 has been released. Below is the changelog section related to the release. The focus of this release was to regain some speed losses as features were added in the 0.6 line.
0.6.4 (2009-01-23) ================== Backwards Incompatibilities --------------------------- - The ``unicode_path_segments`` configuration variable and the ``BFG_UNICODE_PATH_SEGMENTS`` configuration variable have been removed. Path segments are now always passed to model ``__getitem__`` methods as unicode. "True" has been the default for this setting since 0.5.4, but changing this configuration setting to false allowed you to go back to passing raw path element strings to model ``__getitem__`` methods. Removal of this knob services a speed goal (we get about +80 req/s by removing the check), and it's clearer just to always expect unicode path segments in model ``__getitem__`` methods. Implementation Changes ---------------------- - ``repoze.bfg.traversal.split_path`` now also handles decoding path segments to unicode (for speed, because its results are cached). - ``repoze.bfg.traversal.step`` was made a method of the ModelGraphTraverser. - Use "precooked" Request subclasses (e.g. ``repoze.bfg.request.GETRequest``) that correspond to HTTP request methods within ``router.py`` when constructing a request object rather than using ``alsoProvides`` to attach the proper interface to an unsubclassed ``webob.Request``. This pattern is purely an optimization (e.g. preventing calls to ``alsoProvides`` means the difference between 590 r/s and 690 r/s on a MacBook 2GHz). - Tease out an extra 4% performance boost by changing the Router; instead of using imported ZCA APIs, use the same APIs directly against the registry that is an attribute of the Router. - The registry used by BFG is now a subclass of ``zope.component.registry.Components`` (defined as ``repoze.bfg.registry.Registry``); it has a ``notify`` method, a ``registerSubscriptionAdapter`` and a ``registerHandler`` method. If no subscribers are registered via ``registerHandler`` or ``registerSubscriptionAdapter``, ``notify`` is a noop for speed. - The Allowed and Denied classes in ``repoze.bfg.security`` now are lazier about constructing the representation of a reason message for speed; ``repoze.bfg.view_execution_permitted`` takes advantage of this. - The ``is_response`` check was sped up by about half at the expense of making its code slightly uglier. New Modules =========== - ``repoze.bfg.lru`` implements an LRU cache class and a decorator for internal use. _______________________________________________ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev