context: add label to repr function

Adds label information to context repr function.

%R is used to get the repr result of a PyObject, in this case this
object is the LabelObject representing the context's label information.

Helps showing more of the context information when printing out a
context object instance.

>>> import fdisk
>>> cxt = fdisk.Context('disk.bin')
>>> cxt
<libfdisk.Context object at 0x7fec52f39330, label=<libfdisk.Label object
at 0x7fec52f39310, name=gpt>, details=True, readonly=False>
master
Jose M. Guisado 2022-12-20 16:04:52 +01:00
parent e23d9cd027
commit 7478453359
1 changed files with 7 additions and 1 deletions

View File

@ -296,8 +296,14 @@ static PyGetSetDef Context_getseters[] = {
static PyObject *Context_repr(ContextObject *self)
{
return PyUnicode_FromFormat("<libfdisk.Context object at %p, details=%s, readonly=%s>",
PyObject *lbo = Py_None;
if (fdisk_has_label(self->cxt))
lbo = PyObjectResultLabel(fdisk_get_label(self->cxt, NULL));
return PyUnicode_FromFormat("<libfdisk.Context object at %p, label=%R, details=%s, readonly=%s>",
self,
lbo,
fdisk_is_details(self->cxt) ? "True" : "False",
fdisk_is_readonly(self->cxt) ? "True" : "False");
}