code: def batch_predict(dataset, model_dir, output_csv=None, output_bq_table=None, cloud=None):
    
    with warnings.catch_warnings():
      warnings.simplefilter("ignore")
      job = batch_predict_async(dataset, model_dir, output_csv, output_bq_table, cloud)
      job.wait()
      print(job.state)
docs: Blocking version of batch_predict_async(). The only difference is that it blocks the caller
       until the job finishes, and it does not have a return value.