Bump mypy 0.950 (#939)

* Bump mypy to 0.95x

* Remove the * for inferred types

There was an upstream change (https://github.com/python/mypy/pull/12459)
to remove * from inferred types in the reveal_type output.

As we are asserting the * to exist, all the test cases are now failing
on the 0.950 release. Removing the expected * to mirror the upstream
behaviour change should resolve the test failures.
This commit is contained in:
Damian Zaremba
2022-04-29 12:44:33 +01:00
committed by GitHub
parent 0caee74490
commit 2ef7ff3309
28 changed files with 217 additions and 217 deletions

View File

@@ -10,4 +10,4 @@ psycopg2-binary
-e . -e .
# Overrides: # Overrides:
mypy==0.942 mypy==0.950

View File

@@ -20,7 +20,7 @@ with open("README.md") as f:
readme = f.read() readme = f.read()
dependencies = [ dependencies = [
"mypy>=0.930,<0.950", "mypy>=0.930,<0.960",
"django", "django",
"django-stubs-ext>=0.4.0", "django-stubs-ext>=0.4.0",
"tomli", "tomli",

View File

@@ -7,7 +7,7 @@
- case: raw_connections - case: raw_connections
main: | main: |
from django.db import connections from django.db import connections
reveal_type(connections["test"]) # N: Revealed type is "django.db.backends.base.base.BaseDatabaseWrapper*" reveal_type(connections["test"]) # N: Revealed type is "django.db.backends.base.base.BaseDatabaseWrapper"
for connection in connections.all(): for connection in connections.all():
with connection.cursor() as cursor: with connection.cursor() as cursor:
reveal_type(cursor) # N: Revealed type is "django.db.backends.utils.CursorWrapper" reveal_type(cursor) # N: Revealed type is "django.db.backends.utils.CursorWrapper"

View File

@@ -2,11 +2,11 @@
main: | main: |
from myapp.models import User from myapp.models import User
user = User(small_int=1, name='user', slug='user', text='user') user = User(small_int=1, name='user', slug='user', text='user')
reveal_type(user.id) # N: Revealed type is "builtins.int*" reveal_type(user.id) # N: Revealed type is "builtins.int"
reveal_type(user.small_int) # N: Revealed type is "builtins.int*" reveal_type(user.small_int) # N: Revealed type is "builtins.int"
reveal_type(user.name) # N: Revealed type is "builtins.str*" reveal_type(user.name) # N: Revealed type is "builtins.str"
reveal_type(user.slug) # N: Revealed type is "builtins.str*" reveal_type(user.slug) # N: Revealed type is "builtins.str"
reveal_type(user.text) # N: Revealed type is "builtins.str*" reveal_type(user.text) # N: Revealed type is "builtins.str"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -25,9 +25,9 @@
main: | main: |
from myapp.models import Booking from myapp.models import Booking
booking = Booking() booking = Booking()
reveal_type(booking.id) # N: Revealed type is "builtins.int*" reveal_type(booking.id) # N: Revealed type is "builtins.int"
reveal_type(booking.time_range) # N: Revealed type is "Any" reveal_type(booking.time_range) # N: Revealed type is "Any"
reveal_type(booking.some_decimal) # N: Revealed type is "decimal.Decimal*" reveal_type(booking.some_decimal) # N: Revealed type is "decimal.Decimal"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -47,7 +47,7 @@
disable_cache: true disable_cache: true
main: | main: |
from myapp.models import User from myapp.models import User
reveal_type(User().id) # N: Revealed type is "builtins.int*" reveal_type(User().id) # N: Revealed type is "builtins.int"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -62,7 +62,7 @@
disable_cache: true disable_cache: true
main: | main: |
from myapp.models import User from myapp.models import User
reveal_type(User().my_pk) # N: Revealed type is "builtins.int*" reveal_type(User().my_pk) # N: Revealed type is "builtins.int"
User().id # E: "User" has no attribute "id" User().id # E: "User" has no attribute "id"
installed_apps: installed_apps:
- myapp - myapp
@@ -97,7 +97,7 @@
MyModel(notnulltext=None) # E: Incompatible type for "notnulltext" of "MyModel" (got "None", expected "Union[str, int, Combinable]") MyModel(notnulltext=None) # E: Incompatible type for "notnulltext" of "MyModel" (got "None", expected "Union[str, int, Combinable]")
MyModel(notnulltext="") MyModel(notnulltext="")
MyModel().notnulltext = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[str, int, Combinable]") MyModel().notnulltext = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[str, int, Combinable]")
reveal_type(MyModel().notnulltext) # N: Revealed type is "builtins.str*" reveal_type(MyModel().notnulltext) # N: Revealed type is "builtins.str"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -133,7 +133,7 @@
- case: fields_inside_mixins_used_in_model_subclasses_resolved_as_primitives - case: fields_inside_mixins_used_in_model_subclasses_resolved_as_primitives
main: | main: |
from myapp.models import MyModel, AuthMixin from myapp.models import MyModel, AuthMixin
reveal_type(MyModel().username) # N: Revealed type is "builtins.str*" reveal_type(MyModel().username) # N: Revealed type is "builtins.str"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -156,10 +156,10 @@
class Book(models.Model): class Book(models.Model):
published = cast(models.Field[Year, Year], models.IntegerField()) published = cast(models.Field[Year, Year], models.IntegerField())
book = Book() book = Book()
reveal_type(book.published) # N: Revealed type is "main.Year*" reveal_type(book.published) # N: Revealed type is "main.Year"
book.published = 2006 # E: Incompatible types in assignment (expression has type "int", variable has type "Year") book.published = 2006 # E: Incompatible types in assignment (expression has type "int", variable has type "Year")
book.published = Year(2006) book.published = Year(2006)
reveal_type(book.published) # N: Revealed type is "main.Year*" reveal_type(book.published) # N: Revealed type is "main.Year"
def accepts_int(arg: int) -> None: ... def accepts_int(arg: int) -> None: ...
accepts_int(book.published) accepts_int(book.published)
@@ -179,4 +179,4 @@
small = models.SmallAutoField(primary_key=True) small = models.SmallAutoField(primary_key=True)
obj = MyModel() obj = MyModel()
reveal_type(obj.small) # N: Revealed type is "builtins.int*" reveal_type(obj.small) # N: Revealed type is "builtins.int"

View File

@@ -34,7 +34,7 @@
- case: nullable_field_with_strict_optional_true - case: nullable_field_with_strict_optional_true
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
reveal_type(MyModel().text) # N: Revealed type is "builtins.str*" reveal_type(MyModel().text) # N: Revealed type is "builtins.str"
reveal_type(MyModel().text_nullable) # N: Revealed type is "Union[builtins.str, None]" reveal_type(MyModel().text_nullable) # N: Revealed type is "Union[builtins.str, None]"
MyModel().text = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[str, int, Combinable]") MyModel().text = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[str, int, Combinable]")
MyModel().text_nullable = None MyModel().text_nullable = None

View File

@@ -2,7 +2,7 @@
main: | main: |
from myapp.models import User from myapp.models import User
user = User(array=[]) user = User(array=[])
reveal_type(user.array) # N: Revealed type is "builtins.list*[Any]" reveal_type(user.array) # N: Revealed type is "builtins.list[Any]"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -19,8 +19,8 @@
main: | main: |
from myapp.models import User from myapp.models import User
user = User() user = User()
reveal_type(user.members) # N: Revealed type is "builtins.list*[builtins.int]" reveal_type(user.members) # N: Revealed type is "builtins.list[builtins.int]"
reveal_type(user.members_as_text) # N: Revealed type is "builtins.list*[builtins.str]" reveal_type(user.members_as_text) # N: Revealed type is "builtins.list[builtins.str]"
installed_apps: installed_apps:
- myapp - myapp
files: files:

View File

@@ -2,7 +2,7 @@
main: | main: |
from myapp.models import Book, Publisher from myapp.models import Book, Publisher
book = Book() book = Book()
reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher*" reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher"
publisher = Publisher() publisher = Publisher()
reveal_type(publisher.books) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]" reveal_type(publisher.books) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
installed_apps: installed_apps:
@@ -22,8 +22,8 @@
main: | main: |
from myapp.models import Book from myapp.models import Book
book = Book() book = Book()
reveal_type(book.publisher_id) # N: Revealed type is "builtins.int*" reveal_type(book.publisher_id) # N: Revealed type is "builtins.int"
reveal_type(book.owner_id) # N: Revealed type is "builtins.int*" reveal_type(book.owner_id) # N: Revealed type is "builtins.int"
installed_apps: installed_apps:
- django.contrib.auth - django.contrib.auth
- myapp - myapp
@@ -42,8 +42,8 @@
main: | main: |
from myapp.models import Book, Publisher from myapp.models import Book, Publisher
book = Book() book = Book()
reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher*" reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher"
reveal_type(book.publisher2) # N: Revealed type is "myapp.models.Publisher*" reveal_type(book.publisher2) # N: Revealed type is "myapp.models.Publisher"
publisher = Publisher() publisher = Publisher()
reveal_type(publisher.books) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]" reveal_type(publisher.books) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
@@ -66,7 +66,7 @@
main: | main: |
from myapp2.models import Book from myapp2.models import Book
book = Book() book = Book()
reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher*" reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher"
installed_apps: installed_apps:
- myapp - myapp
- myapp2 - myapp2
@@ -88,7 +88,7 @@
main: | main: |
from myapp.models import User, Profile from myapp.models import User, Profile
reveal_type(User().profile) # N: Revealed type is "myapp.models.Profile" reveal_type(User().profile) # N: Revealed type is "myapp.models.Profile"
reveal_type(Profile().user) # N: Revealed type is "myapp.models.User*" reveal_type(Profile().user) # N: Revealed type is "myapp.models.User"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -197,7 +197,7 @@
- case: models_imported_inside_init_file_one_to_one_field - case: models_imported_inside_init_file_one_to_one_field
main: | main: |
from myapp2.models import Profile from myapp2.models import Profile
reveal_type(Profile().user) # N: Revealed type is "myapp.models.user.User*" reveal_type(Profile().user) # N: Revealed type is "myapp.models.user.User"
reveal_type(Profile().user.profile) # N: Revealed type is "myapp2.models.Profile" reveal_type(Profile().user.profile) # N: Revealed type is "myapp2.models.Profile"
installed_apps: installed_apps:
- myapp - myapp
@@ -223,7 +223,7 @@
- case: models_triple_circular_reference - case: models_triple_circular_reference
main: | main: |
from myapp.models import App from myapp.models import App
reveal_type(App().owner) # N: Revealed type is "myapp.models.user.User*" reveal_type(App().owner) # N: Revealed type is "myapp.models.user.User"
reveal_type(App().owner.profile) # N: Revealed type is "myapp.models.profile.Profile" reveal_type(App().owner.profile) # N: Revealed type is "myapp.models.profile.Profile"
installed_apps: installed_apps:
- myapp - myapp
@@ -253,7 +253,7 @@
- case: many_to_many_field_converts_to_queryset_of_model_type - case: many_to_many_field_converts_to_queryset_of_model_type
main: | main: |
from myapp.models import App, Member from myapp.models import App, Member
reveal_type(Member().apps) # N: Revealed type is "django.db.models.manager.RelatedManager*[myapp.models.App]" reveal_type(Member().apps) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.App]"
reveal_type(App().members) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Member]" reveal_type(App().members) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Member]"
installed_apps: installed_apps:
- myapp - myapp
@@ -270,7 +270,7 @@
- case: many_to_many_works_with_string_if_imported - case: many_to_many_works_with_string_if_imported
main: | main: |
from myapp.models import Member from myapp.models import Member
reveal_type(Member().apps) # N: Revealed type is "django.db.models.manager.RelatedManager*[myapp2.models.App]" reveal_type(Member().apps) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp2.models.App]"
installed_apps: installed_apps:
- myapp - myapp
- myapp2 - myapp2
@@ -291,7 +291,7 @@
- case: foreign_key_with_self - case: foreign_key_with_self
main: | main: |
from myapp.models import User from myapp.models import User
reveal_type(User().parent) # N: Revealed type is "myapp.models.User*" reveal_type(User().parent) # N: Revealed type is "myapp.models.User"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -305,7 +305,7 @@
- case: many_to_many_with_self - case: many_to_many_with_self
main: | main: |
from myapp.models import User from myapp.models import User
reveal_type(User().friends) # N: Revealed type is "django.db.models.manager.RelatedManager*[myapp.models.User]" reveal_type(User().friends) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.User]"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -354,14 +354,14 @@
import datetime import datetime
from myapp.models import Book, Book2 from myapp.models import Book, Book2
reveal_type(Book().publisher_id) # N: Revealed type is "builtins.str*" reveal_type(Book().publisher_id) # N: Revealed type is "builtins.str"
Book(publisher_id=1) Book(publisher_id=1)
Book(publisher_id='hello') Book(publisher_id='hello')
Book(publisher_id=datetime.datetime.now()) # E: Incompatible type for "publisher_id" of "Book" (got "datetime", expected "Union[str, int, Combinable]") Book(publisher_id=datetime.datetime.now()) # E: Incompatible type for "publisher_id" of "Book" (got "datetime", expected "Union[str, int, Combinable]")
Book.objects.create(publisher_id=1) Book.objects.create(publisher_id=1)
Book.objects.create(publisher_id='hello') Book.objects.create(publisher_id='hello')
reveal_type(Book2().publisher_id) # N: Revealed type is "builtins.int*" reveal_type(Book2().publisher_id) # N: Revealed type is "builtins.int"
Book2(publisher_id=1) Book2(publisher_id=1)
Book2(publisher_id=[]) # E: Incompatible type for "publisher_id" of "Book2" (got "List[Any]", expected "Union[float, int, str, Combinable]") Book2(publisher_id=[]) # E: Incompatible type for "publisher_id" of "Book2" (got "List[Any]", expected "Union[float, int, str, Combinable]")
Book2.objects.create(publisher_id=1) Book2.objects.create(publisher_id=1)
@@ -387,7 +387,7 @@
- case: if_model_is_defined_as_name_of_the_class_look_for_it_in_the_same_app - case: if_model_is_defined_as_name_of_the_class_look_for_it_in_the_same_app
main: | main: |
from myapp.models import Book from myapp.models import Book
reveal_type(Book().publisher) # N: Revealed type is "myapp.models.publisher.Publisher*" reveal_type(Book().publisher) # N: Revealed type is "myapp.models.publisher.Publisher"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -434,7 +434,7 @@
main: | main: |
from myapp.models import Book, Publisher from myapp.models import Book, Publisher
book = Book() book = Book()
reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher*" reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher"
publisher = Publisher() publisher = Publisher()
reveal_type(publisher.books) reveal_type(publisher.books)
@@ -461,7 +461,7 @@
main: | main: |
from myapp.models import Book from myapp.models import Book
book = Book() book = Book()
reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher*" reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher"
custom_settings: | custom_settings: |
INSTALLED_APPS = ('django.contrib.contenttypes', 'myapp') INSTALLED_APPS = ('django.contrib.contenttypes', 'myapp')
BOOK_RELATED_MODEL = 'myapp.Publisher' BOOK_RELATED_MODEL = 'myapp.Publisher'
@@ -481,7 +481,7 @@
- case: foreign_key_with_custom_app_name - case: foreign_key_with_custom_app_name
main: | main: |
from myapp.models import MyMain from myapp.models import MyMain
reveal_type(MyMain().user) # N: Revealed type is "myapp2.models.MyUser*" reveal_type(MyMain().user) # N: Revealed type is "myapp2.models.MyUser"
installed_apps: installed_apps:
- myapp - myapp
- myapp2.apps.MyApp2Config - myapp2.apps.MyApp2Config
@@ -509,7 +509,7 @@
- case: related_field_to_extracted_from_function - case: related_field_to_extracted_from_function
main: | main: |
from myapp.models import Profile from myapp.models import Profile
reveal_type(Profile().user) # N: Revealed type is "myapp.models.User*" reveal_type(Profile().user) # N: Revealed type is "myapp.models.User"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -576,8 +576,8 @@
- case: test_foreign_key_from_superclass_inherits_correctly - case: test_foreign_key_from_superclass_inherits_correctly
main: | main: |
from myapp.models import MyUser, Book, Article, LibraryEntity from myapp.models import MyUser, Book, Article, LibraryEntity
reveal_type(Book().registered_by_user) # N: Revealed type is "myapp.models.MyUser*" reveal_type(Book().registered_by_user) # N: Revealed type is "myapp.models.MyUser"
reveal_type(Article().registered_by_user) # N: Revealed type is "myapp.models.MyUser*" reveal_type(Article().registered_by_user) # N: Revealed type is "myapp.models.MyUser"
user = MyUser() user = MyUser()
reveal_type(user.book_set) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]" reveal_type(user.book_set) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
@@ -604,16 +604,16 @@
- case: test_foreign_key_from_superclass_inherits_correctly_when_also_inheriting_manager - case: test_foreign_key_from_superclass_inherits_correctly_when_also_inheriting_manager
main: | main: |
from myapp.models import MyUser, Book, Article, LibraryEntity from myapp.models import MyUser, Book, Article, LibraryEntity
reveal_type(Book().registered_by_user) # N: Revealed type is "myapp.models.MyUser*" reveal_type(Book().registered_by_user) # N: Revealed type is "myapp.models.MyUser"
reveal_type(Article().registered_by_user) # N: Revealed type is "myapp.models.MyUser*" reveal_type(Article().registered_by_user) # N: Revealed type is "myapp.models.MyUser"
user = MyUser() user = MyUser()
reveal_type(user.book_set) # N: Revealed type is "myapp.models.Book_RelatedManager" reveal_type(user.book_set) # N: Revealed type is "myapp.models.Book_RelatedManager"
reveal_type(user.article_set) # N: Revealed type is "myapp.models.Article_RelatedManager" reveal_type(user.article_set) # N: Revealed type is "myapp.models.Article_RelatedManager"
reveal_type(user.book_set.add) # N: Revealed type is "def (*objs: Union[myapp.models.Book*, builtins.int], *, bulk: builtins.bool =)" reveal_type(user.book_set.add) # N: Revealed type is "def (*objs: Union[myapp.models.Book, builtins.int], *, bulk: builtins.bool =)"
reveal_type(user.article_set.add) # N: Revealed type is "def (*objs: Union[myapp.models.Article*, builtins.int], *, bulk: builtins.bool =)" reveal_type(user.article_set.add) # N: Revealed type is "def (*objs: Union[myapp.models.Article, builtins.int], *, bulk: builtins.bool =)"
reveal_type(user.book_set.filter) # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.LibraryEntityQuerySet[myapp.models.Book*]" reveal_type(user.book_set.filter) # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.LibraryEntityQuerySet[myapp.models.Book]"
reveal_type(user.article_set.filter) # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.LibraryEntityQuerySet[myapp.models.Article*]" reveal_type(user.article_set.filter) # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.LibraryEntityQuerySet[myapp.models.Article]"
reveal_type(user.book_set.queryset_method()) # N: Revealed type is "builtins.int" reveal_type(user.book_set.queryset_method()) # N: Revealed type is "builtins.int"
reveal_type(user.article_set.queryset_method()) # N: Revealed type is "builtins.int" reveal_type(user.article_set.queryset_method()) # N: Revealed type is "builtins.int"
installed_apps: installed_apps:
@@ -665,8 +665,8 @@
- case: resolve_primary_keys_for_foreign_keys_with_abstract_self_model - case: resolve_primary_keys_for_foreign_keys_with_abstract_self_model
main: | main: |
from myapp.models import User from myapp.models import User
reveal_type(User().parent) # N: Revealed type is "myapp.models.User*" reveal_type(User().parent) # N: Revealed type is "myapp.models.User"
reveal_type(User().parent_id) # N: Revealed type is "builtins.int*" reveal_type(User().parent_id) # N: Revealed type is "builtins.int"
reveal_type(User().parent2) # N: Revealed type is "Union[myapp.models.User, None]" reveal_type(User().parent2) # N: Revealed type is "Union[myapp.models.User, None]"
reveal_type(User().parent2_id) # N: Revealed type is "Union[builtins.int, None]" reveal_type(User().parent2_id) # N: Revealed type is "Union[builtins.int, None]"
@@ -690,11 +690,11 @@
main: | main: |
from myapp.models import User, Order, Product from myapp.models import User, Order, Product
reveal_type(User().orders) # N: Revealed type is "myapp.models.Order_RelatedManager" reveal_type(User().orders) # N: Revealed type is "myapp.models.Order_RelatedManager"
reveal_type(User().orders.get()) # N: Revealed type is "myapp.models.Order*" reveal_type(User().orders.get()) # N: Revealed type is "myapp.models.Order"
reveal_type(User().orders.manager_method()) # N: Revealed type is "builtins.int" reveal_type(User().orders.manager_method()) # N: Revealed type is "builtins.int"
reveal_type(Product.objects.queryset_method()) # N: Revealed type is "builtins.int" reveal_type(Product.objects.queryset_method()) # N: Revealed type is "builtins.int"
reveal_type(Order().products) # N: Revealed type is "myapp.models.Product_RelatedManager" reveal_type(Order().products) # N: Revealed type is "myapp.models.Product_RelatedManager"
reveal_type(Order().products.get()) # N: Revealed type is "myapp.models.Product*" reveal_type(Order().products.get()) # N: Revealed type is "myapp.models.Product"
reveal_type(Order().products.queryset_method()) # N: Revealed type is "builtins.int" reveal_type(Order().products.queryset_method()) # N: Revealed type is "builtins.int"
if 1 == 2: if 1 == 2:
manager = User().products manager = User().products
@@ -731,11 +731,11 @@
from myapp.models.user import User from myapp.models.user import User
reveal_type(Store().purchases) # N: Revealed type is "myapp.models.purchase.Purchase_RelatedManager" reveal_type(Store().purchases) # N: Revealed type is "myapp.models.purchase.Purchase_RelatedManager"
reveal_type(Store().purchases.queryset_method()) # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet" reveal_type(Store().purchases.queryset_method()) # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet"
reveal_type(Store().purchases.filter()) # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet[myapp.models.purchase.Purchase*]" reveal_type(Store().purchases.filter()) # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet[myapp.models.purchase.Purchase]"
reveal_type(Store().purchases.filter().queryset_method()) # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet" reveal_type(Store().purchases.filter().queryset_method()) # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet"
reveal_type(User().purchases) # N: Revealed type is "myapp.models.purchase.Purchase_RelatedManager" reveal_type(User().purchases) # N: Revealed type is "myapp.models.purchase.Purchase_RelatedManager"
reveal_type(User().purchases.queryset_method()) # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet" reveal_type(User().purchases.queryset_method()) # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet"
reveal_type(User().purchases.filter()) # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet[myapp.models.purchase.Purchase*]" reveal_type(User().purchases.filter()) # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet[myapp.models.purchase.Purchase]"
reveal_type(User().purchases.filter().queryset_method()) # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet" reveal_type(User().purchases.filter().queryset_method()) # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet"
installed_apps: installed_apps:
- myapp - myapp

View File

@@ -122,10 +122,10 @@
reveal_type(qs) # N: Revealed type is "django.db.models.query._QuerySet[django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any})], django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any})]]" reveal_type(qs) # N: Revealed type is "django.db.models.query._QuerySet[django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any})], django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any})]]"
annotated = qs.get() annotated = qs.get()
reveal_type(annotated) # N: Revealed type is "django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any})]*" reveal_type(annotated) # N: Revealed type is "django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any})]"
reveal_type(annotated.foo) # N: Revealed type is "Any" reveal_type(annotated.foo) # N: Revealed type is "Any"
print(annotated.bar) # E: "WithAnnotations[myapp__models__User, TypedDict({'foo': Any})]" has no attribute "bar" print(annotated.bar) # E: "WithAnnotations[myapp__models__User, TypedDict({'foo': Any})]" has no attribute "bar"
reveal_type(annotated.username) # N: Revealed type is "builtins.str*" reveal_type(annotated.username) # N: Revealed type is "builtins.str"
installed_apps: installed_apps:
- myapp - myapp
@@ -196,10 +196,10 @@
qs = User.objects.annotate(foo=F('id')) qs = User.objects.annotate(foo=F('id'))
qs = qs.annotate(bar=F('id')) qs = qs.annotate(bar=F('id'))
annotated = qs.get() annotated = qs.get()
reveal_type(annotated) # N: Revealed type is "django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any, 'bar': Any})]*" reveal_type(annotated) # N: Revealed type is "django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any, 'bar': Any})]"
reveal_type(annotated.foo) # N: Revealed type is "Any" reveal_type(annotated.foo) # N: Revealed type is "Any"
reveal_type(annotated.bar) # N: Revealed type is "Any" reveal_type(annotated.bar) # N: Revealed type is "Any"
reveal_type(annotated.username) # N: Revealed type is "builtins.str*" reveal_type(annotated.username) # N: Revealed type is "builtins.str"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -280,19 +280,19 @@
values_list_flat_known = Blog.objects.annotate(foo=F('id')).values_list('text', flat=True).get() values_list_flat_known = Blog.objects.annotate(foo=F('id')).values_list('text', flat=True).get()
# Even though it's annotated, we still know the lookup's type. # Even though it's annotated, we still know the lookup's type.
reveal_type(values_list_flat_known) # N: Revealed type is "builtins.str*" reveal_type(values_list_flat_known) # N: Revealed type is "builtins.str"
values_list_flat_unknown = Blog.objects.annotate(foo=F('id')).values_list('foo', flat=True).get() values_list_flat_unknown = Blog.objects.annotate(foo=F('id')).values_list('foo', flat=True).get()
# We don't know the type of an unknown lookup # We don't know the type of an unknown lookup
reveal_type(values_list_flat_unknown) # N: Revealed type is "Any" reveal_type(values_list_flat_unknown) # N: Revealed type is "Any"
values_no_params = Blog.objects.annotate(foo=F('id')).values().get() values_no_params = Blog.objects.annotate(foo=F('id')).values().get()
reveal_type(values_no_params) # N: Revealed type is "builtins.dict*[builtins.str, Any]" reveal_type(values_no_params) # N: Revealed type is "builtins.dict[builtins.str, Any]"
values_list_no_params = Blog.objects.annotate(foo=F('id')).values_list().get() values_list_no_params = Blog.objects.annotate(foo=F('id')).values_list().get()
reveal_type(values_list_no_params) # N: Revealed type is "builtins.tuple*[Any, ...]" reveal_type(values_list_no_params) # N: Revealed type is "builtins.tuple[Any, ...]"
values_list_flat_no_params = Blog.objects.annotate(foo=F('id')).values_list(flat=True).get() values_list_flat_no_params = Blog.objects.annotate(foo=F('id')).values_list(flat=True).get()
reveal_type(values_list_flat_no_params) # N: Revealed type is "builtins.int*" reveal_type(values_list_flat_no_params) # N: Revealed type is "builtins.int"
values_list_named_no_params = Blog.objects.annotate(foo=F('id')).values_list(named=True).get() values_list_named_no_params = Blog.objects.annotate(foo=F('id')).values_list(named=True).get()
reveal_type(values_list_named_no_params.foo) # N: Revealed type is "Any" reveal_type(values_list_named_no_params.foo) # N: Revealed type is "Any"
@@ -324,13 +324,13 @@
before_values_no_params = Blog.objects.values().annotate(foo=F('id')).get() before_values_no_params = Blog.objects.values().annotate(foo=F('id')).get()
reveal_type(before_values_no_params) # N: Revealed type is "builtins.dict*[builtins.str, Any]" reveal_type(before_values_no_params) # N: Revealed type is "builtins.dict[builtins.str, Any]"
before_values_list_no_params = Blog.objects.values_list().annotate(foo=F('id')).get() before_values_list_no_params = Blog.objects.values_list().annotate(foo=F('id')).get()
reveal_type(before_values_list_no_params) # N: Revealed type is "builtins.tuple*[Any, ...]" reveal_type(before_values_list_no_params) # N: Revealed type is "builtins.tuple[Any, ...]"
before_values_list_flat_no_params = Blog.objects.values_list(flat=True).annotate(foo=F('id')).get() before_values_list_flat_no_params = Blog.objects.values_list(flat=True).annotate(foo=F('id')).get()
reveal_type(before_values_list_flat_no_params) # N: Revealed type is "builtins.int*" reveal_type(before_values_list_flat_no_params) # N: Revealed type is "builtins.int"
before_values_list_named_no_params = Blog.objects.values_list(named=True).annotate(foo=F('id')).get() before_values_list_named_no_params = Blog.objects.values_list(named=True).annotate(foo=F('id')).get()
reveal_type(before_values_list_named_no_params.foo) # N: Revealed type is "Any" reveal_type(before_values_list_named_no_params.foo) # N: Revealed type is "Any"

View File

@@ -4,24 +4,24 @@
from myapp.models import Blog from myapp.models import Blog
qs = Blog.objects.all() qs = Blog.objects.all()
reveal_type(qs) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog*, myapp.models.Blog*]" reveal_type(qs) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, myapp.models.Blog]"
reveal_type(qs.get(id=1)) # N: Revealed type is "myapp.models.Blog*" reveal_type(qs.get(id=1)) # N: Revealed type is "myapp.models.Blog"
reveal_type(iter(qs)) # N: Revealed type is "typing.Iterator*[myapp.models.Blog*]" reveal_type(iter(qs)) # N: Revealed type is "typing.Iterator[myapp.models.Blog]"
reveal_type(qs.iterator()) # N: Revealed type is "typing.Iterator[myapp.models.Blog*]" reveal_type(qs.iterator()) # N: Revealed type is "typing.Iterator[myapp.models.Blog]"
reveal_type(qs.first()) # N: Revealed type is "Union[myapp.models.Blog*, None]" reveal_type(qs.first()) # N: Revealed type is "Union[myapp.models.Blog, None]"
reveal_type(qs.earliest()) # N: Revealed type is "myapp.models.Blog*" reveal_type(qs.earliest()) # N: Revealed type is "myapp.models.Blog"
reveal_type(qs[0]) # N: Revealed type is "myapp.models.Blog*" reveal_type(qs[0]) # N: Revealed type is "myapp.models.Blog"
reveal_type(qs[:9]) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, myapp.models.Blog]" reveal_type(qs[:9]) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, myapp.models.Blog]"
reveal_type(qs.create()) # N: Revealed type is "myapp.models.Blog*" reveal_type(qs.create()) # N: Revealed type is "myapp.models.Blog"
reveal_type(qs.get_or_create()) # N: Revealed type is "Tuple[myapp.models.Blog*, builtins.bool]" reveal_type(qs.get_or_create()) # N: Revealed type is "Tuple[myapp.models.Blog, builtins.bool]"
reveal_type(qs.exists()) # N: Revealed type is "builtins.bool" reveal_type(qs.exists()) # N: Revealed type is "builtins.bool"
reveal_type(qs.none()) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, myapp.models.Blog]" reveal_type(qs.none()) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, myapp.models.Blog]"
reveal_type(qs.update_or_create()) # N: Revealed type is "Tuple[myapp.models.Blog*, builtins.bool]" reveal_type(qs.update_or_create()) # N: Revealed type is "Tuple[myapp.models.Blog, builtins.bool]"
reveal_type(qs.explain()) # N: Revealed type is "builtins.str" reveal_type(qs.explain()) # N: Revealed type is "builtins.str"
reveal_type(qs.raw(qs.explain())) # N: Revealed type is "django.db.models.query.RawQuerySet[Any]" reveal_type(qs.raw(qs.explain())) # N: Revealed type is "django.db.models.query.RawQuerySet[Any]"
# .dates / .datetimes # .dates / .datetimes
reveal_type(Blog.objects.dates("created_at", "day")) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog*, datetime.date]" reveal_type(Blog.objects.dates("created_at", "day")) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, datetime.date]"
reveal_type(Blog.objects.datetimes("created_at", "day")) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog*, datetime.datetime]" reveal_type(Blog.objects.datetimes("created_at", "day")) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, datetime.datetime]"
# AND-ing QuerySets # AND-ing QuerySets
reveal_type(Blog.objects.all() & Blog.objects.all()) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, myapp.models.Blog]" reveal_type(Blog.objects.all() & Blog.objects.all()) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, myapp.models.Blog]"
@@ -29,9 +29,9 @@
# bulk methods # bulk methods
reveal_type(qs.count()) # N: Revealed type is "builtins.int" reveal_type(qs.count()) # N: Revealed type is "builtins.int"
reveal_type(qs.update(created_at=timezone.now())) # N: Revealed type is "builtins.int" reveal_type(qs.update(created_at=timezone.now())) # N: Revealed type is "builtins.int"
reveal_type(qs.in_bulk()) # N: Revealed type is "builtins.dict[Any, myapp.models.Blog*]" reveal_type(qs.in_bulk()) # N: Revealed type is "builtins.dict[Any, myapp.models.Blog]"
reveal_type(qs.bulk_update(list(qs), fields=["created_at"])) # N: Revealed type is "builtins.int" reveal_type(qs.bulk_update(list(qs), fields=["created_at"])) # N: Revealed type is "builtins.int"
reveal_type(qs.bulk_create([])) # N: Revealed type is "builtins.list[myapp.models.Blog*]" reveal_type(qs.bulk_create([])) # N: Revealed type is "builtins.list[myapp.models.Blog]"
reveal_type(qs.delete()) # N: Revealed type is "Tuple[builtins.int, builtins.dict[builtins.str, builtins.int]]" reveal_type(qs.delete()) # N: Revealed type is "Tuple[builtins.int, builtins.dict[builtins.str, builtins.int]]"
installed_apps: installed_apps:
- myapp - myapp

View File

@@ -2,10 +2,10 @@
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
reveal_type(MyModel().objects) # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]" reveal_type(MyModel().objects) # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]"
reveal_type(MyModel().objects.get()) # N: Revealed type is "myapp.models.MyModel*" reveal_type(MyModel().objects.get()) # N: Revealed type is "myapp.models.MyModel"
reveal_type(MyModel().objects.queryset_method()) # N: Revealed type is "builtins.str" reveal_type(MyModel().objects.queryset_method()) # N: Revealed type is "builtins.str"
reveal_type(MyModel.objects.filter(id=1).queryset_method()) # N: Revealed type is "builtins.str" reveal_type(MyModel.objects.filter(id=1).queryset_method()) # N: Revealed type is "builtins.str"
reveal_type(MyModel.objects.filter(id=1)) # N: Revealed type is "myapp.models.ModelQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.filter(id=1)) # N: Revealed type is "myapp.models.ModelQuerySet[myapp.models.MyModel]"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -27,13 +27,13 @@
from myapp.models import MyModel from myapp.models import MyModel
reveal_type(MyModel.objects) # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]" reveal_type(MyModel.objects) # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]"
reveal_type(MyModel.objects) # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]" reveal_type(MyModel.objects) # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]"
reveal_type(MyModel.objects.get()) # N: Revealed type is "myapp.models.MyModel*" reveal_type(MyModel.objects.get()) # N: Revealed type is "myapp.models.MyModel"
reveal_type(MyModel.objects.queryset_method()) # N: Revealed type is "myapp.querysets.ModelQuerySet" reveal_type(MyModel.objects.queryset_method()) # N: Revealed type is "myapp.querysets.ModelQuerySet"
reveal_type(MyModel.objects.queryset_method_2()) # N: Revealed type is "typing.Iterable[myapp.querysets.Custom]" reveal_type(MyModel.objects.queryset_method_2()) # N: Revealed type is "typing.Iterable[myapp.querysets.Custom]"
reveal_type(MyModel.objects.queryset_method_3()) # N: Revealed type is "builtins.str" reveal_type(MyModel.objects.queryset_method_3()) # N: Revealed type is "builtins.str"
reveal_type(MyModel.objects.queryset_method_4([])) # N: Revealed type is "None" reveal_type(MyModel.objects.queryset_method_4([])) # N: Revealed type is "None"
reveal_type(MyModel.objects.filter(id=1).queryset_method()) # N: Revealed type is "myapp.querysets.ModelQuerySet" reveal_type(MyModel.objects.filter(id=1).queryset_method()) # N: Revealed type is "myapp.querysets.ModelQuerySet"
reveal_type(MyModel.objects.filter(id=1)) # N: Revealed type is "myapp.querysets.ModelQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.filter(id=1)) # N: Revealed type is "myapp.querysets.ModelQuerySet[myapp.models.MyModel]"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -75,7 +75,7 @@
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
reveal_type(MyModel().objects) # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]" reveal_type(MyModel().objects) # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]"
reveal_type(MyModel().objects.get()) # N: Revealed type is "myapp.models.MyModel*" reveal_type(MyModel().objects.get()) # N: Revealed type is "myapp.models.MyModel"
reveal_type(MyModel().objects.queryset_method()) # N: Revealed type is "builtins.str" reveal_type(MyModel().objects.queryset_method()) # N: Revealed type is "builtins.str"
installed_apps: installed_apps:
- myapp - myapp
@@ -149,7 +149,7 @@
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
reveal_type(MyModel().objects) # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]" reveal_type(MyModel().objects) # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]"
reveal_type(MyModel().objects.get()) # N: Revealed type is "myapp.models.MyModel*" reveal_type(MyModel().objects.get()) # N: Revealed type is "myapp.models.MyModel"
reveal_type(MyModel().objects.queryset_method()) # N: Revealed type is "builtins.str" reveal_type(MyModel().objects.queryset_method()) # N: Revealed type is "builtins.str"
installed_apps: installed_apps:
- myapp - myapp
@@ -173,7 +173,7 @@
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
reveal_type(MyModel().objects) # N: Revealed type is "myapp.managers.NewManager[myapp.models.MyModel]" reveal_type(MyModel().objects) # N: Revealed type is "myapp.managers.NewManager[myapp.models.MyModel]"
reveal_type(MyModel().objects.get()) # N: Revealed type is "myapp.models.MyModel*" reveal_type(MyModel().objects.get()) # N: Revealed type is "myapp.models.MyModel"
reveal_type(MyModel().objects.queryset_method) # N: Revealed type is "def (param: Union[builtins.str, None] =) -> Union[builtins.str, None]" reveal_type(MyModel().objects.queryset_method) # N: Revealed type is "def (param: Union[builtins.str, None] =) -> Union[builtins.str, None]"
reveal_type(MyModel().objects.queryset_method('str')) # N: Revealed type is "Union[builtins.str, None]" reveal_type(MyModel().objects.queryset_method('str')) # N: Revealed type is "Union[builtins.str, None]"
installed_apps: installed_apps:
@@ -203,7 +203,7 @@
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
reveal_type(MyModel().objects) # N: Revealed type is "myapp.managers.NewManager[myapp.models.MyModel]" reveal_type(MyModel().objects) # N: Revealed type is "myapp.managers.NewManager[myapp.models.MyModel]"
reveal_type(MyModel().objects.get()) # N: Revealed type is "myapp.models.MyModel*" reveal_type(MyModel().objects.get()) # N: Revealed type is "myapp.models.MyModel"
reveal_type(MyModel().objects.base_queryset_method) # N: Revealed type is "def (param: Union[builtins.int, builtins.str]) -> <nothing>" reveal_type(MyModel().objects.base_queryset_method) # N: Revealed type is "def (param: Union[builtins.int, builtins.str]) -> <nothing>"
reveal_type(MyModel().objects.base_queryset_method(2)) # N: Revealed type is "<nothing>" reveal_type(MyModel().objects.base_queryset_method(2)) # N: Revealed type is "<nothing>"
installed_apps: installed_apps:
@@ -350,25 +350,25 @@
- case: from_queryset_includes_methods_returning_queryset - case: from_queryset_includes_methods_returning_queryset
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
reveal_type(MyModel.objects.none) # N: Revealed type is "def () -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.none) # N: Revealed type is "def () -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.all) # N: Revealed type is "def () -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.all) # N: Revealed type is "def () -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.filter) # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.filter) # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.exclude) # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.exclude) # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.complex_filter) # N: Revealed type is "def (filter_obj: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.complex_filter) # N: Revealed type is "def (filter_obj: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.union) # N: Revealed type is "def (*other_qs: Any, *, all: builtins.bool =) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.union) # N: Revealed type is "def (*other_qs: Any, *, all: builtins.bool =) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.intersection) # N: Revealed type is "def (*other_qs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.intersection) # N: Revealed type is "def (*other_qs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.difference) # N: Revealed type is "def (*other_qs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.difference) # N: Revealed type is "def (*other_qs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.select_for_update) # N: Revealed type is "def (nowait: builtins.bool =, skip_locked: builtins.bool =, of: typing.Sequence[builtins.str] =, no_key: builtins.bool =) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.select_for_update) # N: Revealed type is "def (nowait: builtins.bool =, skip_locked: builtins.bool =, of: typing.Sequence[builtins.str] =, no_key: builtins.bool =) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.select_related) # N: Revealed type is "def (*fields: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.select_related) # N: Revealed type is "def (*fields: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.prefetch_related) # N: Revealed type is "def (*lookups: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.prefetch_related) # N: Revealed type is "def (*lookups: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.annotate) # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.annotate) # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.alias) # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.alias) # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.order_by) # N: Revealed type is "def (*field_names: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.order_by) # N: Revealed type is "def (*field_names: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.distinct) # N: Revealed type is "def (*field_names: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.distinct) # N: Revealed type is "def (*field_names: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.reverse) # N: Revealed type is "def () -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.reverse) # N: Revealed type is "def () -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.defer) # N: Revealed type is "def (*fields: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.defer) # N: Revealed type is "def (*fields: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.only) # N: Revealed type is "def (*fields: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.only) # N: Revealed type is "def (*fields: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
reveal_type(MyModel.objects.using) # N: Revealed type is "def (alias: Union[builtins.str, None]) -> myapp.models.MyQuerySet[myapp.models.MyModel*]" reveal_type(MyModel.objects.using) # N: Revealed type is "def (alias: Union[builtins.str, None]) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
installed_apps: installed_apps:
- myapp - myapp
files: files:

View File

@@ -37,7 +37,7 @@
reveal_type(query.all().get()) # N: Revealed type is "Tuple[builtins.str]" reveal_type(query.all().get()) # N: Revealed type is "Tuple[builtins.str]"
reveal_type(query.filter(age__gt=16).get()) # N: Revealed type is "Tuple[builtins.str]" reveal_type(query.filter(age__gt=16).get()) # N: Revealed type is "Tuple[builtins.str]"
reveal_type(query.exclude(age__lte=16).get()) # N: Revealed type is "Tuple[builtins.str]" reveal_type(query.exclude(age__lte=16).get()) # N: Revealed type is "Tuple[builtins.str]"
reveal_type(query.annotate(name_length=Length("name")).get()) # N: Revealed type is "builtins.tuple*[Any, ...]" reveal_type(query.annotate(name_length=Length("name")).get()) # N: Revealed type is "builtins.tuple[Any, ...]"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -79,12 +79,12 @@
- case: values_list_flat_true_methods - case: values_list_flat_true_methods
main: | main: |
from myapp.models import MyUser, MyUser2 from myapp.models import MyUser, MyUser2
reveal_type(MyUser.objects.values_list('name', flat=True).get()) # N: Revealed type is "builtins.str*" reveal_type(MyUser.objects.values_list('name', flat=True).get()) # N: Revealed type is "builtins.str"
reveal_type(MyUser.objects.values_list('name', 'age', flat=True).get()) reveal_type(MyUser.objects.values_list('name', 'age', flat=True).get())
# flat=True without specified fields returns primary key values # flat=True without specified fields returns primary key values
reveal_type(MyUser.objects.values_list(flat=True)[0]) # N: Revealed type is "builtins.int*" reveal_type(MyUser.objects.values_list(flat=True)[0]) # N: Revealed type is "builtins.int"
reveal_type(MyUser2.objects.values_list(flat=True)[0]) # N: Revealed type is "builtins.str*" reveal_type(MyUser2.objects.values_list(flat=True)[0]) # N: Revealed type is "builtins.str"
out: | out: |
main:3: error: 'flat' is not valid when 'values_list' is called with more than one field main:3: error: 'flat' is not valid when 'values_list' is called with more than one field
main:3: note: Revealed type is "Any" main:3: note: Revealed type is "Any"
@@ -217,7 +217,7 @@
reveal_type(Blog.objects.values_list('id', flat=True)) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, builtins.int]" reveal_type(Blog.objects.values_list('id', flat=True)) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, builtins.int]"
reveal_type(Blog.objects.values_list('publisher_id', flat=True)) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, builtins.int]" reveal_type(Blog.objects.values_list('publisher_id', flat=True)) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, builtins.int]"
# is Iterable[int] # is Iterable[int]
reveal_type(list(Blog.objects.values_list('id', flat=True))) # N: Revealed type is "builtins.list[builtins.int*]" reveal_type(list(Blog.objects.values_list('id', flat=True))) # N: Revealed type is "builtins.list[builtins.int]"
installed_apps: installed_apps:
- myapp - myapp
files: files:

View File

@@ -2,7 +2,7 @@
main: | main: |
from myapp.models import User from myapp.models import User
reveal_type(User.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.User]" reveal_type(User.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.User]"
reveal_type(User.objects.get()) # N: Revealed type is "myapp.models.User*" reveal_type(User.objects.get()) # N: Revealed type is "myapp.models.User"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -59,7 +59,7 @@
main: | main: |
from myapp.models import Base, MyModel from myapp.models import Base, MyModel
base_instance = Base(MyModel) base_instance = Base(MyModel)
reveal_type(base_instance.model_cls._base_manager) # N: Revealed type is "django.db.models.manager.BaseManager[myapp.models.MyModel*]" reveal_type(base_instance.model_cls._base_manager) # N: Revealed type is "django.db.models.manager.BaseManager[myapp.models.MyModel]"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -78,7 +78,7 @@
pass pass
class Child(Base[MyModel]): class Child(Base[MyModel]):
def method(self) -> None: def method(self) -> None:
reveal_type(self.model_cls._base_manager) # N: Revealed type is "django.db.models.manager.BaseManager[myapp.models.MyModel*]" reveal_type(self.model_cls._base_manager) # N: Revealed type is "django.db.models.manager.BaseManager[myapp.models.MyModel]"
- case: if_custom_manager_defined_it_is_set_to_default_manager - case: if_custom_manager_defined_it_is_set_to_default_manager
main: | main: |
@@ -126,7 +126,7 @@
main: | main: |
from myapp.models import MyUser from myapp.models import MyUser
reveal_type(MyUser.objects) # N: Revealed type is "myapp.models.UserManager[myapp.models.MyUser]" reveal_type(MyUser.objects) # N: Revealed type is "myapp.models.UserManager[myapp.models.MyUser]"
reveal_type(MyUser.objects.get()) # N: Revealed type is "myapp.models.MyUser*" reveal_type(MyUser.objects.get()) # N: Revealed type is "myapp.models.MyUser"
reveal_type(MyUser.objects.get_or_404()) # N: Revealed type is "myapp.models.MyUser" reveal_type(MyUser.objects.get_or_404()) # N: Revealed type is "myapp.models.MyUser"
installed_apps: installed_apps:
- myapp - myapp
@@ -222,10 +222,10 @@
main: | main: |
from myapp.models import UnrelatedModel, MyModel from myapp.models import UnrelatedModel, MyModel
reveal_type(UnrelatedModel.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.UnrelatedModel]" reveal_type(UnrelatedModel.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.UnrelatedModel]"
reveal_type(UnrelatedModel.objects.first()) # N: Revealed type is "Union[myapp.models.UnrelatedModel*, None]" reveal_type(UnrelatedModel.objects.first()) # N: Revealed type is "Union[myapp.models.UnrelatedModel, None]"
reveal_type(MyModel.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel]" reveal_type(MyModel.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel]"
reveal_type(MyModel.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel*, None]" reveal_type(MyModel.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel, None]"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -243,10 +243,10 @@
main: | main: |
from myapp.models import UnrelatedModel2, MyModel2 from myapp.models import UnrelatedModel2, MyModel2
reveal_type(UnrelatedModel2.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.UnrelatedModel2]" reveal_type(UnrelatedModel2.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.UnrelatedModel2]"
reveal_type(UnrelatedModel2.objects.first()) # N: Revealed type is "Union[myapp.models.UnrelatedModel2*, None]" reveal_type(UnrelatedModel2.objects.first()) # N: Revealed type is "Union[myapp.models.UnrelatedModel2, None]"
reveal_type(MyModel2.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel2]" reveal_type(MyModel2.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel2]"
reveal_type(MyModel2.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel2*, None]" reveal_type(MyModel2.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel2, None]"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -264,10 +264,10 @@
main: | main: |
from myapp.models import ParentOfMyModel3, MyModel3 from myapp.models import ParentOfMyModel3, MyModel3
reveal_type(ParentOfMyModel3.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.ParentOfMyModel3]" reveal_type(ParentOfMyModel3.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.ParentOfMyModel3]"
reveal_type(ParentOfMyModel3.objects.first()) # N: Revealed type is "Union[myapp.models.ParentOfMyModel3*, None]" reveal_type(ParentOfMyModel3.objects.first()) # N: Revealed type is "Union[myapp.models.ParentOfMyModel3, None]"
reveal_type(MyModel3.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel3]" reveal_type(MyModel3.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel3]"
reveal_type(MyModel3.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel3*, None]" reveal_type(MyModel3.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel3, None]"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -285,10 +285,10 @@
main: | main: |
from myapp.models import ParentOfMyModel4, MyModel4 from myapp.models import ParentOfMyModel4, MyModel4
reveal_type(ParentOfMyModel4.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.ParentOfMyModel4]" reveal_type(ParentOfMyModel4.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.ParentOfMyModel4]"
reveal_type(ParentOfMyModel4.objects.first()) # N: Revealed type is "Union[myapp.models.ParentOfMyModel4*, None]" reveal_type(ParentOfMyModel4.objects.first()) # N: Revealed type is "Union[myapp.models.ParentOfMyModel4, None]"
reveal_type(MyModel4.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel4]" reveal_type(MyModel4.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel4]"
reveal_type(MyModel4.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel4*, None]" reveal_type(MyModel4.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel4, None]"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -333,15 +333,15 @@
main: | main: |
from myapp.models import User from myapp.models import User
reveal_type(User.objects) # N: Revealed type is "myapp.models.User_MyManager2[myapp.models.User]" reveal_type(User.objects) # N: Revealed type is "myapp.models.User_MyManager2[myapp.models.User]"
reveal_type(User.objects.select_related()) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.User*, myapp.models.User*]" reveal_type(User.objects.select_related()) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.User, myapp.models.User]"
reveal_type(User.objects.get()) # N: Revealed type is "myapp.models.User*" reveal_type(User.objects.get()) # N: Revealed type is "myapp.models.User"
reveal_type(User.objects.get_instance()) # N: Revealed type is "builtins.int" reveal_type(User.objects.get_instance()) # N: Revealed type is "builtins.int"
reveal_type(User.objects.get_instance_untyped('hello')) # N: Revealed type is "Any" reveal_type(User.objects.get_instance_untyped('hello')) # N: Revealed type is "Any"
from myapp.models import ChildUser from myapp.models import ChildUser
reveal_type(ChildUser.objects) # N: Revealed type is "myapp.models.ChildUser_MyManager2[myapp.models.ChildUser]" reveal_type(ChildUser.objects) # N: Revealed type is "myapp.models.ChildUser_MyManager2[myapp.models.ChildUser]"
reveal_type(ChildUser.objects.select_related()) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.ChildUser*, myapp.models.ChildUser*]" reveal_type(ChildUser.objects.select_related()) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.ChildUser, myapp.models.ChildUser]"
reveal_type(ChildUser.objects.get()) # N: Revealed type is "myapp.models.ChildUser*" reveal_type(ChildUser.objects.get()) # N: Revealed type is "myapp.models.ChildUser"
reveal_type(ChildUser.objects.get_instance()) # N: Revealed type is "builtins.int" reveal_type(ChildUser.objects.get_instance()) # N: Revealed type is "builtins.int"
reveal_type(ChildUser.objects.get_instance_untyped('hello')) # N: Revealed type is "Any" reveal_type(ChildUser.objects.get_instance_untyped('hello')) # N: Revealed type is "Any"
installed_apps: installed_apps:

View File

@@ -1,14 +1,14 @@
- case: contrib_auth_model_fields - case: contrib_auth_model_fields
main: | main: |
from django.contrib.auth.models import User from django.contrib.auth.models import User
reveal_type(User().username) # N: Revealed type is "builtins.str*" reveal_type(User().username) # N: Revealed type is "builtins.str"
reveal_type(User().password) # N: Revealed type is "builtins.str*" reveal_type(User().password) # N: Revealed type is "builtins.str"
reveal_type(User().first_name) # N: Revealed type is "builtins.str*" reveal_type(User().first_name) # N: Revealed type is "builtins.str"
reveal_type(User().last_name) # N: Revealed type is "builtins.str*" reveal_type(User().last_name) # N: Revealed type is "builtins.str"
reveal_type(User().email) # N: Revealed type is "builtins.str*" reveal_type(User().email) # N: Revealed type is "builtins.str"
reveal_type(User().is_staff) # N: Revealed type is "builtins.bool" reveal_type(User().is_staff) # N: Revealed type is "builtins.bool"
reveal_type(User().is_active) # N: Revealed type is "builtins.bool" reveal_type(User().is_active) # N: Revealed type is "builtins.bool"
reveal_type(User().date_joined) # N: Revealed type is "datetime.datetime*" reveal_type(User().date_joined) # N: Revealed type is "datetime.datetime"
reveal_type(User().last_login) # N: Revealed type is "Union[datetime.datetime, None]" reveal_type(User().last_login) # N: Revealed type is "Union[datetime.datetime, None]"
reveal_type(User().is_authenticated) # N: Revealed type is "Literal[True]" reveal_type(User().is_authenticated) # N: Revealed type is "Literal[True]"
reveal_type(User().is_anonymous) # N: Revealed type is "Literal[False]" reveal_type(User().is_anonymous) # N: Revealed type is "Literal[False]"
@@ -18,11 +18,11 @@
reveal_type(AnonymousUser().is_anonymous) # N: Revealed type is "Literal[True]" reveal_type(AnonymousUser().is_anonymous) # N: Revealed type is "Literal[True]"
from django.contrib.auth.models import Permission from django.contrib.auth.models import Permission
reveal_type(Permission().name) # N: Revealed type is "builtins.str*" reveal_type(Permission().name) # N: Revealed type is "builtins.str"
reveal_type(Permission().codename) # N: Revealed type is "builtins.str*" reveal_type(Permission().codename) # N: Revealed type is "builtins.str"
from django.contrib.auth.models import PermissionsMixin from django.contrib.auth.models import PermissionsMixin
reveal_type(PermissionsMixin().is_superuser) # N: Revealed type is "builtins.bool" reveal_type(PermissionsMixin().is_superuser) # N: Revealed type is "builtins.bool"
from django.contrib.auth.models import Group from django.contrib.auth.models import Group
reveal_type(Group().name) # N: Revealed type is "builtins.str*" reveal_type(Group().name) # N: Revealed type is "builtins.str"

View File

@@ -19,9 +19,9 @@
main: | main: |
from myapp.models import Child from myapp.models import Child
c = Child.objects.create(name='Maxim', lastname='Maxim2') c = Child.objects.create(name='Maxim', lastname='Maxim2')
reveal_type(c.id) # N: Revealed type is "builtins.int*" reveal_type(c.id) # N: Revealed type is "builtins.int"
reveal_type(c.name) # N: Revealed type is "builtins.str*" reveal_type(c.name) # N: Revealed type is "builtins.str"
reveal_type(c.lastname) # N: Revealed type is "builtins.str*" reveal_type(c.lastname) # N: Revealed type is "builtins.str"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -96,19 +96,19 @@
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
first = MyModel(id=None) first = MyModel(id=None)
reveal_type(first.id) # N: Revealed type is "builtins.int*" reveal_type(first.id) # N: Revealed type is "builtins.int"
first = MyModel.objects.create(id=None) first = MyModel.objects.create(id=None)
reveal_type(first.id) # N: Revealed type is "builtins.int*" reveal_type(first.id) # N: Revealed type is "builtins.int"
first = MyModel() first = MyModel()
first.id = None first.id = None
reveal_type(first.id) # N: Revealed type is "builtins.int*" reveal_type(first.id) # N: Revealed type is "builtins.int"
from myapp.models import MyModel2 from myapp.models import MyModel2
MyModel2(id=None) # E: Incompatible type for "id" of "MyModel2" (got "None", expected "Union[float, int, str, Combinable]") MyModel2(id=None) # E: Incompatible type for "id" of "MyModel2" (got "None", expected "Union[float, int, str, Combinable]")
MyModel2.objects.create(id=None) # E: Incompatible type for "id" of "MyModel2" (got "None", expected "Union[float, int, str, Combinable]") MyModel2.objects.create(id=None) # E: Incompatible type for "id" of "MyModel2" (got "None", expected "Union[float, int, str, Combinable]")
second = MyModel2() second = MyModel2()
second.id = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[float, int, str, Combinable]") second.id = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[float, int, str, Combinable]")
reveal_type(second.id) # N: Revealed type is "builtins.int*" reveal_type(second.id) # N: Revealed type is "builtins.int"
# default set but no primary key doesn't allow None # default set but no primary key doesn't allow None
from myapp.models import MyModel3 from myapp.models import MyModel3
@@ -116,7 +116,7 @@
MyModel3.objects.create(default=None) # E: Incompatible type for "default" of "MyModel3" (got "None", expected "Union[float, int, str, Combinable]") MyModel3.objects.create(default=None) # E: Incompatible type for "default" of "MyModel3" (got "None", expected "Union[float, int, str, Combinable]")
third = MyModel3() third = MyModel3()
third.default = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[float, int, str, Combinable]") third.default = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[float, int, str, Combinable]")
reveal_type(third.default) # N: Revealed type is "builtins.int*" reveal_type(third.default) # N: Revealed type is "builtins.int"
installed_apps: installed_apps:
- myapp - myapp
files: files:

View File

@@ -69,7 +69,7 @@
- case: fields_recognized_if_base_model_is_subclass_of_models_model - case: fields_recognized_if_base_model_is_subclass_of_models_model
main: | main: |
from myapp.models import User from myapp.models import User
reveal_type(User().username) # N: Revealed type is "builtins.str*" reveal_type(User().username) # N: Revealed type is "builtins.str"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -90,8 +90,8 @@
- case: django_contrib_gis_base_model_mixin_inheritance - case: django_contrib_gis_base_model_mixin_inheritance
main: | main: |
from myapp.models import User from myapp.models import User
reveal_type(User().name) # N: Revealed type is "builtins.str*" reveal_type(User().name) # N: Revealed type is "builtins.str"
reveal_type(User().updated_at) # N: Revealed type is "datetime.datetime*" reveal_type(User().updated_at) # N: Revealed type is "datetime.datetime"
installed_apps: installed_apps:
- myapp - myapp
files: files:

View File

@@ -283,10 +283,10 @@
unset_set_type=[], unset_set_type=[],
) )
out: | out: |
main:4: note: Revealed type is "builtins.int*" main:4: note: Revealed type is "builtins.int"
main:5: note: Revealed type is "builtins.int*" main:5: note: Revealed type is "builtins.int"
main:6: note: Revealed type is "builtins.list*[builtins.int]" main:6: note: Revealed type is "builtins.list[builtins.int]"
main:7: note: Revealed type is "builtins.int*" main:7: note: Revealed type is "builtins.int"
main:8: note: Revealed type is "Any" main:8: note: Revealed type is "Any"
main:9: error: Incompatible types in assignment (expression has type "str", variable has type "int") main:9: error: Incompatible types in assignment (expression has type "str", variable has type "int")
main:10: error: Incompatible types in assignment (expression has type "str", variable has type "Union[int, float]") main:10: error: Incompatible types in assignment (expression has type "str", variable has type "Union[int, float]")

View File

@@ -2,8 +2,8 @@
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
x = MyModel.objects.get(id=1) x = MyModel.objects.get(id=1)
reveal_type(x.id) # N: Revealed type is "builtins.int*" reveal_type(x.id) # N: Revealed type is "builtins.int"
reveal_type(x.pk) # N: Revealed type is "builtins.int*" reveal_type(x.pk) # N: Revealed type is "builtins.int"
MyModel.objects.get(pk=1) MyModel.objects.get(pk=1)
installed_apps: installed_apps:
@@ -15,16 +15,16 @@
from django.db import models from django.db import models
class MyModel(models.Model): class MyModel(models.Model):
def __str__(self): def __str__(self):
reveal_type(self.id) # N: Revealed type is "builtins.int*" reveal_type(self.id) # N: Revealed type is "builtins.int"
reveal_type(self.pk) # N: Revealed type is "builtins.int*" reveal_type(self.pk) # N: Revealed type is "builtins.int"
- case: test_access_to_id_field_through_self_if_primary_key_is_defined - case: test_access_to_id_field_through_self_if_primary_key_is_defined
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
x = MyModel.objects.get(id='a') x = MyModel.objects.get(id='a')
reveal_type(x.id) # N: Revealed type is "builtins.str*" reveal_type(x.id) # N: Revealed type is "builtins.str"
reveal_type(x.pk) # N: Revealed type is "builtins.str*" reveal_type(x.pk) # N: Revealed type is "builtins.str"
MyModel.objects.get(pk='a') MyModel.objects.get(pk='a')
installed_apps: installed_apps:
@@ -37,16 +37,16 @@
class MyModel(models.Model): class MyModel(models.Model):
id = models.CharField(max_length=10, primary_key=True) id = models.CharField(max_length=10, primary_key=True)
def __str__(self): def __str__(self):
reveal_type(self.id) # N: Revealed type is "builtins.str*" reveal_type(self.id) # N: Revealed type is "builtins.str"
reveal_type(self.pk) # N: Revealed type is "builtins.str*" reveal_type(self.pk) # N: Revealed type is "builtins.str"
- case: test_access_to_id_field_through_self_if_primary_key_has_different_name - case: test_access_to_id_field_through_self_if_primary_key_has_different_name
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
x = MyModel.objects.get(primary='a') x = MyModel.objects.get(primary='a')
reveal_type(x.primary) # N: Revealed type is "builtins.str*" reveal_type(x.primary) # N: Revealed type is "builtins.str"
reveal_type(x.pk) # N: Revealed type is "builtins.str*" reveal_type(x.pk) # N: Revealed type is "builtins.str"
x.id # E: "MyModel" has no attribute "id" x.id # E: "MyModel" has no attribute "id"
MyModel.objects.get(pk='a') MyModel.objects.get(pk='a')
@@ -61,6 +61,6 @@
class MyModel(models.Model): class MyModel(models.Model):
primary = models.CharField(max_length=10, primary_key=True) primary = models.CharField(max_length=10, primary_key=True)
def __str__(self): def __str__(self):
reveal_type(self.primary) # N: Revealed type is "builtins.str*" reveal_type(self.primary) # N: Revealed type is "builtins.str"
reveal_type(self.pk) # N: Revealed type is "builtins.str*" reveal_type(self.pk) # N: Revealed type is "builtins.str"
self.id # E: "MyModel" has no attribute "id" self.id # E: "MyModel" has no attribute "id"

View File

@@ -4,7 +4,7 @@
Blog(publisher=Publisher()) Blog(publisher=Publisher())
Blog.objects.create(publisher=Publisher()) Blog.objects.create(publisher=Publisher())
Blog().publisher = Publisher() Blog().publisher = Publisher()
reveal_type(Blog().publisher) # N: Revealed type is "myapp.models.PublisherProxy*" reveal_type(Blog().publisher) # N: Revealed type is "myapp.models.PublisherProxy"
installed_apps: installed_apps:
- myapp - myapp
files: files:

View File

@@ -26,8 +26,8 @@
from django.test.client import RequestFactory, AsyncRequestFactory from django.test.client import RequestFactory, AsyncRequestFactory
factory = RequestFactory() factory = RequestFactory()
request = factory.get('foo') request = factory.get('foo')
reveal_type(request) # N: Revealed type is "django.core.handlers.wsgi.WSGIRequest*" reveal_type(request) # N: Revealed type is "django.core.handlers.wsgi.WSGIRequest"
async_factory = AsyncRequestFactory() async_factory = AsyncRequestFactory()
async_request = async_factory.get('foo') async_request = async_factory.get('foo')
reveal_type(async_request) # N: Revealed type is "django.core.handlers.asgi.ASGIRequest*" reveal_type(async_request) # N: Revealed type is "django.core.handlers.asgi.ASGIRequest"

View File

@@ -2,8 +2,8 @@
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
mymodel = MyModel(user_id=1) mymodel = MyModel(user_id=1)
reveal_type(mymodel.id) # N: Revealed type is "builtins.int*" reveal_type(mymodel.id) # N: Revealed type is "builtins.int"
reveal_type(mymodel.user) # N: Revealed type is "django.contrib.auth.models.User*" reveal_type(mymodel.user) # N: Revealed type is "django.contrib.auth.models.User"
reveal_type(mymodel.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel]" reveal_type(mymodel.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel]"
mypy_config: | mypy_config: |
[mypy.plugins.django-stubs] [mypy.plugins.django-stubs]
@@ -20,13 +20,13 @@
class MyModel(models.Model): class MyModel(models.Model):
user = models.ForeignKey('auth.User', on_delete=models.CASCADE) user = models.ForeignKey('auth.User', on_delete=models.CASCADE)
if TYPE_CHECKING: if TYPE_CHECKING:
reveal_type(MyModel().user) # N: Revealed type is "django.contrib.auth.models.User*" reveal_type(MyModel().user) # N: Revealed type is "django.contrib.auth.models.User"
- case: generate_pyproject_toml_and_settings_file_from_installed_apps_key - case: generate_pyproject_toml_and_settings_file_from_installed_apps_key
main: | main: |
from myapp.models import MyModel from myapp.models import MyModel
mymodel = MyModel(user_id=1) mymodel = MyModel(user_id=1)
reveal_type(mymodel.id) # N: Revealed type is "builtins.int*" reveal_type(mymodel.id) # N: Revealed type is "builtins.int"
installed_apps: installed_apps:
- django.contrib.auth - django.contrib.auth
- myapp - myapp

View File

@@ -6,7 +6,7 @@
ArticleFS: Type[forms.BaseInlineFormSet[Article, Category, Any]] = forms.inlineformset_factory(Category, Article) ArticleFS: Type[forms.BaseInlineFormSet[Article, Category, Any]] = forms.inlineformset_factory(Category, Article)
ArticleFS(instance=Article()) # E: Argument "instance" to "BaseInlineFormSet" has incompatible type "Article"; expected "Optional[Category]" ArticleFS(instance=Article()) # E: Argument "instance" to "BaseInlineFormSet" has incompatible type "Article"; expected "Optional[Category]"
fs = ArticleFS(instance=Category()) fs = ArticleFS(instance=Category())
reveal_type(fs.instance) # N: Revealed type is "myapp.models.Category*" reveal_type(fs.instance) # N: Revealed type is "myapp.models.Category"
installed_apps: installed_apps:
- myapp - myapp
files: files:

View File

@@ -5,8 +5,8 @@
# standard settings # standard settings
reveal_type(settings.AUTH_USER_MODEL) # N: Revealed type is "builtins.str" reveal_type(settings.AUTH_USER_MODEL) # N: Revealed type is "builtins.str"
reveal_type(settings.ROOT_DIR) # N: Revealed type is "builtins.str" reveal_type(settings.ROOT_DIR) # N: Revealed type is "builtins.str"
reveal_type(settings.APPS_DIR) # N: Revealed type is "pathlib.Path*" reveal_type(settings.APPS_DIR) # N: Revealed type is "pathlib.Path"
reveal_type(settings.NUMBERS) # N: Revealed type is "builtins.list[builtins.str*]" reveal_type(settings.NUMBERS) # N: Revealed type is "builtins.list[builtins.str]"
reveal_type(settings.DICT) # N: Revealed type is "builtins.dict[Any, Any]" reveal_type(settings.DICT) # N: Revealed type is "builtins.dict[Any, Any]"
custom_settings: | custom_settings: |
from base import * from base import *
@@ -37,8 +37,8 @@
from settings.basic_settings import * from settings.basic_settings import *
main: | main: |
from django.conf import settings from django.conf import settings
reveal_type(settings.MEDIA_ROOT) # N: Revealed type is "pathlib.Path*" reveal_type(settings.MEDIA_ROOT) # N: Revealed type is "pathlib.Path"
reveal_type(settings.MEDIA_ROOT / 'part') # N: Revealed type is "pathlib.Path*" reveal_type(settings.MEDIA_ROOT / 'part') # N: Revealed type is "pathlib.Path"
files: files:
- path: settings/__init__.py - path: settings/__init__.py
- path: settings/basic_settings.py - path: settings/basic_settings.py

View File

@@ -3,13 +3,13 @@
from django.shortcuts import get_object_or_404, get_list_or_404 from django.shortcuts import get_object_or_404, get_list_or_404
from myapp.models import MyModel from myapp.models import MyModel
reveal_type(get_object_or_404(MyModel)) # N: Revealed type is "myapp.models.MyModel*" reveal_type(get_object_or_404(MyModel)) # N: Revealed type is "myapp.models.MyModel"
reveal_type(get_object_or_404(MyModel.objects)) # N: Revealed type is "myapp.models.MyModel*" reveal_type(get_object_or_404(MyModel.objects)) # N: Revealed type is "myapp.models.MyModel"
reveal_type(get_object_or_404(MyModel.objects.get_queryset())) # N: Revealed type is "myapp.models.MyModel*" reveal_type(get_object_or_404(MyModel.objects.get_queryset())) # N: Revealed type is "myapp.models.MyModel"
reveal_type(get_list_or_404(MyModel)) # N: Revealed type is "builtins.list[myapp.models.MyModel*]" reveal_type(get_list_or_404(MyModel)) # N: Revealed type is "builtins.list[myapp.models.MyModel]"
reveal_type(get_list_or_404(MyModel.objects)) # N: Revealed type is "builtins.list[myapp.models.MyModel*]" reveal_type(get_list_or_404(MyModel.objects)) # N: Revealed type is "builtins.list[myapp.models.MyModel]"
reveal_type(get_list_or_404(MyModel.objects.get_queryset())) # N: Revealed type is "builtins.list[myapp.models.MyModel*]" reveal_type(get_list_or_404(MyModel.objects.get_queryset())) # N: Revealed type is "builtins.list[myapp.models.MyModel]"
installed_apps: installed_apps:
- myapp - myapp
files: files:

View File

@@ -10,39 +10,39 @@
d3: Tuple[Tuple[str, List[Union[str, int]]], ...] = (('foo', ['Foo']), ('bar', [2, 3])) d3: Tuple[Tuple[str, List[Union[str, int]]], ...] = (('foo', ['Foo']), ('bar', [2, 3]))
var3 = MultiValueDict(d3) var3 = MultiValueDict(d3)
reveal_type(var1) # N: Revealed type is "django.utils.datastructures.MultiValueDict[Any, Any]" reveal_type(var1) # N: Revealed type is "django.utils.datastructures.MultiValueDict[Any, Any]"
reveal_type(var2) # N: Revealed type is "django.utils.datastructures.MultiValueDict[builtins.str*, Union[builtins.str, builtins.int]]" reveal_type(var2) # N: Revealed type is "django.utils.datastructures.MultiValueDict[builtins.str, Union[builtins.str, builtins.int]]"
reveal_type(var3) # N: Revealed type is "django.utils.datastructures.MultiValueDict[builtins.str*, Union[builtins.str, builtins.int]]" reveal_type(var3) # N: Revealed type is "django.utils.datastructures.MultiValueDict[builtins.str, Union[builtins.str, builtins.int]]"
# __getitem__, get, getlist (with proofs) # __getitem__, get, getlist (with proofs)
d = MultiValueDict({'foo': ['Foo']}) d = MultiValueDict({'foo': ['Foo']})
d.setlist('bar', []) d.setlist('bar', [])
# actually 'Foo' # actually 'Foo'
reveal_type(d['foo']) # N: Revealed type is "Union[builtins.str*, builtins.list[builtins.object]]" reveal_type(d['foo']) # N: Revealed type is "Union[builtins.str, builtins.list[builtins.object]]"
# actually [] # actually []
reveal_type(d['bar']) # N: Revealed type is "Union[builtins.str*, builtins.list[builtins.object]]" reveal_type(d['bar']) # N: Revealed type is "Union[builtins.str, builtins.list[builtins.object]]"
# actually None # actually None
reveal_type(d.get('bar')) # N: Revealed type is "Union[builtins.str*, None]" reveal_type(d.get('bar')) # N: Revealed type is "Union[builtins.str, None]"
# actually 1 # actually 1
reveal_type(d.get('bar', 1)) # N: Revealed type is "Union[builtins.str, builtins.int*]" reveal_type(d.get('bar', 1)) # N: Revealed type is "Union[builtins.str, builtins.int]"
# actually [] # actually []
reveal_type(d.getlist('bar')) # N: Revealed type is "builtins.list[builtins.str]" reveal_type(d.getlist('bar')) # N: Revealed type is "builtins.list[builtins.str]"
# actually [] # actually []
reveal_type(d.getlist('bar', [1])) # N: Revealed type is "Union[builtins.list[builtins.str], builtins.list*[builtins.int*]]" reveal_type(d.getlist('bar', [1])) # N: Revealed type is "Union[builtins.list[builtins.str], builtins.list[builtins.int]]"
# actually True (note that default can be not a list) # actually True (note that default can be not a list)
reveal_type(d.getlist('baz', True)) # N: Revealed type is "Union[builtins.list[builtins.str], builtins.bool*]" reveal_type(d.getlist('baz', True)) # N: Revealed type is "Union[builtins.list[builtins.str], builtins.bool]"
# setters # setters
reveal_type(d.setlistdefault('baz')) # N: Revealed type is "builtins.list[builtins.str*]" reveal_type(d.setlistdefault('baz')) # N: Revealed type is "builtins.list[builtins.str]"
d.setlistdefault('baz', [1]) # E: List item 0 has incompatible type "int"; expected "str" d.setlistdefault('baz', [1]) # E: List item 0 has incompatible type "int"; expected "str"
reveal_type(d.setlistdefault('baz', [])) # N: Revealed type is "builtins.list[builtins.str*]" reveal_type(d.setlistdefault('baz', [])) # N: Revealed type is "builtins.list[builtins.str]"
d.appendlist('baz', 'Baz') d.appendlist('baz', 'Baz')
d.appendlist('baz', 1) # E: Argument 2 to "appendlist" of "MultiValueDict" has incompatible type "int"; expected "str" d.appendlist('baz', 1) # E: Argument 2 to "appendlist" of "MultiValueDict" has incompatible type "int"; expected "str"
# iterators # iterators
# actually [('foo', 'Foo'), ('bar', [])] # actually [('foo', 'Foo'), ('bar', [])]
reveal_type(list(d.items())) # N: Revealed type is "builtins.list[Tuple[builtins.str*, Union[builtins.str*, builtins.list[builtins.object]]]]" reveal_type(list(d.items())) # N: Revealed type is "builtins.list[Tuple[builtins.str, Union[builtins.str, builtins.list[builtins.object]]]]"
reveal_type(list(d.keys())) # N: Revealed type is "builtins.list[builtins.str*]" reveal_type(list(d.keys())) # N: Revealed type is "builtins.list[builtins.str]"
# actually ['Foo', []] # actually ['Foo', []]
reveal_type(list(d.values())) # N: Revealed type is "builtins.list[Union[builtins.str*, builtins.list[builtins.object]]]" reveal_type(list(d.values())) # N: Revealed type is "builtins.list[Union[builtins.str, builtins.list[builtins.object]]]"
# actually {'foo': 'Foo', 'bar': []} # actually {'foo': 'Foo', 'bar': []}
reveal_type(d.dict()) # N: Revealed type is "builtins.dict[builtins.str*, Union[builtins.str*, builtins.list[builtins.object]]]" reveal_type(d.dict()) # N: Revealed type is "builtins.dict[builtins.str, Union[builtins.str, builtins.list[builtins.object]]]"

View File

@@ -5,10 +5,10 @@
pass pass
reveal_type(force_bytes(123)) # N: Revealed type is "builtins.bytes" reveal_type(force_bytes(123)) # N: Revealed type is "builtins.bytes"
reveal_type(force_bytes(123, strings_only=True)) # N: Revealed type is "builtins.int*" reveal_type(force_bytes(123, strings_only=True)) # N: Revealed type is "builtins.int"
reveal_type(force_str(123)) # N: Revealed type is "builtins.str" reveal_type(force_str(123)) # N: Revealed type is "builtins.str"
reveal_type(force_str(123, strings_only=True)) # N: Revealed type is "builtins.int*" reveal_type(force_str(123, strings_only=True)) # N: Revealed type is "builtins.int"
reveal_type(force_str('foo')) # N: Revealed type is "builtins.str*" reveal_type(force_str('foo')) # N: Revealed type is "builtins.str"
reveal_type(force_str('foo', strings_only=True)) # N: Revealed type is "builtins.str*" reveal_type(force_str('foo', strings_only=True)) # N: Revealed type is "builtins.str"
reveal_type(force_str(S('foo'), strings_only=True)) # N: Revealed type is "main.S*" reveal_type(force_str(S('foo'), strings_only=True)) # N: Revealed type is "main.S"

View File

@@ -7,12 +7,12 @@
@cached_property @cached_property
def attr(self) -> List[str]: ... def attr(self) -> List[str]: ...
reveal_type(attr) # N: Revealed type is "django.utils.functional.cached_property[builtins.list*[builtins.str]]" reveal_type(attr) # N: Revealed type is "django.utils.functional.cached_property[builtins.list[builtins.str]]"
reveal_type(attr.name) # N: Revealed type is "builtins.str" reveal_type(attr.name) # N: Revealed type is "builtins.str"
reveal_type(Foo.attr) # N: Revealed type is "django.utils.functional.cached_property[builtins.list*[builtins.str]]" reveal_type(Foo.attr) # N: Revealed type is "django.utils.functional.cached_property[builtins.list[builtins.str]]"
reveal_type(Foo.attr.func) # N: Revealed type is "def (*Any, **Any) -> builtins.list*[builtins.str]" reveal_type(Foo.attr.func) # N: Revealed type is "def (*Any, **Any) -> builtins.list[builtins.str]"
f = Foo() f = Foo()
reveal_type(f.attr) # N: Revealed type is "builtins.list*[builtins.str]" reveal_type(f.attr) # N: Revealed type is "builtins.list[builtins.str]"
f.attr.name # E: "List[str]" has no attribute "name" f.attr.name # E: "List[str]" has no attribute "name"

View File

@@ -46,11 +46,11 @@
class MyCreateView(CreateView[Article, ArticleModelForm]): class MyCreateView(CreateView[Article, ArticleModelForm]):
def some(self) -> None: def some(self) -> None:
reveal_type(self.get_form_class()) # N: Revealed type is "Type[main.ArticleModelForm*]" reveal_type(self.get_form_class()) # N: Revealed type is "Type[main.ArticleModelForm]"
class MyUpdateView(UpdateView[Article, ArticleModelForm]): class MyUpdateView(UpdateView[Article, ArticleModelForm]):
def some(self) -> None: def some(self) -> None:
reveal_type(self.get_form_class()) # N: Revealed type is "Type[main.ArticleModelForm*]" reveal_type(self.get_form_class()) # N: Revealed type is "Type[main.ArticleModelForm]"
installed_apps: installed_apps:
- myapp - myapp
files: files:
@@ -79,7 +79,7 @@
class MyCreateView(CreateView[Article, ArticleModelForm]): class MyCreateView(CreateView[Article, ArticleModelForm]):
def some(self) -> None: def some(self) -> None:
reveal_type(self.get_form()) # N: Revealed type is "main.ArticleModelForm*" reveal_type(self.get_form()) # N: Revealed type is "main.ArticleModelForm"
reveal_type(self.get_form(SubArticleModelForm)) # N: Revealed type is "main.SubArticleModelForm" reveal_type(self.get_form(SubArticleModelForm)) # N: Revealed type is "main.SubArticleModelForm"
reveal_type(self.get_form(AnotherArticleModelForm)) # N: Revealed type is "main.AnotherArticleModelForm" # E: Argument 1 to "get_form" of "FormMixin" has incompatible type "Type[AnotherArticleModelForm]"; expected "Optional[Type[ArticleModelForm]]" reveal_type(self.get_form(AnotherArticleModelForm)) # N: Revealed type is "main.AnotherArticleModelForm" # E: Argument 1 to "get_form" of "FormMixin" has incompatible type "Type[AnotherArticleModelForm]"; expected "Optional[Type[ArticleModelForm]]"
installed_apps: installed_apps:

View File

@@ -24,25 +24,25 @@
def empty_response(request: HttpRequest) -> HttpResponse: def empty_response(request: HttpRequest) -> HttpResponse:
response = HttpResponse() response = HttpResponse()
reveal_type(response.content) # N: Revealed type is "builtins.bytes*" reveal_type(response.content) # N: Revealed type is "builtins.bytes"
return response return response
def str_response(request: HttpRequest) -> HttpResponse: def str_response(request: HttpRequest) -> HttpResponse:
response = HttpResponse() response = HttpResponse()
response.content = 'It works!' response.content = 'It works!'
reveal_type(response.content) # N: Revealed type is "builtins.bytes*" reveal_type(response.content) # N: Revealed type is "builtins.bytes"
return response return response
def bytes_response(request: HttpRequest) -> HttpResponse: def bytes_response(request: HttpRequest) -> HttpResponse:
response = HttpResponse() response = HttpResponse()
response.content = b'It works!' response.content = b'It works!'
reveal_type(response.content) # N: Revealed type is "builtins.bytes*" reveal_type(response.content) # N: Revealed type is "builtins.bytes"
return response return response
def object_response(request: HttpRequest) -> HttpResponse: def object_response(request: HttpRequest) -> HttpResponse:
response = HttpResponse() response = HttpResponse()
response.content = _('It works!') response.content = _('It works!')
reveal_type(response.content) # N: Revealed type is "builtins.bytes*" reveal_type(response.content) # N: Revealed type is "builtins.bytes"
return response return response
- case: streaming_http_response - case: streaming_http_response
@@ -74,29 +74,29 @@
def empty_response(request: HttpRequest) -> StreamingHttpResponse: def empty_response(request: HttpRequest) -> StreamingHttpResponse:
response = StreamingHttpResponse() response = StreamingHttpResponse()
reveal_type(response.streaming_content) # N: Revealed type is "typing.Iterator*[builtins.bytes]" reveal_type(response.streaming_content) # N: Revealed type is "typing.Iterator[builtins.bytes]"
return response return response
def str_response(request: HttpRequest) -> StreamingHttpResponse: def str_response(request: HttpRequest) -> StreamingHttpResponse:
response = StreamingHttpResponse() response = StreamingHttpResponse()
response.streaming_content = ['It works!'] response.streaming_content = ['It works!']
reveal_type(response.streaming_content) # N: Revealed type is "typing.Iterator*[builtins.bytes]" reveal_type(response.streaming_content) # N: Revealed type is "typing.Iterator[builtins.bytes]"
return response return response
def bytes_response(request: HttpRequest) -> StreamingHttpResponse: def bytes_response(request: HttpRequest) -> StreamingHttpResponse:
response = StreamingHttpResponse() response = StreamingHttpResponse()
response.streaming_content = [b'It works!'] response.streaming_content = [b'It works!']
reveal_type(response.streaming_content) # N: Revealed type is "typing.Iterator*[builtins.bytes]" reveal_type(response.streaming_content) # N: Revealed type is "typing.Iterator[builtins.bytes]"
return response return response
def object_response(request: HttpRequest) -> StreamingHttpResponse: def object_response(request: HttpRequest) -> StreamingHttpResponse:
response = StreamingHttpResponse() response = StreamingHttpResponse()
response.streaming_content = [_('It works!')] response.streaming_content = [_('It works!')]
reveal_type(response.streaming_content) # N: Revealed type is "typing.Iterator*[builtins.bytes]" reveal_type(response.streaming_content) # N: Revealed type is "typing.Iterator[builtins.bytes]"
return response return response
def mixed_response(request: HttpRequest) -> StreamingHttpResponse: def mixed_response(request: HttpRequest) -> StreamingHttpResponse:
response = StreamingHttpResponse() response = StreamingHttpResponse()
response.streaming_content = [_('Yes'), '/', _('No')] response.streaming_content = [_('Yes'), '/', _('No')]
reveal_type(response.streaming_content) # N: Revealed type is "typing.Iterator*[builtins.bytes]" reveal_type(response.streaming_content) # N: Revealed type is "typing.Iterator[builtins.bytes]"
return response return response