Your IP : 13.58.32.115
�
�Q�f�� � � � d Z g d�ZddlmZ ddlmZ ddlmZ ddlm Z ddl
mZ dZd Z
ee
fd
�Zee
fd�Zd� Zd
� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zdefdefdefgdefdefdefgdefdefdefgdefdefdefgd�Zd� Zd� Z ddlmZ e!� Z"e"fd �Z# dd!lm#Z# G d"� d#� Z$ dd$lm$Z$ G d%� d&e!� Z%d'� Z& ed(g d)�� Z' G d*� d+e(� Z) e!� fe*e+he,e-e.fd,�Z/d;d-�Z0d.� Z1 dd/lm1Z1 d0� Z2d1� Z3d<d3�Z4d4� Z5d5� Z6d6� Z7 G d7� d8� Z8 e!� Z9 G d9� d:� Z:y2# e $ r Y ��w xY w# e $ r Y ��w xY w# e $ r Y ��w xY w# e $ r Y �Ww xY w)=zEfunctools.py - Tools for working with functions and callable objects
)�update_wrapper�wraps�WRAPPER_ASSIGNMENTS�WRAPPER_UPDATES�total_ordering�cache�
cmp_to_key� lru_cache�reduce�partial�
partialmethod�singledispatch�singledispatchmethod�cached_property� )�get_cache_token)�
namedtuple)�recursive_repr)�RLock)�GenericAlias)�
__module__�__name__�__qualname__�__doc__�__annotations__�__type_params__)�__dict__c �� � |D ] } t ||� }t | ||� � |D ]( }t | |� j t ||i � � �* || _ | S # t $ r Y �`w xY w)a Update a wrapper function to look like the wrapped function
wrapper is the function to be updated
wrapped is the original function
assigned is a tuple naming the attributes assigned directly
from the wrapped function to the wrapper function (defaults to
functools.WRAPPER_ASSIGNMENTS)
updated is a tuple naming the attributes of the wrapper that
are updated with the corresponding attribute from the wrapped
function (defaults to functools.WRAPPER_UPDATES)
)�getattr�setattr�AttributeError�update�__wrapped__)�wrapper�wrapped�assigned�updated�attr�values �0/opt/alt/python312/lib64/python3.12/functools.pyr r # sz � � �� *��G�T�*�E�
�G�T�5�)�
� ������%�%�g�g�t�R�&@�A� � "�G���N�� � �� �s �A� A$�#A$c �( � t t | ||�� S )a� Decorator factory to apply update_wrapper() to a wrapper function
Returns a decorator that invokes update_wrapper() with the decorated
function as the wrapper argument and the arguments to wraps() as the
remaining arguments. Default arguments are as for update_wrapper().
This is a convenience function to simplify applying partial() to
update_wrapper().
�r$ r% r&