Home | History | Annotate | Download | only in Objects

Lines Matching defs:closure

134 PyFunction_SetClosure(PyObject *op, PyObject *closure)
140 if (closure == Py_None)
141 closure = NULL;
142 else if (PyTuple_Check(closure)) {
143 Py_INCREF(closure);
147 "expected tuple for closure, got '%.100s'",
148 closure->ob_type->tp_name);
151 Py_XSETREF(((PyFunctionObject *)op)->func_closure, closure);
345 "function(code, globals[, name[, argdefs[, closure]]])\n\
350 The optional closure tuple supplies the bindings for free variables.");
353 closure must correspond to the free variables of the code object.
356 closure = NULL
358 len(closure) == len(code.co_freevars)
359 for every elt in closure, type(elt) == cell
369 PyObject *closure = Py_None;
373 "argdefs", "closure", 0};
379 &name, &defaults, &closure))
392 if (!PyTuple_Check(closure)) {
393 if (nfree && closure == Py_None) {
395 "arg 5 (closure) must be tuple");
398 else if (closure != Py_None) {
400 "arg 5 (closure) must be None or tuple");
405 /* check that the closure is well-formed */
406 nclosure = closure == Py_None ? 0 : PyTuple_GET_SIZE(closure);
409 "%s requires closure of length %zd, not %zd",
415 PyObject *o = PyTuple_GET_ITEM(closure, i);
418 "arg 5 (closure) expected cell, found %s",
437 if (closure != Py_None) {
438 Py_INCREF(closure);
439 newfunc->func_closure = closure;