docs: def _get_cache_file_path(self, cache_dir=None):
          """
          Get path for cache file
  
          :param str cache_dir: base path for TLD cache, defaults to data dir
          :raises: CacheFileError when cached directory is not writable for user
          :return: Full path to cached file with TLDs
          :rtype: str
          """
          if cache_dir is None:
              # Tries to get writable cache dir with fallback to users data dir
              # and temp directory
              cache_dir = self._get_writable_cache_dir()
          else:
              if not os.access(cache_dir, os.W_OK):
                  raise CacheFileError("None of cache directories is writable.")
  
          # get directory for cached file
          return os.path.join(cache_dir, self._CACHE_FILE_NAME)