dycw-utilities 0.131.5__py3-none-any.whl → 0.131.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dycw-utilities
3
- Version: 0.131.5
3
+ Version: 0.131.6
4
4
  Author-email: Derek Wan <d.wan@icloud.com>
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.12
@@ -1,4 +1,4 @@
1
- utilities/__init__.py,sha256=MtzNC7sc7Go6N1zP7sgvZHDH3FNWCXCzEukoDNvyfZk,60
1
+ utilities/__init__.py,sha256=IYqBm-WAwWhDKdOqlSq4UGAvQ_vBiK8qzv2Mq0YUuRo,60
2
2
  utilities/aiolimiter.py,sha256=mD0wEiqMgwpty4XTbawFpnkkmJS6R4JRsVXFUaoitSU,628
3
3
  utilities/altair.py,sha256=HeZBVUocjkrTNwwKrClppsIqgNFF-ykv05HfZSoHYno,9104
4
4
  utilities/asyncio.py,sha256=lvdgBhuMtxq0dpiwF9g2WMMrit3kqXibN1V5NZ4xdbo,38046
@@ -88,10 +88,10 @@ utilities/uuid.py,sha256=jJTFxz-CWgltqNuzmythB7iEQ-Q1mCwPevUfKthZT3c,611
88
88
  utilities/version.py,sha256=ufhJMmI6KPs1-3wBI71aj5wCukd3sP_m11usLe88DNA,5117
89
89
  utilities/warnings.py,sha256=un1LvHv70PU-LLv8RxPVmugTzDJkkGXRMZTE2-fTQHw,1771
90
90
  utilities/whenever.py,sha256=jS31ZAY5OMxFxLja_Yo5Fidi87Pd-GoVZ7Vi_teqVDA,16743
91
- utilities/whenever2.py,sha256=GgfMrRbjGVjQNtuYuGNnPqeGl-DF6EHIFDa2A41k5aQ,4380
91
+ utilities/whenever2.py,sha256=XxiAEp4onJNhIi6G7L2HuzkMJZGA3j-I_fuXxmb5vtY,5432
92
92
  utilities/zipfile.py,sha256=24lQc9ATcJxHXBPc_tBDiJk48pWyRrlxO2fIsFxU0A8,699
93
93
  utilities/zoneinfo.py,sha256=tvcgu3QzDxe2suTexi2QzRGpin7VK1TjHa0JYYxT69I,1862
94
- dycw_utilities-0.131.5.dist-info/METADATA,sha256=eVaJ0DASMuOtpOWJ1UFB5YlCame2VQKXPir1EZs9Ebw,1584
95
- dycw_utilities-0.131.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
96
- dycw_utilities-0.131.5.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
97
- dycw_utilities-0.131.5.dist-info/RECORD,,
94
+ dycw_utilities-0.131.6.dist-info/METADATA,sha256=zhPwLa5dVaZ2tcdTMMoh-HOc348fcu3Q5_pgsCsb40A,1584
95
+ dycw_utilities-0.131.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
96
+ dycw_utilities-0.131.6.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
97
+ dycw_utilities-0.131.6.dist-info/RECORD,,
utilities/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  from __future__ import annotations
2
2
 
3
- __version__ = "0.131.5"
3
+ __version__ = "0.131.6"
utilities/whenever2.py CHANGED
@@ -5,7 +5,15 @@ from functools import cache
5
5
  from logging import LogRecord
6
6
  from typing import TYPE_CHECKING, Any, override
7
7
 
8
- from whenever import Date, DateTimeDelta, PlainDateTime, ZonedDateTime
8
+ from whenever import (
9
+ Date,
10
+ DateDelta,
11
+ DateTimeDelta,
12
+ PlainDateTime,
13
+ Time,
14
+ TimeDelta,
15
+ ZonedDateTime,
16
+ )
9
17
 
10
18
  from utilities.zoneinfo import UTC, get_time_zone_name
11
19
 
@@ -15,8 +23,15 @@ if TYPE_CHECKING:
15
23
  from utilities.types import TimeZoneLike
16
24
 
17
25
 
26
+ ## bounds
27
+
28
+
18
29
  DATE_MIN = Date.from_py_date(dt.date.min)
19
30
  DATE_MAX = Date.from_py_date(dt.date.max)
31
+ TIME_MIN = Time.from_py_time(dt.time.min)
32
+ TIME_MAX = Time.from_py_time(dt.time.max)
33
+
34
+
20
35
  PLAIN_DATE_TIME_MIN = PlainDateTime.from_py_datetime(dt.datetime.min) # noqa: DTZ901
21
36
  PLAIN_DATE_TIME_MAX = PlainDateTime.from_py_datetime(dt.datetime.max) # noqa: DTZ901
22
37
  ZONED_DATE_TIME_MIN = PLAIN_DATE_TIME_MIN.assume_tz(UTC.key)
@@ -28,10 +43,24 @@ DATE_DELTA_MAX = DATE_TIME_DELTA_MAX.date_part()
28
43
  TIME_DELTA_MIN = DATE_TIME_DELTA_MIN.time_part()
29
44
  TIME_DELTA_MAX = DATE_TIME_DELTA_MAX.time_part()
30
45
 
31
- DATE_TIME_DELTA_PARSABLE_MIN = DateTimeDelta(days=-999999)
32
- DATE_TIME_DELTA_PARSABLE_MAX = DateTimeDelta(days=999999)
33
- DATE_DELTA_PARSABLE_MIN = DATE_TIME_DELTA_PARSABLE_MIN.date_part()
34
- DATE_DELTA_PARSABLE_MAX = DATE_TIME_DELTA_PARSABLE_MAX.date_part()
46
+
47
+ DATE_TIME_DELTA_PARSABLE_MIN = DateTimeDelta(days=-999999, seconds=-316192377600)
48
+ DATE_TIME_DELTA_PARSABLE_MAX = DateTimeDelta(days=999999, seconds=316192377600)
49
+ DATE_DELTA_PARSABLE_MIN = DateDelta(days=-999999)
50
+ DATE_DELTA_PARSABLE_MAX = DateDelta(days=999999)
51
+
52
+
53
+ ## common constants
54
+
55
+
56
+ ZERO_TIME = Time()
57
+ MICROSECOND = TimeDelta(microseconds=1)
58
+ MILLISECOND = TimeDelta(milliseconds=1)
59
+ SECOND = TimeDelta(seconds=1)
60
+ MINUTE = TimeDelta(minutes=1)
61
+ HOUR = TimeDelta(hours=1)
62
+ DAY = DateDelta(days=1)
63
+ WEEK = DateDelta(weeks=1)
35
64
 
36
65
 
37
66
  ##
@@ -68,6 +97,28 @@ def get_now_local() -> ZonedDateTime:
68
97
  return get_now(time_zone="local")
69
98
 
70
99
 
100
+ NOW_LOCAL = get_now_local()
101
+
102
+
103
+ ##
104
+
105
+
106
+ def get_today(*, time_zone: TimeZoneLike = UTC) -> Date:
107
+ """Get the current, timezone-aware local date."""
108
+ return get_now(time_zone=time_zone).date()
109
+
110
+
111
+ TODAY_UTC = get_today(time_zone=UTC)
112
+
113
+
114
+ def get_today_local() -> Date:
115
+ """Get the current, timezone-aware local date."""
116
+ return get_today(time_zone="local")
117
+
118
+
119
+ TODAY_LOCAL = get_today_local()
120
+
121
+
71
122
  ##
72
123
 
73
124
 
@@ -132,10 +183,23 @@ __all__ = [
132
183
  "DATE_TIME_DELTA_MIN",
133
184
  "DATE_TIME_DELTA_PARSABLE_MAX",
134
185
  "DATE_TIME_DELTA_PARSABLE_MIN",
186
+ "DAY",
187
+ "HOUR",
188
+ "MICROSECOND",
189
+ "MILLISECOND",
190
+ "MINUTE",
191
+ "NOW_LOCAL",
135
192
  "PLAIN_DATE_TIME_MAX",
136
193
  "PLAIN_DATE_TIME_MIN",
194
+ "SECOND",
137
195
  "TIME_DELTA_MAX",
138
196
  "TIME_DELTA_MIN",
197
+ "TIME_MAX",
198
+ "TIME_MIN",
199
+ "TODAY_LOCAL",
200
+ "TODAY_UTC",
201
+ "WEEK",
202
+ "ZERO_TIME",
139
203
  "ZONED_DATE_TIME_MAX",
140
204
  "ZONED_DATE_TIME_MIN",
141
205
  "WheneverLogRecord",
@@ -143,6 +207,7 @@ __all__ = [
143
207
  "from_timestamp_millis",
144
208
  "from_timestamp_nanos",
145
209
  "get_now",
146
- "get_now",
147
210
  "get_now_local",
211
+ "get_today",
212
+ "get_today_local",
148
213
  ]