Releases: typeddjango/django-stubs
4.2.2
Headline changes
-
mypy 1.4: Recommended mypy version updated to 1.4.x
-
Support for
django-split-settings
,django-configurations
and other Django settings addons withstrict_settings = false
option, see README for details -
We have now adopted mypy's stubtest to automatically find discrepancies between Django and django-stubs.
If you want to contribute to django-stubs but are not sure where to start, have a look at stubtest's TODO list file, which lists the many issues discovered by stubtest.
Django 4.2 changes
- Applied Django 4.2 deprecations by @Alexerson in #1523
- Updated global settings and
AppConfig
class to match Django 4.2 by @Alexerson in #1524 - Added types for new 'system checks' in Django 4.2 by @Alexerson in #1526
- Added
ManifestStaticFilesStorage
new parameters by @Alexerson in #1528 - Added new methods to
Sitemap
class by @Alexerson in #1527 - Added new
headers=
parameter to(Async)RequestFactory
and(Async)Client
classes by @Alexerson in #1529 - GDAL-related GeoDjango updates in Django 4.2 by @Alexerson in #1525
- Added ORM
^
and~
operator support, JSON lookup classes, Postgres lookup classes,ModelForm
changes,json_script
template filter parameters by @Alexerson in #1536 - Added and updated
db.backends
DatabaseIntrospection
andDatabaseOperations
classes by @GabDug in #1571
Stubs additions
- Added
QuerySet._result_cache
attribute and_fetch_all()
method by @adamchainz in #1505 - Added
ModelAdmin.search_help_text
attribute by @adamchainz in #1546 - Added email console handler
EmailBackend.write_message()
method by @adamchainz in #1547 - Added
ModelAdmin.get_formset_kwargs()
method by @adamchainz in #1545 - Added
Signal._live_receivers()
method by @adamchainz in #1551 - Added
SQLCompiler._order_by_pairs()
method by @adamchainz in #1586 - Added
memcache_key_warnings()
function by @rvanlaar in #1562
Stubs fixes
- Fixed
create_model_instance
incorrect data argument type by @namper in #1521 - Marked
RequestSite.{save,delete}
methods asNoReturn
since they always raise by @sobolevn in #1530 - Updated
SafeExceptionReporterFilter
attributes and removed obsoleteCLEANSED_SUBSTITUTE
by @mthuurne in #1540 - Changed
AppConfig.default_auto_field
to attribute instead of method by @mthuurne in #1541 - Fixed
default_error_messages
attribute type of baseField
andGenericIPAddressField
classes by @asottile in #1538 - Improved spatialite
DatabaseWrapper
attributes by @filbasi in #1544 - Improved types for Signal
dispatch.dispatcher
by @GabDug in #1567 - Accept
str
field names forWindow.order_by()
, allowNone
forasc/desc
arguments by @GabDug in #1574 - Updated many
django.utils.*
types from stubtest by @GabDug in #1575 - Updated many
db.migrations.operations
types from stubtest by @GabDug in #1583 - Added
StepValueValidator
, fixed argument forSRIDCacheEntry
/EmailValidator
, improvedurls.resolvers
types by @GabDug in #1589
Plugin changes
- Fixed
ForeignKey
queryset filters on un-swapped models by @UnknownPlatypus in #1495 - Add
strict_settings
option, allow runtime fallbacks for custom settings by @sobolevn in #1557 - Automatically reset mypy cache when plugin settings change by @sobolevn in #1578
- Fixed unhandled exception
KeyError: 'model_bases'
and related errors by @intgr in #1563
django-stubs-ext
CI/testing
- CI: Replace isort with Ruff import sorting by @intgr in #1507
- CI: Auto-remove unused imports using Ruff by @intgr in #1508
- CI: Enable Ruff pyupgrade fixes by @intgr in #1509
- CI: Run django-stubs-ext tests in full build matrix by @intgr in #1552
- Remove typecheck test and clean things up by @sobolevn in #1556
- Add stubtest with lots of errors (currently) by @sobolevn in #1560
Housekeeping
- Removed unsupported Django versions from package classifiers by @intgr in #1553
- Removed try-except around import of
ArrayField
by @sobolevn in #1558 - Removed usage of
mypy_extensions
by @sobolevn in #1566 - Upgrade to Mypy 1.4.0 by @christianbundy in #1572
- Chore: set Black Python target to 3.8+ explicitely by @GabDug in #1573
- Update
flake8
plugins by @sobolevn in #1579 - CI: Run tests and pre-commit using newest Python version by @intgr in #1582
- Removed duplicate "import all" test file by @adamchainz in #1587
- Update compatible-mypy to 1.4.x by @intgr in #1588
- Version 4.2.2 release (django-stubs, django-stubs-ext) by @intgr in #1590
New Contributors
- @namper made their first contribution in #1521
- @filbasi made their first contribution in #1544
- @GabDug made their first contribution in #1567
- @rvanlaar made their first contribution in #1562
Full Changelog: 4.2.1...4.2.2
4.2.1
Headline changes
- mypy 1.3.0: Recommended mypy version updated to 1.3.0
- Compatibility: Support for Python 3.7 and Django 4.0 have been dropped.
- New logo: django-stubs has a new logo: https://raw.githubusercontent.com/typeddjango/django-stubs/4.2.1/logo.svg
Django 4.2 additions
- Added support for
db_comment=
argument on Model fields by @andrlik in #1492 - Improve
core.files.storages
types for Django 4.2 by @Alexerson in #1488 - Allow using async
StreamingHttpResponse
by @Alexerson in #1484 - Added
robust
parameter totransaction.on_commit()
by @realsuayip in #1469
Other stubs additions
- Added set/get typing for spatial Model fields by @martinlehoux in #1487
- Made
django.conf
constantsLiteral
s by @sobolevn in #1470 - Added
TypedModelMeta
for typing Model inner Meta class. This feature was deferred from the previous version due to a bug. by @intgr in #1375, #1456
Stubs fixes
- Fixed return types of many decorators (
cache_page
,cache_control
,sensitive_variables
,sensitive_post_parameters
,condition
,etag
,last_modified
) by @Kostia-K in #1465 - Fixed
ManyToManyRawIdWidget
to acceptManyToManyRel
argument by @RyanWalker277 in #1447 - Fixed
classonlymethod
decorator declaration by @adamchainz in #1494 - Fixed type of field attribute descriptors on Model classes (not instance) by @intgr in #1491
- Added missing argument default to
admin.sites.get_app_list()
by @AkaZecik in #1497 - Updated name of
lookup_needs_distinct()
function by @AkaZecik in #1498 - Fixed
_make_token_with_timestamp()
argumentsecret
type by @christianbundy in #1462 - Fixed
send_mass_email()
argument type to allowNone
by @dlesbre in #1516 - Made
UserCreationForm
generic by @monosans in #1518 - Added
SessionBase
methods, improvedSessionStore.get_model_class()
return type by @realsuayip in #1517
Other fixes
Housekeeping
- Added new logo by @adamchainz in #1499, #1500, #1501, #1502
- Dropped Python 3.7 compatibility by @intgr in #1459
- Dropped Django 4.0 compatibility by @intgr in #1468
- Update compatible-mypy & CI to mypy 1.3.0 by @intgr in #1496
- CI: Check and fix missing
__init__.py
with flake8-no-pep420 by @intgr in #1461 - Tweaked package license metadata and rename files by @intgr in #1463
- Version 4.2.1 release (django-stubs, django-stubs-ext) by @intgr in #1520
New Contributors
- @Kostia-K made their first contribution in #1465
- @andrlik made their first contribution in #1492
- @AkaZecik made their first contribution in #1497
- @asottile made their first contribution in #1503
- @Alexerson made their first contribution in #1488
- @dlesbre made their first contribution in #1516
Full Changelog: 4.2.0...4.2.1
4.2.0
Headline changes
- New version scheme: django-stubs will now use the same major.minor version number as Django.
Our Django support policy remains the same: Older versions are still partially supported, and we will continue supporting them as long as it's not a maintenance burden. - Django 4.2: This release adds initial support for some new features in 4.2.
There is still work to do, feel free to open issues or submit pull requests! - mypy 1.2.0: Recommended mypy version updated to 1.2.0
- Compatibility: This is the last release to support Python version 3.7 and Django 4.0.
Django 4.2 additions
- Added
django.utils.http.content_disposition_header()
function by @alexmv in #1448 - Add stubs for new async
Model
methods by @bigfootjon in #1443
Other stubs additions
- Added
Query.join()
method by @RyanWalker277 in #1404 - Added
Query.where
attribute by @RyanWalker277 in #1407 - Added
Model
methodsdate_error_message()
,get_constraints()
,serializable_value()
,prepare_database_save()
Addedapp_label=
argument toAdminSite.get_app_list()
by @RyanWalker277 in #1413 - Added
BaseConstraint.default_violation_error_message
attribute by @RyanWalker277 in #1419 - Added
BaseUserCreationForm
class by @monosans in #1424 - Improve
Form
,FormSet
,BoundField
,ErrorDict
andErrorList
rendering types.
AddedIntegerField.step_size
attribute and argument by @monosans in #1427 - Added type
JSONObject.__init__()
constructor by @realsuayip in #1430 - Added
RenameIndex
migration from Django 4.1 by @karamanolev in #1438 - Added
STORAGES
setting by @federicobond in #1439
Stubs fixes
- Allow lazy translation strings for constraint
violation_error_message
arguments, attributes by @realsuayip in #1418 - Allow setting
SECRET_KEY
to be str or bytes, addSECRET_KEY_FALLBACKS
, updatePasswordResetTokenGenerator
by @christianbundy in #1411 - Allow passing
BaseExpression
toUniqueConstraint.expressions
by @realsuayip in #1420 - Allow middlewares to return
StreamingReponse
by @rik in #1421 - Removed
Manager.delete()
method which is not accessible onManager
by @mschoettle in #1431 - Allow lazy translation strings in email contexts by @realsuayip in #1442
- Fixed
aiterator()
method ofQuerySet
andBaseManager
by @kjagiello in #1449 - Syndication
Feed
items do not need to beModel
instances by @bigfootjon in #1444
Mypy plugin fixes
- Allow custom
Manager
andQuerySet
classes to be inner class ofModel
by @federicobond in #1392 - Fixed handling of
ForeignKey
in abstract models when usingto=
with a string reference by @Kircheneer in #1436 - Handle repeated field lookups in calls to
QuerySet.values_list()
by @leamingrad in #1441 - Handle
Model
relations created withForeignObject
/ForeignObjectRel
by @Photonios in #1451
Other improvements
Tests & CI
- Add tests for
QuerySet.select_related
returning queryset type by @flaeppe in #1400 - Add test for overriding User model manager by @flaeppe in #1401
- CI: Add Django 4.2 to typecheck and update other Django versions by @intgr in #1455
- CI: Stop testing with Python 3.7 by @intgr in #1453
- Run CI with Django 4.2 and declare support in package metadata by @intgr in #1452
Dependencies
- Sync pre-commit and requirements by @sobolevn in #1417
- Update compatible-mypy & CI to mypy 1.2.0 by @intgr in #1429
- Bump isort to 5.12.0 by @leamingrad in #1440
- Version 4.2.0 release (django-stubs, django-stubs-ext) by @intgr in #1458
Deferred for next release
- Added
decorators.AsyncGetResponseCallable
Protocol, but is not yet used anywhere by @RyanWalker277 in #1425 - Added
BaseModelMeta
for typing Model inner Meta class by @intgr in #1375 - Rename
BaseModelMeta
toTypedModelMeta
and document it by @intgr in #1456
New Contributors
- @realsuayip made their first contribution in #1418
- @monosans made their first contribution in #1424
- @karamanolev made their first contribution in #1438
- @Kircheneer made their first contribution in #1436
- @kjagiello made their first contribution in #1449
- @alexmv made their first contribution in #1448
- @bigfootjon made their first contribution in #1443
Full Changelog: 1.16.0...4.2.0
1.16.0
What's Changed
This release updates recommended mypy version to 1.1.x.
Stubs fixes
- Annotate
BaseCreateView.object
attribute asModel | None
by @RyanWalker277 in #1377 - Fixed
ListFilter.expected_parameters()
return type by @pheki in #1373 - Fixed type of
AdminSite.site_url
to allowNone
by @LincolnPuzey in #1379 - Fixed
@vary_on_headers()
decorator to preserve decorated function type by @RyanWalker277 in #1370
Stubs additions
- Added argument
validate_constraints=
toModel.full_clean()
method by @lklivingstone in #1385 - Added
Model.validate_constraints()
method by @OvervCW in #1388
Housekeeping
- Update recommended mypy & CI to 1.1.1, update MultiValueDict by @intgr in #1391
- Release script: Also clean build directories before a build by @intgr in #1378
- Version 1.16.0 release by @intgr in #1396
New Contributors
- @pheki made their first contribution in #1373
- @LincolnPuzey made their first contribution in #1379
- @lklivingstone made their first contribution in #1385
- @OvervCW made their first contribution in #1388
Full Changelog: 1.15.0...1.16.0
django-stubs-ext 0.8.0
1.15.0
This release updates recommended mypy version to 1.0.x. No changes in Django version compatibility.
Some re-exports that were unintentional have been removed. If you get errors like error: Module "django.core.cache" has no attribute "ConnectionProxy"
(for any import path), you probably need to change the module you are importing e.g. ConnectionProxy from. These re-exports were never intentional and are not stable across Django versions.
In addition to code contributions, I'd like to thank @ngnpope, @sobolevn, @ljodal, @christianbundy, @mschoettle for helping out with reviews.
What's Changed
Fixes
- Fix crash using
.values_list("pk")
on abstract model by @flaeppe in #1355 - Fixed Collector.data and NestedObjects.data types by @RyanWalker277 in #1366
- Update Model subclass DoesNotExist type by @mateenkasim in #1364
Django 4.2 compatibility
- Add new names for assert functions from Django 4.2 by @adamchainz in #1365
Documentation
- Use supported version in typecheck_tests command in Contributing guide by @adamantike in #1251
Housekeeping
- Remove unintentional re-exports by @intgr in #1309
- Remove unintentional GeoDjango re-exports by @intgr in #1308
- Version 1.15.0 release by @intgr in #1371
Dependencies
- Upgrade to Mypy 1.0 by @christianbundy in #1360
- Update Black to 23.1.0 and reformat with new style by @intgr in #1358
- Bump mypy from 1.0.0 to 1.0.1 by @dependabot in #1369
New Contributors
- @adamantike made their first contribution in #1251
- @RyanWalker277 made their first contribution in #1366
- @mateenkasim made their first contribution in #1364
Full Changelog: 1.14.0...1.15.0
1.14.0
What's Changed
This release updates recommended mypy version to 0.991 and fixes a few regressions in the last release. No changes in Django version compatibility.
In addition to code contributions, I'd like to thank @flaeppe, @ngnpope and @sobolevn who helped out with reviews.
Fixes for regressions from last version
- Fix some errors in GeoDjango stubs by @ciscorn in #1335
- Allow returning Response from admin @action callbacks by @christianbundy in #1331
- Fixes Recent change to admin action decorators bans return values #1330
- Allow int, bool for data argument in test.client.Client.get() by @nils-van-zuijlen in #1345
- Fixes Recent changes to test.client.Client.get() do not accept valid data types #1327
Mypy plugin fixes
- Fix crash when filtering on implicit
pk
field on abstract model by @flaeppe in #1328 - Suppress
FieldDoesNotExist
raised from attribute on class definition by @flaeppe in #1329 - Fix crash when FK references unknown 'app_label' by @flaeppe in #1342
Enhancements
- Support passing lazy strings to utils.text functions by @ds-cbo in #1344
- Add PASSWORD_RESET_TIMEOUT_DAYS by @christianbundy in #1332
- Improve types of
as_sql()
andas_<engine>()
methods by @intgr in #1315
Housekeeping, dependencies
- Update to mypy 0.991 for compatible-mypy & CI by @intgr in #1260
- Version 1.14.0 release by @intgr in #1343
New Contributors
- @christianbundy made their first contribution in #1332
- @ds-cbo made their first contribution in #1344
Full Changelog: 1.13.2...1.14.0
1.13.2
What's Changed
Mypy plugin fixes
Strings/translations
- Enhance support for gettext_lazy in AdminSite and ModelAdmin by @rclement in #1296
- Support lazy strings for form errors and ValidationError by @mschoettle in #1319
- Add support for send_mail subject using gettext_lazy by @mschoettle in #1304
- Add FAQ entry regarding StrPromise to README by @mschoettle in #1320
GeoDjango
- GeoDjango spatial reference fixes by @mjakob in #1265
- Improve GeoDjango type-hints by @ciscorn in #1299
Decorators
- Fix @classproperty decorator by @intgr in #1287
- Improve types of
django.contrib.admin.decorators
by @flaeppe in #1267 - Improve ModelAdmin and decorator hints and attributes, add tests by @intgr in #1292
- Improve system check registry hints by @intgr in #1249
- Fix override_settings decorator typing by @martinlehoux in #1322
Other type stubs changes
- Add LANGUAGE_COOKIE_SECURE setting by @sshishov in #1294
- Added types for template.backends.django.Template by @smithdc1 in #1302
- request arg to shortcuts.render() can be None. by @smithdc1 in #1305
- Add typing for data parameter in get from RequestFactory, test Client and urlencode by @nils-van-zuijlen in #1297
- Type cache delete functions to return bool by @flaeppe in #1310
- Allow expressions in CheckConstraint.check by @adamchainz in #1219
- Improve some DB expression types by @adamchainz in #1243
- Add support for
django.core.cache.backends.memcached.PyMemcacheCache
by @ngnpope in #1314
Housekeeping
- Version 1.13.2 release by @intgr in #1326
- Used _ContextKeys for context like dicts by @smithdc1 in #1298
- change render_to_string context type by @mschoettle in #1306
- Revert "Used _ContextKeys for context like dicts" by @intgr in #1311
CI
- Run apt-get update in CI by @adamchainz in #1313
Dependency updates
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1291
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1293
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1301
- Bump black from 22.10.0 to 22.12.0 by @dependabot in #1290
- Bump pre-commit from 2.20.0 to 2.21.0 by @dependabot in #1300
- Bump gitpython from 3.1.29 to 3.1.30 by @dependabot in #1303
- Bump pytest from 7.2.0 to 7.2.1 by @dependabot in #1324
- Bump requests from 2.28.1 to 2.28.2 by @dependabot in #1321
New Contributors
- @sshishov made their first contribution in #1294
- @rclement made their first contribution in #1296
- @mschoettle made their first contribution in #1304
- @nils-van-zuijlen made their first contribution in #1297
- @ciscorn made their first contribution in #1299
- @jimmylai made their first contribution in #1317
Full Changelog: 1.13.1...1.13.2
Version 1.13.1
What's Changed
- Fix types for sessions by @ljodal in #1173
- Add SQLite backend is_in_memory_db() functions by @adamchainz in #1218
- Introduce
QuerySetAny
type for QuerySet isinstance checks by @PIG208 in #1199 - Add LANGUAGE_COOKIE_* settings by @andersk in #1228
- move _default_manager to ModelBase by @clouds56 in #1150
- Support more use cases of
gettext_lazy
. by @PIG208 in #1233 - Prefetch attributes by @g-as in #1234
- Typehint common dunder methods by @intgr in #1238
- Add Optional to LANGUAGE_COOKIE_SAMESITE by @andersk in #1246
- Add django.db.models.query.BaseIterable and subclasses by @joshua-jandyco in #1242
- Add Django 4.1 constraints violation_error_message by @martinlehoux in #1263
- Type
ModelAdmin.fieldsets
'description' option to supportgettext_lazy
by @flaeppe in #1268 - Type hint improvements for string promises, manager, query set by @benspaulding in #1272
- update django.contrib.messages to use _StrOrPromise by @terencehonles in #1274
- Add Django 4.0 trigram word classes by @michael-lazar in #1278
Fixes
Housekeeping
- Fix stackoverflow badge by @sobolevn in #1230
- revert changes in #1252 leaked into master by @hoefling in #1255
- Version 1.13.1 release by @sobolevn in #1241
Continuous integration
- Enable
pre-commit.ci
by @sobolevn in #1222 - Cancel old pipelines by @sobolevn in #1226
- Run pre-commit only on pre-commit.ci by @adamchainz in #1250
- Run checks against Django 4.1 and Python 3.11 by @michael-k in #1223
- Introduce
flake8-pyi
inpre-commit
checks by @hoefling in #1253 - Pin flake8-pyi to 22.10.0 by @hoefling in #1254
- revert changes done in #1253 that satisfy Y041, disable Y041 rule by @hoefling in #1256
- Fix CI: Update flake8-pyi by @intgr in #1279
Dependency updates
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1236
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1258
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1275
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1281
New Contributors
- @clouds56 made their first contribution in #1150
- @pre-commit-ci made their first contribution in #1236
- @joshua-jandyco made their first contribution in #1242
- @martinlehoux made their first contribution in #1263
- @benspaulding made their first contribution in #1272
- @michael-lazar made their first contribution in #1278
Full Changelog: 1.13.0...1.13.1
Version 1.13.0 and django-stubs-ext@0.7.0
What's Changed
- Set generic type of SimpleCookie by @w0rp in #1018
- Update RunSQL type to include parametrized sql by @lachtanek in #1015
- BaseContext.copy by @smithdc1 in #1012
- Add missing type for TestCase.captureOnCommitCallbacks by @lachtanek in #1016
- Fix nullability of blank charfields in values and values_list by @ljodal in #1020
- Improved type of template.loader.get_template() by @smithdc1 in #1011
- Bump black from 22.3.0 to 22.6.0 by @dependabot in #1027
- Fix
logger
type in all modules by @sobolevn in #1031 - Support cursor.execute(psycopg2.sql.Composable) by @andersk in #1029
- Bump requests from 2.28.0 to 2.28.1 by @dependabot in #1035
- Improved return type of render_to_string(). by @smithdc1 in #1036
- Resolve all queryset methods on managers as attributes by @ljodal in #1028
- Populate model argument for dynamically created managers by @flaeppe in #1033
- Fix type stubs for EmptyManager by @ljodal in #1039
- Improve stubs with minor fixes by @PIG208 in #1038
- Monkeypatch some more generics. by @ngnpope in #1050
- Bump pre-commit from 2.19.0 to 2.20.0 by @dependabot in #1057
- Use
_AsSqlType
foras_sql
by @PIG208 in #1052 - Made BaseContext setitem and getitem consistant. by @smithdc1 in #1040
- Add support for inline
from_queryset
in model classes by @ljodal in #1045 - Improve typing for unresolved managers by @ljodal in #1044
- Use a more general type for django.core.mail.send_mass_mail's datatuple by @jhhayashi in #1062
- Auto-update pre-commit hooks by @github-actions in #1070
- Improve type annotation of DiscoverRunner. by @PIG208 in #1069
- Fix overloads and remove
PathLike
infinders
by @andersk in #1063 - Fix type annotation of message_dict. by @PIG208 in #1073
- Tighten
management.get_commands
type by @andersk in #1074 - Improve stubs for contrib.postgres.operations. by @PIG208 in #1071
- Improve type for @require_http_methods by @adamchainz in #1075
- Auto-update pre-commit hooks by @github-actions in #1076
- Support Lookup generics. by @PIG208 in #1079
- Fix OutputWrapper.style_func type by @andersk in #1080
- Fix type of min_value and max_value on FloatField by @UnknownPlatypus in #1081
- docs(README): Fix indentation in list and examples by @tony in #1083
- Remove trailing whitespace in README to fix CI failure by @andersk in #1084
- Fix CI error introduced since Django 4.1 by @PIG208 in #1093
- Add preset options list to makemessages command. by @PIG208 in #1091
- Improve type annotation for RunSQL by @PIG208 in #1090
- Fix base_field type for SimpleArrayField by @adnathanail in #1097
- Prevent building an editable wheel with setuptools<64 by @andersk in #1123
- Improve hints for BaseCache by @adamchainz in #1117
- Add HttpResponseBase.contains by @adamchainz in #1099
- Add BaseDatabaseWrapper.operators by @adamchainz in #1119
- Add SimpleTestCase.assertURLEqual() by @adamchainz in #1102
- Allow None to be passed to Paginator.get_page by @adamchainz in #1101
- Improve types for CheckMessage subclasses by @adamchainz in #1107
- Expose HttpResponseBase in django.http by @adamchainz in #1121
- Improve types for DiscoverRunner by @adamchainz in #1106
- Improve return type for BaseCommand.execute() by @adamchainz in #1104
- Fix CI by @sobolevn in #1108
- Improve type hints for test client response.context by @adamchainz in #1100
- Add test client response.redirect_chain by @adamchainz in #1124
- Add different signatures for form assertions from Django 4.1 by @adamchainz in #1105
- Run stubs self-check on all python versions by @sobolevn in #1126
- Add database Field.non_db_attrs by @adamchainz in #1125
- Rewrite SessionBase properties to use
@property
by @adamchainz in #1129 - Add db Field.flatchoices by @adamchainz in #1128
- Add HttpRequest current_app and LANGUAGE_CODE attrs by @adamchainz in #1127
- Updating deconstructible by @karolyi in #1116
- Type
samesite
values as literals 'Lax', 'Strict' or 'None' by @flaeppe in #1110 - Enhance stubs for csrf decorators. by @PIG208 in #1130
- Return Promise for lazy functions. by @PIG208 in #689
- Add async queryset for Django 4.1 by @xncbf in #1131
- Add Q.xor by @adamchainz in #1133
- Improve database backend types by @adamchainz in #1132
- Improve types for QuerySet.contains and bulk_create by @adamchainz in #1134
- Fix Manager.contains and bulk_create by @adamchainz in #1135
- Add QuerySet.aiter() by @adamchainz in #1136
- Fix return type for django.shortcuts.render by @SebastiaanZ in #1140
- Bump black from 22.6.0 to 22.8.0 by @dependabot in #1141
- Auto-update pre-commit hooks by @github-actions in #1142
- fix type hint for GenericSitemap(info_dict) by @djbrown in #1111
- Reflect the deprecation of get_response being None. by @PIG208 in #1086
- Add django.db.models.functions.Collate by @syre in #1143
- Bump pytest from 7.1.2 to 7.1.3 by @dependabot in #1144
- Correct EmailMultiAlternatives.body by @adamchainz in #1146
- Add type and parameter fields to MediaType by @yrd in #1103
- Improve Flake8 config by @adamchainz in #1149
- Serialize
RelatedManager
attributes in cache by @flaeppe in #1152 - Auto-update pre-commit hooks by @github-actions in #1153
- Adjust
choices=
type variance for model fields by @flaeppe in #1154 - Broaden type annotation for verbose_name(_plural) to accept lazystr. by @PIG208 in #1139
- Improve stubs for runserver management command. by @PIG208 in #1037
- Relax
fields=
arg forrefresh_from_db
to acceptSequence
by @flaeppe in #1156 - Fix paramters for ParallelTestSuite and RemoteTestRunner. by @PIG208 in #1072
- Fix unresolved placeholder error during serialization by @ljodal in #1161
- Disable fallback to runtime types for Django settings by @andersk in #1163
- Auto...