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 os
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")
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
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)
return os.path.join(self.base_path, path)
return _wrapped
return cast(F, _wrapped)
class MediaFilePaths: