o
    ð›h5  ã                   @   sŒ   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ G d	d
„ d
e	e
ƒZG dd„ deeƒZdS )é    )ÚPath)ÚOptional)Úinference_state_method_cache)Ú
DictFilter)ÚValueNameMixinÚAbstractNameDefinition)ÚValue)ÚSubModuleDictMixin©ÚNamespaceContextc                   @   s   e Zd ZdZdd„ ZdS )ÚImplicitNSNamezŒ
    Accessing names for implicit namespace packages should infer to nothing.
    This object will prevent Jedi from raising exceptions
    c                 C   s   || _ || _d S ©N)Ú_valueÚstring_name)ÚselfZimplicit_ns_valuer   © r   úTc:\Users\shubh\Videos\agent\nova\Lib\site-packages\jedi/inference/value/namespace.pyÚ__init__   s   
zImplicitNSName.__init__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r      s    r   c                       sž   e Zd ZdZdZdZ‡ fdd„Zddd„Zdd	„ Ze	e
ƒ d
d„ ƒƒZdee fdd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Z‡  ZS ) ÚImplicitNamespaceValuez:
    Provides support for implicit namespace packages
    Ú	namespaceNc                    s&   t ƒ j|d d� || _|| _|| _d S )N)Úparent_context)Úsuperr   Úinference_stateÚstring_namesÚ_paths)r   r   r   Úpaths©Ú	__class__r   r   r      s   
zImplicitNamespaceValue.__init__c                 c   s   � t |  ¡ ƒV  d S r   )r   Zsub_modules_dict)r   Zorigin_scoper   r   r   Úget_filters#   s   €z"ImplicitNamespaceValue.get_filtersc                 C   ó   dS )Nr   r   ©r   r   r   r   Úget_qualified_names&   ó   z*ImplicitNamespaceValue.get_qualified_namesc                 C   s   |   ¡ d }t| |ƒS )Néÿÿÿÿ)Úpy__package__r   )r   r   r   r   r   Úname)   s   
zImplicitNamespaceValue.nameÚreturnc                 C   s   d S r   r   r$   r   r   r   Ú
py__file__/   r&   z!ImplicitNamespaceValue.py__file__c                 C   ó   | j S )zReturn the fullname
        )r   r$   r   r   r   r(   2   s   z$ImplicitNamespaceValue.py__package__c                 C   r,   r   )r   r$   r   r   r   Ú
py__path__7   s   z!ImplicitNamespaceValue.py__path__c                 C   s   d  | j¡S )NÚ.)Újoinr   r$   r   r   r   Ú
py__name__:   s   z!ImplicitNamespaceValue.py__name__c                 C   r#   ©NTr   r$   r   r   r   Úis_namespace=   r&   z#ImplicitNamespaceValue.is_namespacec                 C   r#   )NFr   r$   r   r   r   Úis_stub@   r&   zImplicitNamespaceValue.is_stubc                 C   r#   r1   r   r$   r   r   r   Ú
is_packageC   r&   z!ImplicitNamespaceValue.is_packagec                 C   s   t | ƒS r   r
   r$   r   r   r   Ú
as_contextF   s   z!ImplicitNamespaceValue.as_contextc                 C   s   d| j j|  ¡ f S )Nz<%s: %s>)r!   r   r0   r$   r   r   r   Ú__repr__I   s   zImplicitNamespaceValue.__repr__r   )r   r   r   r   Zapi_typer   r   r"   r%   Úpropertyr   r)   r   r   r+   r(   r-   r0   r2   r3   r4   r5   r6   Ú__classcell__r   r   r    r   r      s&    
r   N)Úpathlibr   Útypingr   Zjedi.inference.cacher   Zjedi.inference.filtersr   Zjedi.inference.namesr   r   Zjedi.inference.base_valuer   Zjedi.inference.value.moduler	   Zjedi.inference.contextr   r   r   r   r   r   r   Ú<module>   s    
