@@ -74,17 +74,17 @@ def __init__(self, ctx: Context, group_guid: str) -> None:
7474 self ._ctx : Context = ctx
7575
7676 @overload
77- def add (self , * args : User ) -> None : ...
77+ def add (self , user : User , / ) -> None : ...
7878 @overload
79- def add (self , * , user_guid : str ) -> None : ...
79+ def add (self , / , * , user_guid : str ) -> None : ...
8080
81- def add (self , * args : User , user_guid : Optional [str ] = None ) -> None :
81+ def add (self , user : Optional [ User ] = None , / , * , user_guid : Optional [str ] = None ) -> None :
8282 """Add a user to the group.
8383
8484 Parameters
8585 ----------
86- *args : User
87- User objects to add to the group.
86+ user : User
87+ User object to add to the group. Only one of `user=` or `user_guid=` can be provided .
8888 user_guid : str
8989 The user GUID.
9090
@@ -103,7 +103,8 @@ def add(self, *args: User, user_guid: Optional[str] = None) -> None:
103103
104104 # Add multiple users to the group
105105 users = client.users.find()
106- group.members.add(*users)
106+ for user in users:
107+ group.members.add(user)
107108
108109 # Add a user to the group by GUID
109110 group.members.add(user_guid="USER_GUID_HERE")
@@ -113,19 +114,15 @@ def add(self, *args: User, user_guid: Optional[str] = None) -> None:
113114 --------
114115 * https://docs.posit.co/connect/api/#post-/v1/groups/-group_guid-/members
115116 """
116- if len ( args ) > 0 :
117+ if user is not None :
117118 from .users import User
118119
119120 if user_guid :
120- raise ValueError ("Only one of `*args` or `user_guid=` should be provided." )
121- for i , user in enumerate (args ):
122- if not isinstance (user , User ):
123- raise TypeError (f"args[{ i } ] is not a `User` object. Received { user } " )
121+ raise ValueError ("Only one of `user=` or `user_guid=` should be provided." )
122+ if not isinstance (user , User ):
123+ raise TypeError (f"`user=` is not a `User` object. Received { user } " )
124124
125- for user in args :
126- self .add (user_guid = user ["guid" ])
127-
128- return
125+ user_guid = user ["guid" ]
129126
130127 if not isinstance (user_guid , str ):
131128 raise TypeError (f"`user_guid=` should be a string. Received { user_guid } " )
@@ -137,17 +134,17 @@ def add(self, *args: User, user_guid: Optional[str] = None) -> None:
137134 self ._ctx .session .post (url , json = {"user_guid" : user_guid })
138135
139136 @overload
140- def delete (self , * args : User ) -> None : ...
137+ def delete (self , user : User , / ) -> None : ...
141138 @overload
142- def delete (self , * , user_guid : str ) -> None : ...
139+ def delete (self , / , * , user_guid : str ) -> None : ...
143140
144- def delete (self , * args : User , user_guid : Optional [str ] = None ) -> None :
141+ def delete (self , user : Optional [ User ] = None , / , * , user_guid : Optional [str ] = None ) -> None :
145142 """Remove a user from the group.
146143
147144 Parameters
148145 ----------
149- *args : User
150- User objects to remove from the group.
146+ user : User
147+ User object to add to the group. Only one of `user=` or `user_guid=` can be provided .
151148 user_guid : str
152149 The user GUID.
153150
@@ -166,7 +163,8 @@ def delete(self, *args: User, user_guid: Optional[str] = None) -> None:
166163
167164 # Remove multiple users from the group
168165 group_users = group.members.find()[:2]
169- group.members.delete(*group_users)
166+ for group_user in group_users:
167+ group.members.delete(group_user)
170168
171169 # Remove a user from the group by GUID
172170 group.members.delete(user_guid="USER_GUID_HERE")
@@ -176,19 +174,15 @@ def delete(self, *args: User, user_guid: Optional[str] = None) -> None:
176174 --------
177175 * https://docs.posit.co/connect/api/#delete-/v1/groups/-group_guid-/members/-user_guid-
178176 """
179- if len ( args ) > 0 :
177+ if user is not None :
180178 from .users import User
181179
182180 if user_guid :
183- raise ValueError ("Only one of `*args` or `user_guid=` should be provided." )
184- for i , user in enumerate (args ):
185- if not isinstance (user , User ):
186- raise TypeError (f"`args[{ i } ]` is not a `User` object. Received { user } " )
187-
188- for user in args :
189- self .delete (user_guid = user ["guid" ])
181+ raise ValueError ("Only one of `user=` or `user_guid=` should be provided." )
182+ if not isinstance (user , User ):
183+ raise TypeError (f"`user=` is not a `User` object. Received { user } " )
190184
191- return
185+ user_guid = user [ "guid" ]
192186
193187 if not isinstance (user_guid , str ):
194188 raise TypeError (f"`user_guid=` should be a string. Received { user_guid } " )
0 commit comments