Skip to content

path

django_spire.file.path

FilePathBuilder dataclass

base_folder instance-attribute

app_name = 'Uncategorized' class-attribute instance-attribute

__post_init__

Source code in django_spire/file/path.py
def __post_init__(self) -> None:
    if not self.base_folder:
        message = 'base_folder must not be empty.'
        raise ValueError(message)

build

Source code in django_spire/file/path.py
def build(self, name: str, extension: str, related_field: str = '') -> str:
    if not name:
        message = 'name must not be empty.'
        raise ValueError(message)

    if not extension:
        message = 'extension must not be empty.'
        raise ValueError(message)

    parts = [self.base_folder, self.app_name]

    if related_field:
        parts.append(related_field)

    token = random_64_char_token()
    parts.append(f'{token}_{name}.{extension}')

    return '/'.join(parts)