##// END OF EJS Templates
Add _warn_deprecated()
Nils Müller -
Show More
@@ -1,75 +1,84 b''
1 # encoding: utf-8
1 # encoding: utf-8
2 """
2 """
3 Timezone utilities
3 Timezone utilities
4
4
5 Just UTC-awareness right now
5 Just UTC-awareness right now
6
6
7 Deprecated since IPython 8.19.0.
7 Deprecated since IPython 8.19.0.
8 """
8 """
9
9
10 # -----------------------------------------------------------------------------
10 # -----------------------------------------------------------------------------
11 # Copyright (C) 2013 The IPython Development Team
11 # Copyright (C) 2013 The IPython Development Team
12 #
12 #
13 # Distributed under the terms of the BSD License. The full license is in
13 # Distributed under the terms of the BSD License. The full license is in
14 # the file COPYING, distributed as part of this software.
14 # the file COPYING, distributed as part of this software.
15 # -----------------------------------------------------------------------------
15 # -----------------------------------------------------------------------------
16
16
17 # -----------------------------------------------------------------------------
17 # -----------------------------------------------------------------------------
18 # Imports
18 # Imports
19 # -----------------------------------------------------------------------------
19 # -----------------------------------------------------------------------------
20
20
21 import warnings
21 import warnings
22 from datetime import tzinfo, timedelta, datetime
22 from datetime import tzinfo, timedelta, datetime
23
23
24 # -----------------------------------------------------------------------------
24 # -----------------------------------------------------------------------------
25 # Code
25 # Code
26 # -----------------------------------------------------------------------------
26 # -----------------------------------------------------------------------------
27
28 __all__ = ["tzUTC", "utc_aware", "utcfromtimestamp", "utcnow"]
27 __all__ = ["tzUTC", "utc_aware", "utcfromtimestamp", "utcnow"]
29
28
29 # Enable display of DeprecrationWarning for this module explicitly.
30 warnings.filterwarnings("default", category=DeprecationWarning, module=__name__)
31
30 # constant for zero offset
32 # constant for zero offset
31 ZERO = timedelta(0)
33 ZERO = timedelta(0)
32
34
33
35
34 def __getattr__(name):
36 def __getattr__(name):
35 if name not in __all__:
37 if name not in __all__:
36 err = f"IPython.utils.tz is deprecated and has no attribute {name}"
38 err = f"IPython.utils.tz is deprecated and has no attribute {name}"
37 raise AttributeError(err)
39 raise AttributeError(err)
38
40
39 msg = "The module `IPython.utils.tz` is deprecated and will be completely removed."
41 _warn_deprecated()
40 warnings.warn(msg, category=DeprecationWarning, stacklevel=2)
41
42
42 return getattr(name)
43 return getattr(name)
43
44
44
45
46 def _warn_deprecated():
47 msg = "The module `IPython.utils.tz` is deprecated and will be completely removed."
48 warnings.warn(msg, category=DeprecationWarning, stacklevel=2)
49
50
45 class tzUTC(tzinfo):
51 class tzUTC(tzinfo):
46 """tzinfo object for UTC (zero offset)
52 """tzinfo object for UTC (zero offset)
47
53
48 Deprecated since IPython 8.19.0.
54 Deprecated since IPython 8.19.0.
49 """
55 """
50
56
57 _warn_deprecated()
58
51 def utcoffset(self, d):
59 def utcoffset(self, d):
52 return ZERO
60 return ZERO
53
61
54 def dst(self, d):
62 def dst(self, d):
55 return ZERO
63 return ZERO
56
64
57
65
58 UTC = tzUTC() # type: ignore[abstract]
66 UTC = tzUTC() # type: ignore[abstract]
59
67
60
68
61 def utc_aware(unaware):
69 def utc_aware(unaware):
62 """decorator for adding UTC tzinfo to datetime's utcfoo methods
70 """decorator for adding UTC tzinfo to datetime's utcfoo methods
63
71
64 Deprecated since IPython 8.19.0.
72 Deprecated since IPython 8.19.0.
65 """
73 """
66
74
67 def utc_method(*args, **kwargs):
75 def utc_method(*args, **kwargs):
76 _warn_deprecated()
68 dt = unaware(*args, **kwargs)
77 dt = unaware(*args, **kwargs)
69 return dt.replace(tzinfo=UTC)
78 return dt.replace(tzinfo=UTC)
70
79
71 return utc_method
80 return utc_method
72
81
73
82
74 utcfromtimestamp = utc_aware(datetime.utcfromtimestamp)
83 utcfromtimestamp = utc_aware(datetime.utcfromtimestamp)
75 utcnow = utc_aware(datetime.utcnow)
84 utcnow = utc_aware(datetime.utcnow)
General Comments 0
You need to be logged in to leave comments. Login now