Annotates a model attribute.
    @param name: attribute name, unique for a model.
    @type name: str or unicode
    @param value: attribute type information.
    @type value: implementer of L{src.feat.models.interface.IValueInfo}
    @param getter: an effect or None if the attribute is write-only;
                   the retrieved value that will be validated;
                   see feat.models.call for effect information.
    @type getter: callable or None
    @param setter: an effect or None if the attribute is read-only;
                   the new value will be validated, possibly converted
                   and returned;
                   see feat.models.call for effect information.
    @type setter: callable or None
    @param deleter: an effect or None if the attribute cannot be deleted;
    @type deleter: callable or None
    @param label: the attribute label or None.
    @type label: str or unicode or None
    @param desc: the description of the attribute or None if not documented.
    @type desc: str or unicode or None
    @param meta: model item metadata atoms.
    @type meta: list of tuple

def attribute(name, value, getter=None, setter=None, deleter=None,
              label=None, desc=None, meta=None):
    """
    Annotates a model attribute.
    @param name: attribute name, unique for a model.
    @type name: str or unicode
    @param value: attribute type information.
    @type value: implementer of L{src.feat.models.interface.IValueInfo}
    @param getter: an effect or None if the attribute is write-only;
                   the retrieved value that will be validated;
                   see feat.models.call for effect information.
    @type getter: callable or None
    @param setter: an effect or None if the attribute is read-only;
                   the new value will be validated, possibly converted
                   and returned;
                   see feat.models.call for effect information.
    @type setter: callable or None
    @param deleter: an effect or None if the attribute cannot be deleted;
    @type deleter: callable or None
    @param label: the attribute label or None.
    @type label: str or unicode or None
    @param desc: the description of the attribute or None if not documented.
    @type desc: str or unicode or None
    @param meta: model item metadata atoms.
    @type meta: list of tuple
    """
    _annotate("attribute", name, value, getter=getter, setter=setter,
              deleter=deleter,
              label=label, desc=desc, meta=meta)