Server IP : 103.169.32.36 / Your IP : 216.73.217.13 Web Server : Apache System : Linux web.dpmptsp 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : apache ( 48) PHP Version : 5.6.40 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /lib/python2.7/site-packages/pyudev/ |
Upload File : |
| Current File : /lib/python2.7/site-packages/pyudev/glib.py |
# -*- coding: utf-8 -*-
# Copyright (C) 2010, 2011, 2012 Sebastian Wiesner <lunaryorn@googlemail.com>
# This library is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by the
# Free Software Foundation; either version 2.1 of the License, or (at your
# option) any later version.
# This library is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
# for more details.
# You should have received a copy of the GNU Lesser General Public License
# along with this library; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
"""
pyudev.pygtk
============
Provide :class:`~pyudev.glib.GUDevMonitorObserver` to integrate a
:class:`~pyudev.Monitor` into a :class:`glib.MainLoop`.
To use this module, :mod:`glib` and :mod:`gobject` from PyGObject_ must be
available. PyGtk is not required.
.. _PyGObject: http://www.pygtk.org/
.. moduleauthor:: Sebastian Wiesner <lunaryorn@googlemail.com>
.. versionadded:: 0.7
"""
from __future__ import (print_function, division, unicode_literals,
absolute_import)
# thanks to absolute imports, this really imports the glib binding and not this
# module again
import glib
import gobject
class GUDevMonitorObserver(gobject.GObject):
"""
Observe a :class:`~pyudev.Monitor` and emit Glib signals upon device
events:
>>> context = pyudev.Context()
>>> monitor = pyudev.Monitor.from_netlink(context)
>>> monitor.filter_by(subsystem='input')
>>> observer = pyudev.pygtk.GUDevMonitorObserver(monitor)
>>> def device_connected(observer, device):
... print('{0!r} added'.format(device))
>>> observer.connect('device-added', device_connected)
>>> monitor.start()
This class is a child of :class:`gobject.GObject`.
"""
_action_signal_map = {
'add': 'device-added', 'remove': 'device-removed',
'change': 'device-changed', 'move': 'device-moved'}
__gsignals__ = {
# explicitly convert the signal to str, because glib expects the
# *native* string type of the corresponding python version as type of
# signal name, and str() is the name of the native string type of both
# python versions. We could also remove the "unicode_literals" import,
# but I don't want to make exceptions to the standard set of future
# imports used throughout pyudev for the sake of consistency.
str('device-event'): (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
(gobject.TYPE_STRING, gobject.TYPE_PYOBJECT)),
str('device-added'): (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,)),
str('device-removed'): (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,)),
str('device-changed'): (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,)),
str('device-moved'): (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,)),
}
def __init__(self, monitor):
gobject.GObject.__init__(self)
self.monitor = monitor
self.event_source = None
self.enabled = True
@property
def enabled(self):
"""
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
"""
return self.event_source is not None
@enabled.setter
def enabled(self, value):
if value and self.event_source is None:
self.event_source = glib.io_add_watch(
self.monitor, glib.IO_IN, self._process_udev_event)
elif not value and self.event_source is not None:
glib.source_remove(self.event_source)
def _process_udev_event(self, source, condition):
if condition == glib.IO_IN:
event = self.monitor.receive_device()
if event:
action, device = event
self.emit('device-event', action, device)
self.emit(self._action_signal_map[action], device)
return True
gobject.type_register(GUDevMonitorObserver)
| N4m3 |
5!z3 |
L45t M0d!f!3d |
0wn3r / Gr0up |
P3Rm!55!0n5 |
0pt!0n5 |
| .. |
-- |
December 21 2023 09:18:24 |
0 / 0 |
0755 |
|
| | | | | |
| __init__.py |
1.745 KB |
March 01 2012 17:19:57 |
0 / 0 |
0644 |
|
| __init__.pyc |
1.209 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| __init__.pyo |
1.209 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _compat.py |
1.443 KB |
February 14 2012 16:36:21 |
0 / 0 |
0644 |
|
| _compat.pyc |
0.995 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _compat.pyo |
0.995 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _libudev.py |
9.903 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _libudev.pyc |
8.604 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _libudev.pyo |
8.604 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _py2util.py |
1.318 KB |
February 14 2012 16:36:21 |
0 / 0 |
0644 |
|
| _py2util.pyc |
0.85 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _py2util.pyo |
0.85 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _py3util.py |
1.191 KB |
February 14 2012 16:36:21 |
0 / 0 |
0644 |
|
| _py3util.pyc |
0.672 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _py3util.pyo |
0.672 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _qt_base.py |
2.533 KB |
February 14 2012 16:36:21 |
0 / 0 |
0644 |
|
| _qt_base.pyc |
2.482 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _qt_base.pyo |
2.482 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _util.py |
5.623 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _util.pyc |
5.296 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| _util.pyo |
5.296 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| core.py |
13.662 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| core.pyc |
14.902 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| core.pyo |
14.902 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| device.py |
33.429 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| device.pyc |
38.743 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| device.pyo |
38.743 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| glib.py |
4.494 KB |
February 14 2012 16:36:21 |
0 / 0 |
0644 |
|
| glib.pyc |
3.421 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| glib.pyo |
3.421 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| monitor.py |
16.905 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| monitor.pyc |
17.166 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| monitor.pyo |
17.166 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| pyqt4.py |
2.849 KB |
February 14 2012 16:36:21 |
0 / 0 |
0644 |
|
| pyqt4.pyc |
2.37 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| pyqt4.pyo |
2.37 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| pyside.py |
2.832 KB |
February 14 2012 16:36:21 |
0 / 0 |
0644 |
|
| pyside.pyc |
2.376 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| pyside.pyo |
2.376 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| wx.py |
3.442 KB |
February 14 2012 16:36:21 |
0 / 0 |
0644 |
|
| wx.pyc |
3.702 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|
| wx.pyo |
3.702 KB |
August 03 2017 05:51:25 |
0 / 0 |
0644 |
|