
class SyncBackendMediaInterface:
    """
    This interface defines required properties and methods
    of objects passed to deployment back-end class on media synchronization.

    """

    @property
    def backend_data_value(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

    @property
    def backend_uniqid(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

    def delete(self, **kwargs):
        raise NotImplementedError('This method should be implemented in '
                                  'subclasses')

    @property
    def deleted_at(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

    @property
    def filename(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

    @property
    def hash(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

    @property
    def is_remote_url(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

    @property
    def mimetype(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

from kpi.exceptions import AbstractMethodError, AbstractPropertyError


class SyncBackendMediaInterface:
    """
    This interface defines required properties and methods
    of objects passed to deployment back-end class on media synchronization.

    """

    @property
    def backend_data_value(self):
        raise AbstractPropertyError

    @property
    def backend_uniqid(self):
        raise AbstractPropertyError

    def delete(self, **kwargs):
        raise AbstractMethodError

    @property
    def deleted_at(self):
        raise AbstractPropertyError

    @property
    def filename(self):
        raise AbstractPropertyError

    @property
    def hash(self):
        raise AbstractPropertyError

    @property
    def is_remote_url(self):
        raise AbstractPropertyError

    @property
    def mimetype(self):
        raise AbstractPropertyError

Use new exceptions: AbstractMethodError, AbstractPropertyError
Use new exceptions: AbstractMethodError, AbstractPropertyError

+ from kpi.exceptions import AbstractMethodError, AbstractPropertyError
+ 
  
  class SyncBackendMediaInterface:
      """
      This interface defines required properties and methods
      of objects passed to deployment back-end class on media synchronization.
  
      """
  
      @property
      def backend_data_value(self):
+         raise AbstractPropertyError
-         raise NotImplementedError('This property should be implemented in '
-                                   'subclasses')
  
      @property
      def backend_uniqid(self):
+         raise AbstractPropertyError
-         raise NotImplementedError('This property should be implemented in '
-                                   'subclasses')
  
      def delete(self, **kwargs):
+         raise AbstractMethodError
-         raise NotImplementedError('This method should be implemented in '
-                                   'subclasses')
  
      @property
      def deleted_at(self):
+         raise AbstractPropertyError
-         raise NotImplementedError('This property should be implemented in '
-                                   'subclasses')
  
      @property
      def filename(self):
+         raise AbstractPropertyError
-         raise NotImplementedError('This property should be implemented in '
-                                   'subclasses')
  
      @property
      def hash(self):
+         raise AbstractPropertyError
-         raise NotImplementedError('This property should be implemented in '
-                                   'subclasses')
  
      @property
      def is_remote_url(self):
+         raise AbstractPropertyError
-         raise NotImplementedError('This property should be implemented in '
-                                   'subclasses')
  
      @property
      def mimetype(self):
+         raise AbstractPropertyError
-         raise NotImplementedError('This property should be implemented in '
-                                   'subclasses')
  
Use new exceptions: AbstractMethodError, AbstractPropertyError
## Code Before:

class SyncBackendMediaInterface:
    """
    This interface defines required properties and methods
    of objects passed to deployment back-end class on media synchronization.

    """

    @property
    def backend_data_value(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

    @property
    def backend_uniqid(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

    def delete(self, **kwargs):
        raise NotImplementedError('This method should be implemented in '
                                  'subclasses')

    @property
    def deleted_at(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

    @property
    def filename(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

    @property
    def hash(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

    @property
    def is_remote_url(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

    @property
    def mimetype(self):
        raise NotImplementedError('This property should be implemented in '
                                  'subclasses')

## Instruction:
Use new exceptions: AbstractMethodError, AbstractPropertyError
## Code After:
from kpi.exceptions import AbstractMethodError, AbstractPropertyError


class SyncBackendMediaInterface:
    """
    This interface defines required properties and methods
    of objects passed to deployment back-end class on media synchronization.

    """

    @property
    def backend_data_value(self):
        raise AbstractPropertyError

    @property
    def backend_uniqid(self):
        raise AbstractPropertyError

    def delete(self, **kwargs):
        raise AbstractMethodError

    @property
    def deleted_at(self):
        raise AbstractPropertyError

    @property
    def filename(self):
        raise AbstractPropertyError

    @property
    def hash(self):
        raise AbstractPropertyError

    @property
    def is_remote_url(self):
        raise AbstractPropertyError

    @property
    def mimetype(self):
        raise AbstractPropertyError
