|
|
"""Checkers module for paper submission quality checks.""" |
|
|
from .base import BaseChecker, CheckResult, CheckSeverity |
|
|
from .caption_checker import CaptionChecker |
|
|
from .reference_checker import ReferenceChecker |
|
|
from .ai_artifacts_checker import AIArtifactsChecker |
|
|
from .formatting_checker import FormattingChecker |
|
|
from .anonymization_checker import AnonymizationChecker |
|
|
from .number_checker import NumberChecker |
|
|
from .sentence_checker import SentenceChecker |
|
|
from .consistency_checker import ConsistencyChecker |
|
|
from .citation_quality_checker import CitationQualityChecker |
|
|
from .equation_checker import EquationChecker |
|
|
from .acronym_checker import AcronymChecker |
|
|
|
|
|
__all__ = [ |
|
|
'BaseChecker', |
|
|
'CheckResult', |
|
|
'CheckSeverity', |
|
|
'CaptionChecker', |
|
|
'ReferenceChecker', |
|
|
'AIArtifactsChecker', |
|
|
'FormattingChecker', |
|
|
'AnonymizationChecker', |
|
|
'NumberChecker', |
|
|
'SentenceChecker', |
|
|
'ConsistencyChecker', |
|
|
'CitationQualityChecker', |
|
|
'EquationChecker', |
|
|
'AcronymChecker', |
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
CHECKER_REGISTRY = { |
|
|
'caption': CaptionChecker, |
|
|
'reference': ReferenceChecker, |
|
|
'ai_artifacts': AIArtifactsChecker, |
|
|
'formatting': FormattingChecker, |
|
|
'anonymization': AnonymizationChecker, |
|
|
'number': NumberChecker, |
|
|
'sentence': SentenceChecker, |
|
|
'consistency': ConsistencyChecker, |
|
|
'citation_quality': CitationQualityChecker, |
|
|
'equation': EquationChecker, |
|
|
'acronym': AcronymChecker, |
|
|
} |
|
|
|
|
|
|
|
|
def get_checker(name: str) -> BaseChecker: |
|
|
"""Get a checker instance by name.""" |
|
|
if name not in CHECKER_REGISTRY: |
|
|
raise ValueError(f"Unknown checker: {name}") |
|
|
return CHECKER_REGISTRY[name]() |
|
|
|
|
|
|
|
|
def run_all_checkers(tex_content: str, config: dict = None) -> list: |
|
|
"""Run all checkers and return combined results.""" |
|
|
results = [] |
|
|
config = config or {} |
|
|
|
|
|
for name, checker_class in CHECKER_REGISTRY.items(): |
|
|
checker = checker_class() |
|
|
checker_results = checker.check(tex_content, config) |
|
|
results.extend(checker_results) |
|
|
|
|
|
return results |
|
|
|