Re: [libgpiod][PATCH 05/22] bindings: python: add type stubs for _ext

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Sep 27, 2024 at 8:57 PM Vincent Fazio <vfazio@xxxxxxxxxxx> wrote:
>

No empty commit messages please.

> Signed-off-by: Vincent Fazio <vfazio@xxxxxxxxxxx>
> ---
>  bindings/python/gpiod/_ext.pyi | 93 ++++++++++++++++++++++++++++++++++++++++++
>  bindings/python/setup.py       |  2 +-
>  2 files changed, 94 insertions(+), 1 deletion(-)
>
> diff --git a/bindings/python/gpiod/_ext.pyi b/bindings/python/gpiod/_ext.pyi
> new file mode 100644
> index 0000000000000000000000000000000000000000..1beb80dde9f080b729374b9dc69322c01fc37889
> --- /dev/null
> +++ b/bindings/python/gpiod/_ext.pyi
> @@ -0,0 +1,93 @@
> +# SPDX-License-Identifier: LGPL-2.1-or-later
> +# SPDX-FileCopyrightText: 2024 Vincent Fazio <vfazio@xxxxxxxxx>
> +
> +from typing import Optional
> +
> +from .chip_info import ChipInfo
> +from .edge_event import EdgeEvent
> +from .info_event import InfoEvent
> +from .line import Value
> +from .line_info import LineInfo
> +
> +class LineSettings:
> +    def __init__(
> +        self,
> +        direction: int,
> +        edge_detection: int,
> +        bias: int,
> +        drive: int,
> +        active_low: bool,
> +        debounce_period: int,
> +        event_clock: int,
> +        output_value: int,
> +    ) -> None: ...
> +
> +class LineConfig:
> +    def __init__(self) -> None: ...
> +    def add_line_settings(self, offsets: list[int], settings: LineSettings) -> None: ...
> +    def set_output_values(self, global_output_values: list[Value]) -> None: ...
> +
> +class Request:
> +    def release(self) -> None: ...
> +    def get_values(self, offsets: list[int], values: list[Value]) -> None: ...
> +    def set_values(self, values: dict[int, Value]) -> None: ...
> +    def reconfigure_lines(self, line_cfg: LineConfig) -> None: ...
> +    def read_edge_events(self, max_events: Optional[int]) -> list[EdgeEvent]: ...
> +    @property
> +    def chip_name(self) -> str: ...
> +    @property
> +    def num_lines(self) -> int: ...
> +    @property
> +    def offsets(self) -> list[int]: ...
> +    @property
> +    def fd(self) -> int: ...
> +
> +class Chip:
> +    def __init__(self, path: str) -> None: ...
> +    def get_info(self) -> ChipInfo: ...
> +    def line_offset_from_id(self, id: str) -> int: ...
> +    def get_line_info(self, offset: int, watch: bool) -> LineInfo: ...
> +    def request_lines(
> +        self,
> +        line_cfg: LineConfig,
> +        consumer: Optional[str],
> +        event_buffer_size: Optional[int],
> +    ) -> Request: ...
> +    def read_info_event(self) -> InfoEvent: ...
> +    def close(self) -> None: ...
> +    def unwatch_line_info(self, line: int) -> None: ...
> +    @property
> +    def path(self) -> str: ...
> +    @property
> +    def fd(self) -> int: ...
> +
> +def is_gpiochip_device(path: str) -> bool: ...
> +
> +api_version: str
> +
> +# enum constants
> +BIAS_AS_IS: int
> +BIAS_DISABLED: int
> +BIAS_PULL_DOWN: int
> +BIAS_PULL_UP: int
> +BIAS_UNKNOWN: int
> +CLOCK_HTE: int
> +CLOCK_MONOTONIC: int
> +CLOCK_REALTIME: int
> +DIRECTION_AS_IS: int
> +DIRECTION_INPUT: int
> +DIRECTION_OUTPUT: int
> +DRIVE_OPEN_DRAIN: int
> +DRIVE_OPEN_SOURCE: int
> +DRIVE_PUSH_PULL: int
> +EDGE_BOTH: int
> +EDGE_EVENT_TYPE_FALLING: int
> +EDGE_EVENT_TYPE_RISING: int
> +EDGE_FALLING: int
> +EDGE_NONE: int
> +EDGE_RISING: int
> +INFO_EVENT_TYPE_LINE_CONFIG_CHANGED: int
> +INFO_EVENT_TYPE_LINE_RELEASED: int
> +INFO_EVENT_TYPE_LINE_REQUESTED: int
> +VALUE_ACTIVE: int
> +VALUE_INACTIVE: int
> diff --git a/bindings/python/setup.py b/bindings/python/setup.py
> index 1f04b9939b47dc7b960679b6f24e87a6f2a4e46f..54790dfd88e77762719fce3d9194499e8ff39d73 100644
> --- a/bindings/python/setup.py
> +++ b/bindings/python/setup.py
> @@ -224,7 +224,7 @@ setup(
>      name="gpiod",
>      url="https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git";,
>      packages=find_packages(exclude=["tests", "tests.*"]),
> -    package_data={"gpiod": ["py.typed"]},
> +    package_data={"gpiod": ["py.typed", "_ext.pyi"]},
>      python_requires=">=3.9.0",
>      ext_modules=[gpiod_ext],
>      cmdclass={"build_ext": build_ext, "sdist": sdist},
>
> --
> 2.34.1
>

I had no idea this was possible, thanks!

Looks good.

Bart





[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux