##// END OF EJS Templates
Added GTK support to ZeroMQ kernel....
Added GTK support to ZeroMQ kernel. We use an approach which is a combination of an gtk timer callback into our execution loop, like we do for Qt and Wx, I've run as tests several GTK examples found on the net, as well as multiple matplotlib scripts, and so far everything works as expected. The only catch is that we silently trap gtk.main_quit(), so examples that call it with a 'close' button or similar seem to not do anything. But their windows close normally and no other problems have been found. This solution uses code taken from an old bug report of ours: https://bugs.launchpad.net/ipython/+bug/270856 specifically the attachment in this comment: https://bugs.launchpad.net/ipython/+bug/270856/comments/6 along with the changes suggested by Michiel de Hoon there. Thanks to Ville and Michiel for that old discussion, which put me on the right track to figure out the details of the logic needed for GTK.

File last commit:

r2267:928c921b
r2949:13751b1c
Show More
ipy_p4.py
47 lines | 1.3 KiB | text/x-python | PythonLexer
vivainio
New extensions ipy_p4 for %p4 magic (perforce)
r524 # -*- coding: utf-8 -*-
"""
Add %p4 magic for pythonic p4 (Perforce) usage.
"""
Brian Granger
ipapi.py => core/ipapi.py and imports updated.
r2027 from IPython.core import ipapi
ip = ipapi.get()
vivainio
New extensions ipy_p4 for %p4 magic (perforce)
r524
import os,sys,marshal
import ipy_stock_completers
def p4_f(self, parameter_s=''):
cmd = 'p4 -G ' + parameter_s
vivainio
unmarshal p4 -G output to list
r526 fobj = os.popen(cmd)
out = []
while 1:
try:
out.append(marshal.load(fobj))
except EOFError:
break
return out
vivainio
New extensions ipy_p4 for %p4 magic (perforce)
r524
vivainio
a bit longer prompt for sh profile, p4d func in ipy_p4
r630 def p4d(fname):
return os.popen('p4 where ' + fname).read().split()[0]
Brian Granger
Continuing a massive refactor of everything.
r2205 ip.push("p4d")
vivainio
a bit longer prompt for sh profile, p4d func in ipy_p4
r630
Brian Granger
Continuing a massive refactor of everything.
r2205 ip.define_magic('p4', p4_f)
vivainio
New extensions ipy_p4 for %p4 magic (perforce)
r524
p4_commands = """\
add admin annotate branch branches change changes changelist
changelists client clients counter counters delete depot depots
describe diff diff2 dirs edit filelog files fix fixes flush fstat
group groups have help info integrate integrated job jobs jobspec
label labels labelsync lock logger login logout monitor obliterate
opened passwd print protect rename reopen resolve resolved revert
review reviews set submit sync tag tickets triggers typemap unlock
user users verify workspace workspaces where"""
def p4_completer(self,event):
return ipy_stock_completers.vcs_completer(p4_commands, event)
ip.set_hook('complete_command', p4_completer, str_key = '%p4')
vivainio
unmarshal p4 -G output to list
r526 ip.set_hook('complete_command', p4_completer, str_key = 'p4')
vivainio
New extensions ipy_p4 for %p4 magic (perforce)
r524