mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-15 08:17:08 +08:00
* Adds more rules to mypy config, related #662 * Removes plugin.ini for mypy settings * Fixes build
This commit is contained in:
@@ -99,7 +99,7 @@ class DjangoContext:
|
||||
|
||||
@cached_property
|
||||
def model_modules(self) -> Dict[str, Set[Type[Model]]]:
|
||||
""" All modules that contain Django models. """
|
||||
"""All modules that contain Django models."""
|
||||
if self.apps_registry is None:
|
||||
return {}
|
||||
|
||||
@@ -251,7 +251,7 @@ class DjangoContext:
|
||||
return nullable
|
||||
|
||||
def get_field_set_type(self, api: TypeChecker, field: Union[Field, ForeignObjectRel], *, method: str) -> MypyType:
|
||||
""" Get a type of __set__ for this specific Django field. """
|
||||
"""Get a type of __set__ for this specific Django field."""
|
||||
target_field = field
|
||||
if isinstance(field, ForeignKey):
|
||||
target_field = field.target_field
|
||||
@@ -269,7 +269,7 @@ class DjangoContext:
|
||||
return field_set_type
|
||||
|
||||
def get_field_get_type(self, api: TypeChecker, field: Union[Field, ForeignObjectRel], *, method: str) -> MypyType:
|
||||
""" Get a type of __get__ for this specific Django field. """
|
||||
"""Get a type of __get__ for this specific Django field."""
|
||||
field_info = helpers.lookup_class_typeinfo(api, field.__class__)
|
||||
if field_info is None:
|
||||
return AnyType(TypeOfAny.unannotated)
|
||||
|
||||
@@ -157,7 +157,7 @@ def iter_bases(info: TypeInfo) -> Iterator[Instance]:
|
||||
|
||||
|
||||
def get_private_descriptor_type(type_info: TypeInfo, private_field_name: str, is_nullable: bool) -> MypyType:
|
||||
""" Return declared type of type_info's private_field_name (used for private Field attributes)"""
|
||||
"""Return declared type of type_info's private_field_name (used for private Field attributes)"""
|
||||
sym = type_info.get(private_field_name)
|
||||
if sym is None:
|
||||
return AnyType(TypeOfAny.explicit)
|
||||
|
||||
@@ -126,7 +126,7 @@ def extract_django_settings_module(config_file_path: Optional[str]) -> str:
|
||||
exit(2)
|
||||
settings = parser.get(section, "django_settings_module", fallback=None) or exit(3)
|
||||
|
||||
return cast(str, settings).strip("'\"")
|
||||
return settings.strip("'\"")
|
||||
|
||||
|
||||
class NewSemanalDjangoPlugin(Plugin):
|
||||
|
||||
@@ -189,9 +189,12 @@ class AddManagers(ModelClassInitializer):
|
||||
return custom_manager_type
|
||||
|
||||
def run_with_model_cls(self, model_cls: Type[Model]) -> None:
|
||||
manager_info: Optional[TypeInfo]
|
||||
|
||||
for manager_name, manager in model_cls._meta.managers_map.items():
|
||||
manager_class_name = manager.__class__.__name__
|
||||
manager_fullname = helpers.get_class_fullname(manager.__class__)
|
||||
|
||||
try:
|
||||
manager_info = self.lookup_typeinfo_or_incomplete_defn_error(manager_fullname)
|
||||
except helpers.IncompleteDefnException as exc:
|
||||
@@ -204,7 +207,7 @@ class AddManagers(ModelClassInitializer):
|
||||
# not a generated manager, continue with the loop
|
||||
continue
|
||||
real_manager_fullname = generated_managers[manager_fullname]
|
||||
manager_info = self.lookup_typeinfo(real_manager_fullname) # type: ignore
|
||||
manager_info = self.lookup_typeinfo(real_manager_fullname)
|
||||
if manager_info is None:
|
||||
continue
|
||||
manager_class_name = real_manager_fullname.rsplit(".", maxsplit=1)[1]
|
||||
@@ -310,7 +313,7 @@ class AddRelatedManagers(ModelClassInitializer):
|
||||
generated_managers = self.get_generated_manager_mappings(base_manager_fullname)
|
||||
if manager_fullname in generated_managers:
|
||||
real_manager_fullname = generated_managers[manager_fullname]
|
||||
manager_info = self.lookup_typeinfo(real_manager_fullname) # type: ignore
|
||||
manager_info = self.lookup_typeinfo(real_manager_fullname)
|
||||
if manager_info:
|
||||
return Instance(manager_info, [Instance(related_model_info, [])])
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user