9سO ^ d Z ddlmZ ddlmZ erddlmZ ddlmZ dZdZ ee fdZ
ee fd Zd
S )z
A backport of Python 3 functools to Python 2/3. The only important change
we rely upon is that `update_wrapper` handles AttributeError gracefully.
)partial)MYPY)Any)Callable)
__module____name____qualname____doc____annotations__)__dict__c |D ]4} t || }t | || %# t $ r Y 1w xY w|D ]4}t | | t ||i 5|| _ | 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)
)getattrsetattrAttributeErrorupdate__wrapped__)wrapperwrappedassignedupdatedattrvalues u/builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib/python3.11/site-packages/sentry_sdk/_functools.pyupdate_wrapperr s * * *GT**E
GT5)))) D B B%%ggtR&@&@AAAA "GNs (
55c 2 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 )r r r s r wrapsr 8 s >7XwWWWW N)r
functoolsr sentry_sdk._typesr typingr r WRAPPER_ASSIGNMENTSWRAPPER_UPDATESr r r r