<commit_before>API documentation
-----------------

``events``
============

.. automodule:: evdev.events
   :members: InputEvent, KeyEvent, AbsEvent, RelEvent, SynEvent, event_factory
   :undoc-members:
   :member-order: groupwise

``device``
============

.. automodule:: evdev.device
   :members: InputDevice, DeviceInfo, AbsInfo, KbdInfo
   :undoc-members:
   :special-members:
   :member-order: groupwise

``uinput``
============

.. autoclass:: evdev.uinput.UInput
   :members:
   :special-members:
   :member-order: groupwise

``util``
==========

.. automodule:: evdev.util
   :members: list_devices, is_device, categorize, resolve_ecodes
   :member-order: groupwise

``ecodes``
============

.. automodule:: evdev.ecodes
   :members:<commit_msg>clean up apidoc<commit_after>API documentation
-----------------

``events``
============

.. automodule:: evdev.events
   :members: InputEvent, KeyEvent, AbsEvent, RelEvent, SynEvent, event_factory
   :undoc-members:
   :exclude-members: __dict__, __str__, __module__, __del__, __slots__, __repr__
   :member-order: bysource

``device``
============

.. automodule:: evdev.device
   :members: InputDevice, DeviceInfo, AbsInfo, KbdInfo
   :undoc-members:
   :special-members:
   :exclude-members: __dict__, __str__, __module__, __del__, __slots__, __repr__
   :member-order: bysource

``uinput``
============

.. autoclass:: evdev.uinput.UInput
   :members:
   :special-members:
   :exclude-members: __dict__, __str__, __module__, __del__, __slots__, __repr__
   :member-order: bysource

``util``
==========

.. automodule:: evdev.util
   :members: list_devices, is_device, categorize, resolve_ecodes
   :member-order: bysource

``ecodes``
============

.. automodule:: evdev.ecodes
   :members:
   :exclude-members: __module__, keys, ecodes, bytype
   :member-order: bysource

.. autodata:: evdev.ecodes.keys
   :annotation: {0: 'KEY_RESERVED', 1: 'KEY_ESC', 2: 'KEY_1', ...}

.. autodata:: evdev.ecodes.ecodes
   :annotation: {'KEY_END': 107, 'FF_RUMBLE': 80, 'KEY_KPDOT': 83, 'KEY_CNT': 768, ...}'

.. autodata:: evdev.ecodes.bytype
   :annotation: {0: {0: 'SYN_REPORT', 1: 'SYN_CONFIG', 2: 'SYN_MT_REPORT', 3: 'SYN_DROPPED'}, ...}
{'fraction_non_alphanumeric': 0.2093235831809872, 'fraction_numerical': 0.008683729433272395, 'mean_word_length': 4.2368421052631575, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4959877', 'n_tokens_mistral': 790, 'n_tokens_neox': 763, 'n_words': 157}