chutils 2.8.0__tar.gz → 2.9.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. {chutils-2.8.0 → chutils-2.9.0}/PKG-INFO +12 -3
  2. {chutils-2.8.0 → chutils-2.9.0}/README.md +380 -380
  3. {chutils-2.8.0 → chutils-2.9.0}/pyproject.toml +12 -1
  4. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/__init__.py +53 -0
  5. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/__init__.pyi +173 -1
  6. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/cache/in_memory.py +39 -0
  7. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/commands/config.py +18 -0
  8. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/commands/dev.py +107 -62
  9. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/commands/init.py +2 -3
  10. chutils-2.9.0/src/chutils/config/ast_fallback_parser.py +137 -0
  11. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/config/core.py +52 -2
  12. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/config/getters.py +2 -2
  13. chutils-2.9.0/src/chutils/crypto.py +163 -0
  14. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/decorators.py +205 -1
  15. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/dev/ast_indexer.py +115 -8
  16. chutils-2.9.0/src/chutils/di/__init__.py +9 -0
  17. chutils-2.9.0/src/chutils/di/container.py +302 -0
  18. chutils-2.9.0/src/chutils/events/__init__.py +23 -0
  19. chutils-2.9.0/src/chutils/events/core.py +257 -0
  20. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/exceptions.py +47 -0
  21. chutils-2.9.0/src/chutils/fs.py +461 -0
  22. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/logger/__init__.py +2 -0
  23. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/logger/core.py +45 -0
  24. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/logger/internal/builder.py +22 -0
  25. chutils-2.9.0/src/chutils/metrics/__init__.py +135 -0
  26. chutils-2.9.0/src/chutils/metrics/base.py +43 -0
  27. chutils-2.9.0/src/chutils/metrics/in_memory.py +141 -0
  28. chutils-2.9.0/src/chutils/metrics/prometheus.py +88 -0
  29. chutils-2.9.0/src/chutils/metrics/timer.py +72 -0
  30. chutils-2.9.0/src/chutils/plugins/__init__.py +24 -0
  31. chutils-2.9.0/src/chutils/plugins/core.py +124 -0
  32. chutils-2.9.0/src/chutils/plugins/interfaces.py +74 -0
  33. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/secret_manager/core.py +17 -0
  34. chutils-2.9.0/src/chutils/tasks/__init__.py +22 -0
  35. chutils-2.9.0/src/chutils/tasks/core.py +254 -0
  36. chutils-2.9.0/src/chutils/text.py +58 -0
  37. chutils-2.8.0/src/chutils/fs.py +0 -179
  38. {chutils-2.8.0 → chutils-2.9.0}/LICENSE +0 -0
  39. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/__main__.py +0 -0
  40. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/cache/__init__.py +0 -0
  41. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/cache/base.py +0 -0
  42. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/cache/decorator.py +0 -0
  43. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/cache/utils.py +0 -0
  44. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/cli.py +0 -0
  45. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/cli_booster.py +0 -0
  46. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/cli_utils.py +0 -0
  47. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/commands/__init__.py +0 -0
  48. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/commands/base.py +0 -0
  49. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/commands/paths.py +0 -0
  50. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/commands/secrets.py +0 -0
  51. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/commands/template.py +0 -0
  52. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/commands/utils.py +0 -0
  53. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/commands/validate.py +0 -0
  54. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/config/GEMINI.md +0 -0
  55. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/config/__init__.py +0 -0
  56. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/config/dev.py +0 -0
  57. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/config/diagnostics.py +0 -0
  58. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/config/generator.py +0 -0
  59. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/config/manager.py +0 -0
  60. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/config/providers.py +0 -0
  61. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/config/schema.py +0 -0
  62. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/config/utils.py +0 -0
  63. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/config/watcher.py +0 -0
  64. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/context.py +0 -0
  65. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/dev/__init__.py +0 -0
  66. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/dev/ai_lint.py +0 -0
  67. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/dev/models.py +0 -0
  68. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/dev/rules.py +0 -0
  69. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/env.py +0 -0
  70. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/features.py +0 -0
  71. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/lifecycle.py +0 -0
  72. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/logger/GEMINI.md +0 -0
  73. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/logger/formatters.py +0 -0
  74. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/logger/handlers.py +0 -0
  75. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/logger/internal/levels.py +0 -0
  76. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/logger/internal/utils.py +0 -0
  77. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/logger/masking.py +0 -0
  78. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/secret_manager/GEMINI.md +0 -0
  79. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/secret_manager/__init__.py +0 -0
  80. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/secret_manager/providers.py +0 -0
  81. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/testing/__init__.py +0 -0
  82. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/testing/fixtures.py +0 -0
  83. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/time.py +0 -0
  84. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/tracing.py +0 -0
  85. {chutils-2.8.0 → chutils-2.9.0}/src/chutils/typing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chutils
3
- Version: 2.8.0
3
+ Version: 2.9.0
4
4
  Summary: Набор простых и удобных утилит для Python, который избавляет от рутины при работе с конфигурацией и логированием в новых проектах.
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -13,15 +13,20 @@ Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
15
  Classifier: Programming Language :: Python :: 3.14
16
+ Provides-Extra: crypto
16
17
  Provides-Extra: date
17
18
  Provides-Extra: full
18
19
  Provides-Extra: json
20
+ Provides-Extra: metrics
19
21
  Provides-Extra: otel
20
22
  Provides-Extra: pydantic
21
23
  Provides-Extra: rich
22
24
  Provides-Extra: secrets
23
25
  Provides-Extra: testing
26
+ Provides-Extra: text
24
27
  Provides-Extra: watch
28
+ Requires-Dist: cryptography (>=42.0.0) ; extra == "crypto"
29
+ Requires-Dist: cryptography (>=42.0.0) ; extra == "full"
25
30
  Requires-Dist: keyring (>=25.7.0)
26
31
  Requires-Dist: keyring (>=25.7.0) ; extra == "full"
27
32
  Requires-Dist: keyring (>=25.7.0) ; extra == "secrets"
@@ -31,6 +36,8 @@ Requires-Dist: opentelemetry-exporter-otlp (>=1.41.1) ; extra == "full"
31
36
  Requires-Dist: opentelemetry-exporter-otlp (>=1.41.1) ; extra == "otel"
32
37
  Requires-Dist: opentelemetry-sdk (>=1.41.1) ; extra == "full"
33
38
  Requires-Dist: opentelemetry-sdk (>=1.41.1) ; extra == "otel"
39
+ Requires-Dist: prometheus-client (>=0.20.0,<1.0.0) ; extra == "full"
40
+ Requires-Dist: prometheus-client (>=0.20.0,<1.0.0) ; extra == "metrics"
34
41
  Requires-Dist: pydantic (>=2.13.4) ; extra == "full"
35
42
  Requires-Dist: pydantic (>=2.13.4,<3.0.0) ; extra == "pydantic"
36
43
  Requires-Dist: pytest (>=8.0.0) ; (python_full_version < "3.10.0") and (extra == "full")
@@ -44,6 +51,8 @@ Requires-Dist: python-dotenv (>=1.2.2) ; python_full_version >= "3.10.0"
44
51
  Requires-Dist: python-json-logger (>=3.2.1) ; extra == "full"
45
52
  Requires-Dist: python-json-logger (>=3.2.1) ; extra == "json"
46
53
  Requires-Dist: pyyaml (>=6.0.3)
54
+ Requires-Dist: rapidfuzz (>=3.9.0) ; extra == "full"
55
+ Requires-Dist: rapidfuzz (>=3.9.0) ; extra == "text"
47
56
  Requires-Dist: rich (>=15.0.0) ; extra == "full"
48
57
  Requires-Dist: rich (>=15.0.0) ; extra == "rich"
49
58
  Requires-Dist: typing-extensions (>=4.15.0,<5.0.0)
@@ -217,10 +226,10 @@ To use this feature, install `watchdog`:
217
226
  1. Configure and use the logger:
218
227
 
219
228
  ```python
220
- from chutils import setup_logger, ChutilsLogger
229
+ from chutils import setup_logger_from_config, ChutilsLogger
221
230
 
222
231
  # Automatically reads settings from [Logging] section in config.yml
223
- logger: ChutilsLogger = setup_logger()
232
+ logger: ChutilsLogger = setup_logger_from_config()
224
233
 
225
234
  logger.info("Application started.")
226
235
  logger.devdebug("Deep debug message (level 9).")