本文整理汇总了Python中pyudev._util.ensure_unicode_string函数的典型用法代码示例。如果您正苦于以下问题:Python ensure_unicode_string函数的具体用法?Python ensure_unicode_string怎么用?Python ensure_unicode_string使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ensure_unicode_string函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: sys_number
def sys_number(self):
"""
The trailing number of the :attr:`sys_name` as unicode string, or
``None``, if the device has no trailing number in its name.
.. note::
The number is returned as unicode string to preserve the exact
format of the number, especially any leading zeros:
>>> from pyudev import Context, Device
>>> context = Context()
>>> device = Device.from_path(context, '/sys/devices/LNXSYSTM:00')
>>> device.sys_number
u'00'
To work with numbers, explicitly convert them to ints:
>>> int(device.sys_number)
0
.. versionadded:: 0.11
"""
number = libudev.udev_device_get_sysnum(self)
if number is not None:
return ensure_unicode_string(number)
示例2: receive_device
def receive_device(self):
"""
Receive a single device from the monitor.
The caller must make sure, that there are events available in the
event queue. The call blocks, until a device is available.
If a device was available, return ``(action, device)``. ``device``
is the :class:`Device` object describing the device. ``action`` is
a string describing the action. udev informs about the following
actions:
``'add'``
A device has been added (e.g. a USB device was plugged in)
``'remove'``
A device has been removed (e.g. a USB device was unplugged)
``'change'``
Something about the device changed (e.g. a device property)
``'move'``
The device was renamed, moved, or re-parented
Raise :exc:`~exceptions.EnvironmentError`, if no device could be
read.
"""
try:
device_p = libudev.udev_monitor_receive_device(self)
except EnvironmentError:
self._reraise_with_socket_path()
if not device_p:
raise EnvironmentError('Could not receive device')
action = ensure_unicode_string(
libudev.udev_device_get_action(device_p))
return action, Device(self.context, device_p)
示例3: device_path
def device_path(self):
"""
The device directory path defaulting to ``/dev`` as unicode string.
This can be overridden in the udev configuration.
"""
return ensure_unicode_string(libudev.udev_get_dev_path(self))
示例4: sys_path
def sys_path(self):
"""
Absolute path of this device in ``sysfs`` including the ``sysfs``
mount point as unicode string.
"""
return ensure_unicode_string(
self._libudev.udev_device_get_syspath(self))
示例5: action
def action(self):
"""
The device event action as string, or ``None``, if this device was not
received from a :class:`Monitor`.
Usual actions are:
``'add'``
A device has been added (e.g. a USB device was plugged in)
``'remove'``
A device has been removed (e.g. a USB device was unplugged)
``'change'``
Something about the device changed (e.g. a device property)
``'online'``
The device is online now
``'offline'``
The device is offline now
.. warning::
Though the actions listed above are the most common, this property
*may* return other values, too, so be prepared to handle unknown
actions!
.. versionadded:: 0.16
"""
action = libudev.udev_device_get_action(self)
if action:
return ensure_unicode_string(action)
示例6: device_links
def device_links(self):
"""
An iterator, which yields the absolute paths (including the device
directory, see :attr:`Context.device_path`) of all symbolic links
pointing to the :attr:`device_node` of this device. The paths are
unicode strings.
UDev can create symlinks to the original device node (see
:attr:`device_node`) inside the device directory. This is often
used to assign a constant, fixed device node to devices like
removeable media, which technically do not have a constant device
node, or to map a single device into multiple device hierarchies.
The property provides access to all such symbolic links, which were
created by UDev for this device.
.. warning::
Links are not necessarily resolved by
:meth:`Device.from_device_file()`. Hence do *not* rely on
``Device.from_device_file(context, link).device_path ==
device.device_path`` from any ``link`` in ``device.device_links``.
"""
devlinks = libudev.udev_device_get_devlinks_list_entry(self)
for name, _ in udev_list_iterate(devlinks):
yield ensure_unicode_string(name)
示例7: udev_version
def udev_version():
"""
Get the version of the underlying udev library.
udev doesn't use a standard major-minor versioning scheme, but instead
labels releases with a single consecutive number. Consequently, the
version number returned by this function is a single integer, and not a
tuple (like for instance the interpreter version in
:data:`sys.version_info`).
As libudev itself does not provide a function to query the version number,
this function calls the ``udevadm`` utilitiy, so be prepared to catch
:exc:`~exceptions.EnvironmentError` and
:exc:`~subprocess.CalledProcessError` if you call this function.
Return the version number as single integer. Raise
:exc:`~exceptions.ValueError`, if the version number retrieved from udev
could not be converted to an integer. Raise
:exc:`~exceptions.EnvironmentError`, if ``udevadm`` was not found, or could
not be executed. Raise :exc:`subprocess.CalledProcessError`, if
``udevadm`` returned a non-zero exit code. On Python 2.7 or newer, the
``output`` attribute of this exception is correctly set.
.. versionadded:: 0.8
"""
output = ensure_unicode_string(check_output(['udevadm', '--version']))
return int(output.strip())
示例8: sys_path
def sys_path(self):
"""
The ``sysfs`` mount point defaulting to ``/sys'`` as unicode string.
The mount point can be overwritten using the environment variable
:envvar:`SYSFS_PATH`. Use this for testing purposes.
"""
return ensure_unicode_string(libudev.udev_get_sys_path(self))
示例9: driver
def driver(self):
"""
The driver name as unicode string, or ``None``, if there is no
driver for this device.
.. versionadded:: 0.5
"""
driver = self._libudev.udev_device_get_driver(self)
return ensure_unicode_string(driver) if driver else None
示例10: __iter__
def __iter__(self):
"""
Iterate over all tags.
Yield each tag as unicode string.
"""
tags = libudev.udev_device_get_tags_list_entry(self.device)
for tag, _ in udev_list_iterate(tags):
yield ensure_unicode_string(tag)
示例11: sys_path
def sys_path(self):
"""
The ``sysfs`` mount point defaulting to ``/sys'`` as unicode string.
"""
if hasattr(self._libudev, 'udev_get_sys_path'):
return ensure_unicode_string(self._libudev.udev_get_sys_path(self))
else:
# Fixed path since udev 183
return '/sys'
示例12: device_path
def device_path(self):
"""
The device directory path defaulting to ``/dev`` as unicode string.
"""
if hasattr(self._libudev, 'udev_get_dev_path'):
return ensure_unicode_string(self._libudev.udev_get_dev_path(self))
else:
# Fixed path since udev 183
return '/dev'
示例13: subsystem
def subsystem(self):
"""
Name of the subsystem this device is part of as unicode string.
:returns: name of subsystem if found, else None
:rtype: unicode string or NoneType
"""
subsys = self._libudev.udev_device_get_subsystem(self)
return None if subsys is None else ensure_unicode_string(subsys)
示例14: device_path
def device_path(self):
"""
Kernel device path as unicode string. This path uniquely identifies
a single device.
Unlike :attr:`sys_path`, this path does not contain the ``sysfs``
mount point. However, the path is absolute and starts with a slash
``'/'``.
"""
return ensure_unicode_string(libudev.udev_device_get_devpath(self))
示例15: run_path
def run_path(self):
"""
The run runtime directory path defaulting to ``/run`` as unicode
string.
.. udevversion:: 167
.. versionadded:: 0.10
"""
return ensure_unicode_string(libudev.udev_get_run_path(self))