dycw-utilities 0.129.10__py3-none-any.whl → 0.175.17__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.
- dycw_utilities-0.175.17.dist-info/METADATA +34 -0
- dycw_utilities-0.175.17.dist-info/RECORD +103 -0
- dycw_utilities-0.175.17.dist-info/WHEEL +4 -0
- dycw_utilities-0.175.17.dist-info/entry_points.txt +4 -0
- utilities/__init__.py +1 -1
- utilities/altair.py +14 -14
- utilities/asyncio.py +350 -819
- utilities/atomicwrites.py +18 -6
- utilities/atools.py +77 -22
- utilities/cachetools.py +24 -29
- utilities/click.py +393 -237
- utilities/concurrent.py +8 -11
- utilities/contextlib.py +216 -17
- utilities/contextvars.py +20 -1
- utilities/cryptography.py +3 -3
- utilities/dataclasses.py +83 -118
- utilities/docker.py +293 -0
- utilities/enum.py +26 -23
- utilities/errors.py +17 -3
- utilities/fastapi.py +29 -65
- utilities/fpdf2.py +3 -3
- utilities/functions.py +169 -416
- utilities/functools.py +18 -19
- utilities/git.py +9 -30
- utilities/grp.py +28 -0
- utilities/gzip.py +31 -0
- utilities/http.py +3 -2
- utilities/hypothesis.py +738 -589
- utilities/importlib.py +17 -1
- utilities/inflect.py +25 -0
- utilities/iterables.py +194 -262
- utilities/jinja2.py +148 -0
- utilities/json.py +70 -0
- utilities/libcst.py +38 -17
- utilities/lightweight_charts.py +5 -9
- utilities/logging.py +345 -543
- utilities/math.py +18 -13
- utilities/memory_profiler.py +11 -15
- utilities/more_itertools.py +200 -131
- utilities/operator.py +33 -29
- utilities/optuna.py +6 -6
- utilities/orjson.py +272 -137
- utilities/os.py +61 -4
- utilities/parse.py +59 -61
- utilities/pathlib.py +281 -40
- utilities/permissions.py +298 -0
- utilities/pickle.py +2 -2
- utilities/platform.py +24 -5
- utilities/polars.py +1214 -430
- utilities/polars_ols.py +1 -1
- utilities/postgres.py +408 -0
- utilities/pottery.py +113 -26
- utilities/pqdm.py +10 -11
- utilities/psutil.py +6 -57
- utilities/pwd.py +28 -0
- utilities/pydantic.py +4 -54
- utilities/pydantic_settings.py +240 -0
- utilities/pydantic_settings_sops.py +76 -0
- utilities/pyinstrument.py +8 -10
- utilities/pytest.py +227 -121
- utilities/pytest_plugins/__init__.py +1 -0
- utilities/pytest_plugins/pytest_randomly.py +23 -0
- utilities/pytest_plugins/pytest_regressions.py +56 -0
- utilities/pytest_regressions.py +26 -46
- utilities/random.py +13 -9
- utilities/re.py +58 -28
- utilities/redis.py +401 -550
- utilities/scipy.py +1 -1
- utilities/sentinel.py +10 -0
- utilities/shelve.py +4 -1
- utilities/shutil.py +25 -0
- utilities/slack_sdk.py +36 -106
- utilities/sqlalchemy.py +502 -473
- utilities/sqlalchemy_polars.py +38 -94
- utilities/string.py +2 -3
- utilities/subprocess.py +1572 -0
- utilities/tempfile.py +86 -4
- utilities/testbook.py +50 -0
- utilities/text.py +165 -42
- utilities/timer.py +37 -65
- utilities/traceback.py +158 -929
- utilities/types.py +146 -116
- utilities/typing.py +531 -71
- utilities/tzdata.py +1 -53
- utilities/tzlocal.py +6 -23
- utilities/uuid.py +43 -5
- utilities/version.py +27 -26
- utilities/whenever.py +1776 -386
- utilities/zoneinfo.py +84 -22
- dycw_utilities-0.129.10.dist-info/METADATA +0 -241
- dycw_utilities-0.129.10.dist-info/RECORD +0 -96
- dycw_utilities-0.129.10.dist-info/WHEEL +0 -4
- dycw_utilities-0.129.10.dist-info/licenses/LICENSE +0 -21
- utilities/datetime.py +0 -1409
- utilities/eventkit.py +0 -402
- utilities/loguru.py +0 -144
- utilities/luigi.py +0 -228
- utilities/period.py +0 -324
- utilities/pyrsistent.py +0 -89
- utilities/python_dotenv.py +0 -105
- utilities/streamlit.py +0 -105
- utilities/sys.py +0 -87
- utilities/tenacity.py +0 -145
utilities/zoneinfo.py
CHANGED
|
@@ -5,6 +5,11 @@ from dataclasses import dataclass
|
|
|
5
5
|
from typing import TYPE_CHECKING, assert_never, cast, override
|
|
6
6
|
from zoneinfo import ZoneInfo
|
|
7
7
|
|
|
8
|
+
from whenever import ZonedDateTime
|
|
9
|
+
|
|
10
|
+
from utilities.types import TIME_ZONES
|
|
11
|
+
from utilities.tzlocal import LOCAL_TIME_ZONE, LOCAL_TIME_ZONE_NAME
|
|
12
|
+
|
|
8
13
|
if TYPE_CHECKING:
|
|
9
14
|
from utilities.types import TimeZone, TimeZoneLike
|
|
10
15
|
|
|
@@ -15,57 +20,114 @@ UTC = ZoneInfo("UTC")
|
|
|
15
20
|
##
|
|
16
21
|
|
|
17
22
|
|
|
18
|
-
def
|
|
19
|
-
"""
|
|
23
|
+
def to_zone_info(obj: TimeZoneLike, /) -> ZoneInfo:
|
|
24
|
+
"""Convert to a time-zone."""
|
|
20
25
|
match obj:
|
|
21
26
|
case ZoneInfo() as zone_info:
|
|
22
27
|
return zone_info
|
|
23
|
-
case
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return
|
|
28
|
+
case ZonedDateTime() as date_time:
|
|
29
|
+
return ZoneInfo(date_time.tz)
|
|
30
|
+
case "local" | "localtime":
|
|
31
|
+
return LOCAL_TIME_ZONE
|
|
27
32
|
case str() as key:
|
|
28
33
|
return ZoneInfo(key)
|
|
29
34
|
case dt.tzinfo() as tzinfo:
|
|
30
35
|
if tzinfo is dt.UTC:
|
|
31
36
|
return UTC
|
|
32
|
-
raise
|
|
33
|
-
case dt.datetime() as
|
|
34
|
-
if
|
|
35
|
-
raise
|
|
36
|
-
return
|
|
37
|
-
case
|
|
37
|
+
raise _ToZoneInfoInvalidTZInfoError(time_zone=obj)
|
|
38
|
+
case dt.datetime() as date_time:
|
|
39
|
+
if date_time.tzinfo is None:
|
|
40
|
+
raise _ToZoneInfoPlainDateTimeError(date_time=date_time)
|
|
41
|
+
return to_zone_info(date_time.tzinfo)
|
|
42
|
+
case never:
|
|
38
43
|
assert_never(never)
|
|
39
44
|
|
|
40
45
|
|
|
41
46
|
@dataclass(kw_only=True, slots=True)
|
|
42
|
-
class
|
|
47
|
+
class ToTimeZoneError(Exception): ...
|
|
43
48
|
|
|
44
49
|
|
|
45
50
|
@dataclass(kw_only=True, slots=True)
|
|
46
|
-
class
|
|
51
|
+
class _ToZoneInfoInvalidTZInfoError(ToTimeZoneError):
|
|
47
52
|
time_zone: dt.tzinfo
|
|
48
53
|
|
|
49
54
|
@override
|
|
50
55
|
def __str__(self) -> str:
|
|
51
|
-
return f"
|
|
56
|
+
return f"Invalid time-zone: {self.time_zone}"
|
|
52
57
|
|
|
53
58
|
|
|
54
59
|
@dataclass(kw_only=True, slots=True)
|
|
55
|
-
class
|
|
56
|
-
|
|
60
|
+
class _ToZoneInfoPlainDateTimeError(ToTimeZoneError):
|
|
61
|
+
date_time: dt.datetime
|
|
57
62
|
|
|
58
63
|
@override
|
|
59
64
|
def __str__(self) -> str:
|
|
60
|
-
return f"Plain
|
|
65
|
+
return f"Plain date-time: {self.date_time}"
|
|
61
66
|
|
|
62
67
|
|
|
63
68
|
##
|
|
64
69
|
|
|
65
70
|
|
|
66
|
-
def
|
|
67
|
-
"""
|
|
68
|
-
|
|
71
|
+
def to_time_zone_name(obj: TimeZoneLike, /) -> TimeZone:
|
|
72
|
+
"""Convert to a time zone name."""
|
|
73
|
+
match obj:
|
|
74
|
+
case ZoneInfo() as zone_info:
|
|
75
|
+
return cast("TimeZone", zone_info.key)
|
|
76
|
+
case ZonedDateTime() as date_time:
|
|
77
|
+
return cast("TimeZone", date_time.tz)
|
|
78
|
+
case "local" | "localtime":
|
|
79
|
+
return LOCAL_TIME_ZONE_NAME
|
|
80
|
+
case str() as time_zone:
|
|
81
|
+
if time_zone in TIME_ZONES:
|
|
82
|
+
return time_zone
|
|
83
|
+
raise _ToTimeZoneNameInvalidKeyError(time_zone=time_zone)
|
|
84
|
+
case dt.tzinfo() as tzinfo:
|
|
85
|
+
if tzinfo is dt.UTC:
|
|
86
|
+
return cast("TimeZone", UTC.key)
|
|
87
|
+
raise _ToTimeZoneNameInvalidTZInfoError(time_zone=obj)
|
|
88
|
+
case dt.datetime() as date_time:
|
|
89
|
+
if date_time.tzinfo is None:
|
|
90
|
+
raise _ToTimeZoneNamePlainDateTimeError(date_time=date_time)
|
|
91
|
+
return to_time_zone_name(date_time.tzinfo)
|
|
92
|
+
case never:
|
|
93
|
+
assert_never(never)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
@dataclass(kw_only=True, slots=True)
|
|
97
|
+
class ToTimeZoneNameError(Exception): ...
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
@dataclass(kw_only=True, slots=True)
|
|
101
|
+
class _ToTimeZoneNameInvalidKeyError(ToTimeZoneNameError):
|
|
102
|
+
time_zone: str
|
|
103
|
+
|
|
104
|
+
@override
|
|
105
|
+
def __str__(self) -> str:
|
|
106
|
+
return f"Invalid time-zone: {self.time_zone!r}"
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
@dataclass(kw_only=True, slots=True)
|
|
110
|
+
class _ToTimeZoneNameInvalidTZInfoError(ToTimeZoneNameError):
|
|
111
|
+
time_zone: dt.tzinfo
|
|
112
|
+
|
|
113
|
+
@override
|
|
114
|
+
def __str__(self) -> str:
|
|
115
|
+
return f"Invalid time-zone: {self.time_zone}"
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
@dataclass(kw_only=True, slots=True)
|
|
119
|
+
class _ToTimeZoneNamePlainDateTimeError(ToTimeZoneNameError):
|
|
120
|
+
date_time: dt.datetime
|
|
121
|
+
|
|
122
|
+
@override
|
|
123
|
+
def __str__(self) -> str:
|
|
124
|
+
return f"Plain date-time: {self.date_time}"
|
|
69
125
|
|
|
70
126
|
|
|
71
|
-
__all__ = [
|
|
127
|
+
__all__ = [
|
|
128
|
+
"UTC",
|
|
129
|
+
"ToTimeZoneError",
|
|
130
|
+
"ToTimeZoneNameError",
|
|
131
|
+
"to_time_zone_name",
|
|
132
|
+
"to_zone_info",
|
|
133
|
+
]
|
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: dycw-utilities
|
|
3
|
-
Version: 0.129.10
|
|
4
|
-
Author-email: Derek Wan <d.wan@icloud.com>
|
|
5
|
-
License-File: LICENSE
|
|
6
|
-
Requires-Python: >=3.12
|
|
7
|
-
Requires-Dist: typing-extensions<4.15,>=4.14.0
|
|
8
|
-
Provides-Extra: test
|
|
9
|
-
Requires-Dist: dycw-pytest-only<2.2,>=2.1.1; extra == 'test'
|
|
10
|
-
Requires-Dist: hypothesis<6.136,>=6.135.0; extra == 'test'
|
|
11
|
-
Requires-Dist: pytest-asyncio<1.1,>=1.0.0; extra == 'test'
|
|
12
|
-
Requires-Dist: pytest-cov<6.2,>=6.1.1; extra == 'test'
|
|
13
|
-
Requires-Dist: pytest-instafail<0.6,>=0.5.0; extra == 'test'
|
|
14
|
-
Requires-Dist: pytest-lazy-fixtures<1.2,>=1.1.4; extra == 'test'
|
|
15
|
-
Requires-Dist: pytest-randomly<3.17,>=3.16.0; extra == 'test'
|
|
16
|
-
Requires-Dist: pytest-regressions<2.9,>=2.8.0; extra == 'test'
|
|
17
|
-
Requires-Dist: pytest-rerunfailures<16,>=15.1; extra == 'test'
|
|
18
|
-
Requires-Dist: pytest-rng<1.1,>=1.0.0; extra == 'test'
|
|
19
|
-
Requires-Dist: pytest-timeout<2.5,>=2.4.0; extra == 'test'
|
|
20
|
-
Requires-Dist: pytest-xdist<3.8,>=3.7.0; extra == 'test'
|
|
21
|
-
Requires-Dist: pytest<8.4,>=8.3.5; extra == 'test'
|
|
22
|
-
Provides-Extra: zzz-test-altair
|
|
23
|
-
Requires-Dist: altair<5.6,>=5.5.0; extra == 'zzz-test-altair'
|
|
24
|
-
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-altair'
|
|
25
|
-
Requires-Dist: img2pdf<0.7,>=0.6.0; extra == 'zzz-test-altair'
|
|
26
|
-
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-altair'
|
|
27
|
-
Requires-Dist: vl-convert-python<1.9,>=1.8.0; extra == 'zzz-test-altair'
|
|
28
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-altair'
|
|
29
|
-
Provides-Extra: zzz-test-asyncio
|
|
30
|
-
Provides-Extra: zzz-test-atomicwrites
|
|
31
|
-
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-atomicwrites'
|
|
32
|
-
Provides-Extra: zzz-test-atools
|
|
33
|
-
Requires-Dist: atools<0.15,>=0.14.2; extra == 'zzz-test-atools'
|
|
34
|
-
Provides-Extra: zzz-test-cachetools
|
|
35
|
-
Requires-Dist: cachetools<5.6,>=5.5.2; extra == 'zzz-test-cachetools'
|
|
36
|
-
Provides-Extra: zzz-test-click
|
|
37
|
-
Requires-Dist: click<8.3,>=8.2.1; extra == 'zzz-test-click'
|
|
38
|
-
Requires-Dist: sqlalchemy<2.1,>=2.0.41; extra == 'zzz-test-click'
|
|
39
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-click'
|
|
40
|
-
Provides-Extra: zzz-test-contextlib
|
|
41
|
-
Provides-Extra: zzz-test-contextvars
|
|
42
|
-
Provides-Extra: zzz-test-cryptography
|
|
43
|
-
Requires-Dist: cryptography<45.1,>=45.0.3; extra == 'zzz-test-cryptography'
|
|
44
|
-
Provides-Extra: zzz-test-cvxpy
|
|
45
|
-
Requires-Dist: cvxpy<1.7,>=1.6.5; extra == 'zzz-test-cvxpy'
|
|
46
|
-
Provides-Extra: zzz-test-dataclasses
|
|
47
|
-
Requires-Dist: orjson<3.11,>=3.10.15; extra == 'zzz-test-dataclasses'
|
|
48
|
-
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-dataclasses'
|
|
49
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-dataclasses'
|
|
50
|
-
Provides-Extra: zzz-test-datetime
|
|
51
|
-
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-datetime'
|
|
52
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-datetime'
|
|
53
|
-
Provides-Extra: zzz-test-enum
|
|
54
|
-
Provides-Extra: zzz-test-errors
|
|
55
|
-
Provides-Extra: zzz-test-eventkit
|
|
56
|
-
Requires-Dist: eventkit<1.1,>=1.0.3; extra == 'zzz-test-eventkit'
|
|
57
|
-
Provides-Extra: zzz-test-fastapi
|
|
58
|
-
Requires-Dist: fastapi<0.116,>=0.115.11; extra == 'zzz-test-fastapi'
|
|
59
|
-
Requires-Dist: httpx<0.29,>=0.28.1; extra == 'zzz-test-fastapi'
|
|
60
|
-
Requires-Dist: uvicorn<0.35,>=0.34.1; extra == 'zzz-test-fastapi'
|
|
61
|
-
Provides-Extra: zzz-test-fpdf2
|
|
62
|
-
Requires-Dist: fpdf2<2.9,>=2.8.3; extra == 'zzz-test-fpdf2'
|
|
63
|
-
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-fpdf2'
|
|
64
|
-
Provides-Extra: zzz-test-functions
|
|
65
|
-
Provides-Extra: zzz-test-functools
|
|
66
|
-
Provides-Extra: zzz-test-getpass
|
|
67
|
-
Provides-Extra: zzz-test-git
|
|
68
|
-
Provides-Extra: zzz-test-hashlib
|
|
69
|
-
Requires-Dist: orjson<3.11,>=3.10.15; extra == 'zzz-test-hashlib'
|
|
70
|
-
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-hashlib'
|
|
71
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-hashlib'
|
|
72
|
-
Provides-Extra: zzz-test-http
|
|
73
|
-
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-http'
|
|
74
|
-
Requires-Dist: orjson<3.11,>=3.10.18; extra == 'zzz-test-http'
|
|
75
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-http'
|
|
76
|
-
Provides-Extra: zzz-test-hypothesis
|
|
77
|
-
Requires-Dist: aiosqlite<0.22,>=0.21.0; extra == 'zzz-test-hypothesis'
|
|
78
|
-
Requires-Dist: asyncpg<0.31,>=0.30.0; extra == 'zzz-test-hypothesis'
|
|
79
|
-
Requires-Dist: greenlet<3.3,>=3.2.0; extra == 'zzz-test-hypothesis'
|
|
80
|
-
Requires-Dist: hypothesis<6.136,>=6.135.0; extra == 'zzz-test-hypothesis'
|
|
81
|
-
Requires-Dist: luigi<3.7,>=3.6.0; extra == 'zzz-test-hypothesis'
|
|
82
|
-
Requires-Dist: numpy<2.3,>=2.2.6; extra == 'zzz-test-hypothesis'
|
|
83
|
-
Requires-Dist: pathvalidate<3.3,>=3.2.3; extra == 'zzz-test-hypothesis'
|
|
84
|
-
Requires-Dist: redis<6.3,>=6.2.0; extra == 'zzz-test-hypothesis'
|
|
85
|
-
Requires-Dist: sqlalchemy<2.1,>=2.0.41; extra == 'zzz-test-hypothesis'
|
|
86
|
-
Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-hypothesis'
|
|
87
|
-
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-hypothesis'
|
|
88
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-hypothesis'
|
|
89
|
-
Provides-Extra: zzz-test-ipython
|
|
90
|
-
Requires-Dist: ipython<9.1,>=9.0.1; extra == 'zzz-test-ipython'
|
|
91
|
-
Provides-Extra: zzz-test-iterables
|
|
92
|
-
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-iterables'
|
|
93
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-iterables'
|
|
94
|
-
Provides-Extra: zzz-test-jupyter
|
|
95
|
-
Requires-Dist: jupyterlab<4.3,>=4.2.0; extra == 'zzz-test-jupyter'
|
|
96
|
-
Requires-Dist: pandas<2.4,>=2.3.0; extra == 'zzz-test-jupyter'
|
|
97
|
-
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-jupyter'
|
|
98
|
-
Provides-Extra: zzz-test-logging
|
|
99
|
-
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-logging'
|
|
100
|
-
Requires-Dist: coloredlogs<15.1,>=15.0.1; extra == 'zzz-test-logging'
|
|
101
|
-
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-logging'
|
|
102
|
-
Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-logging'
|
|
103
|
-
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-logging'
|
|
104
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-logging'
|
|
105
|
-
Provides-Extra: zzz-test-loguru
|
|
106
|
-
Requires-Dist: loguru<0.8,>=0.7.3; extra == 'zzz-test-loguru'
|
|
107
|
-
Provides-Extra: zzz-test-luigi
|
|
108
|
-
Requires-Dist: luigi<3.7,>=3.6.0; extra == 'zzz-test-luigi'
|
|
109
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-luigi'
|
|
110
|
-
Provides-Extra: zzz-test-math
|
|
111
|
-
Requires-Dist: numpy<2.3,>=2.2.6; extra == 'zzz-test-math'
|
|
112
|
-
Provides-Extra: zzz-test-memory-profiler
|
|
113
|
-
Requires-Dist: memory-profiler<0.62,>=0.61.0; extra == 'zzz-test-memory-profiler'
|
|
114
|
-
Provides-Extra: zzz-test-modules
|
|
115
|
-
Provides-Extra: zzz-test-more-itertools
|
|
116
|
-
Requires-Dist: more-itertools<10.8,>=10.7.0; extra == 'zzz-test-more-itertools'
|
|
117
|
-
Provides-Extra: zzz-test-numpy
|
|
118
|
-
Requires-Dist: numpy<2.3,>=2.2.6; extra == 'zzz-test-numpy'
|
|
119
|
-
Provides-Extra: zzz-test-operator
|
|
120
|
-
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-operator'
|
|
121
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-operator'
|
|
122
|
-
Provides-Extra: zzz-test-optuna
|
|
123
|
-
Requires-Dist: optuna<4.4,>=4.3.0; extra == 'zzz-test-optuna'
|
|
124
|
-
Provides-Extra: zzz-test-orjson
|
|
125
|
-
Requires-Dist: orjson<3.11,>=3.10.15; extra == 'zzz-test-orjson'
|
|
126
|
-
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-orjson'
|
|
127
|
-
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-orjson'
|
|
128
|
-
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-orjson'
|
|
129
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-orjson'
|
|
130
|
-
Provides-Extra: zzz-test-os
|
|
131
|
-
Provides-Extra: zzz-test-pathlib
|
|
132
|
-
Provides-Extra: zzz-test-pickle
|
|
133
|
-
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pickle'
|
|
134
|
-
Provides-Extra: zzz-test-platform
|
|
135
|
-
Provides-Extra: zzz-test-polars
|
|
136
|
-
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-polars'
|
|
137
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-polars'
|
|
138
|
-
Provides-Extra: zzz-test-pqdm
|
|
139
|
-
Requires-Dist: pqdm<0.3,>=0.2.0; extra == 'zzz-test-pqdm'
|
|
140
|
-
Provides-Extra: zzz-test-pydantic
|
|
141
|
-
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pydantic'
|
|
142
|
-
Requires-Dist: pydantic<2.12,>=2.11.4; extra == 'zzz-test-pydantic'
|
|
143
|
-
Provides-Extra: zzz-test-pyinstrument
|
|
144
|
-
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pyinstrument'
|
|
145
|
-
Requires-Dist: pyinstrument<5.1,>=5.0.2; extra == 'zzz-test-pyinstrument'
|
|
146
|
-
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-pyinstrument'
|
|
147
|
-
Provides-Extra: zzz-test-pyrsistent
|
|
148
|
-
Requires-Dist: pyrsistent<0.21,>=0.20.0; extra == 'zzz-test-pyrsistent'
|
|
149
|
-
Provides-Extra: zzz-test-pytest
|
|
150
|
-
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pytest'
|
|
151
|
-
Requires-Dist: orjson<3.11,>=3.10.18; extra == 'zzz-test-pytest'
|
|
152
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-pytest'
|
|
153
|
-
Provides-Extra: zzz-test-pytest-regressions
|
|
154
|
-
Requires-Dist: pytest-regressions<2.9,>=2.8.0; extra == 'zzz-test-pytest-regressions'
|
|
155
|
-
Provides-Extra: zzz-test-python-dotenv
|
|
156
|
-
Requires-Dist: python-dotenv<1.2,>=1.1.0; extra == 'zzz-test-python-dotenv'
|
|
157
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-python-dotenv'
|
|
158
|
-
Provides-Extra: zzz-test-random
|
|
159
|
-
Provides-Extra: zzz-test-re
|
|
160
|
-
Provides-Extra: zzz-test-redis
|
|
161
|
-
Requires-Dist: orjson<3.11,>=3.10.15; extra == 'zzz-test-redis'
|
|
162
|
-
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-redis'
|
|
163
|
-
Requires-Dist: redis<6.3,>=6.2.0; extra == 'zzz-test-redis'
|
|
164
|
-
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-redis'
|
|
165
|
-
Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-redis'
|
|
166
|
-
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-redis'
|
|
167
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-redis'
|
|
168
|
-
Provides-Extra: zzz-test-rich
|
|
169
|
-
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-rich'
|
|
170
|
-
Provides-Extra: zzz-test-scipy
|
|
171
|
-
Requires-Dist: scipy<1.16,>=1.15.3; extra == 'zzz-test-scipy'
|
|
172
|
-
Provides-Extra: zzz-test-sentinel
|
|
173
|
-
Provides-Extra: zzz-test-shelve
|
|
174
|
-
Provides-Extra: zzz-test-slack-sdk
|
|
175
|
-
Requires-Dist: aiohttp<3.12.10,>=3.12.9; extra == 'zzz-test-slack-sdk'
|
|
176
|
-
Requires-Dist: slack-sdk<3.36,>=3.35.0; extra == 'zzz-test-slack-sdk'
|
|
177
|
-
Provides-Extra: zzz-test-socket
|
|
178
|
-
Provides-Extra: zzz-test-sqlalchemy
|
|
179
|
-
Requires-Dist: aiosqlite<0.22,>=0.21.0; extra == 'zzz-test-sqlalchemy'
|
|
180
|
-
Requires-Dist: asyncpg<0.31,>=0.30.0; extra == 'zzz-test-sqlalchemy'
|
|
181
|
-
Requires-Dist: greenlet<3.3,>=3.2.0; extra == 'zzz-test-sqlalchemy'
|
|
182
|
-
Requires-Dist: nest-asyncio<1.7,>=1.6.0; extra == 'zzz-test-sqlalchemy'
|
|
183
|
-
Requires-Dist: sqlalchemy<2.1,>=2.0.41; extra == 'zzz-test-sqlalchemy'
|
|
184
|
-
Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-sqlalchemy'
|
|
185
|
-
Provides-Extra: zzz-test-sqlalchemy-polars
|
|
186
|
-
Requires-Dist: aiosqlite<0.22,>=0.21.0; extra == 'zzz-test-sqlalchemy-polars'
|
|
187
|
-
Requires-Dist: asyncpg<0.31,>=0.30.0; extra == 'zzz-test-sqlalchemy-polars'
|
|
188
|
-
Requires-Dist: greenlet<3.3,>=3.2.0; extra == 'zzz-test-sqlalchemy-polars'
|
|
189
|
-
Requires-Dist: nest-asyncio<1.7,>=1.6.0; extra == 'zzz-test-sqlalchemy-polars'
|
|
190
|
-
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-sqlalchemy-polars'
|
|
191
|
-
Requires-Dist: sqlalchemy<2.1,>=2.0.41; extra == 'zzz-test-sqlalchemy-polars'
|
|
192
|
-
Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-sqlalchemy-polars'
|
|
193
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-sqlalchemy-polars'
|
|
194
|
-
Provides-Extra: zzz-test-streamlit
|
|
195
|
-
Requires-Dist: streamlit<1.46,>=1.45.0; extra == 'zzz-test-streamlit'
|
|
196
|
-
Provides-Extra: zzz-test-sys
|
|
197
|
-
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-sys'
|
|
198
|
-
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-sys'
|
|
199
|
-
Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-sys'
|
|
200
|
-
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-sys'
|
|
201
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-sys'
|
|
202
|
-
Provides-Extra: zzz-test-tempfile
|
|
203
|
-
Provides-Extra: zzz-test-tenacity
|
|
204
|
-
Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-tenacity'
|
|
205
|
-
Provides-Extra: zzz-test-text
|
|
206
|
-
Provides-Extra: zzz-test-threading
|
|
207
|
-
Provides-Extra: zzz-test-timer
|
|
208
|
-
Provides-Extra: zzz-test-traceback
|
|
209
|
-
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-traceback'
|
|
210
|
-
Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-traceback'
|
|
211
|
-
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-traceback'
|
|
212
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-traceback'
|
|
213
|
-
Provides-Extra: zzz-test-types
|
|
214
|
-
Provides-Extra: zzz-test-typing
|
|
215
|
-
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-typing'
|
|
216
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-typing'
|
|
217
|
-
Provides-Extra: zzz-test-tzlocal
|
|
218
|
-
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-tzlocal'
|
|
219
|
-
Provides-Extra: zzz-test-uuid
|
|
220
|
-
Provides-Extra: zzz-test-version
|
|
221
|
-
Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-version'
|
|
222
|
-
Provides-Extra: zzz-test-warnings
|
|
223
|
-
Provides-Extra: zzz-test-whenever
|
|
224
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-whenever'
|
|
225
|
-
Provides-Extra: zzz-test-zipfile
|
|
226
|
-
Provides-Extra: zzz-test-zoneinfo
|
|
227
|
-
Requires-Dist: tzdata<2025.3,>=2025.2; extra == 'zzz-test-zoneinfo'
|
|
228
|
-
Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-zoneinfo'
|
|
229
|
-
Description-Content-Type: text/markdown
|
|
230
|
-
|
|
231
|
-
[](https://badge.fury.io/py/dycw-utilities)
|
|
232
|
-
|
|
233
|
-
# `dycw-utilities`
|
|
234
|
-
|
|
235
|
-
[All the Python functions I don't want to write twice.](https://github.com/nvim-lua/plenary.nvim)
|
|
236
|
-
|
|
237
|
-
## Installation
|
|
238
|
-
|
|
239
|
-
- `pip install dycw-utilities`
|
|
240
|
-
|
|
241
|
-
or with [extras](https://github.com/dycw/python-utilities/blob/master/pyproject.toml).
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
utilities/__init__.py,sha256=Ea2sLI04_oNAg8JArocs5IF0T0dgZO_dvaFh04klnq8,61
|
|
2
|
-
utilities/altair.py,sha256=Gpja-flOo-Db0PIPJLJsgzAlXWoKUjPU1qY-DQ829ek,9156
|
|
3
|
-
utilities/asyncio.py,sha256=3n5EIcSq2xtEF1i4oR0oY2JmBq3NyugeHKFK39Mt22s,37987
|
|
4
|
-
utilities/atomicwrites.py,sha256=geFjn9Pwn-tTrtoGjDDxWli9NqbYfy3gGL6ZBctiqSo,5393
|
|
5
|
-
utilities/atools.py,sha256=IYMuFSFGSKyuQmqD6v5IUtDlz8PPw0Sr87Cub_gRU3M,1168
|
|
6
|
-
utilities/cachetools.py,sha256=C1zqOg7BYz0IfQFK8e3qaDDgEZxDpo47F15RTfJM37Q,2910
|
|
7
|
-
utilities/click.py,sha256=CianelgUj_M2SBpuvhmRPKOGxuvLM04FHllUWtL7hok,14647
|
|
8
|
-
utilities/concurrent.py,sha256=s2scTEd2AhXVTW4hpASU2qxV_DiVLALfms55cCQzCvM,2886
|
|
9
|
-
utilities/contextlib.py,sha256=lpaLJBy3X0UGLWjM98jkQZZq8so4fRmoK-Bheq0uOW4,1027
|
|
10
|
-
utilities/contextvars.py,sha256=RsSGGrbQqqZ67rOydnM7WWIsM2lIE31UHJLejnHJPWY,505
|
|
11
|
-
utilities/cryptography.py,sha256=_CiK_K6c_-uQuUhsUNjNjTL-nqxAh4_1zTfS11Xe120,972
|
|
12
|
-
utilities/cvxpy.py,sha256=Rv1-fD-XYerosCavRF8Pohop2DBkU3AlFaGTfD8AEAA,13776
|
|
13
|
-
utilities/dataclasses.py,sha256=iiC1wpGXWhaocIikzwBt8bbLWyImoUlOlcDZJGejaIg,33011
|
|
14
|
-
utilities/datetime.py,sha256=aiPh2OZK2g9gn4yEeSO0lODOmvx8U_rGn6XeSzyk4VY,38738
|
|
15
|
-
utilities/enum.py,sha256=HoRwVCWzsnH0vpO9ZEcAAIZLMv0Sn2vJxxA4sYMQgDs,5793
|
|
16
|
-
utilities/errors.py,sha256=nC7ZYtxxDBMfrTHtT_MByBfup_wfGQFRo3eDt-0ZPe8,1045
|
|
17
|
-
utilities/eventkit.py,sha256=6M5Xu1SzN-juk9PqBHwy5dS-ta7T0qA6SMpDsakOJ0E,13039
|
|
18
|
-
utilities/fastapi.py,sha256=gZrXYxKAc7ZEAL_tDmkcbqebkm-KfMCY0X8r-1HF5dI,2962
|
|
19
|
-
utilities/fpdf2.py,sha256=y1NGXR5chWqLXWpewGV3hlRGMr_5yV1lVRkPBhPEgJI,1843
|
|
20
|
-
utilities/functions.py,sha256=jgt592voaHNtX56qX0SRvFveVCRmSIxCZmqvpLZCnY8,27305
|
|
21
|
-
utilities/functools.py,sha256=WrpHt7NLNWSUn9A1Q_ZIWlNaYZOEI4IFKyBG9HO3BC4,1643
|
|
22
|
-
utilities/getpass.py,sha256=DfN5UgMAtFCqS3dSfFHUfqIMZX2shXvwphOz_6J6f6A,103
|
|
23
|
-
utilities/git.py,sha256=oi7-_l5e9haSANSCvQw25ufYGoNahuUPHAZ6114s3JQ,1191
|
|
24
|
-
utilities/hashlib.py,sha256=SVTgtguur0P4elppvzOBbLEjVM3Pea0eWB61yg2ilxo,309
|
|
25
|
-
utilities/http.py,sha256=WcahTcKYRtZ04WXQoWt5EGCgFPcyHD3EJdlMfxvDt-0,946
|
|
26
|
-
utilities/hypothesis.py,sha256=UnUMJmeqwJuK7uyUqw_i3opUYzVKud4RMG0RMOSRBQY,44463
|
|
27
|
-
utilities/importlib.py,sha256=mV1xT_O_zt_GnZZ36tl3xOmMaN_3jErDWY54fX39F6Y,429
|
|
28
|
-
utilities/ipython.py,sha256=V2oMYHvEKvlNBzxDXdLvKi48oUq2SclRg5xasjaXStw,763
|
|
29
|
-
utilities/iterables.py,sha256=mDqw2_0MUVp-P8FklgcaVTi2TXduH0MxbhTDzzhSBho,44915
|
|
30
|
-
utilities/jupyter.py,sha256=ft5JA7fBxXKzP-L9W8f2-wbF0QeYc_2uLQNFDVk4Z-M,2917
|
|
31
|
-
utilities/libcst.py,sha256=Jto5ppzRzsxn4AD32IS8n0lbgLYXwsVJB6EY8giNZyY,4974
|
|
32
|
-
utilities/lightweight_charts.py,sha256=0xNfcsrgFI0R9xL25LtSm-W5yhfBI93qQNT6HyaXAhg,2769
|
|
33
|
-
utilities/logging.py,sha256=dA54i2gmULBLuEJ2roGYWt9pW2NvNBmx0YxlMns347M,26126
|
|
34
|
-
utilities/loguru.py,sha256=MEMQVWrdECxk1e3FxGzmOf21vWT9j8CAir98SEXFKPA,3809
|
|
35
|
-
utilities/luigi.py,sha256=fpH9MbxJDuo6-k9iCXRayFRtiVbUtibCJKugf7ygpv0,5988
|
|
36
|
-
utilities/math.py,sha256=-mQgbah-dPJwOEWf3SonrFoVZ2AVxMgpeQ3dfVa-oJA,26764
|
|
37
|
-
utilities/memory_profiler.py,sha256=tf2C51P2lCujPGvRt2Rfc7VEw5LDXmVPCG3z_AvBmbU,962
|
|
38
|
-
utilities/modules.py,sha256=iuvLluJya-hvl1Q25-Jk3dLgx2Es3ck4SjJiEkAlVTs,3195
|
|
39
|
-
utilities/more_itertools.py,sha256=tBbjjKx8_Uv_TCjxhPwrGfAx_jRHtvLIZqXVWAsjzqA,8842
|
|
40
|
-
utilities/numpy.py,sha256=Xn23sA2ZbVNqwUYEgNJD3XBYH6IbCri_WkHSNhg3NkY,26122
|
|
41
|
-
utilities/operator.py,sha256=0M2yZJ0PODH47ogFEnkGMBe_cfxwZR02T_92LZVZvHo,3715
|
|
42
|
-
utilities/optuna.py,sha256=loyJGWTzljgdJaoLhP09PT8Jz6o_pwBOwehY33lHkhw,1923
|
|
43
|
-
utilities/orjson.py,sha256=AvPFxzJdxC-3PBID3cqdiMyN8FeC7aW9QUgGwbvKuAM,36948
|
|
44
|
-
utilities/os.py,sha256=D_FyyT-6TtqiN9KSS7c9g1fnUtgxmyMtzAjmYLkk46A,3587
|
|
45
|
-
utilities/parse.py,sha256=vsZ2jf_ceSI_Kta9titixufysJaVXh0Whjz1T4awJZw,18938
|
|
46
|
-
utilities/pathlib.py,sha256=0cQpqmZs-Pe2693xZwGFApq-B9mADqhX-pclf_5iLco,3041
|
|
47
|
-
utilities/period.py,sha256=o4wXYEXVlFomop4-Ra4L0yRP4i99NZFjIe_fa7NdZck,11024
|
|
48
|
-
utilities/pickle.py,sha256=Bhvd7cZl-zQKQDFjUerqGuSKlHvnW1K2QXeU5UZibtg,657
|
|
49
|
-
utilities/platform.py,sha256=48IOKx1IC6ZJXWG-b56ZQptITcNFhWRjELW72o2dGTA,2398
|
|
50
|
-
utilities/polars.py,sha256=QlmUpYTqHNkcLnWOQh1TW22W2QyLzvifCvBcbsqhpdE,63272
|
|
51
|
-
utilities/polars_ols.py,sha256=Uc9V5kvlWZ5cU93lKZ-cfAKdVFFw81tqwLW9PxtUvMs,5618
|
|
52
|
-
utilities/pottery.py,sha256=_PA24g2B23etpiF2awZ4oR7RciUgEHu_j7Ls3QKMkjY,1527
|
|
53
|
-
utilities/pqdm.py,sha256=foRytQybmOQ05pjt5LF7ANyzrIa--4ScDE3T2wd31a4,3118
|
|
54
|
-
utilities/psutil.py,sha256=RtbLKOoIJhqrJmEoHDBVeSD-KPzshtS0FtRXBP9_w2s,3751
|
|
55
|
-
utilities/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
-
utilities/pydantic.py,sha256=f6qtR5mO2YMuyvNmbaEj5YeD9eGA4YYfb7Bjzh9jUs0,1845
|
|
57
|
-
utilities/pyinstrument.py,sha256=O2dngLsmUUnpMtW1eN3OiM0rGQNBIlXSvZmym_jAsvU,904
|
|
58
|
-
utilities/pyrsistent.py,sha256=wVOVIe_68AAaa-lUE9y-TEzDawVp1uEIc_zfoDgr5ww,2287
|
|
59
|
-
utilities/pytest.py,sha256=KoHSwJbIY2CHtFUlUr_gnEk7z1DVTaldl8RDQ4tDkG4,7837
|
|
60
|
-
utilities/pytest_regressions.py,sha256=YI55B7EtLjhz7zPJZ6NK9bWrxrKCKabWZJe1cwcbA5o,5082
|
|
61
|
-
utilities/python_dotenv.py,sha256=edXsvHZhZnYeqfMfrsRRpj7_9eJI6uizh3xLx8Q9B3w,3228
|
|
62
|
-
utilities/random.py,sha256=lYdjgxB7GCfU_fwFVl5U-BIM_HV3q6_urL9byjrwDM8,4157
|
|
63
|
-
utilities/re.py,sha256=5J4d8VwIPFVrX2Eb8zfoxImDv7IwiN_U7mJ07wR2Wvs,3958
|
|
64
|
-
utilities/redis.py,sha256=7Sc-G43VXVzFQU7MHKyI1y3u7My3oT1UoWXPGcKM_-0,36008
|
|
65
|
-
utilities/reprlib.py,sha256=ssYTcBW-TeRh3fhCJv57sopTZHF5FrPyyUg9yp5XBlo,3953
|
|
66
|
-
utilities/scipy.py,sha256=X6ROnHwiUhAmPhM0jkfEh0-Fd9iRvwiqtCQMOLmOQF8,945
|
|
67
|
-
utilities/sentinel.py,sha256=3jIwgpMekWgDAxPDA_hXMP2St43cPhciKN3LWiZ7kv0,1248
|
|
68
|
-
utilities/shelve.py,sha256=HZsMwK4tcIfg3sh0gApx4-yjQnrY4o3V3ZRimvRhoW0,738
|
|
69
|
-
utilities/slack_sdk.py,sha256=ltmzv68aa73CJGqTDvt8L9vDm22YU9iOCo3NCiNd3vA,4347
|
|
70
|
-
utilities/socket.py,sha256=K77vfREvzoVTrpYKo6MZakol0EYu2q1sWJnnZqL0So0,118
|
|
71
|
-
utilities/sqlalchemy.py,sha256=I81qR7JtS-q1sLnw42p7L0FC0imT98gJHGte_KOjpAA,37890
|
|
72
|
-
utilities/sqlalchemy_polars.py,sha256=s7hQNep2O5DTgIRXyN_JRQma7a4DAtNd25tshaZW8iw,15490
|
|
73
|
-
utilities/statsmodels.py,sha256=koyiBHvpMcSiBfh99wFUfSggLNx7cuAw3rwyfAhoKpQ,3410
|
|
74
|
-
utilities/streamlit.py,sha256=U9PJBaKP1IdSykKhPZhIzSPTZsmLsnwbEPZWzNhJPKk,2955
|
|
75
|
-
utilities/string.py,sha256=XmU-s04qIV_tODnKl2pQiwmHaxzgOqRKU-RyzdrfvSE,620
|
|
76
|
-
utilities/sys.py,sha256=h0Xr7Vj86wNalvwJVP1wj5Y0kD_VWm1vzuXZ_jw94mE,2743
|
|
77
|
-
utilities/tempfile.py,sha256=VqmZJAhTJ1OaVywFzk5eqROV8iJbW9XQ_QYAV0bpdRo,1384
|
|
78
|
-
utilities/tenacity.py,sha256=1PUvODiBVgeqIh7G5TRt5WWMSqjLYkEqP53itT97WQc,4914
|
|
79
|
-
utilities/text.py,sha256=ymBFlP_cA8OgNnZRVNs7FAh7OG8HxE6YkiLEMZv5g_A,11297
|
|
80
|
-
utilities/threading.py,sha256=GvBOp4CyhHfN90wGXZuA2VKe9fGzMaEa7oCl4f3nnPU,1009
|
|
81
|
-
utilities/timer.py,sha256=Rkc49KSpHuC8s7vUxGO9DU55U9I6yDKnchsQqrUCVBs,4075
|
|
82
|
-
utilities/traceback.py,sha256=EUm-5jhH1RICBmsG_H77-CXvD-IVErfkzGRSqnvR0dI,35782
|
|
83
|
-
utilities/types.py,sha256=gP04CcCOyFrG7BgblVCsrrChiuO2x842NDVW-GF7odo,18370
|
|
84
|
-
utilities/typing.py,sha256=H6ysJkI830aRwLsMKz0SZIw4cpcsm7d6KhQOwr-SDh0,13817
|
|
85
|
-
utilities/tzdata.py,sha256=yCf70NICwAeazN3_JcXhWvRqCy06XJNQ42j7r6gw3HY,1217
|
|
86
|
-
utilities/tzlocal.py,sha256=3upDNFBvGh1l9njmLR2z2S6K6VxQSb7QizYGUbAH3JU,960
|
|
87
|
-
utilities/uuid.py,sha256=jJTFxz-CWgltqNuzmythB7iEQ-Q1mCwPevUfKthZT3c,611
|
|
88
|
-
utilities/version.py,sha256=ufhJMmI6KPs1-3wBI71aj5wCukd3sP_m11usLe88DNA,5117
|
|
89
|
-
utilities/warnings.py,sha256=un1LvHv70PU-LLv8RxPVmugTzDJkkGXRMZTE2-fTQHw,1771
|
|
90
|
-
utilities/whenever.py,sha256=QbXgFAPuUL7PCp2hajmIP-FFIfIR1J6Y0TxJbeoj60I,18434
|
|
91
|
-
utilities/zipfile.py,sha256=24lQc9ATcJxHXBPc_tBDiJk48pWyRrlxO2fIsFxU0A8,699
|
|
92
|
-
utilities/zoneinfo.py,sha256=-5j7IQ9nb7gR43rdgA7ms05im-XuqhAk9EJnQBXxCoQ,1874
|
|
93
|
-
dycw_utilities-0.129.10.dist-info/METADATA,sha256=w9VpvO8zhmLUxyrwfut-D_8nzKJc4mlol7xp_Li98G4,12724
|
|
94
|
-
dycw_utilities-0.129.10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
95
|
-
dycw_utilities-0.129.10.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
|
|
96
|
-
dycw_utilities-0.129.10.dist-info/RECORD,,
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024 Derek Wan
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|