|
1 | 1 | import logging |
| 2 | +import typing as t |
2 | 3 | from calendar import timegm |
3 | 4 | from datetime import datetime |
4 | 5 | from functools import wraps |
5 | 6 | from importlib import import_module |
6 | 7 |
|
7 | 8 | from django.conf import settings |
8 | 9 | from django.utils.functional import lazy |
9 | | -from django.utils.timezone import is_naive, make_aware |
10 | 10 |
|
11 | 11 | from ninja_jwt import exceptions |
12 | 12 |
|
@@ -43,35 +43,35 @@ def import_callable(path_or_callable): |
43 | 43 | return getattr(packages, attr) |
44 | 44 |
|
45 | 45 |
|
46 | | -def make_utc(dt): |
47 | | - if settings.USE_TZ and is_naive(dt): |
48 | | - return make_aware(dt, timezone=timezone.utc) |
| 46 | +def make_utc(dt: datetime) -> datetime: |
| 47 | + if settings.USE_TZ and dt.tzinfo is None: |
| 48 | + return dt.replace(tzinfo=timezone.utc) |
49 | 49 |
|
50 | 50 | return dt |
51 | 51 |
|
52 | 52 |
|
53 | | -def aware_utcnow(): |
| 53 | +def aware_utcnow() -> datetime: |
54 | 54 | dt = datetime.now(tz=timezone.utc) |
55 | 55 | if not settings.USE_TZ: |
56 | 56 | dt = dt.replace(tzinfo=None) |
57 | 57 |
|
58 | 58 | return dt |
59 | 59 |
|
60 | 60 |
|
61 | | -def datetime_to_epoch(dt): |
| 61 | +def datetime_to_epoch(dt: datetime) -> int: |
62 | 62 | return timegm(dt.utctimetuple()) |
63 | 63 |
|
64 | 64 |
|
65 | | -def datetime_from_epoch(ts): |
| 65 | +def datetime_from_epoch(ts: float) -> datetime: |
66 | 66 | dt = datetime.fromtimestamp(ts, tz=timezone.utc) |
67 | 67 | if not settings.USE_TZ: |
68 | 68 | dt = dt.replace(tzinfo=None) |
69 | 69 |
|
70 | 70 | return dt |
71 | 71 |
|
72 | 72 |
|
73 | | -def format_lazy(s, *args, **kwargs): |
| 73 | +def format_lazy(s: str, *args, **kwargs) -> str: |
74 | 74 | return s.format(*args, **kwargs) |
75 | 75 |
|
76 | 76 |
|
77 | | -format_lazy = lazy(format_lazy, str) |
| 77 | +format_lazy: t.Callable = lazy(format_lazy, str) |
0 commit comments