File: //usr/lib/python3/dist-packages/zope/interface/__pycache__/advice.cpython-310.pyc
o
$
x`� � @ s| d Z ddlmZ zddlmZ W n ey dZY nw dZg d�ZddlZdd � Zddd�Z d
d� Z
ddd�Zdd� ZdS )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.
� )�FunctionType�� ClassTypeTF)�addClassAdvisor�determineMetaclass�getFrameInfo�isClassAdvisor�minimalBasesNc
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 �7/usr/lib/python3/dist-packages/zope/interface/advice.pyr . s&