Skip to content
Snippets Groups Projects
evil.py 1.06 KiB
Newer Older
# -*- coding: utf-8 -*-


def ccall(func, pass_name=False):
    """
    def arguments(): pass
    res = func(False, None, 3, key="word", arguments=arguments)``
    # becomes
    class res(ccall(func), False, None, 3):
        key = "word"
        def arguments(): pass
    """
Peter Fackeldey's avatar
Peter Fackeldey committed

    class metaclass(type):
        def __new__(cls, name, a, d):
            d.pop("__module__", 0)
            if pass_name:
                d["__name__"] = name
            return func(*a[1:], **d)
Peter Fackeldey's avatar
Peter Fackeldey committed

        def __call__(*a, **d):
            return func(*a, **d)
Peter Fackeldey's avatar
Peter Fackeldey committed

    return type.__new__(metaclass, func.__name__, (), {})


def pin(loc, *skip):
    """
    def __init__(self, will, *have, **all):
        def the(): pass
        variables = 1
        del but
        pin(locals())
        these = 2
    """
    loc = dict(loc)
Peter Fackeldey's avatar
Peter Fackeldey committed
    loc.pop("self").__dict__.update(
        {
            k: v
            for k, v in loc.items()
            if not any(
                s is k or s is True and k.startswith("_") or s is v and isinstance(s, object)
                for s in skip
            )
        }
    )