def get_file(self, repository, path, revision, base_commit_id, *args,
                 **kwargs):
        """Get a file from ReviewBoardGateway.

        This will perform an API request to fetch the contents of a file.
        """
        url = self._get_file_url(repository, revision, base_commit_id, path)

        try:
            data, is_new = self._api_get(url)
            return data
        except (__HOLE__, URLError) as e:
            if e.code == 404:
                raise FileNotFoundError(path, revision)
            else:
                logging.warning('Failed to get file from %s: %s',
                                url, e, exc_info=1)
                raise SCMError(six.text_type(e))
dataset/ETHPy150Open reviewboard/reviewboard/reviewboard/hostingsvcs/rbgateway.py/ReviewBoardGateway.get_file