'Create a new dialect with defaults and added parameters.'

@classmethod
def combine(cls, dialect, fmtparams):

    dialect = cls.extend(dialect, fmtparams)
    defaults = cls.defaults()
    specified = dict(((attr, getattr(dialect, attr, None)) for attr in defaults if ((getattr(dialect, attr, None) is not None) or (attr in [u'quotechar', u'delimiter', u'lineterminator', u'quoting']))))
    defaults.update(specified)
    dialect = type(str(u'CombinedDialect'), (cls,), defaults)
    cls.validate(dialect)
    return dialect()
