Как отловить событие ENTER и преобразовать его в событие TAB?

Следующее работает с Python 2 или 3 и работает быстрее, чем с помощью itertools:

EDIT: WARNING:

По-видимому, этот код может висеть в некоторых (странных) ситуациях. В результате я не могу это рекомендовать.

def compare_ast(node1, node2):

    if type(node1) != type(node2):
        return False
    elif isinstance(node1, ast.AST):
        for kind, var in vars(node1).items():
            if kind not in ('lineno', 'col_offset', 'ctx'):
                var2 = vars(node2).get(kind)
                if not compare_ast(var, var2):
                    return False
        return True
    elif isinstance(node1, list):
        if len(node1) != len(node2):
            return False
        for i in range(len(node1)):
            if not compare_ast(node1[i], node2[i]):
                return False
        return True
    else:
        return node1 == node2
1
задан Riccardo Fassina 18 January 2019 в 11:48
поделиться