<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>On Aug 16, 2010, at 1:34 AM, Sergey Magafurov wrote:</div><div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: 'Bitstream Vera Sans Mono'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="font-family: monospace; ">At first, sorry for my bad english<br></span></span></blockquote><div><br></div><div>No problem, Sergey. &nbsp;I am sure that my Russian would be worse.</div><div><br></div><div>Ivan's response already covered a lot of the things I would say, but I did want to add a few things.</div><div><br></div><div>First, generally: the most important thing to provide here are unit tests with very clear documentation expressing why you would want these things to work. &nbsp;The test code you provided is unclear because it does not succeed or fail, it just does some things, and then does some other things, without explaining <i>why</i>&nbsp;I would want to do those things. &nbsp;Given that the implementation of Deferred is changing a lot now (see &lt;<a href="http://twistedmatrix.com/trac/ticket/411">http://twistedmatrix.com/trac/ticket/411</a>&gt;), if we agree with your features, the implementation may have to change completely. &nbsp;So, it is important to have tests that describe just the behavior change, not the implementation.</div><div><br></div><div>More specifically:</div><br><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: 'Bitstream Vera Sans Mono'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="font-family: monospace; ">Wanted features:<br>1. Ability to delete callbacks (delCallbacks)<br></span></span></blockquote></div><br><div>Can you please explain *why* you would want this? &nbsp;Deleting callbacks from a Deferred would break a lot of assumptions about the way that Deferreds are used (at any particular point in the callback chain, you should be able to infer what the return type should be just by looking at the code, not running it).</div><div><br></div><div>So, it is very unlikely that we will add the ability to delete arbitrary callbacks.</div><div><br></div><div><blockquote type="cite"><span class="Apple-style-span" style="font-family: monospace; ">3. Ability to add/del hooks on deferred's finishing with errback or&nbsp;callback (addFinalizer/delFinalizer)</span></blockquote></div><div><br></div><div>You can already do this with weakref callbacks. &nbsp;Why would you need Deferred to provide an alternate mechanism?</div></body></html>