code: def get_cache_base(suffix=None):
      
      if suffix is None:
          suffix = '.distlib'
      if os.name == 'nt' and 'LOCALAPPDATA' in os.environ:
          result = os.path.expandvars('$localappdata')
      else:
          # Assume posix, or old Windows
          result = os.path.expanduser('~')
      # we use 'isdir' instead of 'exists', because we want to
      # fail if there's a file with that name
      if os.path.isdir(result):
          usable = os.access(result, os.W_OK)
          if not usable:
              logger.warning('Directory exists but is not writable: %s', result)
      else:
          try:
              os.makedirs(result)
              usable = True
          except OSError:
              logger.warning('Unable to create %s', result, exc_info=True)
              usable = False
      if not usable:
          result = tempfile.mkdtemp()
          logger.warning('Default location unusable, using %s', result)
      return os.path.join(result, suffix)
docs: Return the default base location for distlib caches. If the directory does
      not exist, it is created. Use the suffix provided for the base directory,
      and default to '.distlib' if it isn't provided.
  
      On Windows, if LOCALAPPDATA is defined in the environment, then it is
      assumed to be a directory, and will be the parent directory of the result.
      On POSIX, and on Windows if LOCALAPPDATA is not defined, the user's home
      directory - using os.expanduser('~') - will be the parent directory of
      the result.
  
      The result is just the directory '.distlib' in the parent directory as
      determined above, or with the name specified with ``suffix``.