Skip to content

Commit

Permalink
Make the v1 mypy plugin work with both v1 and v2 (#6921)
Browse files Browse the repository at this point in the history
  • Loading branch information
dmontagu committed Jul 28, 2023
1 parent e8091c4 commit 2a4a7e5
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions pydantic/v1/mypy.py
Expand Up @@ -75,11 +75,12 @@

CONFIGFILE_KEY = 'pydantic-mypy'
METADATA_KEY = 'pydantic-mypy-metadata'
BASEMODEL_FULLNAME = 'pydantic.main.BaseModel'
BASESETTINGS_FULLNAME = 'pydantic.env_settings.BaseSettings'
MODEL_METACLASS_FULLNAME = 'pydantic.main.ModelMetaclass'
FIELD_FULLNAME = 'pydantic.fields.Field'
DATACLASS_FULLNAME = 'pydantic.dataclasses.dataclass'
_NAMESPACE = __name__[:-5] # 'pydantic' in 1.10.X, 'pydantic.v1' in v2.X
BASEMODEL_FULLNAME = f'{_NAMESPACE}.main.BaseModel'
BASESETTINGS_FULLNAME = f'{_NAMESPACE}.env_settings.BaseSettings'
MODEL_METACLASS_FULLNAME = f'{_NAMESPACE}.main.ModelMetaclass'
FIELD_FULLNAME = f'{_NAMESPACE}.fields.Field'
DATACLASS_FULLNAME = f'{_NAMESPACE}.dataclasses.dataclass'


def parse_mypy_version(version: str) -> Tuple[int, ...]:
Expand Down Expand Up @@ -335,7 +336,7 @@ def adjust_validator_signatures(self) -> None:
if (
isinstance(first_dec, CallExpr)
and isinstance(first_dec.callee, NameExpr)
and first_dec.callee.fullname == 'pydantic.class_validators.validator'
and first_dec.callee.fullname == f'{_NAMESPACE}.class_validators.validator'
):
sym.node.func.is_class = True

Expand Down

0 comments on commit 2a4a7e5

Please sign in to comment.