Add stubs for RPi.GPIO (#11345)

This commit is contained in:
Frédéric Perrin
2024-01-30 14:17:22 +00:00
committed by GitHub
parent 8e872a022c
commit edd99220dc
3 changed files with 68 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
version = "0.7.*"
upstream_repository = "https://sourceforge.net/p/raspberry-gpio-python/code/"
[tool.stubtest]
# When stubtest tries to import this module:
# error: RPi.GPIO failed to import. RuntimeError: This module can only be run on a Raspberry Pi!
# https://sourceforge.net/p/raspberry-gpio-python/code/ci/08048dd1894a6b09a104557b6eaa6bb68b6baac5/tree/source/py_gpio.c#l1008
skip = true

View File

@@ -0,0 +1,60 @@
from collections.abc import Callable
from typing import Literal, TypedDict
from typing_extensions import TypeAlias
class _RPi_Info(TypedDict):
P1_REVISION: int
REVISION: str
TYPE: str
MANUFACTURER: str
PROCESSOR: str
RAM: str
VERSION: str
RPI_INFO: _RPi_Info
RPI_REVISION: int
HIGH: Literal[1]
LOW: Literal[0]
OUT: int
IN: int
HARD_PWM: int
SERIAL: int
I2C: int
SPI: int
UNKNOWN: int
BOARD: int
BCM: int
PUD_OFF: int
PUD_UP: int
PUD_DOWN: int
RISING: int
FALLING: int
BOTH: int
_EventCallback: TypeAlias = Callable[[int], object]
def setup(channel: int, dir: int, pull_up_down: int = ..., initial: int = ...) -> None: ...
def cleanup(channel: int = 0) -> None: ...
def output(channel: int, state: int | bool) -> None: ...
def input(channel: int) -> int: ...
def setmode(mode: int) -> None: ...
def getmode() -> int: ...
def add_event_detect(channel: int, edge: int, callback: _EventCallback | None, bouncetime: int = ...) -> None: ...
def remove_event_detect(channel: int) -> None: ...
def event_detected(channel: int) -> bool: ...
def add_event_callback(channel: int, callback: _EventCallback) -> None: ...
def wait_for_edge(channel: int, edge: int, bouncetime: int = ..., timeout: int = ...) -> int | None: ...
def gpio_function(channel: int) -> int: ...
def setwarnings(gpio_warnings: bool) -> None: ...
class PWM:
def __init__(self, channel: int, frequency: float) -> None: ...
def start(self, dutycycle: float) -> None: ...
def ChangeDutyCycle(self, dutycycle: float) -> None: ...
def ChangeFrequence(self, frequency: float) -> None: ...
def stop(self) -> None: ...

View File