# LED

## Code Example

    from periphery import LED

    # Open LED "led0" with initial state off
    led0 = LED("led0", False)
    # Open LED "led1" with initial state on
    led1 = LED("led1", True)

    value = led0.read()
    led1.write(value)

    # Set custom brightness level
    led1.write(led1.max_brightness / 2)

    led0.close()
    led1.close()

## API

class `periphery.``LED`(name, brightness=None)

  Bases: `object`

  Instantiate an LED object and open the sysfs LED corresponding to the specified name.

  brightness can be a boolean for on/off, integer value for a specific brightness, or None to preserve existing brightness. Default is preserve existing brightness.

  Parameters:

  - name (str) – Linux led name.
  - brightness (bool, int, None) – Initial brightness.

  Returns: | LED object.
  Return type: | LED

  Raises:

  - `LEDError` – if an I/O or OS error occurs.
  - `TypeError` – if name or brightness types are invalid.
  - `LookupError` – if LED name does not exist.
  - `ValueError` – if brightness value is invalid.

  `read`()

    Read the brightness of the LED.

    Returns: | Current brightness.
    Return type: | int
    Raises: | `LEDError` – if an I/O or OS error occurs.

  `write`(brightness)

    Set the brightness of the LED to brightness.

    brightness can be a boolean for on/off, or integer value for a specific brightness.

    Parameters: | brightness (bool, int) – Brightness value to set.

    Raises:

    - `LEDError` – if an I/O or OS error occurs.
    - `TypeError` – if brightness type is not bool or int.

  `close`()

    Close the sysfs LED.

    Raises: | `LEDError` – if an I/O or OS error occurs.

  `devpath`

    Get the device path of the underlying sysfs LED device.

    Type: | str

  `fd`

    Get the file descriptor for the underlying sysfs LED “brightness” file of the LED object.

    Type: | int

  `name`

    Get the sysfs LED name.

    Type: | str

  `max_brightness`

    Get the LED’s max brightness.

    Type: | int

  `brightness`

    Get or set the LED’s brightness.

    Value can be a boolean for on/off, or integer value a for specific brightness.

    Raises:

    - `LEDError` – if an I/O or OS error occurs.
    - `TypeError` – if brightness type is not bool or int.
    - `ValueError` – if brightness value is invalid.

    Type: | int

class `periphery.``LEDError`

  Bases: `OSError`

  Base class for LED errors.