some cleanups

This commit is contained in:
Maxim Kurnikov
2018-11-12 16:24:35 +03:00
parent 919e4a5c9f
commit 11b6b360b6
4 changed files with 9 additions and 11 deletions

View File

@@ -1,11 +1,11 @@
from typing import Optional, Callable
from mypy.nodes import SymbolTableNode, MDEF, Var
from mypy.nodes import Var, MDEF, SymbolTableNode
from mypy.plugin import Plugin, FunctionContext
from mypy.types import Type, CallableType, TypeOfAny, AnyType, Instance
from mypy.types import Type, CallableType, Instance
def set_related_fields(ctx: FunctionContext) -> Type:
def set_related_name_manager_for_foreign_key(ctx: FunctionContext) -> Type:
if 'related_name' not in ctx.context.arg_names:
return ctx.default_return_type
@@ -23,8 +23,8 @@ def set_related_fields(ctx: FunctionContext) -> Type:
related_var = Var(related_name,
queryset_type)
related_var.info = queryset_type.type
referred_to.type.names[related_name] = SymbolTableNode(MDEF, related_var)
referred_to.type.names[related_name] = SymbolTableNode(MDEF, related_var,
plugin_generated=True)
return ctx.default_return_type
@@ -32,7 +32,7 @@ class RelatedFieldsPlugin(Plugin):
def get_function_hook(self, fullname: str
) -> Optional[Callable[[FunctionContext], Type]]:
if fullname == 'django.db.models.fields.related.ForeignKey':
return set_related_fields
return set_related_name_manager_for_foreign_key
return None

View File

@@ -24,5 +24,3 @@ user = User()
reveal_type(user.members) # E: Revealed type is 'builtins.list[builtins.int*]'
reveal_type(user.members_as_text) # E: Revealed type is 'builtins.list[builtins.str*]'
[out]

View File

@@ -16,7 +16,7 @@ class DjangoTestSuite(DataSuite):
files = [
'check-model-fields.test',
'check-postgres-fields.test',
'check-model-relations.test'
'check-model-relations.test',
]
data_prefix = str(TEST_DATA_DIR)