# `cement.core.interface`

Cement core interface module.

class `cement.core.interface.``Attribute`(description)

  Bases: `object`

  An interface attribute definition.

  Parameters: | description – The description of the attribute.

class `cement.core.interface.``Interface`

  Bases: `object`

  An interface definition class. All Interfaces should subclass from here. Note that this is not an implementation and should never be used directly.

`cement.core.interface.``list`()

  DEPRECATION WARNING: This function is deprecated as of Cement 2.9 in favor of the CementApp.handler.list_types() function, and will be removed in future versions of Cement.

  Return a list of defined interfaces (handler types).

  Returns: | List of defined interfaces
  Return type: | `list`

`cement.core.interface.``validate`(interface, obj, members=[], meta=['interface', 'label', 'config_defaults', 'config_section'])

  A wrapper to validate interfaces.

  Parameters:

  - interface – The interface class to validate against
  - obj – The object to validate.
  - members – The object members that must exist.
  - meta – The meta object members that must exist.

  Raises: | cement.core.exc.InterfaceError