def __init__(self,<EOL>info_files,<EOL>fetcher=None,<EOL>local_info=None,<EOL>remote_info=None,<EOL>remote_git_info=None,<EOL>cache_ttl=<NUM_LIT>,<EOL>cache_base_path=None):
if fetcher:<EOL><INDENT>self.fetcher = fetcher<EOL><DEDENT>else:<EOL><INDENT>if local_info:<EOL><INDENT>self.fetcher = fetch.LocalInfoFetcher(local_info)<EOL><DEDENT>elif remote_info:<EOL><INDENT>self.fetcher = fetch.RemoteInfoFetcher(<EOL>remote_info,<EOL>cache_ttl=cache_ttl,<EOL>cache_base_path=cache_base_path)<EOL><DEDENT>elif remote_git_info:<EOL><INDENT>self.fetcher = fetch.RemoteGitInfoFetcher(<EOL>remote_git_info,<EOL>cache_ttl=cache_ttl,<EOL>cache_base_path=cache_base_path)<EOL><DEDENT>else:<EOL><INDENT>raise exception.InfoFetcherRequired()<EOL><DEDENT><DEDENT>self.fetcher.di_class = DistroInfo<EOL>self.info_files = info_files<EOL>if isinstance(self.info_files, six.string_types):<EOL><INDENT>self.info_files = [self.info_files]<EOL><DEDENT>
Specify distroinfo instance to query.

:param info_files: info file name or a list of file names
:param fetcher: custom info fetcher,
                implementation of distroinfo.fetch.InfoFetcher,
                you can use *_info params instead for builtins
:param local_info: a shortcut to use LocalInfoFetcher
:param remote_info: a shortcut to use RemoteRawInfoFetcher
:param remote_git_info: a shortcut use RemoteGitInfoFetcher