code: def validate_baton_binaries_location(baton_binaries_directory: str) -> Optional[Exception]:
          
          if os.path.isfile(baton_binaries_directory):
              return ValueError("The given baton binary directory (%s) is not a directory! Be sure to provide the path "
                                "to the directory containing the baton binaries, not the binary named `baton`")
  
          for baton_binary in BatonBinary:
              binary_location = os.path.join(baton_binaries_directory, baton_binary.value)
              if not (os.path.isfile(binary_location) and os.access(binary_location, os.X_OK)):
                  return ValueError("The given baton binary directory (%s) did not contain all of the required binaries "
                                    "with executable permissions (%s)"
                                    % (baton_binaries_directory, [name.value for name in BatonBinary]))
  
          return None
docs: Validates that the given directory contains the baton binaries required to use the runner.
          :param baton_binaries_directory: the directory to check
          :return: exception that describes the issue else `None` if no issues