o
    Vh@                     @  s   U d dl mZ d dlZd dlZd dlZd dlZd dlmZmZ d dl	m
Z
 ddlmZ G dd dejZejZeeZdd	d%ddZejdedZejdd dZd&ddZd'd(ddZejrided< d ed!< nd"d# Zg d$ZdS ))    )annotationsN)MappingSequence)partial   )StrPathc                   @  s   e Zd Zdddd	d
ZdS )_LoggerNoriginmessagestrr
   tuple[str, ...] | NonereturnNonec                C  s   d S N )selfr   r
   r   r   ^/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/build/_ctx.py__call__   s    z_Logger.__call__r   r   r
   r   r   r   )__name__
__module____qualname__r   r   r   r   r   r      s    r   r	   r   r   r
   r   r   r   c                C  s"   |d u rt jtj| dd d S d S )N   )
stacklevel)_default_loggerlogloggingINFO)r   r
   r   r   r   _log_default   s   r   LOGGER)default	VERBOSITYerrorsubprocess.CalledProcessErrorc                 C  sZ   t  }|t| jdd dD ]}t| |}|r*|t|tr#| n|d|fd qd S )N
subprocesscmdr	   stdoutstderrr&   )	r    getr&   list2cmdliner'   getattr
isinstancebytesdecode)r#   r   stream_namestreamr   r   r   log_subprocess_error   s   
"r3   r'   Sequence[StrPath]envMapping[str, str] | Nonec              
     s.  t  }|rxdd l}t dfdd	|jjd
dR tj| d|tjtjd-t	| dd |j
 fdddD  
 }|rOt|jW d    n1 sYw   Y  W d    d S W d    d S 1 sqw   Y  d S ztj| dd|d W d S  tjy } zt|  d }~ww )Nr   r1   r   r2   typing.IO[str]r   r   c                   s   |D ]
} |d| fd qd S )Nr&   r	   r   )r1   r2   line)r   r   r   
log_stream2   s   z"run_subprocess.<locals>.log_streamr   )max_workerszutf-8)encodingr5   r)   r*   r%   r	   c              
     s$   g | ]}  t|t|qS r   )submitr   r-   ).0n)executorr9   processr   r   
<listcomp>>   s   $ z"run_subprocess.<locals>.<listcomp>r(   T)capture_outputcheckr5   )r1   r   r2   r7   r   r   )r"   r+   concurrent.futuresr    futuresThreadPoolExecutorr&   PopenPIPEr,   waitCalledProcessErrorargsrunr3   )r'   r5   	verbosity
concurrentcoder#   r   )r?   r   r9   r@   r   run_subprocess*   s2   PrP   r   boolrM   c                 C  s(   | dkrt  S | dkrt S t| )Nr   rM   )r    r+   r"   AttributeError)namer   r   r   __getattr__S   s
   rT   )r3   r   rP   r    rM   r"   r   )r#   r$   r   r   r   )r'   r4   r5   r6   r   r   )
__future__r   contextvarsr   r&   typingcollections.abcr   r   	functoolsr   _typesr   Protocolr   __spec__parent_package_name	getLoggerr   r   
ContextVarr    r"   r3   rP   TYPE_CHECKING__annotations__rT   __all__r   r   r   r   <module>   s*    

#
