def PyObject_GetAttrString(space, w_obj, name_ptr): """Retrieve an attribute named attr_name from object o. Returns the attribute value on success, or NULL on failure. This is the equivalent of the Python expression o.attr_name.""" name = rffi.charp2str(name_ptr) w_res = space.getattr(w_obj, space.newtext(name)) return hack_for_result_often_existing_obj(space, w_res)
def PyObject_GetItem(space, w_obj, w_key): """Return element of o corresponding to the object key or NULL on failure. This is the equivalent of the Python expression o[key].""" w_res = space.getitem(w_obj, w_key) return hack_for_result_often_existing_obj(space, w_res)
def PyObject_GetAttr(space, w_obj, w_name): """Retrieve an attribute named attr_name from object o. Returns the attribute value on success, or NULL on failure. This is the equivalent of the Python expression o.attr_name.""" w_res = space.getattr(w_obj, w_name) return hack_for_result_often_existing_obj(space, w_res)
def PyMapping_GetItemString(space, w_obj, key): """Return element of o corresponding to the object key or NULL on failure. This is the equivalent of the Python expression o[key].""" w_key = space.newtext(rffi.charp2str(key)) w_res = space.getitem(w_obj, w_key) return hack_for_result_often_existing_obj(space, w_res)