Skip to content

uuid

validators.uuid.uuid(value)

Return whether or not given value is a valid UUID-v4 string.

This validator is based on WTForms UUID validator.

Examples:

>>> uuid('2bc1c94f-0deb-43e9-92a1-4775189ec9f8')
# Output: True
>>> uuid('2bc1c94f 0deb-43e9-92a1-4775189ec9f8')
# Output: ValidationError(func=uuid, ...)

Parameters:

Name Type Description Default
value Union[str, UUID]

UUID string or object to validate.

required

Returns:

Type Description
Literal[True]

If value is a valid UUID.

ValidationError

If value is an invalid UUID.

Source code in src/validators/uuid.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
@validator
def uuid(value: Union[str, UUID], /):
    """Return whether or not given value is a valid UUID-v4 string.

    This validator is based on [WTForms UUID validator][1].

    [1]: https://github.com/wtforms/wtforms/blob/master/src/wtforms/validators.py#L539

    Examples:
        >>> uuid('2bc1c94f-0deb-43e9-92a1-4775189ec9f8')
        # Output: True
        >>> uuid('2bc1c94f 0deb-43e9-92a1-4775189ec9f8')
        # Output: ValidationError(func=uuid, ...)

    Args:
        value:
            UUID string or object to validate.

    Returns:
        (Literal[True]): If `value` is a valid UUID.
        (ValidationError): If `value` is an invalid UUID.
    """
    if not value:
        return False
    if isinstance(value, UUID):
        return True
    try:
        return UUID(value) or re.match(
            r"^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$", value
        )
    except ValueError:
        return False