![]() Server : Apache/2.4.52 (Ubuntu) System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64 User : www-data ( 33) PHP Version : 8.1.2-1ubuntu2.21 Disable Function : NONE Directory : /lib/python3/dist-packages/zope/interface/__pycache__/ |
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 ) � implementedBy� providedBy�appendr �namesAndDescriptions�_verify_elementr �lenr ) �iface� candidate� tentative�vtype�tester�excs�name�desc�e� r"