def traceproperty()

in torcharrow/trace.py [0:0]


def traceproperty(fn):
    """Trace all basic torcharrow functions operating on given types."""

    @functools.wraps(fn)
    def wrapped(*args, **kwargs):
        # # same code as above, except for this line...
        # fn._is_property = True
        # #find the scope::
        # # at least one positional argument must be an IColumn
        # for arg in args:
        #     if isinstance(arg,IColumn):
        #         scope = arg.scope

        # # existing functions
        # trace._nesting_level += 1
        res = fn(*args, **kwargs)
        # trace._nesting_level -= 1

        # # handle top level primitive functions
        # if trace._nesting_level == 0 and trace.is_on():
        #     # print("TRACE PROP", fn, [str(a) for a in args], kwargs)
        #     args_ = []
        #     for a in args:
        #         if isinstance(a, trace._types):
        #             args_.append(Var(a.id))
        #         else:
        #             args_.append(a)
        #     # print("TRACE PROP", fn, [str(a) for a in args_], kwargs)
        #     kwargs_ = {}
        #     for k, v in kwargs.items():
        #         if isinstance(a, trace._types):
        #             kwargs_[k] = args_.Var(v.id)
        #         else:
        #             kwargs_[k] = v
        #     out = "_"
        #     if isinstance(res, trace._types):
        #         out = res.id
        #     trace.append((out, Call(fn, tuple(args_), kwargs_)))

        return res

    return wrapped