%PDF- %PDF-
Direktori : /snap/core18/current/usr/lib/python3/dist-packages/pyudev/__pycache__/ |
Current File : //snap/core18/current/usr/lib/python3/dist-packages/pyudev/__pycache__/glib.cpython-36.pyc |
3 u1�W� � @ s| d Z ddlmZmZmZmZ ddlZddlZG dd� de�Z G dd� dej e �Zeje� G dd � d ej e �Z eje � dS ) a� pyudev.glib =========== Glib integration. :class:`MonitorObserver` integrates device monitoring into the Glib mainloop by turing device events into Glib signals. :mod:`glib` and :mod:`gobject` from PyGObject_ must be available when importing this module. PyGtk is not required. .. _PyGObject: http://www.pygtk.org/ .. moduleauthor:: Sebastian Wiesner <lunaryorn@gmail.com> .. versionadded:: 0.7 � )�print_function�division�unicode_literals�absolute_importNc @ sB e Zd ZdZdd� Zedd� �Zejdd� �Zdd� Zd d � Z dS )�_ObserverMixinz>Mixin to provide observer behavior to the old and the new API.c C s || _ d | _d| _d S )NT)�monitor�event_source�enabled)�selfr � r �-/usr/lib/python3/dist-packages/pyudev/glib.py�_setup_observer2 s z_ObserverMixin._setup_observerc C s | j dk S )z� Whether this observer is enabled or not. If ``True`` (the default), this observer is enabled, and emits events. Otherwise it is disabled and does not emit any events. .. versionadded:: 0.14 N)r )r r r r r 8 s z_ObserverMixin.enabledc C sF |r&| j d kr&tj| jtj| j�| _ n| rB| j d k rBtj| j � d S )N)r �glibZio_add_watchr �IO_IN�_process_udev_eventZ source_remove)r �valuer r r r D s c C s. |t jkr*| jjdd�}|d k r*| j|� dS )Nr )ZtimeoutT)r r r Zpoll�_emit_event)r �sourceZ condition�devicer r r r M s z"_ObserverMixin._process_udev_eventc C s | j d|� d S )Nzdevice-event)�emit)r r r r r r U s z_ObserverMixin._emit_eventN) �__name__� __module__�__qualname__�__doc__r �propertyr �setterr r r r r r r . s r c @ s2 e Zd ZdZed�ejejejffiZ dd� Z dS )�MonitorObservera� An observer for device events integrating into the :mod:`glib` mainloop. This class inherits :class:`~gobject.GObject` to turn device events into glib signals. >>> from pyudev import Context, Monitor >>> from pyudev.glib import MonitorObserver >>> context = Context() >>> monitor = Monitor.from_netlink(context) >>> monitor.filter_by(subsystem='input') >>> observer = MonitorObserver(monitor) >>> def device_event(observer, device): ... print('event {0} on device {1}'.format(device.action, device)) >>> observer.connect('device-event', device_event) >>> monitor.start() This class is a child of :class:`gobject.GObject`. zdevice-eventc C s t jj| � | j|� d S )N)�gobject�GObject�__init__r )r r r r r r y s zMonitorObserver.__init__N)r r r r �strr �SIGNAL_RUN_LAST� TYPE_NONE� TYPE_PYOBJECT�__gsignals__r r r r r r Y s r c @ s� e Zd ZdZddddd�Zed�ejejej ej ffed�ejejej ffed�ejejej ffed�ejejej ffed�ejejej ffiZdd � Zd d� Z dS ) �GUDevMonitorObserverz� An observer for device events integrating into the :mod:`glib` mainloop. .. deprecated:: 0.17 Will be removed in 1.0. Use :class:`MonitorObserver` instead. zdevice-addedzdevice-removedzdevice-changedzdevice-moved)�add�removeZchangeZmovezdevice-eventc C s. t jj| � | j|� dd l}|jdt� d S )Nr z@Will be removed in 1.0. Use pyudev.glib.MonitorObserver instead.)r r r r �warnings�warn�DeprecationWarning)r r r( r r r r � s zGUDevMonitorObserver.__init__c C s6 | j d|j|� | jj|j�}|d k r2| j ||� d S )Nzdevice-event)r �action�_action_signal_map�get)r r �signalr r r r � s z GUDevMonitorObserver._emit_eventN)r r r r r, r r r! r"