Format: application/x-python-code
1 o
2
3 �hi � @ st d Z ddlZddlmZmZ ddlmZ ddlmZ ddl m
4 Z
5 G dd � d e�ZG d
6 d� de�ZG dd
7 � d
8 e
9 �Z
10 dS )zf Implements a fully blocking kernel client.
11
12 Useful for test suites and blocking terminal interfaces.
13 � N)�Empty�Queue)�Type� )�InProcessChannel)�InProcessKernelClientc sB e Zd ZdZ� fdd�Zdd� Zddd �Zd
14 d� Zdd
15 � Z� Z S )�BlockingInProcessChannelzA blocking in-process channel.c s t � j|i |�� t� | _dS )zInitialize the channel.N)�super�__init__r � _in_queue)�self�args�kwds�� __class__� �Rc:\Users\shubh\Videos\agent\nova\Lib\site-packages\ipykernel/inprocess/blocking.pyr
16 s z!BlockingInProcessChannel.__init__c C s | j �|� dS )z Call the handlers for a message.N)r �put�r �msgr r r �
17 call_handlers s z&BlockingInProcessChannel.call_handlersTNc C s |du rd}| j �||�S )z-Gets a message if there is one that is ready.Ni�: )r �get)r �block�timeoutr r r �get_msg# s z BlockingInProcessChannel.get_msgc C s4 g } z|� | jdd�� W n
18 ty Y |S w q)z*Get all messages that are currently ready.TF)r )�appendr r )r Zmsgsr r r �get_msgs+ s ��z!BlockingInProcessChannel.get_msgsc C s | j �� S )z*Is there a message that has been received?)r �empty)r r r r � msg_ready5 s z"BlockingInProcessChannel.msg_ready)TN)
19 �__name__�
20 __module__�__qualname__�__doc__r
21 r r r r �
22 __classcell__r r r r r s
23
24 r c @ s e Zd ZdZdd� ZdS )�BlockingInProcessStdInChannelz$A blocking in-process stdin channel.c C sZ |d d }|dkr+| j jj}|d d }t|dtjd� tj�� | j �|� � dS dS ) zfOverridden for the in-process channel.
25
26 This methods simply calls raw_input directly.
27 �header�msg_typeZ
28 input_request�content�prompt� )�end�fileN)�clientZkernelZ_sys_raw_input�print�sys�
29 __stdout__�flush�input)r r r&