def retrieve_build_cache(
        self,
        cmds: List[str],
        build_dir: str,
        from_sources_filter_func: Callable[[str], bool] = is_source,
    ) -> Tuple[bool, Optional[str]]:
        """
        Retrieves the build cache artifacts for the given build directory,
        so that ideally no compilation needs to take place.

        Args:
            cmds (_type_): Build commands, these will be part of the hash used to calculate a lookup key
            build_dir (str): Build directory. The source files, Makefile and some other files will be hashed and used to
                             determine the build cache key.
            from_sources_filter_func (Callable[[str], bool], optional): Filter function, which may be used to determine which files are being considered source files. Defaults to is_source.

        Returns:
            Tuple[bool, Optional[str]]: A tuple indicating whether the build cache was successfully retrieved, and a cache key (which should be passed on to store_build_cache on rebuild )
        """
        ...

        Retrieves the build cache artifacts for the given build directory,
        so that ideally no compilation needs to take place.

        Args:
            cmds (_type_): Build commands, these will be part of the hash used to calculate a lookup key
            build_dir (str): Build directory. The source files, Makefile and some other files will be hashed and used to
                             determine the build cache key.
            from_sources_filter_func (Callable[[str], bool], optional): Filter function, which may be used to determine which files are being considered source files. Defaults to is_source.

        Returns:
            Tuple[bool, Optional[str]]: A tuple indicating whether the build cache was successfully retrieved, and a cache key (which should be passed on to store_build_cache on rebuild )
        
python/aitemplate/backend/build_cache_base.py