From 924f83eb4b5e160bd231efc38e2eea0231fa311f Mon Sep 17 00:00:00 2001 From: "John L. Villalovos" Date: Sun, 7 Mar 2021 09:16:45 -0800 Subject: chore: make _types always present in RESTManager We now create _types = {} in RESTManager class. By making _types always present in RESTManager it makes the code simpler. We no longer have to do: types = getattr(self, "_types", {}) And the type checker now understands the type. --- gitlab/mixins.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'gitlab/mixins.py') diff --git a/gitlab/mixins.py b/gitlab/mixins.py index 520ce87..b2c246e 100644 --- a/gitlab/mixins.py +++ b/gitlab/mixins.py @@ -226,9 +226,8 @@ class ListMixin(_RestManagerBase): data.setdefault("order_by", self.gitlab.order_by) # We get the attributes that need some special transformation - types = getattr(self, "_types", {}) - if types: - for attr_name, type_cls in types.items(): + if self._types: + for attr_name, type_cls in self._types.items(): if attr_name in data.keys(): type_obj = type_cls(data[attr_name]) data[attr_name] = type_obj.get_for_api() @@ -311,17 +310,16 @@ class CreateMixin(_RestManagerBase): files = {} # We get the attributes that need some special transformation - types = getattr(self, "_types", {}) - if types: + if self._types: # Duplicate data to avoid messing with what the user sent us data = data.copy() - for attr_name, type_cls in types.items(): + for attr_name, type_cls in self._types.items(): if attr_name in data.keys(): type_obj = type_cls(data[attr_name]) # if the type if FileAttribute we need to pass the data as # file - if issubclass(type_cls, g_types.FileAttribute): + if isinstance(type_obj, g_types.FileAttribute): k = type_obj.get_file_name(attr_name) files[attr_name] = (k, data.pop(attr_name)) else: @@ -414,17 +412,16 @@ class UpdateMixin(_RestManagerBase): files = {} # We get the attributes that need some special transformation - types = getattr(self, "_types", {}) - if types: + if self._types: # Duplicate data to avoid messing with what the user sent us new_data = new_data.copy() - for attr_name, type_cls in types.items(): + for attr_name, type_cls in self._types.items(): if attr_name in new_data.keys(): type_obj = type_cls(new_data[attr_name]) # if the type if FileAttribute we need to pass the data as # file - if issubclass(type_cls, g_types.FileAttribute): + if isinstance(type_obj, g_types.FileAttribute): k = type_obj.get_file_name(attr_name) files[attr_name] = (k, new_data.pop(attr_name)) else: -- cgit v1.2.1