Files
Argenta/metrics/benchmarks/validate_routers_for_collisions.py
T
2026-02-12 14:18:53 +03:00

125 lines
3.1 KiB
Python

__all__ = [
"benchmark_few_routers",
"benchmark_many_routers",
"benchmark_many_commands_per_router",
"benchmark_many_aliases_per_command",
"benchmark_extreme_routers",
]
from argenta import App
from argenta.command.models import Command
from argenta.response import Response
from argenta.router import Router
from .entity import benchmarks
@benchmarks.register(
type_="validate_routers_for_collisions",
description="With few routers (3 routers, 1 command each)",
)
def benchmark_few_routers() -> None:
app = App(override_system_messages=True)
for i in range(3):
router = Router()
@router.command(Command(f"cmd{i}"))
def handler(_res: Response) -> None:
pass
app.include_router(router)
app._setup_system_router()
app._validate_routers_for_collisions()
@benchmarks.register(
type_="validate_routers_for_collisions",
description="With many routers (10 routers, 1 command each)",
)
def benchmark_many_routers() -> None:
app = App(override_system_messages=True)
for i in range(10):
router = Router()
@router.command(Command(f"cmd{i}"))
def handler(_res: Response) -> None:
pass
app.include_router(router)
app._setup_system_router()
app._validate_routers_for_collisions()
@benchmarks.register(
type_="validate_routers_for_collisions",
description="With many commands per router (3 routers, 10 commands each)",
)
def benchmark_many_commands_per_router() -> None:
app = App(override_system_messages=True)
for i in range(3):
router = Router()
for j in range(10):
@router.command(Command(f"cmd{i}_{j}"))
def handler(_res: Response) -> None:
pass
app.include_router(router)
app._setup_system_router()
app._validate_routers_for_collisions()
@benchmarks.register(
type_="validate_routers_for_collisions",
description="With many aliases (3 routers, 5 commands, 10 aliases each)",
)
def benchmark_many_aliases_per_command() -> None:
app = App(override_system_messages=True)
for i in range(3):
router = Router()
for j in range(5):
@router.command(
Command(f"cmd{i}_{j}", aliases={f"alias{i}_{j}_{k}" for k in range(10)})
)
def handler(_res: Response) -> None:
pass
app.include_router(router)
app._setup_system_router()
app._validate_routers_for_collisions()
@benchmarks.register(
type_="validate_routers_for_collisions",
description="Extreme (20 routers, 10 commands, 20 aliases each)",
)
def benchmark_extreme_routers() -> None:
app = App(override_system_messages=True)
for i in range(20):
router = Router()
for j in range(10):
@router.command(
Command(f"cmd{i}_{j}", aliases={f"alias{i}_{j}_{k}" for k in range(20)})
)
def handler(_res: Response) -> None:
pass
app.include_router(router)
app._setup_system_router()
app._validate_routers_for_collisions()