36 lines
940 B
Python
36 lines
940 B
Python
"""
|
|
An unused schema registry should not cause slower validation.
|
|
|
|
"Unused" here means one where no reference resolution is occurring anyhow.
|
|
|
|
See https://github.com/python-jsonschema/jsonschema/issues/1088.
|
|
"""
|
|
from pyperf import Runner
|
|
from referencing import Registry
|
|
from referencing.jsonschema import DRAFT201909
|
|
|
|
from jsonschema import Draft201909Validator
|
|
|
|
registry = Registry().with_resource(
|
|
"urn:example:foo",
|
|
DRAFT201909.create_resource({}),
|
|
)
|
|
|
|
schema = {"$ref": "https://json-schema.org/draft/2019-09/schema"}
|
|
instance = {"maxLength": 4}
|
|
|
|
no_registry = Draft201909Validator(schema)
|
|
with_useless_registry = Draft201909Validator(schema, registry=registry)
|
|
|
|
if __name__ == "__main__":
|
|
runner = Runner()
|
|
|
|
runner.bench_func(
|
|
"no registry",
|
|
lambda: no_registry.is_valid(instance),
|
|
)
|
|
runner.bench_func(
|
|
"useless registry",
|
|
lambda: with_useless_registry.is_valid(instance),
|
|
)
|