dycw-utilities 0.158.0__py3-none-any.whl → 0.158.2__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.158.0
3
+ Version: 0.158.2
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=dllUsKScS7RBnWFHME-sLeOoDAWms1u25frX9QMEP-4,60
1
+ utilities/__init__.py,sha256=jZQwkUNy9TN26VVw3BQw14Odj6HwpuCsgilpBwksDU4,60
2
2
  utilities/altair.py,sha256=92E2lCdyHY4Zb-vCw6rEJIsWdKipuu-Tu2ab1ufUfAk,9079
3
3
  utilities/asyncio.py,sha256=PUedzQ5deqlSECQ33sam9cRzI9TnygHz3FdOqWJWPTM,15288
4
4
  utilities/atomicwrites.py,sha256=tPo6r-Rypd9u99u66B9z86YBPpnLrlHtwox_8Z7T34Y,5790
@@ -10,7 +10,7 @@ utilities/contextlib.py,sha256=m2D5bwvtCZLJcJ3IwVqyErYODuwJ1gLrT2UfATAQl-w,7435
10
10
  utilities/contextvars.py,sha256=J8OhC7jqozAGYOCe2KUWysbPXNGe5JYz3HfaY_mIs08,883
11
11
  utilities/cryptography.py,sha256=5PFrzsNUGHay91dFgYnDKwYprXxahrBqztmUqViRzBk,956
12
12
  utilities/cvxpy.py,sha256=Rv1-fD-XYerosCavRF8Pohop2DBkU3AlFaGTfD8AEAA,13776
13
- utilities/dataclasses.py,sha256=MXrvIPSZHlpV4msRdVVDRZZo7MC3gX5C9jDUSoNOdpE,32478
13
+ utilities/dataclasses.py,sha256=wGfQtopYZCwvUxNxLOlVNFlhK8Q0_aQbKJ0rWfT-fEc,32482
14
14
  utilities/enum.py,sha256=5l6pwZD1cjSlVW4ss-zBPspWvrbrYrdtJWcg6f5_J5w,5781
15
15
  utilities/errors.py,sha256=mFlDGSM0LI1jZ1pbqwLAH3ttLZ2JVIxyZLojw8tGVZU,1479
16
16
  utilities/eventkit.py,sha256=ddoleSwW9zdc2tjX5Ge0pMKtYwV_JMxhHYOxnWX2AGM,12609
@@ -40,7 +40,7 @@ utilities/numpy.py,sha256=Xn23sA2ZbVNqwUYEgNJD3XBYH6IbCri_WkHSNhg3NkY,26122
40
40
  utilities/operator.py,sha256=nhxn5q6CFNzUm1wpTwWPCu9JGCqVHSlaJf0o1-efoII,3616
41
41
  utilities/optuna.py,sha256=C-fhWYiXHVPo1l8QctYkFJ4DyhbSrGorzP1dJb_qvd8,1933
42
42
  utilities/orjson.py,sha256=Ll0U172ITMqOJc3kjV90C0eI-EWzSXlMHSdUBaUSe80,41499
43
- utilities/os.py,sha256=Zwznb1Y0cHHIPG7t0UfEWeo0VeDzCnBcwI0mTV-xh2M,3877
43
+ utilities/os.py,sha256=8TjFLVWlGhhEpzZ0X_vNAyhYntjeVL5WTwaQcdTaNVw,3934
44
44
  utilities/parse.py,sha256=JcJn5yXKhIWXBCwgBdPsyu7Hvcuw6kyEdqvaebCaI9k,17951
45
45
  utilities/pathlib.py,sha256=qGuU8XPmdgGpy8tOMUgelfXx3kxI8h9IaV3TI_06QGE,8428
46
46
  utilities/pickle.py,sha256=MBT2xZCsv0pH868IXLGKnlcqNx2IRVKYNpRcqiQQqxw,653
@@ -64,7 +64,7 @@ utilities/sentinel.py,sha256=A_p5jX2K0Yc5XBfoYHyBLqHsEWzE1ByOdDuzzA2pZnE,1434
64
64
  utilities/shelve.py,sha256=4OzjQI6kGuUbJciqf535rwnao-_IBv66gsT6tRGiUt0,759
65
65
  utilities/slack_sdk.py,sha256=76-DYtcGiUhEvl-voMamc5OjfF7Y7nCq54Bys1arqzw,2233
66
66
  utilities/socket.py,sha256=K77vfREvzoVTrpYKo6MZakol0EYu2q1sWJnnZqL0So0,118
67
- utilities/sqlalchemy.py,sha256=4rLjecgDe60MnuWxUqZVIQy3dKepNaemoGyrnuCdNZg,36347
67
+ utilities/sqlalchemy.py,sha256=qBB6N2wVjplvI4xFgbzzNmsW5zLvnXszmxyV9AsrmbA,36367
68
68
  utilities/sqlalchemy_polars.py,sha256=JCGhB37raSR7fqeWV5dTsciRTMVzIdVT9YSqKT0piT0,13370
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.158.0.dist-info/METADATA,sha256=-lYD9v1af9rVk_ibo4Z2cLp-i4JgpoR7qiHy1svZeDU,1643
91
- dycw_utilities-0.158.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
92
- dycw_utilities-0.158.0.dist-info/entry_points.txt,sha256=BOD_SoDxwsfJYOLxhrSXhHP_T7iw-HXI9f2WVkzYxvQ,135
93
- dycw_utilities-0.158.0.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
94
- dycw_utilities-0.158.0.dist-info/RECORD,,
90
+ dycw_utilities-0.158.2.dist-info/METADATA,sha256=obAnKM-ELyfwb4R4ujBYwTxLDgAgCQjFu5lQxUwri38,1643
91
+ dycw_utilities-0.158.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
92
+ dycw_utilities-0.158.2.dist-info/entry_points.txt,sha256=BOD_SoDxwsfJYOLxhrSXhHP_T7iw-HXI9f2WVkzYxvQ,135
93
+ dycw_utilities-0.158.2.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
94
+ dycw_utilities-0.158.2.dist-info/RECORD,,
utilities/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  from __future__ import annotations
2
2
 
3
- __version__ = "0.158.0"
3
+ __version__ = "0.158.2"
utilities/dataclasses.py CHANGED
@@ -34,7 +34,7 @@ from utilities.text import (
34
34
  _SplitKeyValuePairsSplitError,
35
35
  split_key_value_pairs,
36
36
  )
37
- from utilities.types import SupportsLT
37
+ from utilities.types import MaybeType, SupportsLT
38
38
  from utilities.typing import get_type_hints
39
39
 
40
40
  if TYPE_CHECKING:
@@ -830,7 +830,7 @@ def yield_fields(
830
830
  warn_name_errors: bool = False,
831
831
  ) -> Iterator[_YieldFieldsClass[Any]]: ...
832
832
  def yield_fields(
833
- obj: Dataclass | type[Dataclass],
833
+ obj: MaybeType[Dataclass],
834
834
  /,
835
835
  *,
836
836
  globalns: StrMapping | None = None,
utilities/os.py CHANGED
@@ -126,7 +126,7 @@ class GetEnvVarError(Exception):
126
126
 
127
127
  def is_debug() -> bool:
128
128
  """Check if we are in `DEBUG` mode."""
129
- return "DEBUG" in environ
129
+ return get_env_var("DEBUG", nullable=True) is not None
130
130
 
131
131
 
132
132
  ##
@@ -134,7 +134,7 @@ def is_debug() -> bool:
134
134
 
135
135
  def is_pytest() -> bool:
136
136
  """Check if `pytest` is running."""
137
- return "PYTEST_VERSION" in environ
137
+ return get_env_var("PYTEST_VERSION", default=None) is not None
138
138
 
139
139
 
140
140
  ##
utilities/sqlalchemy.py CHANGED
@@ -604,9 +604,9 @@ async def insert_items(
604
604
  chunk_size_frac: float = CHUNK_SIZE_FRAC,
605
605
  assume_tables_exist: bool = False,
606
606
  timeout_create: Delta | None = None,
607
- error_create: type[Exception] = TimeoutError,
607
+ error_create: MaybeType[Exception] = TimeoutError,
608
608
  timeout_insert: Delta | None = None,
609
- error_insert: type[Exception] = TimeoutError,
609
+ error_insert: MaybeType[Exception] = TimeoutError,
610
610
  ) -> None:
611
611
  """Insert a set of items into a database.
612
612
 
@@ -849,9 +849,9 @@ async def migrate_data(
849
849
  chunk_size_frac: float = CHUNK_SIZE_FRAC,
850
850
  assume_tables_exist: bool = False,
851
851
  timeout_create: Delta | None = None,
852
- error_create: type[Exception] = TimeoutError,
852
+ error_create: MaybeType[Exception] = TimeoutError,
853
853
  timeout_insert: Delta | None = None,
854
- error_insert: type[Exception] = TimeoutError,
854
+ error_insert: MaybeType[Exception] = TimeoutError,
855
855
  ) -> None:
856
856
  """Migrate the contents of a table from one database to another."""
857
857
  table_from = get_table(table_or_orm_from)