Lines Matching refs:ob
379 /* Assumes (PyLong_CheckExact(ob) || PyBool_Check(ob)) */
381 range_contains_long(rangeobject *r, PyObject *ob)
394 if (cmp1 == 1) { /* positive steps: start <= ob < stop */
395 cmp2 = PyObject_RichCompareBool(r->start, ob, Py_LE);
396 cmp3 = PyObject_RichCompareBool(ob, r->stop, Py_LT);
398 else { /* negative steps: stop < ob <= start */
399 cmp2 = PyObject_RichCompareBool(ob, r->start, Py_LE);
400 cmp3 = PyObject_RichCompareBool(r->stop, ob, Py_LT);
405 if (cmp2 == 0 || cmp3 == 0) { /* ob outside of range */
410 /* Check that the stride does not invalidate ob's membership. */
411 tmp1 = PyNumber_Subtract(ob, r->start);
417 /* result = ((int(ob) - start) % step) == 0 */
426 range_contains(rangeobject *r, PyObject *ob)
428 if (PyLong_CheckExact(ob) || PyBool_Check(ob))
429 return range_contains_long(r, ob);
431 return (int)_PySequence_IterSearch((PyObject*)r, ob,
557 range_count(rangeobject *r, PyObject *ob)
559 if (PyLong_CheckExact(ob) || PyBool_Check(ob)) {
560 int result = range_contains_long(r, ob);
566 count = _PySequence_IterSearch((PyObject*)r, ob, PY_ITERSEARCH_COUNT);
574 range_index(rangeobject *r, PyObject *ob)
578 if (!PyLong_CheckExact(ob) && !PyBool_Check(ob)) {
580 index = _PySequence_IterSearch((PyObject*)r, ob, PY_ITERSEARCH_INDEX);
586 contains = range_contains_long(r, ob);
591 PyObject *idx = PyNumber_Subtract(ob, r->start);
600 /* idx = (ob - r.start) // r.step */
607 PyErr_Format(PyExc_ValueError, "%R is not in range", ob);