1234567891011121314151617181920212223242526272829303132 |
- """
- 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))
|