File: //lib/python3/dist-packages/zope/interface/__pycache__/advice.cpython-312.pyc
�
$
x`� � �r � d Z ddlmZ ddlmZ dZg d�ZddlZd� Zd
d �Z d
� Z
dd�Zd� Zy# e$ r dZY �#w xY w)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)� ClassTypeFT)�addClassAdvisor�determineMetaclass�getFrameInfo�isClassAdvisor�minimalBasesNc �, � | j }| j }||u }d|v }d|v }|xr |}|xr |d |d k( }|xr" t j j |d � xs d}|xr |j
|u }|sd} n|r|sd} n|r|sd} n|sd} 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�kinds
�7/usr/lib/python3/dist-packages/zope/interface/advice.pyr r . s� � � �~�~�H����I�� �)�M���(�I��I�%�G��$�W�H��I�I�j�1�8�L�3I�I�H�
�
?�������:�)>�?�
G�4�F��?�6�?�?�i�#?����� �y��� �-���
��� �����9�,�,� c �2 � �� � t rt d� �t j |� }t |� \ }}}}|j d� � t r|j dt � �n|j dt � �� �� fd�}� |_ � |_ ||d<