Skip to content

Using types-jsonschema 4.4.0, mypy does not consider jsonschema.validators.Draft7Validator a type #7028

Closed
@DMRobertson

Description

@DMRobertson

(I'm not sure if this is best filed as an issue against typeshed or mypy. Happy to move this if it's the latter.)

The snippet

import jsonschema
x: jsonschema.Draft7Validator

does not typecheck on with types-jsonschema 4.4.0.

error: Variable "jsonschema.validators.Draft7Validator" is not valid as a type  [valid-type]

For cross referencing, we noticed this here.

The snippet above does type-check with 4.3.0, where Draft7Validator was annotated as Any. The change was made in #7025 .

Are we misunderstanding or misusing Draft7Validator - is it not expected to be a type like this? If not, perhaps this is a problem in mypy rather than the stubs?

For what it's worth: mypy's documentation suggests that tp: Type[_Validator] is considered a "variable of type _Validator". Perhaps mypy's complaint is that tp's value could be a replaced with a different subtype of _Validator at runtime? With that in mind, I tried patching the stubs to read Draft7Validator: Final[type[_Validator]] but this didn't seem to appease the type gods.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions