Module: PyCall::LibPython::API
- Defined in:
- ext/pycall/pycall.c
Class Method Summary collapse
-
.builtins_module_ptr ⇒ Object
PyCall::LibPython::API ====.
- .PyList_GetItem(pyptr, idx) ⇒ Object
- .PyList_Size(pyptr) ⇒ Object
- .PyObject_Dir(pyptr) ⇒ Object
Class Method Details
.builtins_module_ptr ⇒ Object
PyCall::LibPython::API ====
673 674 675 676 677 678 679 |
# File 'ext/pycall/pycall.c', line 673 static VALUE pycall_libpython_api_get_builtins_module_ptr(VALUE mod) { VALUE pyptr = pycall_pyptr_new(python_builtins_module); Py_API(Py_IncRef)(python_builtins_module); return pyptr; } |
.PyList_GetItem(pyptr, idx) ⇒ Object
723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 |
# File 'ext/pycall/pycall.c', line 723 static VALUE pycall_libpython_api_PyList_GetItem(VALUE mod, VALUE pyptr, VALUE idx) { PyObject *pyobj; PyObject *pyobj_item; Py_ssize_t i; pycall_drain_pending_decrefs(); if (!is_pycall_pyptr(pyptr)) { rb_raise(rb_eTypeError, "PyCall::PyPtr is required"); } pyobj = get_pyobj_ptr(pyptr); i = NUM2SSIZET(idx); pyobj_item = Py_API(PyList_GetItem)(pyobj, i); if (!pyobj_item) { pycall_pyerror_fetch_and_raise("PyList_GetItem in pycall_libpython_api_PyList_GetItem"); } return pycall_pyptr_new(pyobj_item); } |
.PyList_Size(pyptr) ⇒ Object
702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 |
# File 'ext/pycall/pycall.c', line 702 static VALUE pycall_libpython_api_PyList_Size(VALUE mod, VALUE pyptr) { PyObject *pyobj; Py_ssize_t size; pycall_drain_pending_decrefs(); if (!is_pycall_pyptr(pyptr)) { rb_raise(rb_eTypeError, "PyCall::PyPtr is required"); } pyobj = get_pyobj_ptr(pyptr); size = Py_API(PyList_Size)(pyobj); if (size < 0) { pycall_pyerror_fetch_and_raise("PyList_Size in pycall_libpython_api_PyList_Size"); } return SSIZET2NUM(size); } |
.PyObject_Dir(pyptr) ⇒ Object
681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 |
# File 'ext/pycall/pycall.c', line 681 static VALUE pycall_libpython_api_PyObject_Dir(VALUE mod, VALUE pyptr) { PyObject *dir; PyObject *pyobj; pycall_drain_pending_decrefs(); if (!is_pycall_pyptr(pyptr)) { rb_raise(rb_eTypeError, "PyCall::PyPtr is required"); } pyobj = get_pyobj_ptr(pyptr); dir = Py_API(PyObject_Dir)(pyobj); if (pyobj && !dir) { pycall_pyerror_fetch_and_raise("PyObject_Dir in pycall_libpython_api_PyObject_Dir"); } return dir ? pycall_pyptr_new(dir) : Qnil; } |