Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit94dcb06

Browse files
chore: add type-hints to gitlab/v4/objects/groups.py
* Add type-hints to gitlab/v4/objects/groups.py * Have share() function update object attributes. * Add 'get()' method so that type-checkers will understand that getting a group is of type Group.
1 parent32ea954 commit94dcb06

File tree

2 files changed

+46
-12
lines changed

2 files changed

+46
-12
lines changed

‎gitlab/v4/objects/groups.py

Lines changed: 44 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
fromtypingimportAny,BinaryIO,cast,Dict,List,Optional,Type,TYPE_CHECKING,Union
2+
3+
importrequests
4+
5+
importgitlab
16
fromgitlabimportcli
27
fromgitlabimportexceptionsasexc
38
fromgitlabimporttypes
@@ -74,7 +79,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject):
7479

7580
@cli.register_custom_action("Group", ("project_id",))
7681
@exc.on_http_error(exc.GitlabTransferProjectError)
77-
deftransfer_project(self,project_id,**kwargs):
82+
deftransfer_project(self,project_id:int,**kwargs:Any)->None:
7883
"""Transfer a project to this group.
7984
8085
Args:
@@ -90,7 +95,9 @@ def transfer_project(self, project_id, **kwargs):
9095

9196
@cli.register_custom_action("Group", ("scope","search"))
9297
@exc.on_http_error(exc.GitlabSearchError)
93-
defsearch(self,scope,search,**kwargs):
98+
defsearch(
99+
self,scope:str,search:str,**kwargs:Any
100+
)->Union[gitlab.GitlabList,List[Dict[str,Any]]]:
94101
"""Search the group resources matching the provided string.'
95102
96103
Args:
@@ -111,7 +118,9 @@ def search(self, scope, search, **kwargs):
111118

112119
@cli.register_custom_action("Group", ("cn","group_access","provider"))
113120
@exc.on_http_error(exc.GitlabCreateError)
114-
defadd_ldap_group_link(self,cn,group_access,provider,**kwargs):
121+
defadd_ldap_group_link(
122+
self,cn:str,group_access:int,provider:str,**kwargs:Any
123+
)->None:
115124
"""Add an LDAP group link.
116125
117126
Args:
@@ -131,7 +140,9 @@ def add_ldap_group_link(self, cn, group_access, provider, **kwargs):
131140

132141
@cli.register_custom_action("Group", ("cn",), ("provider",))
133142
@exc.on_http_error(exc.GitlabDeleteError)
134-
defdelete_ldap_group_link(self,cn,provider=None,**kwargs):
143+
defdelete_ldap_group_link(
144+
self,cn:str,provider:Optional[str]=None,**kwargs:Any
145+
)->None:
135146
"""Delete an LDAP group link.
136147
137148
Args:
@@ -151,7 +162,7 @@ def delete_ldap_group_link(self, cn, provider=None, **kwargs):
151162

152163
@cli.register_custom_action("Group")
153164
@exc.on_http_error(exc.GitlabCreateError)
154-
defldap_sync(self,**kwargs):
165+
defldap_sync(self,**kwargs:Any)->None:
155166
"""Sync LDAP groups.
156167
157168
Args:
@@ -166,7 +177,13 @@ def ldap_sync(self, **kwargs):
166177

167178
@cli.register_custom_action("Group", ("group_id","group_access"), ("expires_at",))
168179
@exc.on_http_error(exc.GitlabCreateError)
169-
defshare(self,group_id,group_access,expires_at=None,**kwargs):
180+
defshare(
181+
self,
182+
group_id:int,
183+
group_access:int,
184+
expires_at:Optional[str]=None,
185+
**kwargs:Any,
186+
)->None:
170187
"""Share the group with a group.
171188
172189
Args:
@@ -177,18 +194,24 @@ def share(self, group_id, group_access, expires_at=None, **kwargs):
177194
Raises:
178195
GitlabAuthenticationError: If authentication is not correct
179196
GitlabCreateError: If the server failed to perform the request
197+
198+
Returns:
199+
Group
180200
"""
181201
path=f"/groups/{self.get_id()}/share"
182202
data= {
183203
"group_id":group_id,
184204
"group_access":group_access,
185205
"expires_at":expires_at,
186206
}
187-
self.manager.gitlab.http_post(path,post_data=data,**kwargs)
207+
server_data=self.manager.gitlab.http_post(path,post_data=data,**kwargs)
208+
ifTYPE_CHECKING:
209+
assertisinstance(server_data,dict)
210+
self._update_attrs(server_data)
188211

189212
@cli.register_custom_action("Group", ("group_id",))
190213
@exc.on_http_error(exc.GitlabDeleteError)
191-
defunshare(self,group_id,**kwargs):
214+
defunshare(self,group_id:int,**kwargs:Any)->None:
192215
"""Delete a shared group link within a group.
193216
194217
Args:
@@ -269,8 +292,18 @@ class GroupManager(CRUDMixin, RESTManager):
269292
)
270293
_types= {"avatar":types.ImageAttribute,"skip_groups":types.ListAttribute}
271294

295+
defget(self,id:Union[str,int],lazy:bool=False,**kwargs:Any)->Group:
296+
returncast(Group,super().get(id=id,lazy=lazy,**kwargs))
297+
272298
@exc.on_http_error(exc.GitlabImportError)
273-
defimport_group(self,file,path,name,parent_id=None,**kwargs):
299+
defimport_group(
300+
self,
301+
file:BinaryIO,
302+
path:str,
303+
name:str,
304+
parent_id:Optional[str]=None,
305+
**kwargs:Any,
306+
)->Union[Dict[str,Any],requests.Response]:
274307
"""Import a group from an archive file.
275308
276309
Args:
@@ -304,7 +337,7 @@ class GroupSubgroup(RESTObject):
304337

305338
classGroupSubgroupManager(ListMixin,RESTManager):
306339
_path="/groups/%(group_id)s/subgroups"
307-
_obj_cls=GroupSubgroup
340+
_obj_cls:Union[Type["GroupDescendantGroup"],Type[GroupSubgroup]]=GroupSubgroup
308341
_from_parent_attrs= {"group_id":"id"}
309342
_list_filters= (
310343
"skip_groups",
@@ -331,4 +364,4 @@ class GroupDescendantGroupManager(GroupSubgroupManager):
331364
"""
332365

333366
_path="/groups/%(group_id)s/descendant_groups"
334-
_obj_cls=GroupDescendantGroup
367+
_obj_cls:Type[GroupDescendantGroup]=GroupDescendantGroup

‎pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ ignore_errors = true
2323

2424
[[tool.mypy.overrides]]# Overrides to negate above patterns
2525
module = [
26+
"gitlab.v4.objects.groups",
2627
"gitlab.v4.objects.merge_requests",
2728
"gitlab.v4.objects.projects",
28-
"gitlab.v4.objects.users"
29+
"gitlab.v4.objects.users",
2930
]
3031
ignore_errors =false
3132

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp