70
70
_RestManagerBase = object
71
71
_RestObjectBase = object
72
72
73
- T1 = TypeVar ("T1 " , bound = base .RESTObject )
74
- T2 = TypeVar ("T2 " , bound = base .RESTObject )
73
+ T_obj = TypeVar ("T_obj " , bound = base .RESTObject )
74
+ T_parent = TypeVar ("T_parent " , bound = Optional [ base .RESTObject ] )
75
75
76
76
77
- class GetMixin (_RestManagerBase , Generic [T1 , T2 ]):
77
+ class GetMixin (_RestManagerBase [ T_obj , T_parent ], Generic [T_obj , T_parent ]):
78
78
_computed_path : Optional [str ]
79
79
_from_parent_attrs : Dict [str , Any ]
80
- _obj_cls : Type [T1 ]
81
80
_optional_get_attrs : Tuple [str , ...] = ()
82
- _parent : Optional [T2 ]
83
81
_parent_attrs : Dict [str , Any ]
84
82
_path : Optional [str ]
85
83
gitlab : gitlab .Gitlab
86
84
87
85
@exc .on_http_error (exc .GitlabGetError )
88
86
def get (
89
87
self , id : Union [str , int ], lazy : bool = False , ** kwargs : Any
90
- ) -> T1 :
88
+ ) -> T_obj :
91
89
"""Retrieve a single object.
92
90
93
91
Args:
@@ -119,12 +117,10 @@ def get(
119
117
return self ._obj_cls (self , server_data )
120
118
121
119
122
- class GetWithoutIdMixin (_RestManagerBase , Generic [T1 , T2 ]):
120
+ class GetWithoutIdMixin (_RestManagerBase [ T_obj , T_parent ], Generic [T_obj , T_parent ]):
123
121
_computed_path : Optional [str ]
124
122
_from_parent_attrs : Dict [str , Any ]
125
- _obj_cls : Type [T1 ]
126
123
_optional_get_attrs : Tuple [str , ...] = ()
127
- _parent : Optional [T2 ]
128
124
_parent_attrs : Dict [str , Any ]
129
125
_path : Optional [str ]
130
126
gitlab : gitlab .Gitlab
@@ -187,18 +183,16 @@ def refresh(self, **kwargs: Any) -> None:
187
183
self ._update_attrs (server_data )
188
184
189
185
190
- class ListMixin (_RestManagerBase , Generic [T1 , T2 ]):
186
+ class ListMixin (_RestManagerBase [ T_obj , T_parent ], Generic [T_obj , T_parent ]):
191
187
_computed_path : Optional [str ]
192
188
_from_parent_attrs : Dict [str , Any ]
193
189
_list_filters : Tuple [str , ...] = ()
194
- _obj_cls : Type [T1 ]
195
- _parent : Optional [T2 ]
196
190
_parent_attrs : Dict [str , Any ]
197
191
_path : Optional [str ]
198
192
gitlab : gitlab .Gitlab
199
193
200
194
@exc .on_http_error (exc .GitlabListError )
201
- def list (self , ** kwargs : Any ) -> Iterable [T1 ]:
195
+ def list (self , ** kwargs : Any ) -> Iterable [T_obj ]:
202
196
"""Retrieve a list of objects.
203
197
204
198
Args:
@@ -240,21 +234,17 @@ def list(self, **kwargs: Any) -> Iterable[T1]:
240
234
return base .RESTObjectList (self , self ._obj_cls , obj )
241
235
242
236
243
- class RetrieveMixin (ListMixin , GetMixin , Generic [T1 , T2 ]):
237
+ class RetrieveMixin (ListMixin [ T_obj , T_parent ], GetMixin [ T_obj , T_parent ], Generic [T_obj , T_parent ]):
244
238
_computed_path : Optional [str ]
245
239
_from_parent_attrs : Dict [str , Any ]
246
- _obj_cls : Type [T1 ]
247
- _parent : Optional [T2 ]
248
240
_parent_attrs : Dict [str , Any ]
249
241
_path : Optional [str ]
250
242
gitlab : gitlab .Gitlab
251
243
252
244
253
- class CreateMixin (_RestManagerBase , Generic [T1 , T2 ]):
245
+ class CreateMixin (_RestManagerBase [ T_obj , T_parent ], Generic [T_obj , T_parent ]):
254
246
_computed_path : Optional [str ]
255
247
_from_parent_attrs : Dict [str , Any ]
256
- _obj_cls : Type [T1 ]
257
- _parent : Optional [T2 ]
258
248
_parent_attrs : Dict [str , Any ]
259
249
_path : Optional [str ]
260
250
gitlab : gitlab .Gitlab
@@ -293,11 +283,9 @@ def create(
293
283
return self ._obj_cls (self , server_data )
294
284
295
285
296
- class UpdateMixin (_RestManagerBase , Generic [T1 , T2 ]):
286
+ class UpdateMixin (_RestManagerBase [ T_obj , T_parent ], Generic [T_obj , T_parent ]):
297
287
_computed_path : Optional [str ]
298
288
_from_parent_attrs : Dict [str , Any ]
299
- _obj_cls : Type [T1 ]
300
- _parent : Optional [T2 ]
301
289
_parent_attrs : Dict [str , Any ]
302
290
_path : Optional [str ]
303
291
_update_uses_post : bool = False
@@ -358,11 +346,9 @@ def update(
358
346
return result
359
347
360
348
361
- class SetMixin (_RestManagerBase , Generic [T1 , T2 ]):
349
+ class SetMixin (_RestManagerBase [ T_obj , T_parent ], Generic [T_obj , T_parent ]):
362
350
_computed_path : Optional [str ]
363
351
_from_parent_attrs : Dict [str , Any ]
364
- _obj_cls : Type [T1 ]
365
- _parent : Optional [T2 ]
366
352
_parent_attrs : Dict [str , Any ]
367
353
_path : Optional [str ]
368
354
gitlab : gitlab .Gitlab
@@ -392,11 +378,9 @@ def set(self, key: str, value: str, **kwargs: Any) -> base.RESTObject:
392
378
return self ._obj_cls (self , server_data )
393
379
394
380
395
- class DeleteMixin (_RestManagerBase , Generic [T1 , T2 ]):
381
+ class DeleteMixin (_RestManagerBase [ T_obj , T_parent ], Generic [T_obj , T_parent ]):
396
382
_computed_path : Optional [str ]
397
383
_from_parent_attrs : Dict [str , Any ]
398
- _obj_cls : Type [T1 ]
399
- _parent : Optional [T2 ]
400
384
_parent_attrs : Dict [str , Any ]
401
385
_path : Optional [str ]
402
386
gitlab : gitlab .Gitlab
@@ -423,21 +407,17 @@ def delete(self, id: Optional[Union[str, int]] = None, **kwargs: Any) -> None:
423
407
self .gitlab .http_delete (path , ** kwargs )
424
408
425
409
426
- class CRUDMixin (GetMixin , ListMixin , CreateMixin , UpdateMixin , DeleteMixin , Generic [T1 , T2 ]):
410
+ class CRUDMixin (GetMixin [ T_obj , T_parent ], ListMixin [ T_obj , T_parent ], CreateMixin [ T_obj , T_parent ], UpdateMixin [ T_obj , T_parent ], DeleteMixin [ T_obj , T_parent ], Generic [T_obj , T_parent ]):
427
411
_computed_path : Optional [str ]
428
412
_from_parent_attrs : Dict [str , Any ]
429
- _obj_cls : Type [T1 ]
430
- _parent : Optional [T2 ]
431
413
_parent_attrs : Dict [str , Any ]
432
414
_path : Optional [str ]
433
415
gitlab : gitlab .Gitlab
434
416
435
417
436
- class NoUpdateMixin (GetMixin , ListMixin , CreateMixin , DeleteMixin , Generic [T1 , T2 ]):
418
+ class NoUpdateMixin (GetMixin [ T_obj , T_parent ], ListMixin [ T_obj , T_parent ], CreateMixin [ T_obj , T_parent ], DeleteMixin [ T_obj , T_parent ], Generic [T_obj , T_parent ]):
437
419
_computed_path : Optional [str ]
438
420
_from_parent_attrs : Dict [str , Any ]
439
- _obj_cls : Type [T1 ]
440
- _parent : T2
441
421
_parent_attrs : Dict [str , Any ]
442
422
_path : Optional [str ]
443
423
gitlab : gitlab .Gitlab
@@ -838,7 +818,7 @@ def participants(self, **kwargs: Any) -> Dict[str, Any]:
838
818
return result
839
819
840
820
841
- class BadgeRenderMixin (_RestManagerBase ):
821
+ class BadgeRenderMixin (_RestManagerBase [ T_obj , T_parent ] ):
842
822
@cli .register_custom_action (
843
823
("GroupBadgeManager" , "ProjectBadgeManager" ), ("link_url" , "image_url" )
844
824
)
0 commit comments