def read(self, dir_path: str, dataset: Optional[str] = '<STR_LIT>', url: Optional[str] = None, *args,<EOL>**kwargs) -> Dict[str, Dict[str, Any]]:
if url is not None:<EOL><INDENT>self.url = url<EOL><DEDENT>elif dataset == '<STR_LIT>':<EOL><INDENT>self.url = self.url_multi_squad_retr<EOL><DEDENT>elif dataset == '<STR_LIT>':<EOL><INDENT>self.url = self.url_multi_squad_ru_retr<EOL><DEDENT>else:<EOL><INDENT>raise RuntimeError('<STR_LIT>'.format(dataset))<EOL><DEDENT>dir_path = Path(dir_path)<EOL>required_files = ['<STR_LIT>'.format(dt) for dt in ['<STR_LIT:train>', '<STR_LIT>']]<EOL>if not dir_path.exists():<EOL><INDENT>dir_path.mkdir(parents=True)<EOL><DEDENT>if not all((dir_path / f).exists() for f in required_files):<EOL><INDENT>download_decompress(self.url, dir_path)<EOL><DEDENT>dataset = {}<EOL>for f in required_files:<EOL><INDENT>if '<STR_LIT>' in f:<EOL><INDENT>dataset['<STR_LIT>'] = dir_path.joinpath(f)<EOL><DEDENT>else:<EOL><INDENT>dataset['<STR_LIT:train>'] = dir_path.joinpath(f)<EOL><DEDENT><DEDENT>return dataset<EOL>
Args:
    dir_path: path to save data
    dataset: default dataset names: ``'MultiSQuADRetr'``, ``'MultiSQuADRuRetr'``
    url: link to archive with dataset, use url argument if non-default dataset is used

Returns:
    dataset split on train/valid

Raises:
    RuntimeError: if `dataset` is not one of these: ``'MultiSQuADRetr'``, ``'MultiSQuADRuRetr'``.