o
    Zh5                     @   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   U/var/www/html/lang_env/lib/python3.10/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    
