import os
from pathlib import Path

import settings

ROOT = Path("/srv/uploads")
LAYOUT = settings.Layout()


def literal(root):
    return root / "cache" / "index.json"


def bare_name(root, name):
    return os.path.join(root, name)


def module_constant(root):
    return root / settings.LOCK_PATH


def program_constant(root):
    return root / LAYOUT.routing


def digest_prefix(root, digest):
    return root / digest[:2] / digest


def not_a_root(folder, entry):
    return folder / entry["path"]


def checked(root, entry):
    target = (root / Path(entry["path"]).name).resolve()
    target.relative_to(Path(root).resolve())
    return target


def division(total, row):
    return total / row["count"]
