"""Тонкая обёртка тестов над `scripts.dbml_parity` (единственная реализация сверки ORM с DBML, рулинг R-14). Отличие одно: `find_problems` без явного `dbml` берёт DBML через `load_dbml()` (пропуск теста, если docs недоступен). """ from collections.abc import Collection from pydbml import PyDBML from sqlalchemy import MetaData from scripts import dbml_parity from scripts.dbml_parity import canonical_default_dbml, canonical_default_orm, type_problem from tests.dbml_helpers import load_dbml __all__ = ["canonical_default_dbml", "canonical_default_orm", "find_problems", "type_problem"] def find_problems(metadata: MetaData, tables: Collection[str], dbml: PyDBML | None = None) -> list[str]: """Расхождения ORM с DBML для таблиц `tables` (см. `scripts.dbml_parity.find_problems`).""" return dbml_parity.find_problems(metadata, tables, dbml or load_dbml())