dycw-utilities 0.166.12__tar.gz → 0.166.14__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 (225) hide show
  1. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/PKG-INFO +2 -2
  2. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/pyproject.toml +3 -3
  3. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/conftest.py +3 -3
  4. dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +5 -0
  5. dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +71 -0
  6. dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +5 -0
  7. dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +5 -0
  8. dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +5 -0
  9. dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +9 -0
  10. dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +74 -0
  11. dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +71 -0
  12. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_hypothesis.py +5 -4
  13. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_iterables.py +1 -1
  14. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_pytest.py +4 -6
  15. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_re.py +1 -5
  16. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_redis.py +6 -6
  17. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_text.py +18 -18
  18. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/__init__.py +1 -1
  19. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/altair.py +1 -3
  20. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/click.py +4 -4
  21. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/hypothesis.py +3 -7
  22. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/libcst.py +1 -1
  23. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/polars.py +1 -1
  24. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/pytest.py +3 -3
  25. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/sqlalchemy.py +1 -1
  26. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/text.py +6 -6
  27. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/traceback.py +2 -2
  28. dycw_utilities-0.166.12/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -1
  29. dycw_utilities-0.166.12/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -26
  30. dycw_utilities-0.166.12/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -1
  31. dycw_utilities-0.166.12/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -1
  32. dycw_utilities-0.166.12/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -1
  33. dycw_utilities-0.166.12/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -5
  34. dycw_utilities-0.166.12/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -25
  35. dycw_utilities-0.166.12/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -26
  36. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/.gitignore +0 -0
  37. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/LICENSE +0 -0
  38. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/README.md +0 -0
  39. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/__init__.py +0 -0
  40. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/__init__.py +0 -0
  41. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/package_missing/__init__.py +0 -0
  42. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/package_missing/module.py +0 -0
  43. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/package_with/__init__.py +0 -0
  44. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/package_with/outer_1.py +0 -0
  45. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/package_with/outer_2.py +0 -0
  46. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
  47. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
  48. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
  49. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
  50. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/package_without/__init__.py +0 -0
  51. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/package_without/module_1.py +0 -0
  52. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/package_without/module_2.py +0 -0
  53. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/standalone.py +0 -0
  54. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/modules/with_imports.py +0 -0
  55. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_aeventkit.py +0 -0
  56. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_altair.py +0 -0
  57. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_asyncio.py +0 -0
  58. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_atomicwrites.py +0 -0
  59. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_atools.py +0 -0
  60. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_cachetools.py +0 -0
  61. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_click.py +0 -0
  62. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_concurrent.py +0 -0
  63. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_contextlib.py +0 -0
  64. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_contextvars.py +0 -0
  65. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_cryptography.py +0 -0
  66. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_cvxpy.py +0 -0
  67. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_dataclasses.py +0 -0
  68. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_enum.py +0 -0
  69. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_errors.py +0 -0
  70. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_fastapi.py +0 -0
  71. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_fpdf2.py +0 -0
  72. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_functions.py +0 -0
  73. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_functools.py +0 -0
  74. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_getpass.py +0 -0
  75. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_git.py +0 -0
  76. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_gzip.py +0 -0
  77. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_hashlib.py +0 -0
  78. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_http.py +0 -0
  79. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_importlib.py +0 -0
  80. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_inflect.py +0 -0
  81. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_ipython.py +0 -0
  82. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_json.py +0 -0
  83. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_jupyter.py +0 -0
  84. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_libcst.py +0 -0
  85. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_lightweight_charts.py +0 -0
  86. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_logging.py +0 -0
  87. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_math.py +0 -0
  88. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_memory_profiler.py +0 -0
  89. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_modules.py +0 -0
  90. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_more_itertools.py +0 -0
  91. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_numpy.py +0 -0
  92. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_objects/__init__.py +0 -0
  93. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_objects/objects.py +0 -0
  94. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_operator.py +0 -0
  95. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_optuna.py +0 -0
  96. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_orjson.py +0 -0
  97. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_os.py +0 -0
  98. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_parse.py +0 -0
  99. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_pathlib.py +0 -0
  100. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_pickle.py +0 -0
  101. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_platform.py +0 -0
  102. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_polars.py +0 -0
  103. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_polars_ols.py +0 -0
  104. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_postgres.py +0 -0
  105. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_pottery.py +0 -0
  106. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_pqdm.py +0 -0
  107. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_psutil.py +0 -0
  108. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_pydantic_settings.py +0 -0
  109. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_pydantic_settings_sops.py +0 -0
  110. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_pyinstrument.py +0 -0
  111. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_pytest_randomly.py +0 -0
  112. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_pytest_regressions.py +0 -0
  113. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_random.py +0 -0
  114. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_reprlib.py +0 -0
  115. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_scipy.py +0 -0
  116. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_sentinel.py +0 -0
  117. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_shelve.py +0 -0
  118. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_slack_sdk.py +0 -0
  119. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_socket.py +0 -0
  120. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_sqlalchemy.py +0 -0
  121. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_sqlalchemy_polars.py +0 -0
  122. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_statsmodels.py +0 -0
  123. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_string.py +0 -0
  124. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_tempfile.py +0 -0
  125. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_testbook.py +0 -0
  126. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_threading.py +0 -0
  127. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_timer.py +0 -0
  128. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_traceback.py +0 -0
  129. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_typed_settings.py +0 -0
  130. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_types.py +0 -0
  131. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_typing.py +0 -0
  132. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_typing_funcs/__init__.py +0 -0
  133. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_typing_funcs/no_future.py +0 -0
  134. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_typing_funcs/with_future.py +0 -0
  135. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_tzdata.py +0 -0
  136. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_tzlocal.py +0 -0
  137. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_uuid.py +0 -0
  138. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_version.py +0 -0
  139. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_warnings.py +0 -0
  140. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_whenever.py +0 -0
  141. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_zipfile.py +0 -0
  142. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/tests/test_zoneinfo.py +0 -0
  143. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/aeventkit.py +0 -0
  144. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/asyncio.py +0 -0
  145. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/atomicwrites.py +0 -0
  146. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/atools.py +0 -0
  147. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/cachetools.py +0 -0
  148. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/concurrent.py +0 -0
  149. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/contextlib.py +0 -0
  150. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/contextvars.py +0 -0
  151. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/cryptography.py +0 -0
  152. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/cvxpy.py +0 -0
  153. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/dataclasses.py +0 -0
  154. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/enum.py +0 -0
  155. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/errors.py +0 -0
  156. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/fastapi.py +0 -0
  157. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/fpdf2.py +0 -0
  158. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/functions.py +0 -0
  159. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/functools.py +0 -0
  160. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/getpass.py +0 -0
  161. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/git.py +0 -0
  162. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/gzip.py +0 -0
  163. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/hashlib.py +0 -0
  164. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/http.py +0 -0
  165. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/importlib.py +0 -0
  166. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/inflect.py +0 -0
  167. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/ipython.py +0 -0
  168. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/iterables.py +0 -0
  169. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/json.py +0 -0
  170. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/jupyter.py +0 -0
  171. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/lightweight_charts.py +0 -0
  172. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/logging.py +0 -0
  173. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/math.py +0 -0
  174. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/memory_profiler.py +0 -0
  175. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/modules.py +0 -0
  176. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/more_itertools.py +0 -0
  177. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/numpy.py +0 -0
  178. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/operator.py +0 -0
  179. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/optuna.py +0 -0
  180. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/orjson.py +0 -0
  181. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/os.py +0 -0
  182. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/parse.py +0 -0
  183. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/pathlib.py +0 -0
  184. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/pickle.py +0 -0
  185. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/platform.py +0 -0
  186. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/polars_ols.py +0 -0
  187. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/postgres.py +0 -0
  188. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/pottery.py +0 -0
  189. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/pqdm.py +0 -0
  190. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/psutil.py +0 -0
  191. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/py.typed +0 -0
  192. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/pydantic_settings.py +0 -0
  193. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/pydantic_settings_sops.py +0 -0
  194. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/pyinstrument.py +0 -0
  195. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/pytest_plugins/__init__.py +0 -0
  196. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/pytest_plugins/pytest_randomly.py +0 -0
  197. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/pytest_plugins/pytest_regressions.py +0 -0
  198. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/pytest_regressions.py +0 -0
  199. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/random.py +0 -0
  200. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/re.py +0 -0
  201. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/redis.py +0 -0
  202. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/reprlib.py +0 -0
  203. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/scipy.py +0 -0
  204. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/sentinel.py +0 -0
  205. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/shelve.py +0 -0
  206. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/slack_sdk.py +0 -0
  207. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/socket.py +0 -0
  208. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/sqlalchemy_polars.py +0 -0
  209. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/statsmodels.py +0 -0
  210. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/string.py +0 -0
  211. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/tempfile.py +0 -0
  212. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/testbook.py +0 -0
  213. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/threading.py +0 -0
  214. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/timer.py +0 -0
  215. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/typed_settings.py +0 -0
  216. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/types.py +0 -0
  217. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/typing.py +0 -0
  218. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/tzdata.py +0 -0
  219. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/tzlocal.py +0 -0
  220. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/uuid.py +0 -0
  221. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/version.py +0 -0
  222. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/warnings.py +0 -0
  223. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/whenever.py +0 -0
  224. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/zipfile.py +0 -0
  225. {dycw_utilities-0.166.12 → dycw_utilities-0.166.14}/src/utilities/zoneinfo.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dycw-utilities
3
- Version: 0.166.12
3
+ Version: 0.166.14
4
4
  Author-email: Derek Wan <d.wan@icloud.com>
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.12
@@ -20,7 +20,7 @@ Requires-Dist: pytest-lazy-fixtures<1.4,>=1.3.4; extra == 'test'
20
20
  Requires-Dist: pytest-randomly<3.17,>=3.16.0; extra == 'test'
21
21
  Requires-Dist: pytest-regressions<2.9,>=2.8.2; extra == 'test'
22
22
  Requires-Dist: pytest-repeat<0.10,>=0.9.4; extra == 'test'
23
- Requires-Dist: pytest-rerunfailures<16,>=15.1; extra == 'test'
23
+ Requires-Dist: pytest-rerunfailures<16.1,>=16.0.1; extra == 'test'
24
24
  Requires-Dist: pytest-rng<1.1,>=1.0.0; extra == 'test'
25
25
  Requires-Dist: pytest-timeout<2.5,>=2.4.0; extra == 'test'
26
26
  Requires-Dist: pytest-xdist<3.9,>=3.8.0; extra == 'test'
@@ -242,7 +242,7 @@ dependencies = [
242
242
  name = "dycw-utilities"
243
243
  readme = "README.md"
244
244
  requires-python = ">= 3.12"
245
- version = "0.166.12"
245
+ version = "0.166.14"
246
246
 
247
247
  [project.entry-points.pytest11]
248
248
  pytest-randomly = "utilities.pytest_plugins.pytest_randomly"
@@ -263,7 +263,7 @@ test = [
263
263
  "pytest-randomly >=3.16.0, <3.17",
264
264
  "pytest-regressions >=2.8.2, <2.9",
265
265
  "pytest-repeat >=0.9.4, <0.10",
266
- "pytest-rerunfailures >=15.1, <16",
266
+ "pytest-rerunfailures >=16.0.1, <16.1",
267
267
  "pytest-rng >=1.0.0, <1.1",
268
268
  "pytest-timeout >=2.4.0, <2.5",
269
269
  "pytest-xdist >=3.8.0, <3.9",
@@ -275,7 +275,7 @@ test = [
275
275
  # bump-my-version
276
276
  [tool.bumpversion]
277
277
  allow_dirty = true
278
- current_version = "0.166.12"
278
+ current_version = "0.166.14"
279
279
 
280
280
  [[tool.bumpversion.files]]
281
281
  filename = "src/utilities/__init__.py"
@@ -15,7 +15,7 @@ from utilities.re import ExtractGroupError, extract_group
15
15
  from utilities.whenever import MINUTE, get_now_local_plain
16
16
 
17
17
  if TYPE_CHECKING:
18
- from collections.abc import AsyncIterator, Iterator, Sequence
18
+ from collections.abc import AsyncIterator, Iterator
19
19
  from pathlib import Path
20
20
 
21
21
  from _pytest.fixtures import SubRequest
@@ -99,7 +99,7 @@ def test_engine(*, request: SubRequest, tmp_path: Path) -> Engine:
99
99
  )
100
100
  try:
101
101
  with engine.begin() as conn:
102
- tables: Sequence[str] = (
102
+ tables: list[str] = list(
103
103
  conn.execute(_select_tables()).scalars().all()
104
104
  )
105
105
  except OperationalError:
@@ -157,7 +157,7 @@ async def test_async_postgres_engine() -> AsyncEngine:
157
157
  )
158
158
  try:
159
159
  async with engine.begin() as conn:
160
- tables: Sequence[str] = (
160
+ tables: list[str] = list(
161
161
  (await conn.execute(_select_tables())).scalars().all()
162
162
  )
163
163
  except InvalidCatalogNameError:
@@ -0,0 +1,71 @@
1
+ {
2
+ "describe": [
3
+ {
4
+ "statistic": "count",
5
+ "value": 10.0
6
+ },
7
+ {
8
+ "statistic": "null_count",
9
+ "value": 0.0
10
+ },
11
+ {
12
+ "statistic": "mean",
13
+ "value": 4.5
14
+ },
15
+ {
16
+ "statistic": "std",
17
+ "value": 3.0276503540974917
18
+ },
19
+ {
20
+ "statistic": "min",
21
+ "value": 0.0
22
+ },
23
+ {
24
+ "statistic": "10%",
25
+ "value": 1.0
26
+ },
27
+ {
28
+ "statistic": "20%",
29
+ "value": 2.0
30
+ },
31
+ {
32
+ "statistic": "30%",
33
+ "value": 3.0
34
+ },
35
+ {
36
+ "statistic": "40%",
37
+ "value": 4.0
38
+ },
39
+ {
40
+ "statistic": "50%",
41
+ "value": 5.0
42
+ },
43
+ {
44
+ "statistic": "60%",
45
+ "value": 5.0
46
+ },
47
+ {
48
+ "statistic": "70%",
49
+ "value": 6.0
50
+ },
51
+ {
52
+ "statistic": "80%",
53
+ "value": 7.0
54
+ },
55
+ {
56
+ "statistic": "90%",
57
+ "value": 8.0
58
+ },
59
+ {
60
+ "statistic": "max",
61
+ "value": 9.0
62
+ }
63
+ ],
64
+ "estimated_size": 80,
65
+ "has_nulls": false,
66
+ "is_empty": false,
67
+ "is_sorted": true,
68
+ "len": 10,
69
+ "n_unique": 10,
70
+ "null_count": 0
71
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "[dc|DataClassFutureNestedOuterFirstOuter]": {
3
+ "inner": {
4
+ "[dc|DataClassFutureNestedOuterFirstInner]": {
5
+ "int_": 0
6
+ }
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "approx_n_unique": {
3
+ "value": 10
4
+ },
5
+ "describe": [
6
+ {
7
+ "statistic": "count",
8
+ "value": 10.0
9
+ },
10
+ {
11
+ "statistic": "null_count",
12
+ "value": 0.0
13
+ },
14
+ {
15
+ "statistic": "mean",
16
+ "value": 4.5
17
+ },
18
+ {
19
+ "statistic": "std",
20
+ "value": 3.0276503540974917
21
+ },
22
+ {
23
+ "statistic": "min",
24
+ "value": 0.0
25
+ },
26
+ {
27
+ "statistic": "10%",
28
+ "value": 1.0
29
+ },
30
+ {
31
+ "statistic": "20%",
32
+ "value": 2.0
33
+ },
34
+ {
35
+ "statistic": "30%",
36
+ "value": 3.0
37
+ },
38
+ {
39
+ "statistic": "40%",
40
+ "value": 4.0
41
+ },
42
+ {
43
+ "statistic": "50%",
44
+ "value": 5.0
45
+ },
46
+ {
47
+ "statistic": "60%",
48
+ "value": 5.0
49
+ },
50
+ {
51
+ "statistic": "70%",
52
+ "value": 6.0
53
+ },
54
+ {
55
+ "statistic": "80%",
56
+ "value": 7.0
57
+ },
58
+ {
59
+ "statistic": "90%",
60
+ "value": 8.0
61
+ },
62
+ {
63
+ "statistic": "max",
64
+ "value": 9.0
65
+ }
66
+ ],
67
+ "estimated_size": 80,
68
+ "glimpse": "Rows: 10\nColumns: 1\n$ value <i64> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\n",
69
+ "is_empty": false,
70
+ "n_unique": 10,
71
+ "null_count": {
72
+ "value": 0
73
+ }
74
+ }
@@ -0,0 +1,71 @@
1
+ {
2
+ "describe": [
3
+ {
4
+ "statistic": "count",
5
+ "value": 10.0
6
+ },
7
+ {
8
+ "statistic": "null_count",
9
+ "value": 0.0
10
+ },
11
+ {
12
+ "statistic": "mean",
13
+ "value": 4.5
14
+ },
15
+ {
16
+ "statistic": "std",
17
+ "value": 3.0276503540974917
18
+ },
19
+ {
20
+ "statistic": "min",
21
+ "value": 0.0
22
+ },
23
+ {
24
+ "statistic": "10%",
25
+ "value": 1.0
26
+ },
27
+ {
28
+ "statistic": "20%",
29
+ "value": 2.0
30
+ },
31
+ {
32
+ "statistic": "30%",
33
+ "value": 3.0
34
+ },
35
+ {
36
+ "statistic": "40%",
37
+ "value": 4.0
38
+ },
39
+ {
40
+ "statistic": "50%",
41
+ "value": 5.0
42
+ },
43
+ {
44
+ "statistic": "60%",
45
+ "value": 5.0
46
+ },
47
+ {
48
+ "statistic": "70%",
49
+ "value": 6.0
50
+ },
51
+ {
52
+ "statistic": "80%",
53
+ "value": 7.0
54
+ },
55
+ {
56
+ "statistic": "90%",
57
+ "value": 8.0
58
+ },
59
+ {
60
+ "statistic": "max",
61
+ "value": 9.0
62
+ }
63
+ ],
64
+ "estimated_size": 80,
65
+ "has_nulls": false,
66
+ "is_empty": false,
67
+ "is_sorted": true,
68
+ "len": 10,
69
+ "n_unique": 10,
70
+ "null_count": 0
71
+ }
@@ -760,10 +760,11 @@ class TestPairs:
760
760
 
761
761
 
762
762
  class TestPaths:
763
- @given(data=data())
764
- def test_main(self, *, data: DataObject) -> None:
765
- min_depth = data.draw(integers(0, 3) | none())
766
- max_depth = data.draw(integers(0, 3) | none())
763
+ @given(data=data(), depths=pairs(integers(0, 3) | none()))
764
+ def test_main(
765
+ self, *, data: DataObject, depths: tuple[int | None, int | None]
766
+ ) -> None:
767
+ min_depth, max_depth = depths
767
768
  with assume_does_not_raise(InvalidArgument):
768
769
  path = data.draw(paths(min_depth=min_depth, max_depth=max_depth))
769
770
  assert isinstance(path, Path)
@@ -575,7 +575,7 @@ class TestChunked:
575
575
  ],
576
576
  )
577
577
  def test_main(
578
- self, *, iterable: Iterable[str], expected: Sequence[Sequence[str]]
578
+ self, *, iterable: Iterable[str], expected: Sequence[list[str]]
579
579
  ) -> None:
580
580
  result = list(chunked(iterable, 3))
581
581
  assert result == expected
@@ -12,8 +12,6 @@ from utilities.os import temp_environ
12
12
  from utilities.pytest import NodeIdToPathError, node_id_path, throttle
13
13
 
14
14
  if TYPE_CHECKING:
15
- from collections.abc import Sequence
16
-
17
15
  from _pytest.legacypath import Testdir
18
16
 
19
17
 
@@ -117,10 +115,10 @@ class TestPytestOptions:
117
115
  self,
118
116
  *,
119
117
  testdir: Testdir,
120
- case: Sequence[str],
118
+ case: list[str],
121
119
  passed: int,
122
120
  skipped: int,
123
- matches: Sequence[str],
121
+ matches: list[str],
124
122
  ) -> None:
125
123
  _ = testdir.makeconftest(
126
124
  """
@@ -183,10 +181,10 @@ class TestPytestOptions:
183
181
  self,
184
182
  *,
185
183
  testdir: Testdir,
186
- case: Sequence[str],
184
+ case: list[str],
187
185
  passed: int,
188
186
  skipped: int,
189
- matches: Sequence[str],
187
+ matches: list[str],
190
188
  ) -> None:
191
189
  _ = testdir.makeconftest(
192
190
  """
@@ -2,7 +2,6 @@ from __future__ import annotations
2
2
 
3
3
  import re
4
4
  from re import DOTALL
5
- from typing import TYPE_CHECKING
6
5
 
7
6
  from pytest import mark, param, raises
8
7
 
@@ -19,9 +18,6 @@ from utilities.re import (
19
18
  extract_groups,
20
19
  )
21
20
 
22
- if TYPE_CHECKING:
23
- from collections.abc import Sequence
24
-
25
21
 
26
22
  class TestEnsurePattern:
27
23
  def test_pattern(self) -> None:
@@ -81,7 +77,7 @@ class TestExtractGroups:
81
77
  ("pattern", "text", "expected"),
82
78
  [param(r"(\d)", "A0A", ["0"]), param(r"(\d)(\w)", "A0A0", ["0", "A"])],
83
79
  )
84
- def test_main(self, *, pattern: str, text: str, expected: Sequence[str]) -> None:
80
+ def test_main(self, *, pattern: str, text: str, expected: list[str]) -> None:
85
81
  assert extract_groups(pattern, text) == expected
86
82
 
87
83
  def test_with_flags(self) -> None:
@@ -246,7 +246,7 @@ class TestPublish:
246
246
  phases={Phase.generate},
247
247
  suppress_health_check={HealthCheck.function_scoped_fixture},
248
248
  )
249
- async def test_text(self, *, test_redis: Redis, messages: Sequence[str]) -> None:
249
+ async def test_text(self, *, test_redis: Redis, messages: list[str]) -> None:
250
250
  channel = f"test_{unique_str()}"
251
251
  queue: Queue[str] = Queue()
252
252
  async with subscribe(test_redis, channel, queue):
@@ -291,7 +291,7 @@ class TestPublishMany:
291
291
  phases={Phase.generate},
292
292
  suppress_health_check={HealthCheck.function_scoped_fixture},
293
293
  )
294
- async def test_timeout(self, *, test_redis: Redis, messages: Sequence[str]) -> None:
294
+ async def test_timeout(self, *, test_redis: Redis, messages: list[str]) -> None:
295
295
  result = await publish_many(
296
296
  test_redis, unique_str(), messages, timeout=MICROSECOND
297
297
  )
@@ -687,8 +687,8 @@ class TestSubscribe:
687
687
  *,
688
688
  test_redis: Redis,
689
689
  data: DataObject,
690
- short_messages: Sequence[str],
691
- long_messages: Sequence[str],
690
+ short_messages: list[str],
691
+ long_messages: list[str],
692
692
  ) -> None:
693
693
  channel = unique_str()
694
694
  messages = data.draw(permutations(list(chain(short_messages, long_messages))))
@@ -713,7 +713,7 @@ class TestSubscribe:
713
713
  phases={Phase.generate},
714
714
  suppress_health_check={HealthCheck.function_scoped_fixture},
715
715
  )
716
- async def test_raw(self, *, test_redis: Redis, messages: Sequence[str]) -> None:
716
+ async def test_raw(self, *, test_redis: Redis, messages: list[str]) -> None:
717
717
  channel = f"test_{unique_str()}"
718
718
  queue: Queue[_RedisMessage] = Queue()
719
719
  async with subscribe(test_redis, channel, queue, output="raw"):
@@ -737,7 +737,7 @@ class TestSubscribe:
737
737
  phases={Phase.generate},
738
738
  suppress_health_check={HealthCheck.function_scoped_fixture},
739
739
  )
740
- async def test_text(self, *, test_redis: Redis, messages: Sequence[str]) -> None:
740
+ async def test_text(self, *, test_redis: Redis, messages: list[str]) -> None:
741
741
  channel = f"test_{unique_str()}"
742
742
  queue: Queue[_RedisMessage] = Queue()
743
743
  async with subscribe(test_redis, channel, queue, output="raw"):
@@ -241,15 +241,15 @@ class TestSplitAndJoinStr:
241
241
  @mark.parametrize(
242
242
  ("text", "n", "expected"),
243
243
  [
244
- param("", 0, []),
245
- param(r"\,", 1, [""]),
246
- param(",", 2, ["", ""]),
247
- param(",,", 3, ["", "", ""]),
248
- param("1", 1, ["1"]),
249
- param("1,22", 2, ["1", "22"]),
250
- param("1,22,333", 3, ["1", "22", "333"]),
251
- param("1,,333", 3, ["1", "", "333"]),
252
- param("1,(22,22,22),333", 5, ["1", "(22", "22", "22)", "333"]),
244
+ param("", 0, ()),
245
+ param(r"\,", 1, ("",)),
246
+ param(",", 2, ("", "")),
247
+ param(",,", 3, ("", "", "")),
248
+ param("1", 1, ("1",)),
249
+ param("1,22", 2, ("1", "22")),
250
+ param("1,22,333", 3, ("1", "22", "333")),
251
+ param("1,,333", 3, ("1", "", "333")),
252
+ param("1,(22,22,22),333", 5, ("1", "(22", "22", "22)", "333")),
253
253
  ],
254
254
  )
255
255
  def test_main(
@@ -267,12 +267,12 @@ class TestSplitAndJoinStr:
267
267
  @mark.parametrize(
268
268
  ("text", "n", "expected"),
269
269
  [
270
- param("1", 1, ["1"]),
271
- param("1,22", 2, ["1", "22"]),
272
- param("1,22,333", 3, ["1", "22", "333"]),
273
- param("1,(22),333", 3, ["1", "(22)", "333"]),
274
- param("1,(22,22),333", 3, ["1", "(22,22)", "333"]),
275
- param("1,(22,22,22),333", 3, ["1", "(22,22,22)", "333"]),
270
+ param("1", 1, ("1",)),
271
+ param("1,22", 2, ("1", "22")),
272
+ param("1,22,333", 3, ("1", "22", "333")),
273
+ param("1,(22),333", 3, ("1", "(22)", "333")),
274
+ param("1,(22,22),333", 3, ("1", "(22,22)", "333")),
275
+ param("1,(22,22,22),333", 3, ("1", "(22,22,22)", "333")),
276
276
  ],
277
277
  )
278
278
  def test_brackets(
@@ -286,13 +286,13 @@ class TestSplitAndJoinStr:
286
286
  assert result == tuple(expected)
287
287
  assert join_strs(result) == text
288
288
 
289
- @given(texts=lists(text_ascii()))
290
- def test_generic(self, *, texts: list[str]) -> None:
289
+ @given(texts=lists(text_ascii()).map(tuple))
290
+ def test_generic(self, *, texts: tuple[str, ...]) -> None:
291
291
  assert split_str(join_strs(texts)) == texts
292
292
 
293
293
  @given(texts=sets(text_ascii()))
294
294
  def test_sort(self, *, texts: set[str]) -> None:
295
- assert split_str(join_strs(texts, sort=True)) == sorted(texts)
295
+ assert split_str(join_strs(texts, sort=True)) == tuple(sorted(texts))
296
296
 
297
297
  def test_error_closing_bracket_mismatched(self) -> None:
298
298
  with raises(
@@ -1,3 +1,3 @@
1
1
  from __future__ import annotations
2
2
 
3
- __version__ = "0.166.12"
3
+ __version__ = "0.166.14"
@@ -29,8 +29,6 @@ from utilities.iterables import always_iterable
29
29
  from utilities.tempfile import TemporaryDirectory
30
30
 
31
31
  if TYPE_CHECKING:
32
- from collections.abc import Sequence
33
-
34
32
  from polars import DataFrame
35
33
 
36
34
  from utilities.types import PathLike
@@ -43,7 +41,7 @@ _WIDTH = 800
43
41
 
44
42
  @dataclass(kw_only=True, slots=True)
45
43
  class _PlotDataFramesSpec:
46
- y: Sequence[str]
44
+ y: list[str]
47
45
  height: int = _HEIGHT
48
46
 
49
47
 
@@ -17,7 +17,7 @@ from utilities.parse import ParseObjectError, parse_object
17
17
  from utilities.text import split_str
18
18
 
19
19
  if TYPE_CHECKING:
20
- from collections.abc import Iterable, Sequence
20
+ from collections.abc import Iterable
21
21
 
22
22
  from utilities.types import (
23
23
  DateDeltaLike,
@@ -38,7 +38,7 @@ if TYPE_CHECKING:
38
38
 
39
39
 
40
40
  class _HelpOptionNames(TypedDict):
41
- help_option_names: Sequence[str]
41
+ help_option_names: list[str]
42
42
 
43
43
 
44
44
  class _ContextSettings(TypedDict):
@@ -469,7 +469,7 @@ class FrozenSetChoices(FrozenSetParameter[Choice, str]):
469
469
  @override
470
470
  def __init__(
471
471
  self,
472
- choices: Sequence[str],
472
+ choices: list[str],
473
473
  /,
474
474
  *,
475
475
  case_sensitive: bool = False,
@@ -554,7 +554,7 @@ class ListChoices(ListParameter[Choice, str]):
554
554
  @override
555
555
  def __init__(
556
556
  self,
557
- choices: Sequence[str],
557
+ choices: list[str],
558
558
  /,
559
559
  *,
560
560
  case_sensitive: bool = False,
@@ -847,13 +847,9 @@ def paths(
847
847
  ) -> Path:
848
848
  """Strategy for generating `Path`s."""
849
849
  min_depth_, max_depth_ = [draw2(draw, d) for d in [min_depth, max_depth]]
850
- parts = draw(
851
- lists(
852
- _path_parts(),
853
- min_size=0 if min_depth_ is None else min_depth_,
854
- max_size=max_depth_,
855
- )
856
- )
850
+ min_depth_ = max_nullable([min_depth_, 0])
851
+ max_depth_ = min_nullable([max_depth_, 10])
852
+ parts = draw(lists(_path_parts(), min_size=min_depth_, max_size=max_depth_))
857
853
  return Path(*parts)
858
854
 
859
855
 
@@ -150,7 +150,7 @@ def split_dotted_str(dotted: str, /) -> Name | Attribute:
150
150
 
151
151
  def join_dotted_str(name_or_attr: Name | Attribute, /) -> str:
152
152
  """Join a dotted from from a name/attribute."""
153
- parts: Sequence[str] = []
153
+ parts: list[str] = []
154
154
  curr: BaseExpression | Name | Attribute = name_or_attr
155
155
  while True:
156
156
  match curr:
@@ -564,7 +564,7 @@ def _check_polars_dataframe_columns(df: DataFrame, columns: Iterable[str], /) ->
564
564
 
565
565
  @dataclass(kw_only=True, slots=True)
566
566
  class _CheckPolarsDataFrameColumnsError(CheckPolarsDataFrameError):
567
- columns: Sequence[str]
567
+ columns: list[str]
568
568
 
569
569
  @override
570
570
  def __str__(self) -> str:
@@ -26,7 +26,7 @@ from utilities.types import MaybeCoro
26
26
  from utilities.whenever import SECOND, get_now_local
27
27
 
28
28
  if TYPE_CHECKING:
29
- from collections.abc import Callable, Iterable, Sequence
29
+ from collections.abc import Callable, Iterable
30
30
 
31
31
  from utilities.types import Coro, Delta, PathLike
32
32
 
@@ -52,7 +52,7 @@ else:
52
52
  skipif_not_linux = mark.skipif(IS_NOT_LINUX, reason="Skipped for non-Linux")
53
53
 
54
54
 
55
- def add_pytest_addoption(parser: Parser, options: Sequence[str], /) -> None:
55
+ def add_pytest_addoption(parser: Parser, options: list[str], /) -> None:
56
56
  """Add the `--slow`, etc options to pytest.
57
57
 
58
58
  Usage:
@@ -73,7 +73,7 @@ def add_pytest_addoption(parser: Parser, options: Sequence[str], /) -> None:
73
73
 
74
74
 
75
75
  def add_pytest_collection_modifyitems(
76
- config: Config, items: Iterable[Function], options: Sequence[str], /
76
+ config: Config, items: Iterable[Function], options: list[str], /
77
77
  ) -> None:
78
78
  """Add the @mark.skips as necessary.
79
79
 
@@ -1073,7 +1073,7 @@ def _map_mapping_to_table(
1073
1073
  @dataclass(kw_only=True, slots=True)
1074
1074
  class _MapMappingToTableError(Exception):
1075
1075
  mapping: StrMapping
1076
- columns: Sequence[str]
1076
+ columns: list[str]
1077
1077
 
1078
1078
 
1079
1079
  @dataclass(kw_only=True, slots=True)