picop.cyobject#

Object protocol helpers.

picop.cyobject.obj_as_fd(o)#

Return a file descriptor via PyObject_AsFileDescriptor.

Notes

On error raises — do not treat the result as a boolean success flag.

Parameters:

o (object)

Return type:

int

picop.cyobject.obj_bytes(o)#

Return bytes(o) via PyObject_Bytes. :type o: object :param o:

Return type:

object

picop.cyobject.obj_call(callable_object, args, kw=None)#

Call callable_object(*args, **kw) via PyObject_Call.

Notes

args must be a tuple.

Parameters:
Return type:

object

picop.cyobject.obj_call_object(callable_object, args)#

Call callable_object(*args) via PyObject_CallObject. :type callable_object: object :param callable_object: :type args: object :param args:

Return type:

object

picop.cyobject.obj_callable(o)#
picop.cyobject.obj_delattr(o, name)#

Delete attribute name on o via PyObject_DelAttr.

Notes

Returns 0 on success; errors raise — do not use the status as a bool.

Parameters:
Return type:

int

picop.cyobject.obj_delattr_cstr(o, name)#

Delete C-string attribute name via PyObject_DelAttrString.

Notes

name must be bytes, not str. Returns 0 on success; errors raise — do not use the status as a bool. Alias of obj_delattr_string.

Parameters:
Return type:

int

picop.cyobject.obj_delitem(o, key)#

Delete o[key] via PyObject_DelItem.

Notes

Returns 0 on success; errors raise — do not use the status as a bool.

Parameters:
Return type:

int

picop.cyobject.obj_dir(o)#

Return dir(o) via PyObject_Dir. :type o: object :param o:

Return type:

object

picop.cyobject.obj_eq(a, b)#

Return True if a == b via PyObject_RichCompareBool.

Notes

Identity short-circuit applies. Prefer typed *_eq when both operands have a known Core type.

Parameters:
Return type:

bool

picop.cyobject.obj_format(obj, format_spec)#

Return format(obj, format_spec) via PyObject_Format. :type obj: object :param obj: :type format_spec: object :param format_spec:

Return type:

object

picop.cyobject.obj_getattr(o, name)#
picop.cyobject.obj_getattr_cstr(o, name)#
picop.cyobject.obj_getitem(o, key)#
picop.cyobject.obj_hasattr(o, name)#
picop.cyobject.obj_hasattr_cstr(o, name)#
picop.cyobject.obj_hash(o)#
picop.cyobject.obj_isinstance(inst, cls)#
picop.cyobject.obj_issubclass(derived, cls)#

Return issubclass(derived, cls) via PyObject_IsSubclass. :type derived: object :param derived: :type cls: object :param cls:

Return type:

bool

picop.cyobject.obj_istrue(o)#
picop.cyobject.obj_iter(o)#

Return iter(o) via PyObject_GetIter. :type o: object :param o:

Return type:

object

picop.cyobject.obj_len(o)#
picop.cyobject.obj_length_hint(o, default_value)#

Return operator.length_hint(o, default_value) via PyObject_LengthHint. :type o: object :param o: :type default_value: int :param default_value:

Return type:

int

picop.cyobject.obj_not(o)#

Return not o via PyObject_Not. :type o: object :param o:

Return type:

bool

picop.cyobject.obj_repr(o)#

Return repr(o) via PyObject_Repr. :type o: object :param o:

Return type:

object

picop.cyobject.obj_richcompare(o1, o2, opid)#

Return rich comparison of o1 and o2 for opid (Py_EQ …). :type o1: object :param o1: :type o2: object :param o2: :type opid: int :param opid:

Return type:

object

picop.cyobject.obj_richcompare_bool(o1, o2, opid)#

Return rich comparison as bool for opid (PyObject_RichCompareBool). :type o1: object :param o1: :type o2: object :param o2: :type opid: int :param opid:

Return type:

bool

picop.cyobject.obj_setattr(o, name, v)#

Set attribute name on o via PyObject_SetAttr.

Notes

Returns 0 on success; errors raise — do not use the status as a bool.

Parameters:
Return type:

int

picop.cyobject.obj_setattr_cstr(o, name, v)#

Set C-string attribute name on o via PyObject_SetAttrString.

Notes

name must be bytes, not str. Returns 0 on success; errors raise — do not use the status as a bool. Alias of obj_setattr_string.

Parameters:
Return type:

int

picop.cyobject.obj_setitem(o, key, v)#

Set o[key] = v via PyObject_SetItem.

Notes

Returns 0 on success; errors raise — do not use the status as a bool.

Parameters:
Return type:

int

picop.cyobject.obj_size(o)#
picop.cyobject.obj_str(o)#
picop.cyobject.obj_type(o)#