def install(self, plugin):
        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
Add a plugin to the list of plugins and prepare it for being
dataset/ETHPy150Open adampresley/bottlepy-bootstrap/app/bottle.py/Bottle.install