Skip to content

slug

validators.slug.slug(value)

Validate whether or not given value is valid slug.

Valid slug can contain only lowercase alphanumeric characters and hyphens. It starts and ends with these lowercase alphanumeric characters.

Examples:

>>> slug('my-slug-2134')
# Output: True
>>> slug('my.slug')
# Output: ValidationError(func=slug, args={'value': 'my.slug'})

Parameters:

Name Type Description Default
value str

Slug string to validate.

required

Returns:

Type Description
Literal[True]

If value is a valid slug.

ValidationError

If value is an invalid slug.

Source code in src/validators/slug.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@validator
def slug(value: str, /):
    """Validate whether or not given value is valid slug.

    Valid slug can contain only lowercase alphanumeric characters and hyphens.
    It starts and ends with these lowercase alphanumeric characters.

    Examples:
        >>> slug('my-slug-2134')
        # Output: True
        >>> slug('my.slug')
        # Output: ValidationError(func=slug, args={'value': 'my.slug'})

    Args:
        value: Slug string to validate.

    Returns:
        (Literal[True]): If `value` is a valid slug.
        (ValidationError): If `value` is an invalid slug.
    """
    return re.match(r"^[a-z0-9]+(?:-[a-z0-9]+)*$", value) if value else False