From 1940feec3dbb099dc3d671cd14ba756e7d34b071 Mon Sep 17 00:00:00 2001 From: Gauvain Pocentek Date: Sat, 17 Mar 2018 16:46:18 +0100 Subject: Implement attribute types to handle special cases Some attributes need to be parsed/modified to work with the API (for instance lists). This patch provides two attribute types that will simplify parts of the code, and fix some CLI bugs. Fixes #443 --- gitlab/v4/cli.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gitlab/v4/cli.py') diff --git a/gitlab/v4/cli.py b/gitlab/v4/cli.py index bceba33..0e50de1 100644 --- a/gitlab/v4/cli.py +++ b/gitlab/v4/cli.py @@ -45,6 +45,14 @@ class GitlabCLI(object): self.mgr_cls._path = self.mgr_cls._path % self.args self.mgr = self.mgr_cls(gl) + types = getattr(self.mgr_cls, '_types', {}) + if types: + for attr_name, type_cls in types.items(): + if attr_name in self.args.keys(): + obj = type_cls() + obj.set_from_cli(self.args[attr_name]) + self.args[attr_name] = obj.get() + def __call__(self): method = 'do_%s' % self.action if hasattr(self, method): -- cgit v1.2.1