File: //lib/python3.9/site-packages/pyudev/device/__pycache__/_device.cpython-39.pyc
a
8g+^�� � @ s| d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlZddlZddlZddl m
Z
ddlZe�e�
dd ejd
krzdnd �� ddlmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ G dd� de�Z G dd� dej!�Z"G dd� dej!�Z#G dd � d e�Z$G d!d"� d"ej%ej&�Z'dS )#z�
pyudev.device._device
=====================
Device class implementation of :mod:`pyudev`.
.. moduleauthor:: Sebastian Wiesner <lunaryorn@gmail.com>
� )�absolute_import)�division)�print_function)�unicode_literalsN)� timedelta�collections_abc�collections)� r zcollections.abc)r )�DeviceNotFoundAtPathError)�DeviceNotFoundByFileError)�#DeviceNotFoundByInterfaceIndexError)�!DeviceNotFoundByKernelDeviceError)�DeviceNotFoundByNameError)�DeviceNotFoundByNumberError)� DeviceNotFoundInEnvironmentError)�ensure_byte_string)�ensure_unicode_string)�get_device_type��string_to_bool)�udev_list_iteratec @ s| e Zd ZdZedd� �Zedd� �Zedd� �Zedd � �Zed
d� �Z edd
� �Z
edd� �Zedd� �Zedd� �Z
dS )�DeviceszT
Class for constructing :class:`Device` objects from various kinds of data.
c C s0 |� |j�s$tj�|j|�tj��}| �||�S )a�
Create a device from a device ``path``. The ``path`` may or may not
start with the ``sysfs`` mount point:
>>> from pyudev import Context, Device
>>> context = Context()
>>> Devices.from_path(context, '/devices/platform')
Device(u'/sys/devices/platform')
>>> Devices.from_path(context, '/sys/devices/platform')
Device(u'/sys/devices/platform')
``context`` is the :class:`Context` in which to search the device.
``path`` is a device path as unicode or byte string.
Return a :class:`Device` object for the device. Raise
:exc:`DeviceNotFoundAtPathError`, if no device was found for ``path``.
.. versionadded:: 0.18
)�
startswith�sys_path�os�path�join�lstrip�sep�
from_sys_path)�cls�contextr � r"