def validate_unique(values): if not isdistinct(values): duplicates = pipe( values, frequencies, # get the frequencies partial(valfilter, lambda v: v > 1), # filter to ones that occure > 1 sorted, # sort them tuple, # cast them to an immutiable form ) raise ValidationError( "The values provided are not unique. Duplicates: {0}".format( ', '.join((str(value) for value in duplicates))))
def test_isdistinct(): assert isdistinct([1, 2, 3]) is True assert isdistinct([1, 2, 1]) is False assert isdistinct("Hello") is False assert isdistinct("World") is True assert isdistinct(iter([1, 2, 3])) is True assert isdistinct(iter([1, 2, 1])) is False
def test_isdistinct(): assert isdistinct([1, 2, 3]) is True assert isdistinct([1, 2, 1]) is False assert isdistinct("Hello") is False assert isdistinct("World") is True assert isdistinct(iter([1, 2, 3])) is True assert isdistinct(iter([1, 2, 1])) is False
def validate_unique(values, title="Value"): if not isdistinct(values): duplicates = pipe( values, frequencies, # get the frequencies partial(valfilter, lambda v: v > 1), # filter to ones that occure > 1 sorted, # sort them tuple, # cast them to an immutiable form ) raise ValidationError( "{title} does not contain unique items. Duplicates: {0}".format( ', '.join((str(value) for value in duplicates)), title=title, ))
def validate_unique(values, title="Value"): if not isdistinct(values): duplicates = pipe( values, frequencies, # get the frequencies partial(valfilter, lambda v: v > 1), # filter to ones that occure > 1 sorted, # sort them tuple, # cast them to an immutiable form ) raise ValidationError( "{title} does not contain unique items. Duplicates: {0}".format( ', '.join((str(value) for value in duplicates)), title=title, ) )