Skip to content

Commit 47e1e41

Browse files
authored
Adds TaskFormatter (#202)
Closes #146
1 parent 5b9894a commit 47e1e41

File tree

3 files changed

+44
-5
lines changed

3 files changed

+44
-5
lines changed

celery-stubs/app/log.pyi

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
1-
from logging import Logger
1+
from logging import Logger, LogRecord
22
from typing import Any
33

44
from celery.app.base import Celery
5-
from celery.utils.log import LoggingProxy
6-
from celery.utils.term import colored as colored_
5+
from celery.local import class_property
6+
from celery.utils.log import ColorFormatter, LoggingProxy
7+
from celery.utils.term import colored
8+
from typing_extensions import override
9+
10+
__all__ = ("Logging", "TaskFormatter")
11+
12+
class TaskFormatter(ColorFormatter):
13+
@override
14+
def format(self, record: LogRecord) -> str: ...
715

816
class Logging:
917
app: Celery
@@ -52,7 +60,7 @@ class Logging:
5260
) -> bool: ...
5361
def colored(
5462
self, logfile: Any | None = ..., enabled: bool | None = ...
55-
) -> colored_: ...
63+
) -> colored: ...
5664
def setup_handlers(
5765
self,
5866
logger: Logger,
@@ -63,3 +71,7 @@ class Logging:
6371
**kwargs: Any,
6472
) -> Logger: ...
6573
def get_default_logger(self, name: str = ..., **kwargs: Any) -> Logger: ...
74+
@class_property
75+
def already_setup(self) -> bool: ... # pyright: ignore[reportRedeclaration]
76+
@already_setup.setter # type: ignore[no-redef]
77+
def already_setup(self, was_setup: bool) -> None: ...

celery-stubs/local.pyi

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from collections.abc import Callable
2+
from typing import Generic, TypeAlias, TypeVar
3+
4+
from typing_extensions import Self
5+
6+
_T = TypeVar("_T")
7+
_R = TypeVar("_R")
8+
9+
_Getter: TypeAlias = Callable[[_T], _R]
10+
_Setter: TypeAlias = Callable[[_T, _R], None]
11+
12+
class class_property(Generic[_T, _R]):
13+
__get: _Getter[_T, _R]
14+
__set: _Setter[_T, _R] | None
15+
def __init__(
16+
self,
17+
getter: _Getter[_T, _R],
18+
setter: _Setter[_T, _R] | None = None,
19+
) -> None: ...
20+
def __get__(self, obj: _T | None, type: type[_T] | None = None) -> _R: ...
21+
def __set__(self, obj: _T | None, value: _R) -> Self: ...
22+
def setter(self, setter: _Setter[_T, _R]) -> Self: ...

celery-stubs/utils/log.pyi

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
from logging import Formatter, Logger
1+
from logging import Formatter, Logger, LogRecord, _SysExcInfoType
22
from typing import ClassVar
33

44
from celery.utils.term import colored
5+
from typing_extensions import override
56

67
class LoggingProxy: ...
78

@@ -17,3 +18,7 @@ class ColorFormatter(Formatter):
1718
COLORS: ClassVar[dict[str, colored]]
1819
colors: ClassVar[dict[str, colored]]
1920
def __init__(self, fmt: str | None = ..., use_color: bool = ...) -> None: ...
21+
@override
22+
def formatException(self, ei: _SysExcInfoType) -> str: ...
23+
@override
24+
def format(self, record: LogRecord) -> str: ...

0 commit comments

Comments
 (0)