29 lines
610 B
Python
29 lines
610 B
Python
"""
|
|
Some (initially private) typing helpers for jsonschema's types.
|
|
"""
|
|
from typing import Any, Callable, Iterable, Protocol, Tuple, Union
|
|
|
|
import referencing.jsonschema
|
|
|
|
from jsonschema.protocols import Validator
|
|
|
|
|
|
class SchemaKeywordValidator(Protocol):
|
|
def __call__(
|
|
self,
|
|
validator: Validator,
|
|
value: Any,
|
|
instance: Any,
|
|
schema: referencing.jsonschema.Schema,
|
|
) -> None:
|
|
...
|
|
|
|
|
|
id_of = Callable[[referencing.jsonschema.Schema], Union[str, None]]
|
|
|
|
|
|
ApplicableValidators = Callable[
|
|
[referencing.jsonschema.Schema],
|
|
Iterable[Tuple[str, Any]],
|
|
]
|