def __dir__(self) -> List[str]:
        """Available data providers.

        The list of result will be used in AbstractField to
        determine method's class.

        :return: List of attributes.
        """
        attributes = []
        exclude = BaseDataProvider().__dict__.keys()

        for a in self.__dict__:
            if a not in exclude:
                if a.startswith('_'):
                    attribute = a.replace('_', '', 1)
                    attributes.append(attribute)
                else:
                    attributes.append(a)
        return attributes
def __dir__ ( self ) -> List [ str ] : attributes = [ ] exclude = BaseDataProvider ( ) . __dict__ . keys ( ) for a in self . __dict__ : if a not in exclude : if a . startswith ( '_' ) : attribute = a . replace ( '_' , '' , 1 ) attributes . append ( attribute ) else : attributes . append ( a ) return attributes
Available data providers.

        The list of result will be used in AbstractField to
        determine method's class.

        :return: List of attributes.