<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def blobs(self, repository_ids=[], reference_names=[], commit_hashes=[]):
 """ Retrieves the blobs of a list of repositories, reference names and commit hashes. So the result will be a DataFrame of all the blobs in the given commits that are in the given references that belong to the given repositories. Calling this function with no arguments is the same as: :param repository_ids: list of repository ids to filter by (optional) :type repository_ids: list of strings :param reference_names: list of reference names to filter by (optional) :type reference_names: list of strings :param commit_hashes: list of hashes to filter by (optional) :type commit_hashes: list of strings :rtype: BlobsDataFrame """

        if not isinstance(repository_ids, list):
            raise Exception("repository_ids must be a list")

        if not isinstance(reference_names, list):
            raise Exception("reference_names must be a list")

        if not isinstance(commit_hashes, list):
            raise Exception("commit_hashes must be a list")

        return BlobsDataFrame(self.__engine.getBlobs(repository_ids,
                                                  reference_names,
                                                  commit_hashes),
                              self.session,
                              self.__implicits)