Module adcp.reporting.projection.schema

B2.4's additive manifest never widens an earlier feature's required objects.

Functions

async def validate_projection_schema(connection: Any, *, notifications: bool = False) ‑> None
Expand source code
async def validate_projection_schema(connection: Any, *, notifications: bool = False) -> None:
    try:
        required = json.loads(
            files("adcp.reporting.projection").joinpath("required_schema.json").read_text()
        )
        actual = await schema_objects(connection)
        if not required or any(actual.get(k) != v for k, v in required.items()):
            raise ValueError
        await validate_feed_schema(connection, notifications=notifications)
        await validate_status_schema(connection)
    except Exception:
        raise ReportingNotificationError("status_projection_schema_unready") from None