Files
cleveragents-core/benchmarks/docs_build_bench.py
T
brent.edwards 7bf8056003
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 20s
CI / build (pull_request) Successful in 25s
CI / quality (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 32s
CI / security (pull_request) Successful in 1m2s
CI / integration_tests (pull_request) Failing after 2m49s
CI / benchmark-regression (pull_request) Failing after 2m33s
CI / unit_tests (pull_request) Failing after 7m54s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 16m44s
style: fix formatting
2026-02-20 20:38:53 +00:00

103 lines
3.5 KiB
Python

"""ASV benchmarks for docs build baseline.
Measures the performance of parsing, validating, and extracting
information from documentation files to establish baselines for
the docs build pipeline.
"""
from __future__ import annotations
from pathlib import Path
DOCS_DIR = Path("docs")
PLAYBOOK_PATH = DOCS_DIR / "development" / "review_playbook.md"
class DocsParseSuite:
"""Benchmark parsing documentation markdown files."""
timeout = 30
def setup(self) -> None:
"""Read the raw markdown text once for reuse."""
if PLAYBOOK_PATH.exists():
self.playbook_text: str = PLAYBOOK_PATH.read_text(encoding="utf-8")
else:
self.playbook_text = ""
def time_read_playbook(self) -> None:
"""Benchmark reading the review playbook file."""
if PLAYBOOK_PATH.exists():
PLAYBOOK_PATH.read_text(encoding="utf-8")
def time_count_sections(self) -> None:
"""Benchmark counting markdown sections in the playbook."""
if self.playbook_text:
lines: list[str] = self.playbook_text.splitlines()
_sections: list[str] = [line for line in lines if line.startswith("#")]
def time_extract_tables(self) -> None:
"""Benchmark extracting markdown table rows from the playbook."""
if self.playbook_text:
lines: list[str] = self.playbook_text.splitlines()
_table_rows: list[str] = [line for line in lines if line.startswith("|")]
class DocsDiscoverySuite:
"""Benchmark discovering documentation files."""
timeout = 30
def setup(self) -> None:
"""Prepare docs directory path."""
self.docs_dir: Path = DOCS_DIR
def time_list_all_markdown_files(self) -> None:
"""Benchmark listing all markdown files in the docs directory."""
if self.docs_dir.exists():
_files: list[Path] = list(self.docs_dir.rglob("*.md"))
def time_validate_file_existence(self) -> None:
"""Benchmark validating that key docs files exist."""
expected_files: list[Path] = [
DOCS_DIR / "development" / "review_playbook.md",
DOCS_DIR / "development" / "quality-automation.md",
DOCS_DIR / "development" / "testing.md",
DOCS_DIR / "development" / "ci-cd.md",
]
for file_path in expected_files:
file_path.exists()
class DocsContentValidationSuite:
"""Benchmark content validation operations on docs."""
timeout = 30
def setup(self) -> None:
"""Read all markdown files for validation benchmarking."""
self.docs_dir: Path = DOCS_DIR
self.all_docs: list[str] = []
if self.docs_dir.exists():
for md_file in self.docs_dir.rglob("*.md"):
self.all_docs.append(md_file.read_text(encoding="utf-8"))
def time_check_broken_links_pattern(self) -> None:
"""Benchmark scanning docs for potential broken link patterns."""
for doc_content in self.all_docs:
lines: list[str] = doc_content.splitlines()
_links: list[str] = [
line for line in lines if "]()" in line or "]: " in line
]
def time_count_total_lines(self) -> None:
"""Benchmark counting total lines across all docs."""
total: int = 0
for doc_content in self.all_docs:
total += len(doc_content.splitlines())
def time_search_nox_references(self) -> None:
"""Benchmark searching for nox session references across all docs."""
for doc_content in self.all_docs:
_found: bool = "nox -s" in doc_content