[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