chutils 3.3.1__tar.gz → 3.4.1__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 (585) hide show
  1. {chutils-3.3.1 → chutils-3.4.1}/PKG-INFO +7 -1
  2. {chutils-3.3.1 → chutils-3.4.1}/ai-lint.toml +3 -0
  3. {chutils-3.3.1 → chutils-3.4.1}/api_map.md +233 -226
  4. {chutils-3.3.1 → chutils-3.4.1}/conductor/product.md +15 -0
  5. {chutils-3.3.1 → chutils-3.4.1}/conductor/tech-stack.md +5 -0
  6. {chutils-3.3.1/conductor/archive/dev_clean_20260707 → chutils-3.4.1/conductor/tracks/ai_context_opt_20260728}/index.md +1 -1
  7. chutils-3.4.1/conductor/tracks/ai_context_opt_20260728/metadata.json +8 -0
  8. chutils-3.4.1/conductor/tracks/ai_context_opt_20260728/plan.md +17 -0
  9. chutils-3.4.1/conductor/tracks/ai_context_opt_20260728/spec.md +23 -0
  10. {chutils-3.3.1/conductor/archive/http_streaming_20260720 → chutils-3.4.1/conductor/tracks/async_lifecycle_20260728}/index.md +1 -1
  11. chutils-3.4.1/conductor/tracks/async_lifecycle_20260728/metadata.json +8 -0
  12. chutils-3.4.1/conductor/tracks/async_lifecycle_20260728/plan.md +16 -0
  13. chutils-3.4.1/conductor/tracks/async_lifecycle_20260728/spec.md +26 -0
  14. {chutils-3.3.1/conductor/archive/profile_warmer_20260720 → chutils-3.4.1/conductor/tracks/browser_profiles_20260728}/index.md +1 -1
  15. chutils-3.4.1/conductor/tracks/browser_profiles_20260728/metadata.json +8 -0
  16. chutils-3.4.1/conductor/tracks/browser_profiles_20260728/plan.md +23 -0
  17. chutils-3.4.1/conductor/tracks/browser_profiles_20260728/spec.md +33 -0
  18. chutils-3.4.1/conductor/tracks/queue_monitoring_20260728/index.md +5 -0
  19. chutils-3.4.1/conductor/tracks/queue_monitoring_20260728/metadata.json +8 -0
  20. chutils-3.4.1/conductor/tracks/queue_monitoring_20260728/plan.md +16 -0
  21. chutils-3.4.1/conductor/tracks/queue_monitoring_20260728/spec.md +26 -0
  22. {chutils-3.3.1/conductor/archive/store_20260702 → chutils-3.4.1/conductor/tracks/stream_crypto_20260728}/index.md +1 -1
  23. chutils-3.4.1/conductor/tracks/stream_crypto_20260728/metadata.json +8 -0
  24. chutils-3.4.1/conductor/tracks/stream_crypto_20260728/plan.md +16 -0
  25. chutils-3.4.1/conductor/tracks/stream_crypto_20260728/spec.md +22 -0
  26. chutils-3.4.1/conductor/tracks.md +37 -0
  27. {chutils-3.3.1 → chutils-3.4.1}/docs/api.md +63 -0
  28. {chutils-3.3.1 → chutils-3.4.1}/docs/cli/dev.md +44 -0
  29. {chutils-3.3.1 → chutils-3.4.1}/docs/dependencies.md +21 -13
  30. chutils-3.4.1/docs/qt.md +128 -0
  31. {chutils-3.3.1 → chutils-3.4.1}/docs/scraping.md +30 -0
  32. chutils-3.4.1/examples/22_qt_logging.py +41 -0
  33. chutils-3.4.1/examples/23_qt_async.py +58 -0
  34. chutils-3.4.1/examples/24_qt_typed_signals.py +73 -0
  35. chutils-3.4.1/examples/concurrency_scraping_usage.py +50 -0
  36. {chutils-3.3.1 → chutils-3.4.1}/project_index.json +8990 -4950
  37. {chutils-3.3.1 → chutils-3.4.1}/pyproject.toml +10 -1
  38. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/__init__.py +7 -0
  39. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/audit/api.py +2 -1
  40. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/cache/decorator.py +3 -3
  41. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/__init__.py +58 -0
  42. chutils-3.4.1/src/chutils/commands/dev/watch.py +105 -0
  43. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/__init__.py +56 -0
  44. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/core.py +116 -1
  45. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/getters.py +25 -1
  46. chutils-3.4.1/src/chutils/config/integrations.py +124 -0
  47. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/manager.py +104 -1
  48. chutils-3.4.1/src/chutils/config/sse.py +258 -0
  49. chutils-3.4.1/src/chutils/config/webhook_server.py +217 -0
  50. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/__init__.py +9 -0
  51. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/changelog_parser.py +13 -14
  52. chutils-3.4.1/src/chutils/dev/runners.py +202 -0
  53. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/scaffold.py +17 -18
  54. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/version_detector.py +292 -292
  55. chutils-3.4.1/src/chutils/dev/watcher.py +424 -0
  56. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/di/container.py +6 -7
  57. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/lifecycle.py +41 -10
  58. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/logger/__init__.py +9 -1
  59. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/logger/masking.py +55 -0
  60. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/metrics/timer.py +2 -1
  61. chutils-3.4.1/src/chutils/qt/__init__.py +49 -0
  62. chutils-3.4.1/src/chutils/qt/asyncio.py +145 -0
  63. chutils-3.4.1/src/chutils/qt/logging.py +87 -0
  64. chutils-3.4.1/src/chutils/qt/shim.py +91 -0
  65. chutils-3.4.1/src/chutils/qt/signals.py +179 -0
  66. chutils-3.4.1/src/chutils/qt/widgets.py +95 -0
  67. chutils-3.4.1/src/chutils/scraping/__init__.py +5 -0
  68. chutils-3.4.1/src/chutils/scraping/concurrency/__init__.py +19 -0
  69. chutils-3.4.1/src/chutils/scraping/concurrency/base.py +63 -0
  70. chutils-3.4.1/src/chutils/scraping/concurrency/limiter.py +114 -0
  71. chutils-3.4.1/src/chutils/scraping/concurrency/models.py +41 -0
  72. chutils-3.4.1/src/chutils/scraping/concurrency/pool.py +128 -0
  73. chutils-3.4.1/src/chutils/scraping/concurrency/queues.py +391 -0
  74. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/store/backends/redis.py +2 -1
  75. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/store/decorator.py +2 -1
  76. chutils-3.4.1/tests/unit/cli/test_cli_dev_watch.py +118 -0
  77. chutils-3.4.1/tests/unit/config/test_config_integrations.py +95 -0
  78. chutils-3.4.1/tests/unit/config/test_config_sse.py +155 -0
  79. chutils-3.4.1/tests/unit/config/test_config_sse_integration.py +79 -0
  80. chutils-3.4.1/tests/unit/config/test_config_webhook.py +137 -0
  81. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_lifecycle.py +32 -0
  82. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_changelog_parser.py +12 -0
  83. chutils-3.4.1/tests/unit/dev/test_runners.py +101 -0
  84. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_version_detector.py +175 -175
  85. chutils-3.4.1/tests/unit/dev/test_watcher.py +135 -0
  86. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_masking.py +24 -0
  87. chutils-3.4.1/tests/unit/test_concurrency_imports.py +20 -0
  88. chutils-3.4.1/tests/unit/test_concurrency_limiter.py +43 -0
  89. chutils-3.4.1/tests/unit/test_concurrency_pool.py +58 -0
  90. chutils-3.4.1/tests/unit/test_concurrency_queues.py +161 -0
  91. chutils-3.4.1/tests/unit/test_config_alias_choices.py +45 -0
  92. chutils-3.4.1/tests/unit/test_config_fallback.py +72 -0
  93. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_db_operations.py +2 -1
  94. chutils-3.4.1/tests/unit/test_qt_asyncio.py +102 -0
  95. chutils-3.4.1/tests/unit/test_qt_logging.py +117 -0
  96. chutils-3.4.1/tests/unit/test_qt_shim.py +75 -0
  97. chutils-3.4.1/tests/unit/test_qt_signals.py +111 -0
  98. chutils-3.4.1/tests/unit/test_qt_widgets.py +127 -0
  99. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_store_backends_external.py +6 -1
  100. {chutils-3.3.1 → chutils-3.4.1}/uv.lock +331 -184
  101. chutils-3.3.1/conductor/archive/cache_invalidation_20260714/index.md +0 -5
  102. chutils-3.3.1/conductor/archive/cache_invalidation_20260714/metadata.json +0 -8
  103. chutils-3.3.1/conductor/archive/cache_invalidation_20260714/plan.md +0 -17
  104. chutils-3.3.1/conductor/archive/cache_invalidation_20260714/spec.md +0 -28
  105. chutils-3.3.1/conductor/archive/dev_clean_20260707/metadata.json +0 -8
  106. chutils-3.3.1/conductor/archive/dev_clean_20260707/plan.md +0 -44
  107. chutils-3.3.1/conductor/archive/dev_clean_20260707/spec.md +0 -55
  108. chutils-3.3.1/conductor/archive/http_streaming_20260720/metadata.json +0 -8
  109. chutils-3.3.1/conductor/archive/http_streaming_20260720/plan.md +0 -34
  110. chutils-3.3.1/conductor/archive/http_streaming_20260720/spec.md +0 -36
  111. chutils-3.3.1/conductor/archive/nodriver_interactions_20260720/index.md +0 -5
  112. chutils-3.3.1/conductor/archive/nodriver_interactions_20260720/metadata.json +0 -8
  113. chutils-3.3.1/conductor/archive/nodriver_interactions_20260720/plan.md +0 -30
  114. chutils-3.3.1/conductor/archive/nodriver_interactions_20260720/spec.md +0 -36
  115. chutils-3.3.1/conductor/archive/profile_warmer_20260720/metadata.json +0 -8
  116. chutils-3.3.1/conductor/archive/profile_warmer_20260720/plan.md +0 -31
  117. chutils-3.3.1/conductor/archive/profile_warmer_20260720/spec.md +0 -39
  118. chutils-3.3.1/conductor/archive/store_20260702/metadata.json +0 -8
  119. chutils-3.3.1/conductor/archive/store_20260702/plan.md +0 -32
  120. chutils-3.3.1/conductor/archive/store_20260702/spec.md +0 -42
  121. chutils-3.3.1/conductor/tracks/ai_manifests_few_shot_20260713/index.md +0 -5
  122. chutils-3.3.1/conductor/tracks/ai_manifests_few_shot_20260713/metadata.json +0 -8
  123. chutils-3.3.1/conductor/tracks/ai_manifests_few_shot_20260713/plan.md +0 -47
  124. chutils-3.3.1/conductor/tracks/ai_manifests_few_shot_20260713/spec.md +0 -111
  125. chutils-3.3.1/conductor/tracks/config_remote_push_20260702/index.md +0 -5
  126. chutils-3.3.1/conductor/tracks/config_remote_push_20260702/metadata.json +0 -8
  127. chutils-3.3.1/conductor/tracks/config_remote_push_20260702/plan.md +0 -29
  128. chutils-3.3.1/conductor/tracks/config_remote_push_20260702/spec.md +0 -47
  129. chutils-3.3.1/conductor/tracks/dev_watch_20260702/index.md +0 -5
  130. chutils-3.3.1/conductor/tracks/dev_watch_20260702/metadata.json +0 -8
  131. chutils-3.3.1/conductor/tracks/dev_watch_20260702/plan.md +0 -29
  132. chutils-3.3.1/conductor/tracks/dev_watch_20260702/spec.md +0 -52
  133. chutils-3.3.1/conductor/tracks/docstring_audit_20260521/index.md +0 -5
  134. chutils-3.3.1/conductor/tracks/docstring_audit_20260521/metadata.json +0 -8
  135. chutils-3.3.1/conductor/tracks/docstring_audit_20260521/plan.md +0 -38
  136. chutils-3.3.1/conductor/tracks/docstring_audit_20260521/spec.md +0 -34
  137. chutils-3.3.1/conductor/tracks/fallback_alias_20260707/index.md +0 -5
  138. chutils-3.3.1/conductor/tracks/fallback_alias_20260707/metadata.json +0 -8
  139. chutils-3.3.1/conductor/tracks/fallback_alias_20260707/plan.md +0 -27
  140. chutils-3.3.1/conductor/tracks/fallback_alias_20260707/spec.md +0 -37
  141. chutils-3.3.1/conductor/tracks/qt_integration_20260521/index.md +0 -5
  142. chutils-3.3.1/conductor/tracks/qt_integration_20260521/metadata.json +0 -8
  143. chutils-3.3.1/conductor/tracks/qt_integration_20260521/plan.md +0 -30
  144. chutils-3.3.1/conductor/tracks/qt_integration_20260521/spec.md +0 -31
  145. chutils-3.3.1/conductor/tracks/qt_typed_signals_20260521/index.md +0 -5
  146. chutils-3.3.1/conductor/tracks/qt_typed_signals_20260521/metadata.json +0 -8
  147. chutils-3.3.1/conductor/tracks/qt_typed_signals_20260521/plan.md +0 -27
  148. chutils-3.3.1/conductor/tracks/qt_typed_signals_20260521/spec.md +0 -22
  149. chutils-3.3.1/conductor/tracks/scraping_concurrency_20260707/index.md +0 -5
  150. chutils-3.3.1/conductor/tracks/scraping_concurrency_20260707/metadata.json +0 -8
  151. chutils-3.3.1/conductor/tracks/scraping_concurrency_20260707/plan.md +0 -45
  152. chutils-3.3.1/conductor/tracks/scraping_concurrency_20260707/spec.md +0 -46
  153. chutils-3.3.1/conductor/tracks.md +0 -34
  154. chutils-3.3.1/src/chutils/scraping/__init__.py +0 -4
  155. {chutils-3.3.1 → chutils-3.4.1}/.chutilsignore +0 -0
  156. {chutils-3.3.1 → chutils-3.4.1}/.gitattributes +0 -0
  157. {chutils-3.3.1 → chutils-3.4.1}/.github/workflows/ci.yml +0 -0
  158. {chutils-3.3.1 → chutils-3.4.1}/.github/workflows/publish-docs.yml +0 -0
  159. {chutils-3.3.1 → chutils-3.4.1}/.gitignore +0 -0
  160. {chutils-3.3.1 → chutils-3.4.1}/CODE_OF_CONDUCT.md +0 -0
  161. {chutils-3.3.1 → chutils-3.4.1}/CONTRIBUTING.md +0 -0
  162. {chutils-3.3.1 → chutils-3.4.1}/GEMINI.md +0 -0
  163. {chutils-3.3.1 → chutils-3.4.1}/LICENSE +0 -0
  164. {chutils-3.3.1 → chutils-3.4.1}/README.md +0 -0
  165. {chutils-3.3.1 → chutils-3.4.1}/benchmarks/cold_start.py +0 -0
  166. {chutils-3.3.1 → chutils-3.4.1}/conductor/.gitignore +0 -0
  167. {chutils-3.3.1 → chutils-3.4.1}/conductor/GEMINI.md +0 -0
  168. {chutils-3.3.1 → chutils-3.4.1}/conductor/code_styleguides/python.md +0 -0
  169. {chutils-3.3.1 → chutils-3.4.1}/conductor/index.md +0 -0
  170. {chutils-3.3.1 → chutils-3.4.1}/conductor/product-guidelines.md +0 -0
  171. {chutils-3.3.1 → chutils-3.4.1}/conductor/setup_state.json +0 -0
  172. {chutils-3.3.1 → chutils-3.4.1}/conductor/workflow.md +0 -0
  173. {chutils-3.3.1 → chutils-3.4.1}/docs/CODE_OF_CONDUCT_RU.md +0 -0
  174. {chutils-3.3.1 → chutils-3.4.1}/docs/CONTRIBUTING_RU.md +0 -0
  175. {chutils-3.3.1 → chutils-3.4.1}/docs/INTEGRATION_AI.md +0 -0
  176. {chutils-3.3.1 → chutils-3.4.1}/docs/README_RU.md +0 -0
  177. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/README.md +0 -0
  178. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/configuration/README.md +0 -0
  179. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/configuration/bad_pattern.py +0 -0
  180. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/configuration/good_pattern.py +0 -0
  181. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/error_handling/README.md +0 -0
  182. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/error_handling/bad_pattern.py +0 -0
  183. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/error_handling/good_pattern.py +0 -0
  184. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/logging/README.md +0 -0
  185. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/logging/bad_pattern.py +0 -0
  186. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/logging/good_pattern.py +0 -0
  187. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/optional_deps/README.md +0 -0
  188. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/optional_deps/bad_pattern.py +0 -0
  189. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/optional_deps/good_pattern.py +0 -0
  190. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/secrets/README.md +0 -0
  191. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/secrets/bad_pattern.py +0 -0
  192. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_examples/secrets/good_pattern.py +0 -0
  193. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_hints.md +0 -0
  194. {chutils-3.3.1 → chutils-3.4.1}/docs/ai_lint.md +0 -0
  195. {chutils-3.3.1 → chutils-3.4.1}/docs/audit.md +0 -0
  196. {chutils-3.3.1 → chutils-3.4.1}/docs/captcha.md +0 -0
  197. {chutils-3.3.1 → chutils-3.4.1}/docs/cli/config.md +0 -0
  198. {chutils-3.3.1 → chutils-3.4.1}/docs/cli/db.md +0 -0
  199. {chutils-3.3.1 → chutils-3.4.1}/docs/cli/env.md +0 -0
  200. {chutils-3.3.1 → chutils-3.4.1}/docs/cli/index.md +0 -0
  201. {chutils-3.3.1 → chutils-3.4.1}/docs/cli/init.md +0 -0
  202. {chutils-3.3.1 → chutils-3.4.1}/docs/cli/pypi.md +0 -0
  203. {chutils-3.3.1 → chutils-3.4.1}/docs/cli/secrets.md +0 -0
  204. {chutils-3.3.1 → chutils-3.4.1}/docs/cli/show_paths.md +0 -0
  205. {chutils-3.3.1 → chutils-3.4.1}/docs/cli/template.md +0 -0
  206. {chutils-3.3.1 → chutils-3.4.1}/docs/cli/validate.md +0 -0
  207. {chutils-3.3.1 → chutils-3.4.1}/docs/custom_config_providers.md +0 -0
  208. {chutils-3.3.1 → chutils-3.4.1}/docs/http.md +0 -0
  209. {chutils-3.3.1 → chutils-3.4.1}/docs/index.md +0 -0
  210. {chutils-3.3.1 → chutils-3.4.1}/docs/migration.md +0 -0
  211. {chutils-3.3.1 → chutils-3.4.1}/docs/plugins.md +0 -0
  212. {chutils-3.3.1 → chutils-3.4.1}/docs/recipes.md +0 -0
  213. {chutils-3.3.1 → chutils-3.4.1}/docs/store.md +0 -0
  214. {chutils-3.3.1 → chutils-3.4.1}/docs/testing.md +0 -0
  215. {chutils-3.3.1 → chutils-3.4.1}/docs/web.md +0 -0
  216. {chutils-3.3.1 → chutils-3.4.1}/examples/.env +0 -0
  217. {chutils-3.3.1 → chutils-3.4.1}/examples/01_configuration.py +0 -0
  218. {chutils-3.3.1 → chutils-3.4.1}/examples/02_logging.py +0 -0
  219. {chutils-3.3.1 → chutils-3.4.1}/examples/03_secrets.py +0 -0
  220. {chutils-3.3.1 → chutils-3.4.1}/examples/04_full_example.py +0 -0
  221. {chutils-3.3.1 → chutils-3.4.1}/examples/05_different_log_levels.py +0 -0
  222. {chutils-3.3.1 → chutils-3.4.1}/examples/06_local_config_override.py +0 -0
  223. {chutils-3.3.1 → chutils-3.4.1}/examples/07_decorators_example.py +0 -0
  224. {chutils-3.3.1 → chutils-3.4.1}/examples/08_multiple_loggers_example.py +0 -0
  225. {chutils-3.3.1 → chutils-3.4.1}/examples/09_disable_keyring.py +0 -0
  226. {chutils-3.3.1 → chutils-3.4.1}/examples/10_universal_env_override.py +0 -0
  227. {chutils-3.3.1 → chutils-3.4.1}/examples/11_retry_decorator.py +0 -0
  228. {chutils-3.3.1 → chutils-3.4.1}/examples/12_secret_masking.py +0 -0
  229. {chutils-3.3.1 → chutils-3.4.1}/examples/13_pydantic_validation.py +0 -0
  230. {chutils-3.3.1 → chutils-3.4.1}/examples/15_context_logging.py +0 -0
  231. {chutils-3.3.1 → chutils-3.4.1}/examples/16_cloud_secret_managers.py +0 -0
  232. {chutils-3.3.1 → chutils-3.4.1}/examples/17_timeout_decorator.py +0 -0
  233. {chutils-3.3.1 → chutils-3.4.1}/examples/18_config_hot_reload.py +0 -0
  234. {chutils-3.3.1 → chutils-3.4.1}/examples/19_remote_config.py +0 -0
  235. {chutils-3.3.1 → chutils-3.4.1}/examples/20_opentelemetry_tracing.py +0 -0
  236. {chutils-3.3.1 → chutils-3.4.1}/examples/21_config_diagnostics.py +0 -0
  237. {chutils-3.3.1 → chutils-3.4.1}/examples/22_circuit_breaker_decorator.py +0 -0
  238. {chutils-3.3.1 → chutils-3.4.1}/examples/22_safe_path_resolution.py +0 -0
  239. {chutils-3.3.1 → chutils-3.4.1}/examples/23_event_bus.py +0 -0
  240. {chutils-3.3.1 → chutils-3.4.1}/examples/24_task_scheduler.py +0 -0
  241. {chutils-3.3.1 → chutils-3.4.1}/examples/25_testing_fixtures_example.py +0 -0
  242. {chutils-3.3.1 → chutils-3.4.1}/examples/26_metrics_prometheus.py +0 -0
  243. {chutils-3.3.1 → chutils-3.4.1}/examples/27_rate_limiting.py +0 -0
  244. {chutils-3.3.1 → chutils-3.4.1}/examples/28_dependency_injection.py +0 -0
  245. {chutils-3.3.1 → chutils-3.4.1}/examples/captcha_solvers_usage.py +0 -0
  246. {chutils-3.3.1 → chutils-3.4.1}/examples/config.yml +0 -0
  247. {chutils-3.3.1 → chutils-3.4.1}/examples/scraping_humanize_usage.py +0 -0
  248. {chutils-3.3.1 → chutils-3.4.1}/examples/web_client_usage.py +0 -0
  249. {chutils-3.3.1 → chutils-3.4.1}/mkdocs.yml +0 -0
  250. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/__init__.pyi +0 -0
  251. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/__main__.py +0 -0
  252. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/antigravity.md +0 -0
  253. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/audit/__init__.py +0 -0
  254. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/audit/_hash.py +0 -0
  255. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/audit/backends/__init__.py +0 -0
  256. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/audit/backends/base.py +0 -0
  257. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/audit/backends/file.py +0 -0
  258. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/audit/backends/postgres.py +0 -0
  259. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/audit/backends/sqlite.py +0 -0
  260. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/audit/schema.py +0 -0
  261. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/cache/__init__.py +0 -0
  262. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/cache/base.py +0 -0
  263. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/cache/in_memory.py +0 -0
  264. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/cache/utils.py +0 -0
  265. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/cli.py +0 -0
  266. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/cli_booster.py +0 -0
  267. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/cli_utils.py +0 -0
  268. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/__init__.py +0 -0
  269. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/base.py +0 -0
  270. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/config.py +0 -0
  271. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/db.py +0 -0
  272. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/ai_lint.py +0 -0
  273. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/base.py +0 -0
  274. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/chat_context.py +0 -0
  275. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/clean.py +0 -0
  276. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/dashboard.py +0 -0
  277. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/diagnostics.py +0 -0
  278. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/few_shot.py +0 -0
  279. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/generate_context.py +0 -0
  280. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/hooks.py +0 -0
  281. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/mock.py +0 -0
  282. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/profile_imports.py +0 -0
  283. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/scaffold.py +0 -0
  284. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/setup_github_actions.py +0 -0
  285. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/dev/sync_env.py +0 -0
  286. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/env.py +0 -0
  287. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/init.py +0 -0
  288. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/paths.py +0 -0
  289. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/pypi.py +0 -0
  290. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/secrets.py +0 -0
  291. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/template.py +0 -0
  292. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/utils.py +0 -0
  293. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/commands/validate.py +0 -0
  294. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/GEMINI.md +0 -0
  295. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/ast_fallback_parser.py +0 -0
  296. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/custom_providers.py +0 -0
  297. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/dev.py +0 -0
  298. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/diagnostics.py +0 -0
  299. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/generator.py +0 -0
  300. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/providers.py +0 -0
  301. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/schema.py +0 -0
  302. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/utils.py +0 -0
  303. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/config/watcher.py +0 -0
  304. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/context.py +0 -0
  305. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/crypto.py +0 -0
  306. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/db.py +0 -0
  307. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/decorators.py +0 -0
  308. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/ai_lint.py +0 -0
  309. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/ast_indexer.py +0 -0
  310. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/chat_context.py +0 -0
  311. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/cleaner.py +0 -0
  312. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/constants.py +0 -0
  313. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/dashboard/__init__.py +0 -0
  314. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/dashboard/indexer.py +0 -0
  315. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/dashboard/input.py +0 -0
  316. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/dashboard/tui.py +0 -0
  317. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/env_parser.py +0 -0
  318. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/env_sync.py +0 -0
  319. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/few_shot/__init__.py +0 -0
  320. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/few_shot/detector.py +0 -0
  321. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/few_shot/models.py +0 -0
  322. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/few_shot/renderer.py +0 -0
  323. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/few_shot/writer.py +0 -0
  324. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/github_actions.py +0 -0
  325. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/mock_server.py +0 -0
  326. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/models/__init__.py +0 -0
  327. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/models/base.py +0 -0
  328. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/models/index.py +0 -0
  329. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/models/node.py +0 -0
  330. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/models/symbol.py +0 -0
  331. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/profile_imports.py +0 -0
  332. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/project_metadata.py +0 -0
  333. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/rules/__init__.py +0 -0
  334. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/rules/api_map.py +0 -0
  335. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/rules/decomposition.py +0 -0
  336. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/rules/dependency_sync.py +0 -0
  337. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/rules/docstring.py +0 -0
  338. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/rules/env.py +0 -0
  339. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/rules/integration.py +0 -0
  340. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/rules/linter_coverage.py +0 -0
  341. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/rules/manifest.py +0 -0
  342. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/rules/security.py +0 -0
  343. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/rules/upgrade_check.py +0 -0
  344. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/dev/upgrade_client.py +0 -0
  345. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/di/__init__.py +0 -0
  346. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/di/__init__.pyi +0 -0
  347. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/diagnostics/__init__.py +0 -0
  348. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/diagnostics/manager.py +0 -0
  349. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/diagnostics/models.py +0 -0
  350. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/diagnostics/web.py +0 -0
  351. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/env.py +0 -0
  352. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/env.pyi +0 -0
  353. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/events/__init__.py +0 -0
  354. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/events/core.py +0 -0
  355. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/__init__.py +0 -0
  356. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/audit.py +0 -0
  357. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/base.py +0 -0
  358. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/cache.py +0 -0
  359. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/config.py +0 -0
  360. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/di.py +0 -0
  361. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/events.py +0 -0
  362. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/logger.py +0 -0
  363. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/resilience.py +0 -0
  364. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/secrets.py +0 -0
  365. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/system.py +0 -0
  366. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/validation.py +0 -0
  367. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/exceptions/watcher.py +0 -0
  368. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/features.py +0 -0
  369. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/fs.py +0 -0
  370. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/http/__init__.py +0 -0
  371. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/http/api.py +0 -0
  372. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/http/client.py +0 -0
  373. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/http/fallback.py +0 -0
  374. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/http/resilience.py +0 -0
  375. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/http/streaming.py +0 -0
  376. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/http/tracing.py +0 -0
  377. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/logger/GEMINI.md +0 -0
  378. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/logger/core.py +0 -0
  379. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/logger/formatters.py +0 -0
  380. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/logger/handlers.py +0 -0
  381. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/logger/internal/builder.py +0 -0
  382. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/logger/internal/levels.py +0 -0
  383. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/logger/internal/utils.py +0 -0
  384. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/metrics/__init__.py +0 -0
  385. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/metrics/base.py +0 -0
  386. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/metrics/in_memory.py +0 -0
  387. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/metrics/prometheus.py +0 -0
  388. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/plugins/__init__.py +0 -0
  389. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/plugins/core.py +0 -0
  390. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/plugins/interfaces.py +0 -0
  391. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/scraping/captcha/__init__.py +0 -0
  392. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/scraping/captcha/anticaptcha.py +0 -0
  393. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/scraping/captcha/base.py +0 -0
  394. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/scraping/captcha/capmonster.py +0 -0
  395. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/scraping/captcha/exceptions.py +0 -0
  396. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/scraping/captcha/rucaptcha.py +0 -0
  397. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/scraping/humanize/__init__.py +0 -0
  398. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/scraping/humanize/actions.py +0 -0
  399. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/scraping/humanize/antidetect.py +0 -0
  400. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/scraping/humanize/math_utils.py +0 -0
  401. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/scraping/humanize/warmer.py +0 -0
  402. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/secret_manager/GEMINI.md +0 -0
  403. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/secret_manager/__init__.py +0 -0
  404. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/secret_manager/core.py +0 -0
  405. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/secret_manager/providers/__init__.py +0 -0
  406. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/secret_manager/providers/aws.py +0 -0
  407. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/secret_manager/providers/base.py +0 -0
  408. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/secret_manager/providers/dotenv.py +0 -0
  409. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/secret_manager/providers/env.py +0 -0
  410. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/secret_manager/providers/gcp.py +0 -0
  411. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/secret_manager/providers/keyring_provider.py +0 -0
  412. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/store/__init__.py +0 -0
  413. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/store/backends/__init__.py +0 -0
  414. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/store/backends/base.py +0 -0
  415. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/store/backends/memcached.py +0 -0
  416. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/store/backends/memory.py +0 -0
  417. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/store/manager.py +0 -0
  418. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/tasks/__init__.py +0 -0
  419. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/tasks/__init__.pyi +0 -0
  420. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/tasks/core.py +0 -0
  421. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/testing/__init__.py +0 -0
  422. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/testing/fixtures.py +0 -0
  423. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/text.py +0 -0
  424. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/time.py +0 -0
  425. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/tracing.py +0 -0
  426. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/typing.py +0 -0
  427. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/validation.py +0 -0
  428. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/validation.pyi +0 -0
  429. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/web/__init__.py +0 -0
  430. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/web/client.py +0 -0
  431. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/web/proxy_pool.py +0 -0
  432. {chutils-3.3.1 → chutils-3.4.1}/src/chutils/web/user_agent.py +0 -0
  433. {chutils-3.3.1 → chutils-3.4.1}/tests/conftest.py +0 -0
  434. {chutils-3.3.1 → chutils-3.4.1}/tests/integration/__init__.py +0 -0
  435. {chutils-3.3.1 → chutils-3.4.1}/tests/integration/test_ai_lint_integration.py +0 -0
  436. {chutils-3.3.1 → chutils-3.4.1}/tests/integration/test_cli_e2e.py +0 -0
  437. {chutils-3.3.1 → chutils-3.4.1}/tests/integration/test_db_migrations.py +0 -0
  438. {chutils-3.3.1 → chutils-3.4.1}/tests/integration/test_event_loops.py +0 -0
  439. {chutils-3.3.1 → chutils-3.4.1}/tests/integration/test_examples.py +0 -0
  440. {chutils-3.3.1 → chutils-3.4.1}/tests/integration/test_hooks_integration.py +0 -0
  441. {chutils-3.3.1 → chutils-3.4.1}/tests/integration/test_masking_integration.py +0 -0
  442. {chutils-3.3.1 → chutils-3.4.1}/tests/integration/test_otel_tracing.py +0 -0
  443. {chutils-3.3.1 → chutils-3.4.1}/tests/integration/test_remote_config_integration.py +0 -0
  444. {chutils-3.3.1 → chutils-3.4.1}/tests/integration/test_setup_github_actions_integration.py +0 -0
  445. {chutils-3.3.1 → chutils-3.4.1}/tests/manual/manual_test_cli_booster.py +0 -0
  446. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/conftest.py +0 -0
  447. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli.py +0 -0
  448. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_booster.py +0 -0
  449. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_config.py +0 -0
  450. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_config_cmd.py +0 -0
  451. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_config_schema.py +0 -0
  452. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_dev.py +0 -0
  453. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_dev_cmd.py +0 -0
  454. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_dev_tree.py +0 -0
  455. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_diagnostics.py +0 -0
  456. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_extras_suggestion.py +0 -0
  457. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_init.py +0 -0
  458. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_init_interactive.py +0 -0
  459. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_paths.py +0 -0
  460. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_pypi.py +0 -0
  461. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_rich.py +0 -0
  462. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_rich_width.py +0 -0
  463. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_secrets.py +0 -0
  464. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_setup_github_actions.py +0 -0
  465. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_template.py +0 -0
  466. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_utils_internal.py +0 -0
  467. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/cli/test_cli_validate.py +0 -0
  468. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config.py +0 -0
  469. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_ast_parser.py +0 -0
  470. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_dev.py +0 -0
  471. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_diagnostics.py +0 -0
  472. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_env.py +0 -0
  473. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_env_loading.py +0 -0
  474. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_generator.py +0 -0
  475. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_json.py +0 -0
  476. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_pydantic.py +0 -0
  477. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_required.py +0 -0
  478. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_schema.py +0 -0
  479. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_tracing.py +0 -0
  480. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_universal_env.py +0 -0
  481. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_utils.py +0 -0
  482. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_validation_group.py +0 -0
  483. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_config_watcher.py +0 -0
  484. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_custom_config_providers.py +0 -0
  485. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_priority_unification.py +0 -0
  486. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/config/test_remote_config.py +0 -0
  487. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_ast_indexer.py +0 -0
  488. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_ast_indexer_abstract.py +0 -0
  489. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_ast_indexer_graph.py +0 -0
  490. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_ast_indexer_layers.py +0 -0
  491. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_ast_indexer_metadata.py +0 -0
  492. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_cache.py +0 -0
  493. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_dev_models.py +0 -0
  494. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_exceptions.py +0 -0
  495. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_features.py +0 -0
  496. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_fs.py +0 -0
  497. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_thread_safety.py +0 -0
  498. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/core/test_time.py +0 -0
  499. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/decorators/test_decorator_circuit_breaker.py +0 -0
  500. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/decorators/test_decorator_retry.py +0 -0
  501. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/decorators/test_decorator_timeout.py +0 -0
  502. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/decorators/test_decorators.py +0 -0
  503. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/decorators/test_rate_limit.py +0 -0
  504. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_ai_lint.py +0 -0
  505. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_ai_lint_staged.py +0 -0
  506. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_chat_context.py +0 -0
  507. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_cleaner.py +0 -0
  508. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_env_parser.py +0 -0
  509. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_env_sync.py +0 -0
  510. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_generate_few_shot.py +0 -0
  511. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_linter_coverage_rule.py +0 -0
  512. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_mock_server.py +0 -0
  513. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_scaffold.py +0 -0
  514. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_setup_github_actions.py +0 -0
  515. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_upgrade_check_rule.py +0 -0
  516. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/dev/test_upgrade_client.py +0 -0
  517. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/di/test_di.py +0 -0
  518. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/events/test_event_bus.py +0 -0
  519. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/conftest.py +0 -0
  520. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_basics.py +0 -0
  521. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_compression.py +0 -0
  522. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_config_sections.py +0 -0
  523. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_configuration.py +0 -0
  524. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_context.py +0 -0
  525. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_env_control.py +0 -0
  526. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_files.py +0 -0
  527. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_json_format.py +0 -0
  528. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_logger_rich_width.py +0 -0
  529. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_performance_security.py +0 -0
  530. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_rich.py +0 -0
  531. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/logger/test_rotation.py +0 -0
  532. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/metrics/test_metrics.py +0 -0
  533. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/plugins/test_integration.py +0 -0
  534. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/plugins/test_interfaces.py +0 -0
  535. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/plugins/test_plugins.py +0 -0
  536. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/secret_manager/test_secret_manager.py +0 -0
  537. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/secret_manager/test_secret_manager_env.py +0 -0
  538. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/secret_manager/test_secret_manager_providers.py +0 -0
  539. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/secret_manager/test_secrets_required.py +0 -0
  540. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/tasks/test_scheduler.py +0 -0
  541. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_ai_lint_ignore.py +0 -0
  542. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_anticaptcha.py +0 -0
  543. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_antidetect.py +0 -0
  544. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_async_web_client.py +0 -0
  545. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_audit.py +0 -0
  546. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_audit_phase2.py +0 -0
  547. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_capmonster.py +0 -0
  548. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_captcha_base.py +0 -0
  549. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_captcha_imports.py +0 -0
  550. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_cli_db.py +0 -0
  551. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_crypto.py +0 -0
  552. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_crypto_dependencies.py +0 -0
  553. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_dashboard.py +0 -0
  554. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_db_init.py +0 -0
  555. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_decorators_bulkhead.py +0 -0
  556. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_diagnostics.py +0 -0
  557. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_env.py +0 -0
  558. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_events_exception_group.py +0 -0
  559. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_http_api.py +0 -0
  560. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_http_client.py +0 -0
  561. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_http_fallback.py +0 -0
  562. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_http_resilience.py +0 -0
  563. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_http_streaming.py +0 -0
  564. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_http_tracing.py +0 -0
  565. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_humanize_math.py +0 -0
  566. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_install_hooks.py +0 -0
  567. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_minimal_imports.py +0 -0
  568. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_nodriver_humanize.py +0 -0
  569. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_playwright_humanize.py +0 -0
  570. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_profile_imports.py +0 -0
  571. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_profile_warmer.py +0 -0
  572. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_proxy_pool.py +0 -0
  573. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_rucaptcha.py +0 -0
  574. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_scraping_imports.py +0 -0
  575. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_selenium_humanize.py +0 -0
  576. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_store_integrations.py +0 -0
  577. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_store_manager.py +0 -0
  578. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_store_memory.py +0 -0
  579. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_text.py +0 -0
  580. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_text_dependencies.py +0 -0
  581. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_user_agent.py +0 -0
  582. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_validation.py +0 -0
  583. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_web_client.py +0 -0
  584. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/test_web_imports.py +0 -0
  585. {chutils-3.3.1 → chutils-3.4.1}/tests/unit/testing/test_fixtures.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chutils
3
- Version: 3.3.1
3
+ Version: 3.4.1
4
4
  Summary: Набор простых и удобных утилит для Python, который избавляет от рутины при работе с конфигурацией и логированием в новых проектах.
5
5
  Author-email: Chu4hel <sergeiivanov636@gmail.com>
6
6
  License-Expression: MIT
@@ -54,6 +54,12 @@ Requires-Dist: opentelemetry-exporter-otlp>=1.41.1; extra == 'otel'
54
54
  Requires-Dist: opentelemetry-sdk>=1.41.1; extra == 'otel'
55
55
  Provides-Extra: pydantic
56
56
  Requires-Dist: pydantic<3.0.0,>=2.13.4; extra == 'pydantic'
57
+ Provides-Extra: qt
58
+ Requires-Dist: pyqt6>=6.6.0; extra == 'qt'
59
+ Provides-Extra: qt-pyside
60
+ Requires-Dist: pyside6>=6.6.0; extra == 'qt-pyside'
61
+ Provides-Extra: redis
62
+ Requires-Dist: redis>=5.0.0; extra == 'redis'
57
63
  Provides-Extra: rich
58
64
  Requires-Dist: rich>=15.0.0; extra == 'rich'
59
65
  Provides-Extra: scraping
@@ -8,6 +8,9 @@
8
8
 
9
9
  # При изменении любого файла конфигурации — обновить docs/api.md
10
10
  "src/chutils/config/**/*.py" = ["docs/api.md"]
11
+ "new:src/chutils/config/sse.py" = ["docs/api.md"]
12
+ "new:src/chutils/config/webhook_server.py" = ["docs/api.md"]
13
+ "new:src/chutils/config/integrations.py" = ["docs/api.md"]
11
14
 
12
15
  # При изменении провайдеров конфигурации — обновить специализированную документацию
13
16
  "new:src/chutils/config/custom_providers.py" = ["docs/custom_config_providers.md"]