Skip to content

Commit

Permalink
Merge pull request #1367 from JohnVillalovos/jlvillal/from_parent_attrs
Browse files Browse the repository at this point in the history
fix: checking if RESTManager._from_parent_attrs is set
  • Loading branch information
nejch committed Mar 10, 2021
2 parents de73ea7 + 8224b40 commit f93b9b5
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 15 deletions.
4 changes: 2 additions & 2 deletions gitlab/base.py
Expand Up @@ -290,12 +290,12 @@ def _compute_path(self, path: Optional[str] = None) -> Optional[str]:
path = self._path
if path is None:
return None
if self._parent is None or not hasattr(self, "_from_parent_attrs"):
if self._parent is None or not self._from_parent_attrs:
return path

data = {
self_attr: getattr(self._parent, parent_attr, None)
for self_attr, parent_attr in self._from_parent_attrs.items() # type: ignore
for self_attr, parent_attr in self._from_parent_attrs.items()
}
self._parent_attrs = data
return path % data
Expand Down
20 changes: 7 additions & 13 deletions gitlab/v4/cli.py
Expand Up @@ -69,7 +69,7 @@ def do_custom(self):
# Get the object (lazy), then act
if in_obj:
data = {}
if hasattr(self.mgr, "_from_parent_attrs"):
if self.mgr._from_parent_attrs:
for k in self.mgr._from_parent_attrs:
data[k] = self.args[k]
if gitlab.mixins.GetWithoutIdMixin not in inspect.getmro(self.cls):
Expand Down Expand Up @@ -138,13 +138,11 @@ def _populate_sub_parser_by_class(cls, sub_parser):

sub_parser_action = sub_parser.add_parser(action_name)
sub_parser_action.add_argument("--sudo", required=False)
if hasattr(mgr_cls, "_from_parent_attrs"):
[
if mgr_cls._from_parent_attrs:
for x in mgr_cls._from_parent_attrs:
sub_parser_action.add_argument(
"--%s" % x.replace("_", "-"), required=True
)
for x in mgr_cls._from_parent_attrs
]

if action_name == "list":
if hasattr(mgr_cls, "_list_filters"):
Expand Down Expand Up @@ -221,13 +219,11 @@ def _populate_sub_parser_by_class(cls, sub_parser):
for action_name in cli.custom_actions[name]:
sub_parser_action = sub_parser.add_parser(action_name)
# Get the attributes for URL/path construction
if hasattr(mgr_cls, "_from_parent_attrs"):
[
if mgr_cls._from_parent_attrs:
for x in mgr_cls._from_parent_attrs:
sub_parser_action.add_argument(
"--%s" % x.replace("_", "-"), required=True
)
for x in mgr_cls._from_parent_attrs
]
sub_parser_action.add_argument("--sudo", required=False)

# We need to get the object somehow
Expand Down Expand Up @@ -256,13 +252,11 @@ def _populate_sub_parser_by_class(cls, sub_parser):
name = mgr_cls.__name__
for action_name in cli.custom_actions[name]:
sub_parser_action = sub_parser.add_parser(action_name)
if hasattr(mgr_cls, "_from_parent_attrs"):
[
if mgr_cls._from_parent_attrs:
for x in mgr_cls._from_parent_attrs:
sub_parser_action.add_argument(
"--%s" % x.replace("_", "-"), required=True
)
for x in mgr_cls._from_parent_attrs
]
sub_parser_action.add_argument("--sudo", required=False)

required, optional, dummy = cli.custom_actions[name][action_name]
Expand Down

0 comments on commit f93b9b5

Please sign in to comment.