..
   SPDX-License-Identifier: CC-BY-SA-4.0
   SPDX-FileCopyrightText: 2024-2025 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

..
   This file is part of libgpiod.

   libgpiod python bindings documentation

libgpiod Python bindings API
============================

The **libgpiod Python bindings** provide an interface to control and interact
with GPIO (General-Purpose Input/Output) lines on Linux systems using the
libgpiod library. The Python bindings allow developers to manage GPIO pins
easily through Python scripts, enabling tasks such as reading input values,
setting outputs, monitoring events, and configuring more fine-grained pin
options.

The Python bindings, much like the C API they wrap, are not thread-safe and do
require external synchronization by the caller to serialize access to objects
shared across threads.

The bindings support both GIL-enabled and free-threaded CPython interpreters.

.. note::
   Python bindings require python3 support and libpython development files for
   building from sources.

.. toctree::
   :maxdepth: 1
   :caption: Contents

   python_chip
   python_chip_info
   python_exceptions
   python_line
   python_line_info
   python_info_event
   python_edge_event
   python_line_settings
   python_line_request
   python_misc

.. note::
   Python bindings can be installed from https://pypi.org/ with pip by running
   ``pip install gpiod``.
