Pyre-check looks for the stubs in the directory specified by the typeshed
directive in the configuration file.
The easiest way is to move stubs provided for Django in the pyre-check repository to the typeshed
directory that is in the pyre-check directory.
For example, if you have installed pyre-check to the ~/.local/lib
directory, move the django
directory from ~/.local/lib/pyre_check/stubs
to ~/.local/lib/pyre_check/typeshed/third_party/2and3/
and make sure your .pyre_configuration file will look like this:
{
"source_directories": ["~/myproject"],
"taint_models_path": "~/myproject/taint",
"typeshed": "~/.local/lib/pyre_check/typeshed"
}
In this case, your Django stubs directory will be ~/.local/lib/pyre_check/typeshed/third_parth/2and3/django
Pyre-check uses the following algorithm to traverse across the typeshed
directory:
- If it contains the
third_party
subdirectory, it uses a legacy method: enters just the two subdirectories: stdlib
and third_party
and there looks for any subdirectory except those with names starting with 2
but not 2and3
, and looks for the modules in those subdirectories like 2and3
, e.g. in third_party/2and3/
- Otherwise, it enters the subdirectories
stubs
and stdlib
, and looks for modules there, e.g. in stubs/
, but not in stubs/2and3/
.
That's why specifying multiple paths may be perplexing and confusing, and the easiest way is to setup the typeshed
directory to ~/.local/lib/pyre_check/typeshed/
and move django
to third_parth/2and3
, so it will be ~/.local/lib/pyre_check/typeshed/third_parth/2and3/django
.
Also don't forget to copy the .pysa
files that you need to the taint_models_path
directory. Don't set it up to the directory of the Pyre-check, create your own new directory and copy only those files that are relevant to you.