a
    lc5                     @   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   Z/var/www/html/django/DPS/env/lib/python3.9/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ee d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   s   dS )Nr   r   r   r   r   r   get_qualified_names&   s    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__/   s    z!ImplicitNamespaceValue.py__file__c                 C   s   | j S )zReturn the fullname
        )r   r#   r   r   r   r&   2   s    z$ImplicitNamespaceValue.py__package__c                 C   s   | j S 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   s   dS NTr   r#   r   r   r   is_namespace=   s    z#ImplicitNamespaceValue.is_namespacec                 C   s   dS )NFr   r#   r   r   r   is_stub@   s    zImplicitNamespaceValue.is_stubc                 C   s   dS r.   r   r#   r   r   r   
is_packageC   s    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   r-   r#   r   r   r   __repr__I   s    zImplicitNamespaceValue.__repr__)N)r   r   r   r   Zapi_typer   r   r"   r$   propertyr   r'   r   r   r)   r&   r*   r-   r/   r0   r1   r2   r3   __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   
