pyudev.discover module — pyudev 0.21.0 documentation

# pyudev.discover module

Tools to discover a device given limited information.

class `pyudev.discover.` `DeviceFileHypothesis`

  Bases: `pyudev.discover.Hypothesis`

  Discover the device assuming the value is some portion of a device file.

  The device file may be a link to a device node.

  classmethod `get_link_dirs`(context)

    Get all directories that may contain links to device nodes.

    This method checks the device links of every device, so it is very expensive.

    Parameters

      context (Context) – the context

    Returns

      a sorted list of directories that contain device links

    Return type

      list

  classmethod `lookup`(context, key)

    Lookup the device under the assumption that the key is part of the name of a device file.

    Parameters

      - context (Context) – the context

      - key (str) – a portion of the device file name

    It is assumed that either it is the whole name of the device file or it is the basename.

    A device file may be a device node or a device link.

  classmethod `match`(value)

    Match the given string according to the hypothesis.

    The purpose of this method is to obtain a value corresponding to `value` if that is possible. It may use a regular expression, but in general it should just return `value` and let the lookup method sort out the rest.

    Parameters

      value (str) – the string to inspect

    Returns

      the matched thing or None if unmatched

    Return type

      the type of lookup’s key parameter or NoneType

  classmethod `setup`(context)

    Set the link directories to be used when discovering by file.

    Uses get_link_dirs, so is as expensive as it is.

    Parameters

      context (Context) – the context

class `pyudev.discover.` `DeviceNameHypothesis`

  Bases: `pyudev.discover.Hypothesis`

  Discover the device assuming the input is a device name.

  Try every available subsystem.

  classmethod `find_subsystems`(context)

    Find all subsystems in sysfs.

    Parameters

      context (Context) – the context

    Return type

      frozenset

    Returns

      subsystems in sysfs

  classmethod `lookup`(context, key)

    Lookup by the path.

    Parameters

      - context (Context) – the context

      - key (str) – the device path

    Returns

      a list of matching devices

    Return type

      frozenset of `Device`

  classmethod `match`(value)

    Match `value` under the assumption that it is a device name.

    Returns

      the device path or None

    Return type

      str or NoneType

class `pyudev.discover.` `DeviceNumberHypothesis`

  Bases: `pyudev.discover.Hypothesis`

  Represents the hypothesis that the device is a device number.

  The device may be separated into major/minor number or a composite number.

  classmethod `find_subsystems`(context)

    Find subsystems in /sys/dev.

    Parameters

      context (Context) – the context

    Returns

      a lis of available subsystems

    Return type

      list of str

  classmethod `lookup`(context, key)

    Lookup by the device number.

    Parameters

      - context (Context) – the context

      - key (int) – the device number

    Returns

      a list of matching devices

    Return type

      frozenset of `Device`

  classmethod `match`(value)

    Match the number under the assumption that it is a device number.

    Returns

      the device number or None

    Return type

      int or NoneType

class `pyudev.discover.` `DevicePathHypothesis`

  Bases: `pyudev.discover.Hypothesis`

  Discover the device assuming the identifier is a device path.

  classmethod `lookup`(context, key)

    Lookup by the path.

    Parameters

      - context (Context) – the context

      - key (str) – the device path

    Returns

      a list of matching devices

    Return type

      frozenset of `Device`

  classmethod `match`(value)

    Match `value` under the assumption that it is a device path.

    Returns

      the device path or None

    Return type

      str or NoneType

class `pyudev.discover.` `Discovery`

  Bases: `object`

  Provides discovery methods for devices.

  `get_devices`(context, value)

    Get the devices corresponding to value.

    Parameters

      - context (Context) – the context

      - value (str) – some identifier of the device

    Returns

      a list of corresponding devices

    Return type

      frozenset of `Device`

  `setup`(context)

    Set up individual hypotheses.

    May be an expensive call.

    Parameters

      context (Context) – the context

class `pyudev.discover.` `Hypothesis`

  Bases: `object`

  Represents a hypothesis about the meaning of the device identifier.

  classmethod `get_devices`(context, value)

    Get any devices that may correspond to the given string.

    Parameters

      - context (Context) – the pyudev context

      - value (str) – the value to look for

    Returns

      a list of devices obtained

    Return type

      set of `Device`

  abstract classmethod `lookup`(context, key)

    Lookup the given string according to the hypothesis.

    Parameters

      - context (Context) – the pyudev context

      - key (the type of match's return value if not None) – a key with which to lookup the device

    Returns

      a list of Devices obtained

    Return type

      frozenset of `Device`

  abstract classmethod `match`(value)

    Match the given string according to the hypothesis.

    The purpose of this method is to obtain a value corresponding to `value` if that is possible. It may use a regular expression, but in general it should just return `value` and let the lookup method sort out the rest.

    Parameters

      value (str) – the string to inspect

    Returns

      the matched thing or None if unmatched

    Return type

      the type of lookup’s key parameter or NoneType

  classmethod `setup`(context)

    A potentially expensive method that may allow an `Hypothesis` to find devices more rapidly or to find a device that it would otherwise miss.

    Parameters

      context (Context) – the pyudev context

`pyudev.discover.` `wrap_exception`(func)

  Allow Device discovery methods to return None instead of raising an exception.