o
    Uh                     @   sB   d dl Z d dlZd dlZddlmZ G dd deZd	ddZdS )
    N   )Processc                   @   s   e Zd ZdS )PsNotAvailableN)__name__
__module____qualname__ r   r   h/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/shellingham/posix/ps.pyr      s    r   
   c              
   c   sL   zg d}t |}W n0 ty# } z|jtjkr tdd}~w t jy< } z|j s7W Y d}~dS  d}~ww t	|t
sOt pIt }||}i }|dD ].}z| dd\}}	}
tdd |
dD }
W n	 tyz   Y qVw t|
||	d	||< qVt|D ]}z||  }W n ty   Y  dS w |V  |j} qdS )
z7Try to look up the process tree via the output of `ps`.)psz-ww-ozpid=r   zppid=r   zargs=zps not foundN
   c                 s   s    | ]}|  V  qd S )N)strip).0ar   r   r	   	<genexpr>(   s    z'iter_process_parents.<locals>.<genexpr> )argspidppid)
subprocesscheck_outputOSErrorerrnoENOENTr   CalledProcessErroroutputr   
isinstancestrsysgetfilesystemencodinggetdefaultencodingdecodesplittuple
ValueErrorr   rangeKeyErrorr   )r   	max_depthcmdr   eencodingprocesses_mappingline_pidr   r   _processr   r   r	   iter_process_parents   sH   


r2   )r
   )r   r   r    _corer   EnvironmentErrorr   r2   r   r   r   r	   <module>   s    