dycw-utilities 0.151.1__py3-none-any.whl → 0.151.3__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.151.1
3
+ Version: 0.151.3
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=bBf9Tl-C2hugDGfPB8K4pQzyp1XJyFusRFY_wkOtfbk,60
1
+ utilities/__init__.py,sha256=OsjNsTnhC1azTR-uKfAH73i7Pj7u8seejtRSOgI1LD4,60
2
2
  utilities/altair.py,sha256=92E2lCdyHY4Zb-vCw6rEJIsWdKipuu-Tu2ab1ufUfAk,9079
3
3
  utilities/asyncio.py,sha256=2m2a2C-Qgc6OHTTHL332-t66A7xDITt_SORT7a1DJWo,16792
4
4
  utilities/atomicwrites.py,sha256=xcOWenTBRS0oat3kg7Sqe51AohNThMQ2ixPL7QCG8hw,5795
@@ -49,7 +49,7 @@ utilities/pickle.py,sha256=MBT2xZCsv0pH868IXLGKnlcqNx2IRVKYNpRcqiQQqxw,653
49
49
  utilities/platform.py,sha256=Ue9LSxYvg9yUXGKuz5aZoy_qkUEXde-v6B09exgSctU,2813
50
50
  utilities/polars.py,sha256=wusyiQTHMxcPrRzsjWWt975rgcMQBRcaY4cJgkNUzw4,72501
51
51
  utilities/polars_ols.py,sha256=Uc9V5kvlWZ5cU93lKZ-cfAKdVFFw81tqwLW9PxtUvMs,5618
52
- utilities/postgres.py,sha256=48km6Mb6hRUb1-0FWg7FKEfrW75z8-7AY1jahtdu_KY,12406
52
+ utilities/postgres.py,sha256=xArnonKtL5IR93LpoUYN2U16YswBCJlU5WQkDbv10A0,12553
53
53
  utilities/pottery.py,sha256=u0uvyGgYyujxftEMlsv6ppYTKQoVVjHt5jnVxxYz9s4,6596
54
54
  utilities/pqdm.py,sha256=BTsYPtbKQWwX-iXF4qCkfPG7DPxIB54J989n83bXrIo,3092
55
55
  utilities/psutil.py,sha256=KUlu4lrUw9Zg1V7ZGetpWpGb9DB8l_SSDWGbANFNCPU,2104
@@ -76,7 +76,7 @@ utilities/threading.py,sha256=GvBOp4CyhHfN90wGXZuA2VKe9fGzMaEa7oCl4f3nnPU,1009
76
76
  utilities/timer.py,sha256=oXfTii6ymu57niP0BDGZjFD55LEHi2a19kqZKiTgaFQ,2588
77
77
  utilities/traceback.py,sha256=zofhzIedpUHrzDNiRJDVzm_wuu_tlTQvVqK4quxVlgM,9151
78
78
  utilities/typed_settings.py,sha256=98OQQsXyfjxbGPjWqG45P_DoNgrzS4gZ7062oD2lgtE,4481
79
- utilities/types.py,sha256=iDfk_Z96v7cIxPlgGYMap0fYmjgRUJ7uQzPPCQe1odY,18115
79
+ utilities/types.py,sha256=4bHcAF4OVMjnaY9SAj8_bKiHfj6YurD6Y3cipV-5yFE,18551
80
80
  utilities/typing.py,sha256=Z-_XDaWyT_6wIo3qfNK-hvRlzxP2Jxa9PgXzm5rDYRA,13790
81
81
  utilities/tzdata.py,sha256=fgNVj66yUbCSI_-vrRVzSD3gtf-L_8IEJEPjP_Jel5Y,266
82
82
  utilities/tzlocal.py,sha256=KyCXEgCTjqGFx-389JdTuhMRUaT06U1RCMdWoED-qro,728
@@ -89,8 +89,8 @@ utilities/zoneinfo.py,sha256=oEH-nL3t4h9uawyZqWDtNtDAl6M-CLpLYGI_nI6DulM,1971
89
89
  utilities/pytest_plugins/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
90
90
  utilities/pytest_plugins/pytest_randomly.py,sha256=NXzCcGKbpgYouz5yehKb4jmxmi2SexKKpgF4M65bi10,414
91
91
  utilities/pytest_plugins/pytest_regressions.py,sha256=Iwhfv_OJH7UCPZCfoh7ugZ2Xjqjil-BBBsOb8sDwiGI,1471
92
- dycw_utilities-0.151.1.dist-info/METADATA,sha256=Ooil0Z8qgBzFL5vPNHUBYeOBu0IY_K6DKtX1is2oQ08,1696
93
- dycw_utilities-0.151.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
94
- dycw_utilities-0.151.1.dist-info/entry_points.txt,sha256=BOD_SoDxwsfJYOLxhrSXhHP_T7iw-HXI9f2WVkzYxvQ,135
95
- dycw_utilities-0.151.1.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
96
- dycw_utilities-0.151.1.dist-info/RECORD,,
92
+ dycw_utilities-0.151.3.dist-info/METADATA,sha256=gyAiyV-Lyw-ikpB81497gJqo-plAE0pcteYpuatGt2M,1696
93
+ dycw_utilities-0.151.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
94
+ dycw_utilities-0.151.3.dist-info/entry_points.txt,sha256=BOD_SoDxwsfJYOLxhrSXhHP_T7iw-HXI9f2WVkzYxvQ,135
95
+ dycw_utilities-0.151.3.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
96
+ dycw_utilities-0.151.3.dist-info/RECORD,,
utilities/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  from __future__ import annotations
2
2
 
3
- __version__ = "0.151.1"
3
+ __version__ = "0.151.3"
utilities/postgres.py CHANGED
@@ -21,7 +21,12 @@ if TYPE_CHECKING:
21
21
  from sqlalchemy import URL
22
22
 
23
23
  from utilities.sqlalchemy import TableOrORMInstOrClass
24
- from utilities.types import LoggerOrName, MaybeListStr, MaybeSequence, PathLike
24
+ from utilities.types import (
25
+ LoggerOrName,
26
+ MaybeCollection,
27
+ MaybeCollectionStr,
28
+ PathLike,
29
+ )
25
30
 
26
31
 
27
32
  type _PGDumpFormat = Literal["plain", "custom", "directory", "tar"]
@@ -37,12 +42,12 @@ async def pg_dump(
37
42
  data_only: bool = False,
38
43
  clean: bool = False,
39
44
  create: bool = False,
40
- extension: MaybeListStr | None = None,
41
- extension_exc: MaybeListStr | None = None,
42
- schema: MaybeListStr | None = None,
43
- schema_exc: MaybeListStr | None = None,
44
- table: MaybeSequence[TableOrORMInstOrClass | str] | None = None,
45
- table_exc: MaybeSequence[TableOrORMInstOrClass | str] | None = None,
45
+ extension: MaybeCollectionStr | None = None,
46
+ extension_exc: MaybeCollectionStr | None = None,
47
+ schema: MaybeCollectionStr | None = None,
48
+ schema_exc: MaybeCollectionStr | None = None,
49
+ table: MaybeCollection[TableOrORMInstOrClass | str] | None = None,
50
+ table_exc: MaybeCollection[TableOrORMInstOrClass | str] | None = None,
46
51
  inserts: bool = False,
47
52
  on_conflict_do_nothing: bool = False,
48
53
  role: str | None = None,
@@ -113,12 +118,12 @@ def _build_pg_dump(
113
118
  data_only: bool = False,
114
119
  clean: bool = False,
115
120
  create: bool = False,
116
- extension: MaybeListStr | None = None,
117
- extension_exc: MaybeListStr | None = None,
118
- schema: MaybeListStr | None = None,
119
- schema_exc: MaybeListStr | None = None,
120
- table: MaybeSequence[TableOrORMInstOrClass | str] | None = None,
121
- table_exc: MaybeSequence[TableOrORMInstOrClass | str] | None = None,
121
+ extension: MaybeCollectionStr | None = None,
122
+ extension_exc: MaybeCollectionStr | None = None,
123
+ schema: MaybeCollectionStr | None = None,
124
+ schema_exc: MaybeCollectionStr | None = None,
125
+ table: MaybeCollection[TableOrORMInstOrClass | str] | None = None,
126
+ table_exc: MaybeCollection[TableOrORMInstOrClass | str] | None = None,
122
127
  inserts: bool = False,
123
128
  on_conflict_do_nothing: bool = False,
124
129
  role: str | None = None,
@@ -206,9 +211,9 @@ async def restore(
206
211
  clean: bool = False,
207
212
  create: bool = False,
208
213
  jobs: int | None = None,
209
- schema: MaybeListStr | None = None,
210
- schema_exc: MaybeListStr | None = None,
211
- table: MaybeSequence[TableOrORMInstOrClass | str] | None = None,
214
+ schema: MaybeCollectionStr | None = None,
215
+ schema_exc: MaybeCollectionStr | None = None,
216
+ table: MaybeCollection[TableOrORMInstOrClass | str] | None = None,
212
217
  role: str | None = None,
213
218
  docker: str | None = None,
214
219
  dry_run: bool = False,
@@ -271,9 +276,9 @@ def _build_pg_restore_or_psql(
271
276
  clean: bool = False,
272
277
  create: bool = False,
273
278
  jobs: int | None = None,
274
- schema: MaybeListStr | None = None,
275
- schema_exc: MaybeListStr | None = None,
276
- table: MaybeSequence[TableOrORMInstOrClass | str] | None = None,
279
+ schema: MaybeCollectionStr | None = None,
280
+ schema_exc: MaybeCollectionStr | None = None,
281
+ table: MaybeCollection[TableOrORMInstOrClass | str] | None = None,
277
282
  role: str | None = None,
278
283
  docker: str | None = None,
279
284
  ) -> str:
@@ -304,9 +309,9 @@ def _build_pg_restore(
304
309
  clean: bool = False,
305
310
  create: bool = False,
306
311
  jobs: int | None = None,
307
- schemas: MaybeListStr | None = None,
308
- schemas_exc: MaybeListStr | None = None,
309
- tables: MaybeSequence[TableOrORMInstOrClass | str] | None = None,
312
+ schemas: MaybeCollectionStr | None = None,
313
+ schemas_exc: MaybeCollectionStr | None = None,
314
+ tables: MaybeCollection[TableOrORMInstOrClass | str] | None = None,
310
315
  role: str | None = None,
311
316
  docker: str | None = None,
312
317
  ) -> str:
utilities/types.py CHANGED
@@ -2,7 +2,15 @@ from __future__ import annotations
2
2
 
3
3
  import datetime as dt
4
4
  from asyncio import Event
5
- from collections.abc import Callable, Coroutine, Hashable, Iterable, Mapping, Sequence
5
+ from collections.abc import (
6
+ Callable,
7
+ Collection,
8
+ Coroutine,
9
+ Hashable,
10
+ Iterable,
11
+ Mapping,
12
+ Sequence,
13
+ )
6
14
  from enum import Enum
7
15
  from ipaddress import IPv4Address, IPv6Address
8
16
  from logging import Logger
@@ -115,12 +123,20 @@ IPv6AddressLike = MaybeStr[IPv6Address]
115
123
 
116
124
 
117
125
  # iterables
118
- type MaybeIterable[T] = T | Iterable[T]
119
126
  type IterableHashable[T: Hashable] = tuple[T, ...] | frozenset[T]
127
+ type MaybeCollection[T] = T | Collection[T]
128
+ type MaybeIterableHashable[T: Hashable] = T | IterableHashable[T]
129
+ type MaybeIterable[T] = T | Iterable[T]
120
130
  type MaybeList[T] = T | list[T]
121
- type MaybeListStr = MaybeList[str]
122
131
  type MaybeSequence[T] = T | Sequence[T]
123
- type MaybeIterableHashable[T: Hashable] = T | IterableHashable[T]
132
+ # iterables - str
133
+ type CollectionStr = (
134
+ dict[str, Any] | frozenset[str] | list[str] | set[str] | tuple[str, ...]
135
+ )
136
+ type MaybeCollectionStr = str | CollectionStr
137
+ type MaybeListStr = MaybeList[str]
138
+ type MaybeSequenceStr = str | SequenceStr
139
+ type SequenceStr = list[str] | tuple[str, ...]
124
140
 
125
141
 
126
142
  # logging
@@ -283,12 +299,15 @@ __all__ = [
283
299
  "MaybeCallablePathLike",
284
300
  "MaybeCallableStr",
285
301
  "MaybeCallableZonedDateTime",
302
+ "MaybeCollection",
303
+ "MaybeCollectionStr",
286
304
  "MaybeCoro",
287
305
  "MaybeIterable",
288
306
  "MaybeIterableHashable",
289
307
  "MaybeList",
290
308
  "MaybeListStr",
291
309
  "MaybeSequence",
310
+ "MaybeSequenceStr",
292
311
  "MaybeStr",
293
312
  "MaybeType",
294
313
  "MonthDayLike",
@@ -302,6 +321,7 @@ __all__ = [
302
321
  "PatternLike",
303
322
  "PlainDateTimeLike",
304
323
  "Seed",
324
+ "SequenceStr",
305
325
  "SerializeObjectExtra",
306
326
  "Sign",
307
327
  "StrMapping",