dycw-utilities 0.136.5__py3-none-any.whl → 0.136.7__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.136.5.dist-info → dycw_utilities-0.136.7.dist-info}/METADATA +1 -1
- {dycw_utilities-0.136.5.dist-info → dycw_utilities-0.136.7.dist-info}/RECORD +7 -7
- utilities/__init__.py +1 -1
- utilities/libcst.py +25 -4
- utilities/sqlalchemy.py +20 -0
- {dycw_utilities-0.136.5.dist-info → dycw_utilities-0.136.7.dist-info}/WHEEL +0 -0
- {dycw_utilities-0.136.5.dist-info → dycw_utilities-0.136.7.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
utilities/__init__.py,sha256=
|
1
|
+
utilities/__init__.py,sha256=_gHgMWM-7wftYvG3CuC0fVylv31uuRdfxSdp2fJbITs,60
|
2
2
|
utilities/aiolimiter.py,sha256=mD0wEiqMgwpty4XTbawFpnkkmJS6R4JRsVXFUaoitSU,628
|
3
3
|
utilities/altair.py,sha256=HeZBVUocjkrTNwwKrClppsIqgNFF-ykv05HfZSoHYno,9104
|
4
4
|
utilities/asyncio.py,sha256=dcGeKQzjLBXxKzZkVIk5oZsFXEcynVbRB9iNB5XEDZk,38526
|
@@ -29,7 +29,7 @@ utilities/inflect.py,sha256=DbqB5Q9FbRGJ1NbvEiZBirRMxCxgrz91zy5jCO9ZIs0,347
|
|
29
29
|
utilities/ipython.py,sha256=V2oMYHvEKvlNBzxDXdLvKi48oUq2SclRg5xasjaXStw,763
|
30
30
|
utilities/iterables.py,sha256=wlcm0PS2fKG-H0r0k367NOLrryMbfXLlwzUeAmBSvv8,43392
|
31
31
|
utilities/jupyter.py,sha256=ft5JA7fBxXKzP-L9W8f2-wbF0QeYc_2uLQNFDVk4Z-M,2917
|
32
|
-
utilities/libcst.py,sha256=
|
32
|
+
utilities/libcst.py,sha256=XTT8cCYAYfI9ZIdxjiTCqbF45cN-viDNDa7GE5mR2T4,5615
|
33
33
|
utilities/lightweight_charts.py,sha256=JrkrAZMo6JID2Eoc9QCc05Y_pK4l2zsApIhmii1z2Ig,2764
|
34
34
|
utilities/logging.py,sha256=j0xS7bNdZcMAobWSRahpg_d7GWewd_99oXvexrjWm6k,17841
|
35
35
|
utilities/luigi.py,sha256=wK7cB3y8NXeSa8d6r_yTKRmjMguNmIPmy52yg10vPaI,4774
|
@@ -67,7 +67,7 @@ utilities/sentinel.py,sha256=3jIwgpMekWgDAxPDA_hXMP2St43cPhciKN3LWiZ7kv0,1248
|
|
67
67
|
utilities/shelve.py,sha256=HZsMwK4tcIfg3sh0gApx4-yjQnrY4o3V3ZRimvRhoW0,738
|
68
68
|
utilities/slack_sdk.py,sha256=RrB34gOj4TzBFh1vzMy6wL_ajzIG-2c9kiS6c6LzMFM,4233
|
69
69
|
utilities/socket.py,sha256=K77vfREvzoVTrpYKo6MZakol0EYu2q1sWJnnZqL0So0,118
|
70
|
-
utilities/sqlalchemy.py,sha256=
|
70
|
+
utilities/sqlalchemy.py,sha256=wZU8k_Mdi2v9U8bmqy3W3EiQywvrPj_wL24L1coTYRk,38565
|
71
71
|
utilities/sqlalchemy_polars.py,sha256=jXO-yizGuX_mivaQg7pe17GldcTMpeEldkIL4SpMyuI,14294
|
72
72
|
utilities/statsmodels.py,sha256=koyiBHvpMcSiBfh99wFUfSggLNx7cuAw3rwyfAhoKpQ,3410
|
73
73
|
utilities/streamlit.py,sha256=U9PJBaKP1IdSykKhPZhIzSPTZsmLsnwbEPZWzNhJPKk,2955
|
@@ -88,7 +88,7 @@ utilities/warnings.py,sha256=un1LvHv70PU-LLv8RxPVmugTzDJkkGXRMZTE2-fTQHw,1771
|
|
88
88
|
utilities/whenever.py,sha256=A-yoOqBqrcVD1yDINDsTFDw7dq9-zgUGn_f8CxVUQJs,23332
|
89
89
|
utilities/zipfile.py,sha256=24lQc9ATcJxHXBPc_tBDiJk48pWyRrlxO2fIsFxU0A8,699
|
90
90
|
utilities/zoneinfo.py,sha256=oEH-nL3t4h9uawyZqWDtNtDAl6M-CLpLYGI_nI6DulM,1971
|
91
|
-
dycw_utilities-0.136.
|
92
|
-
dycw_utilities-0.136.
|
93
|
-
dycw_utilities-0.136.
|
94
|
-
dycw_utilities-0.136.
|
91
|
+
dycw_utilities-0.136.7.dist-info/METADATA,sha256=Y-Pj2EJoFNikG1cNjmfA9b8mzZdMzR_XpxuZX6hzBEc,1637
|
92
|
+
dycw_utilities-0.136.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
93
|
+
dycw_utilities-0.136.7.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
|
94
|
+
dycw_utilities-0.136.7.dist-info/RECORD,,
|
utilities/__init__.py
CHANGED
utilities/libcst.py
CHANGED
@@ -43,10 +43,30 @@ def generate_import_from(
|
|
43
43
|
module: str, name: str, /, *, asname: str | None = None
|
44
44
|
) -> ImportFrom:
|
45
45
|
"""Generate an `ImportFrom` object."""
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
46
|
+
match name, asname:
|
47
|
+
case "*", None:
|
48
|
+
names = ImportStar()
|
49
|
+
case "*", str():
|
50
|
+
raise GenerateImportFromError(module=module, asname=asname)
|
51
|
+
case _, None:
|
52
|
+
alias = ImportAlias(name=Name(name))
|
53
|
+
names = [alias]
|
54
|
+
case _, str():
|
55
|
+
alias = ImportAlias(name=Name(name), asname=AsName(Name(asname)))
|
56
|
+
names = [alias]
|
57
|
+
case _ as never:
|
58
|
+
assert_never(never)
|
59
|
+
return ImportFrom(module=split_dotted_str(module), names=names)
|
60
|
+
|
61
|
+
|
62
|
+
@dataclass(kw_only=True, slots=True)
|
63
|
+
class GenerateImportFromError(Exception):
|
64
|
+
module: str
|
65
|
+
asname: str | None = None
|
66
|
+
|
67
|
+
@override
|
68
|
+
def __str__(self) -> str:
|
69
|
+
return f"Invalid import: 'from {self.module} import * as {self.asname}'"
|
50
70
|
|
51
71
|
|
52
72
|
##
|
@@ -168,6 +188,7 @@ def render_module(source: str | Module, /) -> str:
|
|
168
188
|
|
169
189
|
|
170
190
|
__all__ = [
|
191
|
+
"GenerateImportFromError",
|
171
192
|
"ParseImportError",
|
172
193
|
"generate_f_string",
|
173
194
|
"generate_import",
|
utilities/sqlalchemy.py
CHANGED
@@ -86,6 +86,8 @@ from utilities.types import MaybeIterable, MaybeType, StrMapping, TupleOrStrMapp
|
|
86
86
|
from utilities.whenever import SECOND
|
87
87
|
|
88
88
|
if TYPE_CHECKING:
|
89
|
+
from enum import Enum, StrEnum
|
90
|
+
|
89
91
|
from whenever import TimeDelta
|
90
92
|
|
91
93
|
type _EngineOrConnectionOrAsync = Engine | Connection | AsyncEngine | AsyncConnection
|
@@ -284,6 +286,22 @@ async def ensure_tables_dropped(
|
|
284
286
|
##
|
285
287
|
|
286
288
|
|
289
|
+
def enum_name(enum: type[Enum], /) -> str:
|
290
|
+
"""Get the name of an Enum."""
|
291
|
+
return f"{snake_case(get_class_name(enum))}_enum"
|
292
|
+
|
293
|
+
|
294
|
+
##
|
295
|
+
|
296
|
+
|
297
|
+
def enum_values(enum: type[StrEnum], /) -> list[str]:
|
298
|
+
"""Get the values of a StrEnum."""
|
299
|
+
return [e.value for e in enum]
|
300
|
+
|
301
|
+
|
302
|
+
##
|
303
|
+
|
304
|
+
|
287
305
|
def get_chunk_size(
|
288
306
|
engine_or_conn: _EngineOrConnectionOrAsync,
|
289
307
|
/,
|
@@ -1171,6 +1189,8 @@ __all__ = [
|
|
1171
1189
|
"create_async_engine",
|
1172
1190
|
"ensure_tables_created",
|
1173
1191
|
"ensure_tables_dropped",
|
1192
|
+
"enum_name",
|
1193
|
+
"enum_values",
|
1174
1194
|
"get_chunk_size",
|
1175
1195
|
"get_column_names",
|
1176
1196
|
"get_columns",
|
File without changes
|
File without changes
|