class_docstr: FileStorageMixin, applicable to FileXXXStorage
  Subclasses need to have provider_uri, freq, storage_name, file_name attributes
class_docstr_tok: ["FileStorageMixin",",","applicable","to","FileXXXStorage","Subclasses","need","to","have","provider_uri",",","freq",",","storage_name",",","file_name","attributes"]
code: def support_freq(self) -> List[str]:
      _v = "_support_freq"
      if hasattr(self, _v):
          return getattr(self, _v)
      if (
          len(self.provider_uri) == 1
          and C.DEFAULT_FREQ in self.provider_uri
      ):
          freq_l = filter(
              lambda _freq: not _freq.endswith("_future"),
              map(
                  lambda x: x.stem,
                  self.dpm.get_data_uri(C.DEFAULT_FREQ)
                  .joinpath("calendars")
                  .glob("*.txt"),
              ),
          )
      else:
          freq_l = self.provider_uri.keys()
      freq_l = [Freq(freq) for freq in freq_l]
      setattr(self, _v, freq_l)
      return freq_l
  
imports: import struct
  from pathlib import Path
  from typing import Iterable, Union, Dict, Mapping, Tuple, List
  import numpy
  import pandas
  from qlib.utils.time import Freq
  from qlib.utils.resam import resam_calendar
  from qlib.config import C
  from qlib.data.cache import H
  from qlib.log import get_module_logger
  from qlib.data.storage import CalendarStorage, InstrumentStorage, FeatureStorage, CalVT, InstKT, InstVT
label_desc: Use image node_id 3 for calling the FileStorageMixin obj's underlying member method code with example usage: obj.support_freq() and returns: freq_l, getattr