def __contains__(self, attribute):
<EOL>if attribute in self.attributes:<EOL><INDENT>return True<EOL><DEDENT>if not self.allow_all:<EOL><INDENT>return False<EOL><DEDENT>return not attribute.startswith('<STR_LIT:_>')<EOL>
Tells if the set contains the given attribute.

        Arguments
        ---------
        attribute : string
            The attribute to check for.

        Returns
        -------
        boolean
            If ``allow_all`` is ``False``, will return ``True`` only if the attribute
            is in the list of registered attribute.
            If ``allow_all`` is ``True``, will always return ``True`` except if the
            attribute is "private", ie starts by a "_".

        Example
        -------

        >>> a = Attributes('foo', '_bar', Attribute(name="qux"))
        >>> 'foo' in a
        True
        >>> '_bar' in a
        True
        >>> 'baz' in a
        False
        >>> 'qux' in a
        True
        >>> a = Attributes('_bar', allow_all=True)
        >>> 'foo' in a
        True
        >>> '_bar' in a
        True
        >>> '_baz' in a
        False
        >>> b = Attributes()
        >>> 'foo' in b
        True
        >>> '_bar' in b
        False
        >>> 'baz' in b
        True