-2 d Z ddlZddlZddlZddlZ e n# e$ r d ZY nw xY wej dk r! ej d Z ej d Z n ej d Z ej d Z dd Z G d de Z dS ) z-Refactored 'safe reference from dispatcher.py Nc " t | d S )N__call__)hasattr)objects p/builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib/python3.11/site-packages/blinker/_saferef.pycallabler . s vz*** ) im_selfim_func__self____func__c > t | }|@t | d st | d s J d| z t | | }|S dS # t $ r= t | rt j | | cY S t j | cY S w xY w)a Return a *safe* weak reference to a callable target. - ``target``: The object to be weakly referenced, if it's a bound method reference, will create a BoundMethodWeakref, otherwise creates a simple weakref. - ``on_delete``: If provided, will have a hard reference stored to the callable to be called after the safe reference goes out of scope with the reference object, (either a weakref or a BoundMethodWeakref) as argument. Nr r zRsafe_ref target %r has im_self, but no im_func, don't know how to create reference)target on_delete)get_selfr BoundMethodWeakrefAttributeErrorr weakrefref)r r r references r safe_refr : s 6"" 69-- ?1L1L ? ?57=> ? ?L +&INNNI ' ' 'I ';vy11111;v&&&&& 's A .BBBc e Zd ZdZ ej Zd fd Zd dZd Z e e Z d ZeZd Z d Zd Z xZS )r a 'Safe' and reusable weak references to instance methods. BoundMethodWeakref objects provide a mechanism for referencing a bound method without requiring that the method object itself (which is normally a transient object) is kept alive. Instead, the BoundMethodWeakref object keeps weak references to both the object and the function which together define the instance method. Attributes: - ``key``: The identity key for the reference, calculated by the class's calculate_key method applied to the target instance method. - ``deletion_methods``: Sequence of callable objects taking single argument, a reference to this object which will be called when *either* the target object or target function is garbage collected (i.e. when this object becomes invalid). These are specified as the on_delete parameters of safe_ref calls. - ``weak_self``: Weak reference to the target object. - ``weak_func``: Weak reference to the target function. Class Attributes: - ``_all_instances``: Class attribute pointing to all live BoundMethodWeakref objects indexed by the class's calculate_key(target) method applied to the target objects. This weak value dictionary is used to short-circuit creation so that multiple references to the same (object, function) pair produce the same BoundMethodWeakref instance. Nc * | | }| j | }||j | |S t t | | }|| j |<