mirror of
https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git
synced 2026-10-24 00:48:53 +03:00
bindings: python: loosen type requirements in public API
Previously, `Chip.request_lines` and `LineRequest.reconfigure_lines` were typed to accept a config argument that was either an int, a str, or a tuple[int | str]. This had two downsides, namely: * The tuple was typed as having only a single element and not a variable number of elements. The examples and test suite relied on a variable length tuple. * The tuple type itself was overly restictive. The function implementations had no requirement that the value be a tuple, only that it was iterable if it was not a str or an int. Now, these functions accept an Iterable[int | str] instead of tuples to offer greater flexibility to callers. This change does not break compatibility for existing users. Closes: https://github.com/brgl/libgpiod/issues/102 Signed-off-by: Vincent Fazio <vfazio@xes-inc.com> Link: https://lore.kernel.org/r/20241114145116.2123714-4-vfazio@xes-inc.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
committed by
Bartosz Golaszewski
parent
b306ce694a
commit
8f62e6c453
@@ -13,6 +13,7 @@ from .line_request import LineRequest
|
||||
from .line_settings import LineSettings, _line_settings_to_ext
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from collections.abc import Iterable
|
||||
from datetime import timedelta
|
||||
|
||||
from .chip_info import ChipInfo
|
||||
@@ -225,7 +226,9 @@ class Chip:
|
||||
|
||||
def request_lines(
|
||||
self,
|
||||
config: dict[tuple[Union[int, str]], Optional[LineSettings]],
|
||||
config: dict[
|
||||
Union[Iterable[Union[int, str]], int, str], Optional[LineSettings]
|
||||
],
|
||||
consumer: Optional[str] = None,
|
||||
event_buffer_size: Optional[int] = None,
|
||||
output_values: Optional[dict[Union[int, str], Value]] = None,
|
||||
|
||||
@@ -148,7 +148,10 @@ class LineRequest:
|
||||
self._req.set_values(mapped)
|
||||
|
||||
def reconfigure_lines(
|
||||
self, config: dict[tuple[Union[int, str]], LineSettings]
|
||||
self,
|
||||
config: dict[
|
||||
Union[Iterable[Union[int, str]], int, str], Optional[LineSettings]
|
||||
],
|
||||
) -> None:
|
||||
"""
|
||||
Reconfigure requested lines.
|
||||
|
||||
Reference in New Issue
Block a user