From 5d6674648b8332dc540cd5c9cb374dbf423f9ce2 Mon Sep 17 00:00:00 2001 From: Christian Hopps Date: Sun, 31 Aug 2025 01:56:47 +0000 Subject: [PATCH] data: add missing DataType's Simplify the code to using python enum functionality. Signed-off-by: Christian Hopps --- cffi/cdefs.h | 5 ++++- libyang/data.py | 20 ++++---------------- libyang/util.py | 17 ++++++++++------- 3 files changed, 18 insertions(+), 24 deletions(-) diff --git a/cffi/cdefs.h b/cffi/cdefs.h index aa75004..0573acb 100644 --- a/cffi/cdefs.h +++ b/cffi/cdefs.h @@ -296,7 +296,10 @@ enum lyd_type { LYD_TYPE_REPLY_YANG, LYD_TYPE_RPC_NETCONF, LYD_TYPE_NOTIF_NETCONF, - LYD_TYPE_REPLY_NETCONF + LYD_TYPE_REPLY_NETCONF, + LYD_TYPE_RPC_RESTCONF, + LYD_TYPE_NOTIF_RESTCONF, + LYD_TYPE_REPLY_RESTCONF }; #define LYD_PRINT_KEEPEMPTYCONT ... diff --git a/libyang/data.py b/libyang/data.py index 9595ea1..37ae1bc 100644 --- a/libyang/data.py +++ b/libyang/data.py @@ -174,22 +174,10 @@ def dup_flags( # ------------------------------------------------------------------------------------- -def data_type(dtype): - if dtype == DataType.DATA_YANG: - return lib.LYD_TYPE_DATA_YANG - if dtype == DataType.RPC_YANG: - return lib.LYD_TYPE_RPC_YANG - if dtype == DataType.NOTIF_YANG: - return lib.LYD_TYPE_NOTIF_YANG - if dtype == DataType.REPLY_YANG: - return lib.LYD_TYPE_REPLY_YANG - if dtype == DataType.RPC_NETCONF: - return lib.LYD_TYPE_RPC_NETCONF - if dtype == DataType.NOTIF_NETCONF: - return lib.LYD_TYPE_NOTIF_NETCONF - if dtype == DataType.REPLY_NETCONF: - return lib.LYD_TYPE_REPLY_NETCONF - raise ValueError("Unknown data type") +def data_type(dtype: DataType) -> int: + if not isinstance(dtype, DataType): + dtype = DataType(dtype) + return dtype.value # ------------------------------------------------------------------------------------- diff --git a/libyang/util.py b/libyang/util.py index c380ae5..3014cc8 100644 --- a/libyang/util.py +++ b/libyang/util.py @@ -77,13 +77,16 @@ class IOType(enum.Enum): # ------------------------------------------------------------------------------------- class DataType(enum.Enum): - DATA_YANG = enum.auto() - RPC_YANG = enum.auto() - NOTIF_YANG = enum.auto() - REPLY_YANG = enum.auto() - RPC_NETCONF = enum.auto() - NOTIF_NETCONF = enum.auto() - REPLY_NETCONF = enum.auto() + DATA_YANG = lib.LYD_TYPE_DATA_YANG + RPC_YANG = lib.LYD_TYPE_RPC_YANG + NOTIF_YANG = lib.LYD_TYPE_NOTIF_YANG + REPLY_YANG = lib.LYD_TYPE_REPLY_YANG + RPC_NETCONF = lib.LYD_TYPE_RPC_NETCONF + NOTIF_NETCONF = lib.LYD_TYPE_NOTIF_NETCONF + REPLY_NETCONF = lib.LYD_TYPE_REPLY_NETCONF + RPC_RESTCONF = lib.LYD_TYPE_RPC_RESTCONF + NOTIF_RESTCONF = lib.LYD_TYPE_NOTIF_RESTCONF + REPLY_RESTCONF = lib.LYD_TYPE_REPLY_RESTCONF # -------------------------------------------------------------------------------------