[hooks selection optimization] prune hooks when multiple entities are concerned by a hm.call_hooks() (closes: #1672022)
the idea is to make a first pass over all the hooks in the registry and to mark
put some of them in a disabled list. The disabled hooks are the one which:
* are disabled at the session level
* have a match_rtype or an is_instance selector which does not
match the rtype / etype of the relations / entities for
which we are calling the hooks. This works because the
repository calls the hooks grouped by rtype or by etype when
using the entities or eids_to_from keyword arguments
Only hooks with a simple selector or an AndSelector of simple
selectors (is_instance and match_rtype) are considered for disabling.
[MESSAGES CONTROL]
disable-msg = C0301
[VARIABLES]
# Enable / disable this checker
enable-variables = yes
additional-builtins = _, display_name
[BASIC]
required-attributes=
attr-rgx = (w|[a-z_][a-z0-9_]{2,30})
variable-rgx = (w|[a-z_][a-z0-9_]{2,30})$
argument-rgx = (w|[a-z_][a-z0-9_]{2,30})$
[TYPECHECK]
generated-members=debug,info,notice,warning,error,critical,exception