<br><br><div class="gmail_quote">On Sun, Jan 13, 2013 at 9:08 AM, Itamar Turner-Trauring <span dir="ltr">&lt;<a href="mailto:itamar@futurefoundries.com" target="_blank">itamar@futurefoundries.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><br></div><div><font face="courier new, monospace">    @inlineCallbacks</font></div><div><font face="courier new, monospace">    def login(self, *args, **kwargs):</font></div>
<div><font face="courier new, monospace">        for portal in self.portals:</font></div><div><font face="courier new, monospace">            try:</font></div><div><font face="courier new, monospace">                return portal.login(*args, **kwargs)</font></div>


<div><font face="courier new, monospace">            except:</font></div><div><font face="courier new, monospace">                continue</font></div><div><font face="courier new, monospace">        # Ran out of portals, failed to login:</font></div>


<div><font face="courier new, monospace">        raise Unauthorized()</font></div></blockquote><div><br></div><div>Sigh. Make that:</div><div><br></div><div><div><font face="courier new, monospace">    @inlineCallbacks</font></div>
<div><font face="courier new, monospace">    def login(self, *args, **kwargs):</font></div><div><font face="courier new, monospace">        for portal in self.portals:</font></div><div><font face="courier new, monospace">            try:</font></div>
<div><font face="courier new, monospace">                returnValue(yield portal.login(*args, **kwargs))</font></div><div><font face="courier new, monospace">            except:</font></div><div><font face="courier new, monospace">                continue</font></div>
<div><font face="courier new, monospace">        # Ran out of portals, failed to login:</font></div><div><font face="courier new, monospace">        raise Unauthorized()</font></div></div><div><br></div></div>