[PR #22] [MERGED] Created Full Python Binding for Inputtino #29

Closed
opened 2026-10-15 12:51:25 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/inputtino/pull/22
Author: @Geson-anko
Created: 2/8/2025
Status: ✅ Merged
Merged: 2/16/2025
Merged by: @ABeltramo

Base: stable ← Head: stable


📝 Commits (10+)

  • 252f5f5 Add python binding to repository.
  • ab52d21 update docker compose
  • cc9c6c8 chore: update .dockerignore to streamline Python bindings and coverage files
  • c6d246f fix: improve formatting and add new dependencies for Python bindings
  • 345a271 chore: remove pre-commit hooks and related dependencies from Python bindings
  • f03f052 chore: update GitHub Actions workflow to remove pre-commit hooks and add make for formatting
  • 456eea8 refactor: update Makefile to separate linting and formatting tasks
  • fd50aa1 chore: rename lint job and add separate formatter job in GitHub Actions workflow
  • 78526dd chore: update GitHub Actions workflow to rename formatter and linter job
  • 43ae3ef test error in action

📊 Changes

70 files changed (+4196 additions, -3060 deletions)

View changed files

📝 .dockerignore (+0 -1)
➖ .github/workflows/docker-build.yml (+0 -118)
➕ .github/workflows/python-lint-format-test-typecheck.yml (+124 -0)
➕ .github/workflows/python-test-install.yaml (+49 -0)
📝 CMakeLists.txt (+0 -10)
📝 README.md (+30 -10)
➕ bindings/python/.clang-format (+1 -0)
➕ bindings/python/.devcontainer/Dockerfile (+23 -0)
➕ bindings/python/.devcontainer/devcontainer.json (+28 -0)
📝 bindings/python/.gitignore (+177 -1)
➕ bindings/python/.python-version (+1 -0)
📝 bindings/python/CMakeLists.txt (+17 -16)
➕ bindings/python/CPPLINT.cfg (+2 -0)
➕ bindings/python/LICENSE (+1 -0)
➕ bindings/python/Makefile (+49 -0)
➕ bindings/python/README.md (+215 -0)
➖ bindings/python/inputtino.i (+0 -12)
➕ bindings/python/pyproject.toml (+178 -0)
➕ bindings/python/src/inputtino/__init__.py (+43 -0)
➕ bindings/python/src/inputtino/_core.pyi (+533 -0)

...and 50 more files

📄 Description

Created Full Python Binding for Inputtino

I've implemented Python bindings for Inputtino, making all features easily accessible from Python.

Key Features

  • Complete type hints and Google Style docstrings
  • Pythonic interface design using pybind11
  • Support for all input devices (Mouse, Keyboard, Touchscreen, Trackpad, Pen tablet, Gamepads)

Implementation Details

Added implementation under bindings/python/ with the following structure:

bindings/python/
├── src/inputtino/      # Core implementation
├── tests/              # Test cases
├── pyproject.toml      # Project configuration
└── Dockerfile          # Development environment

Also includes Docker-related changes:

  • Fixed conflicts with root .dockerignore and docker/web-server.Dockerfile

Usage Example

from inputtino import Mouse, MouseButton, Keyboard, KeyCode

# Mouse control
mouse = Mouse()
mouse.move(100, 50)
mouse.click(MouseButton.LEFT)

# Keyboard control
keyboard = Keyboard()
keyboard.type(KeyCode.from_str("space"))

Requirements

  • Python 3.10+
  • Linux with uinput support
  • Root privileges or appropriate /dev/uinput permissions
  • /dev/uhid access for PS5 controller support

Installation

pip install "git+https://github.com/games-on-whales/inputtino.git#subdirectory=bindings/python&branch=stable"

Looking forward to your feedback!


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/inputtino/pull/22 **Author:** [@Geson-anko](https://github.com/Geson-anko) **Created:** 2/8/2025 **Status:** ✅ Merged **Merged:** 2/16/2025 **Merged by:** [@ABeltramo](https://github.com/ABeltramo) **Base:** `stable` ← **Head:** `stable` --- ### 📝 Commits (10+) - [`252f5f5`](https://github.com/games-on-whales/inputtino/commit/252f5f5e9494204eb00bc837cb09c8a0707d5a4a) Add python binding to repository. - [`ab52d21`](https://github.com/games-on-whales/inputtino/commit/ab52d21c49241b83524a43519014420bc40d98cc) update docker compose - [`cc9c6c8`](https://github.com/games-on-whales/inputtino/commit/cc9c6c86873ba6334d3d30bc2bd90dca9f30d6d4) chore: update .dockerignore to streamline Python bindings and coverage files - [`c6d246f`](https://github.com/games-on-whales/inputtino/commit/c6d246f86578bef9ce158abce9fb9ffd7aa5aecf) fix: improve formatting and add new dependencies for Python bindings - [`345a271`](https://github.com/games-on-whales/inputtino/commit/345a271c3855b39b5386c0a8152a680a48d2c3de) chore: remove pre-commit hooks and related dependencies from Python bindings - [`f03f052`](https://github.com/games-on-whales/inputtino/commit/f03f05246edc3dacf6da23a8e38613075d89d638) chore: update GitHub Actions workflow to remove pre-commit hooks and add make for formatting - [`456eea8`](https://github.com/games-on-whales/inputtino/commit/456eea8e696063a5b2e6c6a2a9e38a407c49dd59) refactor: update Makefile to separate linting and formatting tasks - [`fd50aa1`](https://github.com/games-on-whales/inputtino/commit/fd50aa13343732d21983746c495e0a5f496fd516) chore: rename lint job and add separate formatter job in GitHub Actions workflow - [`78526dd`](https://github.com/games-on-whales/inputtino/commit/78526dd9cdd71c27fbfabefe3163d89c890c0f6b) chore: update GitHub Actions workflow to rename formatter and linter job - [`43ae3ef`](https://github.com/games-on-whales/inputtino/commit/43ae3efab7bda67b3a82409d93a22dee0fefa67a) test error in action ### 📊 Changes **70 files changed** (+4196 additions, -3060 deletions) <details> <summary>View changed files</summary> 📝 `.dockerignore` (+0 -1) ➖ `.github/workflows/docker-build.yml` (+0 -118) ➕ `.github/workflows/python-lint-format-test-typecheck.yml` (+124 -0) ➕ `.github/workflows/python-test-install.yaml` (+49 -0) 📝 `CMakeLists.txt` (+0 -10) 📝 `README.md` (+30 -10) ➕ `bindings/python/.clang-format` (+1 -0) ➕ `bindings/python/.devcontainer/Dockerfile` (+23 -0) ➕ `bindings/python/.devcontainer/devcontainer.json` (+28 -0) 📝 `bindings/python/.gitignore` (+177 -1) ➕ `bindings/python/.python-version` (+1 -0) 📝 `bindings/python/CMakeLists.txt` (+17 -16) ➕ `bindings/python/CPPLINT.cfg` (+2 -0) ➕ `bindings/python/LICENSE` (+1 -0) ➕ `bindings/python/Makefile` (+49 -0) ➕ `bindings/python/README.md` (+215 -0) ➖ `bindings/python/inputtino.i` (+0 -12) ➕ `bindings/python/pyproject.toml` (+178 -0) ➕ `bindings/python/src/inputtino/__init__.py` (+43 -0) ➕ `bindings/python/src/inputtino/_core.pyi` (+533 -0) _...and 50 more files_ </details> ### 📄 Description # Created Full Python Binding for Inputtino I've implemented Python bindings for Inputtino, making all features easily accessible from Python. ## Key Features - Complete type hints and Google Style docstrings - Pythonic interface design using pybind11 - Support for all input devices (Mouse, Keyboard, Touchscreen, Trackpad, Pen tablet, Gamepads) ## Implementation Details Added implementation under `bindings/python/` with the following structure: ```python bindings/python/ ├── src/inputtino/ # Core implementation ├── tests/ # Test cases ├── pyproject.toml # Project configuration └── Dockerfile # Development environment ``` Also includes Docker-related changes: - Fixed conflicts with root .dockerignore and docker/web-server.Dockerfile ## Usage Example ```python from inputtino import Mouse, MouseButton, Keyboard, KeyCode # Mouse control mouse = Mouse() mouse.move(100, 50) mouse.click(MouseButton.LEFT) # Keyboard control keyboard = Keyboard() keyboard.type(KeyCode.from_str("space")) ``` ## Requirements - Python 3.10+ - Linux with uinput support - Root privileges or appropriate /dev/uinput permissions - /dev/uhid access for PS5 controller support ## Installation ```bash pip install "git+https://github.com/games-on-whales/inputtino.git#subdirectory=bindings/python&branch=stable" ``` Looking forward to your feedback! --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 12:51:25 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/inputtino#29
No description provided.