# -*- coding: utf-8 -*- from app.visa_free_config_fetchers.base_fetcher import BaseFetcher from app.visa_free_config_fetchers.vfs_fetcher import VFSFetcher from app.visa_free_config_fetchers.bls_fetcher import BLSFetcher from app.visa_free_config_fetchers.tls_fetcher import TLSFetcher from app.visa_free_config_fetchers.pol_fetcher import POLFetcher from app.visa_free_config_fetchers.de_fetcher import DEFetcher from app.visa_free_config_fetchers.bel_fetcher import BELFetcher from app.visa_free_config_fetchers.usa_fetcher import USAFetcher from app.visa_free_config_fetchers.grc_fetcher import GRCFetcher from app.visa_free_config_fetchers.ita_fetcher import ITAFetcher from app.visa_free_config_fetchers.generic_fetcher import GenericFetcher _FETCHER_REGISTRY = {} def register_fetcher(name, fetcher_cls): _FETCHER_REGISTRY[name.lower()] = fetcher_cls def get_fetcher(provider_name): key = provider_name.lower() if key in _FETCHER_REGISTRY: return _FETCHER_REGISTRY[key]() # Dynamic fallback to GenericFetcher for existing metadata return GenericFetcher(key) register_fetcher("vfs", VFSFetcher) register_fetcher("bls", BLSFetcher) register_fetcher("tls", TLSFetcher) register_fetcher("pol", POLFetcher) register_fetcher("de", DEFetcher) register_fetcher("bel", BELFetcher) register_fetcher("usa", USAFetcher) register_fetcher("grc", GRCFetcher) register_fetcher("ita", ITAFetcher)