@property
@abc.abstractmethod
def version(self):
    raise NotImplementedError('must define version in child class to use this base class')
@property
@abc.abstractmethod
def version(self):
    raise NotImplementedError('must define version in child class to use this base class')