import os


def todo(msg: str = "Not implemented"):
    def inner(func):
        def inner2(*args, **kwargs):
            if "PYNE_DEBUG" in os.environ:
                print(f"[{func.__name__}] TODO: {msg}")
            return func(*args, **kwargs)

        return inner2

    return inner


def wip(func):
    def inner(*args, **kwargs):
        if "PYNE_DEBUG" in os.environ:
            print(
                f"Called work in progress function {func.__name__}. Functionality may change in the future."
            )
        return func(*args, **kwargs)

    return inner


def deprecated(func):
    @functools.wraps(func)
    def inner(*args, **kwargs):
        if "PYNE_DEBUG" in os.environ:
            print(
                f"\x1b[31mWarning:\x1b[0m The function {inner.__name__} is deprecated."
            )
        return func(*args, **kwargs)

    return inner