package/python-evdev: new package

evdev 1.6.1 https://pypi.org/project/evdev/

Signed-off-by: Witold Lipieta <witold.lipieta@thaumatec.com>
[yann.morin.1998@free.fr:
  - add missing comment on kernel headers
  - fix flake8 in test
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Witold Lipieta 2023-04-17 15:03:42 +02:00 committed by Yann E. MORIN
parent a7ad781626
commit b100440bff
6 changed files with 56 additions and 0 deletions

View File

@ -1049,6 +1049,7 @@ menu "External python modules"
source "package/python-engineio/Config.in" source "package/python-engineio/Config.in"
source "package/python-entrypoints/Config.in" source "package/python-entrypoints/Config.in"
source "package/python-esptool/Config.in" source "package/python-esptool/Config.in"
source "package/python-evdev/Config.in"
source "package/python-falcon/Config.in" source "package/python-falcon/Config.in"
source "package/python-filelock/Config.in" source "package/python-filelock/Config.in"
source "package/python-fire/Config.in" source "package/python-fire/Config.in"

View File

@ -0,0 +1,10 @@
config BR2_PACKAGE_PYTHON_EVDEV
bool "python-evdev"
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
help
Bindings to the Linux input handling subsystem.
https://github.com/gvalkov/python-evdev
comment "python-evdev needs a toolchain w/ headers >= 4.4"
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4

View File

@ -0,0 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/evdev/json
md5 905b12ef6136b518ddf418d8d5b053e4 evdev-1.6.1.tar.gz
sha256 299db8628cc73b237fc1cc57d3c2948faa0756e2a58b6194b5bf81dc2081f1e3 evdev-1.6.1.tar.gz
# Locally computed sha256 checksums
sha256 55fd76d7b3f90d312f161d318631b93c58a0e69d662d07c4f5aca2c6c9ecc85e LICENSE

View File

@ -0,0 +1,18 @@
################################################################################
#
# python-evdev
#
################################################################################
PYTHON_EVDEV_VERSION = 1.6.1
PYTHON_EVDEV_SOURCE = evdev-$(PYTHON_EVDEV_VERSION).tar.gz
PYTHON_EVDEV_SITE = https://files.pythonhosted.org/packages/05/50/629b011a7f61cb2fca754ea8631575784bf8605a1ec4d6970a010bc54e2b
PYTHON_EVDEV_SETUP_TYPE = setuptools
PYTHON_EVDEV_LICENSE = Revised BSD License
PYTHON_EVDEV_LICENSE_FILES = LICENSE
PYTHON_EVDEV_BUILD_OPTS = \
build_ecodes \
--evdev-headers $(STAGING_DIR)/usr/include/linux/input.h:$(STAGING_DIR)/usr/include/linux/input-event-codes.h:$(STAGING_DIR)/usr/include/linux/uinput.h
$(eval $(python-package))

View File

@ -0,0 +1,11 @@
import evdev
devices = [evdev.InputDevice(path) for path in evdev.list_devices()]
e = evdev.events.InputEvent(1036996631, 984417, evdev.ecodes.EV_KEY, evdev.ecodes.KEY_A, 2)
k = evdev.events.KeyEvent(e)
assert(k.keystate == evdev.events.KeyEvent.key_hold)
assert(k.event == e)
assert(k.scancode == evdev.ecodes.KEY_A)
assert(k.keycode == 'KEY_A')
assert(len(devices) > 0)

View File

@ -0,0 +1,11 @@
from tests.package.test_python import TestPythonPackageBase
class TestPythonPy3Evdev(TestPythonPackageBase):
__test__ = True
config = TestPythonPackageBase.config + \
"""
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON_EVDEV=y
"""
sample_scripts = ["tests/package/sample_python_evdev.py"]