o
    po™iù  ã                   @   s:   d dl mZ d dlmZ dededee defdd„Zd	S )
é    )Úpartial)ÚMockÚmethod_nameÚinstanceÚparentÚreturnc                 C   sŽ   t || dƒ}|du rdS t|dƒr|j}t|tƒr|j}nt|tƒr%|j}|du r+dS t || dƒ}|du r9tdƒ‚t|dƒrA|j}|j	|j	kS )z4Check if a method of a given object was overwritten.NFÚ__wrapped__z#The parent should define the method)
ÚgetattrÚhasattrr   Ú
isinstancer   Ú_mock_wrapsr   ÚfuncÚ
ValueErrorÚ__code__)r   r   r   Úinstance_attrÚparent_attr© r   úV/home/ubuntu/.local/lib/python3.10/site-packages/lightning_utilities/core/overrides.pyÚis_overridden	   s"   



r   N)	Ú	functoolsr   Úunittest.mockr   ÚstrÚobjectÚtypeÚboolr   r   r   r   r   Ú<module>   s   "