1 import contextlib
as _contextlib
3 from . import dispatcher
as _dispatcher
6 class VisitorMeta(_dispatcher
.DispatcherMeta
):
10 class Visitor(_dispatcher
.Dispatcher
, metaclass
=VisitorMeta
):
11 @_dispatcher.Hook(object)
12 def dispatch_object(self
, instance
):
16 class ContextVisitor(Visitor
):
17 @_dispatcher.Hook(object)
18 @_contextlib.contextmanager
19 def dispatch_object(self
, instance
):
20 yield super().__call
__(instance
=instance
)