Skip to content

Commit 69b92b5

Browse files
authored
Make the v1 mypy plugin work with both v1 and v2 (#6920)
1 parent 87bf417 commit 69b92b5

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

pydantic/mypy.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,12 @@
7575

7676
CONFIGFILE_KEY = 'pydantic-mypy'
7777
METADATA_KEY = 'pydantic-mypy-metadata'
78-
BASEMODEL_FULLNAME = 'pydantic.main.BaseModel'
79-
BASESETTINGS_FULLNAME = 'pydantic.env_settings.BaseSettings'
80-
MODEL_METACLASS_FULLNAME = 'pydantic.main.ModelMetaclass'
81-
FIELD_FULLNAME = 'pydantic.fields.Field'
82-
DATACLASS_FULLNAME = 'pydantic.dataclasses.dataclass'
78+
_NAMESPACE = __name__[:-5] # 'pydantic' in 1.10.X, 'pydantic.v1' in v2.X
79+
BASEMODEL_FULLNAME = f'{_NAMESPACE}.main.BaseModel'
80+
BASESETTINGS_FULLNAME = f'{_NAMESPACE}.env_settings.BaseSettings'
81+
MODEL_METACLASS_FULLNAME = f'{_NAMESPACE}.main.ModelMetaclass'
82+
FIELD_FULLNAME = f'{_NAMESPACE}.fields.Field'
83+
DATACLASS_FULLNAME = f'{_NAMESPACE}.dataclasses.dataclass'
8384

8485

8586
def parse_mypy_version(version: str) -> Tuple[int, ...]:
@@ -335,7 +336,7 @@ def adjust_validator_signatures(self) -> None:
335336
if (
336337
isinstance(first_dec, CallExpr)
337338
and isinstance(first_dec.callee, NameExpr)
338-
and first_dec.callee.fullname == 'pydantic.class_validators.validator'
339+
and first_dec.callee.fullname == f'{_NAMESPACE}.class_validators.validator'
339340
):
340341
sym.node.func.is_class = True
341342

0 commit comments

Comments
 (0)