@@ -75,8 +75,8 @@ class GetMixin(_RestManagerBase):
75
75
_computed_path : Optional [str ]
76
76
_from_parent_attrs : Dict [str , Any ]
77
77
_obj_cls : Optional [Type [base .RESTObject ]]
78
- _parent = Optional [base .RESTObject ]
79
- _parent_attrs = Dict [str , Any ]
78
+ _parent : Optional [base .RESTObject ]
79
+ _parent_attrs : Dict [str , Any ]
80
80
_path : Optional [str ]
81
81
gitlab : gitlab .Gitlab
82
82
@@ -119,8 +119,8 @@ class GetWithoutIdMixin(_RestManagerBase):
119
119
_computed_path : Optional [str ]
120
120
_from_parent_attrs : Dict [str , Any ]
121
121
_obj_cls : Optional [Type [base .RESTObject ]]
122
- _parent = Optional [base .RESTObject ]
123
- _parent_attrs = Dict [str , Any ]
122
+ _parent : Optional [base .RESTObject ]
123
+ _parent_attrs : Dict [str , Any ]
124
124
_path : Optional [str ]
125
125
gitlab : gitlab .Gitlab
126
126
@@ -188,8 +188,8 @@ class ListMixin(_RestManagerBase):
188
188
_computed_path : Optional [str ]
189
189
_from_parent_attrs : Dict [str , Any ]
190
190
_obj_cls : Optional [Type [base .RESTObject ]]
191
- _parent = Optional [base .RESTObject ]
192
- _parent_attrs = Dict [str , Any ]
191
+ _parent : Optional [base .RESTObject ]
192
+ _parent_attrs : Dict [str , Any ]
193
193
_path : Optional [str ]
194
194
gitlab : gitlab .Gitlab
195
195
@@ -248,8 +248,8 @@ class RetrieveMixin(ListMixin, GetMixin):
248
248
_computed_path : Optional [str ]
249
249
_from_parent_attrs : Dict [str , Any ]
250
250
_obj_cls : Optional [Type [base .RESTObject ]]
251
- _parent = Optional [base .RESTObject ]
252
- _parent_attrs = Dict [str , Any ]
251
+ _parent : Optional [base .RESTObject ]
252
+ _parent_attrs : Dict [str , Any ]
253
253
_path : Optional [str ]
254
254
gitlab : gitlab .Gitlab
255
255
@@ -260,8 +260,8 @@ class CreateMixin(_RestManagerBase):
260
260
_computed_path : Optional [str ]
261
261
_from_parent_attrs : Dict [str , Any ]
262
262
_obj_cls : Optional [Type [base .RESTObject ]]
263
- _parent = Optional [base .RESTObject ]
264
- _parent_attrs = Dict [str , Any ]
263
+ _parent : Optional [base .RESTObject ]
264
+ _parent_attrs : Dict [str , Any ]
265
265
_path : Optional [str ]
266
266
gitlab : gitlab .Gitlab
267
267
@@ -328,8 +328,8 @@ class UpdateMixin(_RestManagerBase):
328
328
_computed_path : Optional [str ]
329
329
_from_parent_attrs : Dict [str , Any ]
330
330
_obj_cls : Optional [Type [base .RESTObject ]]
331
- _parent = Optional [base .RESTObject ]
332
- _parent_attrs = Dict [str , Any ]
331
+ _parent : Optional [base .RESTObject ]
332
+ _parent_attrs : Dict [str , Any ]
333
333
_path : Optional [str ]
334
334
_update_uses_post : bool = False
335
335
gitlab : gitlab .Gitlab
@@ -422,8 +422,8 @@ class SetMixin(_RestManagerBase):
422
422
_computed_path : Optional [str ]
423
423
_from_parent_attrs : Dict [str , Any ]
424
424
_obj_cls : Optional [Type [base .RESTObject ]]
425
- _parent = Optional [base .RESTObject ]
426
- _parent_attrs = Dict [str , Any ]
425
+ _parent : Optional [base .RESTObject ]
426
+ _parent_attrs : Dict [str , Any ]
427
427
_path : Optional [str ]
428
428
gitlab : gitlab .Gitlab
429
429
@@ -456,8 +456,8 @@ class DeleteMixin(_RestManagerBase):
456
456
_computed_path : Optional [str ]
457
457
_from_parent_attrs : Dict [str , Any ]
458
458
_obj_cls : Optional [Type [base .RESTObject ]]
459
- _parent = Optional [base .RESTObject ]
460
- _parent_attrs = Dict [str , Any ]
459
+ _parent : Optional [base .RESTObject ]
460
+ _parent_attrs : Dict [str , Any ]
461
461
_path : Optional [str ]
462
462
gitlab : gitlab .Gitlab
463
463
@@ -486,8 +486,8 @@ class CRUDMixin(GetMixin, ListMixin, CreateMixin, UpdateMixin, DeleteMixin):
486
486
_computed_path : Optional [str ]
487
487
_from_parent_attrs : Dict [str , Any ]
488
488
_obj_cls : Optional [Type [base .RESTObject ]]
489
- _parent = Optional [base .RESTObject ]
490
- _parent_attrs = Dict [str , Any ]
489
+ _parent : Optional [base .RESTObject ]
490
+ _parent_attrs : Dict [str , Any ]
491
491
_path : Optional [str ]
492
492
gitlab : gitlab .Gitlab
493
493
@@ -498,8 +498,8 @@ class NoUpdateMixin(GetMixin, ListMixin, CreateMixin, DeleteMixin):
498
498
_computed_path : Optional [str ]
499
499
_from_parent_attrs : Dict [str , Any ]
500
500
_obj_cls : Optional [Type [base .RESTObject ]]
501
- _parent = Optional [base .RESTObject ]
502
- _parent_attrs = Dict [str , Any ]
501
+ _parent : Optional [base .RESTObject ]
502
+ _parent_attrs : Dict [str , Any ]
503
503
_path : Optional [str ]
504
504
gitlab : gitlab .Gitlab
505
505
@@ -509,13 +509,12 @@ class NoUpdateMixin(GetMixin, ListMixin, CreateMixin, DeleteMixin):
509
509
class SaveMixin (_RestObjectBase ):
510
510
"""Mixin for RESTObject's that can be updated."""
511
511
512
- manager : UpdateMixin
513
-
514
512
_id_attr : Optional [str ]
515
513
_attrs : Dict [str , Any ]
516
514
_module : ModuleType
517
515
_parent_attrs : Dict [str , Any ]
518
516
_updated_attrs : Dict [str , Any ]
517
+ manager : base .RESTManager
519
518
520
519
def _get_updated_data (self ) -> Dict [str , Any ]:
521
520
updated_data = {}
@@ -546,6 +545,8 @@ def save(self, **kwargs: Any) -> None:
546
545
547
546
# call the manager
548
547
obj_id = self .get_id ()
548
+ if TYPE_CHECKING :
549
+ assert isinstance (self .manager , UpdateMixin )
549
550
server_data = self .manager .update (obj_id , updated_data , ** kwargs )
550
551
if server_data is not None :
551
552
self ._update_attrs (server_data )
@@ -554,13 +555,12 @@ def save(self, **kwargs: Any) -> None:
554
555
class ObjectDeleteMixin (_RestObjectBase ):
555
556
"""Mixin for RESTObject's that can be deleted."""
556
557
557
- manager : DeleteMixin
558
-
559
558
_id_attr : Optional [str ]
560
559
_attrs : Dict [str , Any ]
561
560
_module : ModuleType
562
561
_parent_attrs : Dict [str , Any ]
563
562
_updated_attrs : Dict [str , Any ]
563
+ manager : base .RESTManager
564
564
565
565
def delete (self , ** kwargs : Any ) -> None :
566
566
"""Delete the object from the server.
@@ -572,6 +572,8 @@ def delete(self, **kwargs: Any) -> None:
572
572
GitlabAuthenticationError: If authentication is not correct
573
573
GitlabDeleteError: If the server cannot perform the request
574
574
"""
575
+ if TYPE_CHECKING :
576
+ assert isinstance (self .manager , DeleteMixin )
575
577
self .manager .delete (self .get_id ())
576
578
577
579
0 commit comments