Pynput нажатие клавиш во время выполнения функции, когда работает прослушивание, которое эту функцию и запускает

Я использовал библиотеку pynput, и столкнулся с проблемой:

У меня работает прослушивание команд, которое запускает функцию на выполнение:

def on_press(key):
    current_keys.add(key)
    print(current_keys)
    if frozenset(current_keys) in combination_to_function:
        combination_to_function[frozenset(current_keys)]()

def on_release(key):
        current_keys.clear()

with Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

Во время выполнения одной из функций, выполняемой, после нажатия клавиш, нужно имитировать нажатие клавиш

def test():
    keyboard = PynputController()

    print("cntrl + c")

    keyboard.press(Key.ctrl)
    keyboard.press('c')
    keyboard.release('c')
    keyboard.release(Key.ctrl)

    print("cntrl + v")

    keyboard.press(Key.ctrl)
    keyboard.press('v')
    keyboard.release('v')
    keyboard.release(Key.ctrl)

    print("end")

Однако по какой то причине функция выполняется дважды, а нажатие клавиш происходит после двойного выполнения функции(сначала дважды выполняется функция, затем после происходят нажатия клавиш)

Вот такую картину я получаю, при мониторинге нажатия клавиш:

{<Key.ctrl_l: <162>>}
{<Key.ctrl_l: <162>>, <Key.space: ' '>}
cntrl + c
cntrl + v
end
{<Key.ctrl_l: <162>>, <Key.space: ' '>}
cntrl + c
cntrl + v
end      
{<Key.ctrl_l: <162>>, 'c', <Key.space: ' '>}
{<Key.ctrl_l: <162>>}
{<Key.ctrl_l: <162>>, 'v'}
{<Key.ctrl_l: <162>>}
{<Key.ctrl_l: <162>>, 'c'}
{<Key.ctrl_l: <162>>}
{<Key.ctrl_l: <162>>, 'v'}
{<Key.ctrl_l: <162>>}

Ответы (0 шт):