Create a handle record for a data cart (a custom set of datasets).

        The handle string is made of the prefix passed to tbe library,
        and a hash over all the dataset ids in the cart. This way, if exactly
        the same set of datasets is passed several times, the same handle
        record is created, instead of making a new one.

        :param dict_of_drs_ids_and_pids: A dictionary of all dataset ids
            and their pid strings. If a dataset has no (known) PID, use
            "None".

        :return: The handle string for this data cart.

def create_data_cart_pid(self, dict_of_drs_ids_and_pids):
        '''
        Create a handle record for a data cart (a custom set of datasets).

        The handle string is made of the prefix passed to tbe library,
        and a hash over all the dataset ids in the cart. This way, if exactly
        the same set of datasets is passed several times, the same handle
        record is created, instead of making a new one.

        :param dict_of_drs_ids_and_pids: A dictionary of all dataset ids
            and their pid strings. If a dataset has no (known) PID, use
            "None".

        :return: The handle string for this data cart.
        '''
        assistant = esgfpid.assistant.datacart.DataCartAssistant(
            prefix=self.prefix,
            coupler=self.__coupler
        )
        return assistant.make_data_cart_pid(dict_of_drs_ids_and_pids)