1from __future__ import annotations 
    2 
    3from prompt_toolkit.key_binding.key_processor import KeyPressEvent 
    4from prompt_toolkit.keys import Keys 
    5 
    6from ..key_bindings import KeyBindings 
    7 
    8__all__ = [ 
    9    "load_cpr_bindings", 
    10] 
    11 
    12E = KeyPressEvent 
    13 
    14 
    15def load_cpr_bindings() -> KeyBindings: 
    16    key_bindings = KeyBindings() 
    17 
    18    @key_bindings.add(Keys.CPRResponse, save_before=lambda e: False) 
    19    def _(event: E) -> None: 
    20        """ 
    21        Handle incoming Cursor-Position-Request response. 
    22        """ 
    23        # The incoming data looks like u'\x1b[35;1R' 
    24        # Parse row/col information. 
    25        row, col = map(int, event.data[2:-1].split(";")) 
    26 
    27        # Report absolute cursor position to the renderer. 
    28        event.app.renderer.report_absolute_cursor_row(row) 
    29 
    30    return key_bindings