code: def find_missing_expected_jobs(self) -> List[str]:
      # Map of job name: has seen in completed jobs
      seen_expected_jobs = {name: False for name in EXPECTED_JOBS}
      logging.info(f"Expected to see jobs: {seen_expected_jobs}")
  
      missing_expected_jobs = []
      for job in self.ci_jobs():
          seen_expected_jobs[job["name"]] = True
  
      for name, seen in seen_expected_jobs.items():
          if not seen:
              missing_expected_jobs.append(name)
  
      return missing_expected_jobs
  
imports: import os
  import json
  import argparse
  import sys
  import warnings
  import logging
  import traceback
  import re
  from typing import Dict, Any, List, Optional, Callable, Union
  from pathlib import Path
  from git_utils import git, GitHubRepo, parse_remote, post
  from cmd_utils import init_log
label_desc: Use image node_id 21 for calling the PR obj's underlying member method code with example usage: obj.find_missing_expected_jobs() and returns: missing_expected_jobs