Mypy stubs for Django REST Framework. Supports Python 3.10 and up.
pip install djangorestframework-stubs[compatible-mypy]To make mypy aware of the plugin, you need to add
[mypy]
plugins =
mypy_drf_plugin.mainin your mypy.ini file.
When subclassing ModelSerializer, add a type argument to type-hint the related model class, for example:
class MyModelSerializer(serializers.ModelSerializer[MyModel]):
class Meta:
model = MyModel
fields = ("id", "example")Which means that methods where the model is being passed around will know the actual type of the model instead of being Any. The instance attribute on the above serializer will be MyModel | typing.Sequence[MyModel] | None.
We have Gitter here: https://gitter.im/mypy-django/Lobby If you think you have more generic typing issue, please refer to https://github.com/python/mypy and their Gitter.
This project is open source and community driven. As such we encourage contributions big and small. You can contribute by doing any of the following:
- Contribute code (e.g. improve stubs, add plugin capabilities, write tests etc) - to do so please follow the contribution guide.
- Assist in code reviews and discussions in issues.
- Identify bugs and issues and report these
You can always also reach out in gitter to discuss your contributions!