Ńň śTJJc@s_dZddklZlZddkZd„Zdd„Zd„Zdd„Z d „Z dS( s›Class advice. This module was adapted from 'protocols.advice', part of the Python Enterprise Application Kit (PEAK). Please notify the PEAK authors (pje@telecommunity.com and tsarna@sarna.org) if bugs are found or Zope-specific changes are required, so that the PEAK version of this module can be kept in sync. PEAK is a Python application framework that interoperates with (but does not require) Zope 3 and Twisted. It provides tools for manipulating UML models, object-relational persistence, aspect-oriented programming, and more. Visit the PEAK home page at http://peak.telecommunity.com for more information. $Id: advice.py 25177 2004-06-02 13:17:31Z jim $ i˙˙˙˙(t ClassTypet FunctionTypeNc Cs|i}|i}||j}d|j}d|j}|o|}|o|d|dj}|otii|dƒpd}|o |i|j}|p d} nJ|o| o d} n1|o| o d} n|p d} nd} | |||fS( s„Return (kind,module,locals,globals) for a frame 'kind' is one of "exec", "module", "class", "function call", or "unknown". t __module__t__name__texectmoduletclasss function calltunknownN(tf_localst f_globalstsystmodulestgettNonet__dict__( tframeRR t sameNamespacet hasModulethasNametsameNameRtnamespaceIsModuletkind((s;/usr/lib64/python2.6/site-packages/zope/interface/advice.pyt getFrameInfo!s&      $    ics}ti|ƒ}t|ƒ\}}}}|idƒ‰|idtƒ‰‡‡‡fd†}ˆ|_ˆ|_||ds  $ I