code: def cache_subdirectory(
          reference_name=None,
          annotation_name=None,
          annotation_version=None):
      
      if reference_name is None:
          reference_name = ""
      if annotation_name is None:
          annotation_name = ""
      if annotation_version is None:
          annotation_version = ""
      reference_dir = join(CACHE_BASE_SUBDIR, reference_name)
      annotation_dir = "%s%s" % (annotation_name, annotation_version)
      return join(reference_dir, annotation_dir)
docs: Which cache subdirectory to use for a given annotation database
      over a particular reference. All arguments can be omitted to just get
      the base subdirectory for all pyensembl cached datasets.