From 25165de80fba9358151f57bee67d40dd5ffad230 Mon Sep 17 00:00:00 2001 From: Peter Law Date: Mon, 1 Jul 2019 16:50:01 +0100 Subject: [PATCH] Add get_candidate_relations_to_delete (#92) * Set a precise type for Model._meta * Add missing 'get_candidate_relations_to_delete' function signature Fixes https://github.com/mkurnikov/django-stubs/issues/77. --- django-stubs/db/models/base.pyi | 3 ++- django-stubs/db/models/deletion.pyi | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/django-stubs/db/models/base.pyi b/django-stubs/db/models/base.pyi index 119e90e..1a14ad5 100644 --- a/django-stubs/db/models/base.pyi +++ b/django-stubs/db/models/base.pyi @@ -1,6 +1,7 @@ from typing import Any, Dict, List, Optional, Set, Tuple, TypeVar, Union, ClassVar, Sequence, Generic from django.db.models.manager import Manager +from django.db.models.options import Options class ModelBase(type): ... @@ -10,7 +11,7 @@ class Model(metaclass=ModelBase): class DoesNotExist(Exception): ... class MultipleObjectsReturned(Exception): ... class Meta: ... - _meta: Any + _meta: Options _default_manager: Manager[Model] pk: Any = ... def __init__(self: _Self, *args, **kwargs) -> None: ... diff --git a/django-stubs/db/models/deletion.pyi b/django-stubs/db/models/deletion.pyi index abe7ae5..fa44344 100644 --- a/django-stubs/db/models/deletion.pyi +++ b/django-stubs/db/models/deletion.pyi @@ -1,6 +1,8 @@ -from typing import Any, Callable +from typing import Any, Callable, Iterable from django.db import IntegrityError +from django.db.models.fields import Field +from django.db.models.options import Options def CASCADE(collector, field, sub_objs, using): ... def SET_NULL(collector, field, sub_objs, using): ... @@ -9,6 +11,8 @@ def DO_NOTHING(collector, field, sub_objs, using): ... def PROTECT(collector, field, sub_objs, using): ... def SET(value: Any) -> Callable: ... +def get_candidate_relations_to_delete(opts: Options) -> Iterable[Field]: ... + class ProtectedError(IntegrityError): ... class Collector: