File: //lib/python3/dist-packages/mercurial/thirdparty/zope/interface/__pycache__/advice.cpython-310.pyc
o
�]Lbf � @ s� d Z ddlmZ ddlmZ zddlmZ W n ey! dZY nw dZddlZdd � Z ddd�Z
d
d� Zddd�Zdd� Z
dS )aj 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.
� )�absolute_import)�FunctionType�� ClassTypeTFNc
C s� | j }| j}||u }d|v }d|v }|o|}|o|d |d k}|r*tj�|d �p+d}|o2|j|u }|s8d} n|r?|s?d} n|rF|sFd} n|sKd} nd} | |||fS ) z�Return (kind,module,locals,globals) for a frame
'kind' is one of "exec", "module", "class", "function call", or "unknown".
�
__module__�__name__N�exec�module�classz
function call�unknown)�f_locals� f_globals�sys�modules�get�__dict__)
�framer r
�
sameNamespace� hasModule�hasName�sameNamer �namespaceIsModule�kind� r �L/usr/lib/python3/dist-packages/mercurial/thirdparty/zope/interface/advice.py�getFrameInfo( s&