Skip to content

Commit 5d46125

Browse files
Pepa Hajekrjarry
authored andcommitted
Fix SLeaf.default() method returning strings
Original method was returning string value only even in case default value was eg. integer. Fixed method returns correct data type.
1 parent 634fc34 commit 5d46125

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

libyang/schema.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,17 +1047,17 @@ def __init__(self, context: "libyang.Context", cdata):
10471047
self.cdata_leaf = ffi.cast("struct lysc_node_leaf *", cdata)
10481048
self.cdata_leaf_parsed = ffi.cast("struct lysp_node_leaf *", self.cdata_parsed)
10491049

1050-
def default(self) -> Optional[str]:
1050+
def default(self) -> Union[None, bool, int, str]:
10511051
if not self.cdata_leaf.dflt:
10521052
return None
10531053
val = lib.lyd_value_get_canonical(self.context.cdata, self.cdata_leaf.dflt)
10541054
if not val:
10551055
return None
10561056
val = c2str(val)
1057-
val_type = self.cdata_leaf.dflt.realtype
1058-
if val_type == Type.BOOL:
1057+
val_type = Type(self.context, self.cdata_leaf.dflt.realtype, None)
1058+
if val_type.base() == Type.BOOL:
10591059
return val == "true"
1060-
if val_type in Type.NUM_TYPES:
1060+
if val_type.base() in Type.NUM_TYPES:
10611061
return int(val)
10621062
return val
10631063

0 commit comments

Comments
 (0)