aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/internet/gireactor.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/internet/gireactor.py')
-rwxr-xr-xlib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/internet/gireactor.py139
1 files changed, 0 insertions, 139 deletions
diff --git a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/internet/gireactor.py b/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/internet/gireactor.py
deleted file mode 100755
index bf71bb50..00000000
--- a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/internet/gireactor.py
+++ /dev/null
@@ -1,139 +0,0 @@
-# Copyright (c) Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-"""
-This module provides support for Twisted to interact with the glib
-mainloop via GObject Introspection.
-
-In order to use this support, simply do the following::
-
- from twisted.internet import gireactor
- gireactor.install()
-
-If you wish to use a GApplication, register it with the reactor::
-
- from twisted.internet import reactor
- reactor.registerGApplication(app)
-
-Then use twisted.internet APIs as usual.
-"""
-
-import sys
-from twisted.internet.error import ReactorAlreadyRunning
-from twisted.internet import _glibbase
-from twisted.python import runtime
-
-# We can't immediately prevent imports, because that confuses some buggy code
-# in gi:
-_glibbase.ensureNotImported(
- ['gobject' 'glib', 'gio', 'gtk'],
- "Introspected and static glib/gtk bindings must not be mixed; can't "
- "import gireactor since pygtk2 module is already imported.")
-
-from gi.repository import GLib
-GLib.threads_init()
-
-_glibbase.ensureNotImported([], "",
- preventImports=['gobject' 'glib', 'gio', 'gtk'])
-
-
-
-class GIReactor(_glibbase.GlibReactorBase):
- """
- GObject-introspection event loop reactor.
-
- @ivar _gapplication: A C{Gio.Application} instance that was registered
- with C{registerGApplication}.
- """
- _POLL_DISCONNECTED = (GLib.IOCondition.HUP | GLib.IOCondition.ERR |
- GLib.IOCondition.NVAL)
- _POLL_IN = GLib.IOCondition.IN
- _POLL_OUT = GLib.IOCondition.OUT
-
- # glib's iochannel sources won't tell us about any events that we haven't
- # asked for, even if those events aren't sensible inputs to the poll()
- # call.
- INFLAGS = _POLL_IN | _POLL_DISCONNECTED
- OUTFLAGS = _POLL_OUT | _POLL_DISCONNECTED
-
- # By default no Application is registered:
- _gapplication = None
-
-
- def __init__(self, useGtk=False):
- _gtk = None
- if useGtk is True:
- from gi.repository import Gtk as _gtk
-
- _glibbase.GlibReactorBase.__init__(self, GLib, _gtk, useGtk=useGtk)
-
-
- def registerGApplication(self, app):
- """
- Register a C{Gio.Application} or C{Gtk.Application}, whose main loop
- will be used instead of the default one.
-
- We will C{hold} the application so it doesn't exit on its own. In
- versions of C{python-gi} 3.2 and later, we exit the event loop using
- the C{app.quit} method which overrides any holds. Older versions are
- not supported.
- """
- if self._gapplication is not None:
- raise RuntimeError(
- "Can't register more than one application instance.")
- if self._started:
- raise ReactorAlreadyRunning(
- "Can't register application after reactor was started.")
- if not hasattr(app, "quit"):
- raise RuntimeError("Application registration is not supported in"
- " versions of PyGObject prior to 3.2.")
- self._gapplication = app
- def run():
- app.hold()
- app.run(None)
- self._run = run
-
- self._crash = app.quit
-
-
-
-class PortableGIReactor(_glibbase.PortableGlibReactorBase):
- """
- Portable GObject Introspection event loop reactor.
- """
- def __init__(self, useGtk=False):
- _gtk = None
- if useGtk is True:
- from gi.repository import Gtk as _gtk
-
- _glibbase.PortableGlibReactorBase.__init__(self, GLib, _gtk,
- useGtk=useGtk)
-
-
- def registerGApplication(self, app):
- """
- Register a C{Gio.Application} or C{Gtk.Application}, whose main loop
- will be used instead of the default one.
- """
- raise NotImplementedError("GApplication is not currently supported on Windows.")
-
-
-
-def install(useGtk=False):
- """
- Configure the twisted mainloop to be run inside the glib mainloop.
-
- @param useGtk: should GTK+ rather than glib event loop be
- used (this will be slightly slower but does support GUI).
- """
- if runtime.platform.getType() == 'posix':
- reactor = GIReactor(useGtk=useGtk)
- else:
- reactor = PortableGIReactor(useGtk=useGtk)
-
- from twisted.internet.main import installReactor
- installReactor(reactor)
- return reactor
-
-
-__all__ = ['install']