o
    ˷e5                     @   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)selfimplicit_ns_valuer    r   U/var/www/ideatree/venv/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   sub_modules_dict)r   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&   r4   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   r3   r'   r   r   r   __repr__I   s   zImplicitNamespaceValue.__repr__r   )r   r   r   r   api_typer   r   r%   r(   propertyr   r,   r   r   r.   r+   r0   r3   r5   r6   r7   r8   r9   __classcell__r   r   r!   r   r      s&    
r   N)pathlibr   typingr   jedi.inference.cacher   jedi.inference.filtersr   jedi.inference.namesr   r   jedi.inference.base_valuer   jedi.inference.value.moduler	   jedi.inference.contextr   r   r   r   r   r   r   <module>   s    
