Skip to content

Commit 5b18d20

Browse files
authored
Merge pull request #1398 from JohnVillalovos/jlvillal/mypy_mixins
fix: correct some type-hints in gitlab/mixins.py
2 parents fc4f7fd + 8bd3124 commit 5b18d20

File tree

1 file changed

+26
-24
lines changed

1 file changed

+26
-24
lines changed

gitlab/mixins.py

+26-24
Original file line numberDiff line numberDiff line change
@@ -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]
8181
gitlab: 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]
125125
gitlab: 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]
194194
gitlab: 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]
254254
gitlab: 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]
266266
gitlab: 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
335335
gitlab: 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]
428428
gitlab: 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]
462462
gitlab: 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]
492492
gitlab: 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]
504504
gitlab: gitlab.Gitlab
505505

@@ -509,13 +509,12 @@ class NoUpdateMixin(GetMixin, ListMixin, CreateMixin, DeleteMixin):
509509
class 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

520519
def _get_updated_data(self) -> Dict[str, Any]:
521520
updated_data = {}
@@ -546,6 +545,8 @@ def save(self, **kwargs: Any) -> None:
546545

547546
# call the manager
548547
obj_id = self.get_id()
548+
if TYPE_CHECKING:
549+
assert isinstance(self.manager, UpdateMixin)
549550
server_data = self.manager.update(obj_id, updated_data, **kwargs)
550551
if server_data is not None:
551552
self._update_attrs(server_data)
@@ -554,13 +555,12 @@ def save(self, **kwargs: Any) -> None:
554555
class 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

565565
def 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)
575577
self.manager.delete(self.get_id())
576578

577579

0 commit comments

Comments
 (0)