@staticmethod
def compare(power_1, power_2):
    """ Comparator object - Compares two Power objects

            :param power_1: The first Power object to compare
            :param power_2: The second Power object to compare
            :return: 1 if self is greater, -1 if other is greater, 0 if they are equal
        """
    cmp = lambda power_1, power_2: (power_1 > power_2) - (power_1 < power_2)
    xstr = lambda string: string or ''
    cmp_type = cmp(xstr(power_1.role), xstr(power_2.role))
    cmp_name = cmp(xstr(power_1.name), xstr(power_2.name))
    return cmp_type or cmp_name
