On Apr 1, 2004, at 2:08 PM, Guido van Rossum wrote: >>> What I'm asking (especially of Phillip) is to collect a set of >>> realistic method declarations using decorators; we can then >>> collectively format these using any of the possible syntaxes, and see >>> how they look. >> >> I'd be happy to scrounge up some samples from existing code using >> 'property' and 'classmethod' as well as some of PEAK's decorators, >> and I >> definitely think that Jack Diedrich and Bob Ippolito's samples should >> be >> included as well. >> >> Important question, though: do we include code bodies, or just use >> 'pass' >> for the bodies? If we include the body, how much of the body? >> Should we >> include entire classes, especially if the class itself needs a >> decorator, >> and multiple methods have decorators? > > Why not provide the bodies, for added realism? > > (I still think class decorators are a separate case, and much weaker > -- you can do this by having a single 'decoratable' metaclass and > setting __decorators__ = [...] in the class body.) Here's something I wrote today.. it's a delegate for the exception handling mechanism so you can listen in on (any of) the exceptions that ObjC throws whether or not they are caught by something else.. the Python->PyObjC exceptions are logged as tracebacks and the ObjC exceptions are thrown over to atos so they turn into human-readable stack traces. As you can see, it's rather ugly with regular old Python syntax. class PyObjCDebuggingDelegate(NSObject): def exceptionHandler_shouldLogException_mask_(self, sender, exception, aMask): try: if isPythonException(exception): if self.verbosity() & LOGSTACKTRACE: nsLogObjCException(exception) return nsLogPythonException(exception) elif self.verbosity() & LOGSTACKTRACE: return nsLogObjCException(exception) else: return False except: print >>sys.stderr, "*** Exception occurred during exception handler ***" traceback.print_exc(sys.stderr) return True exceptionHandler_shouldLogException_mask_ = objc.selector(exceptionHandler_shouldLogException_mask_, signature='c@:@@I') def exceptionHandler_shouldHandleException_mask_(self, sender, exception, aMask): return False exceptionHandler_shouldHandleException_mask_ = objc.selector(exceptionHandler_shouldHandleException_mask_, signature='c@:@@I') the objc.selector signatures say that they return a char (a BOOL, actually), the following @: represents "self" and the selector (the "method name"), the next two @@ say that the sender and exception arguments are both ObjC objects, and the trailing I means that aMask is an unsigned int. -bob
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4