[pypy-commit] extradoc extradoc: stage 3

hakanardo noreply at buildbot.pypy.org
Wed Sep 12 07:54:05 CEST 2012


Author: Hakan Ardo <hakan at debian.org>
Branch: extradoc
Changeset: r4789:4c815eb7006e
Date: 2012-09-12 07:10 +0200
http://bitbucket.org/pypy/extradoc/changeset/4c815eb7006e/

Log:	stage 3

diff --git a/talk/dls2012/demo/fgbg.py b/talk/dls2012/demo/fgbg.py
new file mode 100644
--- /dev/null
+++ b/talk/dls2012/demo/fgbg.py
@@ -0,0 +1,13 @@
+from reloader import ReloadHack
+
+ at ReloadHack
+def background(video):
+    bkg = fcnt = 0
+    for img in video:
+        bkg = (fcnt * bkg + img) / (fcnt + 1)
+        fcnt += 1
+        fg = ((bkg - img) ** 2) > 40
+        #yield img
+        yield fg * 255
+    
+    
diff --git a/talk/dls2012/demo/image.py b/talk/dls2012/demo/image.py
--- a/talk/dls2012/demo/image.py
+++ b/talk/dls2012/demo/image.py
@@ -46,11 +46,13 @@
     __sub__ = binop(float.__sub__)
     __mul__ = binop(float.__mul__)
     __div__ = binop(float.__div__)
+    __pow__ = binop(float.__pow__)
 
     __radd__ = binop(float.__radd__)
     __rsub__ = binop(float.__rsub__)
     __rmul__ = binop(float.__rmul__)
     __rdiv__ = binop(float.__rdiv__)
+    __rpow__ = binop(float.__rpow__)
 
     __lt__ = binop(float.__lt__)
     __le__ = binop(float.__le__)
diff --git a/talk/dls2012/demo/process.py b/talk/dls2012/demo/process.py
--- a/talk/dls2012/demo/process.py
+++ b/talk/dls2012/demo/process.py
@@ -1,8 +1,10 @@
 from reloader import ReloadHack
+from fgbg import background
 
 @ReloadHack
 def process(video):
-    for img in video:
-        yield img * 2 
+    bkg = background(video)
+    for img in bkg:
+        yield img 
 
 
diff --git a/talk/dls2012/demo/reloader.py b/talk/dls2012/demo/reloader.py
--- a/talk/dls2012/demo/reloader.py
+++ b/talk/dls2012/demo/reloader.py
@@ -25,12 +25,20 @@
                                 reload(self.module)
                                 self.iterator_class = getattr(self.module, self.name).iterator_class
                                 obj = iter(self.iterator_class(*args, **kwargs))
+                                halted = False
                         except Exception as e:
                             print
                             traceback.print_exc()
                         else:
-                            break
-                yield obj.next()
+                            if not halted:
+                                break
+                try:
+                    yield obj.next()
+                except Exception as e:
+                    print
+                    traceback.print_exc()
+                    halted = True
+
 
         return wrapper()
 


More information about the pypy-commit mailing list