[IPython-dev] check for "q" or abort in a custom magic-function

Alexander Krause admin@erazor-zone...
Wed Jun 20 09:44:27 CDT 2012


Hi all,

I started to play a bit with iPython today and decided to add some
functions for general automation purposes.

I already implemented a pure ModBus master/slave in python and added
wrote a custom class for a ModBus device.

With iPython it's pretty nice to manipulate and program such devices.
I overloaded the __getattr__ and __setattr__ and am able to read the
value of a device by just typing:
In [3]: AC.OnOff
Out[3]: 0

Or write the value via:
In [4]: AC.OnOff=1


Another nice feature would be to actually monitor the value of a object.

For this purpose I started to write a magic function which more or less
does the same like the linux command watch:
<code python>
ip=get_ipython()

def magic_watch(self,cmd):
	sleep_time=1
	import time
	while True:
		self.ex(cmd)
		time.sleep(sleep_time)

ip.define_magic('watch',magic_watch)
</code>

Is there a way to actually call self.ev? I suppose I've to flush some
stdout buffers to get the output?

How can I check for example for the key q to abort the loop?

Thanks a lot for any hints!

Regards,
Alex




More information about the IPython-dev mailing list