> On Mar 18, 2015, at 5:50 PM, exar...@twistedmatrix.com wrote: > > On 18 Mar, 10:03 pm, gl...@twistedmatrix.com wrote: >> I'd like to deprecate and remove __nonzero__ on Deferreds. Occasionally I >> see code where someone (maybe even me) does "if d:" where they should have >> been doing "@d.addCallback def cb(result): if result: ...". >> >> Anybody else have this issue? Objections? > > Er. What? It's a little early for april fools' day, isn't it?
> Seriously, this is weird. Am I missing something? Apparently? > Can expand on what it would mean to deprecated a special method of a class > that doesn't even define it Add such a method and cause it to emit a warning, then raise an exception. > and what makes Deferred unique among all user-defined classes in this regard. As I stated in my original message, there's a class of bug where someone does "if somethingThatReturnsDeferred()". Particularly, "if checkPassword()" is a dangerous manifestation of this class of bug. I'd like this to fail noisily instead of appearing to work. In my opinion, having all user-defined classes implement true truthiness by default is a design error in the language. It's a usually-harmless one except in a few cases, and this is one of those cases, which is why Deferred is not the same as the average user-defined class. -glyph _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python