diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b30cc10..d132ee7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,10 +14,10 @@ jobs: python-version: ["3.9", "3.12", "3.13"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2766c74..3f865bb 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -11,9 +11,9 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: "3.12" @@ -24,7 +24,7 @@ jobs: run: python -m build - name: Upload artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: dist path: dist/ @@ -32,9 +32,9 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: "3.12" @@ -50,7 +50,7 @@ jobs: runs-on: ubuntu-latest environment: pypi steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: dist path: dist/ diff --git a/data_hygiene_auditor/core.py b/data_hygiene_auditor/core.py index d408121..7d1e67f 100644 --- a/data_hygiene_auditor/core.py +++ b/data_hygiene_auditor/core.py @@ -1,5 +1,7 @@ """Core audit orchestrator and data loading.""" +from __future__ import annotations + import os from datetime import datetime from pathlib import Path diff --git a/data_hygiene_auditor/rules.py b/data_hygiene_auditor/rules.py index b2665af..d066bb4 100644 --- a/data_hygiene_auditor/rules.py +++ b/data_hygiene_auditor/rules.py @@ -188,8 +188,7 @@ def evaluate_rule(rule: Rule, series: pd.Series, col_name: str) -> Optional[Dict return None if rule.condition == 'regex_match': - pattern = re.compile(rule.threshold) - violations = non_empty[~non_empty.str.fullmatch(pattern, na=False)] + violations = non_empty[~non_empty.str.fullmatch(rule.threshold, na=False)] if len(violations) == 0: return None examples = violations.head(5).tolist() @@ -212,8 +211,7 @@ def evaluate_rule(rule: Rule, series: pd.Series, col_name: str) -> Optional[Dict } if rule.condition == 'not_regex_match': - pattern = re.compile(rule.threshold) - violations = non_empty[non_empty.str.fullmatch(pattern, na=False)] + violations = non_empty[non_empty.str.fullmatch(rule.threshold, na=False)] if len(violations) == 0: return None examples = violations.head(5).tolist()