aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/useless_keywords.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/jsonschema/benchmarks/useless_keywords.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/jsonschema/benchmarks/useless_keywords.py')
-rw-r--r--.venv/lib/python3.12/site-packages/jsonschema/benchmarks/useless_keywords.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/useless_keywords.py b/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/useless_keywords.py
new file mode 100644
index 00000000..50f43598
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/useless_keywords.py
@@ -0,0 +1,32 @@
+"""
+A benchmark for validation of schemas containing lots of useless keywords.
+
+Checks we filter them out once, ahead of time.
+"""
+
+from pyperf import Runner
+
+from jsonschema import Draft202012Validator
+
+NUM_USELESS = 100000
+schema = dict(
+ [
+ ("not", {"const": 42}),
+ *((str(i), i) for i in range(NUM_USELESS)),
+ ("type", "integer"),
+ *((str(i), i) for i in range(NUM_USELESS, NUM_USELESS)),
+ ("minimum", 37),
+ ],
+)
+validator = Draft202012Validator(schema)
+
+valid = 3737
+invalid = 12
+
+
+if __name__ == "__main__":
+ runner = Runner()
+ runner.bench_func("beginning of schema", lambda: validator.is_valid(42))
+ runner.bench_func("middle of schema", lambda: validator.is_valid("foo"))
+ runner.bench_func("end of schema", lambda: validator.is_valid(12))
+ runner.bench_func("valid", lambda: validator.is_valid(3737))