Revision: 7087
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7087&view=rev
Author: efiring
Date: 2009-05-06 20:52:55 +0000 (Wed, 06 May 2009)
Log Message:
-----------
Give a more descriptive name (multiprocess.py) to new example
Added Paths:
-----------
trunk/matplotlib/examples/misc/multiprocess.py
Removed Paths:
-------------
trunk/matplotlib/examples/misc/log.py
Deleted: trunk/matplotlib/examples/misc/log.py
===================================================================
--- trunk/matplotlib/examples/misc/log.py 2009-05-06 18:13:41 UTC (rev
7086)
+++ trunk/matplotlib/examples/misc/log.py 2009-05-06 20:52:55 UTC (rev
7087)
@@ -1,87 +0,0 @@
-#Demo of using multiprocessing for generating data in one process and plotting
-#in another.
-#Written by Robert Cimrman
-#Requires >= Python 2.6 for the multiprocessing module or having the
-#standalone processing module installed
-import time
-try:
- from multiprocessing import Process, Pipe
-except ImportError:
- from processing import Process, Pipe
-from Queue import Empty
-import numpy as np
-import pylab
-import gobject
-
-class ProcessPlotter(object):
-
- def __init__(self):
- self.x = []
- self.y = []
-
- def terminate(self):
- pylab.close('all')
-
- def poll_draw(self):
-
- def call_back():
- while 1:
- if not self.pipe.poll():
- break
-
- command = self.pipe.recv()
-
- if command is None:
- self.terminate()
- return False
-
- else:
- self.x.append(command[0])
- self.y.append(command[1])
- self.ax.plot(self.x, self.y, 'ro')
-
- self.fig.canvas.draw()
- return True
-
- return call_back
-
- def __call__(self, pipe):
- print 'starting plotter...'
-
- self.pipe = pipe
- self.fig = pylab.figure()
-
- self.ax = self.fig.add_subplot(111)
- self.gid = gobject.timeout_add(1000, self.poll_draw())
-
- print '...done'
- pylab.show()
-
-
-class NBPlot(object):
- def __init__(self):
- self.plot_pipe, plotter_pipe = Pipe()
- self.plotter = ProcessPlotter()
- self.plot_process = Process(target = self.plotter,
- args = (plotter_pipe,))
- self.plot_process.daemon = True
- self.plot_process.start()
-
- def plot(self, finished=False):
- send = self.plot_pipe.send
- if finished:
- send(None)
- else:
- data = np.random.random(2)
- send(data)
-
-def main():
- pl = NBPlot()
- for ii in xrange(10):
- pl.plot()
- time.sleep(0.5)
- raw_input('press Enter...')
- pl.plot(finished=True)
-
-if __name__ == '__main__':
- main()
Copied: trunk/matplotlib/examples/misc/multiprocess.py (from rev 7086,
trunk/matplotlib/examples/misc/log.py)
===================================================================
--- trunk/matplotlib/examples/misc/multiprocess.py
(rev 0)
+++ trunk/matplotlib/examples/misc/multiprocess.py 2009-05-06 20:52:55 UTC
(rev 7087)
@@ -0,0 +1,87 @@
+#Demo of using multiprocessing for generating data in one process and plotting
+#in another.
+#Written by Robert Cimrman
+#Requires >= Python 2.6 for the multiprocessing module or having the
+#standalone processing module installed
+import time
+try:
+ from multiprocessing import Process, Pipe
+except ImportError:
+ from processing import Process, Pipe
+from Queue import Empty
+import numpy as np
+import pylab
+import gobject
+
+class ProcessPlotter(object):
+
+ def __init__(self):
+ self.x = []
+ self.y = []
+
+ def terminate(self):
+ pylab.close('all')
+
+ def poll_draw(self):
+
+ def call_back():
+ while 1:
+ if not self.pipe.poll():
+ break
+
+ command = self.pipe.recv()
+
+ if command is None:
+ self.terminate()
+ return False
+
+ else:
+ self.x.append(command[0])
+ self.y.append(command[1])
+ self.ax.plot(self.x, self.y, 'ro')
+
+ self.fig.canvas.draw()
+ return True
+
+ return call_back
+
+ def __call__(self, pipe):
+ print 'starting plotter...'
+
+ self.pipe = pipe
+ self.fig = pylab.figure()
+
+ self.ax = self.fig.add_subplot(111)
+ self.gid = gobject.timeout_add(1000, self.poll_draw())
+
+ print '...done'
+ pylab.show()
+
+
+class NBPlot(object):
+ def __init__(self):
+ self.plot_pipe, plotter_pipe = Pipe()
+ self.plotter = ProcessPlotter()
+ self.plot_process = Process(target = self.plotter,
+ args = (plotter_pipe,))
+ self.plot_process.daemon = True
+ self.plot_process.start()
+
+ def plot(self, finished=False):
+ send = self.plot_pipe.send
+ if finished:
+ send(None)
+ else:
+ data = np.random.random(2)
+ send(data)
+
+def main():
+ pl = NBPlot()
+ for ii in xrange(10):
+ pl.plot()
+ time.sleep(0.5)
+ raw_input('press Enter...')
+ pl.plot(finished=True)
+
+if __name__ == '__main__':
+ main()
Property changes on: trunk/matplotlib/examples/misc/multiprocess.py
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/v0_91_maint/examples/misc/log.py:5753-5771
/branches/v0_98_5_maint/examples/misc/log.py:6581,6585,6587,6589-6609,6614,6616,6625,6652,6660-6662,6672-6673,6714-6715,6717-6732,6752-6754,6761-6773,6781,6792,6800,6802,6805,6809,6811,6822,6827,6850,6854,6856,6859,6861-6873,6883-6884,6886,6890-6891,6906-6909,6911-6912,6915-6916,6918,6920-6925,6927-6928,6934,6941,6946,6948,6950,6952,6960,6972,6984-6985,6990,6995,6997-7001,7014,7016,7018,7024-7025,7033,7035,7042,7072,7080
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins