code: def create_file(self, path, value):
      if self._objects is None:
          # Index objects lazily (when we first need to write to it).
          # This can be an expensive operation
          self._index_objects()
      dirname = os.path.dirname(path)
      try:
          FileCache._makedirs(dirname)
      except:  # noqa E722
          raise FileCacheException(
              "Could not create directory: %s" % dirname
          )
      tmpfile = NamedTemporaryFile(
          dir=dirname, prefix="dlobj", delete=False
      )
      # Now write out the file
      try:
          tmpfile.write(value)
          tmpfile.flush()
          os.rename(tmpfile.name, path)
      except:  # noqa E722
          os.unlink(tmpfile.name)
          raise
      size = os.path.getsize(path)
      self._total += size
      self._objects.append((int(time.time()), size, path))
      self._garbage_collect()
  
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 14 for calling the FileCache obj's underlying member method code with example usage: obj.create_file(path, value) without return types