관리-도구
편집 파일: functools.cpython-38.opt-1.pyc
U e5d� � @ s� d Z ddddddddd d ddd g ZddlmZ ddlmZ ddlmZ ddlm Z dZ dZe efdd�Ze efdd�Z efdd�Zefdd�Zefdd�Zefdd�Zefdd �Zefd!d"�Zefd#d$�Zefd%d&�Zefd'd(�Zefd)d*�Zefd+d,�Zefd-d.�Zd/efd0efd1efgd1efd2efd/efgd2efd1efd0efgd0efd/efd2efgd3�Zd4d� Zd5d� Zzdd6lmZ W n ek �r� Y nX e � Z!e!fd7d�Z"zdd8lm"Z" W n ek �r� Y nX G d9d � d �Z#zdd:lm#Z# W n ek �r Y nX G d;d � d e �Z$d<d=� Z%ed>d?d@dAdBg�Z&G dCdD� dDe'�Z(e � fe)e*he+e,e-fdEdF�Z.dYdId�Z/dJdK� Z0zddLlm0Z0 W n ek �r� Y nX dMdN� Z1dZdPdQ�Z2dRdS� Z3dTdU� Z4dVd� Z5G dWd� d�Z6e � Z7G dXd � d �Z8dOS )[zEfunctools.py - Tools for working with functions and callable objects �update_wrapper�wraps�WRAPPER_ASSIGNMENTS�WRAPPER_UPDATES�total_ordering� cmp_to_key� lru_cache�reduce�partial� partialmethod�singledispatch�singledispatchmethod�cached_property� )�get_cache_token)� namedtuple)�recursive_repr)�RLock)� __module__�__name__�__qualname__�__doc__�__annotations__)�__dict__c C sf |D ]4}zt ||�}W n tk r* Y qX t| ||� q|D ]}t | |��t ||i �� q>|| _| S )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�AttributeError�setattr�update�__wrapped__)�wrapper�wrapped�assigned�updated�attr�value� r$ �!/usr/lib64/python3.8/functools.pyr "