code: def _garbage_collect(self):
      now = time.time()
      while self._objects and self._total > self._max_size * 1024**2:
          if now - self._objects[0][0] < NEW_FILE_QUARANTINE:
              break
          ctime, size, path = self._objects.pop(0)
          self._total -= size
          try:
              os.remove(path)
          except OSError:
              # maybe another client had already GC'ed the file away
              pass
  
imports: from __future__ import print_function
  from collections import OrderedDict
  import os
  import sys
  import time
  from tempfile import NamedTemporaryFile
  from hashlib import sha1
  from metaflow.datastore import FlowDataStore
  from metaflow.datastore.content_addressed_store import BlobCache
  from metaflow.exception import MetaflowException
  from metaflow.metaflow_config import CLIENT_CACHE_PATH, CLIENT_CACHE_MAX_SIZE, CLIENT_CACHE_MAX_FLOWDATASTORE_COUNT, CLIENT_CACHE_MAX_TASKDATASTORE_COUNT
  from metaflow.plugins import DATASTORES
label_desc: Use image node_id 19 for calling the FileCache obj's underlying member method code with example usage: obj._garbage_collect() without return types