dycw-utilities 0.153.12__py3-none-any.whl → 0.153.15__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.153.12.dist-info → dycw_utilities-0.153.15.dist-info}/METADATA +1 -1
- {dycw_utilities-0.153.12.dist-info → dycw_utilities-0.153.15.dist-info}/RECORD +9 -9
- utilities/__init__.py +1 -1
- utilities/polars.py +2 -1
- utilities/random.py +3 -0
- utilities/sqlalchemy.py +8 -2
- {dycw_utilities-0.153.12.dist-info → dycw_utilities-0.153.15.dist-info}/WHEEL +0 -0
- {dycw_utilities-0.153.12.dist-info → dycw_utilities-0.153.15.dist-info}/entry_points.txt +0 -0
- {dycw_utilities-0.153.12.dist-info → dycw_utilities-0.153.15.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
utilities/__init__.py,sha256=
|
1
|
+
utilities/__init__.py,sha256=Q8UzGfzuC1_B2ql7yI0RzABYLyl98Uyl7KLKW5BVyGg,61
|
2
2
|
utilities/altair.py,sha256=92E2lCdyHY4Zb-vCw6rEJIsWdKipuu-Tu2ab1ufUfAk,9079
|
3
3
|
utilities/asyncio.py,sha256=QXkTtugXkqtYt7Do23zgYErqzdp6jwzPpV_SP9fJ1gI,16780
|
4
4
|
utilities/atomicwrites.py,sha256=tPo6r-Rypd9u99u66B9z86YBPpnLrlHtwox_8Z7T34Y,5790
|
@@ -45,7 +45,7 @@ utilities/parse.py,sha256=JcJn5yXKhIWXBCwgBdPsyu7Hvcuw6kyEdqvaebCaI9k,17951
|
|
45
45
|
utilities/pathlib.py,sha256=qGuU8XPmdgGpy8tOMUgelfXx3kxI8h9IaV3TI_06QGE,8428
|
46
46
|
utilities/pickle.py,sha256=MBT2xZCsv0pH868IXLGKnlcqNx2IRVKYNpRcqiQQqxw,653
|
47
47
|
utilities/platform.py,sha256=pTn7gw6N4T6LdKrf0virwarof_mze9WtoQlrGMzhGVI,2798
|
48
|
-
utilities/polars.py,sha256=
|
48
|
+
utilities/polars.py,sha256=I07Bk_Vp2T434qXkCKxSVQIkFJc1d8YkOH48fprypB0,78436
|
49
49
|
utilities/polars_ols.py,sha256=Uc9V5kvlWZ5cU93lKZ-cfAKdVFFw81tqwLW9PxtUvMs,5618
|
50
50
|
utilities/postgres.py,sha256=ynCTTaF-bVEOSW-KEAR-dlLh_hYjeVVjm__-4pEU8Zk,12269
|
51
51
|
utilities/pottery.py,sha256=HJ96oLRarTP37Vhg0WTyB3yAu2hETeg6HgRmpDIqyUs,6581
|
@@ -55,7 +55,7 @@ utilities/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
55
|
utilities/pyinstrument.py,sha256=crJeEGOLxVt-tBGETb4E9v33kpaWmKrgXqL4PlFGRtk,850
|
56
56
|
utilities/pytest.py,sha256=2HHfAWkzZeK2OAzL2F49EDKooMkfDoGqg8Ev4cHC_N8,7869
|
57
57
|
utilities/pytest_regressions.py,sha256=ocjHTtfOeiGfQAKIei8pKNd61sxN9dawrJJ9gPt2wzA,4097
|
58
|
-
utilities/random.py,sha256=
|
58
|
+
utilities/random.py,sha256=hZlH4gnAtoaofWswuJYjcygejrY8db4CzP-z_adO2Mo,4165
|
59
59
|
utilities/re.py,sha256=S4h-DLL6ScMPqjboZ_uQ1BVTJajrqV06r_81D--_HCE,4573
|
60
60
|
utilities/redis.py,sha256=2fdveFbqL2pEAeyiVuN_Je8nSM_IZHeahPduMHhFRzY,28381
|
61
61
|
utilities/reprlib.py,sha256=ssYTcBW-TeRh3fhCJv57sopTZHF5FrPyyUg9yp5XBlo,3953
|
@@ -64,7 +64,7 @@ utilities/sentinel.py,sha256=3jIwgpMekWgDAxPDA_hXMP2St43cPhciKN3LWiZ7kv0,1248
|
|
64
64
|
utilities/shelve.py,sha256=4OzjQI6kGuUbJciqf535rwnao-_IBv66gsT6tRGiUt0,759
|
65
65
|
utilities/slack_sdk.py,sha256=ppFBvKgfg5IRWiIoKPtpTyzBtBF4XmwEvU3I5wLJikM,2140
|
66
66
|
utilities/socket.py,sha256=K77vfREvzoVTrpYKo6MZakol0EYu2q1sWJnnZqL0So0,118
|
67
|
-
utilities/sqlalchemy.py,sha256=
|
67
|
+
utilities/sqlalchemy.py,sha256=IJKzrKUd_eBOkyK6CucDlxtHwo2vYH3t-rV2_5rAxq8,40554
|
68
68
|
utilities/sqlalchemy_polars.py,sha256=Mm-sShZfqqgnzTrupMQdCfSM2akrybXHXAErTs-ofM8,14244
|
69
69
|
utilities/statsmodels.py,sha256=koyiBHvpMcSiBfh99wFUfSggLNx7cuAw3rwyfAhoKpQ,3410
|
70
70
|
utilities/string.py,sha256=shmBK87zZwzGyixuNuXCiUbqzfeZ9xlrFwz6JTaRvDk,582
|
@@ -87,8 +87,8 @@ utilities/zoneinfo.py,sha256=FBMcUQ4662Aq8SsuCL1OAhDQiyANmVjtb-C30DRrWoE,1966
|
|
87
87
|
utilities/pytest_plugins/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
|
88
88
|
utilities/pytest_plugins/pytest_randomly.py,sha256=B1qYVlExGOxTywq2r1SMi5o7btHLk2PNdY_b1p98dkE,409
|
89
89
|
utilities/pytest_plugins/pytest_regressions.py,sha256=9v8kAXDM2ycIXJBimoiF4EgrwbUvxTycFWJiGR_GHhM,1466
|
90
|
-
dycw_utilities-0.153.
|
91
|
-
dycw_utilities-0.153.
|
92
|
-
dycw_utilities-0.153.
|
93
|
-
dycw_utilities-0.153.
|
94
|
-
dycw_utilities-0.153.
|
90
|
+
dycw_utilities-0.153.15.dist-info/METADATA,sha256=neCtxZeZ7JlyzCZ3opv0TEhT06XjvX5Bhjf86JdTpco,1697
|
91
|
+
dycw_utilities-0.153.15.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
92
|
+
dycw_utilities-0.153.15.dist-info/entry_points.txt,sha256=BOD_SoDxwsfJYOLxhrSXhHP_T7iw-HXI9f2WVkzYxvQ,135
|
93
|
+
dycw_utilities-0.153.15.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
|
94
|
+
dycw_utilities-0.153.15.dist-info/RECORD,,
|
utilities/__init__.py
CHANGED
utilities/polars.py
CHANGED
@@ -2383,7 +2383,8 @@ def round_to_float(
|
|
2383
2383
|
) -> ExprOrSeries:
|
2384
2384
|
"""Round a column to the nearest multiple of another float."""
|
2385
2385
|
x = ensure_expr_or_series(x)
|
2386
|
-
|
2386
|
+
z = (x / y).round(mode=mode) * y
|
2387
|
+
return z.round(decimals=number_of_decimals(y) + 1)
|
2387
2388
|
|
2388
2389
|
|
2389
2390
|
##
|
utilities/random.py
CHANGED
@@ -3,6 +3,8 @@ from __future__ import annotations
|
|
3
3
|
from random import Random, SystemRandom
|
4
4
|
from typing import TYPE_CHECKING
|
5
5
|
|
6
|
+
from utilities.functools import cache
|
7
|
+
|
6
8
|
if TYPE_CHECKING:
|
7
9
|
from collections.abc import Iterable
|
8
10
|
|
@@ -47,6 +49,7 @@ _DOCKER_SUFFIXES = [
|
|
47
49
|
##
|
48
50
|
|
49
51
|
|
52
|
+
@cache
|
50
53
|
def get_state(seed: Seed | None = None, /) -> Random:
|
51
54
|
"""Get a random state."""
|
52
55
|
return seed if isinstance(seed, Random) else Random(x=seed)
|
utilities/sqlalchemy.py
CHANGED
@@ -128,7 +128,7 @@ def check_connect(engine: Engine, /) -> bool:
|
|
128
128
|
try:
|
129
129
|
with engine.connect() as conn:
|
130
130
|
return bool(conn.execute(_SELECT).scalar_one())
|
131
|
-
except (gaierror, OperationalError, ProgrammingError):
|
131
|
+
except (gaierror, ConnectionRefusedError, OperationalError, ProgrammingError):
|
132
132
|
return False
|
133
133
|
|
134
134
|
|
@@ -139,7 +139,13 @@ async def check_connect_async(
|
|
139
139
|
try:
|
140
140
|
async with timeout_td(timeout), engine.connect() as conn:
|
141
141
|
return bool((await conn.execute(_SELECT)).scalar_one())
|
142
|
-
except (
|
142
|
+
except (
|
143
|
+
gaierror,
|
144
|
+
ConnectionRefusedError,
|
145
|
+
OperationalError,
|
146
|
+
ProgrammingError,
|
147
|
+
TimeoutError,
|
148
|
+
):
|
143
149
|
return False
|
144
150
|
|
145
151
|
|
File without changes
|
File without changes
|
File without changes
|