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
103 lines
3.5 KiB
Python
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
|