B
    7r\                 @   s   d dl Z d dlmZ d dlmZ yd dlmZ W n: ek
rj   yd dlZW n ek
rd   dZY nX Y nX dd Z	G dd deZ
G d	d
 d
eZdd ZdS )    N)ignored)AbstractNameDefinition)topicsc             C   s   t | ||S )N)Keyword)	evaluatorstringpos r	   0lib/python3.7/site-packages/jedi/api/keywords.pyget_operator   s    r   c               @   s    e Zd ZdZdd Zdd ZdS )KeywordNamekeywordc             C   s   || _ || _|j| _d S )N)r   string_namebuiltins_moduleZparent_context)selfr   namer	   r	   r
   __init__   s    zKeywordName.__init__c             C   s   t | j| jdgS )N)r   r   )r   r   r   )r   r	   r	   r
   infer   s    zKeywordName.inferN)__name__
__module____qualname__api_typer   r   r	   r	   r	   r
   r      s   r   c               @   s6   e Zd ZdZdd Zedd ZdddZd	d
 ZdS )r   r   c             C   s   t ||| _|| _|j| _d S )N)r   r   Z	start_posr   parent)r   r   r   r   r	   r	   r
   r   %   s    zKeyword.__init__c             C   s   | j gS )z' For a `parsing.Name` like comparision )r   )r   r	   r	   r
   names*   s    zKeyword.namesFc             C   s   t | jjS )N)imitate_pydocr   r   )r   Zinclude_call_signaturer	   r	   r
   	py__doc__/   s    zKeyword.py__doc__c             C   s   dt | j| jf S )Nz<%s: %s>)typer   r   )r   r	   r	   r
   __repr__2   s    zKeyword.__repr__N)F)	r   r   r   r   r   propertyr   r   r   r	   r	   r	   r
   r   "   s
   
r   c          	      s   t dkrdS t| } tj tt   j|  } | d\} }}W dQ R X  fdd}xt| trj|| } qVW y| \}}W n t	k
r   dS X yt rt j
|  S dS  tk
r   dS X dS )z]
    It's not possible to get the pydoc's without starting the annoying pager
    stuff.
    N  c                s    j |  j| S )N)r   getkeywords)s)hr	   r
   <lambda>G   s    zimitate_pydoc.<locals>.<lambda>)pydoc_topicsstrpydochelpr   KeyErrorZsymbols	partition
isinstance	TypeErrorr   strip)r   _ZrelatedZ
get_targetZlabelr	   )r$   r
   r   6   s$    

r   )r(   Zjedi.evaluate.utilsr   Zjedi.evaluate.filtersr   Z
pydoc_datar   r&   ImportErrorr   r   objectr   r   r	   r	   r	   r
   <module>   s   