U
    puf×  ã                   @   sT   d dl Z d dlZd dlmZmZmZ d dlmZ dada	dd„ Z
dd„ Zd	d
„ ZdS )é    N)ÚQtCoreÚQtGuiÚenum_helper)Úget_ipythonFc                 C   s   t | dƒr|  ¡ n|  ¡  d S )NÚexec)Úhasattrr   Úexec_)Úobj© r
   úE/tmp/pip-unpacked-wheel-bxwx4lqe/IPython/terminal/pt_inputhooks/qt.pyÚ_exec   s    r   c                  C   s   t ƒ } | d k	r| jt_d S ©N)r   Ú
excepthookÚsys)Úshellr
   r
   r   Ú_reclaim_excepthook   s    r   c              	      sr  t j ¡ }|sÂtjdkrNtj d¡sNtj d¡sNdd l}t	sJda	| 
d¡ d S zt j t jj¡ W n tk
rv   Y nX zt j t jjj¡ W n tk
r¢   Y nX t dg¡ a}t j dt¡ t  |¡‰ tjdkrt  ¡ }|j ˆ j¡ |  ¡ sn| d	¡ tˆ ƒ | ¡  qînXt   |  !¡ t"d
ƒj#¡}z4|j% ‡ fdd„¡ | $d¡ |  ¡ s^tˆ ƒ W 5 | $d¡ X d S )NÚlinuxZDISPLAYZWAYLAND_DISPLAYr   TzˆThe DISPLAY or WAYLAND_DISPLAY environment variable is not set or empty and Qt5 requires this environment variable. Deactivate Qt5 code.ú Úwin32é2   zQtCore.QSocketNotifier.TypeFc                      s   ˆ   ¡ S r   )Úexitr
   ©Z
event_loopr
   r   Ú<lambda>P   ó    zinputhook.<locals>.<lambda>)&r   ZQCoreApplicationÚinstancer   ÚplatformÚosÚenvironÚgetÚwarningsÚ_already_warnedÚwarnZQApplicationZsetAttributeZQtZAA_EnableHighDpiScalingÚAttributeErrorZ#setHighDpiScaleFactorRoundingPolicyZ HighDpiScaleFactorRoundingPolicyZPassThroughr   Ú_apprefZQTimerZ
singleShotr   Z
QEventLoopÚtimeoutÚconnectÚquitZinput_is_readyÚstartr   ÚstopZQSocketNotifierÚfilenor   ZReadZ
setEnabledZ	activated)ÚcontextZappr   ZtimerZnotifierr
   r   r   Ú	inputhook   sV    


ÿÿÿ


 ÿ

r+   )r   r   ZIPython.external.qt_for_kernelr   r   r   ZIPythonr   r#   r    r   r   r+   r
   r
   r
   r   Ú<module>   s   