HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.60.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 5 05:00:59 EST 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //var/opt/nydus/ops/jsonschema/tests/typing/test_all_concrete_validators_match_protocol.py
"""
This module acts as a test that type checkers will allow each validator
class to be assigned to a variable of type `type[Validator]`

The assignation is only valid if type checkers recognize each Validator
implementation as a valid implementer of the protocol.
"""
from jsonschema.protocols import Validator
from jsonschema.validators import (
    Draft3Validator,
    Draft4Validator,
    Draft6Validator,
    Draft7Validator,
    Draft201909Validator,
    Draft202012Validator,
)

my_validator: type[Validator]

my_validator = Draft3Validator
my_validator = Draft4Validator
my_validator = Draft6Validator
my_validator = Draft7Validator
my_validator = Draft201909Validator
my_validator = Draft202012Validator


# in order to confirm that none of the above were incorrectly typed as 'Any'
# ensure that each of these assignments to a non-validator variable requires an
# ignore
none_var: None

none_var = Draft3Validator  # type: ignore[assignment]
none_var = Draft4Validator  # type: ignore[assignment]
none_var = Draft6Validator  # type: ignore[assignment]
none_var = Draft7Validator  # type: ignore[assignment]
none_var = Draft201909Validator  # type: ignore[assignment]
none_var = Draft202012Validator  # type: ignore[assignment]