dycw-utilities 0.129.14__tar.gz → 0.129.15__tar.gz

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.
Files changed (234) hide show
  1. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/PKG-INFO +26 -26
  2. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/pyproject.toml +30 -30
  3. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/__init__.py +1 -1
  4. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/asyncio.py +9 -4
  5. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/redis.py +3 -3
  6. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/sqlalchemy.py +8 -2
  7. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/sqlalchemy_polars.py +2 -2
  8. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/.gitignore +0 -0
  9. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/LICENSE +0 -0
  10. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/README.md +0 -0
  11. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/__init__.py +0 -0
  12. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/conftest.py +0 -0
  13. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/__init__.py +0 -0
  14. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/package_missing/__init__.py +0 -0
  15. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/package_missing/module.py +0 -0
  16. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/package_with/__init__.py +0 -0
  17. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/package_with/outer_1.py +0 -0
  18. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/package_with/outer_2.py +0 -0
  19. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
  20. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
  21. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
  22. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
  23. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/package_without/__init__.py +0 -0
  24. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/package_without/module_1.py +0 -0
  25. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/package_without/module_2.py +0 -0
  26. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/standalone.py +0 -0
  27. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/modules/with_imports.py +0 -0
  28. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
  29. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
  30. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
  31. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
  32. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
  33. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
  34. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
  35. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
  36. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_aiolimiter.py +0 -0
  37. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_altair.py +0 -0
  38. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_asyncio.py +0 -0
  39. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_asyncio_classes/__init__.py +0 -0
  40. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_asyncio_classes/loopers.py +0 -0
  41. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_asyncio_classes/redis.py +0 -0
  42. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_atomicwrites.py +0 -0
  43. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_atools.py +0 -0
  44. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_cachetools.py +0 -0
  45. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_click.py +0 -0
  46. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_concurrent.py +0 -0
  47. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_contextlib.py +0 -0
  48. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_contextvars.py +0 -0
  49. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_cryptography.py +0 -0
  50. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_cvxpy.py +0 -0
  51. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_dataclasses.py +0 -0
  52. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_datetime.py +0 -0
  53. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_enum.py +0 -0
  54. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_errors.py +0 -0
  55. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_eventkit.py +0 -0
  56. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_fastapi.py +0 -0
  57. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_fpdf2.py +0 -0
  58. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_functions.py +0 -0
  59. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_functools.py +0 -0
  60. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_getpass.py +0 -0
  61. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_git.py +0 -0
  62. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_hashlib.py +0 -0
  63. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_http.py +0 -0
  64. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_hypothesis.py +0 -0
  65. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_importlib.py +0 -0
  66. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_inflect.py +0 -0
  67. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_ipython.py +0 -0
  68. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_iterables.py +0 -0
  69. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_jupyter.py +0 -0
  70. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_libcst.py +0 -0
  71. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_lightweight_charts.py +0 -0
  72. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_logging.py +0 -0
  73. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_loguru.py +0 -0
  74. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_luigi.py +0 -0
  75. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_math.py +0 -0
  76. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_memory_profiler.py +0 -0
  77. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_modules.py +0 -0
  78. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_more_itertools.py +0 -0
  79. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_numpy.py +0 -0
  80. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_operator.py +0 -0
  81. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_optuna.py +0 -0
  82. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_orjson.py +0 -0
  83. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_os.py +0 -0
  84. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_parse.py +0 -0
  85. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_pathlib.py +0 -0
  86. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_period.py +0 -0
  87. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_pickle.py +0 -0
  88. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_platform.py +0 -0
  89. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_polars.py +0 -0
  90. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_polars_ols.py +0 -0
  91. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_pottery.py +0 -0
  92. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_pqdm.py +0 -0
  93. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_psutil.py +0 -0
  94. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_pydantic.py +0 -0
  95. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_pyinstrument.py +0 -0
  96. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_pyrsistent.py +0 -0
  97. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_pytest.py +0 -0
  98. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_pytest_regressions.py +0 -0
  99. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_python_dotenv.py +0 -0
  100. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_random.py +0 -0
  101. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_re.py +0 -0
  102. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_redis.py +0 -0
  103. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_reprlib.py +0 -0
  104. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_scipy.py +0 -0
  105. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_sentinel.py +0 -0
  106. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_shelve.py +0 -0
  107. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_slack_sdk.py +0 -0
  108. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_socket.py +0 -0
  109. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_sqlalchemy.py +0 -0
  110. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_sqlalchemy_polars.py +0 -0
  111. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_statsmodel.py +0 -0
  112. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_streamlit.py +0 -0
  113. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_string.py +0 -0
  114. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_sys.py +0 -0
  115. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_tempfile.py +0 -0
  116. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_tenacity.py +0 -0
  117. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_text.py +0 -0
  118. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_threading.py +0 -0
  119. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_timer.py +0 -0
  120. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback.py +0 -0
  121. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/__init__.py +0 -0
  122. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/chain.py +0 -0
  123. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/decorated_async.py +0 -0
  124. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/decorated_sync.py +0 -0
  125. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/error_bind.py +0 -0
  126. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/many.py +0 -0
  127. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/one.py +0 -0
  128. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/recursive.py +0 -0
  129. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/task_group_one.py +0 -0
  130. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/task_group_two.py +0 -0
  131. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/two.py +0 -0
  132. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/untraced.py +0 -0
  133. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_types.py +0 -0
  134. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_typing.py +0 -0
  135. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_typing_funcs/__init__.py +0 -0
  136. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_typing_funcs/no_future.py +0 -0
  137. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_typing_funcs/with_future.py +0 -0
  138. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_tzdata.py +0 -0
  139. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_tzlocal.py +0 -0
  140. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_uuid.py +0 -0
  141. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_version.py +0 -0
  142. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_warnings.py +0 -0
  143. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_whenever.py +0 -0
  144. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_zipfile.py +0 -0
  145. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/tests/test_zoneinfo.py +0 -0
  146. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/aiolimiter.py +0 -0
  147. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/altair.py +0 -0
  148. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/atomicwrites.py +0 -0
  149. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/atools.py +0 -0
  150. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/cachetools.py +0 -0
  151. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/click.py +0 -0
  152. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/concurrent.py +0 -0
  153. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/contextlib.py +0 -0
  154. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/contextvars.py +0 -0
  155. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/cryptography.py +0 -0
  156. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/cvxpy.py +0 -0
  157. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/dataclasses.py +0 -0
  158. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/datetime.py +0 -0
  159. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/enum.py +0 -0
  160. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/errors.py +0 -0
  161. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/eventkit.py +0 -0
  162. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/fastapi.py +0 -0
  163. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/fpdf2.py +0 -0
  164. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/functions.py +0 -0
  165. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/functools.py +0 -0
  166. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/getpass.py +0 -0
  167. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/git.py +0 -0
  168. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/hashlib.py +0 -0
  169. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/http.py +0 -0
  170. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/hypothesis.py +0 -0
  171. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/importlib.py +0 -0
  172. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/inflect.py +0 -0
  173. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/ipython.py +0 -0
  174. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/iterables.py +0 -0
  175. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/jupyter.py +0 -0
  176. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/libcst.py +0 -0
  177. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/lightweight_charts.py +0 -0
  178. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/logging.py +0 -0
  179. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/loguru.py +0 -0
  180. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/luigi.py +0 -0
  181. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/math.py +0 -0
  182. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/memory_profiler.py +0 -0
  183. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/modules.py +0 -0
  184. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/more_itertools.py +0 -0
  185. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/numpy.py +0 -0
  186. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/operator.py +0 -0
  187. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/optuna.py +0 -0
  188. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/orjson.py +0 -0
  189. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/os.py +0 -0
  190. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/parse.py +0 -0
  191. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/pathlib.py +0 -0
  192. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/period.py +0 -0
  193. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/pickle.py +0 -0
  194. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/platform.py +0 -0
  195. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/polars.py +0 -0
  196. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/polars_ols.py +0 -0
  197. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/pottery.py +0 -0
  198. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/pqdm.py +0 -0
  199. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/psutil.py +0 -0
  200. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/py.typed +0 -0
  201. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/pydantic.py +0 -0
  202. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/pyinstrument.py +0 -0
  203. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/pyrsistent.py +0 -0
  204. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/pytest.py +0 -0
  205. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/pytest_regressions.py +0 -0
  206. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/python_dotenv.py +0 -0
  207. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/random.py +0 -0
  208. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/re.py +0 -0
  209. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/reprlib.py +0 -0
  210. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/scipy.py +0 -0
  211. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/sentinel.py +0 -0
  212. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/shelve.py +0 -0
  213. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/slack_sdk.py +0 -0
  214. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/socket.py +0 -0
  215. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/statsmodels.py +0 -0
  216. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/streamlit.py +0 -0
  217. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/string.py +0 -0
  218. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/sys.py +0 -0
  219. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/tempfile.py +0 -0
  220. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/tenacity.py +0 -0
  221. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/text.py +0 -0
  222. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/threading.py +0 -0
  223. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/timer.py +0 -0
  224. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/traceback.py +0 -0
  225. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/types.py +0 -0
  226. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/typing.py +0 -0
  227. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/tzdata.py +0 -0
  228. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/tzlocal.py +0 -0
  229. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/uuid.py +0 -0
  230. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/version.py +0 -0
  231. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/warnings.py +0 -0
  232. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/whenever.py +0 -0
  233. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/zipfile.py +0 -0
  234. {dycw_utilities-0.129.14 → dycw_utilities-0.129.15}/src/utilities/zoneinfo.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dycw-utilities
3
- Version: 0.129.14
3
+ Version: 0.129.15
4
4
  Author-email: Derek Wan <d.wan@icloud.com>
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.12
@@ -9,7 +9,7 @@ Provides-Extra: logging
9
9
  Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'logging'
10
10
  Requires-Dist: coloredlogs<15.1,>=15.0.1; extra == 'logging'
11
11
  Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'logging'
12
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'logging'
12
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'logging'
13
13
  Provides-Extra: test
14
14
  Requires-Dist: dycw-pytest-only<2.2,>=2.1.1; extra == 'test'
15
15
  Requires-Dist: hypothesis<6.136,>=6.135.2; extra == 'test'
@@ -32,7 +32,7 @@ Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-altair'
32
32
  Requires-Dist: img2pdf<0.7,>=0.6.0; extra == 'zzz-test-altair'
33
33
  Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-altair'
34
34
  Requires-Dist: vl-convert-python<1.9,>=1.8.0; extra == 'zzz-test-altair'
35
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-altair'
35
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-altair'
36
36
  Provides-Extra: zzz-test-asyncio
37
37
  Provides-Extra: zzz-test-atomicwrites
38
38
  Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-atomicwrites'
@@ -43,20 +43,20 @@ Requires-Dist: cachetools<5.6,>=5.5.2; extra == 'zzz-test-cachetools'
43
43
  Provides-Extra: zzz-test-click
44
44
  Requires-Dist: click<8.3,>=8.2.1; extra == 'zzz-test-click'
45
45
  Requires-Dist: sqlalchemy<2.1,>=2.0.41; extra == 'zzz-test-click'
46
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-click'
46
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-click'
47
47
  Provides-Extra: zzz-test-contextlib
48
48
  Provides-Extra: zzz-test-contextvars
49
49
  Provides-Extra: zzz-test-cryptography
50
- Requires-Dist: cryptography<45.1,>=45.0.3; extra == 'zzz-test-cryptography'
50
+ Requires-Dist: cryptography<45.1,>=45.0.4; extra == 'zzz-test-cryptography'
51
51
  Provides-Extra: zzz-test-cvxpy
52
52
  Requires-Dist: cvxpy<1.7,>=1.6.5; extra == 'zzz-test-cvxpy'
53
53
  Provides-Extra: zzz-test-dataclasses
54
54
  Requires-Dist: orjson<3.11,>=3.10.15; extra == 'zzz-test-dataclasses'
55
55
  Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-dataclasses'
56
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-dataclasses'
56
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-dataclasses'
57
57
  Provides-Extra: zzz-test-datetime
58
58
  Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-datetime'
59
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-datetime'
59
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-datetime'
60
60
  Provides-Extra: zzz-test-enum
61
61
  Provides-Extra: zzz-test-errors
62
62
  Provides-Extra: zzz-test-eventkit
@@ -75,11 +75,11 @@ Provides-Extra: zzz-test-git
75
75
  Provides-Extra: zzz-test-hashlib
76
76
  Requires-Dist: orjson<3.11,>=3.10.15; extra == 'zzz-test-hashlib'
77
77
  Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-hashlib'
78
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-hashlib'
78
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-hashlib'
79
79
  Provides-Extra: zzz-test-http
80
80
  Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-http'
81
81
  Requires-Dist: orjson<3.11,>=3.10.18; extra == 'zzz-test-http'
82
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-http'
82
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-http'
83
83
  Provides-Extra: zzz-test-hypothesis
84
84
  Requires-Dist: aiosqlite<0.22,>=0.21.0; extra == 'zzz-test-hypothesis'
85
85
  Requires-Dist: asyncpg<0.31,>=0.30.0; extra == 'zzz-test-hypothesis'
@@ -92,12 +92,12 @@ Requires-Dist: redis<6.3,>=6.2.0; extra == 'zzz-test-hypothesis'
92
92
  Requires-Dist: sqlalchemy<2.1,>=2.0.41; extra == 'zzz-test-hypothesis'
93
93
  Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-hypothesis'
94
94
  Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-hypothesis'
95
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-hypothesis'
95
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-hypothesis'
96
96
  Provides-Extra: zzz-test-ipython
97
97
  Requires-Dist: ipython<9.1,>=9.0.1; extra == 'zzz-test-ipython'
98
98
  Provides-Extra: zzz-test-iterables
99
99
  Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-iterables'
100
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-iterables'
100
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-iterables'
101
101
  Provides-Extra: zzz-test-jupyter
102
102
  Requires-Dist: jupyterlab<4.3,>=4.2.0; extra == 'zzz-test-jupyter'
103
103
  Requires-Dist: pandas<2.4,>=2.3.0; extra == 'zzz-test-jupyter'
@@ -108,12 +108,12 @@ Requires-Dist: coloredlogs<15.1,>=15.0.1; extra == 'zzz-test-logging'
108
108
  Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-logging'
109
109
  Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-logging'
110
110
  Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-logging'
111
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-logging'
111
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-logging'
112
112
  Provides-Extra: zzz-test-loguru
113
113
  Requires-Dist: loguru<0.8,>=0.7.3; extra == 'zzz-test-loguru'
114
114
  Provides-Extra: zzz-test-luigi
115
115
  Requires-Dist: luigi<3.7,>=3.6.0; extra == 'zzz-test-luigi'
116
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-luigi'
116
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-luigi'
117
117
  Provides-Extra: zzz-test-math
118
118
  Requires-Dist: numpy<2.4,>=2.3.0; extra == 'zzz-test-math'
119
119
  Provides-Extra: zzz-test-memory-profiler
@@ -125,7 +125,7 @@ Provides-Extra: zzz-test-numpy
125
125
  Requires-Dist: numpy<2.4,>=2.3.0; extra == 'zzz-test-numpy'
126
126
  Provides-Extra: zzz-test-operator
127
127
  Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-operator'
128
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-operator'
128
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-operator'
129
129
  Provides-Extra: zzz-test-optuna
130
130
  Requires-Dist: optuna<4.4,>=4.3.0; extra == 'zzz-test-optuna'
131
131
  Provides-Extra: zzz-test-orjson
@@ -133,7 +133,7 @@ Requires-Dist: orjson<3.11,>=3.10.15; extra == 'zzz-test-orjson'
133
133
  Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-orjson'
134
134
  Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-orjson'
135
135
  Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-orjson'
136
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-orjson'
136
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-orjson'
137
137
  Provides-Extra: zzz-test-os
138
138
  Provides-Extra: zzz-test-pathlib
139
139
  Provides-Extra: zzz-test-pickle
@@ -141,7 +141,7 @@ Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pickle'
141
141
  Provides-Extra: zzz-test-platform
142
142
  Provides-Extra: zzz-test-polars
143
143
  Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-polars'
144
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-polars'
144
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-polars'
145
145
  Provides-Extra: zzz-test-pqdm
146
146
  Requires-Dist: pqdm<0.3,>=0.2.0; extra == 'zzz-test-pqdm'
147
147
  Provides-Extra: zzz-test-pydantic
@@ -156,12 +156,12 @@ Requires-Dist: pyrsistent<0.21,>=0.20.0; extra == 'zzz-test-pyrsistent'
156
156
  Provides-Extra: zzz-test-pytest
157
157
  Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pytest'
158
158
  Requires-Dist: orjson<3.11,>=3.10.18; extra == 'zzz-test-pytest'
159
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-pytest'
159
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-pytest'
160
160
  Provides-Extra: zzz-test-pytest-regressions
161
161
  Requires-Dist: pytest-regressions<2.9,>=2.8.0; extra == 'zzz-test-pytest-regressions'
162
162
  Provides-Extra: zzz-test-python-dotenv
163
163
  Requires-Dist: python-dotenv<1.2,>=1.1.0; extra == 'zzz-test-python-dotenv'
164
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-python-dotenv'
164
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-python-dotenv'
165
165
  Provides-Extra: zzz-test-random
166
166
  Provides-Extra: zzz-test-re
167
167
  Provides-Extra: zzz-test-redis
@@ -171,7 +171,7 @@ Requires-Dist: redis<6.3,>=6.2.0; extra == 'zzz-test-redis'
171
171
  Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-redis'
172
172
  Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-redis'
173
173
  Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-redis'
174
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-redis'
174
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-redis'
175
175
  Provides-Extra: zzz-test-rich
176
176
  Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-rich'
177
177
  Provides-Extra: zzz-test-scipy
@@ -179,7 +179,7 @@ Requires-Dist: scipy<1.16,>=1.15.3; extra == 'zzz-test-scipy'
179
179
  Provides-Extra: zzz-test-sentinel
180
180
  Provides-Extra: zzz-test-shelve
181
181
  Provides-Extra: zzz-test-slack-sdk
182
- Requires-Dist: aiohttp<3.13,>=3.12.11; extra == 'zzz-test-slack-sdk'
182
+ Requires-Dist: aiohttp<3.13,>=3.12.12; extra == 'zzz-test-slack-sdk'
183
183
  Requires-Dist: slack-sdk<3.36,>=3.35.0; extra == 'zzz-test-slack-sdk'
184
184
  Provides-Extra: zzz-test-socket
185
185
  Provides-Extra: zzz-test-sqlalchemy
@@ -197,7 +197,7 @@ Requires-Dist: nest-asyncio<1.7,>=1.6.0; extra == 'zzz-test-sqlalchemy-polars'
197
197
  Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-sqlalchemy-polars'
198
198
  Requires-Dist: sqlalchemy<2.1,>=2.0.41; extra == 'zzz-test-sqlalchemy-polars'
199
199
  Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-sqlalchemy-polars'
200
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-sqlalchemy-polars'
200
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-sqlalchemy-polars'
201
201
  Provides-Extra: zzz-test-streamlit
202
202
  Requires-Dist: streamlit<1.46,>=1.45.0; extra == 'zzz-test-streamlit'
203
203
  Provides-Extra: zzz-test-sys
@@ -205,7 +205,7 @@ Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-sys'
205
205
  Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-sys'
206
206
  Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-sys'
207
207
  Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-sys'
208
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-sys'
208
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-sys'
209
209
  Provides-Extra: zzz-test-tempfile
210
210
  Provides-Extra: zzz-test-tenacity
211
211
  Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-tenacity'
@@ -216,11 +216,11 @@ Provides-Extra: zzz-test-traceback
216
216
  Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-traceback'
217
217
  Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-traceback'
218
218
  Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-traceback'
219
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-traceback'
219
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-traceback'
220
220
  Provides-Extra: zzz-test-types
221
221
  Provides-Extra: zzz-test-typing
222
222
  Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-typing'
223
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-typing'
223
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-typing'
224
224
  Provides-Extra: zzz-test-tzlocal
225
225
  Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-tzlocal'
226
226
  Provides-Extra: zzz-test-uuid
@@ -228,11 +228,11 @@ Provides-Extra: zzz-test-version
228
228
  Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-version'
229
229
  Provides-Extra: zzz-test-warnings
230
230
  Provides-Extra: zzz-test-whenever
231
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-whenever'
231
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-whenever'
232
232
  Provides-Extra: zzz-test-zipfile
233
233
  Provides-Extra: zzz-test-zoneinfo
234
234
  Requires-Dist: tzdata<2025.3,>=2025.2; extra == 'zzz-test-zoneinfo'
235
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-zoneinfo'
235
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-zoneinfo'
236
236
  Description-Content-Type: text/markdown
237
237
 
238
238
  [![PyPI version](https://badge.fury.io/py/dycw-utilities.svg)](https://badge.fury.io/py/dycw-utilities)
@@ -8,7 +8,7 @@ requires = ["hatchling"]
8
8
  # dependency groups
9
9
  [dependency-groups]
10
10
  dev = [
11
- "aiohttp >= 3.12.11, < 3.13", # for slack
11
+ "aiohttp >= 3.12.12, < 3.13", # for slack
12
12
  "aiolimiter >= 1.2.1, < 1.3",
13
13
  "aiosqlite >= 0.21.0, < 0.22",
14
14
  "altair >= 5.5.0, < 5.6",
@@ -18,7 +18,7 @@ dev = [
18
18
  "cachetools >= 5.5.2, < 5.6",
19
19
  "click >= 8.2.1, < 8.3",
20
20
  "coloredlogs >= 15.0.1, < 15.1",
21
- "cryptography >= 45.0.3, < 45.1",
21
+ "cryptography >= 45.0.4, < 45.1",
22
22
  "cvxpy >= 1.6.5, < 1.7",
23
23
  "eventkit >= 1.0.3, < 1.1",
24
24
  "fastapi >= 0.115.11, < 0.116",
@@ -69,7 +69,7 @@ dev = [
69
69
  "vegafusion >= 2.0.2, < 2.1",
70
70
  "vegafusion-python-embed >= 1.6.9, < 1.7",
71
71
  "vl-convert-python >= 1.8.0, < 1.9",
72
- "whenever >= 0.8.4, < 0.9",
72
+ "whenever >= 0.8.5, < 0.9",
73
73
  # test
74
74
  "coverage-conditional-plugin >= 0.9.0, < 0.10",
75
75
  "dycw-pytest-only >= 2.1.1, < 2.2",
@@ -96,14 +96,14 @@ dependencies = [
96
96
  name = "dycw-utilities"
97
97
  readme = "README.md"
98
98
  requires-python = ">= 3.12"
99
- version = "0.129.14"
99
+ version = "0.129.15"
100
100
 
101
101
  [project.optional-dependencies]
102
102
  logging = [
103
103
  "atomicwrites >= 1.4.1, < 1.5",
104
104
  "coloredlogs >= 15.0.1, < 15.1",
105
105
  "tzlocal >= 5.3.1, < 5.4",
106
- "whenever >= 0.8.4, < 0.9",
106
+ "whenever >= 0.8.5, < 0.9",
107
107
  ]
108
108
  test = [
109
109
  "dycw-pytest-only >= 2.1.1, < 2.2",
@@ -129,7 +129,7 @@ zzz-test-altair = [
129
129
  "img2pdf >= 0.6.0, < 0.7",
130
130
  "polars-lts-cpu >= 1.30.0, < 1.31",
131
131
  "vl-convert-python >= 1.8.0, < 1.9",
132
- "whenever >= 0.8.4, < 0.9",
132
+ "whenever >= 0.8.5, < 0.9",
133
133
  ]
134
134
  zzz-test-asyncio = []
135
135
  zzz-test-atomicwrites = ["atomicwrites >= 1.4.1, < 1.5"]
@@ -140,20 +140,20 @@ zzz-test-cachetools = ["cachetools >= 5.5.2, < 5.6"]
140
140
  zzz-test-click = [
141
141
  "click >= 8.2.1, < 8.3",
142
142
  "sqlalchemy >= 2.0.41, < 2.1",
143
- "whenever >= 0.8.4, < 0.9",
143
+ "whenever >= 0.8.5, < 0.9",
144
144
  ]
145
145
  zzz-test-contextlib = []
146
146
  zzz-test-contextvars = []
147
- zzz-test-cryptography = ["cryptography >= 45.0.3, < 45.1"]
147
+ zzz-test-cryptography = ["cryptography >= 45.0.4, < 45.1"]
148
148
  zzz-test-cvxpy = ["cvxpy >= 1.6.5, < 1.7"]
149
149
  zzz-test-dataclasses = [
150
150
  "orjson >= 3.10.15, < 3.11",
151
151
  "polars-lts-cpu >= 1.30.0, < 1.31",
152
- "whenever >= 0.8.4, < 0.9",
152
+ "whenever >= 0.8.5, < 0.9",
153
153
  ]
154
154
  zzz-test-datetime = [
155
155
  "tzlocal >= 5.3.1, < 5.4",
156
- "whenever >= 0.8.4, < 0.9",
156
+ "whenever >= 0.8.5, < 0.9",
157
157
  ]
158
158
  zzz-test-enum = []
159
159
  zzz-test-errors = []
@@ -174,12 +174,12 @@ zzz-test-git = []
174
174
  zzz-test-hashlib = [
175
175
  "polars-lts-cpu >= 1.30.0, < 1.31",
176
176
  "orjson >= 3.10.15, < 3.11",
177
- "whenever >= 0.8.4, < 0.9",
177
+ "whenever >= 0.8.5, < 0.9",
178
178
  ]
179
179
  zzz-test-http = [
180
180
  "atomicwrites >= 1.4.1, < 1.5",
181
181
  "orjson >= 3.10.18, < 3.11",
182
- "whenever >= 0.8.4, < 0.9",
182
+ "whenever >= 0.8.5, < 0.9",
183
183
  ]
184
184
  zzz-test-hypothesis = [
185
185
  "aiosqlite >= 0.21.0, < 0.22",
@@ -193,12 +193,12 @@ zzz-test-hypothesis = [
193
193
  "sqlalchemy >= 2.0.41, < 2.1",
194
194
  "tenacity >= 8.5.0, < 9.0", # limited by luigi
195
195
  "tzlocal >= 5.3.1, < 5.4",
196
- "whenever >= 0.8.4, < 0.9",
196
+ "whenever >= 0.8.5, < 0.9",
197
197
  ]
198
198
  zzz-test-ipython = ["ipython >= 9.0.1, < 9.1"]
199
199
  zzz-test-iterables = [
200
200
  "polars-lts-cpu >= 1.30.0, < 1.31",
201
- "whenever >= 0.8.4, < 0.9",
201
+ "whenever >= 0.8.5, < 0.9",
202
202
  ]
203
203
  zzz-test-jupyter = [
204
204
  "jupyterlab >= 4.2.0, < 4.3",
@@ -211,12 +211,12 @@ zzz-test-logging = [
211
211
  "rich >= 14.0.0, < 14.1",
212
212
  "tomlkit >= 0.13.2, < 0.14",
213
213
  "tzlocal >= 5.3.1, < 5.4",
214
- "whenever >= 0.8.4, < 0.9",
214
+ "whenever >= 0.8.5, < 0.9",
215
215
  ]
216
216
  zzz-test-loguru = ["loguru >= 0.7.3, < 0.8"]
217
217
  zzz-test-luigi = [
218
218
  "luigi >= 3.6.0, < 3.7",
219
- "whenever >= 0.8.4, < 0.9",
219
+ "whenever >= 0.8.5, < 0.9",
220
220
  ]
221
221
  zzz-test-math = ["numpy >= 2.3.0, < 2.4"]
222
222
  zzz-test-memory-profiler = ["memory-profiler >= 0.61.0, < 0.62"]
@@ -225,7 +225,7 @@ zzz-test-more-itertools = ["more-itertools >= 10.7.0, < 10.8"]
225
225
  zzz-test-numpy = ["numpy >= 2.3.0, < 2.4"]
226
226
  zzz-test-operator = [
227
227
  "polars-lts-cpu >= 1.30.0, < 1.31",
228
- "whenever >= 0.8.4, < 0.9",
228
+ "whenever >= 0.8.5, < 0.9",
229
229
  ]
230
230
  zzz-test-optuna = ["optuna >= 4.3.0, < 4.4"]
231
231
  zzz-test-orjson = [
@@ -233,7 +233,7 @@ zzz-test-orjson = [
233
233
  "polars-lts-cpu >= 1.30.0, < 1.31",
234
234
  "rich >= 14.0.0, < 14.1",
235
235
  "tzlocal >= 5.3.1, < 5.4",
236
- "whenever >= 0.8.4, < 0.9",
236
+ "whenever >= 0.8.5, < 0.9",
237
237
  ]
238
238
  zzz-test-os = []
239
239
  zzz-test-pathlib = []
@@ -241,7 +241,7 @@ zzz-test-pickle = ["atomicwrites >= 1.4.1, < 1.5"]
241
241
  zzz-test-platform = []
242
242
  zzz-test-polars = [
243
243
  "polars-lts-cpu >= 1.30.0, < 1.31",
244
- "whenever >= 0.8.4, < 0.9",
244
+ "whenever >= 0.8.5, < 0.9",
245
245
  ]
246
246
  zzz-test-pqdm = ["pqdm >= 0.2.0, < 0.3"]
247
247
  zzz-test-pydantic = [
@@ -257,12 +257,12 @@ zzz-test-pyrsistent = ["pyrsistent >= 0.20.0, < 0.21"]
257
257
  zzz-test-pytest = [
258
258
  "atomicwrites >= 1.4.1, < 1.5",
259
259
  "orjson >= 3.10.18, < 3.11",
260
- "whenever >= 0.8.4, < 0.9",
260
+ "whenever >= 0.8.5, < 0.9",
261
261
  ]
262
262
  zzz-test-pytest-regressions = ["pytest-regressions >= 2.8.0, < 2.9"]
263
263
  zzz-test-python-dotenv = [
264
264
  "python-dotenv >= 1.1.0, < 1.2",
265
- "whenever >= 0.8.4, < 0.9",
265
+ "whenever >= 0.8.5, < 0.9",
266
266
  ]
267
267
  zzz-test-random = []
268
268
  zzz-test-re = []
@@ -273,14 +273,14 @@ zzz-test-redis = [
273
273
  "rich >= 14.0.0, < 14.1",
274
274
  "tenacity >= 8.5.0, < 9.0", # limited by luigi
275
275
  "tzlocal >= 5.3.1, < 5.4",
276
- "whenever >= 0.8.4, < 0.9",
276
+ "whenever >= 0.8.5, < 0.9",
277
277
  ]
278
278
  zzz-test-rich = ["rich >= 14.0.0, < 14.1"]
279
279
  zzz-test-scipy = ["scipy >= 1.15.3, < 1.16"]
280
280
  zzz-test-sentinel = []
281
281
  zzz-test-shelve = []
282
282
  zzz-test-slack-sdk = [
283
- "aiohttp >= 3.12.11, < 3.13", # for slack
283
+ "aiohttp >= 3.12.12, < 3.13", # for slack
284
284
  "slack-sdk >= 3.35.0, < 3.36",
285
285
  ]
286
286
  zzz-test-socket = []
@@ -300,7 +300,7 @@ zzz-test-sqlalchemy-polars = [
300
300
  "polars-lts-cpu >= 1.30.0, < 1.31",
301
301
  "sqlalchemy >= 2.0.41, < 2.1",
302
302
  "tenacity >= 8.5.0, < 9.0", # limited by luigi
303
- "whenever >= 0.8.4, < 0.9",
303
+ "whenever >= 0.8.5, < 0.9",
304
304
  ]
305
305
  zzz-test-streamlit = ["streamlit >= 1.45.0, < 1.46"]
306
306
  zzz-test-sys = [
@@ -308,7 +308,7 @@ zzz-test-sys = [
308
308
  "rich >= 14.0.0, < 14.1",
309
309
  "tomlkit >= 0.13.2, < 0.14",
310
310
  "tzlocal >= 5.3.1, < 5.4",
311
- "whenever >= 0.8.4, < 0.9",
311
+ "whenever >= 0.8.5, < 0.9",
312
312
  ]
313
313
  zzz-test-tempfile = []
314
314
  zzz-test-tenacity = [
@@ -321,22 +321,22 @@ zzz-test-traceback = [
321
321
  "rich >= 14.0.0, < 14.1",
322
322
  "tomlkit >= 0.13.2, < 0.14",
323
323
  "tzlocal >= 5.3.1, < 5.4",
324
- "whenever >= 0.8.4, < 0.9",
324
+ "whenever >= 0.8.5, < 0.9",
325
325
  ]
326
326
  zzz-test-types = []
327
327
  zzz-test-typing = [
328
328
  "polars-lts-cpu >= 1.30.0, < 1.31",
329
- "whenever >= 0.8.4, < 0.9",
329
+ "whenever >= 0.8.5, < 0.9",
330
330
  ]
331
331
  zzz-test-tzlocal = ["tzlocal >= 5.3.1, < 5.4"]
332
332
  zzz-test-uuid = []
333
333
  zzz-test-version = ["tomlkit >= 0.13.2, < 0.14"]
334
334
  zzz-test-warnings = []
335
- zzz-test-whenever = ["whenever >= 0.8.4, < 0.9"]
335
+ zzz-test-whenever = ["whenever >= 0.8.5, < 0.9"]
336
336
  zzz-test-zipfile = []
337
337
  zzz-test-zoneinfo = [
338
338
  "tzdata >= 2025.2, < 2025.3",
339
- "whenever >= 0.8.4, < 0.9",
339
+ "whenever >= 0.8.5, < 0.9",
340
340
  ]
341
341
 
342
342
  [project.scripts]
@@ -344,7 +344,7 @@ zzz-test-zoneinfo = [
344
344
  # bump-my-version
345
345
  [tool.bumpversion]
346
346
  allow_dirty = true
347
- current_version = "0.129.14"
347
+ current_version = "0.129.15"
348
348
 
349
349
  [[tool.bumpversion.files]]
350
350
  filename = "src/utilities/__init__.py"
@@ -1,3 +1,3 @@
1
1
  from __future__ import annotations
2
2
 
3
- __version__ = "0.129.14"
3
+ __version__ = "0.129.15"
@@ -55,7 +55,12 @@ from utilities.errors import repr_error
55
55
  from utilities.functions import ensure_int, ensure_not_none
56
56
  from utilities.random import SYSTEM_RANDOM
57
57
  from utilities.sentinel import Sentinel, sentinel
58
- from utilities.types import MaybeCallableEvent, THashable, TSupportsRichComparison
58
+ from utilities.types import (
59
+ MaybeCallableEvent,
60
+ MaybeType,
61
+ THashable,
62
+ TSupportsRichComparison,
63
+ )
59
64
 
60
65
  if TYPE_CHECKING:
61
66
  import datetime as dt
@@ -239,7 +244,7 @@ class EnhancedTaskGroup(TaskGroup):
239
244
 
240
245
  _semaphore: Semaphore | None
241
246
  _timeout: Duration | None
242
- _error: type[Exception]
247
+ _error: MaybeType[BaseException]
243
248
  _stack: AsyncExitStack
244
249
  _timeout_cm: _AsyncGeneratorContextManager[None] | None
245
250
 
@@ -249,7 +254,7 @@ class EnhancedTaskGroup(TaskGroup):
249
254
  *,
250
255
  max_tasks: int | None = None,
251
256
  timeout: Duration | None = None,
252
- error: type[Exception] = TimeoutError,
257
+ error: MaybeType[BaseException] = TimeoutError,
253
258
  ) -> None:
254
259
  super().__init__()
255
260
  self._semaphore = None if max_tasks is None else Semaphore(max_tasks)
@@ -1051,7 +1056,7 @@ async def _stream_one(
1051
1056
 
1052
1057
  @asynccontextmanager
1053
1058
  async def timeout_dur(
1054
- *, duration: Duration | None = None, error: type[Exception] = TimeoutError
1059
+ *, duration: Duration | None = None, error: MaybeType[BaseException] = TimeoutError
1055
1060
  ) -> AsyncIterator[None]:
1056
1061
  """Timeout context manager which accepts durations."""
1057
1062
  delay = None if duration is None else datetime_duration_to_float(duration)
@@ -53,7 +53,7 @@ if TYPE_CHECKING:
53
53
  from redis.typing import EncodableT, ResponseT
54
54
 
55
55
  from utilities.iterables import MaybeIterable
56
- from utilities.types import Duration, TypeLike
56
+ from utilities.types import Duration, MaybeType, TypeLike
57
57
 
58
58
 
59
59
  _K = TypeVar("_K")
@@ -90,7 +90,7 @@ class RedisHashMapKey(Generic[_K, _V]):
90
90
  value_serializer: Callable[[_V], bytes] | None = None
91
91
  value_deserializer: Callable[[bytes], _V] | None = None
92
92
  timeout: Duration | None = None
93
- error: type[Exception] = TimeoutError
93
+ error: MaybeType[BaseException] = TimeoutError
94
94
  ttl: Duration | None = None
95
95
 
96
96
  async def delete(self, redis: Redis, key: _K, /) -> int:
@@ -402,7 +402,7 @@ class RedisKey(Generic[_T]):
402
402
  serializer: Callable[[_T], bytes] | None = None
403
403
  deserializer: Callable[[bytes], _T] | None = None
404
404
  timeout: Duration | None = None
405
- error: type[Exception] = TimeoutError
405
+ error: MaybeType[BaseException] = TimeoutError
406
406
  ttl: Duration | None = None
407
407
 
408
408
  async def delete(self, redis: Redis, /) -> int:
@@ -82,7 +82,13 @@ from utilities.iterables import (
82
82
  )
83
83
  from utilities.reprlib import get_repr
84
84
  from utilities.text import snake_case
85
- from utilities.types import Duration, MaybeIterable, StrMapping, TupleOrStrMapping
85
+ from utilities.types import (
86
+ Duration,
87
+ MaybeIterable,
88
+ MaybeType,
89
+ StrMapping,
90
+ TupleOrStrMapping,
91
+ )
86
92
 
87
93
  _T = TypeVar("_T")
88
94
  type _EngineOrConnectionOrAsync = Engine | Connection | AsyncEngine | AsyncConnection
@@ -830,7 +836,7 @@ async def yield_connection(
830
836
  /,
831
837
  *,
832
838
  timeout: Duration | None = None,
833
- error: type[Exception] = TimeoutError,
839
+ error: MaybeType[BaseException] = TimeoutError,
834
840
  ) -> AsyncIterator[AsyncConnection]:
835
841
  """Yield an async connection."""
836
842
  async with timeout_dur(duration=timeout, error=error), engine.begin() as conn:
@@ -68,7 +68,7 @@ if TYPE_CHECKING:
68
68
  from tenacity.wait import WaitBaseT
69
69
 
70
70
  import utilities.types
71
- from utilities.types import TimeZoneLike
71
+ from utilities.types import MaybeType, TimeZoneLike
72
72
 
73
73
 
74
74
  async def insert_dataframe(
@@ -303,7 +303,7 @@ async def select_to_dataframe(
303
303
  in_clauses_chunk_size: int | None = None,
304
304
  chunk_size_frac: float = CHUNK_SIZE_FRAC,
305
305
  timeout: utilities.types.Duration | None = None,
306
- error: type[Exception] = TimeoutError,
306
+ error: MaybeType[BaseException] = TimeoutError,
307
307
  **kwargs: Any,
308
308
  ) -> DataFrame | Iterable[DataFrame] | AsyncIterable[DataFrame]:
309
309
  """Read a table from a database into a DataFrame."""