[Twisted-Python] two deferred_tutorial patches

Lee Harr missive at hotmail.com
Sat Oct 23 10:22:12 EDT 2004


The first catches a bit more of the output from
deferred_ex3.py which makes a bit more sense:

Index: doc/core/howto/tutorial/deferred_tutorial.xhtml
===================================================================
--- doc/core/howto/tutorial/deferred_tutorial.xhtml     (revision 12146)
+++ doc/core/howto/tutorial/deferred_tutorial.xhtml     (working copy)
@@ -157,6 +157,9 @@
   File "./deferred_ex2.py", line 35, in failAtHandlingResult
     raise RuntimeError, "whoops! we encountered an error"
exceptions.RuntimeError: whoops! we encountered an error
+
+callback 3
+        got result: okay, continue on
</pre>

<h2>addBoth: the deferred version of <em>finally</em></h2>




Actually, now that I look at it ... the output in the text
is just from the wrong program:

Index: doc/core/howto/tutorial/deferred_tutorial.xhtml
===================================================================
--- doc/core/howto/tutorial/deferred_tutorial.xhtml     (revision 12146)
+++ doc/core/howto/tutorial/deferred_tutorial.xhtml     (working copy)
@@ -147,16 +147,22 @@
<pre>
callback 1
         got result: success
+callback 2
+        got result: yay! handleResult was successful!
         about to raise exception
errback
we got an exception: Traceback (most recent call last):
---- &lt;exception caught here&gt; ---
-  File "/home/slyphon/Projects/Twisted/trunk/twisted/internet/defer.py", 
line
-326, in _runCallbacks
-    self.result = callback(self.result, *args, **kw)
-  File "./deferred_ex2.py", line 35, in failAtHandlingResult
+  File "deferred_ex3.py", line 94, in ?
+    behindTheScenes("success")
+--- <exception caught here> ---
+  File "deferred_ex3.py", line 57, in behindTheScenes
+    result = failAtHandlingResult(result)
+  File "deferred_ex3.py", line 34, in failAtHandlingResult
     raise RuntimeError, "whoops! we encountered an error"
exceptions.RuntimeError: whoops! we encountered an error
+
+callback 3
+        got result: okay, continue on
</pre>

<h2>addBoth: the deferred version of <em>finally</em></h2>




And the second one makes the tutorial look right
when loaded from the filesystem.  I have a feeling
I am supposed to start a webserver or process
these files somehow, but this was easier for me...


Index: doc/core/howto/tutorial/deferred_tutorial.xhtml
===================================================================
--- doc/core/howto/tutorial/deferred_tutorial.xhtml     (revision 12146)
+++ doc/core/howto/tutorial/deferred_tutorial.xhtml     (working copy)
@@ -1,6 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html> <head>
<title>Deferreds are beautiful! (A Tutorial)</title>
+<link type="text/css" rel="stylesheet" href="../stylesheet.css" />
</head>

<body>
@@ -27,7 +28,7 @@

First, a simple example so that we have something to talk about:

-<a href="../listings/deferred/deferred_ex.py" class="py-listing"></a>
+<a href="../listings/deferred/deferred_ex.py" 
class="py-listing">deferred_ex.py</a>

<p>And the output: (since both methods in the example produce the same 
output,
it will only be shown once.) </p>
@@ -56,7 +57,7 @@
returned the deferred needs to alert the callback chain that an error
has occurred.</p>

-<a href="../listings/deferred/deferred_ex1a.py" class="py-listing"></a>
+<a href="../listings/deferred/deferred_ex1a.py" 
class="py-listing">deferred_ex1a.py</a>

<pre>
errback
@@ -80,7 +81,7 @@
<p>Now let's see what happens when <em>our callback</em> raises an
exception</p>

-<a href="../listings/deferred/deferred_ex1b.py" class="py-listing"></a>
+<a href="../listings/deferred/deferred_ex1b.py" 
class="py-listing">deferred_ex1b.py</a>

<p>And the output: (note, tracebacks will be edited slightly to conserve
space)</p>
@@ -112,7 +113,7 @@
errback in the chain. If the chain is started off with a failure, the first
method to be called will be the first errback.</p>

-<a href="../listings/deferred/deferred_ex2.py" class="py-listing"></a>
+<a href="../listings/deferred/deferred_ex2.py" 
class="py-listing">deferred_ex2.py</a>

<pre>
callback 1
@@ -142,7 +143,7 @@
failure or raise an exception) the chain continues on with the next
callback.</p>

-<a href="../listings/deferred/deferred_ex3.py" class="py-listing"></a>
+<a href="../listings/deferred/deferred_ex3.py" 
class="py-listing">deferred_ex3.py</a>

<pre>
callback 1
@@ -168,7 +169,7 @@
returning the value that it received to allow processing the chain to
continue, but appearing transparent in terms of the result.</p>

-<a href="../listings/deferred/deferred_ex4.py" class="py-listing"></a>
+<a href="../listings/deferred/deferred_ex4.py" 
class="py-listing">deferred_ex4.py</a>

<pre>
callback 1
@@ -205,7 +206,7 @@
addCallback followed by an addErrback.</p>


-<a href="../listings/deferred/deferred_ex5.py" class="py-listing"></a>
+<a href="../listings/deferred/deferred_ex5.py" 
class="py-listing">deferred_ex5.py</a>

<pre>
callback 1
@@ -227,7 +228,7 @@
processing in response to the error, we would have used a passthru, and
returned the failure we received, as we see in this next example: </p>

-<a href="../listings/deferred/deferred_ex6.py" class="py-listing"></a>
+<a href="../listings/deferred/deferred_ex6.py" 
class="py-listing">deferred_ex6.py</a>

<pre>
callback 1
@@ -258,7 +259,7 @@
beforehand and then executes it, the other executes the chain as it is being
constructed.  This is because deferreds are <em>stateful</em>.  </p>

-<a href="../listings/deferred/deferred_ex7.py" class="py-listing"></a>
+<a href="../listings/deferred/deferred_ex7.py" 
class="py-listing">deferred_ex7.py</a>

<pre>
callback 1
@@ -309,7 +310,7 @@
processing chain will become the result that gets passed to the next 
callback
of the primary deferreds processing chain </p>

-<a href="../listings/deferred/deferred_ex8.py" class="py-listing"></a>
+<a href="../listings/deferred/deferred_ex8.py" 
class="py-listing">deferred_ex8.py</a>

<pre>
callback 1



Thanks for your time.

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! 
http://messenger.msn.com/





More information about the Twisted-Python mailing list