Lines Matching defs:lz
323 groupby_reduce(groupbyobject *lz, PyObject *Py_UNUSED(ignored))
329 if (lz->tgtkey && lz->currkey && lz->currvalue)
330 value = Py_BuildValue("O(OO)(OOO)", Py_TYPE(lz),
331 lz->it, lz->keyfunc, lz->currkey, lz->currvalue, lz->tgtkey);
333 value = Py_BuildValue("O(OO)", Py_TYPE(lz),
334 lz->it, lz->keyfunc);
342 groupby_setstate(groupbyobject *lz, PyObject *state)
353 Py_XSETREF(lz->currkey, currkey);
355 Py_XSETREF(lz->currvalue, currvalue);
357 Py_XSETREF(lz->tgtkey, tgtkey);
504 _grouper_reduce(_grouperobject *lz, PyObject *Py_UNUSED(ignored))
506 if (((groupbyobject *)lz->parent)->currgrouper != lz) {
509 return Py_BuildValue("O(OO)", Py_TYPE(lz), lz->parent, lz->tgtkey);
1095 cycleobject *lz;
1109 lz = (cycleobject *)type->tp_alloc(type, 0);
1110 if (lz == NULL) {
1115 lz->it = it;
1116 lz->saved = saved;
1117 lz->index = 0;
1118 lz->firstpass = 0;
1120 return (PyObject *)lz;
1124 cycle_dealloc(cycleobject *lz)
1126 PyObject_GC_UnTrack(lz);
1127 Py_XDECREF(lz->it);
1128 Py_XDECREF(lz->saved);
1129 Py_TYPE(lz)->tp_free(lz);
1133 cycle_traverse(cycleobject *lz, visitproc visit, void *arg)
1135 Py_VISIT(lz->it);
1136 Py_VISIT(lz->saved);
1141 cycle_next(cycleobject *lz)
1145 if (lz->it != NULL) {
1146 item = PyIter_Next(lz->it);
1148 if (lz->firstpass)
1150 if (PyList_Append(lz->saved, item)) {
1159 Py_CLEAR(lz->it);
1161 if (PyList_GET_SIZE(lz->saved) == 0)
1163 item = PyList_GET_ITEM(lz->saved, lz->index);
1164 lz->index++;
1165 if (lz->index >= PyList_GET_SIZE(lz->saved))
1166 lz->index = 0;
1172 cycle_reduce(cycleobject *lz, PyObject *Py_UNUSED(ignored))
1175 if (lz->it == NULL) {
1176 PyObject *it = PyObject_GetIter(lz->saved);
1179 if (lz->index != 0) {
1181 "n", lz->index);
1188 return Py_BuildValue("O(N)(OO)", Py_TYPE(lz), it, lz->saved, Py_True);
1190 return Py_BuildValue("O(O)(OO)", Py_TYPE(lz), lz->it, lz->saved,
1191 lz->firstpass ? Py_True : Py_False);
1195 cycle_setstate(cycleobject *lz, PyObject *state)
1208 Py_XSETREF(lz->saved, saved);
1209 lz->firstpass = firstpass != 0;
1210 lz->index = 0;
1292 dropwhileobject *lz;
1300 lz = (dropwhileobject *)type->tp_alloc(type, 0);
1301 if (lz == NULL) {
1306 lz->func = func;
1307 lz->it = it;
1308 lz->start = 0;
1310 return (PyObject *)lz;
1314 dropwhile_dealloc(dropwhileobject *lz)
1316 PyObject_GC_UnTrack(lz);
1317 Py_XDECREF(lz->func);
1318 Py_XDECREF(lz->it);
1319 Py_TYPE(lz)->tp_free(lz);
1323 dropwhile_traverse(dropwhileobject *lz, visitproc visit, void *arg)
1325 Py_VISIT(lz->it);
1326 Py_VISIT(lz->func);
1331 dropwhile_next(dropwhileobject *lz)
1334 PyObject *it = lz->it;
1343 if (lz->start == 1)
1346 good = PyObject_CallOneArg(lz->func, item);
1354 lz->start = 1;
1364 dropwhile_reduce(dropwhileobject *lz, PyObject *Py_UNUSED(ignored))
1366 return Py_BuildValue("O(OO)l", Py_TYPE(lz), lz->func, lz->it, lz->start);
1370 dropwhile_setstate(dropwhileobject *lz, PyObject *state)
1375 lz->start = start;
1455 takewhileobject *lz;
1463 lz = (takewhileobject *)type->tp_alloc(type, 0);
1464 if (lz == NULL) {
1469 lz->func = func;
1470 lz->it = it;
1471 lz->stop = 0;
1473 return (PyObject *)lz;
1477 takewhile_dealloc(takewhileobject *lz)
1479 PyObject_GC_UnTrack(lz);
1480 Py_XDECREF(lz->func);
1481 Py_XDECREF(lz->it);
1482 Py_TYPE(lz)->tp_free(lz);
1486 takewhile_traverse(takewhileobject *lz, visitproc visit, void *arg)
1488 Py_VISIT(lz->it);
1489 Py_VISIT(lz->func);
1494 takewhile_next(takewhileobject *lz)
1497 PyObject *it = lz->it;
1500 if (lz->stop == 1)
1507 good = PyObject_CallOneArg(lz->func, item);
1518 lz->stop = 1;
1523 takewhile_reduce(takewhileobject *lz, PyObject *Py_UNUSED(ignored))
1525 return Py_BuildValue("O(OO)l", Py_TYPE(lz), lz->func, lz->it, lz->stop);
1529 takewhile_reduce_setstate(takewhileobject *lz, PyObject *state)
1535 lz->stop = stop;
1612 isliceobject *lz;
1676 lz = (isliceobject *)type->tp_alloc(type, 0);
1677 if (lz == NULL) {
1681 lz->it = it;
1682 lz->next = start;
1683 lz->stop = stop;
1684 lz->step = step;
1685 lz->cnt = 0L;
1687 return (PyObject *)lz;
1691 islice_dealloc(isliceobject *lz)
1693 PyObject_GC_UnTrack(lz);
1694 Py_XDECREF(lz->it);
1695 Py_TYPE(lz)->tp_free(lz);
1699 islice_traverse(isliceobject *lz, visitproc visit, void *arg)
1701 Py_VISIT(lz->it);
1706 islice_next(isliceobject *lz)
1709 PyObject *it = lz->it;
1710 Py_ssize_t stop = lz->stop;
1718 while (lz->cnt < lz->next) {
1723 lz->cnt++;
1725 if (stop != -1 && lz->cnt >= stop)
1730 lz->cnt++;
1731 oldnext = lz->next;
1734 lz->next += (size_t)lz->step;
1735 if (lz->next < oldnext || (stop != -1 && lz->next > stop))
1736 lz->next = stop;
1740 Py_CLEAR(lz->it);
1745 islice_reduce(isliceobject *lz, PyObject *Py_UNUSED(ignored))
1752 if (lz->it == NULL) {
1762 return Py_BuildValue("O(Nn)n", Py_TYPE(lz), empty_it, 0, 0);
1764 if (lz->stop == -1) {
1768 stop = PyLong_FromSsize_t(lz->stop);
1772 return Py_BuildValue("O(OnNn)n", Py_TYPE(lz),
1773 lz->it, lz->next, stop, lz->step,
1774 lz->cnt);
1778 islice_setstate(isliceobject *lz, PyObject *state)
1784 lz->cnt = cnt;
1874 starmapobject *lz;
1882 lz = (starmapobject *)type->tp_alloc(type, 0);
1883 if (lz == NULL) {
1888 lz->func = func;
1889 lz->it = it;
1891 return (PyObject *)lz;
1895 starmap_dealloc(starmapobject *lz)
1897 PyObject_GC_UnTrack(lz);
1898 Py_XDECREF(lz->func);
1899 Py_XDECREF(lz->it);
1900 Py_TYPE(lz)->tp_free(lz);
1904 starmap_traverse(starmapobject *lz, visitproc visit, void *arg)
1906 Py_VISIT(lz->it);
1907 Py_VISIT(lz->func);
1912 starmap_next(starmapobject *lz)
1916 PyObject *it = lz->it;
1928 result = PyObject_Call(lz->func, args, NULL);
1934 starmap_reduce(starmapobject *lz, PyObject *Py_UNUSED(ignored))
1937 return Py_BuildValue("O(OO)", Py_TYPE(lz), lz->func, lz->it);
2004 chainobject *lz;
2006 lz = (chainobject *)type->tp_alloc(type, 0);
2007 if (lz == NULL) {
2012 lz->source = source;
2013 lz->active = NULL;
2014 return (PyObject *)lz;
2055 chain_dealloc(chainobject *lz)
2057 PyObject_GC_UnTrack(lz);
2058 Py_XDECREF(lz->active);
2059 Py_XDECREF(lz->source);
2060 Py_TYPE(lz)->tp_free(lz);
2064 chain_traverse(chainobject *lz, visitproc visit, void *arg)
2066 Py_VISIT(lz->source);
2067 Py_VISIT(lz->active);
2072 chain_next(chainobject *lz)
2076 /* lz->source is the iterator of iterables. If it's NULL, we've already
2077 * consumed them all. lz->active is the current iterator. If it's NULL,
2078 * we should grab a new one from lz->source. */
2079 while (lz->source != NULL) {
2080 if (lz->active == NULL) {
2081 PyObject *iterable = PyIter_Next(lz->source);
2083 Py_CLEAR(lz->source);
2086 lz->active = PyObject_GetIter(iterable);
2088 if (lz->active == NULL) {
2089 Py_CLEAR(lz->source);
2093 item = (*Py_TYPE(lz->active)->tp_iternext)(lz->active);
2102 /* lz->active is consumed, try with the next iterable. */
2103 Py_CLEAR(lz->active);
2110 chain_reduce(chainobject *lz, PyObject *Py_UNUSED(ignored))
2112 if (lz->source) {
2117 if (lz->active) {
2118 return Py_BuildValue("O()(OO)", Py_TYPE(lz), lz->source, lz->active);
2120 return Py_BuildValue("O()(O)", Py_TYPE(lz), lz->source);
2123 return Py_BuildValue("O()", Py_TYPE(lz)); /* exhausted */
2129 chain_setstate(chainobject *lz, PyObject *state)
2146 Py_XSETREF(lz->source, source);
2148 Py_XSETREF(lz->active, active);
2230 productobject *lz;
2292 lz = (productobject *)type->tp_alloc(type, 0);
2293 if (lz == NULL)
2296 lz->pools = pools;
2297 lz->indices = indices;
2298 lz->result = NULL;
2299 lz->stopped = 0;
2301 return (PyObject *)lz;
2311 product_dealloc(productobject *lz)
2313 PyObject_GC_UnTrack(lz);
2314 Py_XDECREF(lz->pools);
2315 Py_XDECREF(lz->result);
2316 if (lz->indices != NULL)
2317 PyMem_Free(lz->indices);
2318 Py_TYPE(lz)->tp_free(lz);
2322 product_sizeof(productobject *lz, void *unused)
2326 res = _PyObject_SIZE(Py_TYPE(lz));
2327 res += PyTuple_GET_SIZE(lz->pools) * sizeof(Py_ssize_t);
2334 product_traverse(productobject *lz, visitproc visit, void *arg)
2336 Py_VISIT(lz->pools);
2337 Py_VISIT(lz->result);
2342 product_next(productobject *lz)
2347 PyObject *pools = lz->pools;
2348 PyObject *result = lz->result;
2352 if (lz->stopped)
2361 lz->result = result;
2371 Py_ssize_t *indices = lz->indices;
2379 lz->result = result;
2424 lz->stopped = 1;
2429 product_reduce(productobject *lz, PyObject *Py_UNUSED(ignored))
2431 if (lz->stopped) {
2432 return Py_BuildValue("O(())", Py_TYPE(lz));
2433 } else if (lz->result == NULL) {
2434 return Py_BuildValue("OO", Py_TYPE(lz), lz->pools);
2442 n = PyTuple_GET_SIZE(lz->pools);
2447 PyObject* index = PyLong_FromSsize_t(lz->indices[i]);
2454 return Py_BuildValue("OON", Py_TYPE(lz), lz->pools, indices);
2459 product_setstate(productobject *lz, PyObject *state)
2464 n = PyTuple_GET_SIZE(lz->pools);
2477 pool = PyTuple_GET_ITEM(lz->pools, i);
2480 lz->stopped = 1;
2488 lz->indices[i] = index;
2495 PyObject *pool = PyTuple_GET_ITEM(lz->pools, i);
2496 PyObject *element = PyTuple_GET_ITEM(pool, lz->indices[i]);
2500 Py_XSETREF(lz->result, result);
2760 combinations_reduce(combinationsobject *lz, PyObject *Py_UNUSED(ignored))
2762 if (lz->result == NULL) {
2763 return Py_BuildValue("O(On)", Py_TYPE(lz), lz->pool, lz->r);
2764 } else if (lz->stopped) {
2765 return Py_BuildValue("O(()n)", Py_TYPE(lz), lz->r);
2771 indices = PyTuple_New(lz->r);
2774 for (i=0; i<lz->r; i++)
2776 PyObject* index = PyLong_FromSsize_t(lz->indices[i]);
2784 return Py_BuildValue("O(On)N", Py_TYPE(lz), lz->pool, lz->r, indices);
2789 combinations_setstate(combinationsobject *lz, PyObject *state)
2793 Py_ssize_t n = PyTuple_GET_SIZE(lz->pool);
2795 if (!PyTuple_Check(state) || PyTuple_GET_SIZE(state) != lz->r) {
2800 for (i=0; i<lz->r; i++) {
2807 max = i + n - lz->r;
2813 lz->indices[i] = index;
2816 result = PyTuple_New(lz->r);
2819 for (i=0; i<lz->r; i++) {
2820 PyObject *element = PyTuple_GET_ITEM(lz->pool, lz->indices[i]);
2825 Py_XSETREF(lz->result, result);
3091 cwr_reduce(cwrobject *lz, PyObject *Py_UNUSED(ignored))
3093 if (lz->result == NULL) {
3094 return Py_BuildValue("O(On)", Py_TYPE(lz), lz->pool, lz->r);
3095 } else if (lz->stopped) {
3096 return Py_BuildValue("O(()n)", Py_TYPE(lz), lz->r);
3102 indices = PyTuple_New(lz->r);
3105 for (i=0; i<lz->r; i++) {
3106 PyObject* index = PyLong_FromSsize_t(lz->indices[i]);
3114 return Py_BuildValue("O(On)N", Py_TYPE(lz), lz->pool, lz->r, indices);
3119 cwr_setstate(cwrobject *lz, PyObject *state)
3124 if (!PyTuple_Check(state) || PyTuple_GET_SIZE(state) != lz->r)
3130 n = PyTuple_GET_SIZE(lz->pool);
3131 for (i=0; i<lz->r; i++) {
3142 lz->indices[i] = index;
3144 result = PyTuple_New(lz->r);
3147 for (i=0; i<lz->r; i++) {
3148 PyObject *element = PyTuple_GET_ITEM(lz->pool, lz->indices[i]);
3152 Py_XSETREF(lz->result, result);
3629 accumulateobject *lz;
3637 lz = (accumulateobject *)type->tp_alloc(type, 0);
3638 if (lz == NULL) {
3645 lz->binop = binop;
3647 lz->total = NULL;
3648 lz->it = it;
3650 lz->initial = initial;
3651 return (PyObject *)lz;
3655 accumulate_dealloc(accumulateobject *lz)
3657 PyObject_GC_UnTrack(lz);
3658 Py_XDECREF(lz->binop);
3659 Py_XDECREF(lz->total);
3660 Py_XDECREF(lz->it);
3661 Py_XDECREF(lz->initial);
3662 Py_TYPE(lz)->tp_free(lz);
3666 accumulate_traverse(accumulateobject *lz, visitproc visit, void *arg)
3668 Py_VISIT(lz->binop);
3669 Py_VISIT(lz->it);
3670 Py_VISIT(lz->total);
3671 Py_VISIT(lz->initial);
3676 accumulate_next(accumulateobject *lz)
3680 if (lz->initial != Py_None) {
3681 lz->total = lz->initial;
3683 lz->initial = Py_None;
3684 Py_INCREF(lz->total);
3685 return lz->total;
3687 val = (*Py_TYPE(lz->it)->tp_iternext)(lz->it);
3691 if (lz->total == NULL) {
3693 lz->total = val;
3694 return lz->total;
3697 if (lz->binop == NULL)
3698 newtotal = PyNumber_Add(lz->total, val);
3700 newtotal = PyObject_CallFunctionObjArgs(lz->binop, lz->total, val, NULL);
3706 Py_SETREF(lz->total, newtotal);
3711 accumulate_reduce(accumulateobject *lz, PyObject *Py_UNUSED(ignored))
3713 if (lz->initial != Py_None) {
3716 assert(lz->total == NULL);
3720 lz->initial, lz->it);
3723 return Py_BuildValue("O(NO)O", Py_TYPE(lz),
3724 it, lz->binop?lz->binop:Py_None, Py_None);
3726 if (lz->total == Py_None) {
3734 lz->total, lz->it);
3737 it = PyObject_CallFunction((PyObject *)Py_TYPE(lz), "NO",
3738 it, lz->binop ? lz->binop : Py_None);
3743 return Py_BuildValue("O(OO)O", Py_TYPE(lz),
3744 lz->it, lz->binop?lz->binop:Py_None,
3745 lz->total?lz->total:Py_None);
3749 accumulate_setstate(accumulateobject *lz, PyObject *state)
3752 Py_XSETREF(lz->total, state);
3840 compressobject *lz;
3850 lz = (compressobject *)type->tp_alloc(type, 0);
3851 if (lz == NULL)
3853 lz->data = data;
3854 lz->selectors = selectors;
3855 return (PyObject *)lz;
3864 compress_dealloc(compressobject *lz)
3866 PyObject_GC_UnTrack(lz);
3867 Py_XDECREF(lz->data);
3868 Py_XDECREF(lz->selectors);
3869 Py_TYPE(lz)->tp_free(lz);
3873 compress_traverse(compressobject *lz, visitproc visit, void *arg)
3875 Py_VISIT(lz->data);
3876 Py_VISIT(lz->selectors);
3881 compress_next(compressobject *lz)
3883 PyObject *data = lz->data, *selectors = lz->selectors;
3917 compress_reduce(compressobject *lz, PyObject *Py_UNUSED(ignored))
3919 return Py_BuildValue("O(OO)", Py_TYPE(lz),
3920 lz->data, lz->selectors);
3998 filterfalseobject *lz;
4006 lz = (filterfalseobject *)type->tp_alloc(type, 0);
4007 if (lz == NULL) {
4012 lz->func = func;
4013 lz->it = it;
4015 return (PyObject *)lz;
4019 filterfalse_dealloc(filterfalseobject *lz)
4021 PyObject_GC_UnTrack(lz);
4022 Py_XDECREF(lz->func);
4023 Py_XDECREF(lz->it);
4024 Py_TYPE(lz)->tp_free(lz);
4028 filterfalse_traverse(filterfalseobject *lz, visitproc visit, void *arg)
4030 Py_VISIT(lz->it);
4031 Py_VISIT(lz->func);
4036 filterfalse_next(filterfalseobject *lz)
4039 PyObject *it = lz->it;
4049 if (lz->func == Py_None || lz->func == (PyObject *)&PyBool_Type) {
4053 good = PyObject_CallOneArg(lz->func, item);
4070 filterfalse_reduce(filterfalseobject *lz, PyObject *Py_UNUSED(ignored))
4072 return Py_BuildValue("O(OO)", Py_TYPE(lz), lz->func, lz->it);
4172 countobject *lz;
4232 lz = (countobject *)type->tp_alloc(type, 0);
4233 if (lz == NULL) {
4238 lz->cnt = cnt;
4239 lz->long_cnt = long_cnt;
4240 lz->long_step = long_step;
4242 return (PyObject *)lz;
4246 count_dealloc(countobject *lz)
4248 PyObject_GC_UnTrack(lz);
4249 Py_XDECREF(lz->long_cnt);
4250 Py_XDECREF(lz->long_step);
4251 Py_TYPE(lz)->tp_free(lz);
4255 count_traverse(countobject *lz, visitproc visit, void *arg)
4257 Py_VISIT(lz->long_cnt);
4258 Py_VISIT(lz->long_step);
4263 count_nextlong(countobject *lz)
4268 long_cnt = lz->long_cnt;
4275 assert(lz->cnt == PY_SSIZE_T_MAX && long_cnt != NULL);
4277 stepped_up = PyNumber_Add(long_cnt, lz->long_step);
4280 lz->long_cnt = stepped_up;
4285 count_next(countobject *lz)
4287 if (lz->cnt == PY_SSIZE_T_MAX)
4288 return count_nextlong(lz);
4289 return PyLong_FromSsize_t(lz->cnt++);
4293 count_repr(countobject *lz)
4295 if (lz->cnt != PY_SSIZE_T_MAX)
4297 _PyType_Name(Py_TYPE(lz)), lz->cnt);
4299 if (PyLong_Check(lz->long_step)) {
4300 long step = PyLong_AsLong(lz->long_step);
4307 _PyType_Name(Py_TYPE(lz)),
4308 lz->long_cnt);
4312 _PyType_Name(Py_TYPE(lz)),
4313 lz->long_cnt, lz->long_step);
4317 count_reduce(countobject *lz, PyObject *Py_UNUSED(ignored))
4319 if (lz->cnt == PY_SSIZE_T_MAX)
4320 return Py_BuildValue("O(OO)", Py_TYPE(lz), lz->long_cnt, lz->long_step);
4321 return Py_BuildValue("O(n)", Py_TYPE(lz), lz->cnt);
4546 ziplongestobject *lz;
4597 lz = (ziplongestobject *)type->tp_alloc(type, 0);
4598 if (lz == NULL) {
4603 lz->ittuple = ittuple;
4604 lz->tuplesize = tuplesize;
4605 lz->numactive = tuplesize;
4606 lz->result = result;
4608 lz->fillvalue = fillvalue;
4609 return (PyObject *)lz;
4613 zip_longest_dealloc(ziplongestobject *lz)
4615 PyObject_GC_UnTrack(lz);
4616 Py_XDECREF(lz->ittuple);
4617 Py_XDECREF(lz->result);
4618 Py_XDECREF(lz->fillvalue);
4619 Py_TYPE(lz)->tp_free(lz);
4623 zip_longest_traverse(ziplongestobject *lz, visitproc visit, void *arg)
4625 Py_VISIT(lz->ittuple);
4626 Py_VISIT(lz->result);
4627 Py_VISIT(lz->fillvalue);
4632 zip_longest_next(ziplongestobject *lz)
4635 Py_ssize_t tuplesize = lz->tuplesize;
4636 PyObject *result = lz->result;
4643 if (lz->numactive == 0)
4648 it = PyTuple_GET_ITEM(lz->ittuple, i);
4650 Py_INCREF(lz->fillvalue);
4651 item = lz->fillvalue;
4655 lz->numactive -= 1;
4656 if (lz->numactive == 0 || PyErr_Occurred()) {
4657 lz->numactive = 0;
4661 Py_INCREF(lz->fillvalue);
4662 item = lz->fillvalue;
4663 PyTuple_SET_ITEM(lz->ittuple, i, NULL);
4682 it = PyTuple_GET_ITEM(lz->ittuple, i);
4684 Py_INCREF(lz->fillvalue);
4685 item = lz->fillvalue;
4689 lz->numactive -= 1;
4690 if (lz->numactive == 0 || PyErr_Occurred()) {
4691 lz->numactive = 0;
4695 Py_INCREF(lz->fillvalue);
4696 item = lz->fillvalue;
4697 PyTuple_SET_ITEM(lz->ittuple, i, NULL);
4709 zip_longest_reduce(ziplongestobject *lz, PyObject *Py_UNUSED(ignored))
4716 PyObject *args = PyTuple_New(PyTuple_GET_SIZE(lz->ittuple));
4720 for (i=0; i<PyTuple_GET_SIZE(lz->ittuple); i++) {
4721 PyObject *elem = PyTuple_GET_ITEM(lz->ittuple, i);
4732 return Py_BuildValue("ONO", Py_TYPE(lz), args, lz->fillvalue);
4736 zip_longest_setstate(ziplongestobject *lz, PyObject *state)
4739 Py_XSETREF(lz->fillvalue, state);