From 0de8ed1099df56d1bf88e7addf4dfdc1265de86f Mon Sep 17 00:00:00 2001 From: Alexander Mordvintsev Date: Sun, 21 Aug 2011 07:19:27 +0000 Subject: [PATCH] demo description url parsing --- samples/python2/demo.py | 37 +++++++++++++++++++-------------- samples/python2/stereo_match.py | 2 +- samples/python2/turing.py | 2 ++ 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/samples/python2/demo.py b/samples/python2/demo.py index 4365d7c91..de833f405 100644 --- a/samples/python2/demo.py +++ b/samples/python2/demo.py @@ -2,6 +2,7 @@ import Tkinter as tk from ScrolledText import ScrolledText from glob import glob from common import splitfn +import webbrowser #from IPython.Shell import IPShellEmbed #ipshell = IPShellEmbed() @@ -80,6 +81,7 @@ class App: def on_link(self, url): print url + webbrowser.open(url) def on_demo_select(self, evt): name = self.demos_lb.get( self.demos_lb.curselection()[0] ) @@ -101,28 +103,31 @@ class App: s = s.rstrip() if i == 0 and not s: continue - sn = len(s) - if s and s == '='*sn: + if s and s == '='*len(s): text.tag_add('header1', 'end-2l', 'end-1l') - elif s and s == '-'*sn: + elif s and s == '-'*len(s): text.tag_add('header2', 'end-2l', 'end-1l') else: text.insert('end', s+'\n') + + def add_link(start, end, url): + for tag in self.linker.add(url): + text.tag_add(tag, start, end) + self.match_text(r'http://\S+', add_link) - def format_line(self, s): + def match_text(self, pattern, tag_proc): text = self.text - pos, n = 0, len(s) - while pos < n: - next = s.find('http://', pos) - if next < 0: - next = n - test.insert(tk.END, s[pos:next]) - pos = next - - - #text.insert(tk.END, "click here!", linker.add('http://asdfsdaf')) - - + text.mark_set('matchPos', '1.0') + count = tk.IntVar() + while True: + match_index = text.search(pattern, 'matchPos', count=count, regexp=True, stopindex='end') + if not match_index: break + end_index = text.index( "%s+%sc" % (match_index, count.get()) ) + text.mark_set('matchPos', end_index) + if callable(tag_proc): + tag_proc(match_index, end_index, text.get(match_index, end_index)) + else: + text.tag_add(tag_proc, match_index, end_index) def run(self): tk.mainloop() diff --git a/samples/python2/stereo_match.py b/samples/python2/stereo_match.py index 0bbcb8172..533f37d17 100644 --- a/samples/python2/stereo_match.py +++ b/samples/python2/stereo_match.py @@ -1,7 +1,7 @@ ''' Simple example of stereo image matching and point cloud generation. -Resulting .ply file cam be easily viewed using MeshLab (http://meshlab.sourceforge.net/) +Resulting .ply file cam be easily viewed using MeshLab ( http://meshlab.sourceforge.net/ ) ''' import numpy as np diff --git a/samples/python2/turing.py b/samples/python2/turing.py index af9b9dec5..8215fc7dd 100644 --- a/samples/python2/turing.py +++ b/samples/python2/turing.py @@ -1,5 +1,7 @@ ''' Multiscale Turing Patterns generator. +===================================== + Inspired by http://www.jonathanmccabe.com/Cyclic_Symmetric_Multi-Scale_Turing_Patterns.pdf '''