class_docstr: A launch project specification.
class_docstr_tok: ["A","launch","project","specification","."]
docstr: Checks the source to see if a build is required.
docstr_tok: ["Checks","the","source","to","see","if","a","build","is","required","."]
code: def build_required(self) -> bool:
      """Checks the source to see if a build is required."""
      # since the image tag for images built from jobs
      # is based on the job version index, which is immutable
      # we don't need to build the image for a job if that tag
      # already exists
      if self.source != LaunchSource.JOB:
          return True
      return False
  
imports: import enum
  import json
  import logging
  import os
  import tempfile
  from copy import deepcopy
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, cast
  import wandb
  import wandb.docker
  from wandb.apis.internal import Api
  from wandb.errors import CommError
  from wandb.sdk.launch import utils
  from wandb.sdk.lib.runid import generate_id
  from .errors import LaunchError
  from .utils import LOG_PREFIX, recursive_macro_sub
label_desc: Use image node_id 12 for calling the LaunchProject obj's underlying member method code with example usage: obj.build_required() and returns: False, True