| Server IP : 186.64.123.29 / Your IP : 216.73.217.94 Web Server : LiteSpeed System : Linux house.hostinglat.cl 5.15.0-185-generic #195-Ubuntu SMP Fri Jun 19 17:11:50 UTC 2026 x86_64 User : tuemp9827 ( 1016) PHP Version : 8.1.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/python3/dist-packages/zope/interface/__pycache__/ |
Upload File : |
o
$
x`� � @ s� d Z ddlmZ ddlZddlZddlmZ ddlmZ ddlm Z ddl
mZ ddl
mZ dd l
m
Z
dd
l
mZ ddl
mZ ddlmZmZmZ d
dgZefZddd�Zdd� Zddd�Zddd
�Zej e_ dZeef�Zdd� Zdd� ZdS )z!Verify interface implementations
� )�print_functionN)�FunctionType)�
MethodType)�PYPY2)�BrokenImplementation)�BrokenMethodImplementation)�DoesNotImplement)�Invalid)�MultipleInvalid)�
fromMethod�fromFunction�Method�verifyObject�verifyClassFc C s� |dkr| j }n| j}g }|s||�s|�t| |�� | jdd�D ]%\}}z
t| ||||� W q! tyF } z|�|� W Y d}~q!d}~ww |rYt|�dkrS|d �t| ||��dS )a�
Verify that *candidate* might correctly provide *iface*.
This involves:
- Making sure the candidate claims that it provides the
interface using ``iface.providedBy`` (unless *tentative* is `True`,
in which case this step is skipped). This means that the candidate's class
declares that it `implements <zope.interface.implementer>` the interface,
or the candidate itself declares that it `provides <zope.interface.provider>`
the interface
- Making sure the candidate defines all the necessary methods
- Making sure the methods have the correct signature (to the
extent possible)
- Making sure the candidate defines all the necessary attributes
:return bool: Returns a true value if everything that could be
checked passed.
:raises zope.interface.Invalid: If any of the previous
conditions does not hold.
.. versionchanged:: 5.0
If multiple methods or attributes are invalid, all such errors
are collected and reported. Previously, only the first error was reported.
As a special case, if only one such error is present, it is raised
alone, like before.
�cT)�allN� r ) Z
implementedByZ
providedBy�appendr ZnamesAndDescriptions�_verify_elementr �lenr
) �iface� candidate� tentative�vtypeZtesterZexcs�name�desc�e� r �7/usr/lib/python3/dist-packages/zope/interface/verify.py�_verify* s$ ��r c C sJ zt ||�}W n ty t|t�s|dkrY d S t| ||��w t|t�s(d S t�|�s2t�|�r4d S t|t�rZt j
d dkrRt|t�rR|dkrRt|| |dd�}n4t|| |d�}n,t|t
�rmt|j�tu rmt|| |�}nt|t�rx|dkrxd S t|�s�t|d|| |��d S t|�� |�� �}|r�tr�t|||�r�d S t|||| |��d S )Nr r � r )r Zimlevel)r zimplementation is not a method)�getattr�AttributeError�
isinstancer
r �inspectZismethoddescriptorZ isbuiltinr �sys�version_info�typer �MethodTypes�__func__r �property�callabler � _incompatZgetSignatureInfor �_pypy2_false_positive)r r r r r �attrZmethZmessr r r r ` sD �
�
���r c C � t | ||dd�S )zF
Verify that the *candidate* might correctly provide *iface*.
r �r �r �r r r r r r r � s c C r/ )N�or0 r1 r2 r r r r � s z*implementation requires too many argumentsc C s<