def read(self, data_path: str, dataset: Optional[str] = 'MultiSQuADRetr', url: Optional[str] = None, *args,
             **kwargs) -> Dict[str, Dict[str, Any]]:
        """

        Args:
            data_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'``.
        """
        if url is not None:
            self.url = url
        elif dataset == 'MultiSQuADRetr':
            self.url = self.url_multi_squad_retr
        elif dataset == 'MultiSQuADRuRetr':
            self.url = self.url_multi_squad_ru_retr
        else:
            raise RuntimeError(f'Dataset {dataset} is unknown')

        data_path = Path(data_path)
        required_files = [f'{dt}.jsonl' for dt in ['train', 'dev']]
        if not data_path.exists():
            data_path.mkdir(parents=True)

        if not all((data_path / f).exists() for f in required_files):
            download_decompress(self.url, data_path)

        dataset = {}
        for f in required_files:
            if 'dev' in f:
                dataset['valid'] = data_path.joinpath(f)
            else:
                dataset['train'] = data_path.joinpath(f)

        return dataset


        Args:
            data_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'``.
        
deeppavlov/dataset_readers/squad_dataset_reader.py