Stevan Milic
1b9176f994
Add state attribute to Model ( #347 ) ( #348 )
...
Add from_db method to Model
Co-authored-by: Stevan Milic <stevan.milic@tradecore.com >
2020-03-30 10:35:40 +03:00
Marti Raudsepp
afa16bfb74
Make decorator functions transparent to Mypy ( #306 )
...
By declaring return type as -> Callable[[_C], _C], Mypy can infer that
the decorated function has also the same arguments and return type as
the original.
View functions are constrained to return HttpResponseBase (or any
subclass of it).
Also added typecheck test coverage to most of the cases.
2020-03-12 00:32:30 +03:00
Marti Raudsepp
95e6c94319
Improve test client type stubs ( #322 )
...
* Added missing `follow: bool` argument to Client request methods.
* Annotated return types as `HttpResponse` instead of `Any`.
* Made `Client` class inherit from `RequestFactory`, as it does in Django.
* Changed `json()` return type to Any, as it can also be a list.
Wrt (2), these return types were reverted from `HttpResponse` to `Any`
in commit 287c64d6fb . But I suspect that
was simply to silence mypy warnings about "incompatible with supertype
RequestFactory", not because there were any issues with the annotation.
Note that `Client.request()` monkey-patches the `HttpResponse` object
with some additional attributes. Those attributes were already annotated
before, I reordered and added additional comments to make it clear where
they come from.
2020-02-12 18:44:17 +03:00
Marti Raudsepp
6f296b0a91
Implement @cached_property attribute inference ( #292 )
2020-01-10 13:57:09 +03:00
Maksim Kurnikov
cb123de105
BaseManager.from_queryset(): properly resolve methods for QuerySet defined in another file ( #282 )
...
* BaseManager.from_queryset() from another file
* only anal_type per argument
* add resolve for return_type
* fix mypy errors
* remove leftover comment
2019-12-18 20:01:20 +03:00
Maksim Kurnikov
1196336e3b
Perform anal_type for arguments and return type when copying methods to another class ( #279 )
...
* Found the reproducible test case
* fix import resolution for method copy
* remove irrelevant parts from test
* fix mypy errors
Co-authored-by: Boger <kotvberloge@gmail.com >
2019-12-17 19:19:31 +03:00
Maksim Kurnikov
665f4d8ea1
Make related manager inherit from objects of related model ( #278 )
...
* related manager inherits from objects of related model
* fix test typechecking
* lint
2019-12-17 19:06:27 +03:00
Dima Boger
b3ed9e4827
Add inheritance QuerySet support for from_queryset ( #275 )
...
* Add testcase for queryset inheritance
* Add PoC
* Add condition for stop to looping over mro
* Change harcoded queryset class name to constant from fullnames
2019-12-16 20:16:41 +03:00
Maksim Kurnikov
d0c25e3bce
Allow to run from_queryset() with BaseManager, Manager ( #271 )
...
* allow to run from_queryset() with BaseManager, Manager
* fix tests
2019-12-13 20:16:33 +03:00
Maksim Kurnikov
31e795016f
values(), values_list() with ManyToManyField ( #267 )
2019-12-12 08:09:47 +03:00
Maksim Kurnikov
ade48b6546
Add support for BaseManager.from_queryset() ( #251 )
...
* add support for BaseManager.from_queryset()
* cleanups
* lint fixes
2019-12-12 05:35:56 +03:00
Maksim Kurnikov
8c2de7da56
add a number of django test directories for typecheck ( #257 )
2019-12-11 00:51:32 +03:00
Hannes Ljungberg
f5f33b061d
Add support for exclusion constraints ( #249 )
2019-12-10 20:50:28 +03:00
Maksim Kurnikov
cadd6c963b
fix model's on_cascade= parameter for test, update to latest gdal ( #247 )
2019-12-06 03:40:55 +03:00
Maxim Kurnikov
2c4827bbaf
properly change type of self for methods on custom manager classes
2019-11-30 22:08:16 +03:00
Konstantin Alekseev
cbc7159995
Support mypy 0.750
2019-11-30 13:39:28 +03:00
Maksim Kurnikov
8d986a0f43
remove catch-all __getattr__ for Manager, fix some issues with manager methods ( #227 )
2019-11-12 20:36:07 +03:00
Maksim Kurnikov
287c64d6fb
Pin to 0.740 and fix CI ( #225 )
...
* update django sources
* pin mypy version, update to 0.740
* fix tests typechecking
* fix lint
2019-11-12 05:17:36 +03:00
Maxim Kurnikov
7e3f4bfa02
Fix ForeignKey type for self-reference defined in the abstract model ( #200 )
2019-10-05 21:36:29 +03:00
Maxim Kurnikov
db9ff6aaf6
Fix crash if model from same app referenced in RelatedField cannot be resolved ( #199 )
...
* do not crash if model from same app refd in ForeignKey cannot be resolved
* bump to 1.2.0
2019-10-05 20:00:51 +03:00
Maxim Kurnikov
717be5940f
Reorganize code a bit, add current directory to sys.path ( #198 )
...
* reorganize code a bit
* add current directory to sys.path
* remove PYTHONPATH mention from the docs
* linting
2019-10-05 19:44:29 +03:00
Maxim Kurnikov
02bdf5be95
add support for typechecking of filter/get/exclude arguments ( #183 )
...
* add support for typechecking of filter/get/exclude arguments
* linting
2019-09-30 03:05:40 +03:00
Maxim Kurnikov
be3fc259d5
fix compatibility with 0.730 ( #189 )
2019-09-28 05:23:55 +03:00
Maxim Kurnikov
2c23d8e70f
Use runtime information to determine whether class is a models.Model subclass ( #182 )
2019-09-28 04:05:54 +03:00
Maxim Kurnikov
7407b93151
Fix type annotations for django.utils.safestring ( #179 )
...
* Add/fix types for django.utils.safestring.mark_safe
Django code ref: 964dd4f4f2/django/utils/safestring.py (L71-L84)
* add generic annotations for mark_safe, remove SafeBytes as it is basically deprecated
Co-authored-by: Daniel Hahler <github@thequod.de >
2019-09-23 21:17:17 +03:00
Maxim Kurnikov
a85dbff793
update import_all test, add some stubs for postgres ( #178 )
2019-09-23 19:47:11 +03:00
Maxim Kurnikov
68aebe2528
Add django.contrib.gis.db.models and django.contrib.gis.db.models.fields ( #177 )
...
* add django.contrib.gis.db.models and django.contrib.gis.db.models.fields
* install gdal in ci
* add sudo to apt
* add apt update
2019-09-23 19:30:32 +03:00
Maxim Kurnikov
29ac1c3017
Split AddManagers for model in separate stages to process IncompleteDefnException properly ( #171 )
2019-09-18 02:20:20 +03:00
Maxim Kurnikov
23ad65033b
add custom Field processing for mixins used in the Model subclasses ( #167 )
2019-09-18 01:40:41 +03:00
Maxim Kurnikov
64720f492c
add proper stubs for django.contrib.auth.models model fields ( #170 )
2019-09-18 01:40:15 +03:00
Maxim Kurnikov
fc9a335dfd
make ValuesQuerySet have proper Collection generic type ( #140 )
2019-08-24 18:24:21 +03:00
Maxim Kurnikov
e95b40ef52
stability fixes
2019-08-24 17:04:50 +03:00
Maxim Kurnikov
d7e8222163
Fix related fields inheritance from abstract models ( #138 )
2019-08-24 02:35:55 +03:00
Maxim Kurnikov
09767210ec
Return corresponding descriptors for some fields in class access ( #137 )
...
* return corresponding descriptors for some related fields in class access
* return corresponding descriptors for file fields in class access
* fix tests
2019-08-23 04:03:03 +03:00
Maxim Kurnikov
656105bab2
make first() an Optional, allow to specify QuerySet with one parameter ( #136 )
2019-08-23 03:31:07 +03:00
Maxim Kurnikov
27793ecd32
allow to subclass queryset without loss of typing
2019-07-26 22:40:37 +03:00
Maxim Kurnikov
735b58e9bf
values_list for related model id flat True ( #113 )
2019-07-25 21:33:45 +03:00
Maxim Kurnikov
62dac1d468
remove some asserts that could be validly triggered
2019-07-25 19:53:12 +03:00
Maxim Kurnikov
409c01eb24
allow to specify QuerySet with one parameter
2019-07-25 19:22:59 +03:00
Maxim Kurnikov
4c21855641
fix mypy errors
2019-07-25 18:52:51 +03:00
Maxim Kurnikov
b6a5ccabdf
move configuration to [mypy.plugins.django-stubs] inside mypy config file
2019-07-24 22:32:52 +03:00
Maxim Kurnikov
df021f6baa
add some support for proxy models
2019-07-24 13:39:23 +03:00
Maxim Kurnikov
57796077c6
create(id=None) is valid, if id is AutoField
2019-07-24 13:38:50 +03:00
Maxim Kurnikov
a0db24c764
add objects to model, trade false positive for false negative
2019-07-24 13:38:49 +03:00
Maxim Kurnikov
39fb48b08a
fix httprequest other fields
2019-07-24 13:38:49 +03:00
Maxim Kurnikov
d7d379e1cd
create dummy classes for custom_manager_of_model usecase
2019-07-24 13:38:49 +03:00
Maxim Kurnikov
6962b42cba
allow to use fields as Field objects outside Model classes
2019-07-24 13:38:49 +03:00
Maxim Kurnikov
b86d33c718
allow custom app label for ForeignKey
2019-07-24 13:38:49 +03:00
Maxim Kurnikov
fa57fb0cbf
request.user has type of AUTH_USER_MODEL
2019-07-24 13:38:49 +03:00
Maxim Kurnikov
248504c25a
various fixes
2019-07-24 13:38:49 +03:00