chutils 3.3.0__tar.gz → 3.4.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.
- {chutils-3.3.0 → chutils-3.4.0}/PKG-INFO +7 -1
- {chutils-3.3.0 → chutils-3.4.0}/ai-lint.toml +3 -0
- {chutils-3.3.0 → chutils-3.4.0}/api_map.md +233 -226
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/config_remote_push_20260702/plan.md +21 -21
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/dev_watch_20260702/plan.md +22 -22
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/fallback_alias_20260707/plan.md +22 -22
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/qt_integration_20260521/plan.md +19 -19
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/qt_typed_signals_20260521/plan.md +16 -16
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/scraping_concurrency_20260707/plan.md +34 -34
- {chutils-3.3.0 → chutils-3.4.0}/conductor/product.md +15 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/tech-stack.md +5 -0
- chutils-3.4.0/conductor/tracks.md +7 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/api.md +63 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/cli/dev.md +44 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/dependencies.md +15 -12
- {chutils-3.3.0 → chutils-3.4.0}/docs/http.md +154 -154
- chutils-3.4.0/docs/qt.md +128 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/scraping.md +30 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/store.md +98 -98
- chutils-3.4.0/examples/22_qt_logging.py +41 -0
- chutils-3.4.0/examples/23_qt_async.py +58 -0
- chutils-3.4.0/examples/24_qt_typed_signals.py +73 -0
- chutils-3.4.0/examples/concurrency_scraping_usage.py +50 -0
- {chutils-3.3.0 → chutils-3.4.0}/project_index.json +8563 -4523
- {chutils-3.3.0 → chutils-3.4.0}/pyproject.toml +10 -1
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/__init__.py +7 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/__init__.pyi +9 -4
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/__init__.py +58 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/clean.py +124 -124
- chutils-3.4.0/src/chutils/commands/dev/watch.py +105 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/__init__.py +56 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/core.py +116 -1
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/getters.py +50 -16
- chutils-3.4.0/src/chutils/config/integrations.py +124 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/manager.py +104 -1
- chutils-3.4.0/src/chutils/config/sse.py +258 -0
- chutils-3.4.0/src/chutils/config/webhook_server.py +217 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/crypto.py +19 -4
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/__init__.py +9 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/changelog_parser.py +13 -14
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/cleaner.py +221 -221
- chutils-3.4.0/src/chutils/dev/runners.py +201 -0
- chutils-3.4.0/src/chutils/dev/version_detector.py +292 -0
- chutils-3.4.0/src/chutils/dev/watcher.py +424 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/di/__init__.pyi +39 -39
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/http/streaming.py +529 -529
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/lifecycle.py +7 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/logger/core.py +5 -2
- chutils-3.4.0/src/chutils/qt/__init__.py +49 -0
- chutils-3.4.0/src/chutils/qt/asyncio.py +141 -0
- chutils-3.4.0/src/chutils/qt/logging.py +87 -0
- chutils-3.4.0/src/chutils/qt/shim.py +90 -0
- chutils-3.4.0/src/chutils/qt/signals.py +179 -0
- chutils-3.4.0/src/chutils/qt/widgets.py +95 -0
- chutils-3.4.0/src/chutils/scraping/__init__.py +5 -0
- chutils-3.4.0/src/chutils/scraping/concurrency/__init__.py +19 -0
- chutils-3.4.0/src/chutils/scraping/concurrency/base.py +63 -0
- chutils-3.4.0/src/chutils/scraping/concurrency/limiter.py +114 -0
- chutils-3.4.0/src/chutils/scraping/concurrency/models.py +41 -0
- chutils-3.4.0/src/chutils/scraping/concurrency/pool.py +128 -0
- chutils-3.4.0/src/chutils/scraping/concurrency/queues.py +387 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/scraping/humanize/__init__.py +38 -38
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/scraping/humanize/antidetect.py +221 -221
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/scraping/humanize/warmer.py +204 -204
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/store/__init__.py +10 -10
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/store/backends/__init__.py +11 -11
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/store/backends/base.py +131 -131
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/store/backends/memcached.py +211 -211
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/store/backends/memory.py +156 -156
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/store/backends/redis.py +191 -191
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/store/decorator.py +84 -84
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/store/manager.py +351 -351
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/tasks/core.py +15 -14
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/time.py +15 -5
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/validation.py +5 -0
- chutils-3.4.0/tests/unit/cli/test_cli_dev_watch.py +118 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_init_interactive.py +76 -76
- chutils-3.4.0/tests/unit/config/test_config_integrations.py +95 -0
- chutils-3.4.0/tests/unit/config/test_config_sse.py +155 -0
- chutils-3.4.0/tests/unit/config/test_config_sse_integration.py +79 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_validation_group.py +11 -0
- chutils-3.4.0/tests/unit/config/test_config_webhook.py +137 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_time.py +7 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_changelog_parser.py +12 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_cleaner.py +188 -188
- chutils-3.4.0/tests/unit/dev/test_runners.py +101 -0
- chutils-3.4.0/tests/unit/dev/test_version_detector.py +175 -0
- chutils-3.4.0/tests/unit/dev/test_watcher.py +135 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_basics.py +8 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_configuration.py +2 -2
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/tasks/test_scheduler.py +19 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_antidetect.py +133 -133
- chutils-3.4.0/tests/unit/test_concurrency_imports.py +20 -0
- chutils-3.4.0/tests/unit/test_concurrency_limiter.py +43 -0
- chutils-3.4.0/tests/unit/test_concurrency_pool.py +58 -0
- chutils-3.4.0/tests/unit/test_concurrency_queues.py +143 -0
- chutils-3.4.0/tests/unit/test_config_alias_choices.py +45 -0
- chutils-3.4.0/tests/unit/test_config_fallback.py +72 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_crypto.py +17 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_http_streaming.py +385 -385
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_nodriver_humanize.py +147 -147
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_profile_warmer.py +132 -132
- chutils-3.4.0/tests/unit/test_qt_asyncio.py +100 -0
- chutils-3.4.0/tests/unit/test_qt_logging.py +115 -0
- chutils-3.4.0/tests/unit/test_qt_shim.py +75 -0
- chutils-3.4.0/tests/unit/test_qt_signals.py +109 -0
- chutils-3.4.0/tests/unit/test_qt_widgets.py +58 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_store_backends_external.py +112 -112
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_store_integrations.py +87 -87
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_store_manager.py +76 -76
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_store_memory.py +80 -80
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_validation.py +9 -0
- {chutils-3.3.0 → chutils-3.4.0}/uv.lock +149 -2
- chutils-3.3.0/conductor/archive/cache_invalidation_20260714/index.md +0 -5
- chutils-3.3.0/conductor/archive/cache_invalidation_20260714/metadata.json +0 -8
- chutils-3.3.0/conductor/archive/cache_invalidation_20260714/plan.md +0 -17
- chutils-3.3.0/conductor/archive/cache_invalidation_20260714/spec.md +0 -28
- chutils-3.3.0/conductor/archive/dev_clean_20260707/index.md +0 -5
- chutils-3.3.0/conductor/archive/dev_clean_20260707/metadata.json +0 -8
- chutils-3.3.0/conductor/archive/dev_clean_20260707/plan.md +0 -44
- chutils-3.3.0/conductor/archive/dev_clean_20260707/spec.md +0 -55
- chutils-3.3.0/conductor/archive/http_streaming_20260720/index.md +0 -5
- chutils-3.3.0/conductor/archive/http_streaming_20260720/metadata.json +0 -8
- chutils-3.3.0/conductor/archive/http_streaming_20260720/plan.md +0 -34
- chutils-3.3.0/conductor/archive/http_streaming_20260720/spec.md +0 -36
- chutils-3.3.0/conductor/archive/nodriver_interactions_20260720/index.md +0 -5
- chutils-3.3.0/conductor/archive/nodriver_interactions_20260720/metadata.json +0 -8
- chutils-3.3.0/conductor/archive/nodriver_interactions_20260720/plan.md +0 -30
- chutils-3.3.0/conductor/archive/nodriver_interactions_20260720/spec.md +0 -36
- chutils-3.3.0/conductor/archive/profile_warmer_20260720/index.md +0 -5
- chutils-3.3.0/conductor/archive/profile_warmer_20260720/metadata.json +0 -8
- chutils-3.3.0/conductor/archive/profile_warmer_20260720/plan.md +0 -31
- chutils-3.3.0/conductor/archive/profile_warmer_20260720/spec.md +0 -39
- chutils-3.3.0/conductor/archive/store_20260702/index.md +0 -5
- chutils-3.3.0/conductor/archive/store_20260702/metadata.json +0 -8
- chutils-3.3.0/conductor/archive/store_20260702/plan.md +0 -32
- chutils-3.3.0/conductor/archive/store_20260702/spec.md +0 -42
- chutils-3.3.0/conductor/tracks.md +0 -34
- chutils-3.3.0/src/chutils/dev/version_detector.py +0 -114
- chutils-3.3.0/src/chutils/scraping/__init__.py +0 -4
- chutils-3.3.0/tests/unit/dev/test_version_detector.py +0 -102
- {chutils-3.3.0 → chutils-3.4.0}/.chutilsignore +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/.gitattributes +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/.github/workflows/ci.yml +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/.github/workflows/publish-docs.yml +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/.gitignore +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/CODE_OF_CONDUCT.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/CONTRIBUTING.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/GEMINI.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/LICENSE +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/README.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/benchmarks/cold_start.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/.gitignore +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/GEMINI.md +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/config_remote_push_20260702/index.md +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/config_remote_push_20260702/metadata.json +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/config_remote_push_20260702/spec.md +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/dev_watch_20260702/index.md +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/dev_watch_20260702/metadata.json +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/dev_watch_20260702/spec.md +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/fallback_alias_20260707/index.md +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/fallback_alias_20260707/metadata.json +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/fallback_alias_20260707/spec.md +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/qt_integration_20260521/index.md +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/qt_integration_20260521/metadata.json +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/qt_integration_20260521/spec.md +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/qt_typed_signals_20260521/index.md +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/qt_typed_signals_20260521/metadata.json +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/qt_typed_signals_20260521/spec.md +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/scraping_concurrency_20260707/index.md +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/scraping_concurrency_20260707/metadata.json +0 -0
- {chutils-3.3.0/conductor/tracks → chutils-3.4.0/conductor/archive}/scraping_concurrency_20260707/spec.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/code_styleguides/python.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/index.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/product-guidelines.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/setup_state.json +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/tracks/ai_manifests_few_shot_20260713/index.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/tracks/ai_manifests_few_shot_20260713/metadata.json +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/tracks/ai_manifests_few_shot_20260713/plan.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/tracks/ai_manifests_few_shot_20260713/spec.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/tracks/docstring_audit_20260521/index.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/tracks/docstring_audit_20260521/metadata.json +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/tracks/docstring_audit_20260521/plan.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/tracks/docstring_audit_20260521/spec.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/conductor/workflow.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/CODE_OF_CONDUCT_RU.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/CONTRIBUTING_RU.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/INTEGRATION_AI.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/README_RU.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/README.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/configuration/README.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/configuration/bad_pattern.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/configuration/good_pattern.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/error_handling/README.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/error_handling/bad_pattern.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/error_handling/good_pattern.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/logging/README.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/logging/bad_pattern.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/logging/good_pattern.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/optional_deps/README.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/optional_deps/bad_pattern.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/optional_deps/good_pattern.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/secrets/README.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/secrets/bad_pattern.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_examples/secrets/good_pattern.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_hints.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/ai_lint.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/audit.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/captcha.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/cli/config.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/cli/db.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/cli/env.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/cli/index.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/cli/init.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/cli/pypi.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/cli/secrets.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/cli/show_paths.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/cli/template.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/cli/validate.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/custom_config_providers.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/index.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/migration.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/plugins.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/recipes.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/testing.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/docs/web.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/.env +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/01_configuration.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/02_logging.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/03_secrets.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/04_full_example.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/05_different_log_levels.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/06_local_config_override.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/07_decorators_example.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/08_multiple_loggers_example.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/09_disable_keyring.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/10_universal_env_override.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/11_retry_decorator.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/12_secret_masking.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/13_pydantic_validation.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/15_context_logging.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/16_cloud_secret_managers.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/17_timeout_decorator.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/18_config_hot_reload.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/19_remote_config.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/20_opentelemetry_tracing.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/21_config_diagnostics.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/22_circuit_breaker_decorator.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/22_safe_path_resolution.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/23_event_bus.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/24_task_scheduler.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/25_testing_fixtures_example.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/26_metrics_prometheus.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/27_rate_limiting.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/28_dependency_injection.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/captcha_solvers_usage.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/config.yml +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/scraping_humanize_usage.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/examples/web_client_usage.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/mkdocs.yml +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/__main__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/antigravity.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/audit/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/audit/_hash.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/audit/api.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/audit/backends/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/audit/backends/base.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/audit/backends/file.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/audit/backends/postgres.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/audit/backends/sqlite.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/audit/schema.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/cache/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/cache/base.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/cache/decorator.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/cache/in_memory.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/cache/utils.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/cli.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/cli_booster.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/cli_utils.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/base.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/config.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/db.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/ai_lint.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/base.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/chat_context.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/dashboard.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/diagnostics.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/few_shot.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/generate_context.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/hooks.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/mock.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/profile_imports.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/scaffold.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/setup_github_actions.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/dev/sync_env.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/env.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/init.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/paths.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/pypi.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/secrets.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/template.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/utils.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/commands/validate.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/GEMINI.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/ast_fallback_parser.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/custom_providers.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/dev.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/diagnostics.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/generator.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/providers.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/schema.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/utils.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/config/watcher.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/context.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/db.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/decorators.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/ai_lint.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/ast_indexer.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/chat_context.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/constants.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/dashboard/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/dashboard/indexer.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/dashboard/input.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/dashboard/tui.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/env_parser.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/env_sync.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/few_shot/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/few_shot/detector.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/few_shot/models.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/few_shot/renderer.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/few_shot/writer.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/github_actions.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/mock_server.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/models/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/models/base.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/models/index.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/models/node.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/models/symbol.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/profile_imports.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/project_metadata.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/rules/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/rules/api_map.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/rules/decomposition.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/rules/dependency_sync.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/rules/docstring.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/rules/env.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/rules/integration.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/rules/linter_coverage.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/rules/manifest.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/rules/security.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/rules/upgrade_check.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/scaffold.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/dev/upgrade_client.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/di/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/di/container.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/diagnostics/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/diagnostics/manager.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/diagnostics/models.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/diagnostics/web.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/env.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/env.pyi +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/events/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/events/core.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/audit.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/base.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/cache.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/config.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/di.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/events.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/logger.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/resilience.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/secrets.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/system.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/validation.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/exceptions/watcher.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/features.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/fs.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/http/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/http/api.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/http/client.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/http/fallback.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/http/resilience.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/http/tracing.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/logger/GEMINI.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/logger/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/logger/formatters.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/logger/handlers.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/logger/internal/builder.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/logger/internal/levels.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/logger/internal/utils.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/logger/masking.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/metrics/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/metrics/base.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/metrics/in_memory.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/metrics/prometheus.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/metrics/timer.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/plugins/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/plugins/core.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/plugins/interfaces.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/scraping/captcha/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/scraping/captcha/anticaptcha.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/scraping/captcha/base.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/scraping/captcha/capmonster.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/scraping/captcha/exceptions.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/scraping/captcha/rucaptcha.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/scraping/humanize/actions.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/scraping/humanize/math_utils.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/secret_manager/GEMINI.md +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/secret_manager/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/secret_manager/core.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/secret_manager/providers/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/secret_manager/providers/aws.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/secret_manager/providers/base.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/secret_manager/providers/dotenv.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/secret_manager/providers/env.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/secret_manager/providers/gcp.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/secret_manager/providers/keyring_provider.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/tasks/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/tasks/__init__.pyi +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/testing/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/testing/fixtures.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/text.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/tracing.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/typing.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/validation.pyi +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/web/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/web/client.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/web/proxy_pool.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/src/chutils/web/user_agent.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/conftest.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/integration/__init__.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/integration/test_ai_lint_integration.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/integration/test_cli_e2e.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/integration/test_db_migrations.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/integration/test_event_loops.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/integration/test_examples.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/integration/test_hooks_integration.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/integration/test_masking_integration.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/integration/test_otel_tracing.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/integration/test_remote_config_integration.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/integration/test_setup_github_actions_integration.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/manual/manual_test_cli_booster.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/conftest.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_booster.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_config.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_config_cmd.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_config_schema.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_dev.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_dev_cmd.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_dev_tree.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_diagnostics.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_extras_suggestion.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_init.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_paths.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_pypi.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_rich.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_rich_width.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_secrets.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_setup_github_actions.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_template.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_utils_internal.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/cli/test_cli_validate.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_ast_parser.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_dev.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_diagnostics.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_env.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_env_loading.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_generator.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_json.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_pydantic.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_required.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_schema.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_tracing.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_universal_env.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_utils.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_config_watcher.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_custom_config_providers.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_priority_unification.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/config/test_remote_config.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_ast_indexer.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_ast_indexer_abstract.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_ast_indexer_graph.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_ast_indexer_layers.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_ast_indexer_metadata.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_cache.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_dev_models.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_exceptions.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_features.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_fs.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_lifecycle.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/core/test_thread_safety.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/decorators/test_decorator_circuit_breaker.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/decorators/test_decorator_retry.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/decorators/test_decorator_timeout.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/decorators/test_decorators.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/decorators/test_rate_limit.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_ai_lint.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_ai_lint_staged.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_chat_context.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_env_parser.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_env_sync.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_generate_few_shot.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_linter_coverage_rule.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_mock_server.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_scaffold.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_setup_github_actions.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_upgrade_check_rule.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/dev/test_upgrade_client.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/di/test_di.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/events/test_event_bus.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/conftest.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_compression.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_config_sections.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_context.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_env_control.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_files.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_json_format.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_logger_rich_width.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_masking.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_performance_security.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_rich.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/logger/test_rotation.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/metrics/test_metrics.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/plugins/test_integration.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/plugins/test_interfaces.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/plugins/test_plugins.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/secret_manager/test_secret_manager.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/secret_manager/test_secret_manager_env.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/secret_manager/test_secret_manager_providers.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/secret_manager/test_secrets_required.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_ai_lint_ignore.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_anticaptcha.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_async_web_client.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_audit.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_audit_phase2.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_capmonster.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_captcha_base.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_captcha_imports.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_cli_db.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_crypto_dependencies.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_dashboard.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_db_init.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_db_operations.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_decorators_bulkhead.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_diagnostics.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_env.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_events_exception_group.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_http_api.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_http_client.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_http_fallback.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_http_resilience.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_http_tracing.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_humanize_math.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_install_hooks.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_minimal_imports.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_playwright_humanize.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_profile_imports.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_proxy_pool.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_rucaptcha.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_scraping_imports.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_selenium_humanize.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_text.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_text_dependencies.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_user_agent.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_web_client.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/tests/unit/test_web_imports.py +0 -0
- {chutils-3.3.0 → chutils-3.4.0}/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
|
+
Version: 3.4.0
|
|
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"]
|