from typing import TYPE_CHECKING, List, Iterable, Optional, Tuple

from rastervision.pipeline.config import register_config, Config

if TYPE_CHECKING:
    from rastervision.core.analyzer.analyzer import Analyzer  # noqa


@register_config('analyzer')
class AnalyzerConfig(Config):
    """Configure an :class:`.Analyzer`."""

    def build(self, scene_group: Optional[Tuple[str, Iterable[str]]] = None
              ) -> 'Analyzer':
        pass

    def get_bundle_filenames(self) -> List[str]:
        """Returns the names of files that should be included in a model bundle.

        The files are assumed to be in the analyze/ directory generated by the analyze
        command. Note that only the names, not the full paths should be returned.
        """
        return []
