public static object Proxy(object @object, object callback) { object callable; if ((@object is ICallable) || Ops.TryGetAttr(@object, SymbolTable.Call, out callable)) { return(PythonCallableWeakRefProxy.MakeNew(@object, callback)); } else { return(PythonWeakRefProxy.MakeNew(@object, callback)); } }