def process_params(self, params):
    if ((self.PARAM_IN_WS not in params) or (not params[self.PARAM_IN_WS])):
        raise ValueError((self.PARAM_IN_WS + ' parameter is required'))
    if self.INVALID_WS_NAME_RE.search(params[self.PARAM_IN_WS]):
        raise ValueError(('Invalid workspace name ' + params[self.PARAM_IN_WS]))
    if (self.PARAM_IN_LIB not in params):
        raise ValueError((self.PARAM_IN_LIB + ' parameter is required'))
    if (type(params[self.PARAM_IN_LIB]) != list):
        raise ValueError((self.PARAM_IN_LIB + ' must be a list'))
    if (not params[self.PARAM_IN_LIB]):
        raise ValueError('At least one reads library must be provided')
    if ((self.PARAM_IN_CS_NAME not in params) or (not params[self.PARAM_IN_CS_NAME])):
        raise ValueError((self.PARAM_IN_CS_NAME + ' parameter is required'))
    if self.INVALID_WS_OBJ_NAME_RE.search(params[self.PARAM_IN_CS_NAME]):
        raise ValueError(('Invalid workspace object name ' + params[self.PARAM_IN_CS_NAME]))
    if (self.PARAM_IN_DNA_SOURCE in params):
        s = params[self.PARAM_IN_DNA_SOURCE]
        if (s not in [self.PARAM_IN_SINGLE_CELL, self.PARAM_IN_METAGENOME, self.PARAM_IN_PLASMID]):
            params[self.PARAM_IN_DNA_SOURCE] = None
    else:
        params[self.PARAM_IN_DNA_SOURCE] = None
    if (self.PARAM_IN_MIN_CONTIG_LENGTH in params):
        if (not isinstance(params[self.PARAM_IN_MIN_CONTIG_LENGTH], int)):
            raise ValueError('min_contig_length must be of type int')
    if ((self.PARAM_IN_KMER_SIZES in params) and (params[self.PARAM_IN_KMER_SIZES] is not None)):
        print(('KMER_SIZES: ' + ','.join((str(num) for num in params[self.PARAM_IN_KMER_SIZES]))))
    if ((self.PARAM_IN_SKIP_ERR_CORRECT in params) and (params[self.PARAM_IN_SKIP_ERR_CORRECT] is not None)):
        print(('SKIP ERR CORRECTION: ' + str(params[self.PARAM_IN_SKIP_ERR_CORRECT])))
def process_params(self, params):
    if ((self.PARAM_IN_WS not in params) or (not params[self.PARAM_IN_WS])):
        raise ValueError((self.PARAM_IN_WS + ' parameter is required'))
    if self.INVALID_WS_NAME_RE.search(params[self.PARAM_IN_WS]):
        raise ValueError(('Invalid workspace name ' + params[self.PARAM_IN_WS]))
    if (self.PARAM_IN_LIB not in params):
        raise ValueError((self.PARAM_IN_LIB + ' parameter is required'))
    if (type(params[self.PARAM_IN_LIB]) != list):
        raise ValueError((self.PARAM_IN_LIB + ' must be a list'))
    if (not params[self.PARAM_IN_LIB]):
        raise ValueError('At least one reads library must be provided')
    if ((self.PARAM_IN_CS_NAME not in params) or (not params[self.PARAM_IN_CS_NAME])):
        raise ValueError((self.PARAM_IN_CS_NAME + ' parameter is required'))
    if self.INVALID_WS_OBJ_NAME_RE.search(params[self.PARAM_IN_CS_NAME]):
        raise ValueError(('Invalid workspace object name ' + params[self.PARAM_IN_CS_NAME]))
    if (self.PARAM_IN_DNA_SOURCE in params):
        s = params[self.PARAM_IN_DNA_SOURCE]
        if (s not in [self.PARAM_IN_SINGLE_CELL, self.PARAM_IN_METAGENOME, self.PARAM_IN_PLASMID]):
            params[self.PARAM_IN_DNA_SOURCE] = None
    else:
        params[self.PARAM_IN_DNA_SOURCE] = None
    if (self.PARAM_IN_MIN_CONTIG_LENGTH in params):
        if (not isinstance(params[self.PARAM_IN_MIN_CONTIG_LENGTH], int)):
            raise ValueError('min_contig_length must be of type int')
    if ((self.PARAM_IN_KMER_SIZES in params) and (params[self.PARAM_IN_KMER_SIZES] is not None)):
        print(('KMER_SIZES: ' + ','.join((str(num) for num in params[self.PARAM_IN_KMER_SIZES]))))
    if ((self.PARAM_IN_SKIP_ERR_CORRECT in params) and (params[self.PARAM_IN_SKIP_ERR_CORRECT] is not None)):
        print(('SKIP ERR CORRECTION: ' + str(params[self.PARAM_IN_SKIP_ERR_CORRECT])))