File: //home/arjun/projects/env/lib/python3.10/site-packages/honcho/__pycache__/process.cpython-310.pyc
o
weK � @ sb d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ G dd� de �Z
G dd � d ej�ZdS )
� N� )�
ON_WINDOWS)�Env)�Messagec @ s8 e Zd ZdZ ddd�Zddd�Zd
d d
�ZdS )�Processz�
A simple utility wrapper around a subprocess.Popen that stores
a number of attributes needed by Honcho and supports forwarding process
lifecycle events and output to a queue.
NFc C sN || _ || _|| _|| _|d u rtj�� n|| _|| _t � | _
d | _t| _
d S )N)�cmd�colour�quiet�name�os�environ�copy�env�cwdr �_env�_child�Popen�_child_ctor)�selfr r
r r r r � r �G/home/arjun/projects/env/lib/python3.10/site-packages/honcho/process.py�__init__ s
zProcess.__init__c C s� || _ | j| j| j| jd�| _| jd| jjidd� |r,t�tj tj
� t�tjtj
� t| jj
jd�D ]
}| js>| �|� q4| jj
�� | j�� | jd| jjidd� d S )N)r r �pid�start)�type� �
returncode�stop)�_eventsr r r r r �
_send_messager �signal�SIGINT�SIG_IGN�SIGTERM�iter�stdout�readliner �close�waitr )r �events�ignore_signals�liner r r �run$ s
�
zProcess.runr+ c C s6 | j d ur| j �t||| j�� | j| jd�� d S d S )N)r �data�timer
r )r �putr r �nowr
r )r r- r r r r r 8 s
��zProcess._send_message)NNFNN)NF)r+ )�__name__�
__module__�__qualname__�__doc__r r, r r r r r r
s
�
r c s e Zd Z� fdd�Z� ZS )r c sr |� dd�}tjtjdt d�}|jdi |�� tr#d}|j|d� n|r+|jdd� tt| �j|fi |�� d S )N�start_new_sessionT)r% �stderr�shell� close_fdsi )�
creationflags)r5 r ) �pop�
subprocess�PIPE�STDOUTr �update�superr r )r r �kwargsr5 �options�create_no_window�� __class__r r r C s �zPopen.__init__)r1 r2 r3 r �
__classcell__r r rC r r A s r )r r r; �compatr r r �printerr �objectr r r r r r �<module> s 7