| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent a91a303 commit d04e557
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,3 +1,5 @@ | |||
| 1 | + from typing import Any, cast, Dict, Optional, TYPE_CHECKING, Union | ||
| 2 | + | ||
| 1 | 3 | from gitlab import exceptions as exc | |
| 2 | 4 | from gitlab.base import RequiredOptional, RESTManager, RESTObject | |
| 3 | 5 | from gitlab.mixins import ( | |
@@ -22,10 +24,11 @@ | |||
| 22 | 24 | ||
| 23 | 25 | class GroupLabel(SubscribableMixin, SaveMixin, ObjectDeleteMixin, RESTObject): | |
| 24 | 26 | _id_attr = "name" | |
| 27 | + manager: "GroupLabelManager" | ||
| 25 | 28 | ||
| 26 | 29 | # Update without ID, but we need an ID to get from list. | |
| 27 | 30 | @exc.on_http_error(exc.GitlabUpdateError) | |
| 28 | - def save(self, **kwargs): | ||
| 31 | + def save(self, **kwargs: Any) -> None: | ||
| 29 | 32 | """Saves the changes made to the object to the server. | |
| 30 | 33 | ||
| 31 | 34 | The object is updated to match what the server returns. | |
@@ -56,7 +59,14 @@ class GroupLabelManager(ListMixin, CreateMixin, UpdateMixin, DeleteMixin, RESTMa | |||
| 56 | 59 | ) | |
| 57 | 60 | ||
| 58 | 61 | # Update without ID. | |
| 59 | - def update(self, name, new_data=None, **kwargs): | ||
| 62 | + # NOTE(jlvillal): Signature doesn't match UpdateMixin.update() so ignore | ||
| 63 | + # type error | ||
| 64 | + def update( # type: ignore | ||
| 65 | + self, | ||
| 66 | + name: Optional[str], | ||
| 67 | + new_data: Optional[Dict[str, Any]] = None, | ||
| 68 | + **kwargs: Any | ||
| 69 | + ) -> Dict[str, Any]: | ||
| 60 | 70 | """Update a Label on the server. | |
| 61 | 71 | ||
| 62 | 72 | Args: | |
@@ -70,7 +80,9 @@ def update(self, name, new_data=None, **kwargs): | |||
| 70 | 80 | ||
| 71 | 81 | # Delete without ID. | |
| 72 | 82 | @exc.on_http_error(exc.GitlabDeleteError) | |
| 73 | - def delete(self, name, **kwargs): | ||
| 83 | + # NOTE(jlvillal): Signature doesn't match DeleteMixin.delete() so ignore | ||
| 84 | + # type error | ||
| 85 | + def delete(self, name: str, **kwargs: Any) -> None: # type: ignore | ||
| 74 | 86 | """Delete a Label on the server. | |
| 75 | 87 | ||
| 76 | 88 | Args: | |
@@ -81,17 +93,20 @@ def delete(self, name, **kwargs): | |||
| 81 | 93 | GitlabAuthenticationError: If authentication is not correct | |
| 82 | 94 | GitlabDeleteError: If the server cannot perform the request | |
| 83 | 95 | """ | |
| 96 | + if TYPE_CHECKING: | ||
| 97 | + assert self.path is not None | ||
| 84 | 98 | self.gitlab.http_delete(self.path, query_data={"name": name}, **kwargs) | |
| 85 | 99 | ||
| 86 | 100 | ||
| 87 | 101 | class ProjectLabel( | |
| 88 | 102 | PromoteMixin, SubscribableMixin, SaveMixin, ObjectDeleteMixin, RESTObject | |
| 89 | 103 | ): | |
| 90 | 104 | _id_attr = "name" | |
| 105 | + manager: "ProjectLabelManager" | ||
| 91 | 106 | ||
| 92 | 107 | # Update without ID, but we need an ID to get from list. | |
| 93 | 108 | @exc.on_http_error(exc.GitlabUpdateError) | |
| 94 | - def save(self, **kwargs): | ||
| 109 | + def save(self, **kwargs: Any) -> None: | ||
| 95 | 110 | """Saves the changes made to the object to the server. | |
| 96 | 111 | ||
| 97 | 112 | The object is updated to match what the server returns. | |
@@ -123,8 +138,20 @@ class ProjectLabelManager( | |||
| 123 | 138 | required=("name",), optional=("new_name", "color", "description", "priority") | |
| 124 | 139 | ) | |
| 125 | 140 | ||
| 141 | + def get( | ||
| 142 | + self, id: Union[str, int], lazy: bool = False, **kwargs: Any | ||
| 143 | + ) -> ProjectLabel: | ||
| 144 | + return cast(ProjectLabel, super().get(id=id, lazy=lazy, **kwargs)) | ||
| 145 | + | ||
| 126 | 146 | # Update without ID. | |
| 127 | - def update(self, name, new_data=None, **kwargs): | ||
| 147 | + # NOTE(jlvillal): Signature doesn't match UpdateMixin.update() so ignore | ||
| 148 | + # type error | ||
| 149 | + def update( # type: ignore | ||
| 150 | + self, | ||
| 151 | + name: Optional[str], | ||
| 152 | + new_data: Optional[Dict[str, Any]] = None, | ||
| 153 | + **kwargs: Any | ||
| 154 | + ) -> Dict[str, Any]: | ||
| 128 | 155 | """Update a Label on the server. | |
| 129 | 156 | ||
| 130 | 157 | Args: | |
@@ -138,7 +165,9 @@ def update(self, name, new_data=None, **kwargs): | |||
| 138 | 165 | ||
| 139 | 166 | # Delete without ID. | |
| 140 | 167 | @exc.on_http_error(exc.GitlabDeleteError) | |
| 141 | - def delete(self, name, **kwargs): | ||
| 168 | + # NOTE(jlvillal): Signature doesn't match DeleteMixin.delete() so ignore | ||
| 169 | + # type error | ||
| 170 | + def delete(self, name: str, **kwargs: Any) -> None: # type: ignore | ||
| 142 | 171 | """Delete a Label on the server. | |
| 143 | 172 | ||
| 144 | 173 | Args: | |
@@ -149,4 +178,6 @@ def delete(self, name, **kwargs): | |||
| 149 | 178 | GitlabAuthenticationError: If authentication is not correct | |
| 150 | 179 | GitlabDeleteError: If the server cannot perform the request | |
| 151 | 180 | """ | |
| 181 | + if TYPE_CHECKING: | ||
| 182 | + assert self.path is not None | ||
| 152 | 183 | self.gitlab.http_delete(self.path, query_data={"name": name}, **kwargs) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -13,7 +13,6 @@ module = [ | |||
| 13 | 13 | "docs.*", | |
| 14 | 14 | "docs.ext.*", | |
| 15 | 15 | "gitlab.v4.objects.files", | |
| 16 | - "gitlab.v4.objects.labels", | ||
| 17 | 16 | "tests.functional.*", | |
| 18 | 17 | "tests.functional.api.*", | |
| 19 | 18 | "tests.meta.*", | |
| Back | FazBrowse Home | New Git URL |
0 commit comments