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

Commit65f2bea

Browse files
chore: add type-hints to gitlab/v4/objects/groups.py
* Add type-hints to gitlab/v4/objects/groups.py * Add return value to share() function as GitLab docs show it returns a value. * Add 'get()' method so that type-checkers will understand that getting a group is of type Group.
1 parent4ab9e92 commit65f2bea

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+
)->"Group":
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+
returnGroup(self.manager,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,8 +23,9 @@ ignore_errors = true
2323

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

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp