aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/unused_registry.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/jsonschema/benchmarks/unused_registry.py')
-rw-r--r--.venv/lib/python3.12/site-packages/jsonschema/benchmarks/unused_registry.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/unused_registry.py b/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/unused_registry.py
new file mode 100644
index 00000000..7b272c23
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/unused_registry.py
@@ -0,0 +1,35 @@
+"""
+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),
+ )