()
| 483 | |
| 484 | |
| 485 | def main() -> int: |
| 486 | args = build_parser().parse_args() |
| 487 | failures = check_files(args) |
| 488 | |
| 489 | if not failures: |
| 490 | print("Article quality check passed.") |
| 491 | return 0 |
| 492 | |
| 493 | print("Article quality check failed.") |
| 494 | print( |
| 495 | "Rules: " |
| 496 | f">= {args.min_chars} meaningful chars, " |
| 497 | f">= {args.min_paragraphs} developed paragraphs, " |
| 498 | f">= {args.min_sentences} developed sentences, " |
| 499 | f"<= {args.max_broken_images} broken image references." |
| 500 | ) |
| 501 | for failure in failures: |
| 502 | metrics = failure.metrics |
| 503 | print(f"\n{failure.path}") |
| 504 | print( |
| 505 | f" metrics: chars={metrics.chars}, " |
| 506 | f"paragraphs={metrics.paragraphs}, sentences={metrics.sentences}, " |
| 507 | f"images={metrics.images}, broken_images={metrics.broken_images}" |
| 508 | ) |
| 509 | for issue in failure.issues: |
| 510 | print(f" - {issue}") |
| 511 | for image_issue in failure.image_issues[: args.max_image_errors]: |
| 512 | print(f" image line {image_issue.line}: {image_issue.target}") |
| 513 | print(f" - {image_issue.issue}") |
| 514 | remaining = len(failure.image_issues) - args.max_image_errors |
| 515 | if remaining > 0: |
| 516 | print(f" ... {remaining} more broken image references not shown") |
| 517 | |
| 518 | return 1 |
| 519 | |
| 520 | |
| 521 | if __name__ == "__main__": |
no test coverage detected