From a1a246fbfcf530732249a263ee42757a862181aa Mon Sep 17 00:00:00 2001 From: "John L. Villalovos" Date: Tue, 31 May 2022 16:07:42 -0700 Subject: chore: have `EncodedId` creation always return `EncodedId` There is no reason to return an `int` as we can always return a `str` version of the `int` Change `EncodedId` to always return an `EncodedId`. This removes the need to have `mypy` ignore the error raised. --- gitlab/utils.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'gitlab/utils.py') diff --git a/gitlab/utils.py b/gitlab/utils.py index e8eb941..7c94569 100644 --- a/gitlab/utils.py +++ b/gitlab/utils.py @@ -113,16 +113,14 @@ class EncodedId(str): https://docs.gitlab.com/ee/api/index.html#path-parameters """ - # mypy complains if return type other than the class type. So we ignore issue. - def __new__( # type: ignore - cls, value: Union[str, int, "EncodedId"] - ) -> Union[int, "EncodedId"]: - if isinstance(value, (int, EncodedId)): + def __new__(cls, value: Union[str, int, "EncodedId"]) -> "EncodedId": + if isinstance(value, EncodedId): return value - if not isinstance(value, str): + if not isinstance(value, (int, str)): raise TypeError(f"Unsupported type received: {type(value)}") - value = urllib.parse.quote(value, safe="") + if isinstance(value, str): + value = urllib.parse.quote(value, safe="") return super().__new__(cls, value) -- cgit v1.2.1