Compose absolute path for given `pub`.

    Args:
        pub (obj): :class:`.DBPublication` instance.
        uuid_url (bool, default False): Compose URL using UUID.

    Returns:
        str: Absolute url-path of the publication, without server's address \
             and protocol.

    Raises:
        PrivatePublicationError: When the `pub` is private publication.

def compose_path(pub, uuid_url=False):
    """
    Compose absolute path for given `pub`.

    Args:
        pub (obj): :class:`.DBPublication` instance.
        uuid_url (bool, default False): Compose URL using UUID.

    Returns:
        str: Absolute url-path of the publication, without server's address \
             and protocol.

    Raises:
        PrivatePublicationError: When the `pub` is private publication.
    """
    if uuid_url:
        return join(
            "/",
            UUID_DOWNLOAD_KEY,
            str(pub.uuid)
        )

    return join(
        "/",
        DOWNLOAD_KEY,
        basename(pub.file_pointer),
        basename(pub.filename)
    )