
    0Vh                     :    d Z ddlZddlmZ ej                  Zd Zy)z3Internal helper for running tests on Windows Bazel.    N)flagsc                    t         j                  dk(  r| dz  } t         j                  j                  t        j
                  d      }t         j                  d   }| d|  }t        |      5 }|D ]H  }|j                         j                  d      }t        |      dk7  r1||d   k(  s:|d	   c cd
d
d
       S  	 d
d
d
       t        dj                  | |            t        }t        t        j!                  d      d	z         D ]!  }t         j                  j#                  |      }# |}	t         j                  j                  |	|       S # 1 sw Y   xY w)a  Returns the executable path of a py_binary.

  This returns the executable path of a py_binary that is in another Bazel
  target's data dependencies.

  On Linux/macOS, the path and __file__ has the same root directory.
  On Windows, bazel builds an .exe file and we need to use the MANIFEST file
  the location the actual binary.

  Args:
    py_binary_name: string, the name of a py_binary that is in another Bazel
        target's data dependencies.

  Raises:
    RuntimeError: Raised when it cannot locate the executable path.
  ntz.exeMANIFESTTEST_WORKSPACE/    r      Nz8Cannot locate executable path for {}, MANIFEST file: {}..)osnamepathjoinFLAGStest_srcdirenvironopenstripsplitlenRuntimeErrorformat__file__range__name__countdirname)
py_binary_namemanifest_fileworkspace_namemanifest_entrymanifest_fdlinetokensr   _root_directorys
             N/home/dcms/DCMS/lib/python3.12/site-packages/absl/testing/_bazelize_command.pyget_executable_pathr)      sB   $ WW_fNGGLL!2!2J?MZZ 01N&'q(89N	m	  $##C(v;!
VAY&
  BIIM	+, , D 8>>#&*+ #WW__T"d# N77<<77+ s   ,<E)E9EE)__doc__r   abslr   r   r)        r(   <module>r.      s    : 	 ,8r-   