Change hooks control (deny_all_hooks_but / allow_all_hooks_but) to be more predictable
Prior to this, if one execute code like:
with cnx.hooks.deny_all_hooks_but('metadata'):
with cnx.hooks.deny_all_hooks_but():
# mycode
'metadata' hooks will be activated anyway in the inner block, which is rather
unexpected (of course in real life you only see the latest hooks control
statement, the former being higher in the call stack). This is due to the
underlying usage of old `enable_hook_categories` / `disable_hook_categories`
methods, which were introduced much before the now official context manager
based API (with `cnx.[deny|all]_all_hooks_but(...)`).
To move on, this patch drop the two legacy methods, rename and privatize related
internal state on the connection (`hooks_mode` becomes `_hooks_mode`,
`disabled_hook_cats` and `enabled_hook_cats` become `_hooks_categories`) and
reimplement the `_hooks_control` context manager to simply update them.
See the added unit test for details.
CubicWeb semantic web framework
===============================
CubicWeb is a entities / relations based knowledge management system
developped at Logilab.
This package contains:
- a repository server
- a RQL command line client to the repository
- an adaptative modpython interface to the server
- a bunch of other management tools
Install
-------
More details at https://docs.cubicweb.org/book/admin/setup
Getting started
---------------
Execute::
apt-get install cubicweb cubicweb-dev cubicweb-blog
cubicweb-ctl create blog myblog
cubicweb-ctl start -D myblog
sensible-browser http://localhost:8080/
Details at https://docs.cubicweb.org/tutorials/base/blog-in-five-minutes
Documentation
-------------
Look in the doc/ subdirectory or read https://docs.cubicweb.org/
CubicWeb includes the Entypo pictograms by Daniel Bruce — www.entypo.com