ó
    €Ï5  ã                   óR   • S r SSKJr  SSKJr  SSKJr  SSKJr  SSKrSSKJr  S r	g)	z(Helper functions for executing binaries.é    )Úabsolute_import)Úprint_function)Údivision)Úunicode_literalsN)Ú	exceptionc                 ó|  • [         R                  " U [         R                  [         R                  S9nUR                  5       u  p#Ub%  [	        U[
        5      (       d  UR                  5       nUb%  [	        U[
        5      (       d  UR                  5       nUR                  S:w  a  [        R                  " U5      eX#4$ )zêRuns external terminal command.

Args:
  command_and_flags (List[str]): Ordered command and flag strings.

Returns:
  (stdout (str|None), stderr (str|None)) from running command.

Raises:
  OSError for any issues running the command.
)ÚstdoutÚstderrr   )
Ú
subprocessÚPopenÚPIPEÚcommunicateÚ
isinstanceÚstrÚdecodeÚ
returncoder   ÚExternalBinaryError)Úcommand_and_flagsÚcommand_processÚcommand_stdoutÚcommand_stderrs       Ú-platform/gsutil/gslib/utils/execution_util.pyÚExecuteExternalCommandr      s¢   € ô ×$Ò$Ð%6Ü,6¯O©OÜ,6¯O©Oñ=€/ð $3×#>Ñ#>Ó#@Ñ €.ð Ñ¬
°>Ä3×(GÑ(GØ#×*Ñ*Ó,€NØÑ¬
°>Ä3×(GÑ(GØ#×*Ñ*Ó,€Nà×Ñ 1Ó$Ü
×
'Ò
'¨Ó
7Ð7à	Ð	'Ð'ó    )
Ú__doc__Ú
__future__r   r   r   r   r   Úgslibr   r   © r   r   Ú<module>r      s!   ðñ /å &Ý %Ý Ý 'ã å ó(r   