B
    't\                 @   s   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Zdd	d
dgZdddZdd	 Ze Zdd
 Zdd ZdS )    )unicode_literals)get_app)	TaskLocalTaskLocalNotSetError)
is_windows   )InputNcreate_inputcreate_pipe_inputget_default_inputset_default_inputc             C   s<   | pt j} t r$ddlm} || S ddlm} || S d S )Nr   )
Win32Input)
Vt100Input)sysstdinr   Zwin32r   Zvt100r   )r   r   r    r   <lib/python3.7/site-packages/prompt_toolkit/input/defaults.pyr	      s    
c              C   s.   t  rddlm}  |  S ddlm} | S dS )zK
    Create an input pipe.
    This is mostly useful for unit testing.
    r   )Win32PipeInput)PosixPipeInputN)r   Z
win32_piper   Z
posix_piper   )r   r   r   r   r   r
      s
    c              C   s@   yt  } W n* tk
r6   tdd}|r0|jS t S X | S dS )z
    Get the input class to be used by default.

    Called when creating a new Application(), when no `Input` has been passed.
    T)Zreturn_noneN)_default_inputgetr   r   inputr	   )valueZappr   r   r   r   +   s    
c             C   s   t | tstt|  dS )z\
    Set the default `Input` class.

    (Used for instance, for the telnet submodule.)
    N)
isinstancer   AssertionErrorr   set)r   r   r   r   r   A   s    )N)Z
__future__r   Z"prompt_toolkit.application.currentr   Z prompt_toolkit.eventloop.contextr   r   Zprompt_toolkit.utilsr   baser   r   __all__r	   r
   r   r   r   r   r   r   r   <module>   s   
