mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-07 04:34:29 +08:00
97ec73411e908a1e73b02ecb90889f9e786966da
django-stubs
The aim of this project is to bring PEP 484 type hints to Django.
We currently focus on supporting Django >= 2.1 to simplify work in the beginning.
The Plan
- Use retype/MonkeyType/stubgen to auto-generate django-stubs Django 2.1.
- Integrate existing stubs into django-stubs. See django-stubs/#4 for more.
- Create a mypy plugin to support Django model dynamic behaviour. See django-stubs/#5 for more.
- Create a test-suite to keep synced with upstream Django. See django-stubs/#3 for more.
- Commence refining auto-generated stubs and plugin until it is useful.
- Start conversation with Django core about potential integration.
This plan is not set in stone and can change.
Join Us
Bringing type hints to Django will be a huge achievement but will require a lot of work. It is still unclear as to how much time and effort but one thing is clear: we will need a lot of help. No matter what skill level or amount of free time, if you have some motivation to help, please do so.
Right now, the best way to start helping is:
- Introduce yourself on the Gitter chat room.
- Start picking up one of the issues.
- Review and help triage the project management board.
Working With Type Hints
- https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html
- https://docs.python.org/3/library/typing.html
- https://www.python.org/dev/peps/pep-0483/
- https://www.python.org/dev/peps/pep-0484/
Other Django Stub Efforts
We'll hopefully merge these existing efforts here as we move along.
- https://github.com/machinalis/mypy-django
- https://github.com/facebook/pyre-check/tree/master/stubs/3/django
- https://github.com/zulip/zulip/issues/991
- https://gitlab.com/melvyn-sopacua/typeshed/commits/django
- https://github.com/suutari/mypy-django (See this comment for more)
How was django-stubs initially auto-generated?
The initial work was done by @mkurnikov and will be documented once django-stubs/#2 is done.
Description
Languages
Python
100%
