Update _wrap_in_base_path type hints to preserve function arguments (#11055)

This commit is contained in:
Sean Quah 2021-10-12 18:19:21 +01:00 committed by GitHub
parent 77ea03086c
commit 8eaffe013c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 3 deletions

1
changelog.d/11055.misc Normal file
View File

@ -0,0 +1 @@
Improve type hints for `_wrap_in_base_path` decorator used by `MediaFilePaths`.

View File

@ -16,12 +16,15 @@
import functools import functools
import os import os
import re import re
from typing import Any, Callable, List from typing import Any, Callable, List, TypeVar, cast
NEW_FORMAT_ID_RE = re.compile(r"^\d\d\d\d-\d\d-\d\d") NEW_FORMAT_ID_RE = re.compile(r"^\d\d\d\d-\d\d-\d\d")
def _wrap_in_base_path(func: Callable[..., str]) -> Callable[..., str]: F = TypeVar("F", bound=Callable[..., str])
def _wrap_in_base_path(func: F) -> F:
"""Takes a function that returns a relative path and turns it into an """Takes a function that returns a relative path and turns it into an
absolute path based on the location of the primary media store absolute path based on the location of the primary media store
""" """
@ -31,7 +34,7 @@ def _wrap_in_base_path(func: Callable[..., str]) -> Callable[..., str]:
path = func(self, *args, **kwargs) path = func(self, *args, **kwargs)
return os.path.join(self.base_path, path) return os.path.join(self.base_path, path)
return _wrapped return cast(F, _wrapped)
class MediaFilePaths: class MediaFilePaths: