Create framework to register feed consumption plugins

Registered by Tim Black

Create a framework to register new feed consumption plugins. I envision the plugin framework working this way: the framework's main module contains a class or module which will contain the plugins, called plugin_parent. When the app first loads, it imports every module found in the "plugins" directory into plugin_parent. Each plugin contains metadata (name, version, description) in a dictionary named config, and the framework registers the plugin by reading that config dictionary into the plugin_parent.plugins dictionary. So all that's needed to add a new plugin is to upload a new file to the plugins folder and restart the app.

Then, when the app's internal scheduler says it's time to read in a feed's contents, the app finds the correct plugin and calls its main .read method. The plugins' API is not yet fixed, but it might make sense to make plugins be like model objects in that they primarily move & transform data between sources & destinations, and to use an API like this:

class Plugin:
    def read():
        '''Get data from external source, store in cache.'''
    def cache():
        '''Get data from cache of source, versioned in database.'''

Blueprint information

Status:
Not started
Approver:
None
Priority:
Medium
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Drafting
Series goal:
Accepted for couchapp-backbone
Implementation:
Unknown
Milestone target:
milestone icon 0.4

Related branches

Sprints

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.