##// END OF EJS Templates
Merged Laurent's fixes for various small issues with the standalone WX...
Merged Laurent's fixes for various small issues with the standalone WX frontend. I modified the name of the new standalone script to be 'ipython-wx' because I expect we'll develop a set of new GUI frontends. Using the naming scheme 'ipython-XX' will make them easier to discover.

File last commit:

r1234:52b55407
r1595:b7059034 merge
Show More
growl.py
49 lines | 1.1 KiB | text/x-python | PythonLexer
#!/usr/bin/env python
# encoding: utf-8
class IPythonGrowlError(Exception):
pass
class Notifier(object):
def __init__(self, app_name):
try:
import Growl
except ImportError:
self.g_notifier = None
else:
self.g_notifier = Growl.GrowlNotifier(app_name, ['kernel', 'core'])
self.g_notifier.register()
def _notify(self, title, msg):
if self.g_notifier is not None:
self.g_notifier.notify('kernel', title, msg)
def notify(self, title, msg):
self._notify(title, msg)
def notify_deferred(self, r, msg):
title = "Deferred Result"
msg = msg + '\n' + repr(r)
self._notify(title, msg)
return r
_notifier = None
def notify(title, msg):
pass
def notify_deferred(r, msg):
return r
def start(app_name):
global _notifier, notify, notify_deferred
if _notifier is not None:
raise IPythonGrowlError("this process is already registered with Growl")
else:
_notifier = Notifier(app_name)
notify = _notifier.notify
notify_deferred = _notifier.notify_deferred