VPP-1508 Python3 abstract classes

Update the syntax to support abstract classes in python 2 and python 3.

Depends on: new style classes -- https://gerrit.fd.io/r/16166

Change-Id: Iad2c1240149f38b3faca1b37ab95d3d210e1daee
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
This commit is contained in:
Paul Vinciguerra
2018-11-24 21:46:05 -08:00
committed by Damjan Marion
parent dd3737284d
commit 3bce8ebfdf
7 changed files with 36 additions and 29 deletions

View File

@ -1,32 +1,33 @@
""" abstract vpp object and object registry """
from abc import ABCMeta, abstractmethod
import abc
import six
from six import moves
@six.add_metaclass(abc.ABCMeta)
class VppObject(object):
""" Abstract vpp object """
__metaclass__ = ABCMeta
@abstractmethod
@abc.abstractmethod
def add_vpp_config(self):
""" Add the configuration for this object to vpp. """
pass
@abstractmethod
@abc.abstractmethod
def query_vpp_config(self):
"""Query the vpp configuration.
:return: True if the object is configured"""
pass
@abstractmethod
@abc.abstractmethod
def remove_vpp_config(self):
""" Remove the configuration for this object from vpp. """
pass
@abstractmethod
@abc.abstractmethod
def object_id(self):
""" Return a unique string representing this object. """
pass