@@ -75,8 +75,8 @@ class GetMixin(_RestManagerBase):
7575_computed_path :Optional [str ]
7676_from_parent_attrs :Dict [str ,Any ]
7777_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 ]
8080_path :Optional [str ]
8181gitlab :gitlab .Gitlab
8282
@@ -119,8 +119,8 @@ class GetWithoutIdMixin(_RestManagerBase):
119119_computed_path :Optional [str ]
120120_from_parent_attrs :Dict [str ,Any ]
121121_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 ]
124124_path :Optional [str ]
125125gitlab :gitlab .Gitlab
126126
@@ -188,8 +188,8 @@ class ListMixin(_RestManagerBase):
188188_computed_path :Optional [str ]
189189_from_parent_attrs :Dict [str ,Any ]
190190_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 ]
193193_path :Optional [str ]
194194gitlab :gitlab .Gitlab
195195
@@ -248,8 +248,8 @@ class RetrieveMixin(ListMixin, GetMixin):
248248_computed_path :Optional [str ]
249249_from_parent_attrs :Dict [str ,Any ]
250250_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 ]
253253_path :Optional [str ]
254254gitlab :gitlab .Gitlab
255255
@@ -260,8 +260,8 @@ class CreateMixin(_RestManagerBase):
260260_computed_path :Optional [str ]
261261_from_parent_attrs :Dict [str ,Any ]
262262_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 ]
265265_path :Optional [str ]
266266gitlab :gitlab .Gitlab
267267
@@ -328,8 +328,8 @@ class UpdateMixin(_RestManagerBase):
328328_computed_path :Optional [str ]
329329_from_parent_attrs :Dict [str ,Any ]
330330_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 ]
333333_path :Optional [str ]
334334_update_uses_post :bool = False
335335gitlab :gitlab .Gitlab
@@ -422,8 +422,8 @@ class SetMixin(_RestManagerBase):
422422_computed_path :Optional [str ]
423423_from_parent_attrs :Dict [str ,Any ]
424424_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 ]
427427_path :Optional [str ]
428428gitlab :gitlab .Gitlab
429429
@@ -456,8 +456,8 @@ class DeleteMixin(_RestManagerBase):
456456_computed_path :Optional [str ]
457457_from_parent_attrs :Dict [str ,Any ]
458458_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 ]
461461_path :Optional [str ]
462462gitlab :gitlab .Gitlab
463463
@@ -486,8 +486,8 @@ class CRUDMixin(GetMixin, ListMixin, CreateMixin, UpdateMixin, DeleteMixin):
486486_computed_path :Optional [str ]
487487_from_parent_attrs :Dict [str ,Any ]
488488_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 ]
491491_path :Optional [str ]
492492gitlab :gitlab .Gitlab
493493
@@ -498,8 +498,8 @@ class NoUpdateMixin(GetMixin, ListMixin, CreateMixin, DeleteMixin):
498498_computed_path :Optional [str ]
499499_from_parent_attrs :Dict [str ,Any ]
500500_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 ]
503503_path :Optional [str ]
504504gitlab :gitlab .Gitlab
505505
@@ -509,13 +509,12 @@ class NoUpdateMixin(GetMixin, ListMixin, CreateMixin, DeleteMixin):
509509class SaveMixin (_RestObjectBase ):
510510"""Mixin for RESTObject's that can be updated."""
511511
512- manager :UpdateMixin
513-
514512_id_attr :Optional [str ]
515513_attrs :Dict [str ,Any ]
516514_module :ModuleType
517515_parent_attrs :Dict [str ,Any ]
518516_updated_attrs :Dict [str ,Any ]
517+ manager :base .RESTManager
519518
520519def _get_updated_data (self )-> Dict [str ,Any ]:
521520updated_data = {}
@@ -546,6 +545,8 @@ def save(self, **kwargs: Any) -> None:
546545
547546# call the manager
548547obj_id = self .get_id ()
548+ if TYPE_CHECKING :
549+ assert isinstance (self .manager ,UpdateMixin )
549550server_data = self .manager .update (obj_id ,updated_data ,** kwargs )
550551if server_data is not None :
551552self ._update_attrs (server_data )
@@ -554,13 +555,12 @@ def save(self, **kwargs: Any) -> None:
554555class ObjectDeleteMixin (_RestObjectBase ):
555556"""Mixin for RESTObject's that can be deleted."""
556557
557- manager :DeleteMixin
558-
559558_id_attr :Optional [str ]
560559_attrs :Dict [str ,Any ]
561560_module :ModuleType
562561_parent_attrs :Dict [str ,Any ]
563562_updated_attrs :Dict [str ,Any ]
563+ manager :base .RESTManager
564564
565565def delete (self ,** kwargs :Any )-> None :
566566"""Delete the object from the server.
@@ -572,6 +572,8 @@ def delete(self, **kwargs: Any) -> None:
572572 GitlabAuthenticationError: If authentication is not correct
573573 GitlabDeleteError: If the server cannot perform the request
574574 """
575+ if TYPE_CHECKING :
576+ assert isinstance (self .manager ,DeleteMixin )
575577self .manager .delete (self .get_id ())
576578
577579