Skip to content

Validator

Validates WhatsMyName JSON against a JSON Schema (see API Reference).

Basic Usage

import json
from pathlib import Path
from naminter import WMNValidator

# Load data and schema
with open("wmn-data.json", encoding="utf-8") as f:
    data = json.load(f)

with open("wmn-schema.json", encoding="utf-8") as f:
    schema = json.load(f)

# Create validator with schema
validator = WMNValidator(schema)

# Validate against JSON schema
schema_errors = validator.validate_schema(data)

# Validate with custom dataset rules
dataset_errors = WMNValidator.validate_dataset(data)

if schema_errors or dataset_errors:
    print(f"Validation failed:")
    for error in schema_errors:
        print(f"  Schema: {error.path}: {error.message}")
    for error in dataset_errors:
        print(f"  Dataset: {error.path}: {error.message}")
else:
    print("Validation passed!")

CLI Usage

The validator is also available via the CLI:

naminter validate \
    --local-schema schema.json \
    --local-data data.json

API Reference

naminter.core.validator.WMNValidator

WMNValidator(schema)

Validates WMN dataset against JSON Schema and custom rules.

Initialize validator with schema.

PARAMETER DESCRIPTION
schema

JSON Schema to validate against. Must not be empty.

TYPE: Mapping[str, Any]

RAISES DESCRIPTION
WMNSchemaError

If the provided schema is empty, invalid, or cannot be used.

validate_schema

validate_schema(data)

Validate dataset against JSON schema and return errors.

PARAMETER DESCRIPTION
data

WMN dataset to validate.

TYPE: WMNDataset

RETURNS DESCRIPTION
list[WMNError]

list[WMNError]: Schema validation errors, empty if valid.

validate_dataset staticmethod

validate_dataset(data)

Validate dataset fields with custom rules and return list of errors.

Performs code-based validation for license, authors, categories, duplicate site names, and individual site configurations (uri_check, post_body, headers, status codes, known usernames, etc.). Does not use JSON schema.

PARAMETER DESCRIPTION
data

WMN dataset to validate. This will not be modified.

TYPE: WMNDataset

RETURNS DESCRIPTION
list[WMNError]

list[WMNError]: Validation errors, empty if valid.