detectkit 0.8.0__tar.gz → 0.8.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 (89) hide show
  1. {detectkit-0.8.0/detectkit.egg-info → detectkit-0.8.1}/PKG-INFO +1 -1
  2. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/__init__.py +1 -1
  3. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/cli/commands/run.py +15 -2
  4. {detectkit-0.8.0 → detectkit-0.8.1/detectkit.egg-info}/PKG-INFO +1 -1
  5. {detectkit-0.8.0 → detectkit-0.8.1}/LICENSE +0 -0
  6. {detectkit-0.8.0 → detectkit-0.8.1}/MANIFEST.in +0 -0
  7. {detectkit-0.8.0 → detectkit-0.8.1}/README.md +0 -0
  8. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/__init__.py +0 -0
  9. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/channels/__init__.py +0 -0
  10. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/channels/base.py +0 -0
  11. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/channels/email.py +0 -0
  12. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/channels/factory.py +0 -0
  13. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/channels/mattermost.py +0 -0
  14. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/channels/slack.py +0 -0
  15. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/channels/telegram.py +0 -0
  16. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/channels/webhook.py +0 -0
  17. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/orchestrator/__init__.py +0 -0
  18. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/orchestrator/_base.py +0 -0
  19. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/orchestrator/_cooldown.py +0 -0
  20. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/orchestrator/_decision.py +0 -0
  21. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/orchestrator/_dispatch.py +0 -0
  22. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/orchestrator/_recovery.py +0 -0
  23. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/orchestrator/_types.py +0 -0
  24. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/alerting/orchestrator/orchestrator.py +0 -0
  25. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/cli/__init__.py +0 -0
  26. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/cli/commands/__init__.py +0 -0
  27. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/cli/commands/clean.py +0 -0
  28. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/cli/commands/init.py +0 -0
  29. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/cli/commands/test_alert.py +0 -0
  30. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/cli/commands/unlock.py +0 -0
  31. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/cli/main.py +0 -0
  32. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/config/__init__.py +0 -0
  33. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/config/metric_config.py +0 -0
  34. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/config/profile.py +0 -0
  35. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/config/project_config.py +0 -0
  36. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/config/validator.py +0 -0
  37. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/core/__init__.py +0 -0
  38. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/core/interval.py +0 -0
  39. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/core/models.py +0 -0
  40. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/__init__.py +0 -0
  41. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/clickhouse_manager.py +0 -0
  42. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/internal_tables/__init__.py +0 -0
  43. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/internal_tables/_alert_states.py +0 -0
  44. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/internal_tables/_base.py +0 -0
  45. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/internal_tables/_datapoints.py +0 -0
  46. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/internal_tables/_detections.py +0 -0
  47. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/internal_tables/_maintenance.py +0 -0
  48. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/internal_tables/_metrics.py +0 -0
  49. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/internal_tables/_schema.py +0 -0
  50. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/internal_tables/_tasks.py +0 -0
  51. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/internal_tables/manager.py +0 -0
  52. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/manager.py +0 -0
  53. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/database/tables.py +0 -0
  54. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/detectors/__init__.py +0 -0
  55. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/detectors/base.py +0 -0
  56. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/detectors/factory.py +0 -0
  57. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/detectors/seasonality.py +0 -0
  58. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/detectors/statistical/__init__.py +0 -0
  59. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/detectors/statistical/_windowed.py +0 -0
  60. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/detectors/statistical/iqr.py +0 -0
  61. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/detectors/statistical/mad.py +0 -0
  62. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/detectors/statistical/manual_bounds.py +0 -0
  63. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/detectors/statistical/zscore.py +0 -0
  64. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/loaders/__init__.py +0 -0
  65. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/loaders/metric_loader.py +0 -0
  66. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/loaders/query_template.py +0 -0
  67. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/orchestration/__init__.py +0 -0
  68. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/orchestration/error_dispatch.py +0 -0
  69. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/orchestration/task_manager/__init__.py +0 -0
  70. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/orchestration/task_manager/_alert_step.py +0 -0
  71. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/orchestration/task_manager/_base.py +0 -0
  72. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/orchestration/task_manager/_detect_step.py +0 -0
  73. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/orchestration/task_manager/_load_step.py +0 -0
  74. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/orchestration/task_manager/_types.py +0 -0
  75. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/orchestration/task_manager/manager.py +0 -0
  76. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/utils/__init__.py +0 -0
  77. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/utils/datetime_utils.py +0 -0
  78. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/utils/env_interpolation.py +0 -0
  79. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/utils/json_utils.py +0 -0
  80. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit/utils/stats.py +0 -0
  81. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit.egg-info/SOURCES.txt +0 -0
  82. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit.egg-info/dependency_links.txt +0 -0
  83. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit.egg-info/entry_points.txt +0 -0
  84. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit.egg-info/requires.txt +0 -0
  85. {detectkit-0.8.0 → detectkit-0.8.1}/detectkit.egg-info/top_level.txt +0 -0
  86. {detectkit-0.8.0 → detectkit-0.8.1}/pyproject.toml +0 -0
  87. {detectkit-0.8.0 → detectkit-0.8.1}/requirements.txt +0 -0
  88. {detectkit-0.8.0 → detectkit-0.8.1}/setup.cfg +0 -0
  89. {detectkit-0.8.0 → detectkit-0.8.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: detectkit
3
- Version: 0.8.0
3
+ Version: 0.8.1
4
4
  Summary: Metric monitoring with automatic anomaly detection
5
5
  Author: detectkit team
6
6
  License: MIT
@@ -4,7 +4,7 @@ detectk - Anomaly Detection for Time-Series Metrics
4
4
  A Python library for data analysts and engineers to monitor metrics with automatic anomaly detection.
5
5
  """
6
6
 
7
- __version__ = "0.8.0"
7
+ __version__ = "0.8.1"
8
8
 
9
9
  from detectkit.core.interval import Interval
10
10
  from detectkit.core.models import ColumnDefinition, TableModel
@@ -353,8 +353,21 @@ def select_metrics(selector: str, project_root: Path) -> list[tuple[Path, Metric
353
353
  metric_paths = find_metrics_by_tag(metrics_dir, tag)
354
354
  # Path pattern selector
355
355
  elif "*" in selector or "/" in selector:
356
- pattern = selector if selector.startswith("metrics/") else f"metrics/{selector}"
357
- metric_paths = list(project_root.glob(pattern))
356
+ if selector == "*":
357
+ # "all metrics" — search recursively so nested metrics are included
358
+ # (mirrors validate_project_metrics); a plain glob of "metrics/*"
359
+ # would only see the top level.
360
+ metric_paths = [p for sub in ("**/*.yml", "**/*.yaml") for p in metrics_dir.glob(sub)]
361
+ else:
362
+ pattern = selector if selector.startswith("metrics/") else f"metrics/{selector}"
363
+ # Keep only metric files: a bare glob also matches the `.gitkeep`
364
+ # stub created by `dtk init`, any other non-YAML files, and
365
+ # directories — all of which would crash the YAML parser.
366
+ metric_paths = [
367
+ p
368
+ for p in project_root.glob(pattern)
369
+ if p.is_file() and p.suffix in (".yml", ".yaml")
370
+ ]
358
371
  # Metric name selector
359
372
  else:
360
373
  # First try filename-based search in root (backward compatibility)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: detectkit
3
- Version: 0.8.0
3
+ Version: 0.8.1
4
4
  Summary: Metric monitoring with automatic anomaly detection
5
5
  Author: detectkit team
6
6
  License: MIT
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes