<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7922978</id><updated>2011-10-01T11:42:42.252-07:00</updated><title type='text'>Programming in python</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7922978.post-6727764991489818593</id><published>2009-08-12T22:21:00.000-07:00</published><updated>2009-08-12T22:37:21.029-07:00</updated><title type='text'>Convert html files to pdf</title><content type='html'>&lt;FONT COLOR="green"&gt;#html2pdf.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Convert&amp;nbsp;an&amp;nbsp;html&amp;nbsp;file&amp;nbsp;into&amp;nbsp;pdf.&amp;nbsp;This&amp;nbsp;script&amp;nbsp;uses&amp;nbsp;WebKit&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#and&amp;nbsp;runs&amp;nbsp;on&amp;nbsp;OS&amp;nbsp;X&amp;nbsp;1.5&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Usage:&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;python&amp;nbsp;html2pdf.py&amp;nbsp;&amp;lt;inputfile&amp;gt;&amp;nbsp;&amp;lt;outputfile&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Written&amp;nbsp;using&amp;nbsp;code&amp;nbsp;from&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#http://cocoadevcentral.com/articles/000074.php&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#http://www.paulhammond.org/webkit2png&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;WebKit&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;Foundation&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;NSObject,&amp;nbsp;NSMutableDictionary,&amp;nbsp;NSURL,&amp;nbsp;NSURLRequest&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;AppKit&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(NSPrintInfo,&amp;nbsp;NSPrintSaveJob,&amp;nbsp;NSPrintJobDisposition,&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSPrintJobDisposition,&amp;nbsp;NSPrintSavePath,&amp;nbsp;NSPrintInfo,&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSAutoPagination,&amp;nbsp;NSApplication,&amp;nbsp;NSWindow,&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSBorderlessWindowMask)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;WebkitLoad&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(NSObject,&amp;nbsp;WebKit.protocols.WebFrameLoadDelegate):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;webView_didFinishLoadForFrame_&lt;/FONT&gt;&lt;/b&gt;(self,webview,frame):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(frame&amp;nbsp;==&amp;nbsp;webview.mainFrame()):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.printFrame(frame)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;printFrame&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;frame):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;frameview&amp;nbsp;=&amp;nbsp;frame.frameView()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sharedInfo&amp;nbsp;=&amp;nbsp;NSPrintInfo.sharedPrintInfo()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sharedDict&amp;nbsp;=&amp;nbsp;sharedInfo.dictionary()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printInfoDict&amp;nbsp;=&amp;nbsp;NSMutableDictionary.dictionaryWithDictionary_(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sharedDict)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printInfoDict.setObject_forKey_(NSPrintSaveJob,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSPrintJobDisposition);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printInfoDict.setObject_forKey_(self.pdffile,&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSPrintSavePath)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printInfo&amp;nbsp;=&amp;nbsp;NSPrintInfo.alloc().initWithDictionary_(printInfoDict)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printInfo.setHorizontalPagination_(NSAutoPagination);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printInfo.setVerticalPagination_(NSAutoPagination);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printInfo.setVerticallyCentered_(False);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printOp&amp;nbsp;=&amp;nbsp;frameview.printOperationWithPrintInfo_(printInfo)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printOp.setShowPanels_(False)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printOp.runOperation()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSApplication.sharedApplication().terminate_(None)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;main&lt;/FONT&gt;&lt;/b&gt;(args):&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;htmlfile=args[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pdffile=args[&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rect&amp;nbsp;=&amp;nbsp;((&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;),(&lt;FONT COLOR="blue"&gt;400&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="blue"&gt;400&lt;/FONT&gt;))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;app&amp;nbsp;=&amp;nbsp;NSApplication.sharedApplication()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;win&amp;nbsp;=&amp;nbsp;NSWindow.alloc()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;win.initWithContentRect_styleMask_backing_defer_&amp;nbsp;(rect,&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSBorderlessWindowMask,&amp;nbsp;&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;webview&amp;nbsp;=&amp;nbsp;WebKit.WebView.alloc().init()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;webview.initWithFrame_(rect)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url&amp;nbsp;=&amp;nbsp;NSURL.alloc().initFileURLWithPath_(htmlfile)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;request&amp;nbsp;=&amp;nbsp;NSURLRequest.alloc().initWithURL_(url)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mainFrame&amp;nbsp;=&amp;nbsp;webview.mainFrame()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mainFrame.loadRequest_(request)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;loaddelegate&amp;nbsp;=&amp;nbsp;WebkitLoad.alloc().init()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;loaddelegate.pdffile&amp;nbsp;=&amp;nbsp;pdffile&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;webview.setFrameLoadDelegate_(loaddelegate)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;win.setContentView_(webview)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;app.run()&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;__name__&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"__main__"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sys&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;main(sys.argv)&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-6727764991489818593?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/6727764991489818593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=6727764991489818593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/6727764991489818593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/6727764991489818593'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2009/08/convert-html-files-to-pdf.html' title='Convert html files to pdf'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-712860811606762564</id><published>2009-05-04T14:51:00.000-07:00</published><updated>2009-05-04T14:52:21.847-07:00</updated><title type='text'>Create a popup bookmarklet</title><content type='html'>&lt;FONT COLOR="green"&gt;#buildbookmarklet.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Create&amp;nbsp;a&amp;nbsp;popup&amp;nbsp;bookmarklet&amp;nbsp;from&amp;nbsp;some&amp;nbsp;html&amp;nbsp;content.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#eg.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#echo&amp;nbsp;"&amp;lt;h1&amp;gt;Hello&amp;nbsp;World&amp;lt;/h1&amp;gt;"&amp;nbsp;|&amp;nbsp;python&amp;nbsp;bookmarklet.py&amp;nbsp;&amp;gt;&amp;nbsp;out.html&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sys&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;urllib&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;optparse&lt;br&gt;&lt;br&gt;usage&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"python&amp;nbsp;buildbookmarklet.py&amp;nbsp;[options]"&lt;/FONT&gt;&lt;br&gt;parser&amp;nbsp;=&amp;nbsp;optparse.OptionParser(usage=usage)&lt;br&gt;&lt;br&gt;parser.add_option(&lt;FONT COLOR="olive"&gt;"-l"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"--length"&lt;/FONT&gt;,&amp;nbsp;type=&lt;FONT COLOR="olive"&gt;"int"&lt;/FONT&gt;,&amp;nbsp;dest=&lt;FONT COLOR="olive"&gt;"height"&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default=&lt;FONT COLOR="blue"&gt;150&lt;/FONT&gt;,&amp;nbsp;help=&lt;FONT COLOR="olive"&gt;"The&amp;nbsp;height&amp;nbsp;of&amp;nbsp;the&amp;nbsp;popup&amp;nbsp;window."&lt;/FONT&gt;)&lt;br&gt;parser.add_option(&lt;FONT COLOR="olive"&gt;"-w"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"--width"&lt;/FONT&gt;,&amp;nbsp;type=&lt;FONT COLOR="olive"&gt;"int"&lt;/FONT&gt;,&amp;nbsp;dest=&lt;FONT COLOR="olive"&gt;"width"&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default=&lt;FONT COLOR="blue"&gt;350&lt;/FONT&gt;,&amp;nbsp;help=&lt;FONT COLOR="olive"&gt;"The&amp;nbsp;width&amp;nbsp;of&amp;nbsp;the&amp;nbsp;popup&amp;nbsp;window."&lt;/FONT&gt;)&lt;br&gt;parser.add_option(&lt;FONT COLOR="olive"&gt;"-t"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"--title"&lt;/FONT&gt;,&amp;nbsp;type=&lt;FONT COLOR="olive"&gt;"string"&lt;/FONT&gt;,&amp;nbsp;dest=&lt;FONT COLOR="olive"&gt;"title"&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default=&lt;FONT COLOR="olive"&gt;'Bookmarklet'&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;help=&lt;FONT COLOR="olive"&gt;"The&amp;nbsp;title&amp;nbsp;of&amp;nbsp;the&amp;nbsp;bookmarklet."&lt;/FONT&gt;)&lt;br&gt;(options,&amp;nbsp;args)&amp;nbsp;=&amp;nbsp;parser.parse_args()&lt;br&gt;&lt;br&gt;&lt;br&gt;s&amp;nbsp;=&amp;nbsp;(&lt;FONT COLOR="olive"&gt;'my_window=&amp;nbsp;window.open&amp;nbsp;("","win","status=1,width=%i,height=%i");'&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;'my_window.document.write(%s);'&lt;/FONT&gt;%&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(options.width,&amp;nbsp;options.height,&amp;nbsp;repr(sys.stdin.read())))&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;""&lt;/FONT&gt;&lt;FONT COLOR="olive"&gt;"&lt;br&gt;&amp;lt;html&amp;gt;&lt;br&gt;&amp;lt;a&amp;nbsp;href="&lt;/FONT&gt;javascript:%s&lt;FONT COLOR="olive"&gt;"&amp;gt;%s&amp;lt;/a&amp;gt;&lt;br&gt;&amp;lt;/html&amp;gt;&lt;br&gt;"&lt;/FONT&gt;&lt;FONT COLOR="olive"&gt;""&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;(urllib.quote(s),&amp;nbsp;options.title)&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-712860811606762564?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/712860811606762564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=712860811606762564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/712860811606762564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/712860811606762564'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2009/05/create-popup-bookmarklet.html' title='Create a popup bookmarklet'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-1839519740944941021</id><published>2009-01-02T02:21:00.000-08:00</published><updated>2009-01-22T12:24:07.814-08:00</updated><title type='text'>Create a mercurial mirror of an svn branch</title><content type='html'>&lt;FONT COLOR="green"&gt;#hgsvnsync.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Create&amp;nbsp;a&amp;nbsp;mercurial&amp;nbsp;mirror&amp;nbsp;of&amp;nbsp;a&amp;nbsp;branch&amp;nbsp;in&amp;nbsp;an&amp;nbsp;svn&amp;nbsp;repository&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#This&amp;nbsp;scripts&amp;nbsp;requires&amp;nbsp;that&amp;nbsp;the&amp;nbsp;commands&amp;nbsp;svn&amp;nbsp;and&amp;nbsp;hg&amp;nbsp;be&amp;nbsp;present&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#in&amp;nbsp;the&amp;nbsp;path.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Usage:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#To&amp;nbsp;create&amp;nbsp;a&amp;nbsp;new&amp;nbsp;mirror&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;python&amp;nbsp;hgsvnsync.py&amp;nbsp;init&amp;nbsp;svn_url&amp;nbsp;mirror_location&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#To&amp;nbsp;update&amp;nbsp;the&amp;nbsp;mirror&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;python&amp;nbsp;hgsvnsync.py&amp;nbsp;update&amp;nbsp;mirror_location&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;Changes&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;23-Jan-2009&amp;nbsp;Updated&amp;nbsp;to&amp;nbsp;working&amp;nbsp;version.&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;commands&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;re&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;os&lt;br&gt;&lt;br&gt;hgignore=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""syntax:&amp;nbsp;regexp&lt;br&gt;[.]svn/&lt;br&gt;[.]hgignore&lt;br&gt;[.]commitmessage"""&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;getRevisions&lt;/FONT&gt;&lt;/b&gt;(svn_url,&amp;nbsp;frm=&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s&amp;nbsp;=&amp;nbsp;commands.getoutput(&lt;FONT COLOR="olive"&gt;'svn&amp;nbsp;-r%s:HEAD&amp;nbsp;log&amp;nbsp;%s'&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;(frm,&amp;nbsp;svn_url))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;re.findall(&lt;FONT COLOR="olive"&gt;'------------------------------------------------------------------------\n'&lt;/FONT&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;'r(\d+)&amp;nbsp;[|]&amp;nbsp;\w+&amp;nbsp;[|]&amp;nbsp;'&lt;/FONT&gt;,&amp;nbsp;s)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;createFile&lt;/FONT&gt;&lt;/b&gt;(filename,&amp;nbsp;content):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;f&amp;nbsp;=&amp;nbsp;file(filename,&amp;nbsp;&lt;FONT COLOR="olive"&gt;'w'&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;f.write(content)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;f.close()&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;init&lt;/FONT&gt;&lt;/b&gt;(svn_url,&amp;nbsp;dest):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;commands.getoutput(&lt;FONT COLOR="olive"&gt;'svn&amp;nbsp;co&amp;nbsp;-r1&amp;nbsp;%s&amp;nbsp;%s'&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;(svn_url,&amp;nbsp;dest))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;commands.getoutput(&lt;FONT COLOR="olive"&gt;'hg&amp;nbsp;init&amp;nbsp;%s'&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;dest)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;createFile(os.path.join(dest,&amp;nbsp;&lt;FONT COLOR="olive"&gt;'.hgignore'&lt;/FONT&gt;),&amp;nbsp;hgignore)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;parseLog&lt;/FONT&gt;&lt;/b&gt;(log):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(rev,&amp;nbsp;commiter,&amp;nbsp;date,&amp;nbsp;lines)&amp;nbsp;=&amp;nbsp;&amp;nbsp;re.search(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;'------------------------------------------------------------------------\n'&lt;/FONT&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;'r(\d+)&amp;nbsp;[|]&amp;nbsp;(\w+)&amp;nbsp;[|]&amp;nbsp;([^(]+)[^|]+[|]&amp;nbsp;(\d+)&amp;nbsp;line[s]?\n'&lt;/FONT&gt;,&amp;nbsp;log).groups()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;message&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"%s\n\nSvn&amp;nbsp;Revision&amp;nbsp;%s"&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;(&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"\n"&lt;/FONT&gt;.join(log.split(&lt;FONT COLOR="olive"&gt;'\n'&lt;/FONT&gt;)[&lt;FONT COLOR="blue"&gt;3&lt;/FONT&gt;:(&lt;FONT COLOR="blue"&gt;3&lt;/FONT&gt;+int(lines))]),rev)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(rev,&amp;nbsp;commiter,&amp;nbsp;date,&amp;nbsp;message)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;parseInfo&lt;/FONT&gt;&lt;/b&gt;(info):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;dict(re.findall(&lt;FONT COLOR="olive"&gt;"(\w+):&amp;nbsp;(.*)"&lt;/FONT&gt;,&amp;nbsp;info))&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;commitRevs&lt;/FONT&gt;&lt;/b&gt;(svn_url,&amp;nbsp;dest,&amp;nbsp;frm):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;revs&amp;nbsp;=&amp;nbsp;getRevisions(svn_url,&amp;nbsp;frm)[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;:]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;rev&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;revs:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"Commiting&amp;nbsp;revision&amp;nbsp;%s"&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;rev&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;commands.getoutput(&lt;FONT COLOR="olive"&gt;'svn&amp;nbsp;update&amp;nbsp;-r%s&amp;nbsp;%s'&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;(rev,&amp;nbsp;dest))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logMsg&amp;nbsp;=&amp;nbsp;commands.getoutput(&lt;FONT COLOR="olive"&gt;'svn&amp;nbsp;log&amp;nbsp;-rCOMMITTED&amp;nbsp;%s'&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;dest)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(rev,&amp;nbsp;commiter,&amp;nbsp;date,&amp;nbsp;message)&amp;nbsp;=&amp;nbsp;parseLog(logMsg)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;commitmessagepath&amp;nbsp;=&amp;nbsp;os.path.join(dest,&amp;nbsp;&lt;FONT COLOR="olive"&gt;'.commitmessage'&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;createFile(commitmessagepath,&amp;nbsp;message)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;commands.getoutput(&lt;FONT COLOR="olive"&gt;"hg&amp;nbsp;commit&amp;nbsp;-A&amp;nbsp;-l&amp;nbsp;%s&amp;nbsp;-d&amp;nbsp;'%s'&amp;nbsp;-u&amp;nbsp;%s&amp;nbsp;%s"&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(commitmessagepath,&amp;nbsp;date,&amp;nbsp;commiter,&amp;nbsp;dest))&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;main&lt;/FONT&gt;&lt;/b&gt;():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sys&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sys.argv[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]==&lt;FONT COLOR="olive"&gt;'init'&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;svn_url&amp;nbsp;=&amp;nbsp;sys.argv[&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dest&amp;nbsp;=&amp;nbsp;sys.argv[&lt;FONT COLOR="blue"&gt;3&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;init(svn_url,&amp;nbsp;dest)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;commitRevs(svn_url,&amp;nbsp;dest,&amp;nbsp;&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sys.argv[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]==&lt;FONT COLOR="olive"&gt;'update'&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dest&amp;nbsp;=&amp;nbsp;sys.argv[&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;info&amp;nbsp;=&amp;nbsp;parseInfo(commands.getoutput(&lt;FONT COLOR="olive"&gt;'svn&amp;nbsp;info&amp;nbsp;%s'&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;dest))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rev&amp;nbsp;=&amp;nbsp;info[&lt;FONT COLOR="olive"&gt;'Revision'&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;svn_url&amp;nbsp;=&amp;nbsp;info[&lt;FONT COLOR="olive"&gt;'URL'&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;commitRevs(svn_url,&amp;nbsp;dest,&amp;nbsp;rev)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;__name__&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;'__main__'&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;main()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-1839519740944941021?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/1839519740944941021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=1839519740944941021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/1839519740944941021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/1839519740944941021'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2009/01/create-mercurial-mirror-of-svn-branch.html' title='Create a mercurial mirror of an svn branch'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-1763093137344659540</id><published>2008-03-08T02:52:00.000-08:00</published><updated>2008-03-08T02:54:28.696-08:00</updated><title type='text'>Creating a patch as a zip</title><content type='html'>&lt;FONT COLOR="green"&gt;#diffdiff.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;Create&amp;nbsp;a&amp;nbsp;zip&amp;nbsp;file&amp;nbsp;containing&amp;nbsp;the&amp;nbsp;difference&amp;nbsp;between&amp;nbsp;two&amp;nbsp;directories.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;Usage:&amp;nbsp;python&amp;nbsp;dirdiff.py&amp;nbsp;newdir&amp;nbsp;olddir&amp;nbsp;[outputfile]&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;Files&amp;nbsp;files&amp;nbsp;in&amp;nbsp;newdir&amp;nbsp;that&amp;nbsp;are&amp;nbsp;different&amp;nbsp;in&amp;nbsp;olddir&amp;nbsp;or&amp;nbsp;are&amp;nbsp;not&amp;nbsp;present&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;will&amp;nbsp;be&amp;nbsp;zipped.&amp;nbsp;If&amp;nbsp;the&amp;nbsp;outputfile&amp;nbsp;parameter&amp;nbsp;is&amp;nbsp;not&amp;nbsp;&amp;nbsp;provided&amp;nbsp;the&amp;nbsp;a&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;file&amp;nbsp;diff.zip&amp;nbsp;will&amp;nbsp;be&amp;nbsp;created.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;os&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;walk,&amp;nbsp;stat&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;os.path&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;join,&amp;nbsp;sep,&amp;nbsp;split&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sys&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;argv&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;itertools&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;izip&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;zipfile&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;ZipFile,&amp;nbsp;ZIP_DEFLATED&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;chop&lt;/FONT&gt;&lt;/b&gt;(base,&amp;nbsp;path):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;not&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;base.endswith(sep):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;base&amp;nbsp;=&amp;nbsp;base&amp;nbsp;+&amp;nbsp;sep&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;path[len(base):]&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;listfiles&lt;/FONT&gt;&lt;/b&gt;(path):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;base,&amp;nbsp;dirs,&amp;nbsp;files&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;walk(path):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;f&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;files:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;join(base,&amp;nbsp;f)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;dirdiff&lt;/FONT&gt;&lt;/b&gt;(new_path,&amp;nbsp;old_path,&amp;nbsp;diff_file):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zf&amp;nbsp;=&amp;nbsp;ZipFile(diff_file,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"w"&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;write&lt;/FONT&gt;&lt;/b&gt;(file_path):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zf.write(file_path,&amp;nbsp;chop(new_path,&amp;nbsp;file_path),&amp;nbsp;ZIP_DEFLATED)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;old,&amp;nbsp;new&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;izip(walk(old_path),&amp;nbsp;walk(new_path)):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(old_base,&amp;nbsp;old_dirs,&amp;nbsp;old_files)&amp;nbsp;=&amp;nbsp;old&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(new_base,&amp;nbsp;new_dirs,&amp;nbsp;new_files)&amp;nbsp;=&amp;nbsp;new&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;d&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;set(new_dirs).difference(old_dirs):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;f&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;listfiles(join(new_base,&amp;nbsp;d)):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;write(f)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;f&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;set(new_files).difference(old_files):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;write(join(new_base,f))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs&amp;nbsp;=&amp;nbsp;set(old_files)&amp;nbsp;&amp;amp;&amp;nbsp;set(new_files)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ds&amp;nbsp;=&amp;nbsp;set(old_dirs)&amp;nbsp;&amp;amp;&amp;nbsp;set(new_dirs)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;old_dirs[:]&amp;nbsp;=&amp;nbsp;ds&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new_dirs[:]&amp;nbsp;=&amp;nbsp;ds&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;f&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;fs:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file_old&amp;nbsp;=&amp;nbsp;join(old_base,&amp;nbsp;f)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file_new&amp;nbsp;=&amp;nbsp;join(new_base,&amp;nbsp;f)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(stat(file_old).st_mtime&amp;nbsp;!=&amp;nbsp;stat(file_new).st_mtime&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;and&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;file(file_old).read()!=file(file_new).read()):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;write(join(new_base,&amp;nbsp;f))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zf.close()&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;__name__&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"__main__"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new&amp;nbsp;=&amp;nbsp;argv[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;old&amp;nbsp;=&amp;nbsp;argv[&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;len(argv)&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="blue"&gt;4&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;out=argv[&lt;FONT COLOR="blue"&gt;3&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;out=&lt;FONT COLOR="olive"&gt;"diff.zip"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dirdiff(new,&amp;nbsp;old,&amp;nbsp;out)&lt;br&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-1763093137344659540?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/1763093137344659540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=1763093137344659540' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/1763093137344659540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/1763093137344659540'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2008/03/creating-patch-as-zip.html' title='Creating a patch as a zip'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-6730599428688722411</id><published>2008-02-28T19:33:00.000-08:00</published><updated>2008-02-28T19:50:36.988-08:00</updated><title type='text'>Lisp in a single expression</title><content type='html'>&lt;FONT COLOR="green"&gt;#lisp.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#An&amp;nbsp;interpreter&amp;nbsp;for&amp;nbsp;a&amp;nbsp;simple&amp;nbsp;scheme&amp;nbsp;like&amp;nbsp;lexically&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#scoped&amp;nbsp;language&amp;nbsp;implemented&amp;nbsp;as&amp;nbsp;single&amp;nbsp;python&amp;nbsp;expression.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#The&amp;nbsp;interpreter&amp;nbsp;is&amp;nbsp;limited&amp;nbsp;to&amp;nbsp;the&amp;nbsp;lambda&amp;nbsp;special&amp;nbsp;form&amp;nbsp;and&amp;nbsp;a&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#sum&amp;nbsp;function.&amp;nbsp;The&amp;nbsp;data&amp;nbsp;types&amp;nbsp;supported&amp;nbsp;are&amp;nbsp;positive&amp;nbsp;integers&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#and&amp;nbsp;symbols.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;re&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;itertools&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;*&lt;br&gt;iterpreter&amp;nbsp;=&amp;nbsp;(lambda&amp;nbsp;s:&amp;nbsp;(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(lambda&amp;nbsp;g:&amp;nbsp;lambda&amp;nbsp;env,&amp;nbsp;exp:&amp;nbsp;g(g)(env,&amp;nbsp;exp))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(lambda&amp;nbsp;g:&amp;nbsp;(lambda&amp;nbsp;interpret:(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lambda&amp;nbsp;env,&amp;nbsp;exp:{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list:lambda&amp;nbsp;exp:(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(exp[:&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]==[&lt;FONT COLOR="olive"&gt;"lambda"&lt;/FONT&gt;])&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;and&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(lambda&amp;nbsp;env:&amp;nbsp;lambda&amp;nbsp;params:&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(lambda&amp;nbsp;nenv:&amp;nbsp;[interpret(nenv,&amp;nbsp;e)&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;e&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;exp[&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;:]][-&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(lambda&amp;nbsp;x:&amp;nbsp;dict(zip(exp[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;],&amp;nbsp;params)).get(x,&amp;nbsp;False)&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;or&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;env(x)))(env)&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;or&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(lambda&amp;nbsp;pexp:&amp;nbsp;pexp[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;](pexp[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;:]))([interpret(env,&amp;nbsp;e)&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;e&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;exp])),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str:lambda&amp;nbsp;exp:&amp;nbsp;env(exp),&amp;nbsp;int:lambda&amp;nbsp;exp:&amp;nbsp;exp&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}[type(exp)](exp)))(lambda&amp;nbsp;env,&amp;nbsp;exp:g(g)(env,&amp;nbsp;exp))))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(lambda&amp;nbsp;x:{&lt;FONT COLOR="olive"&gt;"sum"&lt;/FONT&gt;:(lambda&amp;nbsp;params:&amp;nbsp;sum(params))}.get(x,&amp;nbsp;False),&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reduce(lambda&amp;nbsp;env,&amp;nbsp;v:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(v==&lt;FONT COLOR="olive"&gt;")"&lt;/FONT&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;and&lt;/FONT&gt;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(lambda:((lambda&amp;nbsp;i:env[:i]+[env[i+&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;:]])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(len(env)-env[::-&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;].index(&lt;FONT COLOR="olive"&gt;"("&lt;/FONT&gt;)-&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;)))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;or&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(lambda:env+[v]))(),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[(i==&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;and&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;int(e[i])&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;or&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;e[i])&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;e,&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[(e,sum([c*(i&amp;nbsp;is&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;not&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;""&lt;/FONT&gt;)&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i,&amp;nbsp;c&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;zip(e,&amp;nbsp;count())]))&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;e&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;re.findall(r&lt;FONT COLOR="olive"&gt;"(\()|(\))|(\d+)|(\w+)"&lt;/FONT&gt;,s)]],&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[])[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]))&lt;br&gt;&lt;br&gt;s&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"((lambda&amp;nbsp;(a&amp;nbsp;b)&amp;nbsp;(sum&amp;nbsp;a&amp;nbsp;(b)))&amp;nbsp;1&amp;nbsp;(lambda&amp;nbsp;()&amp;nbsp;8))"&lt;/FONT&gt;&lt;br&gt;v&amp;nbsp;=&amp;nbsp;iterpreter(s)&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;v&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-6730599428688722411?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/6730599428688722411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=6730599428688722411' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/6730599428688722411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/6730599428688722411'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2008/02/lisp-in-single-expression.html' title='Lisp in a single expression'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-8239354808532167971</id><published>2007-09-04T09:10:00.000-07:00</published><updated>2007-09-04T09:11:33.789-07:00</updated><title type='text'>Count the number of on bits in a 32 bit integer</title><content type='html'>&lt;FONT COLOR="green"&gt;#Count&amp;nbsp;the&amp;nbsp;number&amp;nbsp;of&amp;nbsp;on&amp;nbsp;bits&amp;nbsp;in&amp;nbsp;in&amp;nbsp;a&amp;nbsp;32bit&amp;nbsp;integer&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;bin2int&lt;/FONT&gt;&lt;/b&gt;(s):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sum(int(n)*&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;**i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i,&amp;nbsp;n&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;zip(range(len(s)),&amp;nbsp;s[::-&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]))&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;bitcount1&lt;/FONT&gt;&lt;/b&gt;(n):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;total&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;range(&lt;FONT COLOR="blue"&gt;32&lt;/FONT&gt;):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;total+=n&amp;amp;&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;n&amp;gt;&amp;gt;=&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;masks&amp;nbsp;=&amp;nbsp;[(&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;,&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;'01010101010101010101010101010101'&lt;/FONT&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;,&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;'00110011001100110011001100110011'&lt;/FONT&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;FONT COLOR="blue"&gt;4&lt;/FONT&gt;,&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;'00001111000011110000111100001111'&lt;/FONT&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;FONT COLOR="blue"&gt;8&lt;/FONT&gt;,&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;'00000000111111110000000011111111'&lt;/FONT&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;FONT COLOR="blue"&gt;16&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;'00000000000000001111111111111111'&lt;/FONT&gt;)]&lt;br&gt;&lt;br&gt;masks&amp;nbsp;=&amp;nbsp;[(shift,&amp;nbsp;bin2int(mask))&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;shift,&amp;nbsp;mask&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;masks]&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;bitcount2&lt;/FONT&gt;&lt;/b&gt;(n):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;shift,&amp;nbsp;mask&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;masks:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;n&amp;nbsp;=&amp;nbsp;(n&amp;nbsp;&amp;amp;&amp;nbsp;mask)&amp;nbsp;+&amp;nbsp;(n&amp;gt;&amp;gt;shift&amp;nbsp;&amp;amp;&amp;nbsp;mask)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;n&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;bitcount3&lt;/FONT&gt;&lt;/b&gt;(n):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mask&amp;nbsp;=&amp;nbsp;bin2int(&lt;FONT COLOR="olive"&gt;'00010001000100010001000100010001'&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;total&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;range(&lt;FONT COLOR="blue"&gt;4&lt;/FONT&gt;):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;total+=(((n&amp;gt;&amp;gt;i&amp;amp;mask)*mask)&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;&lt;FONT COLOR="blue"&gt;28&lt;/FONT&gt;)&amp;amp;&amp;nbsp;&lt;FONT COLOR="blue"&gt;0xf&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;total&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-8239354808532167971?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/8239354808532167971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=8239354808532167971' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/8239354808532167971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/8239354808532167971'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2007/09/count-number-of-on-bits-in-32-bit.html' title='Count the number of on bits in a 32 bit integer'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-4364307025334852134</id><published>2007-07-08T06:12:00.000-07:00</published><updated>2007-07-08T06:13:35.739-07:00</updated><title type='text'>cleancvs.py</title><content type='html'>&lt;FONT COLOR="green"&gt;#cleancvs.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Remove&amp;nbsp;directories&amp;nbsp;or&amp;nbsp;files&amp;nbsp;with&amp;nbsp;the&amp;nbsp;name&amp;nbsp;CVS&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Doesn't&amp;nbsp;check&amp;nbsp;whether&amp;nbsp;the&amp;nbsp;file&amp;nbsp;it&amp;nbsp;is&amp;nbsp;deleting&amp;nbsp;is&amp;nbsp;a&amp;nbsp;cvs&amp;nbsp;directory.&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#And&amp;nbsp;expects&amp;nbsp;unix&amp;nbsp;path&amp;nbsp;seperators.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#usage:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#python&amp;nbsp;cleancvs.py&amp;nbsp;[path&amp;nbsp;to&amp;nbsp;clean]&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sys&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;shutil&lt;br&gt;&lt;br&gt;dir&amp;nbsp;=&amp;nbsp;sys.argv[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;basePath,&amp;nbsp;files,&amp;nbsp;directories&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;os.walk(dir):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;basePath.endswith(&lt;FONT COLOR="olive"&gt;"/CVS"&lt;/FONT&gt;):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;shutil.rmtree(basePath)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-4364307025334852134?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/4364307025334852134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=4364307025334852134' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/4364307025334852134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/4364307025334852134'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2007/07/cleancvspy.html' title='cleancvs.py'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-5949308063914512173</id><published>2007-05-27T21:08:00.000-07:00</published><updated>2007-05-27T21:13:21.280-07:00</updated><title type='text'>Sieve of Eratosthenes</title><content type='html'>&lt;FONT COLOR="green"&gt;#sieve.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;The&amp;nbsp;sieve&amp;nbsp;of&amp;nbsp;erasthosenes&amp;nbsp;as&amp;nbsp;an&amp;nbsp;iterator&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;eg.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp;from&amp;nbsp;sieve&amp;nbsp;import&amp;nbsp;*&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp;print(list(takeN(10,&amp;nbsp;sieve()))&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;[2,&amp;nbsp;3,&amp;nbsp;5,&amp;nbsp;7,&amp;nbsp;11,&amp;nbsp;13,&amp;nbsp;17,&amp;nbsp;19,&amp;nbsp;23,&amp;nbsp;29]&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;itertools&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;count,&amp;nbsp;takewhile,&amp;nbsp;izip&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;takeN&lt;/FONT&gt;&lt;/b&gt;(n,&amp;nbsp;iter):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;c,&amp;nbsp;v&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;takewhile(lambda&amp;nbsp;(c,&amp;nbsp;v):&amp;nbsp;c&amp;lt;=n,&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;izip(count(&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;),&amp;nbsp;iter)):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;v&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;orF&lt;/FONT&gt;&lt;/b&gt;(fl,&amp;nbsp;v):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;f&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;fl:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;f(v):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;True&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;False&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;sieve&lt;/FONT&gt;&lt;/b&gt;():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;isFactor&amp;nbsp;=&amp;nbsp;lambda&amp;nbsp;p:&amp;nbsp;lambda&amp;nbsp;n:&amp;nbsp;n%p==&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l&amp;nbsp;=&amp;nbsp;[]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;count(&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;not&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;orF(l,&amp;nbsp;i):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l&amp;nbsp;=&amp;nbsp;l&amp;nbsp;+&amp;nbsp;[isFactor(i)]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-5949308063914512173?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/5949308063914512173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=5949308063914512173' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/5949308063914512173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/5949308063914512173'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2007/05/sieve-of-eratosthenes.html' title='Sieve of Eratosthenes'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-117186973361340049</id><published>2007-02-18T23:20:00.000-08:00</published><updated>2007-02-18T23:22:13.916-08:00</updated><title type='text'>Livejournal Flat Api</title><content type='html'>&lt;FONT COLOR="green"&gt;#lj-api.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;This&amp;nbsp;a&amp;nbsp;simple&amp;nbsp;interface&amp;nbsp;to&amp;nbsp;livejournal's&amp;nbsp;flat&amp;nbsp;client/server&amp;nbsp;protocol&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;The&amp;nbsp;documentation&amp;nbsp;for&amp;nbsp;the&amp;nbsp;Client/Sertver&amp;nbsp;protocols:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;http://www.livejournal.com/doc/server/ljp.csp.protocol.html&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;The&amp;nbsp;documentation&amp;nbsp;for&amp;nbsp;the&amp;nbsp;flat&amp;nbsp;Client/Server&amp;nbsp;Protocol:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;http://www.livejournal.com/doc/server/ljp.csp.flat.protocol.html&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;urllib2&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;urllib&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;md5&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;re&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;md5hex&lt;/FONT&gt;&lt;/b&gt;(s):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m&amp;nbsp;=&amp;nbsp;md5.new()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m.update(s)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;m.hexdigest()&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;doCall&lt;/FONT&gt;&lt;/b&gt;(args):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;request&amp;nbsp;=&amp;nbsp;urllib2.Request(&lt;FONT COLOR="olive"&gt;"http://www.livejournal.com/interface/flat"&lt;/FONT&gt;,&amp;nbsp;urllib.urlencode(args))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;resp&amp;nbsp;=&amp;nbsp;urllib2.urlopen(request)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l&amp;nbsp;=&amp;nbsp;resp.read().split(&lt;FONT COLOR="olive"&gt;"\n"&lt;/FONT&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;dict(zip(l[::&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;],&amp;nbsp;l[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;::&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;]))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;_methodCall&lt;/FONT&gt;&lt;/b&gt;(methodname,&amp;nbsp;username,&amp;nbsp;passwordMD5,&amp;nbsp;params):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;challenge&amp;nbsp;=&amp;nbsp;doCall({&lt;FONT COLOR="olive"&gt;"mode"&lt;/FONT&gt;:&lt;FONT COLOR="olive"&gt;"getchallenge"&lt;/FONT&gt;})[&lt;FONT COLOR="olive"&gt;"challenge"&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data&amp;nbsp;=&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"mode"&lt;/FONT&gt;:methodname,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"user"&lt;/FONT&gt;:username,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"auth_method"&lt;/FONT&gt;:&lt;FONT COLOR="olive"&gt;"challenge"&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"auth_challenge"&lt;/FONT&gt;:challenge,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"auth_response"&lt;/FONT&gt;:md5hex(challenge+passwordMD5),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data.update(params)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;doCall(data)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;getEvents&lt;/FONT&gt;&lt;/b&gt;(username,&amp;nbsp;passwordMD5,&amp;nbsp;**params):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data&amp;nbsp;=&amp;nbsp;_methodCall(&lt;FONT COLOR="olive"&gt;"getevents"&lt;/FONT&gt;,&amp;nbsp;username,&amp;nbsp;passwordMD5,&amp;nbsp;params)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r&amp;nbsp;=&amp;nbsp;re.compile(&lt;FONT COLOR="olive"&gt;"(events|prop)_(\\d+)_(\\w+)"&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;events&amp;nbsp;=&amp;nbsp;[{}&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;range(int(data[&lt;FONT COLOR="olive"&gt;"events_count"&lt;/FONT&gt;]))]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;props&amp;nbsp;=&amp;nbsp;[{}&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;range(int(data[&lt;FONT COLOR="olive"&gt;"prop_count"&lt;/FONT&gt;]))]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;details&amp;nbsp;=&amp;nbsp;{&lt;FONT COLOR="olive"&gt;"events"&lt;/FONT&gt;:events}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;name,&amp;nbsp;value&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;data.items():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;match&amp;nbsp;=&amp;nbsp;r.match(name)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;match:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;number&amp;nbsp;=&amp;nbsp;int(match.group(&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;field&amp;nbsp;=&amp;nbsp;match.group(&lt;FONT COLOR="blue"&gt;3&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;match.group(&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;)==&lt;FONT COLOR="olive"&gt;"events"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;events[number-&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;][field]&amp;nbsp;=&amp;nbsp;value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;props[number-&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;][field]&amp;nbsp;=&amp;nbsp;value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;details[name]&amp;nbsp;=&amp;nbsp;value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;propdict&amp;nbsp;=&amp;nbsp;{}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;prop&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;props:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;itemid&amp;nbsp;=&amp;nbsp;prop[&lt;FONT COLOR="olive"&gt;'itemid'&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name&amp;nbsp;=&amp;nbsp;prop[&lt;FONT COLOR="olive"&gt;'name'&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value&amp;nbsp;=&amp;nbsp;prop[&lt;FONT COLOR="olive"&gt;'value'&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;propdict.setdefault(itemid,&amp;nbsp;{})[name]&amp;nbsp;=&amp;nbsp;value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;propdict.keys()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;[event[&lt;FONT COLOR="olive"&gt;'itemid'&lt;/FONT&gt;]&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;event&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;events]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;event&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;events:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;eventprops&amp;nbsp;=&amp;nbsp;propdict.get(event.get(&lt;FONT COLOR="olive"&gt;'itemid'&lt;/FONT&gt;),{})&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;event.update(eventprops)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;details&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;addEvent&lt;/FONT&gt;&lt;/b&gt;(username,&amp;nbsp;passwordMD5,&amp;nbsp;event):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;params&amp;nbsp;=&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"subject"&lt;/FONT&gt;:subject,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"event"&lt;/FONT&gt;:parse(event)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data&amp;nbsp;=&amp;nbsp;_methodCall(&lt;FONT COLOR="olive"&gt;"postevent"&lt;/FONT&gt;,&amp;nbsp;username,&amp;nbsp;passwordMD5)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;editEvent&lt;/FONT&gt;&lt;/b&gt;(username,&amp;nbsp;passwordMD5,&amp;nbsp;event):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pass&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;__name__&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;'__main__'&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;username&amp;nbsp;=&amp;nbsp;someUsername&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;passwordMD5&amp;nbsp;=&amp;nbsp;somePassword&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;params&amp;nbsp;=&amp;nbsp;{&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"noprops"&lt;/FONT&gt;:&lt;FONT COLOR="olive"&gt;"0"&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"selecttype"&lt;/FONT&gt;:&lt;FONT COLOR="olive"&gt;"lastn"&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"howmany"&lt;/FONT&gt;:&lt;FONT COLOR="olive"&gt;"20"&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"truncate"&lt;/FONT&gt;:&lt;FONT COLOR="olive"&gt;"100"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;info&amp;nbsp;=&amp;nbsp;getEvents(username,&amp;nbsp;passwordMD5,&amp;nbsp;**params)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;info.keys()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;events&amp;nbsp;=&amp;nbsp;info[&lt;FONT COLOR="olive"&gt;"events"&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;title&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;[event.get(&lt;FONT COLOR="olive"&gt;'subject'&lt;/FONT&gt;,&amp;nbsp;event[&lt;FONT COLOR="olive"&gt;'event'&lt;/FONT&gt;])&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;event&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;events]:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;title&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;events[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-117186973361340049?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/117186973361340049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=117186973361340049' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/117186973361340049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/117186973361340049'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2007/02/livejournal-flat-api.html' title='Livejournal Flat Api'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-116214893864497983</id><published>2006-10-29T11:08:00.000-08:00</published><updated>2007-02-02T11:14:24.320-08:00</updated><title type='text'>Working with excel column labels</title><content type='html'>&lt;FONT COLOR="green"&gt;#excelize.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#A&amp;nbsp;module&amp;nbsp;containing&amp;nbsp;some&amp;nbsp;helper&amp;nbsp;methods&amp;nbsp;to&amp;nbsp;work&amp;nbsp;with&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#excel&amp;nbsp;column&amp;nbsp;label&amp;nbsp;formated&amp;nbsp;numbers.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Excel&amp;nbsp;and&amp;nbsp;other&amp;nbsp;spreadsheets&amp;nbsp;use&amp;nbsp;a&amp;nbsp;wierd&amp;nbsp;format&amp;nbsp;for&amp;nbsp;their&amp;nbsp;column&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#numbering.&amp;nbsp;It&amp;nbsp;is&amp;nbsp;of&amp;nbsp;the&amp;nbsp;form&amp;nbsp;A,&amp;nbsp;B,&amp;nbsp;...,&amp;nbsp;Y,&amp;nbsp;Z,&amp;nbsp;AA,&amp;nbsp;AB,&amp;nbsp;...,&amp;nbsp;AZ,&amp;nbsp;BA,&amp;nbsp;...&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#See &lt;a href="http://www.thinkingms.com/pensieve/CommentView,guid,ab73e734-64f4-4436-879e-af2de134bdac.aspx"&gt;Excel&amp;nbsp;Numbering/Counting&lt;/a&gt;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Changes:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#30/10/2006&amp;nbsp;-&amp;nbsp;Got&amp;nbsp;rid&amp;nbsp;of&amp;nbsp;the&amp;nbsp;inner&amp;nbsp;methods&amp;nbsp;in&amp;nbsp;excelize&amp;nbsp;and&amp;nbsp;deExcelize&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;chars&lt;/FONT&gt;&lt;/b&gt;():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Returns&amp;nbsp;an&amp;nbsp;iterator&amp;nbsp;object&amp;nbsp;that&amp;nbsp;yields&amp;nbsp;each&amp;nbsp;charector&amp;nbsp;of&amp;nbsp;the&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;english&amp;nbsp;alphabet&amp;nbsp;in&amp;nbsp;capitals.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;range(&lt;FONT COLOR="blue"&gt;26&lt;/FONT&gt;):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;chr(&lt;FONT COLOR="blue"&gt;65&lt;/FONT&gt;&amp;nbsp;+&amp;nbsp;i)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;excelIter&lt;/FONT&gt;&lt;/b&gt;():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Returns&amp;nbsp;an&amp;nbsp;iterator&amp;nbsp;that&amp;nbsp;yields&amp;nbsp;each&amp;nbsp;excel&amp;nbsp;formated&amp;nbsp;column&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;number&amp;nbsp;in&amp;nbsp;ascending&amp;nbsp;order.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;ch&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;chars():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;ch&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;exCh&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;excelIter():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;ch&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;chars():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;exCh+ch&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;excelize&lt;/FONT&gt;&lt;/b&gt;(n):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Returns&amp;nbsp;excel&amp;nbsp;formated&amp;nbsp;column&amp;nbsp;number&amp;nbsp;for&amp;nbsp;n&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Expects&amp;nbsp;an&amp;nbsp;int&amp;nbsp;value&amp;nbsp;greater&amp;nbsp;than&amp;nbsp;0.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;n-=&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;div&amp;nbsp;=&amp;nbsp;n/&lt;FONT COLOR="blue"&gt;26&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;div==&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;chr(&lt;FONT COLOR="blue"&gt;65&lt;/FONT&gt;+n)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;excelize(div)+chr(&lt;FONT COLOR="blue"&gt;65&lt;/FONT&gt;+n%&lt;FONT COLOR="blue"&gt;26&lt;/FONT&gt;)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;deExcelize&lt;/FONT&gt;&lt;/b&gt;(s):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Returns&amp;nbsp;an&amp;nbsp;integer&amp;nbsp;value&amp;nbsp;for&amp;nbsp;an&amp;nbsp;excel&amp;nbsp;formated&amp;nbsp;column&amp;nbsp;value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Expects&amp;nbsp;a&amp;nbsp;string&amp;nbsp;containing&amp;nbsp;only&amp;nbsp;capital&amp;nbsp;letters&amp;nbsp;from&amp;nbsp;the&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;english&amp;nbsp;alphabet.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rem&amp;nbsp;=&amp;nbsp;s[:-&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;rem&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;""&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;ord(s)&amp;nbsp;-&amp;nbsp;&lt;FONT COLOR="blue"&gt;64&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="blue"&gt;26&lt;/FONT&gt;*deExcelize(s[:-&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;])&amp;nbsp;+&amp;nbsp;ord(s[-&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;])&amp;nbsp;-&amp;nbsp;&lt;FONT COLOR="blue"&gt;64&lt;/FONT&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-116214893864497983?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/116214893864497983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=116214893864497983' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/116214893864497983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/116214893864497983'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2006/10/working-with-excel-column-labels.html' title='Working with excel column labels'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-116214833459249763</id><published>2006-10-29T10:57:00.000-08:00</published><updated>2006-10-29T13:03:59.460-08:00</updated><title type='text'>Replacing spaces with dots for formatting code in coments</title><content type='html'>&lt;FONT COLOR="green"&gt;#dotify.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Insert&amp;nbsp;dots&amp;nbsp;instead&amp;nbsp;of&amp;nbsp;spaces&amp;nbsp;and&amp;nbsp;tabs&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#in&amp;nbsp;the&amp;nbsp;begining&amp;nbsp;of&amp;nbsp;lines.&amp;nbsp;This&amp;nbsp;is&amp;nbsp;to&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#maintain&amp;nbsp;formatting&amp;nbsp;for&amp;nbsp;code&amp;nbsp;while&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#commenting&amp;nbsp;in&amp;nbsp;sites&amp;nbsp;that&amp;nbsp;do&amp;nbsp;not&amp;nbsp;support&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#formatting.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#usage:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#cat&amp;nbsp;test.py&amp;nbsp;|&amp;nbsp;python&amp;nbsp;dotify.py&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;dotted.txt&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;re&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sys&lt;br&gt;r&amp;nbsp;=&amp;nbsp;re.compile(&lt;FONT COLOR="olive"&gt;"^[&amp;nbsp;\t]+"&lt;/FONT&gt;,&amp;nbsp;re.MULTILINE)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;repFun&lt;/FONT&gt;&lt;/b&gt;(match):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"."&lt;/FONT&gt;*len(match.group().replace(&lt;FONT COLOR="olive"&gt;"\t"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"&amp;nbsp;"&lt;/FONT&gt;*&lt;FONT COLOR="blue"&gt;4&lt;/FONT&gt;))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;r.sub(repFun,&amp;nbsp;sys.stdin.read())&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-116214833459249763?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/116214833459249763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=116214833459249763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/116214833459249763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/116214833459249763'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2006/10/replacing-spaces-with-dots-for.html' title='Replacing spaces with dots for formatting code in coments'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-112964404206327328</id><published>2005-10-18T06:59:00.000-07:00</published><updated>2006-10-16T23:11:47.776-07:00</updated><title type='text'>Records and pattern matching</title><content type='html'>&lt;FONT COLOR="green"&gt;##record.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##"record"&amp;nbsp;is&amp;nbsp;an&amp;nbsp;implementation&amp;nbsp;of&amp;nbsp;a&amp;nbsp;simple&amp;nbsp;record&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##type&amp;nbsp;constructor&amp;nbsp;for&amp;nbsp;records&amp;nbsp;with&amp;nbsp;labeled&amp;nbsp;fields.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##The&amp;nbsp;record&amp;nbsp;types&amp;nbsp;will&amp;nbsp;be&amp;nbsp;subclasses&amp;nbsp;of&amp;nbsp;"tuple".&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##"match"&amp;nbsp;is&amp;nbsp;a&amp;nbsp;pattern&amp;nbsp;matcher&amp;nbsp;for&amp;nbsp;matching&amp;nbsp;patterns&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##of&amp;nbsp;complex&amp;nbsp;record&amp;nbsp;structures&amp;nbsp;to&amp;nbsp;a&amp;nbsp;record&amp;nbsp;object&amp;nbsp;and&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##binding&amp;nbsp;elements&amp;nbsp;in&amp;nbsp;the&amp;nbsp;matched&amp;nbsp;structure&amp;nbsp;to&amp;nbsp;parameters&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##in&amp;nbsp;a&amp;nbsp;handler&amp;nbsp;function.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##Example:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##from&amp;nbsp;record&amp;nbsp;import&amp;nbsp;record,&amp;nbsp;match,&amp;nbsp;sym&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##tree&amp;nbsp;=&amp;nbsp;record(sym.tree,&amp;nbsp;sym.left,&amp;nbsp;sym.right)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##def&amp;nbsp;flatten(t):&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;(match(t).&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case(tree(sym.left,&amp;nbsp;sym.right),&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lambda&amp;nbsp;left,&amp;nbsp;right:&amp;nbsp;flatten(left)+flatten(right)).&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case(sym.leaf,&amp;nbsp;lambda&amp;nbsp;leaf:&amp;nbsp;[leaf])&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;())&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##t&amp;nbsp;=&amp;nbsp;tree(tree(1,&amp;nbsp;tree(2,&amp;nbsp;4)),&amp;nbsp;3)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##print&amp;nbsp;flatten(t)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;##[1,&amp;nbsp;2,&amp;nbsp;4,&amp;nbsp;3]&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;symbol&lt;/FONT&gt;&lt;/b&gt;(object):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Symbols&amp;nbsp;for&amp;nbsp;place&amp;nbsp;holders&amp;nbsp;for&amp;nbsp;pattern&amp;nbsp;matching&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;syms&amp;nbsp;=&amp;nbsp;{}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__new__&lt;/FONT&gt;&lt;/b&gt;(kls,&amp;nbsp;name):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;name&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;symbol.syms:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;symbol.syms[name]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o&amp;nbsp;=&amp;nbsp;object.__new__(kls)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;symbol.syms[name]&amp;nbsp;=&amp;nbsp;o&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;o&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;name):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.name&amp;nbsp;=&amp;nbsp;name&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__str__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.name&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__repr__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.name&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;_symbol&lt;/FONT&gt;&lt;/b&gt;(object):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__getattribute__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;name):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;symbol(name)&lt;br&gt;&lt;br&gt;sym&amp;nbsp;=&amp;nbsp;_symbol()&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;record&lt;/FONT&gt;&lt;/b&gt;(name,&amp;nbsp;*labels):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;""&lt;/FONT&gt;&lt;FONT COLOR="olive"&gt;"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Construct&amp;nbsp;a&amp;nbsp;record&amp;nbsp;type.&amp;nbsp;Records&amp;nbsp;are&amp;nbsp;subclasses&amp;nbsp;of&amp;nbsp;tuple:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;new&amp;nbsp;record&amp;nbsp;class&amp;gt;&amp;nbsp;=&amp;nbsp;record(name,&amp;nbsp;label1,&amp;nbsp;...)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Usage:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;user&amp;nbsp;=&amp;nbsp;record(sym.user,&amp;nbsp;sym.name,&amp;nbsp;sym.password)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ram&amp;nbsp;=&amp;nbsp;user(name="&lt;/FONT&gt;ram&lt;FONT COLOR="olive"&gt;",&amp;nbsp;password="&lt;/FONT&gt;*****&lt;FONT COLOR="olive"&gt;")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;shyam&amp;nbsp;=&amp;nbsp;user("&lt;/FONT&gt;shyam&lt;FONT COLOR="olive"&gt;",&amp;nbsp;"&lt;/FONT&gt;*&lt;FONT COLOR="olive"&gt;")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print&amp;nbsp;"&lt;/FONT&gt;ram&lt;FONT COLOR="olive"&gt;'&lt;/FONT&gt;s&amp;nbsp;name&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;",&amp;nbsp;ram.name&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name,&amp;nbsp;password&amp;nbsp;=&amp;nbsp;ram&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"&lt;/FONT&gt;&lt;FONT COLOR="olive"&gt;""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;labels&amp;nbsp;=&amp;nbsp;[str(label)&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;label&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;labels]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name&amp;nbsp;=&amp;nbsp;str(name)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;new&lt;/FONT&gt;&lt;/b&gt;(kls,&amp;nbsp;*labels):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;tuple.__new__(kls,&amp;nbsp;labels)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__str__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"%s(%s)"&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;(name,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;",&amp;nbsp;"&lt;/FONT&gt;.join((&lt;FONT COLOR="olive"&gt;"%s=%s"&lt;/FONT&gt;%(label,&amp;nbsp;val)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;label,&amp;nbsp;val&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;zip(labels,&amp;nbsp;self))))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d&amp;nbsp;=&amp;nbsp;{&lt;FONT COLOR="olive"&gt;"__new__"&lt;/FONT&gt;:new,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"__str__"&lt;/FONT&gt;:__str__,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"__repr__"&lt;/FONT&gt;:__str__}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exec&amp;nbsp;(&lt;FONT COLOR="olive"&gt;"""def&amp;nbsp;__init__(self,&amp;nbsp;%s):pass"""&lt;/FONT&gt;&amp;nbsp;%&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;",&amp;nbsp;"&lt;/FONT&gt;.join(labels))&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;d&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;range(len(labels)):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d[labels[i]]&amp;nbsp;=&amp;nbsp;(lambda&amp;nbsp;i:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;property(lambda&amp;nbsp;self:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self[i]))(i)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;type(name,&amp;nbsp;(tuple,),&amp;nbsp;d)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;_combine&lt;/FONT&gt;&lt;/b&gt;(obj,&amp;nbsp;pattern):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isinstance(pattern,&amp;nbsp;symbol):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;[(str(pattern),&amp;nbsp;obj)]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isinstance(pattern,&amp;nbsp;tuple)&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;and&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;type(obj)==type(pattern):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sum((_combine(o,&amp;nbsp;p)&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;o,&amp;nbsp;p&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;zip(obj,&amp;nbsp;pattern)),&amp;nbsp;[])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;pattern&amp;nbsp;==&amp;nbsp;obj:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;[]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;False&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;MatchFailed&lt;/FONT&gt;&lt;/b&gt;(Exception):pass&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;match&lt;/FONT&gt;&lt;/b&gt;(object):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Match&amp;nbsp;the&amp;nbsp;given&amp;nbsp;object&amp;nbsp;and&amp;nbsp;do&amp;nbsp;some&amp;nbsp;actions&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;obj):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.obj&amp;nbsp;=&amp;nbsp;obj&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.matchers&amp;nbsp;=&amp;nbsp;[]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;onDefault&lt;/FONT&gt;&lt;/b&gt;(obj):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;raise&amp;nbsp;MatchFailed&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self._onDefault&amp;nbsp;=&amp;nbsp;onDefault&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;case&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;pattern,&amp;nbsp;onMatch):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Add&amp;nbsp;a&amp;nbsp;match&amp;nbsp;case.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The&amp;nbsp;match&amp;nbsp;case&amp;nbsp;matches&amp;nbsp;a&amp;nbsp;pattern&amp;nbsp;to&amp;nbsp;an&amp;nbsp;action&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.matchers.append((pattern,&amp;nbsp;onMatch))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;default&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;onDefault):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Set&amp;nbsp;a&amp;nbsp;default&amp;nbsp;handler&amp;nbsp;if&amp;nbsp;all&amp;nbsp;matches&amp;nbsp;fail.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The&amp;nbsp;handler&amp;nbsp;must&amp;nbsp;accept&amp;nbsp;one&amp;nbsp;parameter&amp;nbsp;which&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;will&amp;nbsp;be&amp;nbsp;the&amp;nbsp;match&amp;nbsp;object.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self._onDefault&amp;nbsp;=&amp;nbsp;onDefault&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__call__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Execute&amp;nbsp;the&amp;nbsp;match&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;pattern,&amp;nbsp;onMatch&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.matchers:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c&amp;nbsp;=&amp;nbsp;_combine(self.obj,&amp;nbsp;pattern)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;c!=False:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;onMatch(**dict(c))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self._onDefault(self.obj)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-112964404206327328?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/112964404206327328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=112964404206327328' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/112964404206327328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/112964404206327328'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2005/10/records-and-pattern-matching.html' title='Records and pattern matching'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-112930951143584755</id><published>2005-10-14T10:03:00.000-07:00</published><updated>2005-10-14T10:05:11.446-07:00</updated><title type='text'>Two way iterator</title><content type='html'>&lt;FONT COLOR="green"&gt;#twowayiterator.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Helpers&amp;nbsp;for&amp;nbsp;implementing&amp;nbsp;iterators&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#that&amp;nbsp;can&amp;nbsp;be&amp;nbsp;talked&amp;nbsp;to&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#See:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#http://blogs.applibase.net/sidharth/?p=30&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;izip&lt;/FONT&gt;&lt;/b&gt;(*args):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&amp;nbsp;special&amp;nbsp;version&amp;nbsp;of&amp;nbsp;izip&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;that&amp;nbsp;continues&amp;nbsp;processing&amp;nbsp;the&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;remaining&amp;nbsp;iterators&amp;nbsp;one&amp;nbsp;more&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;time&amp;nbsp;even&amp;nbsp;after&amp;nbsp;the&amp;nbsp;one&amp;nbsp;of&amp;nbsp;them&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;has&amp;nbsp;thrown&amp;nbsp;StopIteration.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iters&amp;nbsp;=&amp;nbsp;[arg&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;arg&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;args]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;canloop&amp;nbsp;=&amp;nbsp;True&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;while&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;canloop:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l&amp;nbsp;=&amp;nbsp;[]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;it&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;iters:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;canloop:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;try&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l.append(it.next())&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;except&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;StopIteration:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;canloop&amp;nbsp;=&amp;nbsp;False&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;try&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;it.next()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;except&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;StopIteration:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pass&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;canloop:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;l&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;_Ref&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;put&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;val):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.val&amp;nbsp;=&amp;nbsp;val&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;get&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;val&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;_Ret&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;set&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;val):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.val&amp;nbsp;=&amp;nbsp;val&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;raise&amp;nbsp;StopIteration&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;get&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.val&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;twowayiterator&lt;/FONT&gt;&lt;/b&gt;(generator):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&amp;nbsp;decorator&amp;nbsp;for&amp;nbsp;generators&amp;nbsp;for&amp;nbsp;iterators&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;that&amp;nbsp;can&amp;nbsp;get&amp;nbsp;messages&amp;nbsp;from&amp;nbsp;the&amp;nbsp;caller.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Building&amp;nbsp;a&amp;nbsp;generator:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@twowayiterator&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def&amp;nbsp;&amp;lt;generator_name&amp;gt;((ret,&amp;nbsp;get),&amp;nbsp;&amp;lt;params&amp;gt;):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yield&amp;nbsp;&amp;lt;value&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;var&amp;gt;=get()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ret(&amp;lt;value&amp;gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ret&amp;nbsp;and&amp;nbsp;get&amp;nbsp;are&amp;nbsp;required&amp;nbsp;parameters&amp;nbsp;for&amp;nbsp;the&amp;nbsp;decorator&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;get&amp;nbsp;is&amp;nbsp;used&amp;nbsp;to&amp;nbsp;return&amp;nbsp;the&amp;nbsp;value&amp;nbsp;injectd&amp;nbsp;into&amp;nbsp;the&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iterator&amp;nbsp;by&amp;nbsp;its&amp;nbsp;caller.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yield&amp;nbsp;&amp;lt;value&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;var&amp;gt;=get()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;could&amp;nbsp;be&amp;nbsp;considered&amp;nbsp;to&amp;nbsp;represent&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;var&amp;gt;=yield&amp;lt;value&amp;gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ret&amp;nbsp;is&amp;nbsp;used&amp;nbsp;to&amp;nbsp;signal&amp;nbsp;that&amp;nbsp;the&amp;nbsp;iterator&amp;nbsp;is&amp;nbsp;done&amp;nbsp;and&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;a&amp;nbsp;value&amp;nbsp;to&amp;nbsp;its&amp;nbsp;caller.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ret(&amp;lt;value&amp;gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;could&amp;nbsp;be&amp;nbsp;represented&amp;nbsp;as&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&amp;lt;value&amp;gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Using&amp;nbsp;a&amp;nbsp;two&amp;nbsp;way&amp;nbsp;iterator&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ret,&amp;nbsp;put),&amp;nbsp;iter&amp;nbsp;=&amp;nbsp;&amp;lt;generator_name&amp;gt;(&amp;lt;params&amp;gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put(&amp;lt;value&amp;gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;var&amp;gt;=iter.next()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;except&amp;nbsp;StopIteration:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;var&amp;gt;=ret()&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put&amp;nbsp;is&amp;nbsp;used&amp;nbsp;to&amp;nbsp;inject&amp;nbsp;a&amp;nbsp;value&amp;nbsp;into&amp;nbsp;the&amp;nbsp;iterator&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;it&amp;nbsp;is&amp;nbsp;the&amp;nbsp;other&amp;nbsp;side&amp;nbsp;of&amp;nbsp;the&amp;nbsp;get&amp;nbsp;function&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put(&amp;lt;value&amp;gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;var&amp;gt;=iter.next()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;can&amp;nbsp;be&amp;nbsp;represented&amp;nbsp;as&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;var&amp;gt;=iter.next(&amp;lt;value&amp;gt;)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ret&amp;nbsp;in&amp;nbsp;this&amp;nbsp;case&amp;nbsp;case&amp;nbsp;is&amp;nbsp;different&amp;nbsp;from&amp;nbsp;ret&amp;nbsp;in&amp;nbsp;the&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iterator&amp;nbsp;it&amp;nbsp;is&amp;nbsp;used&amp;nbsp;to&amp;nbsp;recieve&amp;nbsp;a&amp;nbsp;value&amp;nbsp;returned&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;using&amp;nbsp;ret.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The&amp;nbsp;two&amp;nbsp;way&amp;nbsp;iterator&amp;nbsp;could&amp;nbsp;be&amp;nbsp;used&amp;nbsp;in&amp;nbsp;a&amp;nbsp;for&amp;nbsp;loop&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ret,&amp;nbsp;put),&amp;nbsp;iter&amp;nbsp;=&amp;nbsp;&amp;lt;generator_name&amp;gt;(&amp;lt;params&amp;gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;val&amp;nbsp;in&amp;nbsp;iter:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put(&amp;lt;value&amp;gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;var&amp;gt;=ret()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;_twowayiterator&lt;/FONT&gt;&lt;/b&gt;(*args,&amp;nbsp;**aargs):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_in&amp;nbsp;=&amp;nbsp;_Ref()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ret&amp;nbsp;=&amp;nbsp;_Ret()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;((ret.get,&amp;nbsp;_in.put),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;generator((ret.set,&amp;nbsp;_in.get),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*args,&amp;nbsp;**aargs))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;_twowayiterator&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-112930951143584755?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/112930951143584755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=112930951143584755' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/112930951143584755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/112930951143584755'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2005/10/two-way-iterator.html' title='Two way iterator'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-112914698998704136</id><published>2005-10-12T12:50:00.000-07:00</published><updated>2005-10-12T12:58:50.503-07:00</updated><title type='text'>Tree Function examples</title><content type='html'>&lt;FONT COLOR="green"&gt;#trees.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#See&amp;nbsp;&lt;a href="http://www.thinkingms.com/pensieve/CommentView,guid,21892608-a48c-414b-930f-d0ddecbc5b07.aspx"&gt;Roshan's&amp;nbsp;blog&lt;/a&gt;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;itertools&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;izip&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;Node&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;left,&amp;nbsp;right):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.left&amp;nbsp;=&amp;nbsp;left&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.right&amp;nbsp;=&amp;nbsp;right&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__str__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"Node(%s,&amp;nbsp;%s)"&lt;/FONT&gt;%(self.left,&amp;nbsp;self.right)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;flatten&lt;/FONT&gt;&lt;/b&gt;(node):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Flatten&amp;nbsp;the&amp;nbsp;tree&amp;nbsp;depth&amp;nbsp;first&amp;nbsp;from&amp;nbsp;the&amp;nbsp;left&amp;nbsp;to&amp;nbsp;right.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isinstance(node,&amp;nbsp;Node):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;flatten(node.left):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;flatten(node.right):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;node&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;samefringe&lt;/FONT&gt;&lt;/b&gt;(tree1,&amp;nbsp;tree2):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Check&amp;nbsp;whether&amp;nbsp;two&amp;nbsp;trees&amp;nbsp;have&amp;nbsp;the&amp;nbsp;same&amp;nbsp;leaf&amp;nbsp;nodes&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;with&amp;nbsp;the&amp;nbsp;same&amp;nbsp;value.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;leaf1,&amp;nbsp;leaf2&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;izip(flatten(tree1),&amp;nbsp;flatten(tree2)):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;leaf1!=leaf2:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;False&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;True&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;repmin&lt;/FONT&gt;&lt;/b&gt;(tree):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return&amp;nbsp;a&amp;nbsp;new&amp;nbsp;tree&amp;nbsp;in&amp;nbsp;with&amp;nbsp;the&amp;nbsp;same&amp;nbsp;node&amp;nbsp;structure&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;but&amp;nbsp;all&amp;nbsp;leaf&amp;nbsp;nodes&amp;nbsp;have&amp;nbsp;the&amp;nbsp;same&amp;nbsp;value&amp;nbsp;which&amp;nbsp;is&amp;nbsp;the&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;minimum&amp;nbsp;leaf&amp;nbsp;value.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;minval,&amp;nbsp;f&amp;nbsp;=&amp;nbsp;_repmin(tree)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;f(minval)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;_repmin&lt;/FONT&gt;&lt;/b&gt;(tree):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isinstance(tree,&amp;nbsp;Node):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(minleft,&amp;nbsp;left)&amp;nbsp;=&amp;nbsp;_repmin(tree.left)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(minright,&amp;nbsp;right)&amp;nbsp;=&amp;nbsp;_repmin(tree.right)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(min(minleft,&amp;nbsp;minright),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lambda&amp;nbsp;minval:&amp;nbsp;Node(left(minval),&amp;nbsp;right(minval)))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(tree,&amp;nbsp;lambda&amp;nbsp;val:&amp;nbsp;val)&lt;br&gt;&lt;br&gt;tree1&amp;nbsp;=&amp;nbsp;Node(&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;,&amp;nbsp;Node(&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;,&amp;nbsp;Node(&lt;FONT COLOR="blue"&gt;3&lt;/FONT&gt;,&amp;nbsp;Node(&lt;FONT COLOR="blue"&gt;4&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="blue"&gt;5&lt;/FONT&gt;))))&lt;br&gt;tree2&amp;nbsp;=&amp;nbsp;Node(Node(&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;,&amp;nbsp;Node(&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="blue"&gt;3&lt;/FONT&gt;)),&amp;nbsp;Node(&lt;FONT COLOR="blue"&gt;4&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="blue"&gt;5&lt;/FONT&gt;))&lt;br&gt;tree3&amp;nbsp;=&amp;nbsp;Node(Node(&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;,&amp;nbsp;Node(&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="blue"&gt;4&lt;/FONT&gt;)),&amp;nbsp;Node(&lt;FONT COLOR="blue"&gt;4&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="blue"&gt;5&lt;/FONT&gt;))&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;samefringe(tree1,&amp;nbsp;tree2)&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;samefringe(tree1,&amp;nbsp;tree3)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;repmin(tree1)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-112914698998704136?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/112914698998704136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=112914698998704136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/112914698998704136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/112914698998704136'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2005/10/tree-function-examples.html' title='Tree Function examples'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-111381806856616133</id><published>2005-04-18T02:53:00.000-07:00</published><updated>2005-04-18T02:54:28.636-07:00</updated><title type='text'>An introduction to python classes</title><content type='html'>&lt;FONT COLOR="green"&gt;#class_examples.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Theses&amp;nbsp;examples&amp;nbsp;were&amp;nbsp;used&amp;nbsp;in&amp;nbsp;a&amp;nbsp;talk&amp;nbsp;I&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#gave&amp;nbsp;at&amp;nbsp;the&amp;nbsp;BangPipers&amp;nbsp;meeting&amp;nbsp;on&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#16/04/2005&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Starting&amp;nbsp;with&amp;nbsp;an&amp;nbsp;empty&amp;nbsp;class&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;Greeter&lt;/FONT&gt;&lt;/b&gt;(object):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pass&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Lets&amp;nbsp;add&amp;nbsp;a&amp;nbsp;simple&amp;nbsp;method&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;meth&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"this&amp;nbsp;is&amp;nbsp;a&amp;nbsp;method&amp;nbsp;of&amp;nbsp;class&amp;nbsp;"&lt;/FONT&gt;,&amp;nbsp;self.__class__&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;simpleobject&amp;nbsp;=&amp;nbsp;Greeter()&lt;br&gt;&lt;br&gt;Greeter.meth&amp;nbsp;=&amp;nbsp;meth&lt;br&gt;&lt;br&gt;simpleobject.meth()&lt;br&gt;&lt;br&gt;Greeter.meth(simpleobject)&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#this&amp;nbsp;is&amp;nbsp;a&amp;nbsp;method&amp;nbsp;of&amp;nbsp;class&amp;nbsp;&amp;nbsp;&amp;lt;class&amp;nbsp;'__main__.Greeter'&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#An&amp;nbsp;init&amp;nbsp;method&amp;nbsp;for&amp;nbsp;our&amp;nbsp;greeter&amp;nbsp;class&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;init&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;text):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.text&amp;nbsp;=&amp;nbsp;text&lt;br&gt;&lt;br&gt;Greeter.__init__&amp;nbsp;=&amp;nbsp;init&lt;br&gt;&lt;br&gt;greeting&amp;nbsp;=&amp;nbsp;Greeter(&lt;FONT COLOR="olive"&gt;"Greetings&amp;nbsp;from&amp;nbsp;the&amp;nbsp;great&amp;nbsp;beyond"&lt;/FONT&gt;)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;greeting.text&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Greetings&amp;nbsp;from&amp;nbsp;the&amp;nbsp;great&amp;nbsp;beyond&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Adding&amp;nbsp;a&amp;nbsp;greet&amp;nbsp;method&amp;nbsp;to&amp;nbsp;print&amp;nbsp;the&amp;nbsp;greeting&amp;nbsp;text&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;greet&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.text&lt;br&gt;&lt;br&gt;Greeter.greet&amp;nbsp;=&amp;nbsp;greet&lt;br&gt;&lt;br&gt;greeting.greet()&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Greetings&amp;nbsp;from&amp;nbsp;the&amp;nbsp;great&amp;nbsp;beyond&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Now&amp;nbsp;lets&amp;nbsp;inherit&amp;nbsp;from&amp;nbsp;Greeter&amp;nbsp;to&amp;nbsp;create&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#a&amp;nbsp;Hello&amp;nbsp;greeting&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;Hello&lt;/FONT&gt;&lt;/b&gt;(Greeter):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.text&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"Hello"&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;hello&amp;nbsp;=&amp;nbsp;Hello()&lt;br&gt;&lt;br&gt;hello.greet()&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Hello&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Overloading&amp;nbsp;__new__&amp;nbsp;to&amp;nbsp;control&amp;nbsp;instance&amp;nbsp;creation&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#__new__&amp;nbsp;gets&amp;nbsp;called&amp;nbsp;before&amp;nbsp;__init__&amp;nbsp;during&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#instance&amp;nbsp;creation.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#FussyGreeter&amp;nbsp;will&amp;nbsp;return&amp;nbsp;an&amp;nbsp;insult&amp;nbsp;object&amp;nbsp;if&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#os.platform&amp;nbsp;is&amp;nbsp;not&amp;nbsp;"win32"&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;FussyGreeter&lt;/FONT&gt;&lt;/b&gt;(Greeter):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;acceptedPlatform&amp;nbsp;&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"win32"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__new__&lt;/FONT&gt;&lt;/b&gt;(cls,&amp;nbsp;greeting):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sys&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;cls.acceptedPlatform&amp;nbsp;!=&amp;nbsp;sys.platform:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;Insult&lt;/FONT&gt;&lt;/b&gt;(object):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;greet&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"You&amp;nbsp;call&amp;nbsp;that&amp;nbsp;an&amp;nbsp;OS?!?&amp;nbsp;Get&amp;nbsp;a&amp;nbsp;real&amp;nbsp;one&amp;nbsp;like"&lt;/FONT&gt;,&amp;nbsp;cls.acceptedPlatform&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;Insult()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;Greeter.__new__(cls)&lt;br&gt;&lt;br&gt;greet&amp;nbsp;=&amp;nbsp;FussyGreeter(&lt;FONT COLOR="olive"&gt;"Howdy"&lt;/FONT&gt;)&lt;br&gt;&lt;br&gt;greet.greet()&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Howdy&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;FussyGreeter.acceptedPlatform&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"linux"&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;greet&amp;nbsp;=&amp;nbsp;FussyGreeter(&lt;FONT COLOR="olive"&gt;"Howdy"&lt;/FONT&gt;)&lt;br&gt;&lt;br&gt;greet.greet()&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#You&amp;nbsp;call&amp;nbsp;that&amp;nbsp;an&amp;nbsp;OS?!?&amp;nbsp;Get&amp;nbsp;a&amp;nbsp;real&amp;nbsp;one&amp;nbsp;like&amp;nbsp;linux&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;type(greet)&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;lt;class&amp;nbsp;'__main__.Insult'&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Checking&amp;nbsp;call&amp;nbsp;order&amp;nbsp;for&amp;nbsp;__new__&amp;nbsp;and&amp;nbsp;__init__&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Note:If&amp;nbsp;&amp;nbsp;__new__&amp;nbsp;returns&amp;nbsp;anything&amp;nbsp;other&amp;nbsp;than&amp;nbsp;an&amp;nbsp;obect&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#of&amp;nbsp;type&amp;nbsp;SimpleClass,&amp;nbsp;__init__&amp;nbsp;will&amp;nbsp;not&amp;nbsp;be&amp;nbsp;called.&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;SimpleClass&lt;/FONT&gt;&lt;/b&gt;(object):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"calling&amp;nbsp;__init__(%s)"&lt;/FONT&gt;%self&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__new__&lt;/FONT&gt;&lt;/b&gt;(cls):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"calling&amp;nbsp;__new__(%s)"&lt;/FONT&gt;%cls&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;object.__new__(SimpleClass)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;simpleobject&amp;nbsp;=&amp;nbsp;SimpleClass()&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#calling&amp;nbsp;__new__(&amp;lt;class&amp;nbsp;'__main__.SimpleClass'&amp;gt;)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#calling&amp;nbsp;__init__(&amp;lt;__main__.SimpleClass&amp;nbsp;object&amp;nbsp;at&amp;nbsp;0x011AB650&amp;gt;)&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Here&amp;nbsp;is&amp;nbsp;a&amp;nbsp;simple&amp;nbsp;example&amp;nbsp;of&amp;nbsp;operator&amp;nbsp;overloading&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#We&amp;nbsp;overload&amp;nbsp;the&amp;nbsp;'*'&amp;nbsp;operator.&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;mul&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;count):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text&amp;nbsp;=&amp;nbsp;self.text&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;text[-&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"s"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;endString&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;endString&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"s"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;Greeter(&lt;FONT COLOR="olive"&gt;"%i&amp;nbsp;%s"&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;(count,&amp;nbsp;text)&amp;nbsp;+&amp;nbsp;endString)&lt;br&gt;&lt;br&gt;Greeter.__mul__&amp;nbsp;=&amp;nbsp;mul&lt;br&gt;&lt;br&gt;doubleHello&amp;nbsp;=&amp;nbsp;hello&amp;nbsp;*&amp;nbsp;&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;doubleHello.greet()&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#2&amp;nbsp;Hellos&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;doubleHello&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;lt;__main__.Greeter&amp;nbsp;object&amp;nbsp;at&amp;nbsp;0x011AB330&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#We&amp;nbsp;can&amp;nbsp;write&amp;nbsp;an&amp;nbsp;__str__&amp;nbsp;method&amp;nbsp;to&amp;nbsp;control&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#what&amp;nbsp;gets&amp;nbsp;printed&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;str_&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.text&lt;br&gt;&lt;br&gt;Greeter.__str__&amp;nbsp;=&amp;nbsp;str_&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;doubleHello&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#2&amp;nbsp;Hellos&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#multiple&amp;nbsp;inheritence&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#mro&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#super&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;A&lt;/FONT&gt;&lt;/b&gt;(object):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;f&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"A.f(inst)"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;B&lt;/FONT&gt;&lt;/b&gt;(A):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;f&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"B.f(inst)"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;super(B,&amp;nbsp;self).f()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;C&lt;/FONT&gt;&lt;/b&gt;(A):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;f&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"C.f(inst)"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;super(C,&amp;nbsp;self).f()&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;D&lt;/FONT&gt;&lt;/b&gt;(B,&amp;nbsp;C):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;f&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"D.f(inst)"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;super(D,&amp;nbsp;self).f()&lt;br&gt;&lt;br&gt;d&amp;nbsp;=&amp;nbsp;D()&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;d.__class__.mro();&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#[&amp;lt;class&amp;nbsp;'__main__.D'&amp;gt;,&amp;nbsp;&amp;lt;class&amp;nbsp;'__main__.B'&amp;gt;,&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;lt;class&amp;nbsp;'__main__.C'&amp;gt;,&amp;nbsp;&amp;lt;class&amp;nbsp;'__main__.A'&amp;gt;,&amp;nbsp;&amp;lt;type&amp;nbsp;'object'&amp;gt;]&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;d.f()&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#D.f(inst)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#B.f(inst)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#C.f(inst)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#A.f(inst)&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#We&amp;nbsp;can&amp;nbsp;control&amp;nbsp;attribute&amp;nbsp;access&amp;nbsp;for&amp;nbsp;an&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#object&amp;nbsp;by&amp;nbsp;overriding&amp;nbsp;the&amp;nbsp;methods&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#__getattr__&amp;nbsp;and&amp;nbsp;__setattr__&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;attrdict&lt;/FONT&gt;&lt;/b&gt;(dict):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__getattr__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;name):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self[name]&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__setattr__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;name,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self[name]&amp;nbsp;=&amp;nbsp;value&lt;br&gt;&lt;br&gt;d&amp;nbsp;=&amp;nbsp;attrdict()&lt;br&gt;&lt;br&gt;d.a&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;4&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Same&amp;nbsp;as&amp;nbsp;d.__setattr__("a",&amp;nbsp;4)&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;d.a&lt;br&gt;&lt;FONT COLOR="green"&gt;#Same&amp;nbsp;as&amp;nbsp;print&amp;nbsp;d.__getattr__("a")&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#__getattr__&amp;nbsp;only&amp;nbsp;gets&amp;nbsp;called&amp;nbsp;if&amp;nbsp;python&amp;nbsp;is&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#unable&amp;nbsp;to&amp;nbsp;find&amp;nbsp;the&amp;nbsp;attribute&amp;nbsp;name&amp;nbsp;withen&amp;nbsp;the&amp;nbsp;object&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#and&amp;nbsp;its&amp;nbsp;class&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#This&amp;nbsp;means&amp;nbsp;that&amp;nbsp;if&amp;nbsp;I&amp;nbsp;assign&amp;nbsp;an&amp;nbsp;attribute&amp;nbsp;with&amp;nbsp;the&amp;nbsp;same&amp;nbsp;name&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#as&amp;nbsp;one&amp;nbsp;in&amp;nbsp;dict&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;d.fromkeys&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"hello"&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#I&amp;nbsp;wont&amp;nbsp;be&amp;nbsp;able&amp;nbsp;to&amp;nbsp;access&amp;nbsp;the&amp;nbsp;value&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;d.fromkeys&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;lt;built-in&amp;nbsp;method&amp;nbsp;fromkeys&amp;nbsp;of&amp;nbsp;type&amp;nbsp;object&amp;nbsp;at&amp;nbsp;0x01217828&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#We&amp;nbsp;need&amp;nbsp;to&amp;nbsp;overload&amp;nbsp;__getattribute__&amp;nbsp;to&amp;nbsp;get&amp;nbsp;complete&amp;nbsp;controll&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#over&amp;nbsp;attribute&amp;nbsp;lookup&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;getattribute&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;name):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;dict.__getitem__(self,&amp;nbsp;name)&lt;br&gt;&lt;br&gt;attrdict.__getattribute__&amp;nbsp;=&amp;nbsp;getattribute&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;d.fromkeys&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#hello&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#__slots__&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Class&amp;nbsp;magic&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Classes&amp;nbsp;in&amp;nbsp;python&amp;nbsp;are&amp;nbsp;code&amp;nbsp;objects&amp;nbsp;that&amp;nbsp;get&amp;nbsp;executed&amp;nbsp;when&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#they&amp;nbsp;are&amp;nbsp;loaded.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Lest&amp;nbsp;look&amp;nbsp;at&amp;nbsp;some&amp;nbsp;examples&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;HelloWorld&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"hello&amp;nbsp;world"&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#hello&amp;nbsp;world&lt;br&gt;&lt;/FONT&gt;&amp;nbsp;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Something&amp;nbsp;illegal&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;ManyVars&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;range(&lt;FONT COLOR="blue"&gt;26&lt;/FONT&gt;):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;locals()[chr(i+&lt;FONT COLOR="blue"&gt;97&lt;/FONT&gt;)]&amp;nbsp;=&amp;nbsp;i&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;dir(ManyVars)&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#['__doc__',&amp;nbsp;'__module__',&amp;nbsp;'a',&amp;nbsp;'b',&amp;nbsp;'c',&amp;nbsp;'d',&amp;nbsp;'e',&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#'f',&amp;nbsp;'g',&amp;nbsp;'h',&amp;nbsp;'i',&amp;nbsp;'j',&amp;nbsp;'k',&amp;nbsp;'l',&amp;nbsp;'m',&amp;nbsp;'n',&amp;nbsp;'o',&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#'p',&amp;nbsp;'q',&amp;nbsp;'r',&amp;nbsp;'s',&amp;nbsp;'t',&amp;nbsp;'u',&amp;nbsp;'v',&amp;nbsp;'w',&amp;nbsp;'x',&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#'y',&amp;nbsp;'z']&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Legal&amp;nbsp;using&amp;nbsp;exec&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;ManyVars&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;range(&lt;FONT COLOR="blue"&gt;26&lt;/FONT&gt;):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exec&amp;nbsp;&lt;FONT COLOR="olive"&gt;"%s&amp;nbsp;=&amp;nbsp;%i"&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;(chr(i+&lt;FONT COLOR="blue"&gt;97&lt;/FONT&gt;),&amp;nbsp;i)&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;dir(ManyVars)&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#['__doc__',&amp;nbsp;'__module__',&amp;nbsp;'a',&amp;nbsp;'b',&amp;nbsp;'c',&amp;nbsp;'d',&amp;nbsp;'e',&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#'f',&amp;nbsp;'g',&amp;nbsp;'h',&amp;nbsp;'i',&amp;nbsp;'j',&amp;nbsp;'k',&amp;nbsp;'l',&amp;nbsp;'m',&amp;nbsp;'n',&amp;nbsp;'o',&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#'p',&amp;nbsp;'q',&amp;nbsp;'r',&amp;nbsp;'s',&amp;nbsp;'t',&amp;nbsp;'u',&amp;nbsp;'v',&amp;nbsp;'w',&amp;nbsp;'x',&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#'y',&amp;nbsp;'z']&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Metaclasses&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Meta&amp;nbsp;classes&amp;nbsp;are&amp;nbsp;class&amp;nbsp;constructors&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#A&amp;nbsp;meta&amp;nbsp;class&amp;nbsp;must&amp;nbsp;accept&amp;nbsp;a&amp;nbsp;classname,&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#a&amp;nbsp;tuple&amp;nbsp;of&amp;nbsp;base&amp;nbsp;classes&amp;nbsp;and&amp;nbsp;a&amp;nbsp;dictionary&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#of&amp;nbsp;name&amp;nbsp;value&amp;nbsp;pairs&amp;nbsp;representing&amp;nbsp;the&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#class's&amp;nbsp;attributes&amp;nbsp;and&amp;nbsp;their&amp;nbsp;values.&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Lets&amp;nbsp;create&amp;nbsp;a&amp;nbsp;simple&amp;nbsp;class&amp;nbsp;and&amp;nbsp;extract&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#all&amp;nbsp;its&amp;nbsp;local&amp;nbsp;name&amp;nbsp;bindings&amp;nbsp;into&amp;nbsp;a&amp;nbsp;global&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#variable&amp;nbsp;called&amp;nbsp;l&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;C&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.text&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"Namaste"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;global&amp;nbsp;l&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l&amp;nbsp;=&amp;nbsp;locals()&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;l&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#{'__module__':&amp;nbsp;'__main__',&amp;nbsp;'__doc__':&amp;nbsp;None,&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#'__init__':&amp;nbsp;&amp;lt;function&amp;nbsp;__init__&amp;nbsp;at&amp;nbsp;0x011E03B0&amp;gt;}&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#We&amp;nbsp;can&amp;nbsp;use&amp;nbsp;type&amp;nbsp;as&amp;nbsp;a&amp;nbsp;class&amp;nbsp;constructor&amp;nbsp;to&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#construct&amp;nbsp;a&amp;nbsp;class&amp;nbsp;called&amp;nbsp;Namaste&amp;nbsp;which&amp;nbsp;is&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#a&amp;nbsp;subclass&amp;nbsp;of&amp;nbsp;Greeter&amp;nbsp;and&amp;nbsp;contains&amp;nbsp;attributes&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#defined&amp;nbsp;in&amp;nbsp;l&lt;br&gt;&lt;/FONT&gt;Namaste&amp;nbsp;=&amp;nbsp;type(&lt;FONT COLOR="olive"&gt;"Namaste"&lt;/FONT&gt;,&amp;nbsp;(Greeter,),&amp;nbsp;l)&lt;br&gt;&lt;br&gt;namaste&amp;nbsp;=&amp;nbsp;Namaste()&lt;br&gt;&lt;br&gt;namaste.greet()&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Namaste&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Lets&amp;nbsp;create&amp;nbsp;a&amp;nbsp;simple&amp;nbsp;empty&amp;nbsp;class&lt;br&gt;&lt;/FONT&gt;SimpleClass&amp;nbsp;=&amp;nbsp;type(&lt;FONT COLOR="olive"&gt;"SimpleClass"&lt;/FONT&gt;,&amp;nbsp;(),&amp;nbsp;{})&lt;br&gt;&lt;br&gt;simpleInstance&amp;nbsp;=&amp;nbsp;SimpleClass()&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;simpleInstance&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;lt;__main__.SimpleClass&amp;nbsp;object&amp;nbsp;at&amp;nbsp;0x011DE2F0&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Metaclasses&amp;nbsp;are&amp;nbsp;the&amp;nbsp;same&amp;nbsp;as&amp;nbsp;other&amp;nbsp;classes&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#What&amp;nbsp;makes&amp;nbsp;them&amp;nbsp;special&amp;nbsp;is&amp;nbsp;that&amp;nbsp;they&amp;nbsp;are&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#all&amp;nbsp;subclasses&amp;nbsp;of&amp;nbsp;type&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Lets&amp;nbsp;look&amp;nbsp;at&amp;nbsp;the&amp;nbsp;call&amp;nbsp;order&amp;nbsp;of&amp;nbsp;the&amp;nbsp;__new__&amp;nbsp;and&amp;nbsp;__init__&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#methods&amp;nbsp;of&amp;nbsp;a&amp;nbsp;simple&amp;nbsp;metaclass&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;PrintingMetaclass&lt;/FONT&gt;&lt;/b&gt;(type):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;name,&amp;nbsp;bases,&amp;nbsp;dct):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"calling&amp;nbsp;__init__"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;type.__init__(self,&amp;nbsp;name,&amp;nbsp;bases,&amp;nbsp;dct)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__new__&lt;/FONT&gt;&lt;/b&gt;(cls,&amp;nbsp;name,&amp;nbsp;bases,&amp;nbsp;dct):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"calling&amp;nbsp;__new__"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;type.__new__(cls,&amp;nbsp;name,&amp;nbsp;bases,&amp;nbsp;dct)&lt;br&gt;&lt;br&gt;SimpleClass&amp;nbsp;=&amp;nbsp;PrintingMetaclass(&lt;FONT COLOR="olive"&gt;"SimpleClass"&lt;/FONT&gt;,&amp;nbsp;(),&amp;nbsp;{})&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#calling&amp;nbsp;__new__&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#calling&amp;nbsp;__init__&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#We&amp;nbsp;can&amp;nbsp;also&amp;nbsp;set&amp;nbsp;the&amp;nbsp;metaclass&amp;nbsp;for&amp;nbsp;a&amp;nbsp;particular&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#clas&amp;nbsp;int&amp;nbsp;using&amp;nbsp;the&amp;nbsp;class&amp;nbsp;attribute&amp;nbsp;__metaclass__&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;SimpleClass&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;__metaclass__&amp;nbsp;=&amp;nbsp;PrintingMetaclass&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#calling&amp;nbsp;__new__&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#calling&amp;nbsp;__init__&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Here's&amp;nbsp;an&amp;nbsp;example&amp;nbsp;of&amp;nbsp;metaclasses&amp;nbsp;in&amp;nbsp;action&lt;br&gt;&lt;/FONT&gt;_securityNumbers&amp;nbsp;=&amp;nbsp;[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;,&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;,&lt;FONT COLOR="blue"&gt;3&lt;/FONT&gt;]&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;SecurityMetaclass&lt;/FONT&gt;&lt;/b&gt;(type):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__new__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;name,&amp;nbsp;bases,&amp;nbsp;dct):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;types&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(name,&amp;nbsp;value)&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;dct.items():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isinstance(value,&amp;nbsp;types.FunctionType):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;func&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;securityNumber,&amp;nbsp;*args,&amp;nbsp;**kwargs):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;securityNumber&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;_securityNumbers:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;value(self,&amp;nbsp;*args,&amp;nbsp;**kwargs)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;raise&amp;nbsp;Exception,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"You&amp;nbsp;are&amp;nbsp;not&amp;nbsp;authorized&amp;nbsp;to&amp;nbsp;call&amp;nbsp;this&amp;nbsp;method"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dct[name]&amp;nbsp;=&amp;nbsp;func&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;dct&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;type.__new__(self,&amp;nbsp;name,&amp;nbsp;bases,&amp;nbsp;dct)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;SecureClass&lt;/FONT&gt;&lt;/b&gt;(object):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;__metaclass__&amp;nbsp;=&amp;nbsp;SecurityMetaclass&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;display&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;value&lt;br&gt;&lt;br&gt;secureObject&amp;nbsp;=&amp;nbsp;SecureClass()&lt;br&gt;&lt;br&gt;secureObject.display(&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"This&amp;nbsp;is&amp;nbsp;a&amp;nbsp;secret&amp;nbsp;message."&lt;/FONT&gt;)&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#This&amp;nbsp;is&amp;nbsp;a&amp;nbsp;secret&amp;nbsp;message.&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#secureObject.display(7,&amp;nbsp;"This&amp;nbsp;is&amp;nbsp;a&amp;nbsp;secret&amp;nbsp;message.")&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Will&amp;nbsp;throw&amp;nbsp;an&amp;nbsp;exception&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Descriptors&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#__get__(self,&amp;nbsp;obj,&amp;nbsp;type)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#__set__(self,&amp;nbsp;obj,&amp;nbsp;value)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#__delete__(self,&amp;nbsp;obj)&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Lets&amp;nbsp;create&amp;nbsp;a&amp;nbsp;class&amp;nbsp;to&amp;nbsp;work&amp;nbsp;with&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;DiscrExp&lt;/FONT&gt;&lt;/b&gt;(object):pass&lt;br&gt;inst&amp;nbsp;=&amp;nbsp;DiscrExp()&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Here&amp;nbsp;is&amp;nbsp;a&amp;nbsp;simple&amp;nbsp;example&amp;nbsp;of&amp;nbsp;properties&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#in&amp;nbsp;python&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;fset&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.value&amp;nbsp;=&amp;nbsp;value*&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;fget&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;DiscrExp.doublingValue&amp;nbsp;=&amp;nbsp;property(fget,&amp;nbsp;fset)&lt;br&gt;&lt;br&gt;inst.doublingValue&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;inst.doublingValue&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#4&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Lets&amp;nbsp;create&amp;nbsp;a&amp;nbsp;printing&amp;nbsp;discriptor&amp;nbsp;to&amp;nbsp;see&amp;nbsp;how&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#the&amp;nbsp;different&amp;nbsp;methods&amp;nbsp;of&amp;nbsp;a&amp;nbsp;descriptor&amp;nbsp;are&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#called&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;PrintingDiscriptor&lt;/FONT&gt;&lt;/b&gt;(object):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__get__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;obj,&amp;nbsp;type):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"__get__"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"obj&amp;nbsp;=&amp;nbsp;"&lt;/FONT&gt;,&amp;nbsp;obj&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"type&amp;nbsp;=&amp;nbsp;"&lt;/FONT&gt;,&amp;nbsp;type&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__set__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;obj,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"__set__"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"obj="&lt;/FONT&gt;,&amp;nbsp;obj&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"value="&lt;/FONT&gt;,&amp;nbsp;value&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__delete__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;obj):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"__delete__"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"obj="&lt;/FONT&gt;,obj&lt;br&gt;&lt;br&gt;DiscrExp.pd&amp;nbsp;=&amp;nbsp;PrintingDiscriptor()&lt;br&gt;inst.pd&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#__get__&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#obj&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;lt;__main__.DiscrExp&amp;nbsp;object&amp;nbsp;at&amp;nbsp;0x011AB890&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#type&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;lt;class&amp;nbsp;'__main__.DiscrExp'&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;inst.pd&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;5&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#__set__&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#obj=&amp;nbsp;&amp;lt;__main__.DiscrExp&amp;nbsp;object&amp;nbsp;at&amp;nbsp;0x011AB890&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#value=&amp;nbsp;5&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;DiscrExp.pd&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#__get__&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#obj&amp;nbsp;=&amp;nbsp;&amp;nbsp;None&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#type&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;lt;class&amp;nbsp;'__main__.DiscrExp'&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Creating&amp;nbsp;a&amp;nbsp;static&amp;nbsp;method&amp;nbsp;descriptor&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;StaticMethod&lt;/FONT&gt;&lt;/b&gt;(object):&lt;br&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;f):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.f&amp;nbsp;=&amp;nbsp;f&lt;br&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__get__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;obj,&amp;nbsp;type):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.f&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;warning&lt;/FONT&gt;&lt;/b&gt;():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;print&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"This&amp;nbsp;is&amp;nbsp;a&amp;nbsp;universal&amp;nbsp;warning,&amp;nbsp;for&amp;nbsp;this&amp;nbsp;class&amp;nbsp;only"&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;DiscrExp.warning&amp;nbsp;=&amp;nbsp;staticmethod(warning)&lt;br&gt;DiscrExp.warning()&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#This&amp;nbsp;is&amp;nbsp;a&amp;nbsp;universal&amp;nbsp;warning,&amp;nbsp;for&amp;nbsp;this&amp;nbsp;class&amp;nbsp;only&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;inst.warning()&lt;br&gt;&lt;FONT COLOR="green"&gt;#Prints:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#This&amp;nbsp;is&amp;nbsp;a&amp;nbsp;universal&amp;nbsp;warning,&amp;nbsp;for&amp;nbsp;this&amp;nbsp;class&amp;nbsp;only&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#References:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#http://www.python.org/2.2.3/descrintro.html&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#http://users.rcn.com/python/download/Descriptor.htm&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Python&amp;nbsp;in&amp;nbsp;a&amp;nbsp;nutshell&amp;nbsp;2nd&amp;nbsp;ed.&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-111381806856616133?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/111381806856616133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=111381806856616133' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/111381806856616133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/111381806856616133'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2005/04/introduction-to-python-classes.html' title='An introduction to python classes'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-111276727486253652</id><published>2005-04-05T23:00:00.000-07:00</published><updated>2005-04-05T23:02:43.140-07:00</updated><title type='text'>A pass by reference decorator</title><content type='html'>&lt;FONT COLOR="green"&gt;#passbyref.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Implementing&amp;nbsp;pass&amp;nbsp;by&amp;nbsp;reference&amp;nbsp;operations&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#in&amp;nbsp;python.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Exanple&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#python&amp;nbsp;passbyref.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;@passbyreference(sym.b)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...def&amp;nbsp;func(a):&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.set("hello")&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;v&amp;nbsp;=&amp;nbsp;5&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;func(1,&amp;nbsp;sym.v,&amp;nbsp;3)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;print&amp;nbsp;v&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#hello&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;inspect&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;_symbol&lt;/FONT&gt;&lt;/b&gt;(object):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__getattribute__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;name):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;name&lt;br&gt;sym&amp;nbsp;=&amp;nbsp;_symbol()&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;ref&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.value&amp;nbsp;=&amp;nbsp;value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;set&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.value&amp;nbsp;=&amp;nbsp;value&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;get&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;self.value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__repl__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;FONT COLOR="olive"&gt;"ref(%s)"&lt;/FONT&gt;&amp;nbsp;%&amp;nbsp;self.value&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__str__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;self.value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;passbyreference&lt;/FONT&gt;&lt;/b&gt;(*refparams):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;getfunc&lt;/FONT&gt;&lt;/b&gt;(func):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fc&amp;nbsp;=&amp;nbsp;func.func_code&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;paramcount&amp;nbsp;=&amp;nbsp;fc.co_argcount&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;paramnames&amp;nbsp;=&amp;nbsp;list(fc.co_varnames[:paramcount])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;pbr&lt;/FONT&gt;&lt;/b&gt;(*args,&amp;nbsp;**aargs):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;callerLocals&amp;nbsp;=&amp;nbsp;inspect.currentframe(&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;).f_locals&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;callerRefVars&amp;nbsp;=&amp;nbsp;[]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argsMap&amp;nbsp;=&amp;nbsp;{}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argsMap.update(dict(zip(paramnames[:len(args)],&amp;nbsp;args)))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argsMap.update(aargs)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;paramName&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;refparams:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;varName&amp;nbsp;=&amp;nbsp;argsMap[paramName]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;varRef&amp;nbsp;=&amp;nbsp;ref(callerLocals[varName])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argsMap[paramName]&amp;nbsp;=&amp;nbsp;varRef&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;callerRefVars.append((varName,&amp;nbsp;varRef))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;retval&amp;nbsp;=&amp;nbsp;func(**argsMap)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;varName,&amp;nbsp;varRef&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;callerRefVars:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;callerLocals[varName]&amp;nbsp;=&amp;nbsp;varRef.get()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;retval&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;pbr&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;getfunc&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-111276727486253652?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/111276727486253652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=111276727486253652' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/111276727486253652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/111276727486253652'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2005/04/pass-by-reference-decorator.html' title='A pass by reference decorator'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-111222080826697851</id><published>2005-03-30T14:12:00.000-08:00</published><updated>2005-03-30T23:01:29.700-08:00</updated><title type='text'>Dylan style multiple dispatch</title><content type='html'>&lt;FONT COLOR="green"&gt;#generic.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#multimethods&amp;nbsp;in&amp;nbsp;python&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Example:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;&amp;nbsp;@generic(int)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;def&amp;nbsp;reverse(next_func,&amp;nbsp;n):&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;str(n)[::-1]&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;&amp;nbsp;@generic(str)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;def&amp;nbsp;reverse(next_func,&amp;nbsp;s):&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;s[::-1]&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;reverse("hello")&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#'olleh'&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;reverse(1234)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#4321&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Changes:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#31-Mar-2005:&amp;nbsp;Fixed&amp;nbsp;a&amp;nbsp;bug&amp;nbsp;in&amp;nbsp;the&amp;nbsp;dispatch,&amp;nbsp;which&amp;nbsp;ment&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;that&amp;nbsp;the&amp;nbsp;best&amp;nbsp;option&amp;nbsp;might&amp;nbsp;not&amp;nbsp;be&amp;nbsp;selected&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;multiple&amp;nbsp;inheritence&amp;nbsp;situations.&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;_genericmethods&amp;nbsp;=&amp;nbsp;{}&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;_issuitable&lt;/FONT&gt;&lt;/b&gt;(pts,&amp;nbsp;pts_):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;pt,&amp;nbsp;pt_&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;zip(pts,&amp;nbsp;pts_):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;not&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;issubclass(pt,&amp;nbsp;pt_):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;False&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;True&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;_closer&lt;/FONT&gt;&lt;/b&gt;(pts,&amp;nbsp;(fn1,&amp;nbsp;pts1),&amp;nbsp;(fn2,&amp;nbsp;pts2)):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;pt,&amp;nbsp;pt1,&amp;nbsp;pt2&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;zip(pts,&amp;nbsp;pts1,&amp;nbsp;pts2):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mro&amp;nbsp;=&amp;nbsp;pt.mro()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;score1&amp;nbsp;=&amp;nbsp;mro.index(pt1)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;score2&amp;nbsp;=&amp;nbsp;mro.index(pt2)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;score1&amp;nbsp;&amp;lt;&amp;nbsp;score2:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;(fn1,&amp;nbsp;pts1)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;score2&amp;nbsp;&amp;lt;&amp;nbsp;score1:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;(fn2,&amp;nbsp;pts2)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;(fn1,&amp;nbsp;pts1)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;generic&lt;/FONT&gt;&lt;/b&gt;(*paramtypes):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;generic_&lt;/FONT&gt;&lt;/b&gt;(func):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;key&amp;nbsp;=&amp;nbsp;(func.__name__,&amp;nbsp;len(paramtypes))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;functions&amp;nbsp;=&amp;nbsp;_genericmethods.setdefault(key,&amp;nbsp;[])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;functions.append((func,&amp;nbsp;paramtypes))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;next_method&lt;/FONT&gt;&lt;/b&gt;(suitable,&amp;nbsp;params,&amp;nbsp;pts):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;len(suitable)==&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;raise&amp;nbsp;Exception,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"Unable&amp;nbsp;to&amp;nbsp;match&amp;nbsp;generic&amp;nbsp;method"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;best&amp;nbsp;=&amp;nbsp;suitable[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;cur&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;suitable:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;best&amp;nbsp;=&amp;nbsp;_closer(pts,&amp;nbsp;best,&amp;nbsp;cur)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;suitable&amp;nbsp;=&amp;nbsp;suitable[:]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;suitable.remove(best)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;func,&amp;nbsp;pts_&amp;nbsp;=&amp;nbsp;best&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;func(lambda&amp;nbsp;*params:next_method(suitable,&amp;nbsp;params,&amp;nbsp;pts),&amp;nbsp;*params)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;first_call&lt;/FONT&gt;&lt;/b&gt;(*params):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pts&amp;nbsp;=&amp;nbsp;[type(param)&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;param&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;params]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;suitable&amp;nbsp;=&amp;nbsp;[(fn_,&amp;nbsp;pts_)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;fn_,&amp;nbsp;pts_&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;functions&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;_issuitable(pts,&amp;nbsp;pts_)]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;next_method(suitable,&amp;nbsp;params,&amp;nbsp;pts)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;first_call&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;generic_&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-111222080826697851?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/111222080826697851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=111222080826697851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/111222080826697851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/111222080826697851'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2005/03/dylan-style-multiple-dispatch.html' title='Dylan style multiple dispatch'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-111041865753456843</id><published>2005-03-09T17:37:00.000-08:00</published><updated>2005-03-09T17:37:37.566-08:00</updated><title type='text'>Symbolic Expressions in python</title><content type='html'>&lt;FONT COLOR="green"&gt;#symbolic.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#This&amp;nbsp;is&amp;nbsp;a&amp;nbsp;python&amp;nbsp;module&amp;nbsp;to&amp;nbsp;represent&amp;nbsp;symbolic&amp;nbsp;expressions&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;a&amp;nbsp;=&amp;nbsp;sym("a")&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;b&amp;nbsp;=&amp;nbsp;sym("b")&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;print&amp;nbsp;eq(a&amp;nbsp;+&amp;nbsp;b,&amp;nbsp;5&amp;nbsp;*&amp;nbsp;-b&amp;nbsp;*&amp;nbsp;b*&amp;nbsp;b&amp;nbsp;+&amp;nbsp;5)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#((a+b)=((((5*-b)*b)*b)+5))&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;opp&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Base&amp;nbsp;class&amp;nbsp;for&amp;nbsp;all&amp;nbsp;operators&amp;nbsp;and&amp;nbsp;the&amp;nbsp;symbolc&amp;nbsp;class&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__getattr__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;attr):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;attr[:&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;]&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"__"&lt;/FONT&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;and&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;attr[-&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;:]&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"__"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;funcname&amp;nbsp;=&amp;nbsp;attr[&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;:-&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;funcname&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;operators:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;lambda&amp;nbsp;*x:&amp;nbsp;operators[funcname](self,&amp;nbsp;*x)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;funcname[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]==&lt;FONT COLOR="olive"&gt;'r'&lt;/FONT&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;and&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;funcname[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;:]&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;operators:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;lambda&amp;nbsp;x:&amp;nbsp;operators[funcname[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;:]](x,&amp;nbsp;self)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;raise&amp;nbsp;(&lt;FONT COLOR="olive"&gt;"AttributeError:&amp;nbsp;object&amp;nbsp;'%s'&amp;nbsp;has&amp;nbsp;no&amp;nbsp;attribute&amp;nbsp;'%s'"&lt;/FONT&gt;&amp;nbsp;%&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(repr(self),&amp;nbsp;attr))&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__coerce__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;other):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;None&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;sym&lt;/FONT&gt;&lt;/b&gt;(opp):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Symbols&amp;nbsp;are&amp;nbsp;used&amp;nbsp;as&amp;nbsp;variables&amp;nbsp;in&amp;nbsp;equations&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;name):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.name&amp;nbsp;=&amp;nbsp;name&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__repr__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"sym("&lt;/FONT&gt;+self.name+&lt;FONT COLOR="olive"&gt;")"&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__str__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.name&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;binopp&lt;/FONT&gt;&lt;/b&gt;(opp):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;This&amp;nbsp;is&amp;nbsp;base&amp;nbsp;class&amp;nbsp;for&amp;nbsp;defining&amp;nbsp;binary&amp;nbsp;operators&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;lhs&amp;nbsp;=&amp;nbsp;None,&amp;nbsp;rhs&amp;nbsp;=&amp;nbsp;None):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.lhs&amp;nbsp;=&amp;nbsp;lhs&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.rhs&amp;nbsp;=&amp;nbsp;rhs&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__str__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"("&lt;/FONT&gt;+str(self.lhs)+self.operator+str(self.rhs)+&lt;FONT COLOR="olive"&gt;")"&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__repl__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.operator+&lt;FONT COLOR="olive"&gt;"("&lt;/FONT&gt;+repl(self.lhs)+&lt;FONT COLOR="olive"&gt;",&amp;nbsp;"&lt;/FONT&gt;+repl(self.rhs)+&lt;FONT COLOR="olive"&gt;")"&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;uniopp&lt;/FONT&gt;&lt;/b&gt;(opp):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;This&amp;nbsp;is&amp;nbsp;the&amp;nbsp;base&amp;nbsp;class&amp;nbsp;for&amp;nbsp;unary&amp;nbsp;operators&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.value&amp;nbsp;=&amp;nbsp;value&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__str__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.operator+str(self.value)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__repr__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.operator+&lt;FONT COLOR="olive"&gt;"("&lt;/FONT&gt;+repr(self.value)+&lt;FONT COLOR="olive"&gt;")"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Operator&amp;nbsp;definitions&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eq&lt;/FONT&gt;&lt;/b&gt;(binopp):&amp;nbsp;operator&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"="&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;add&lt;/FONT&gt;&lt;/b&gt;(binopp):&amp;nbsp;operator&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"+"&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;sub&lt;/FONT&gt;&lt;/b&gt;(binopp):&amp;nbsp;operator&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"-"&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;div&lt;/FONT&gt;&lt;/b&gt;(binopp):&amp;nbsp;operator&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"/"&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;mul&lt;/FONT&gt;&lt;/b&gt;(binopp):&amp;nbsp;operator&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"*"&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;neg&lt;/FONT&gt;&lt;/b&gt;(uniopp):&amp;nbsp;operator&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"-"&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;operators&amp;nbsp;=&amp;nbsp;{&lt;FONT COLOR="olive"&gt;"add"&lt;/FONT&gt;:add,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"sub"&lt;/FONT&gt;:sub,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"div"&lt;/FONT&gt;:div,&lt;FONT COLOR="olive"&gt;"mul"&lt;/FONT&gt;:mul,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"neg"&lt;/FONT&gt;:neg}&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-111041865753456843?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/111041865753456843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=111041865753456843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/111041865753456843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/111041865753456843'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2005/03/symbolic-expressions-in-python.html' title='Symbolic Expressions in python'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-110918021847058719</id><published>2005-02-23T09:36:00.000-08:00</published><updated>2007-02-19T23:49:22.066-08:00</updated><title type='text'>A simple scheme interpreter</title><content type='html'>&lt;FONT COLOR="green"&gt;#scheme.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#This&amp;nbsp;is&amp;nbsp;a&amp;nbsp;implementations&amp;nbsp;of&amp;nbsp;an&amp;nbsp;intrepreter&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#for&amp;nbsp;a&amp;nbsp;small&amp;nbsp;subset&amp;nbsp;of&amp;nbsp;scheme.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#What&amp;nbsp;it&amp;nbsp;has:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Commands&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;Look&amp;nbsp;at&amp;nbsp;the&amp;nbsp;function&amp;nbsp;'eval'&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Functions&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;look&amp;nbsp;at&amp;nbsp;the&amp;nbsp;dictionary&amp;nbsp;'predefineds'&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Examples:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#1)Fibonacci&amp;nbsp;numbers&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#python&amp;nbsp;scheme.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;(define&amp;nbsp;fibonacci&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;(lambda&amp;nbsp;(n)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(define&amp;nbsp;fib&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(lambda&amp;nbsp;(n1&amp;nbsp;n2&amp;nbsp;cnt)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(if&amp;nbsp;(=&amp;nbsp;cnt&amp;nbsp;n)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;n1&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(fib&amp;nbsp;n2&amp;nbsp;(+&amp;nbsp;n1&amp;nbsp;n2)&amp;nbsp;(+&amp;nbsp;cnt&amp;nbsp;1)))))&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(fib&amp;nbsp;0&amp;nbsp;1&amp;nbsp;0)))&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;(display&amp;nbsp;(fibonacci&amp;nbsp;10))&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#55&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#2)Coroutines&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#python&amp;nbsp;scheme.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;(define&amp;nbsp;list&amp;nbsp;(lambda&amp;nbsp;l&amp;nbsp;l))&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;(define&amp;nbsp;message&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;(lambda&amp;nbsp;(cont&amp;nbsp;msg)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(call/cc&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(lambda&amp;nbsp;(newCont)&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(cont&amp;nbsp;(cons&amp;nbsp;newCont&amp;nbsp;msg))))))&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;(define&amp;nbsp;f&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;(lambda&amp;nbsp;(fname&amp;nbsp;cont&amp;nbsp;msg)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(display&amp;nbsp;(cons&amp;nbsp;fname&amp;nbsp;msg))&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(define&amp;nbsp;msgList&amp;nbsp;(message&amp;nbsp;cont&amp;nbsp;(+&amp;nbsp;1&amp;nbsp;msg)))&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(f&amp;nbsp;fname&amp;nbsp;(car&amp;nbsp;msgList)&amp;nbsp;(cdr&amp;nbsp;msgList))))&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;(define&amp;nbsp;msg&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(call/cc&amp;nbsp;(lambda&amp;nbsp;(cont)&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(f&amp;nbsp;"f1:"&amp;nbsp;cont&amp;nbsp;1))))&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;gt;&amp;gt;&amp;gt;(f&amp;nbsp;"f2"&amp;nbsp;(car&amp;nbsp;msg)&amp;nbsp;(cdr&amp;nbsp;msg))&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Changes;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#24-Feb-2005&amp;nbsp;Added&amp;nbsp;quote&amp;nbsp;and&amp;nbsp;the&amp;nbsp;quote&amp;nbsp;symbol&amp;nbsp;'&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#25-Feb-2005&amp;nbsp;Fixed&amp;nbsp;a&amp;nbsp;bug&amp;nbsp;with&amp;nbsp;begin&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#25-Feb-2005&amp;nbsp;Added&amp;nbsp;eval&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#25-Feb-2005&amp;nbsp;Added&amp;nbsp;py-eval&amp;nbsp;and&amp;nbsp;py-exec&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Uncomment&amp;nbsp;the&amp;nbsp;following&amp;nbsp;line&amp;nbsp;if&amp;nbsp;you&amp;nbsp;are&amp;nbsp;using&amp;nbsp;python&amp;nbsp;2.2&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#from&amp;nbsp;__future__&amp;nbsp;import&amp;nbsp;generators&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;re&lt;br&gt;&lt;br&gt;py_context&amp;nbsp;=&amp;nbsp;{}&lt;br&gt;py_eval_func&amp;nbsp;=&amp;nbsp;eval&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;context&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;setVars&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;names,&amp;nbsp;values):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;names&amp;nbsp;==&amp;nbsp;None:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isinstance(names,&amp;nbsp;symbol):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.vars[str(names)]&amp;nbsp;=&amp;nbsp;values&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(name,&amp;nbsp;restNames)&amp;nbsp;=&amp;nbsp;names&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(value,&amp;nbsp;restValues)&amp;nbsp;=&amp;nbsp;values&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.vars[str(name)]=value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.setVars(restNames,&amp;nbsp;restValues)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;parent,&amp;nbsp;var_names&amp;nbsp;=&amp;nbsp;None,&amp;nbsp;values&amp;nbsp;=&amp;nbsp;None):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.parent&amp;nbsp;=&amp;nbsp;parent&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.vars&amp;nbsp;=&amp;nbsp;{}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.setVars(var_names,&amp;nbsp;values)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;get&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;var_name):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.vars.has_key(var_name):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.vars[var_name]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.parent&amp;nbsp;!=&amp;nbsp;None:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.parent.get(var_name)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;raise&amp;nbsp;KeyError(&lt;FONT COLOR="olive"&gt;"Unknown&amp;nbsp;variable&amp;nbsp;"&lt;/FONT&gt;+var_name)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;set&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;var_name,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.vars.has_key(var_name):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.vars[var_name]&amp;nbsp;=&amp;nbsp;value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.parent&amp;nbsp;!=&amp;nbsp;None:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.parent.set(var_name,&amp;nbsp;value)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;raise&amp;nbsp;Key(&lt;FONT COLOR="olive"&gt;"Unknown&amp;nbsp;variable&amp;nbsp;"&lt;/FONT&gt;&amp;nbsp;+&amp;nbsp;var_name)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;define&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;var_name,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.vars[var_name]&amp;nbsp;=&amp;nbsp;value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;symbol&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.value&amp;nbsp;=&amp;nbsp;value&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__str__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.value&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__repr__&lt;/FONT&gt;&lt;/b&gt;(self):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"symbol('"&lt;/FONT&gt;+self.value+&lt;FONT COLOR="olive"&gt;"')"&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__eq__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isinstance(value,&amp;nbsp;symbol):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.value&amp;nbsp;==&amp;nbsp;value.value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;False&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;Predefined&amp;nbsp;Symbols&amp;nbsp;(can't&amp;nbsp;be&amp;nbsp;redefined)&lt;br&gt;&lt;/FONT&gt;LAMBDA&amp;nbsp;=&amp;nbsp;symbol(&lt;FONT COLOR="olive"&gt;"lambda"&lt;/FONT&gt;)&lt;br&gt;IF&amp;nbsp;=&amp;nbsp;symbol(&lt;FONT COLOR="olive"&gt;"if"&lt;/FONT&gt;)&lt;br&gt;BEGIN&amp;nbsp;=&amp;nbsp;symbol(&lt;FONT COLOR="olive"&gt;"begin"&lt;/FONT&gt;)&lt;br&gt;SET&amp;nbsp;=&amp;nbsp;symbol(&lt;FONT COLOR="olive"&gt;"set!"&lt;/FONT&gt;)&lt;br&gt;DEFINE&amp;nbsp;=&amp;nbsp;symbol(&lt;FONT COLOR="olive"&gt;"define"&lt;/FONT&gt;)&lt;br&gt;LOAD&amp;nbsp;=&amp;nbsp;symbol(&lt;FONT COLOR="olive"&gt;"load"&lt;/FONT&gt;)&lt;br&gt;QUOTE&amp;nbsp;=&amp;nbsp;symbol(&lt;FONT COLOR="olive"&gt;"quote"&lt;/FONT&gt;)&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#The&amp;nbsp;tokenizer&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Token&amp;nbsp;Types&lt;br&gt;&lt;/FONT&gt;OPENBRACKET&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;&lt;br&gt;CLOSEBRACKET&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;&lt;br&gt;ATOM&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;3&lt;/FONT&gt;&lt;br&gt;SYMBOL&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;4&lt;/FONT&gt;&lt;br&gt;DOT&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;5&lt;/FONT&gt;&lt;br&gt;SINGLE_QUOTE&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;6&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;tokens_re&amp;nbsp;=&amp;nbsp;re.compile(r&lt;FONT COLOR="olive"&gt;'\(|\)|(?:[\w+\-*/&amp;lt;&amp;gt;=!?.]+)|'&lt;/FONT&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r&lt;FONT COLOR="olive"&gt;'(?:"(?:[^"]|\\")+")|'&lt;/FONT&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r&lt;FONT COLOR="olive"&gt;'(?:#(?:t|f|(?:\\(?:newline|space|.))))|'&lt;/FONT&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r&lt;FONT COLOR="olive"&gt;'\''&lt;/FONT&gt;)&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;tokenize&lt;/FONT&gt;&lt;/b&gt;(code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""This&amp;nbsp;is&amp;nbsp;a&amp;nbsp;very&amp;nbsp;simple&amp;nbsp;tokenizer,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;it&amp;nbsp;accepts&amp;nbsp;a&amp;nbsp;string&amp;nbsp;that&amp;nbsp;represents&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;the&amp;nbsp;code&amp;nbsp;an&amp;nbsp;returns&amp;nbsp;a&amp;nbsp;list&amp;nbsp;of&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;token&amp;nbsp;type,&amp;nbsp;token&amp;nbsp;paris"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tokens&amp;nbsp;=&amp;nbsp;tokens_re.findall(code)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;tokens:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"("&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(OPENBRACKET,&amp;nbsp;token)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;")"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(CLOSEBRACKET,&amp;nbsp;token)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"."&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(DOT,&amp;nbsp;token)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"'"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(SINGLE_QUOTE,&amp;nbsp;token)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token.isdigit():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(ATOM,&amp;nbsp;int(token))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]==&lt;FONT COLOR="olive"&gt;'"'&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(ATOM,&amp;nbsp;token[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;:-&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;].replace(r&lt;FONT COLOR="olive"&gt;'\\'&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"\\"&lt;/FONT&gt;).replace(r&lt;FONT COLOR="olive"&gt;'\"'&lt;/FONT&gt;,&amp;nbsp;r&lt;FONT COLOR="olive"&gt;'"'&lt;/FONT&gt;))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]==&lt;FONT COLOR="olive"&gt;"#"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]==&lt;FONT COLOR="olive"&gt;"\\"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;=&amp;nbsp;token[&lt;FONT COLOR="blue"&gt;2&lt;/FONT&gt;:]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;char&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"space"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"&amp;nbsp;"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;char&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"newline"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"\n"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(ATOM,&amp;nbsp;char)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]==&lt;FONT COLOR="olive"&gt;"t"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(ATOM,&amp;nbsp;True)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]==&lt;FONT COLOR="olive"&gt;"f"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(ATOM,&amp;nbsp;False)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;raise&amp;nbsp;Exception(&lt;FONT COLOR="olive"&gt;"Invalid&amp;nbsp;token&amp;nbsp;"&lt;/FONT&gt;+&amp;nbsp;token)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(SYMBOL,&amp;nbsp;symbol(token))&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;FONT COLOR="green"&gt;#S-Espressions&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;process_sexpr&lt;/FONT&gt;&lt;/b&gt;(tokens):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;token_type,&amp;nbsp;value&amp;nbsp;=&amp;nbsp;tokens.next()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token_type&amp;nbsp;==&amp;nbsp;SINGLE_QUOTE:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;[QUOTE,&amp;nbsp;[process_sexpr(tokens),&amp;nbsp;None]]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token_type&amp;nbsp;==&amp;nbsp;OPENBRACKET:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cons&amp;nbsp;=&amp;nbsp;[None,&amp;nbsp;None]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lst&amp;nbsp;=&amp;nbsp;cons&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;token&amp;nbsp;=&amp;nbsp;None&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;while&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;True&amp;nbsp;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;token&amp;nbsp;=&amp;nbsp;process_sexpr(tokens)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;not&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;[&lt;FONT COLOR="olive"&gt;")"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"."&lt;/FONT&gt;]:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cons[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]&amp;nbsp;=&amp;nbsp;[token,&amp;nbsp;None]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cons&amp;nbsp;=&amp;nbsp;cons[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"."&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cons[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]&amp;nbsp;=&amp;nbsp;process_sexpr(tokens)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;token_type,&amp;nbsp;token&amp;nbsp;=&amp;nbsp;tokens.next()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;")"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;lst[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;raise&amp;nbsp;Exception(&lt;FONT COLOR="olive"&gt;"expected&amp;nbsp;close&amp;nbsp;bracket&amp;nbsp;for&amp;nbsp;expression&amp;nbsp;"&lt;/FONT&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str(lst)+token)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;value&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;sexpr&lt;/FONT&gt;&lt;/b&gt;(text):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;process_sexpr(tokenize(text))&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;sexprs&lt;/FONT&gt;&lt;/b&gt;(text):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"""Build&amp;nbsp;an&amp;nbsp;s-expression&amp;nbsp;from&amp;nbsp;a&amp;nbsp;string"""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lst&amp;nbsp;=&amp;nbsp;[None,&amp;nbsp;None]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cur&amp;nbsp;=&amp;nbsp;lst&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tokens&amp;nbsp;=&amp;nbsp;tokenize(text)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;try&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;while&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;True:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cur[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]&amp;nbsp;=&amp;nbsp;[process_sexpr(tokens),&amp;nbsp;None]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cur&amp;nbsp;=&amp;nbsp;cur[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;except&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;StopIteration:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pass&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;lst[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Pedefined&amp;nbsp;Functions&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Convert&amp;nbsp;a&amp;nbsp;python&amp;nbsp;function&amp;nbsp;into&amp;nbsp;a&amp;nbsp;form&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#suitable&amp;nbsp;for&amp;nbsp;the&amp;nbsp;interpreter&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;predefined_function&lt;/FONT&gt;&lt;/b&gt;(function):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;func&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;args):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argList&amp;nbsp;=&amp;nbsp;[]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;while&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;args!=None:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arg,&amp;nbsp;args&amp;nbsp;=&amp;nbsp;args&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argList.append(arg)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;continuation,&amp;nbsp;function(*argList)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;func&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Some&amp;nbsp;basic&amp;nbsp;predefined&amp;nbsp;functions&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;display&lt;/FONT&gt;&lt;/b&gt;(obj):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print&amp;nbsp;obj&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;callcc&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;args):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(func,&amp;nbsp;nil)&amp;nbsp;=&amp;nbsp;args&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;cont_func&lt;/FONT&gt;&lt;/b&gt;(cont,&amp;nbsp;(arg,&amp;nbsp;nil)):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(continuation,&amp;nbsp;arg)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;func(continuation,&amp;nbsp;(cont_func,&amp;nbsp;None))&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;gen_eval&lt;/FONT&gt;&lt;/b&gt;(context):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval_func&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;arg):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expr,&amp;nbsp;nil&amp;nbsp;=&amp;nbsp;arg&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(eval_continuation(continuation,&amp;nbsp;context,&amp;nbsp;expr),&amp;nbsp;None)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_func&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;py_exec&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;arg):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;code,&amp;nbsp;nil&amp;nbsp;=&amp;nbsp;arg&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exec&amp;nbsp;code&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;py_context&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(continuation,&amp;nbsp;None)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;py_eval&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;arg):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;code,&amp;nbsp;nil&amp;nbsp;=&amp;nbsp;arg&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(continuation,&amp;nbsp;py_eval_func(code,&amp;nbsp;py_context))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;global_context&amp;nbsp;=&amp;nbsp;context(None)&lt;br&gt;&lt;br&gt;predefineds&amp;nbsp;=&amp;nbsp;{&lt;FONT COLOR="olive"&gt;"+"&lt;/FONT&gt;:predefined_function(lambda&amp;nbsp;*args:sum(args)),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"*"&lt;/FONT&gt;:predefined_function(lambda&amp;nbsp;*args:reduce(int.__mul__,&amp;nbsp;args)),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"-"&lt;/FONT&gt;:predefined_function(lambda&amp;nbsp;a,&amp;nbsp;b:a&amp;nbsp;-&amp;nbsp;b),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"&amp;lt;"&lt;/FONT&gt;:predefined_function(lambda&amp;nbsp;a,&amp;nbsp;b:a&amp;nbsp;&amp;lt;&amp;nbsp;b),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"&amp;gt;"&lt;/FONT&gt;:predefined_function(lambda&amp;nbsp;a,&amp;nbsp;b:a&amp;nbsp;&amp;gt;&amp;nbsp;b),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"="&lt;/FONT&gt;:predefined_function(lambda&amp;nbsp;a,&amp;nbsp;b:a&amp;nbsp;==&amp;nbsp;b),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"cons"&lt;/FONT&gt;:predefined_function(lambda&amp;nbsp;a,&amp;nbsp;b:[a,&amp;nbsp;b]),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"car"&lt;/FONT&gt;:predefined_function(lambda(a,&amp;nbsp;b):a),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"cdr"&lt;/FONT&gt;:predefined_function(lambda(a,&amp;nbsp;b):b),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"display"&lt;/FONT&gt;:predefined_function(display),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"call-with-current-continuation"&lt;/FONT&gt;:callcc,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"call/cc"&lt;/FONT&gt;:callcc,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"eval"&lt;/FONT&gt;:gen_eval(global_context),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"py-exec"&lt;/FONT&gt;:py_exec,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"py-eval"&lt;/FONT&gt;:py_eval}&lt;br&gt;&lt;br&gt;global_context.vars&amp;nbsp;=&amp;nbsp;predefineds&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Eval&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#A&amp;nbsp;continuation&amp;nbsp;for&amp;nbsp;the&amp;nbsp;evaluation&amp;nbsp;of&amp;nbsp;an&amp;nbsp;expression&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval_continuation&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;continuation,&amp;nbsp;context,&amp;nbsp;expr):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.next&amp;nbsp;=&amp;nbsp;continuation&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.context&amp;nbsp;=&amp;nbsp;context&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.expr&amp;nbsp;=&amp;nbsp;expr&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;run&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;val):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval(self.next,&amp;nbsp;self.context,&amp;nbsp;self.expr)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval_str&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;context,&amp;nbsp;code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isinstance(code,&amp;nbsp;str):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;code&amp;nbsp;=&amp;nbsp;sexpr(code)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval(continuation,&amp;nbsp;context,&amp;nbsp;code)&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#The&amp;nbsp;eval&amp;nbsp;method&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;context,&amp;nbsp;&amp;nbsp;code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isinstance(code,&amp;nbsp;list):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;code[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]&amp;nbsp;==&amp;nbsp;LAMBDA:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_lambda(continuation,&amp;nbsp;context,&amp;nbsp;&amp;nbsp;code)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;code[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]&amp;nbsp;==&amp;nbsp;IF:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_if(continuation,&amp;nbsp;context,&amp;nbsp;code)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;code[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]==&amp;nbsp;BEGIN:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_begin(continuation,&amp;nbsp;context,&amp;nbsp;code)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;code[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]&amp;nbsp;==&amp;nbsp;DEFINE:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_define(continuation,&amp;nbsp;context,&amp;nbsp;code)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;code[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]&amp;nbsp;==&amp;nbsp;SET:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_set(continuation,&amp;nbsp;context,&amp;nbsp;code)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;code[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]&amp;nbsp;==&amp;nbsp;QUOTE:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_quote(continuation,&amp;nbsp;context,&amp;nbsp;code)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;code[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]&amp;nbsp;==&amp;nbsp;LOAD:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_load(continuation,&amp;nbsp;context,&amp;nbsp;code)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_apply(continuation,&amp;nbsp;context,&amp;nbsp;code)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isinstance(code,&amp;nbsp;symbol):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(continuation,&amp;nbsp;context.get(str(code)))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(continuation,&amp;nbsp;code)&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Helper&amp;nbsp;to&amp;nbsp;evaluate&amp;nbsp;a&amp;nbsp;list&amp;nbsp;of&amp;nbsp;expressions&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;expr_list_continuation&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;continuation,&amp;nbsp;context,&amp;nbsp;exprs):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expr,&amp;nbsp;rest&amp;nbsp;=&amp;nbsp;exprs&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.expr&amp;nbsp;=&amp;nbsp;expr&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;rest&amp;nbsp;==&amp;nbsp;None:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.continuation&amp;nbsp;=&amp;nbsp;continuation&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.continuation&amp;nbsp;=&amp;nbsp;expr_list_continuation(continuation,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;context,&amp;nbsp;rest)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.context&amp;nbsp;=&amp;nbsp;context&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;run&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval(self.continuation,&amp;nbsp;self.context,&amp;nbsp;self.expr)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval_expr_list&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;context,&amp;nbsp;exprs):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(expr_list_continuation(continuation,&amp;nbsp;context,&amp;nbsp;exprs),&amp;nbsp;None)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Quote&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval_quote&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;context,&amp;nbsp;code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(quote,&amp;nbsp;(item,&amp;nbsp;nil))&amp;nbsp;=&amp;nbsp;code&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(continuation,&amp;nbsp;item)&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Load&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval_load&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;context,&amp;nbsp;code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(load,&amp;nbsp;(filepath,&amp;nbsp;nil))&amp;nbsp;=&amp;nbsp;code&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi&amp;nbsp;=&amp;nbsp;file(filepath)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exprs&amp;nbsp;=&amp;nbsp;&amp;nbsp;sexprs(fi.read())&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_expr_list(continuation,&amp;nbsp;context,&amp;nbsp;exprs)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Begin&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval_begin&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;context,&amp;nbsp;code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin,&amp;nbsp;exprs&amp;nbsp;=&amp;nbsp;code&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_expr_list(continuation,&amp;nbsp;context,&amp;nbsp;exprs)&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Lambda&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval_lambda&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;parent_context,&amp;nbsp;code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(lmbda,&amp;nbsp;(params,&amp;nbsp;exprs))&amp;nbsp;=&amp;nbsp;code&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;func&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;args):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new_context&amp;nbsp;=&amp;nbsp;context(parent_context,&amp;nbsp;params,&amp;nbsp;args)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_expr_list(continuation,&amp;nbsp;new_context,&amp;nbsp;exprs)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(continuation,&amp;nbsp;func)&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Define&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;define_continuation&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;continuation,&amp;nbsp;context,&amp;nbsp;var_name):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.continuation&amp;nbsp;=&amp;nbsp;continuation&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.context&amp;nbsp;=&amp;nbsp;context&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.var_name&amp;nbsp;=&amp;nbsp;var_name&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;run&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.context.define(self.var_name,&amp;nbsp;value)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.continuation,&amp;nbsp;None&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval_define&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;context,&amp;nbsp;code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(define,&amp;nbsp;(var_name,&amp;nbsp;(expr,&amp;nbsp;nil)))&amp;nbsp;=&amp;nbsp;code&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continuation&amp;nbsp;=&amp;nbsp;define_continuation(continuation,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;context,&amp;nbsp;str(var_name))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval(continuation,&amp;nbsp;context,&amp;nbsp;expr)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;FONT COLOR="green"&gt;#set!&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;set_continuation&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;continuation,&amp;nbsp;context,&amp;nbsp;var_name):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.continuation&amp;nbsp;=&amp;nbsp;continuation&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.context&amp;nbsp;=&amp;nbsp;context&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.var_name&amp;nbsp;=&amp;nbsp;var_name&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;run&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.context.set(self.var_name,&amp;nbsp;value)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.continuation,&amp;nbsp;None&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval_set&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;context,&amp;nbsp;code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(set,&amp;nbsp;(var_name,&amp;nbsp;(expr,&amp;nbsp;nil)))&amp;nbsp;=&amp;nbsp;code&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continuation&amp;nbsp;=&amp;nbsp;set_continuation(continuation,&amp;nbsp;context,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;str(var_name))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval(continuation,&amp;nbsp;context,&amp;nbsp;expr)&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#If&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;/FONT&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;if_continuation&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;continuation,&amp;nbsp;context,&amp;nbsp;ifTrue,&amp;nbsp;ifFalse):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.continuation&amp;nbsp;=&amp;nbsp;continuation&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.context&amp;nbsp;=&amp;nbsp;context&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.ifTrue&amp;nbsp;=&amp;nbsp;ifTrue&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.ifFalse&amp;nbsp;=&amp;nbsp;ifFalse&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;run&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;value:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval(self.continuation,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.context,&amp;nbsp;self.ifTrue)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval(self.continuation,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.context,&amp;nbsp;self.ifFalse)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval_if&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;context,&amp;nbsp;code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(If,&amp;nbsp;(predicate,&amp;nbsp;(ifTrue,&amp;nbsp;rest)))&amp;nbsp;=&amp;nbsp;code&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;rest==None:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ifFalse&amp;nbsp;=&amp;nbsp;None&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ifFalse&amp;nbsp;=&amp;nbsp;rest[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval(if_continuation(continuation,&amp;nbsp;context,&amp;nbsp;ifTrue,&amp;nbsp;ifFalse),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;context,&amp;nbsp;predicate)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#Apply&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;apply_continuation&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;continuation):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.continuation&amp;nbsp;=&amp;nbsp;continuation&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;run&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;func):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;func(self.continuation,&amp;nbsp;self.params)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;param_continuation&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;continuation,&amp;nbsp;prev):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.continuation&amp;nbsp;=&amp;nbsp;continuation&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.prev&amp;nbsp;=&amp;nbsp;prev&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.params&amp;nbsp;=&amp;nbsp;None&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;run&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.prev.params&amp;nbsp;=&amp;nbsp;(value,&amp;nbsp;self.params)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(self.continuation,&amp;nbsp;None)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;list_param_continuation&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;continuation,&amp;nbsp;prev):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.continuation&amp;nbsp;=&amp;nbsp;continuation&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.prev&amp;nbsp;=&amp;nbsp;prev&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;run&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.prev.params&amp;nbsp;=&amp;nbsp;value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(self.continuation,&amp;nbsp;None)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;construct_param_continuations&lt;/FONT&gt;&lt;/b&gt;(continuation,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;prev,&amp;nbsp;context,&amp;nbsp;code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isinstance(code,&amp;nbsp;list):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expr,&amp;nbsp;rest&amp;nbsp;=&amp;nbsp;code&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;paramContinuation&amp;nbsp;=&amp;nbsp;param_continuation(continuation,&amp;nbsp;prev)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continuation&amp;nbsp;=&amp;nbsp;eval_continuation(paramContinuation,&amp;nbsp;context,&amp;nbsp;expr)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;rest&amp;nbsp;==&amp;nbsp;None:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;continuation&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;construct_param_continuations(continuation,&amp;nbsp;paramContinuation,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;context,&amp;nbsp;rest)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continuation&amp;nbsp;=&amp;nbsp;list_param_continuation(continuation,&amp;nbsp;prev)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_continuation(continuation,&amp;nbsp;context,&amp;nbsp;code)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;eval_apply&lt;/FONT&gt;&lt;/b&gt;(continuation,&amp;nbsp;context,&amp;nbsp;code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(operator,&amp;nbsp;exprs)&amp;nbsp;=&amp;nbsp;code&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;apply_cont&amp;nbsp;=&amp;nbsp;apply_continuation(continuation)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continuation&amp;nbsp;=&amp;nbsp;eval_continuation(apply_cont,&amp;nbsp;context,&amp;nbsp;operator)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continuation&amp;nbsp;=&amp;nbsp;construct_param_continuations(continuation,&amp;nbsp;apply_cont,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;context,&amp;nbsp;exprs)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;(continuation,&amp;nbsp;None)&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#The&amp;nbsp;read&amp;nbsp;eval&amp;nbsp;loop&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;class&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;read_eval_continuation&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;__init__&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;context,&amp;nbsp;reader):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.context&amp;nbsp;=&amp;nbsp;context&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.reader&amp;nbsp;=&amp;nbsp;reader&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.code&amp;nbsp;=&amp;nbsp;None&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.continuation&amp;nbsp;=&amp;nbsp;None&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;run&lt;/FONT&gt;&lt;/b&gt;(self,&amp;nbsp;value):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;try&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;self.code&amp;nbsp;==&amp;nbsp;None:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.code&amp;nbsp;=&amp;nbsp;self.reader.next()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.continuation&amp;nbsp;=&amp;nbsp;read_eval_continuation(self.context,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.reader)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;except&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;StopIteration:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;None,&amp;nbsp;value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;eval_str(self.continuation,&amp;nbsp;self.context,&amp;nbsp;self.code)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;expression_reader&lt;/FONT&gt;&lt;/b&gt;(fi):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;code&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;""&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;brackets&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;while&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;True:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;code&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;""&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;prompt&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"&amp;gt;&amp;gt;&amp;gt;"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;prompt&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"..."&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ln&amp;nbsp;=&amp;nbsp;raw_input(prompt)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;code+=ln+&lt;FONT COLOR="olive"&gt;"&amp;nbsp;"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;brackets+=ln.count(&lt;FONT COLOR="olive"&gt;"("&lt;/FONT&gt;)&amp;nbsp;-&amp;nbsp;&amp;nbsp;ln.count(&lt;FONT COLOR="olive"&gt;")"&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;brackets&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;and&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;len(ln.strip())!=&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;code&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;code&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;""&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;read_eval_loop&lt;/FONT&gt;&lt;/b&gt;(fi):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reader&amp;nbsp;=&amp;nbsp;expression_reader(fi)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continuation&amp;nbsp;=&amp;nbsp;read_eval_continuation(global_context,&amp;nbsp;reader)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"Simple&amp;nbsp;scheme!!!"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;while&lt;/FONT&gt;&lt;/b&gt;(continuation!=None):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(continuation,&amp;nbsp;value)&amp;nbsp;=&amp;nbsp;continuation.run(value)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;__name__==&lt;FONT COLOR="olive"&gt;"__main__"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sys&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read_eval_loop(sys.stdin)&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-110918021847058719?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/110918021847058719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=110918021847058719' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/110918021847058719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/110918021847058719'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2005/02/simple-scheme-interpreter.html' title='A simple scheme interpreter'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-109473168761319415</id><published>2004-09-09T05:07:00.000-07:00</published><updated>2004-09-09T05:08:07.613-07:00</updated><title type='text'>A simple backup script</title><content type='html'>&lt;FONT COLOR="green"&gt;#backup.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#backupdirs&amp;nbsp;&amp;nbsp;-&amp;nbsp;a&amp;nbsp;list&amp;nbsp;of&amp;nbsp;complete&amp;nbsp;paths&amp;nbsp;of&amp;nbsp;directories&amp;nbsp;to&amp;nbsp;backup&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#excludes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;a&amp;nbsp;list&amp;nbsp;of&amp;nbsp;subdirectories&amp;nbsp;to&amp;nbsp;be&amp;nbsp;excluded&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#backupdir&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;the&amp;nbsp;path&amp;nbsp;to&amp;nbsp;the&amp;nbsp;directory&amp;nbsp;where&amp;nbsp;the&amp;nbsp;backup&amp;nbsp;should&amp;nbsp;be&amp;nbsp;written&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#machinename&amp;nbsp;-&amp;nbsp;the&amp;nbsp;name&amp;nbsp;of&amp;nbsp;the&amp;nbsp;machine&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;backupdirs&amp;nbsp;=&amp;nbsp;[]&lt;br&gt;excludes&amp;nbsp;=&amp;nbsp;[]&lt;br&gt;backupdir&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"."&lt;/FONT&gt;&lt;br&gt;machinename&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="olive"&gt;"the_box"&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;zipfile&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;ZipFile&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;time&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;try&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;itertools&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;chain&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;except&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;chain&lt;/FONT&gt;&lt;/b&gt;(*iterators):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;iterators:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;j&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;j&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;getAllFilesInPath&lt;/FONT&gt;&lt;/b&gt;(path):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;os&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;listdir&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;os.path&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isdir,&amp;nbsp;join&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dirs&amp;nbsp;=&amp;nbsp;chain(*[getAllFilesInPath(join(path,&amp;nbsp;filename))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;filename&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;listdir(path)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isdir(join(path,&amp;nbsp;filename))&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;and&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;join(path,&amp;nbsp;filename)&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;not&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;excludes])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;files&amp;nbsp;=&amp;nbsp;[join(path,filename)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;filename&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;listdir(path)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;not&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;isdir(join(path,&amp;nbsp;filename))]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;chain(files,&amp;nbsp;dirs)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;backup&lt;/FONT&gt;&lt;/b&gt;():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;os.path&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;join&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zf&amp;nbsp;=&amp;nbsp;ZipFile(time.strftime(join(backupdir,machinename+&lt;FONT COLOR="olive"&gt;"%-d-%m-%Y.zip"&lt;/FONT&gt;)),&lt;FONT COLOR="olive"&gt;"w"&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;backupdir&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;backupdirs:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;filename&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;getAllFilesInPath(backupdir):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zf.write(filename)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zf.close()&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;__name__&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"__main__"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;backup()&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-109473168761319415?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/109473168761319415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=109473168761319415' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/109473168761319415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/109473168761319415'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2004/09/simple-backup-script.html' title='A simple backup script'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-109446889782861817</id><published>2004-09-06T04:04:00.000-07:00</published><updated>2004-09-06T04:08:17.830-07:00</updated><title type='text'>Resizing images in python</title><content type='html'>&lt;FONT COLOR="green"&gt;#&amp;nbsp;resize.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;Simply&amp;nbsp;put&amp;nbsp;the&amp;nbsp;file&amp;nbsp;into&amp;nbsp;the&amp;nbsp;directory&amp;nbsp;of&amp;nbsp;images&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;and&amp;nbsp;run.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;A&amp;nbsp;directory&amp;nbsp;called&amp;nbsp;resized&amp;nbsp;is&amp;nbsp;created,&amp;nbsp;into&amp;nbsp;which&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;the&amp;nbsp;resized&amp;nbsp;images&amp;nbsp;are&amp;nbsp;put&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;resizeFactor&amp;nbsp;of&amp;nbsp;0.5&amp;nbsp;redueces&amp;nbsp;the&amp;nbsp;height&amp;nbsp;and&amp;nbsp;width&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;by&amp;nbsp;half&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;Image&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;glob&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;os&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;from&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;os.path&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;join&lt;br&gt;&lt;br&gt;resizeFactor&amp;nbsp;=&amp;nbsp;&lt;FONT COLOR="blue"&gt;0.5&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;not&amp;nbsp;os.path.isdir(&lt;FONT COLOR="olive"&gt;"resized"&lt;/FONT&gt;):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;os.mkdir(&lt;FONT COLOR="olive"&gt;"resized"&lt;/FONT&gt;)&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;i&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;glob.glob(&lt;FONT COLOR="olive"&gt;"*.jpg"&lt;/FONT&gt;):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;im&amp;nbsp;=&amp;nbsp;Image.open(i)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width,&amp;nbsp;height&amp;nbsp;=&amp;nbsp;im.size&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print&amp;nbsp;join(&lt;FONT COLOR="olive"&gt;"resized"&lt;/FONT&gt;,&amp;nbsp;i)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;im.resize((int(width*resizeFactor),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int(height*resizeFactor))).save(join(os.curdir,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"resized"&lt;/FONT&gt;,&amp;nbsp;i))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-109446889782861817?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/109446889782861817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=109446889782861817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/109446889782861817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/109446889782861817'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2004/09/resizing-images-in-python.html' title='Resizing images in python'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-109230161807866003</id><published>2004-08-12T02:06:00.000-07:00</published><updated>2006-07-22T01:27:49.166-07:00</updated><title type='text'>Usefull python libraries</title><content type='html'>&lt;p&gt;These are libraries I find myself using quite often. I install them whenever i do a new install of python&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;b&gt;wxPython&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;  &lt;a href="http://www.wxpython.org"&gt; http://www.wxpython.org&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;  A python wrapper for the wxWidgets library. wxPython is nice, easy to use and fast.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;b&gt;Numerical Python(numeric):&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://www.pfdubois.com/numpy/"&gt;http://www.pfdubois.com/numpy/&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;  An array library, it is good if you are doing repetitive calculations on large&lt;br /&gt;   amounts of data or doing matrix operations. &lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;b&gt;Python Imaging Library (PIL):&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;  &lt;a href="http://www.pythonware.com/products/pil/"&gt;http://www.pythonware.com/products/pil/&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;  Basic image processing.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;b&gt;Python Extentions for Windows(win32all):&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;  &lt;a href="http://starship.python.net/crew/mhammond/"&gt;http://starship.python.net/crew/mhammond/&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;  Comes with a decent ide &lt;i&gt;'pythonwin'&lt;/i&gt; and support for com and mfc. Its a must have on windows.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;b&gt;The ReportLab Toolkit&lt;/b&gt;:&lt;br/&gt;&lt;br /&gt;  &lt;a href="http://www.reportlab.org/downloads.html"&gt;http://www.reportlab.org/downloads.html&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;  For generating pdf documents&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-109230161807866003?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/109230161807866003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=109230161807866003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/109230161807866003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/109230161807866003'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2004/08/usefull-python-libraries.html' title='Usefull python libraries'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7922978.post-109221932749654656</id><published>2004-08-11T03:15:00.000-07:00</published><updated>2006-12-28T08:25:14.106-08:00</updated><title type='text'>A simple python colorizer</title><content type='html'>&lt;FONT COLOR="green"&gt;#This&amp;nbsp;blog&amp;nbsp;is&amp;nbsp;all&amp;nbsp;about&amp;nbsp;python&amp;nbsp;and&amp;nbsp;python&amp;nbsp;code.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#I&amp;nbsp;realize&amp;nbsp;that&amp;nbsp;ill&amp;nbsp;be&amp;nbsp;putting&amp;nbsp;up&amp;nbsp;a&amp;nbsp;lot&amp;nbsp;of&amp;nbsp;code&amp;nbsp;so&amp;nbsp;I've&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#written&amp;nbsp;this&amp;nbsp;simple&amp;nbsp;python&amp;nbsp;code&amp;nbsp;to&amp;nbsp;html&amp;nbsp;converter.&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;br&gt;&lt;FONT COLOR="green"&gt;#pyhtmlizer.py&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Colorize&amp;nbsp;and&amp;nbsp;convert&amp;nbsp;you&amp;nbsp;py&amp;nbsp;file&amp;nbsp;into&amp;nbsp;html&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Usage:&amp;nbsp;python&amp;nbsp;pyhtmlizer&amp;nbsp;&amp;lt;filename&amp;gt;&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#Fixes:&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#24-Feb-2005:&amp;nbsp;Added&amp;nbsp;elif&amp;nbsp;and&amp;nbsp;class&amp;nbsp;to&amp;nbsp;the&amp;nbsp;keywords&amp;nbsp;list&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#24-Feb-2005:&amp;nbsp;Function&amp;nbsp;names&amp;nbsp;in&amp;nbsp;def&amp;nbsp;starting&amp;nbsp;with&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;underscores&amp;nbsp;get&amp;nbsp;coloured&amp;nbsp;correctly&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#26-Mar-2005:&amp;nbsp;Fixed&amp;nbsp;the&amp;nbsp;regular&amp;nbsp;expression&amp;nbsp;to&amp;nbsp;handle&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;the&amp;nbsp;'\'&amp;nbsp;in&amp;nbsp;strings&amp;nbsp;properly.&lt;br&gt;&lt;/FONT&gt;&lt;FONT COLOR="green"&gt;#31-Mar-2005:Added&amp;nbsp;print&amp;nbsp;to&amp;nbsp;the&amp;nbsp;keywords&amp;nbsp;list&lt;br&gt;&lt;/FONT&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;re&lt;br&gt;&lt;br&gt;keyWords=&amp;nbsp;[&lt;FONT COLOR="olive"&gt;"def"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"import"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"from"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"for"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"if"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"else"&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"elif"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"in"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"and"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"or"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"not"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"while"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"print"&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"return"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"yield"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"try"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"except"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"class"&lt;/FONT&gt;]&lt;br&gt;&lt;br&gt;r&amp;nbsp;=&amp;nbsp;re.compile(&lt;FONT COLOR="olive"&gt;"[a-zA-Z\_][\\w]*|"&lt;/FONT&gt;+&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"\t|"&lt;/FONT&gt;+&lt;FONT COLOR="olive"&gt;"\n|"&lt;/FONT&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"\d[\\.\\w]*|"&lt;/FONT&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"\"\"\"(?:(?:\\\\.|[^\"])*)\"\"\"|"&lt;/FONT&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"\"(?:(?:\\\\.|[^\"])*)\"|"&lt;/FONT&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"\'\'\'(?:(?:\\\\.|[^\'])*)\'\'\'|"&lt;/FONT&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"\'(?:(?:\\\\.|[^\'])*)\'|"&lt;/FONT&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"#[^\\n]*\\n|"&lt;/FONT&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"."&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;re.DOTALL)&lt;br&gt;&lt;br&gt;replaceList&amp;nbsp;=&amp;nbsp;[(&lt;FONT COLOR="olive"&gt;"&amp;amp;"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"&amp;amp;amp;"&lt;/FONT&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;FONT COLOR="olive"&gt;"&amp;nbsp;"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"&amp;amp;nbsp;"&lt;/FONT&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;FONT COLOR="olive"&gt;"\t"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"&amp;amp;nbsp;"&lt;/FONT&gt;*&lt;FONT COLOR="blue"&gt;4&lt;/FONT&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;FONT COLOR="olive"&gt;"&amp;lt;"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"&amp;amp;lt;"&lt;/FONT&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;FONT COLOR="olive"&gt;"&amp;gt;"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"&amp;amp;gt;"&lt;/FONT&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;FONT COLOR="olive"&gt;"\n"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"&amp;lt;br&amp;gt;"&lt;/FONT&gt;)]&lt;br&gt;&lt;br&gt;replaceDict&amp;nbsp;=&amp;nbsp;dict(replaceList)&lt;br&gt;markupdict&amp;nbsp;=&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"keyword"&lt;/FONT&gt;:&lt;FONT COLOR="olive"&gt;'&amp;lt;b&amp;gt;&amp;lt;FONT&amp;nbsp;COLOR="navy"&amp;gt;%s&amp;lt;/FONT&amp;gt;&amp;lt;/b&amp;gt;'&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"def"&lt;/FONT&gt;:&lt;FONT COLOR="olive"&gt;'&amp;lt;b&amp;gt;&amp;lt;FONT&amp;nbsp;COLOR="blue"&amp;gt;%s&amp;lt;/FONT&amp;gt;&amp;lt;/b&amp;gt;'&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"number"&lt;/FONT&gt;:&lt;FONT COLOR="olive"&gt;'&amp;lt;FONT&amp;nbsp;COLOR="blue"&amp;gt;%s&amp;lt;/FONT&amp;gt;'&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"string"&lt;/FONT&gt;:&lt;FONT COLOR="olive"&gt;'&amp;lt;FONT&amp;nbsp;COLOR="olive"&amp;gt;%s&amp;lt;/FONT&amp;gt;'&lt;/FONT&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"comment"&lt;/FONT&gt;:&lt;FONT COLOR="olive"&gt;'&amp;lt;FONT&amp;nbsp;COLOR="green"&amp;gt;%s&amp;lt;/FONT&amp;gt;'&lt;/FONT&gt;}&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;colorize&lt;/FONT&gt;&lt;/b&gt;(code,&amp;nbsp;type):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;markupdict[type]&amp;nbsp;%&amp;nbsp;code&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;htmlizedTokens&lt;/FONT&gt;&lt;/b&gt;(code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;indef&amp;nbsp;=&amp;nbsp;False&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;for&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;r.findall(code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;keyWords:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;[&lt;FONT COLOR="olive"&gt;"class"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"def"&lt;/FONT&gt;]:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;indef&amp;nbsp;=&amp;nbsp;True&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;colorize(token,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"keyword"&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;].isdigit():&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;colorize(token,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"number"&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;].isalpha()&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;or&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]==&lt;FONT COLOR="olive"&gt;"_"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;indef:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;indef&amp;nbsp;=&amp;nbsp;False&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;colorize(token,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"def"&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;replaceDict.has_key(token):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;replaceDict[token]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"#"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;colorize(reduce(lambda&amp;nbsp;s,&amp;nbsp;(old,&amp;nbsp;new):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.replace(old,&amp;nbsp;new),&amp;nbsp;replaceList,&amp;nbsp;token),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"comment"&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;elif&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token[&lt;FONT COLOR="blue"&gt;0&lt;/FONT&gt;]&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;in&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;[&lt;FONT COLOR="olive"&gt;"'"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;'"'&lt;/FONT&gt;]:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;colorize(reduce(lambda&amp;nbsp;s,&amp;nbsp;(old,&amp;nbsp;new):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.replace(old,&amp;nbsp;new),&amp;nbsp;replaceList,&amp;nbsp;token),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR="olive"&gt;"string"&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;else&lt;/FONT&gt;&lt;/b&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;yield&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;token&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;def&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="blue"&gt;htmlize&lt;/FONT&gt;&lt;/b&gt;(code):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;return&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;&lt;FONT COLOR="olive"&gt;""&lt;/FONT&gt;.join(htmlizedTokens(code))&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;__name__&amp;nbsp;==&amp;nbsp;&lt;FONT COLOR="olive"&gt;"__main__"&lt;/FONT&gt;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;import&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;sys&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;FONT COLOR="navy"&gt;if&lt;/FONT&gt;&lt;/b&gt;&amp;nbsp;len(sys.argv):&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi&amp;nbsp;=&amp;nbsp;file(sys.argv[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fo&amp;nbsp;=&amp;nbsp;file(sys.argv[&lt;FONT COLOR="blue"&gt;1&lt;/FONT&gt;]+&lt;FONT COLOR="olive"&gt;".html"&lt;/FONT&gt;,&amp;nbsp;&lt;FONT COLOR="olive"&gt;"w"&lt;/FONT&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fo.write(htmlize(fi.read()))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi.close()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fo.close()&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7922978-109221932749654656?l=thinkpython.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thinkpython.blogspot.com/feeds/109221932749654656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7922978&amp;postID=109221932749654656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/109221932749654656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7922978/posts/default/109221932749654656'/><link rel='alternate' type='text/html' href='http://thinkpython.blogspot.com/2004/08/simple-python-colorizer_109221932749654656.html' title='A simple python colorizer'/><author><name>monkeeboi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://images.kuruvila.net/d/49-2/sleeping.gif'/></author><thr:total>0</thr:total></entry></feed>
