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:
API Reference
naminter.core.validator.WMNValidator
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:
|
| RAISES | DESCRIPTION |
|---|---|
WMNSchemaError
|
If the provided schema is empty, invalid, or cannot be used. |
validate_schema
Validate dataset against JSON schema and return errors.
| PARAMETER | DESCRIPTION |
|---|---|
data
|
WMN dataset to validate.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
list[WMNError]
|
list[WMNError]: Schema validation errors, empty if valid. |
validate_dataset
staticmethod
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:
|
| RETURNS | DESCRIPTION |
|---|---|
list[WMNError]
|
list[WMNError]: Validation errors, empty if valid. |