@abstract
class BaseClass(Interface):
def method_1(self):
pass
# method_2 is inherited from Interface and is still undefined

A concrete class is defined with concrete decorator:

@concrete
class ConcreteClass(BaseClass):
def method_2(self):
pass

When you need to ensure that your derived classes correctly override a method
in their bases, you can use overrides decorator. This decorator must be
applied on both the derived class, and its overriden methods: