From 0a6d7e050d2c332e47afb7ffb2b6d50c88e8bcaa Mon Sep 17 00:00:00 2001 From: David Douard <david.douard@sdfa3.org> Date: Wed, 11 Mar 2020 13:15:32 +0100 Subject: [PATCH] Extract the dictify() function from BaseModel.to_dict() this function does not need to be a local function of the to_dict namespace. --- swh/model/model.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/swh/model/model.py b/swh/model/model.py index a3809f9d..03b943f0 100644 --- a/swh/model/model.py +++ b/swh/model/model.py @@ -32,6 +32,20 @@ SHA1_SIZE = 20 Sha1Git = bytes +def dictify(value): + "Helper function used by BaseModel.to_dict()" + if isinstance(value, BaseModel): + return value.to_dict() + elif isinstance(value, Enum): + return value.value + elif isinstance(value, dict): + return {k: dictify(v) for k, v in value.items()} + elif isinstance(value, list): + return [dictify(v) for v in value] + else: + return value + + class BaseModel: """Base class for SWH model classes. @@ -41,21 +55,7 @@ class BaseModel: def to_dict(self): """Wrapper of `attr.asdict` that can be overridden by subclasses that have special handling of some of the fields.""" - - def dictify(value): - if isinstance(value, BaseModel): - return value.to_dict() - elif isinstance(value, Enum): - return value.value - elif isinstance(value, dict): - return {k: dictify(v) for k, v in value.items()} - elif isinstance(value, list): - return [dictify(v) for v in value] - else: - return value - - ret = attr.asdict(self, recurse=False) - return dictify(ret) + return dictify(attr.asdict(self, recurse=False)) @classmethod def from_dict(cls, d): -- GitLab