o
    ð›h·  ã                   @   s(   d Z ddlmZmZ G dd„ deƒZdS )z{
Decorators are not really values, however we need some wrappers to improve
docstrings and other things around decorators.
é    )ÚValueWrapperÚValueSetc                       s4   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Z‡  ZS )	Ú	Decorateec                    s   t ƒ  |¡ || _d S ©N)ÚsuperÚ__init__Ú_original_value)ÚselfZwrapped_valueÚoriginal_value©Ú	__class__© úTc:\Users\shubh\Videos\agent\nova\Lib\site-packages\jedi/inference/value/decorator.pyr   
   s   
zDecoratee.__init__c                 C   s
   | j  ¡ S r   )r   Ú	py__doc__©r	   r   r   r   r      s   
zDecoratee.py__doc__c                    s    t ‡ fdd„ˆ j ||¡D ƒƒS )Nc                 3   s   � | ]	}t |ˆ jƒV  qd S r   )r   r   )Ú.0Úvr   r   r   Ú	<genexpr>   s
   € 
ÿ
ÿz&Decoratee.py__get__.<locals>.<genexpr>)r   Ú_wrapped_valueÚ	py__get__)r	   ÚinstanceZclass_valuer   r   r   r      s   þzDecoratee.py__get__c                 C   s,   | j  ¡ }|r	|S | j  d¡s| j ¡ S g S )NÚ__get__)r   Úget_signaturesZpy__getattribute__r   )r	   Z
signaturesr   r   r   r      s   

zDecoratee.get_signatures)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   Ú__classcell__r   r   r   r   r   	   s
    r   N)Ú__doc__Zjedi.inference.base_valuer   r   r   r   r   r   r   Ú<module>   s    