@staticmethod
def deduce_id(deduce_from: str) ->str:
    """
        Try and return a deduced identifier.

        An identifier must be a lowercase version of the given data with only
        letters.  Spaces in the data are replaced with the
        underscore (_).  A tabulation will break parsing.  Letters are
        copied as-is.  Non-letter symbols are just ignored.

        Args:
            deduce_from (str): the origin or the identifier to deduce.

        Examples:
            >>> Component.deduce_id("click me!")
            `click_me`
            >>> Component.deduce_id("Quit	CTRL + Q")
            'quit'

        """
    identifier = ''
    for char in deduce_from:
        if char.isalpha():
            identifier += char.lower()
        elif char == ' ' and not identifier.endswith('_'):
            identifier += '_'
        elif char == '\t':
            break
    return identifier.strip('_')
