learning-unlimited/ESP-Website — pull request #966 by luac (2014-01-21 03:37:59+00:00)
Title: Program module tweaks

Change individual program modules to be proxy classes instead of
abstract base classes. (Abstract base classes are for inheriting from;
proxy classes are for extending Python behavior. Program modules want
the latter.)

Change module extensions to be specified using a classmethod, rather
than by inheritance. This is because proxies aren't allowed to inherit
from multiple model classes.