Файловый менеджер - Редактировать - /opt/imh-python/lib/python3.9/site-packages/pylint/checkers/classes/__pycache__/special_methods_checker.cpython-39.pyc
Ðазад
a n�h#; � @ s� d Z ddlmZ ddlmZ ddlZddlmZmZmZ ddl m Z ddlmZ ddl mZ dd lmZmZmZmZmZmZ dd lmZ dZdddd dd�dd�ZG dd� de�ZdS )z5Special methods checker and helper function's module.� )�annotations)�CallableN)�bases�nodes�util)�InferenceContext)�InferenceResult)�BaseChecker)� PYMETHODS�SPECIAL_METHODS_PARAMS�decorated_with�is_function_body_ellipsis�only_required_for_messages� safe_infer)�PyLinter�__next__�nodes.FunctionDefzInferenceContext | NonezInferenceResult | None)�node�caller�context�returnc C s� z| j ||d�}t|�}W n( tjy0 Y dS tyB Y dS 0 zt|� W dS tjyh Y dS ty| | Y S 0 dS )z�Safely infer the return value of a function. Returns None if inference failed or if there is some ambiguity (more than one node has been inferred). Otherwise, returns inferred value. )r N)Zinfer_call_result�next�astroidZInferenceError� StopIteration)r r r Zinferit�value� r ��/root/rpmbuild/BUILDROOT/imh-python39-modules-3.9.7-92.el8.x86_64/opt/imh-python/lib/python3.9/site-packages/pylint/checkers/classes/special_methods_checker.py�_safe_infer_call_result s r c s0 e Zd ZdZdZddde� d�ddd gifd dddd gifdddddddddddd� Zddd�� fdd�Zedddd d!d"d#d$d%d&d'd(d)� d*dd+�d,d-��Z e Z d*dd+�d.d/�Zed0d1d2d3�d4d5��Z ed0d2d+�d6d7��Zed0d2d+�d8d9��Zed0d2d+�d:d;��Zed0d2d+�d<d=��Zed0d2d+�d>d?��Zed0d2d+�d@dA��Zed0d2d+�dBdC��Zd*d0ddD�dEdF�Zd*d0ddD�dGdH�Zd*d0ddD�dIdJ�Zd*d0ddD�dKdL�Zd*d0ddD�dMdN�Zd*d0ddD�dOdP�Zd*d0ddD�dQdR�Zd*d0ddD�dSdT�Zd*d0ddD�dUdV�Zd*d0ddD�dWdX�Zd*d0ddD�dYdZ�Zd*d0ddD�d[d\�Z � Z!S )]�SpecialMethodsCheckerzOChecker which verifies that special methods are implemented correctly. �classesz__iter__ returns non-iterator�non-iterator-returnedzVUsed when an __iter__ method returns something which is not an iterable (i.e. has no `z ` method)Z old_names)ZW0234zold-non-iterator-returned-1)ZE0234zold-non-iterator-returned-2z6The special method %r expects %s param(s), %d %s given�#unexpected-special-method-signaturez�Emitted when a special method was defined with an invalid number of parameters. If it has too few or too many, it might not work at all.)ZE0235zbad-context-manager)z,__len__ does not return non-negative integer�invalid-length-returnedzPUsed when a __len__ method returns something which is not a non-negative integer)z__bool__ does not return bool�invalid-bool-returnedzAUsed when a __bool__ method returns something which is not a bool)z__index__ does not return int�invalid-index-returnedzGUsed when an __index__ method returns something which is not an integer)z__repr__ does not return str�invalid-repr-returnedzCUsed when a __repr__ method returns something which is not a string)z__str__ does not return str�invalid-str-returnedzBUsed when a __str__ method returns something which is not a string)z__bytes__ does not return bytes�invalid-bytes-returnedzAUsed when a __bytes__ method returns something which is not bytes)z__hash__ does not return int�invalid-hash-returnedzEUsed when a __hash__ method returns something which is not an integer)z4__length_hint__ does not return non-negative integer�invalid-length-hint-returnedzXUsed when a __length_hint__ method returns something which is not a non-negative integer)z__format__ does not return str�invalid-format-returnedzEUsed when a __format__ method returns something which is not a string)z&__getnewargs__ does not return a tuple�invalid-getnewargs-returnedzHUsed when a __getnewargs__ method returns something which is not a tuple)zB__getnewargs_ex__ does not return a tuple containing (tuple, dict)�invalid-getnewargs-ex-returnedzbUsed when a __getnewargs_ex__ method returns something which is not of the form tuple(tuple, dict)) ZE0301ZE0302ZE0303ZE0304ZE0305ZE0306ZE0307ZE0308ZE0309ZE0310ZE0311ZE0312ZE0313r �None)�linterr c sH t � �|� | j| j| j| j| j| j| j| j | j | j| j| j d�| _d S )N)�__iter__�__len__�__bool__� __index__�__repr__�__str__� __bytes__�__hash__�__length_hint__� __format__�__getnewargs__�__getnewargs_ex__)�super�__init__�_check_iter� _check_len�_check_bool�_check_index�_check_repr� _check_str�_check_bytes�_check_hash�_check_length_hint� _check_format�_check_getnewargs�_check_getnewargs_ex� _protocol_map)�selfr. �� __class__r r r<