code: def remove_stable_workers_by_expiration(self):
      expire = time.time() - CONTROLLER_HEART_BEAT_EXPIRATION
      to_delete = []
      for worker_name, w_info in self.worker_info.items():
          if (
              w_info.check_heart_beat
              and w_info.last_heart_beat < expire
          ):
              to_delete.append(worker_name)
  
      for worker_name in to_delete:
          self.remove_worker(worker_name)
  
imports: import argparse
  import asyncio
  import dataclasses
  from enum import Enum, auto
  import json
  import logging
  import time
  from typing import List, Union
  import threading
  from fastapi import FastAPI, Request
  from fastapi.responses import StreamingResponse
  import numpy
  import requests
  import uvicorn
  from ferret.constants import CONTROLLER_HEART_BEAT_EXPIRATION
  from ferret.utils import build_logger, server_error_msg
label_desc: Use image node_id 9 for calling the Controller obj's underlying member method code with example usage: obj.remove_stable_workers_by_expiration() without return types