dycw-utilities 0.129.14__tar.gz → 0.130.0__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 (237) hide show
  1. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/PKG-INFO +26 -28
  2. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/pyproject.toml +31 -33
  3. dycw_utilities-0.130.0/src/tests/conftest.py +27 -0
  4. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_logging.py +98 -193
  5. dycw_utilities-0.130.0/src/tests/test_traceback.py +144 -0
  6. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_whenever.py +3 -2
  7. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/__init__.py +1 -1
  8. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/asyncio.py +9 -4
  9. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/logging.py +276 -498
  10. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/redis.py +3 -3
  11. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/sqlalchemy.py +8 -2
  12. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/sqlalchemy_polars.py +2 -2
  13. dycw_utilities-0.130.0/src/utilities/traceback.py +287 -0
  14. dycw_utilities-0.129.14/src/tests/conftest.py +0 -369
  15. dycw_utilities-0.129.14/src/tests/test_loguru.py +0 -139
  16. dycw_utilities-0.129.14/src/tests/test_sys.py +0 -134
  17. dycw_utilities-0.129.14/src/tests/test_traceback.py +0 -725
  18. dycw_utilities-0.129.14/src/tests/test_traceback_funcs/__init__.py +0 -1
  19. dycw_utilities-0.129.14/src/tests/test_traceback_funcs/chain.py +0 -31
  20. dycw_utilities-0.129.14/src/tests/test_traceback_funcs/decorated_async.py +0 -89
  21. dycw_utilities-0.129.14/src/tests/test_traceback_funcs/decorated_sync.py +0 -93
  22. dycw_utilities-0.129.14/src/tests/test_traceback_funcs/error_bind.py +0 -17
  23. dycw_utilities-0.129.14/src/tests/test_traceback_funcs/many.py +0 -17
  24. dycw_utilities-0.129.14/src/tests/test_traceback_funcs/one.py +0 -17
  25. dycw_utilities-0.129.14/src/tests/test_traceback_funcs/recursive.py +0 -19
  26. dycw_utilities-0.129.14/src/tests/test_traceback_funcs/task_group_one.py +0 -34
  27. dycw_utilities-0.129.14/src/tests/test_traceback_funcs/task_group_two.py +0 -43
  28. dycw_utilities-0.129.14/src/tests/test_traceback_funcs/two.py +0 -27
  29. dycw_utilities-0.129.14/src/tests/test_traceback_funcs/untraced.py +0 -14
  30. dycw_utilities-0.129.14/src/utilities/loguru.py +0 -144
  31. dycw_utilities-0.129.14/src/utilities/sys.py +0 -87
  32. dycw_utilities-0.129.14/src/utilities/traceback.py +0 -1086
  33. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/.gitignore +0 -0
  34. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/LICENSE +0 -0
  35. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/README.md +0 -0
  36. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/__init__.py +0 -0
  37. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/__init__.py +0 -0
  38. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/package_missing/__init__.py +0 -0
  39. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/package_missing/module.py +0 -0
  40. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/package_with/__init__.py +0 -0
  41. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/package_with/outer_1.py +0 -0
  42. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/package_with/outer_2.py +0 -0
  43. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
  44. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
  45. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
  46. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
  47. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/package_without/__init__.py +0 -0
  48. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/package_without/module_1.py +0 -0
  49. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/package_without/module_2.py +0 -0
  50. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/standalone.py +0 -0
  51. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/modules/with_imports.py +0 -0
  52. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
  53. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
  54. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
  55. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
  56. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
  57. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
  58. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
  59. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
  60. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_aiolimiter.py +0 -0
  61. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_altair.py +0 -0
  62. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_asyncio.py +0 -0
  63. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_asyncio_classes/__init__.py +0 -0
  64. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_asyncio_classes/loopers.py +0 -0
  65. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_asyncio_classes/redis.py +0 -0
  66. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_atomicwrites.py +0 -0
  67. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_atools.py +0 -0
  68. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_cachetools.py +0 -0
  69. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_click.py +0 -0
  70. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_concurrent.py +0 -0
  71. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_contextlib.py +0 -0
  72. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_contextvars.py +0 -0
  73. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_cryptography.py +0 -0
  74. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_cvxpy.py +0 -0
  75. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_dataclasses.py +0 -0
  76. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_datetime.py +0 -0
  77. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_enum.py +0 -0
  78. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_errors.py +0 -0
  79. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_eventkit.py +0 -0
  80. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_fastapi.py +0 -0
  81. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_fpdf2.py +0 -0
  82. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_functions.py +0 -0
  83. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_functools.py +0 -0
  84. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_getpass.py +0 -0
  85. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_git.py +0 -0
  86. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_hashlib.py +0 -0
  87. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_http.py +0 -0
  88. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_hypothesis.py +0 -0
  89. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_importlib.py +0 -0
  90. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_inflect.py +0 -0
  91. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_ipython.py +0 -0
  92. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_iterables.py +0 -0
  93. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_jupyter.py +0 -0
  94. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_libcst.py +0 -0
  95. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_lightweight_charts.py +0 -0
  96. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_luigi.py +0 -0
  97. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_math.py +0 -0
  98. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_memory_profiler.py +0 -0
  99. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_modules.py +0 -0
  100. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_more_itertools.py +0 -0
  101. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_numpy.py +0 -0
  102. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_operator.py +0 -0
  103. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_optuna.py +0 -0
  104. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_orjson.py +0 -0
  105. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_os.py +0 -0
  106. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_parse.py +0 -0
  107. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_pathlib.py +0 -0
  108. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_period.py +0 -0
  109. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_pickle.py +0 -0
  110. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_platform.py +0 -0
  111. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_polars.py +0 -0
  112. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_polars_ols.py +0 -0
  113. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_pottery.py +0 -0
  114. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_pqdm.py +0 -0
  115. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_psutil.py +0 -0
  116. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_pydantic.py +0 -0
  117. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_pyinstrument.py +0 -0
  118. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_pyrsistent.py +0 -0
  119. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_pytest.py +0 -0
  120. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_pytest_regressions.py +0 -0
  121. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_python_dotenv.py +0 -0
  122. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_random.py +0 -0
  123. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_re.py +0 -0
  124. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_redis.py +0 -0
  125. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_reprlib.py +0 -0
  126. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_scipy.py +0 -0
  127. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_sentinel.py +0 -0
  128. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_shelve.py +0 -0
  129. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_slack_sdk.py +0 -0
  130. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_socket.py +0 -0
  131. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_sqlalchemy.py +0 -0
  132. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_sqlalchemy_polars.py +0 -0
  133. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_statsmodel.py +0 -0
  134. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_streamlit.py +0 -0
  135. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_string.py +0 -0
  136. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_tempfile.py +0 -0
  137. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_tenacity.py +0 -0
  138. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_text.py +0 -0
  139. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_threading.py +0 -0
  140. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_timer.py +0 -0
  141. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_types.py +0 -0
  142. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_typing.py +0 -0
  143. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_typing_funcs/__init__.py +0 -0
  144. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_typing_funcs/no_future.py +0 -0
  145. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_typing_funcs/with_future.py +0 -0
  146. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_tzdata.py +0 -0
  147. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_tzlocal.py +0 -0
  148. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_uuid.py +0 -0
  149. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_version.py +0 -0
  150. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_warnings.py +0 -0
  151. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_zipfile.py +0 -0
  152. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/tests/test_zoneinfo.py +0 -0
  153. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/aiolimiter.py +0 -0
  154. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/altair.py +0 -0
  155. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/atomicwrites.py +0 -0
  156. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/atools.py +0 -0
  157. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/cachetools.py +0 -0
  158. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/click.py +0 -0
  159. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/concurrent.py +0 -0
  160. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/contextlib.py +0 -0
  161. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/contextvars.py +0 -0
  162. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/cryptography.py +0 -0
  163. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/cvxpy.py +0 -0
  164. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/dataclasses.py +0 -0
  165. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/datetime.py +0 -0
  166. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/enum.py +0 -0
  167. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/errors.py +0 -0
  168. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/eventkit.py +0 -0
  169. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/fastapi.py +0 -0
  170. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/fpdf2.py +0 -0
  171. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/functions.py +0 -0
  172. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/functools.py +0 -0
  173. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/getpass.py +0 -0
  174. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/git.py +0 -0
  175. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/hashlib.py +0 -0
  176. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/http.py +0 -0
  177. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/hypothesis.py +0 -0
  178. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/importlib.py +0 -0
  179. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/inflect.py +0 -0
  180. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/ipython.py +0 -0
  181. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/iterables.py +0 -0
  182. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/jupyter.py +0 -0
  183. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/libcst.py +0 -0
  184. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/lightweight_charts.py +0 -0
  185. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/luigi.py +0 -0
  186. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/math.py +0 -0
  187. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/memory_profiler.py +0 -0
  188. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/modules.py +0 -0
  189. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/more_itertools.py +0 -0
  190. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/numpy.py +0 -0
  191. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/operator.py +0 -0
  192. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/optuna.py +0 -0
  193. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/orjson.py +0 -0
  194. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/os.py +0 -0
  195. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/parse.py +0 -0
  196. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/pathlib.py +0 -0
  197. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/period.py +0 -0
  198. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/pickle.py +0 -0
  199. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/platform.py +0 -0
  200. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/polars.py +0 -0
  201. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/polars_ols.py +0 -0
  202. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/pottery.py +0 -0
  203. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/pqdm.py +0 -0
  204. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/psutil.py +0 -0
  205. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/py.typed +0 -0
  206. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/pydantic.py +0 -0
  207. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/pyinstrument.py +0 -0
  208. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/pyrsistent.py +0 -0
  209. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/pytest.py +0 -0
  210. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/pytest_regressions.py +0 -0
  211. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/python_dotenv.py +0 -0
  212. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/random.py +0 -0
  213. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/re.py +0 -0
  214. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/reprlib.py +0 -0
  215. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/scipy.py +0 -0
  216. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/sentinel.py +0 -0
  217. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/shelve.py +0 -0
  218. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/slack_sdk.py +0 -0
  219. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/socket.py +0 -0
  220. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/statsmodels.py +0 -0
  221. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/streamlit.py +0 -0
  222. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/string.py +0 -0
  223. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/tempfile.py +0 -0
  224. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/tenacity.py +0 -0
  225. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/text.py +0 -0
  226. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/threading.py +0 -0
  227. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/timer.py +0 -0
  228. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/types.py +0 -0
  229. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/typing.py +0 -0
  230. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/tzdata.py +0 -0
  231. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/tzlocal.py +0 -0
  232. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/uuid.py +0 -0
  233. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/version.py +0 -0
  234. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/warnings.py +0 -0
  235. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/whenever.py +0 -0
  236. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/src/utilities/zipfile.py +0 -0
  237. {dycw_utilities-0.129.14 → dycw_utilities-0.130.0}/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.130.0
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,10 @@ 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'
112
- Provides-Extra: zzz-test-loguru
113
- Requires-Dist: loguru<0.8,>=0.7.3; extra == 'zzz-test-loguru'
111
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-logging'
114
112
  Provides-Extra: zzz-test-luigi
115
113
  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'
114
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-luigi'
117
115
  Provides-Extra: zzz-test-math
118
116
  Requires-Dist: numpy<2.4,>=2.3.0; extra == 'zzz-test-math'
119
117
  Provides-Extra: zzz-test-memory-profiler
@@ -125,7 +123,7 @@ Provides-Extra: zzz-test-numpy
125
123
  Requires-Dist: numpy<2.4,>=2.3.0; extra == 'zzz-test-numpy'
126
124
  Provides-Extra: zzz-test-operator
127
125
  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'
126
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-operator'
129
127
  Provides-Extra: zzz-test-optuna
130
128
  Requires-Dist: optuna<4.4,>=4.3.0; extra == 'zzz-test-optuna'
131
129
  Provides-Extra: zzz-test-orjson
@@ -133,7 +131,7 @@ Requires-Dist: orjson<3.11,>=3.10.15; extra == 'zzz-test-orjson'
133
131
  Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-orjson'
134
132
  Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-orjson'
135
133
  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'
134
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-orjson'
137
135
  Provides-Extra: zzz-test-os
138
136
  Provides-Extra: zzz-test-pathlib
139
137
  Provides-Extra: zzz-test-pickle
@@ -141,7 +139,7 @@ Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pickle'
141
139
  Provides-Extra: zzz-test-platform
142
140
  Provides-Extra: zzz-test-polars
143
141
  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'
142
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-polars'
145
143
  Provides-Extra: zzz-test-pqdm
146
144
  Requires-Dist: pqdm<0.3,>=0.2.0; extra == 'zzz-test-pqdm'
147
145
  Provides-Extra: zzz-test-pydantic
@@ -156,12 +154,12 @@ Requires-Dist: pyrsistent<0.21,>=0.20.0; extra == 'zzz-test-pyrsistent'
156
154
  Provides-Extra: zzz-test-pytest
157
155
  Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pytest'
158
156
  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'
157
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-pytest'
160
158
  Provides-Extra: zzz-test-pytest-regressions
161
159
  Requires-Dist: pytest-regressions<2.9,>=2.8.0; extra == 'zzz-test-pytest-regressions'
162
160
  Provides-Extra: zzz-test-python-dotenv
163
161
  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'
162
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-python-dotenv'
165
163
  Provides-Extra: zzz-test-random
166
164
  Provides-Extra: zzz-test-re
167
165
  Provides-Extra: zzz-test-redis
@@ -171,7 +169,7 @@ Requires-Dist: redis<6.3,>=6.2.0; extra == 'zzz-test-redis'
171
169
  Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-redis'
172
170
  Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-redis'
173
171
  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'
172
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-redis'
175
173
  Provides-Extra: zzz-test-rich
176
174
  Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-rich'
177
175
  Provides-Extra: zzz-test-scipy
@@ -179,7 +177,7 @@ Requires-Dist: scipy<1.16,>=1.15.3; extra == 'zzz-test-scipy'
179
177
  Provides-Extra: zzz-test-sentinel
180
178
  Provides-Extra: zzz-test-shelve
181
179
  Provides-Extra: zzz-test-slack-sdk
182
- Requires-Dist: aiohttp<3.13,>=3.12.11; extra == 'zzz-test-slack-sdk'
180
+ Requires-Dist: aiohttp<3.13,>=3.12.12; extra == 'zzz-test-slack-sdk'
183
181
  Requires-Dist: slack-sdk<3.36,>=3.35.0; extra == 'zzz-test-slack-sdk'
184
182
  Provides-Extra: zzz-test-socket
185
183
  Provides-Extra: zzz-test-sqlalchemy
@@ -197,7 +195,7 @@ Requires-Dist: nest-asyncio<1.7,>=1.6.0; extra == 'zzz-test-sqlalchemy-polars'
197
195
  Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-sqlalchemy-polars'
198
196
  Requires-Dist: sqlalchemy<2.1,>=2.0.41; extra == 'zzz-test-sqlalchemy-polars'
199
197
  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'
198
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-sqlalchemy-polars'
201
199
  Provides-Extra: zzz-test-streamlit
202
200
  Requires-Dist: streamlit<1.46,>=1.45.0; extra == 'zzz-test-streamlit'
203
201
  Provides-Extra: zzz-test-sys
@@ -205,7 +203,7 @@ Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-sys'
205
203
  Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-sys'
206
204
  Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-sys'
207
205
  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'
206
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-sys'
209
207
  Provides-Extra: zzz-test-tempfile
210
208
  Provides-Extra: zzz-test-tenacity
211
209
  Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-tenacity'
@@ -216,11 +214,11 @@ Provides-Extra: zzz-test-traceback
216
214
  Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-traceback'
217
215
  Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-traceback'
218
216
  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'
217
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-traceback'
220
218
  Provides-Extra: zzz-test-types
221
219
  Provides-Extra: zzz-test-typing
222
220
  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'
221
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-typing'
224
222
  Provides-Extra: zzz-test-tzlocal
225
223
  Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-tzlocal'
226
224
  Provides-Extra: zzz-test-uuid
@@ -228,11 +226,11 @@ Provides-Extra: zzz-test-version
228
226
  Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-version'
229
227
  Provides-Extra: zzz-test-warnings
230
228
  Provides-Extra: zzz-test-whenever
231
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-whenever'
229
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-whenever'
232
230
  Provides-Extra: zzz-test-zipfile
233
231
  Provides-Extra: zzz-test-zoneinfo
234
232
  Requires-Dist: tzdata<2025.3,>=2025.2; extra == 'zzz-test-zoneinfo'
235
- Requires-Dist: whenever<0.9,>=0.8.4; extra == 'zzz-test-zoneinfo'
233
+ Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-zoneinfo'
236
234
  Description-Content-Type: text/markdown
237
235
 
238
236
  [![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",
@@ -29,7 +29,6 @@ dev = [
29
29
  "img2pdf >= 0.6.0, < 0.7",
30
30
  "inflect >= 7.5.0, < 7.6",
31
31
  "lightweight-charts >= 2.1, < 2.2",
32
- "loguru >= 0.7.3, < 0.8",
33
32
  "luigi >= 3.6.0, < 3.7",
34
33
  "memory-profiler >= 0.61.0, < 0.62",
35
34
  "more-itertools >= 10.7.0, < 10.8",
@@ -69,7 +68,7 @@ dev = [
69
68
  "vegafusion >= 2.0.2, < 2.1",
70
69
  "vegafusion-python-embed >= 1.6.9, < 1.7",
71
70
  "vl-convert-python >= 1.8.0, < 1.9",
72
- "whenever >= 0.8.4, < 0.9",
71
+ "whenever >= 0.8.5, < 0.9",
73
72
  # test
74
73
  "coverage-conditional-plugin >= 0.9.0, < 0.10",
75
74
  "dycw-pytest-only >= 2.1.1, < 2.2",
@@ -83,7 +82,6 @@ dev = [
83
82
  "pytest-timeout >= 2.4.0, < 2.5",
84
83
  "pytest-xdist >= 3.7.0, < 3.8",
85
84
  # CI
86
- "win32_setctime >= 1.2.0, < 1.3", # https://github.com/Delgan/loguru/issues/147
87
85
  "aiolimiter>=1.2.1",
88
86
  ]
89
87
 
@@ -96,14 +94,14 @@ dependencies = [
96
94
  name = "dycw-utilities"
97
95
  readme = "README.md"
98
96
  requires-python = ">= 3.12"
99
- version = "0.129.14"
97
+ version = "0.130.0"
100
98
 
101
99
  [project.optional-dependencies]
102
100
  logging = [
103
101
  "atomicwrites >= 1.4.1, < 1.5",
104
102
  "coloredlogs >= 15.0.1, < 15.1",
105
103
  "tzlocal >= 5.3.1, < 5.4",
106
- "whenever >= 0.8.4, < 0.9",
104
+ "whenever >= 0.8.5, < 0.9",
107
105
  ]
108
106
  test = [
109
107
  "dycw-pytest-only >= 2.1.1, < 2.2",
@@ -129,7 +127,7 @@ zzz-test-altair = [
129
127
  "img2pdf >= 0.6.0, < 0.7",
130
128
  "polars-lts-cpu >= 1.30.0, < 1.31",
131
129
  "vl-convert-python >= 1.8.0, < 1.9",
132
- "whenever >= 0.8.4, < 0.9",
130
+ "whenever >= 0.8.5, < 0.9",
133
131
  ]
134
132
  zzz-test-asyncio = []
135
133
  zzz-test-atomicwrites = ["atomicwrites >= 1.4.1, < 1.5"]
@@ -140,20 +138,20 @@ zzz-test-cachetools = ["cachetools >= 5.5.2, < 5.6"]
140
138
  zzz-test-click = [
141
139
  "click >= 8.2.1, < 8.3",
142
140
  "sqlalchemy >= 2.0.41, < 2.1",
143
- "whenever >= 0.8.4, < 0.9",
141
+ "whenever >= 0.8.5, < 0.9",
144
142
  ]
145
143
  zzz-test-contextlib = []
146
144
  zzz-test-contextvars = []
147
- zzz-test-cryptography = ["cryptography >= 45.0.3, < 45.1"]
145
+ zzz-test-cryptography = ["cryptography >= 45.0.4, < 45.1"]
148
146
  zzz-test-cvxpy = ["cvxpy >= 1.6.5, < 1.7"]
149
147
  zzz-test-dataclasses = [
150
148
  "orjson >= 3.10.15, < 3.11",
151
149
  "polars-lts-cpu >= 1.30.0, < 1.31",
152
- "whenever >= 0.8.4, < 0.9",
150
+ "whenever >= 0.8.5, < 0.9",
153
151
  ]
154
152
  zzz-test-datetime = [
155
153
  "tzlocal >= 5.3.1, < 5.4",
156
- "whenever >= 0.8.4, < 0.9",
154
+ "whenever >= 0.8.5, < 0.9",
157
155
  ]
158
156
  zzz-test-enum = []
159
157
  zzz-test-errors = []
@@ -174,12 +172,12 @@ zzz-test-git = []
174
172
  zzz-test-hashlib = [
175
173
  "polars-lts-cpu >= 1.30.0, < 1.31",
176
174
  "orjson >= 3.10.15, < 3.11",
177
- "whenever >= 0.8.4, < 0.9",
175
+ "whenever >= 0.8.5, < 0.9",
178
176
  ]
179
177
  zzz-test-http = [
180
178
  "atomicwrites >= 1.4.1, < 1.5",
181
179
  "orjson >= 3.10.18, < 3.11",
182
- "whenever >= 0.8.4, < 0.9",
180
+ "whenever >= 0.8.5, < 0.9",
183
181
  ]
184
182
  zzz-test-hypothesis = [
185
183
  "aiosqlite >= 0.21.0, < 0.22",
@@ -193,12 +191,12 @@ zzz-test-hypothesis = [
193
191
  "sqlalchemy >= 2.0.41, < 2.1",
194
192
  "tenacity >= 8.5.0, < 9.0", # limited by luigi
195
193
  "tzlocal >= 5.3.1, < 5.4",
196
- "whenever >= 0.8.4, < 0.9",
194
+ "whenever >= 0.8.5, < 0.9",
197
195
  ]
198
196
  zzz-test-ipython = ["ipython >= 9.0.1, < 9.1"]
199
197
  zzz-test-iterables = [
200
198
  "polars-lts-cpu >= 1.30.0, < 1.31",
201
- "whenever >= 0.8.4, < 0.9",
199
+ "whenever >= 0.8.5, < 0.9",
202
200
  ]
203
201
  zzz-test-jupyter = [
204
202
  "jupyterlab >= 4.2.0, < 4.3",
@@ -211,12 +209,11 @@ zzz-test-logging = [
211
209
  "rich >= 14.0.0, < 14.1",
212
210
  "tomlkit >= 0.13.2, < 0.14",
213
211
  "tzlocal >= 5.3.1, < 5.4",
214
- "whenever >= 0.8.4, < 0.9",
212
+ "whenever >= 0.8.5, < 0.9",
215
213
  ]
216
- zzz-test-loguru = ["loguru >= 0.7.3, < 0.8"]
217
214
  zzz-test-luigi = [
218
215
  "luigi >= 3.6.0, < 3.7",
219
- "whenever >= 0.8.4, < 0.9",
216
+ "whenever >= 0.8.5, < 0.9",
220
217
  ]
221
218
  zzz-test-math = ["numpy >= 2.3.0, < 2.4"]
222
219
  zzz-test-memory-profiler = ["memory-profiler >= 0.61.0, < 0.62"]
@@ -225,7 +222,7 @@ zzz-test-more-itertools = ["more-itertools >= 10.7.0, < 10.8"]
225
222
  zzz-test-numpy = ["numpy >= 2.3.0, < 2.4"]
226
223
  zzz-test-operator = [
227
224
  "polars-lts-cpu >= 1.30.0, < 1.31",
228
- "whenever >= 0.8.4, < 0.9",
225
+ "whenever >= 0.8.5, < 0.9",
229
226
  ]
230
227
  zzz-test-optuna = ["optuna >= 4.3.0, < 4.4"]
231
228
  zzz-test-orjson = [
@@ -233,7 +230,7 @@ zzz-test-orjson = [
233
230
  "polars-lts-cpu >= 1.30.0, < 1.31",
234
231
  "rich >= 14.0.0, < 14.1",
235
232
  "tzlocal >= 5.3.1, < 5.4",
236
- "whenever >= 0.8.4, < 0.9",
233
+ "whenever >= 0.8.5, < 0.9",
237
234
  ]
238
235
  zzz-test-os = []
239
236
  zzz-test-pathlib = []
@@ -241,7 +238,7 @@ zzz-test-pickle = ["atomicwrites >= 1.4.1, < 1.5"]
241
238
  zzz-test-platform = []
242
239
  zzz-test-polars = [
243
240
  "polars-lts-cpu >= 1.30.0, < 1.31",
244
- "whenever >= 0.8.4, < 0.9",
241
+ "whenever >= 0.8.5, < 0.9",
245
242
  ]
246
243
  zzz-test-pqdm = ["pqdm >= 0.2.0, < 0.3"]
247
244
  zzz-test-pydantic = [
@@ -257,12 +254,12 @@ zzz-test-pyrsistent = ["pyrsistent >= 0.20.0, < 0.21"]
257
254
  zzz-test-pytest = [
258
255
  "atomicwrites >= 1.4.1, < 1.5",
259
256
  "orjson >= 3.10.18, < 3.11",
260
- "whenever >= 0.8.4, < 0.9",
257
+ "whenever >= 0.8.5, < 0.9",
261
258
  ]
262
259
  zzz-test-pytest-regressions = ["pytest-regressions >= 2.8.0, < 2.9"]
263
260
  zzz-test-python-dotenv = [
264
261
  "python-dotenv >= 1.1.0, < 1.2",
265
- "whenever >= 0.8.4, < 0.9",
262
+ "whenever >= 0.8.5, < 0.9",
266
263
  ]
267
264
  zzz-test-random = []
268
265
  zzz-test-re = []
@@ -273,14 +270,14 @@ zzz-test-redis = [
273
270
  "rich >= 14.0.0, < 14.1",
274
271
  "tenacity >= 8.5.0, < 9.0", # limited by luigi
275
272
  "tzlocal >= 5.3.1, < 5.4",
276
- "whenever >= 0.8.4, < 0.9",
273
+ "whenever >= 0.8.5, < 0.9",
277
274
  ]
278
275
  zzz-test-rich = ["rich >= 14.0.0, < 14.1"]
279
276
  zzz-test-scipy = ["scipy >= 1.15.3, < 1.16"]
280
277
  zzz-test-sentinel = []
281
278
  zzz-test-shelve = []
282
279
  zzz-test-slack-sdk = [
283
- "aiohttp >= 3.12.11, < 3.13", # for slack
280
+ "aiohttp >= 3.12.12, < 3.13", # for slack
284
281
  "slack-sdk >= 3.35.0, < 3.36",
285
282
  ]
286
283
  zzz-test-socket = []
@@ -300,7 +297,7 @@ zzz-test-sqlalchemy-polars = [
300
297
  "polars-lts-cpu >= 1.30.0, < 1.31",
301
298
  "sqlalchemy >= 2.0.41, < 2.1",
302
299
  "tenacity >= 8.5.0, < 9.0", # limited by luigi
303
- "whenever >= 0.8.4, < 0.9",
300
+ "whenever >= 0.8.5, < 0.9",
304
301
  ]
305
302
  zzz-test-streamlit = ["streamlit >= 1.45.0, < 1.46"]
306
303
  zzz-test-sys = [
@@ -308,7 +305,7 @@ zzz-test-sys = [
308
305
  "rich >= 14.0.0, < 14.1",
309
306
  "tomlkit >= 0.13.2, < 0.14",
310
307
  "tzlocal >= 5.3.1, < 5.4",
311
- "whenever >= 0.8.4, < 0.9",
308
+ "whenever >= 0.8.5, < 0.9",
312
309
  ]
313
310
  zzz-test-tempfile = []
314
311
  zzz-test-tenacity = [
@@ -321,22 +318,22 @@ zzz-test-traceback = [
321
318
  "rich >= 14.0.0, < 14.1",
322
319
  "tomlkit >= 0.13.2, < 0.14",
323
320
  "tzlocal >= 5.3.1, < 5.4",
324
- "whenever >= 0.8.4, < 0.9",
321
+ "whenever >= 0.8.5, < 0.9",
325
322
  ]
326
323
  zzz-test-types = []
327
324
  zzz-test-typing = [
328
325
  "polars-lts-cpu >= 1.30.0, < 1.31",
329
- "whenever >= 0.8.4, < 0.9",
326
+ "whenever >= 0.8.5, < 0.9",
330
327
  ]
331
328
  zzz-test-tzlocal = ["tzlocal >= 5.3.1, < 5.4"]
332
329
  zzz-test-uuid = []
333
330
  zzz-test-version = ["tomlkit >= 0.13.2, < 0.14"]
334
331
  zzz-test-warnings = []
335
- zzz-test-whenever = ["whenever >= 0.8.4, < 0.9"]
332
+ zzz-test-whenever = ["whenever >= 0.8.5, < 0.9"]
336
333
  zzz-test-zipfile = []
337
334
  zzz-test-zoneinfo = [
338
335
  "tzdata >= 2025.2, < 2025.3",
339
- "whenever >= 0.8.4, < 0.9",
336
+ "whenever >= 0.8.5, < 0.9",
340
337
  ]
341
338
 
342
339
  [project.scripts]
@@ -344,7 +341,7 @@ zzz-test-zoneinfo = [
344
341
  # bump-my-version
345
342
  [tool.bumpversion]
346
343
  allow_dirty = true
347
- current_version = "0.129.14"
344
+ current_version = "0.130.0"
348
345
 
349
346
  [[tool.bumpversion.files]]
350
347
  filename = "src/utilities/__init__.py"
@@ -464,6 +461,7 @@ filterwarnings = [
464
461
  "ignore:unclosed <socket.*socket .*>:ResourceWarning", # redis
465
462
  "ignore:unclosed Connection <redis.*asyncio.*connection.*Connection.*>:ResourceWarning", # redis
466
463
  "ignore:unclosed event loop <_UnixSelectorEventLoop .*>:ResourceWarning", # redis
464
+ "ignore:unclosed file <_io.*TextIOWrapper .*>:ResourceWarning", # logging
467
465
  "ignore:unclosed transport <_SelectorSocketTransport .*>:ResourceWarning", # redis
468
466
  ]
469
467
  minversion = "8.0"
@@ -0,0 +1,27 @@
1
+ from __future__ import annotations
2
+
3
+ from os import environ
4
+
5
+ from pytest import mark
6
+
7
+ from utilities.platform import IS_NOT_LINUX, IS_WINDOWS
8
+
9
+ FLAKY = mark.flaky(reruns=5, reruns_delay=1)
10
+ IS_CI = "CI" in environ
11
+ SKIPIF_CI = mark.skipif(IS_CI, reason="Skipped for CI")
12
+ IS_CI_AND_WINDOWS = IS_CI and IS_WINDOWS
13
+ SKIPIF_CI_AND_WINDOWS = mark.skipif(IS_CI_AND_WINDOWS, reason="Skipped for CI/Windows")
14
+ SKIPIF_CI_AND_NOT_LINUX = mark.skipif(
15
+ IS_CI and IS_NOT_LINUX, reason="Skipped for CI/non-Linux"
16
+ )
17
+
18
+
19
+ # hypothesis
20
+
21
+
22
+ try:
23
+ from utilities.hypothesis import setup_hypothesis_profiles
24
+ except ModuleNotFoundError:
25
+ pass
26
+ else:
27
+ setup_hypothesis_profiles()