legoEv3/evdev/__pycache__/util.cpython-35.pyc



O†bU˜
ã@s„ddlZddlZddlZddlmZddlmZddd„Zdd„Zd    d
„Z    ddd
„Z
dZdS)éN)Úecodes)Ú
event_factoryz
/dev/inputcCs1tjdj|ƒƒ}ttt|ƒƒ}|S)z8List readable character devices in ``input_device_dir``.z    {}/event*)ÚglobÚformatÚlistÚfilterÚ    is_device)Zinput_device_dirZfns©r    ú,/usr/lib/python3/dist-packages/evdev/util.pyÚlist_devicessrcCsctjj|ƒsdStj|ƒtj}tj|ƒs?dStj|tjtjBƒs_dSdS)z<Check if ``fn`` is a readable and writable character device.FT)    ÚosÚpathÚexistsÚstatÚST_MODEÚS_ISCHRÚaccessÚR_OKÚW_OK)ÚfnÚmr    r    r
rsrcCs(|jtkr t|j|ƒS|SdS)a
    Categorize an event according to its type.

    The :data:`event_factory <evdev.events.event_factory>` dictionary
    maps event types to sub-classes of :class:`InputEvent
    <evdev.events.InputEvent>`. If the event cannot be categorized, it
    is returned unmodified.N)Útyper)Zeventr    r    r
Ú
categorize$s    rú?c    cs x|jƒD]\}}tj|}|tjkrAtj}ntt|jdƒdƒ}g}x¡|D]™}t|tƒrÎ|d|kr±||d|df|dfn||df|df}n(||krê|||fn    ||f}|j    |ƒqjW||f|fVq
WdS)a¤
    Resolve event codes and types to their verbose names.

    :param typecodemap: mapping of event types to lists of event codes.
    :param unknown: symbol to which unknown types or codes will be resolved.

    Example::

        resolve_ecodes({ 1: [272, 273, 274] })
        { ('EV_KEY', 1): [('BTN_MOUSE',  272),
                          ('BTN_RIGHT',  273),
                          ('BTN_MIDDLE', 274)] }

    If ``typecodemap`` contains absolute axis info (instances of
    :class:`AbsInfo <evdev.device.AbsInfo>` ) the result would look
    like::

        resolve_ecodes({ 3: [(0, AbsInfo(...))] })
        { ('EV_ABS', 3L): [(('ABS_X', 0L), AbsInfo(...))] }
    Ú_érNéÿÿÿÿ)
ÚitemsrZEVZEV_KEYÚkeysÚgetattrÚsplitÚ
isinstanceÚtupleÚappend)    ZtypecodemapÚunknownÚetypeZcodesZ    type_nameZ
code_namesÚresÚiÚlr    r    r
Úresolve_ecodes3s

2(r))rrrr))rrrZevdevrZevdev.eventsrrrrr)Ú__all__r    r    r    r
Ú<module>s    /