'returns a new SelfWrapper object, where all commands spawned from it
have the baked_args kwargs set on them by default'

def __call__(self, **kwargs):

    baked_args = self.__env.baked_args.copy()
    baked_args.update(kwargs)
    new_mod = self.__class__(self.__self_module, baked_args)
    parent = inspect.stack()[1]
    code = parent[4][0].strip()
    parsed = ast.parse(code)
    module_name = parsed.body[0].targets[0].id
    if (module_name == __name__):
        raise RuntimeError("Cannot    use    the    name    'sh'    as    an    execution    context")
    sys.modules.pop(module_name, None)
    return new_mod
