diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2016-11-05 18:43:19 +0100 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2016-11-05 18:43:19 +0100 |
commit | 81e1c13e05172d86b613f13ddacc896db5ffd250 (patch) | |
tree | 5e9a67c993992163c2428d30f2cd8c2c04ac55f7 /docs/ext/docstrings.py | |
parent | 92180e47f76eaf293728cb1d463f601925404123 (diff) | |
download | gitlab-81e1c13e05172d86b613f13ddacc896db5ffd250.tar.gz |
Make the manager objects create mor dynamic
For the gitlab.Gitlab object make the detection of "submanagers" more
dynamic. This will avoid duplication of definitions.
Update the sphinx extension to add these managers in the list of
attributes.
Diffstat (limited to 'docs/ext/docstrings.py')
-rw-r--r-- | docs/ext/docstrings.py | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/docs/ext/docstrings.py b/docs/ext/docstrings.py index b380b64..5e5f82f 100644 --- a/docs/ext/docstrings.py +++ b/docs/ext/docstrings.py @@ -45,9 +45,17 @@ class GitlabDocstring(GoogleDocstring): def __init__(self, *args, **kwargs): super(GitlabDocstring, self).__init__(*args, **kwargs) - if hasattr(self._obj, 'obj_cls') and self._obj.obj_cls is not None: - self._parsed_lines = self._build_doc('manager_tmpl.j2', - cls=self._obj.obj_cls) + if getattr(self._obj, '__name__', None) == 'Gitlab': + mgrs = [] + gl = self._obj('http://dummy', private_token='dummy') + for item in vars(gl).items(): + if hasattr(item[1], 'obj_cls'): + mgrs.append(item) + self._parsed_lines.extend(self._build_doc('gl_tmpl.j2', + mgrs=sorted(mgrs))) + elif hasattr(self._obj, 'obj_cls') and self._obj.obj_cls is not None: + self._parsed_lines.extend(self._build_doc('manager_tmpl.j2', + cls=self._obj.obj_cls)) elif hasattr(self._obj, 'canUpdate') and self._obj.canUpdate: - self._parsed_lines = self._build_doc('object_tmpl.j2', - obj=self._obj) + self._parsed_lines.extend(self._build_doc('object_tmpl.j2', + obj=self._obj)) |