code: def install(self, plugin):
          ''' Add a plugin to the list of plugins and prepare it for beeing
              applied to all routes of this application. A plugin may be a simple
              decorator or an object that implements the :class:`Plugin` API.
          '''
          if hasattr(plugin, 'setup'): plugin.setup(self)
          if not callable(plugin) and not hasattr(plugin, 'apply'):
              raise TypeError("Plugins must be callable or implement .apply()")
          self.plugins.append(plugin)
          self.reset()
          return plugif install(self, plugin):
          ''' Add a plugin to the list of plugins and prepare it for beeing
              applied to all routes of this application. A plugin may be a simple
              decorator or an object that implements the :class:`Plugin` API.
          '''
          if hasattr(plugin, 'setup'): plugin.setup(self)
          if not callable(plugin) and not hasattr(plugin, 'apply'):
              raise TypeError("Plugins must be callable or implement .apply()")
          self.plugins.append(plugin)
          self.reset()
          return plugin
docs: Add a plugin to the list of plugins and prepare it for beeing
              applied to all routes of this application. A plugin may be a simple
              decorator or an object that implements the :class:`Plugin` API.