mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-12 15:01:55 +08:00
Compare commits
176 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
304cb19de6 | ||
|
|
c57f4f7152 | ||
|
|
8a826fee1e | ||
|
|
37d85c2ca6 | ||
|
|
71fb0432f3 | ||
|
|
9288c34648 | ||
|
|
70050f28b9 | ||
|
|
4338c17970 | ||
|
|
91f789c38c | ||
|
|
0f5b45fba1 | ||
|
|
5b455b729a | ||
|
|
5c6be7ad12 | ||
|
|
5d0ee40ada | ||
|
|
77f15d7478 | ||
|
|
4f83d8d1bb | ||
|
|
b1a04d2f7d | ||
|
|
7c57143310 | ||
|
|
c3d76f9a1e | ||
|
|
fde071b883 | ||
|
|
324b961d74 | ||
|
|
86c63d790b | ||
|
|
050c1b8887 | ||
|
|
8978ad471f | ||
|
|
f7dfbefbd6 | ||
|
|
627daa55f5 | ||
|
|
194489ee8d | ||
|
|
1d2c7fb805 | ||
|
|
18c908bf98 | ||
|
|
e0e8814804 | ||
|
|
53f5d2214b | ||
|
|
9e4ed70fc5 | ||
|
|
18445f686f | ||
|
|
c962b8ac68 | ||
|
|
70c3126348 | ||
|
|
af8ecc5520 | ||
|
|
64f8870d0b | ||
|
|
df5c70c703 | ||
|
|
c09a97e005 | ||
|
|
0e30821ad3 | ||
|
|
2dadd681ff | ||
|
|
2dec3b4325 | ||
|
|
3b8c5d08e8 | ||
|
|
eaee3d390f | ||
|
|
b686751f19 | ||
|
|
73ea682356 | ||
|
|
9ea25f3e56 | ||
|
|
dacf88c692 | ||
|
|
3d14d07e4e | ||
|
|
6e6d1645d3 | ||
|
|
cda703a94b | ||
|
|
2bd018951b | ||
|
|
14ea848dd7 | ||
|
|
2d3b5492f0 | ||
|
|
194258ab8e | ||
|
|
116aa2c539 | ||
|
|
67c99434e5 | ||
|
|
5d8cdbcf29 | ||
|
|
78810f55b6 | ||
|
|
36662896bc | ||
|
|
e54dbb79c9 | ||
|
|
41f283552a | ||
|
|
ab73d53ae5 | ||
|
|
d24be4b35f | ||
|
|
9d60b472df | ||
|
|
632e063e22 | ||
|
|
66224416b5 | ||
|
|
e5b2496eb5 | ||
|
|
f980311be0 | ||
|
|
400a0f0486 | ||
|
|
882ec71d23 | ||
|
|
e9f9202ed1 | ||
|
|
6763217a80 | ||
|
|
6da5ead6f0 | ||
|
|
c382d6aa2f | ||
|
|
63a14f7107 | ||
|
|
dc33dd9493 | ||
|
|
4cb10390cf | ||
|
|
c1640b619f | ||
|
|
a08ad80a0d | ||
|
|
f30cd092f1 | ||
|
|
dcd9ee0bb8 | ||
|
|
26a80a8279 | ||
|
|
82de0a8791 | ||
|
|
79ebe20f2e | ||
|
|
587c2c484b | ||
|
|
4a22da29cb | ||
|
|
70378b8f40 | ||
|
|
b7f7713c5a | ||
|
|
2720b74242 | ||
|
|
563c0add5e | ||
|
|
3191740c6b | ||
|
|
cf7c263fb5 | ||
|
|
16a983152a | ||
|
|
9eb95fbab3 | ||
|
|
7aafca2e5d | ||
|
|
d05e739d75 | ||
|
|
faefdcca5b | ||
|
|
643f852775 | ||
|
|
6b7507206a | ||
|
|
5f6f597266 | ||
|
|
5c6aa9a00b | ||
|
|
916df1efb6 | ||
|
|
dead370244 | ||
|
|
dcb4da378b | ||
|
|
d4cb729c93 | ||
|
|
faee26703e | ||
|
|
f7b586f038 | ||
|
|
56cd3bc77d | ||
|
|
11500f337d | ||
|
|
723d9fbfb7 | ||
|
|
3fb3bbcf19 | ||
|
|
191496ed72 | ||
|
|
d43cb1fcd7 | ||
|
|
2559901ff3 | ||
|
|
0c121d65d1 | ||
|
|
d18fc0bf5f | ||
|
|
c534e75aaf | ||
|
|
af30bb6c4a | ||
|
|
dbc9b49867 | ||
|
|
a9c1f35494 | ||
|
|
4ea4c3eddd | ||
|
|
e4d2b795e3 | ||
|
|
be0b2eebb2 | ||
|
|
38291e0651 | ||
|
|
69d4ccaf54 | ||
|
|
6c87ccf228 | ||
|
|
08bf5660bf | ||
|
|
7819165e42 | ||
|
|
3dcab64e07 | ||
|
|
5a08a99d8b | ||
|
|
6fcccb3769 | ||
|
|
68c5da12f9 | ||
|
|
f5135dac9f | ||
|
|
2a6a0120a9 | ||
|
|
59b4d2e849 | ||
|
|
5f6b4bfd30 | ||
|
|
d03fddd96d | ||
|
|
e409dbdb82 | ||
|
|
880bab395b | ||
|
|
9461dbfb4f | ||
|
|
7a7f68ede4 | ||
|
|
3ccecebe3f | ||
|
|
55415458dc | ||
|
|
255e4af911 | ||
|
|
7f8477ff3d | ||
|
|
06724b762e | ||
|
|
19e9cd7ffc | ||
|
|
815c3ea497 | ||
|
|
b636d24051 | ||
|
|
c9e8fe53a5 | ||
|
|
b1153204d7 | ||
|
|
bb2d107e38 | ||
|
|
322addf6b2 | ||
|
|
8a952b416e | ||
|
|
1868100bd9 | ||
|
|
628c1224d6 | ||
|
|
978379c454 | ||
|
|
ece2b87318 | ||
|
|
f07a9ecbb8 | ||
|
|
e2bacbcbde | ||
|
|
835889e3a4 | ||
|
|
2914a0e560 | ||
|
|
e35c474cf8 | ||
|
|
5d8576348e | ||
|
|
145ce6bf18 | ||
|
|
db3f958d2c | ||
|
|
161d296871 | ||
|
|
d6c9aa1b00 | ||
|
|
2525b5b89f | ||
|
|
eacdd2ba09 | ||
|
|
b701d008f5 | ||
|
|
1afa079b0b | ||
|
|
38e841c4c7 | ||
|
|
bc4bc31722 | ||
|
|
0f1af6581d | ||
|
|
1b95bec5aa |
53
.travis.yml
53
.travis.yml
@@ -1,31 +1,48 @@
|
|||||||
language: python
|
language: python
|
||||||
# cache package wheels (1 cache per python version)
|
|
||||||
cache: pip
|
cache: pip
|
||||||
# newer python versions are available only on xenial (while some older only on trusty) Ubuntu distribution
|
|
||||||
dist: xenial
|
dist: xenial
|
||||||
sudo: required
|
sudo: required
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
include:
|
include:
|
||||||
- name: "Run plugin test suite with python 3.7"
|
- name: Run plugin test suite with python 3.7
|
||||||
python: 3.7
|
python: 3.7
|
||||||
script: |
|
script: |
|
||||||
set -e
|
set -e
|
||||||
pytest
|
pytest
|
||||||
|
|
||||||
- name: "Lint with black"
|
- name: Run plugin test suite with python 3.6
|
||||||
python: 3.7
|
python: 3.6
|
||||||
script: |
|
script: |
|
||||||
black --check --line-length=120 django-stubs/
|
set -e
|
||||||
|
pytest
|
||||||
|
|
||||||
# - name: "Typecheck Django test suite"
|
- name: Typecheck Django test suite
|
||||||
# python: 3.7
|
python: 3.7
|
||||||
# script: |
|
script: 'python ./scripts/typecheck_tests.py'
|
||||||
# xonsh ./scripts/typecheck_django_tests.xsh
|
|
||||||
|
- name: Lint with black
|
||||||
|
python: 3.7
|
||||||
|
script: 'black --check --line-length=120 django-stubs/'
|
||||||
|
|
||||||
|
- name: Lint plugin code with flake8
|
||||||
|
python: 3.7
|
||||||
|
script: 'flake8'
|
||||||
|
|
||||||
|
- name: Lint plugin code with isort
|
||||||
|
python: 3.7
|
||||||
|
script: 'isort --check'
|
||||||
|
|
||||||
before_install: |
|
before_install: |
|
||||||
# Upgrade pip, setuptools, and wheel
|
# Upgrade pip, setuptools, and wheel
|
||||||
pip install -U pip setuptools wheel xonsh
|
pip install -U pip setuptools wheel
|
||||||
|
|
||||||
install: |
|
install: |
|
||||||
pip install -r ./dev-requirements.txt
|
pip install -r ./dev-requirements.txt
|
||||||
|
pip install -r ./scripts/typecheck-tests-requirements.txt
|
||||||
|
|
||||||
|
#deploy:
|
||||||
|
# provider: pypi
|
||||||
|
# user: "mkurnikov"
|
||||||
|
# password:
|
||||||
|
# secure: 0E+hkaIdtpEtyL1KZeglunZ5/PKjouFfa8ljakAwoig7VNUL+2sO/bTyg38wRQl0NvzDzEHSMEt1bzg4Tq7b7Zp6nLuewG/w7mGLzqaOlTySiPEfRsg8s6uO2KrTn7g9VhlXH6UtyTXoQdMt6aE8+bt/GmEesanS57NB2mhwmylFgQwlJFu4LfIv/+aGmc4eLeGI2Qhvs9QYf7qvYlLQldgFh8mAckQEEvaBg35sf+puypZgf4nkx1k/dfG9wnFWZU8PJ41LbMw/Wj+k/9NpF8ePwiAr0fvRMErZd8nvoiWjQQjhzgrLVHhXEP5pTHh3zjDuGFMWyKuBhC6WLsG4qOQz/HvxeYvNI+jaTp15BgxtefG/pCNDUl/8GlCde7xVt7xzEcYNJSRaZPY2oofEFSd9qDnr4kqmyCXpNsaHRHvkL61bFjXUcfOsMMYvQCC6N2Jjb7S97RbnDdkOZO/lnFhVANT2rigsaXlSlWyN6f7ApxDNvu6Ehu5yrx6IjlPZJ0sI9vvY3IoS6Fik7w9E6zjNVjbmUn1D4MKFP4v5ppNASOqYcZeLd42j8rjEp0gIc3ccz9aUIT9q8VqSXSdUbqA6SVwvHXIVPxJMXj0bqWBG1iKs0cPBuzRVpRrwkENWCSWElDAewM1qFEnK0LppyoYFbqoQ8F5FG0+re7QttKQ=
|
||||||
|
# on:
|
||||||
|
# tags: true
|
||||||
25
LICENSE.txt
25
LICENSE.txt
@@ -1,27 +1,8 @@
|
|||||||
Copyright (c) Maxim Kurnikov.
|
Copyright (c) Maxim Kurnikov.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice,
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
|
|
||||||
3. Neither the name of Django nor the names of its contributors may be used
|
|
||||||
to endorse or promote products derived from this software without
|
|
||||||
specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|||||||
33
README.md
33
README.md
@@ -7,12 +7,14 @@
|
|||||||
|
|
||||||
This package contains type stubs and mypy plugin to provide more precise static types and type inference for Django framework. Django uses some Python "magic" that makes having precise types for some code patterns problematic. This is why we need to accompany the stubs with mypy plugins. The final goal is to be able to get precise types for most common patterns.
|
This package contains type stubs and mypy plugin to provide more precise static types and type inference for Django framework. Django uses some Python "magic" that makes having precise types for some code patterns problematic. This is why we need to accompany the stubs with mypy plugins. The final goal is to be able to get precise types for most common patterns.
|
||||||
|
|
||||||
|
Supports Python 3.6/3.7, and Django 2.1.x series.
|
||||||
|
|
||||||
|
Could be run on earlier versions of Django, but expect some missing imports warnings.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```
|
```
|
||||||
git clone https://github.com/mkurnikov/django-stubs.git
|
pip install django-stubs
|
||||||
cd django-stubs
|
|
||||||
pip install -U .
|
|
||||||
```
|
```
|
||||||
|
|
||||||
To make mypy aware of the plugin, you need to add
|
To make mypy aware of the plugin, you need to add
|
||||||
@@ -25,4 +27,27 @@ plugins =
|
|||||||
|
|
||||||
in your `mypy.ini` file.
|
in your `mypy.ini` file.
|
||||||
|
|
||||||
Also, it uses value of `DJANGO_SETTINGS_MODULE` from the environment, so set it before execution, otherwise some features will not work.
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
In order to specify config file, set `MYPY_DJANGO_CONFIG` environment variable with path to the config file. Default is `./mypy_django.ini`
|
||||||
|
|
||||||
|
Config file format (.ini):
|
||||||
|
```
|
||||||
|
[mypy_django_plugin]
|
||||||
|
|
||||||
|
# specify settings module to use for django.conf.settings, this setting
|
||||||
|
# could also be specified with DJANGO_SETTINGS_MODULE environment variable
|
||||||
|
# (it also takes priority over config file)
|
||||||
|
django_settings = mysettings.local
|
||||||
|
|
||||||
|
# if True, all unknown settings in django.conf.settings will fallback to Any,
|
||||||
|
# specify it if your settings are loaded dynamically to avoid false positives
|
||||||
|
ignore_missing_settings = True
|
||||||
|
```
|
||||||
|
|
||||||
|
## To get help
|
||||||
|
|
||||||
|
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.
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
black
|
black
|
||||||
-e git+https://github.com/mkurnikov/pytest-mypy-plugins.git#egg=pytest-mypy-plugins
|
pytest-mypy-plugins
|
||||||
|
flake8
|
||||||
|
isort==4.3.4
|
||||||
-e .
|
-e .
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
from typing import Any
|
from typing import Any, NamedTuple
|
||||||
|
from .utils.version import get_version as get_version
|
||||||
|
|
||||||
VERSION: Any
|
VERSION: Any
|
||||||
|
__version__: str
|
||||||
|
|
||||||
def setup(set_prefix: bool = ...) -> None: ...
|
def setup(set_prefix: bool = ...) -> None: ...
|
||||||
|
|
||||||
|
# Used by mypy_django_plugin when returning a QuerySet row that is a NamedTuple where the field names are unknown
|
||||||
|
class _NamedTupleAnyAttr(NamedTuple):
|
||||||
|
def __getattr__(self, item: str) -> Any: ...
|
||||||
|
def __setattr__(self, item: str, value: Any) -> None: ...
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, Iterator, Type
|
from typing import Any, Iterator, Type, Optional, Dict
|
||||||
|
|
||||||
from django.db.models.base import Model
|
from django.db.models.base import Model
|
||||||
|
|
||||||
@@ -6,14 +6,14 @@ MODELS_MODULE_NAME: str
|
|||||||
|
|
||||||
class AppConfig:
|
class AppConfig:
|
||||||
name: str = ...
|
name: str = ...
|
||||||
module: Any = ...
|
module: Optional[Any] = ...
|
||||||
apps: None = ...
|
apps: None = ...
|
||||||
label: str = ...
|
label: str = ...
|
||||||
verbose_name: str = ...
|
verbose_name: str = ...
|
||||||
path: str = ...
|
path: str = ...
|
||||||
models_module: None = ...
|
models_module: None = ...
|
||||||
models: None = ...
|
models: Dict[str, Type[Model]] = ...
|
||||||
def __init__(self, app_name: str, app_module: None) -> None: ...
|
def __init__(self, app_name: str, app_module: Optional[Any]) -> None: ...
|
||||||
@classmethod
|
@classmethod
|
||||||
def create(cls, entry: str) -> AppConfig: ...
|
def create(cls, entry: str) -> AppConfig: ...
|
||||||
def get_model(self, model_name: str, require_ready: bool = ...) -> Type[Model]: ...
|
def get_model(self, model_name: str, require_ready: bool = ...) -> Type[Model]: ...
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import collections
|
import collections
|
||||||
from typing import Any, Callable, List, Optional, Tuple, Type, Union, Iterable
|
from typing import Any, Callable, List, Optional, Tuple, Type, Union, Iterable, DefaultDict
|
||||||
|
|
||||||
from django.db.migrations.state import AppConfigStub
|
from django.db.migrations.state import AppConfigStub
|
||||||
from django.db.models.base import Model
|
from django.db.models.base import Model
|
||||||
@@ -12,6 +12,7 @@ class Apps:
|
|||||||
stored_app_configs: List[Any] = ...
|
stored_app_configs: List[Any] = ...
|
||||||
apps_ready: bool = ...
|
apps_ready: bool = ...
|
||||||
loading: bool = ...
|
loading: bool = ...
|
||||||
|
_pending_operations: DefaultDict[Tuple[str, str], List]
|
||||||
def __init__(self, installed_apps: Optional[Union[List[AppConfigStub], List[str], Tuple]] = ...) -> None: ...
|
def __init__(self, installed_apps: Optional[Union[List[AppConfigStub], List[str], Tuple]] = ...) -> None: ...
|
||||||
models_ready: bool = ...
|
models_ready: bool = ...
|
||||||
ready: bool = ...
|
ready: bool = ...
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ from typing import Any
|
|||||||
|
|
||||||
from django.utils.functional import LazyObject
|
from django.utils.functional import LazyObject
|
||||||
|
|
||||||
|
ENVIRONMENT_VARIABLE: str = ...
|
||||||
|
|
||||||
# required for plugin to be able to distinguish this specific instance of LazySettings from others
|
# required for plugin to be able to distinguish this specific instance of LazySettings from others
|
||||||
class _DjangoConfLazyObject(LazyObject): ...
|
class _DjangoConfLazyObject(LazyObject): ...
|
||||||
|
|
||||||
@@ -11,5 +13,8 @@ class LazySettings(_DjangoConfLazyObject):
|
|||||||
|
|
||||||
settings: LazySettings = ...
|
settings: LazySettings = ...
|
||||||
|
|
||||||
class Settings: ...
|
class Settings:
|
||||||
|
def __init__(self, settings_module: str): ...
|
||||||
|
def is_overridden(self, setting: str) -> bool: ...
|
||||||
|
|
||||||
class UserSettingsHolder: ...
|
class UserSettingsHolder: ...
|
||||||
|
|||||||
507
django-stubs/conf/global_settings.pyi
Normal file
507
django-stubs/conf/global_settings.pyi
Normal file
@@ -0,0 +1,507 @@
|
|||||||
|
"""
|
||||||
|
Default Django settings. Override these with settings in the module pointed to
|
||||||
|
by the DJANGO_SETTINGS_MODULE environment variable.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# This is defined here as a do-nothing function because we can't import
|
||||||
|
# django.utils.translation -- that module depends on the settings.
|
||||||
|
from typing import Any, Dict, List, Optional, Pattern, Tuple, Protocol, Union, Callable, TYPE_CHECKING, Sequence
|
||||||
|
|
||||||
|
####################
|
||||||
|
# CORE #
|
||||||
|
####################
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from django.db.models.base import Model
|
||||||
|
|
||||||
|
DEBUG: bool = ...
|
||||||
|
|
||||||
|
# Whether the framework should propagate raw exceptions rather than catching
|
||||||
|
# them. This is useful under some testing situations and should never be used
|
||||||
|
# on a live site.
|
||||||
|
DEBUG_PROPAGATE_EXCEPTIONS: bool = ...
|
||||||
|
|
||||||
|
# People who get code error notifications.
|
||||||
|
# In the format [('Full Name', 'email@example.com'), ('Full Name', 'anotheremail@example.com')]
|
||||||
|
ADMINS: List[Tuple[str, str]] = ...
|
||||||
|
|
||||||
|
# List of IP addresses, as strings, that:
|
||||||
|
# * See debug comments, when DEBUG is true
|
||||||
|
# * Receive x-headers
|
||||||
|
INTERNAL_IPS: List[str] = ...
|
||||||
|
|
||||||
|
# Hosts/domain names that are valid for this site.
|
||||||
|
# "*" matches anything, ".example.com" matches example.com and all subdomains
|
||||||
|
ALLOWED_HOSTS: List[str] = ...
|
||||||
|
|
||||||
|
# Local time zone for this installation. All choices can be found here:
|
||||||
|
# https://en.wikipedia.org/wiki/List_of_tz_zones_by_name (although not all
|
||||||
|
# systems may support all possibilities). When USE_TZ is True, this is
|
||||||
|
# interpreted as the default user time zone.
|
||||||
|
TIME_ZONE: str = ...
|
||||||
|
|
||||||
|
# If you set this to True, Django will use timezone-aware datetimes.
|
||||||
|
USE_TZ: bool = ...
|
||||||
|
|
||||||
|
# Language code for this installation. All choices can be found here:
|
||||||
|
# http://www.i18nguy.com/unicode/language-identifiers.html
|
||||||
|
LANGUAGE_CODE: str = ...
|
||||||
|
|
||||||
|
# Languages we provide translations for, out of the box.
|
||||||
|
LANGUAGES: List[Tuple[str, str]] = ...
|
||||||
|
|
||||||
|
# Languages using BiDi (right-to-left) layout
|
||||||
|
LANGUAGES_BIDI: List[str] = ...
|
||||||
|
|
||||||
|
# If you set this to False, Django will make some optimizations so as not
|
||||||
|
# to load the internationalization machinery.
|
||||||
|
USE_I18N: bool = ...
|
||||||
|
LOCALE_PATHS: List[str] = ...
|
||||||
|
|
||||||
|
# Settings for language cookie
|
||||||
|
LANGUAGE_COOKIE_NAME: str = ...
|
||||||
|
LANGUAGE_COOKIE_AGE: Optional[int] = ...
|
||||||
|
LANGUAGE_COOKIE_DOMAIN: Optional[str] = ...
|
||||||
|
LANGUAGE_COOKIE_PATH: str = ...
|
||||||
|
|
||||||
|
# If you set this to True, Django will format dates, numbers and calendars
|
||||||
|
# according to user current locale.
|
||||||
|
USE_L10N: bool = ...
|
||||||
|
|
||||||
|
# Not-necessarily-technical managers of the site. They get broken link
|
||||||
|
# notifications and other various emails.
|
||||||
|
MANAGERS = ADMINS
|
||||||
|
|
||||||
|
# Default content type and charset to use for all HttpResponse objects, if a
|
||||||
|
# MIME type isn't manually specified. These are used to construct the
|
||||||
|
# Content-Type header.
|
||||||
|
DEFAULT_CONTENT_TYPE: str = ...
|
||||||
|
DEFAULT_CHARSET: str = ...
|
||||||
|
|
||||||
|
# Encoding of files read from disk (template and initial SQL files).
|
||||||
|
FILE_CHARSET: str = ...
|
||||||
|
|
||||||
|
# Email address that error messages come from.
|
||||||
|
SERVER_EMAIL: str = ...
|
||||||
|
|
||||||
|
# Database connection info. If left empty, will default to the dummy backend.
|
||||||
|
DATABASES: Dict[str, Dict[str, Any]] = ...
|
||||||
|
|
||||||
|
# Classes used to implement DB routing behavior.
|
||||||
|
class Router(Protocol):
|
||||||
|
def allow_migrate(self, db, app_label, **hints): ...
|
||||||
|
|
||||||
|
DATABASE_ROUTERS: List[Union[str, Router]] = ...
|
||||||
|
|
||||||
|
# The email backend to use. For possible shortcuts see django.core.mail.
|
||||||
|
# The default is to use the SMTP backend.
|
||||||
|
# Third-party backends can be specified by providing a Python path
|
||||||
|
# to a module that defines an EmailBackend class.
|
||||||
|
EMAIL_BACKEND: str = ...
|
||||||
|
|
||||||
|
# Host for sending email.
|
||||||
|
EMAIL_HOST: str = ...
|
||||||
|
|
||||||
|
# Port for sending email.
|
||||||
|
EMAIL_PORT: int = ...
|
||||||
|
|
||||||
|
# Whether to send SMTP 'Date' header in the local time zone or in UTC.
|
||||||
|
EMAIL_USE_LOCALTIME: bool = ...
|
||||||
|
|
||||||
|
# Optional SMTP authentication information for EMAIL_HOST.
|
||||||
|
EMAIL_HOST_USER: str = ...
|
||||||
|
EMAIL_HOST_PASSWORD: str = ...
|
||||||
|
EMAIL_USE_TLS: bool = ...
|
||||||
|
EMAIL_USE_SSL: bool = ...
|
||||||
|
EMAIL_SSL_CERTFILE: Optional[str] = ...
|
||||||
|
EMAIL_SSL_KEYFILE: Optional[str] = ...
|
||||||
|
EMAIL_TIMEOUT: Optional[int] = ...
|
||||||
|
|
||||||
|
# List of strings representing installed apps.
|
||||||
|
INSTALLED_APPS: List[str] = ...
|
||||||
|
|
||||||
|
TEMPLATES: List[Dict[str, Any]] = ...
|
||||||
|
|
||||||
|
# Default form rendering class.
|
||||||
|
FORM_RENDERER: str = ...
|
||||||
|
|
||||||
|
# Default email address to use for various automated correspondence from
|
||||||
|
# the site managers.
|
||||||
|
DEFAULT_FROM_EMAIL: str = ...
|
||||||
|
|
||||||
|
# Subject-line prefix for email messages send with django.core.mail.mail_admins
|
||||||
|
# or ...mail_managers. Make sure to include the trailing space.
|
||||||
|
EMAIL_SUBJECT_PREFIX: str = ...
|
||||||
|
|
||||||
|
# Whether to append trailing slashes to URLs.
|
||||||
|
APPEND_SLASH: bool = ...
|
||||||
|
|
||||||
|
# Whether to prepend the "www." subdomain to URLs that don't have it.
|
||||||
|
PREPEND_WWW: bool = ...
|
||||||
|
|
||||||
|
# Override the server-derived value of SCRIPT_NAME
|
||||||
|
FORCE_SCRIPT_NAME = None
|
||||||
|
|
||||||
|
# List of compiled regular expression objects representing User-Agent strings
|
||||||
|
# that are not allowed to visit any page, systemwide. Use this for bad
|
||||||
|
# robots/crawlers. Here are a few examples:
|
||||||
|
# import re
|
||||||
|
# DISALLOWED_USER_AGENTS = [
|
||||||
|
# re.compile(r'^NaverBot.*'),
|
||||||
|
# re.compile(r'^EmailSiphon.*'),
|
||||||
|
# re.compile(r'^SiteSucker.*'),
|
||||||
|
# re.compile(r'^sohu-search'),
|
||||||
|
# ]
|
||||||
|
DISALLOWED_USER_AGENTS: List[Pattern] = ...
|
||||||
|
|
||||||
|
ABSOLUTE_URL_OVERRIDES: Dict[str, Callable[[Model], str]] = ...
|
||||||
|
|
||||||
|
# List of compiled regular expression objects representing URLs that need not
|
||||||
|
# be reported by BrokenLinkEmailsMiddleware. Here are a few examples:
|
||||||
|
# import re
|
||||||
|
# IGNORABLE_404_URLS = [
|
||||||
|
# re.compile(r'^/apple-touch-icon.*\.png$'),
|
||||||
|
# re.compile(r'^/favicon.ico$'),
|
||||||
|
# re.compile(r'^/robots.txt$'),
|
||||||
|
# re.compile(r'^/phpmyadmin/'),
|
||||||
|
# re.compile(r'\.(cgi|php|pl)$'),
|
||||||
|
# ]
|
||||||
|
IGNORABLE_404_URLS: List[Pattern] = ...
|
||||||
|
|
||||||
|
# A secret key for this particular Django installation. Used in secret-key
|
||||||
|
# hashing algorithms. Set this in your settings, or Django will complain
|
||||||
|
# loudly.
|
||||||
|
SECRET_KEY: str = ...
|
||||||
|
|
||||||
|
# Default file storage mechanism that holds media.
|
||||||
|
DEFAULT_FILE_STORAGE: str = ...
|
||||||
|
|
||||||
|
# Absolute filesystem path to the directory that will hold user-uploaded files.
|
||||||
|
# Example: "/var/www/example.com/media/"
|
||||||
|
MEDIA_ROOT: str = ...
|
||||||
|
|
||||||
|
# URL that handles the media served from MEDIA_ROOT.
|
||||||
|
# Examples: "http://example.com/media/", "http://media.example.com/"
|
||||||
|
MEDIA_URL: str = ...
|
||||||
|
|
||||||
|
# Absolute path to the directory static files should be collected to.
|
||||||
|
# Example: "/var/www/example.com/static/"
|
||||||
|
STATIC_ROOT: Optional[str] = ...
|
||||||
|
|
||||||
|
# URL that handles the static files served from STATIC_ROOT.
|
||||||
|
# Example: "http://example.com/static/", "http://static.example.com/"
|
||||||
|
STATIC_URL: Optional[str] = ...
|
||||||
|
|
||||||
|
# List of upload handler classes to be applied in order.
|
||||||
|
FILE_UPLOAD_HANDLERS: List[str] = ...
|
||||||
|
|
||||||
|
# Maximum size, in bytes, of a request before it will be streamed to the
|
||||||
|
# file system instead of into memory.
|
||||||
|
FILE_UPLOAD_MAX_MEMORY_SIZE: int = ... # i.e. 2.5 MB
|
||||||
|
|
||||||
|
# Maximum size in bytes of request data (excluding file uploads) that will be
|
||||||
|
# read before a SuspiciousOperation (RequestDataTooBig) is raised.
|
||||||
|
DATA_UPLOAD_MAX_MEMORY_SIZE: int = ... # i.e. 2.5 MB
|
||||||
|
|
||||||
|
# Maximum number of GET/POST parameters that will be read before a
|
||||||
|
# SuspiciousOperation (TooManyFieldsSent) is raised.
|
||||||
|
DATA_UPLOAD_MAX_NUMBER_FIELDS: int = ...
|
||||||
|
|
||||||
|
# Directory in which upload streamed files will be temporarily saved. A value of
|
||||||
|
# `None` will make Django use the operating system's default temporary directory
|
||||||
|
# (i.e. "/tmp" on *nix systems).
|
||||||
|
FILE_UPLOAD_TEMP_DIR: Optional[str] = ...
|
||||||
|
|
||||||
|
# The numeric mode to set newly-uploaded files to. The value should be a mode
|
||||||
|
# you'd pass directly to os.chmod; see https://docs.python.org/library/os.html#files-and-directories.
|
||||||
|
FILE_UPLOAD_PERMISSIONS = None
|
||||||
|
|
||||||
|
# The numeric mode to assign to newly-created directories, when uploading files.
|
||||||
|
# The value should be a mode as you'd pass to os.chmod;
|
||||||
|
# see https://docs.python.org/library/os.html#files-and-directories.
|
||||||
|
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
|
||||||
|
|
||||||
|
# Python module path where user will place custom format definition.
|
||||||
|
# The directory where this setting is pointing should contain subdirectories
|
||||||
|
# named as the locales, containing a formats.py file
|
||||||
|
# (i.e. "myproject.locale" for myproject/locale/en/formats.py etc. use)
|
||||||
|
FORMAT_MODULE_PATH: Optional[str] = ...
|
||||||
|
|
||||||
|
# Default formatting for date objects. See all available format strings here:
|
||||||
|
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||||
|
DATE_FORMAT: str = ...
|
||||||
|
|
||||||
|
# Default formatting for datetime objects. See all available format strings here:
|
||||||
|
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||||
|
DATETIME_FORMAT: str = ...
|
||||||
|
|
||||||
|
# Default formatting for time objects. See all available format strings here:
|
||||||
|
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||||
|
TIME_FORMAT: str = ...
|
||||||
|
|
||||||
|
# Default formatting for date objects when only the year and month are relevant.
|
||||||
|
# See all available format strings here:
|
||||||
|
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||||
|
YEAR_MONTH_FORMAT: str = ...
|
||||||
|
|
||||||
|
# Default formatting for date objects when only the month and day are relevant.
|
||||||
|
# See all available format strings here:
|
||||||
|
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||||
|
MONTH_DAY_FORMAT: str = ...
|
||||||
|
|
||||||
|
# Default short formatting for date objects. See all available format strings here:
|
||||||
|
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||||
|
SHORT_DATE_FORMAT: str = ...
|
||||||
|
|
||||||
|
# Default short formatting for datetime objects.
|
||||||
|
# See all available format strings here:
|
||||||
|
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||||
|
SHORT_DATETIME_FORMAT: str = ...
|
||||||
|
|
||||||
|
# Default formats to be used when parsing dates from input boxes, in order
|
||||||
|
# See all available format string here:
|
||||||
|
# https://docs.python.org/library/datetime.html#strftime-behavior
|
||||||
|
# * Note that these format strings are different from the ones to display dates
|
||||||
|
DATE_INPUT_FORMATS: List[str] = ...
|
||||||
|
|
||||||
|
# Default formats to be used when parsing times from input boxes, in order
|
||||||
|
# See all available format string here:
|
||||||
|
# https://docs.python.org/library/datetime.html#strftime-behavior
|
||||||
|
# * Note that these format strings are different from the ones to display dates
|
||||||
|
TIME_INPUT_FORMATS: List[str] = ... # '14:30:59' # '14:30:59.000200' # '14:30'
|
||||||
|
|
||||||
|
# Default formats to be used when parsing dates and times from input boxes,
|
||||||
|
# in order
|
||||||
|
# See all available format string here:
|
||||||
|
# https://docs.python.org/library/datetime.html#strftime-behavior
|
||||||
|
# * Note that these format strings are different from the ones to display dates
|
||||||
|
DATETIME_INPUT_FORMATS: List[str] = ...
|
||||||
|
|
||||||
|
# First day of week, to be used on calendars
|
||||||
|
# 0 means Sunday, 1 means Monday...
|
||||||
|
FIRST_DAY_OF_WEEK: int = ...
|
||||||
|
|
||||||
|
# Decimal separator symbol
|
||||||
|
DECIMAL_SEPARATOR: str = ...
|
||||||
|
|
||||||
|
# Boolean that sets whether to add thousand separator when formatting numbers
|
||||||
|
USE_THOUSAND_SEPARATOR: bool = ...
|
||||||
|
|
||||||
|
# Number of digits that will be together, when splitting them by
|
||||||
|
# THOUSAND_SEPARATOR. 0 means no grouping, 3 means splitting by thousands...
|
||||||
|
NUMBER_GROUPING: int = ...
|
||||||
|
|
||||||
|
# Thousand separator symbol
|
||||||
|
THOUSAND_SEPARATOR: str = ...
|
||||||
|
|
||||||
|
# The tablespaces to use for each model when not specified otherwise.
|
||||||
|
DEFAULT_TABLESPACE: str = ...
|
||||||
|
DEFAULT_INDEX_TABLESPACE: str = ...
|
||||||
|
|
||||||
|
# Default X-Frame-Options header value
|
||||||
|
X_FRAME_OPTIONS: str = ...
|
||||||
|
|
||||||
|
USE_X_FORWARDED_HOST: bool = ...
|
||||||
|
USE_X_FORWARDED_PORT: bool = ...
|
||||||
|
|
||||||
|
# The Python dotted path to the WSGI application that Django's internal server
|
||||||
|
# (runserver) will use. If `None`, the return value of
|
||||||
|
# 'django.core.wsgi.get_wsgi_application' is used, thus preserving the same
|
||||||
|
# behavior as previous versions of Django. Otherwise this should point to an
|
||||||
|
# actual WSGI application object.
|
||||||
|
WSGI_APPLICATION: Optional[str] = ...
|
||||||
|
|
||||||
|
# If your Django app is behind a proxy that sets a header to specify secure
|
||||||
|
# connections, AND that proxy ensures that user-submitted headers with the
|
||||||
|
# same name are ignored (so that people can't spoof it), set this value to
|
||||||
|
# a tuple of (header_name, header_value). For any requests that come in with
|
||||||
|
# that header/value, request.is_secure() will return True.
|
||||||
|
# WARNING! Only set this if you fully understand what you're doing. Otherwise,
|
||||||
|
# you may be opening yourself up to a security risk.
|
||||||
|
SECURE_PROXY_SSL_HEADER: Optional[Tuple[str, str]] = ...
|
||||||
|
|
||||||
|
##############
|
||||||
|
# MIDDLEWARE #
|
||||||
|
##############
|
||||||
|
|
||||||
|
# List of middleware to use. Order is important; in the request phase, these
|
||||||
|
# middleware will be applied in the order given, and in the response
|
||||||
|
# phase the middleware will be applied in reverse order.
|
||||||
|
MIDDLEWARE: List[str] = ...
|
||||||
|
|
||||||
|
############
|
||||||
|
# SESSIONS #
|
||||||
|
############
|
||||||
|
|
||||||
|
# Cache to store session data if using the cache session backend.
|
||||||
|
SESSION_CACHE_ALIAS = "default"
|
||||||
|
# Cookie name. This can be whatever you want.
|
||||||
|
SESSION_COOKIE_NAME = "sessionid"
|
||||||
|
# Age of cookie, in seconds (default: 2 weeks).
|
||||||
|
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2
|
||||||
|
# A string like "example.com", or None for standard domain cookie.
|
||||||
|
SESSION_COOKIE_DOMAIN: Optional[str] = ...
|
||||||
|
# Whether the session cookie should be secure (https:// only).
|
||||||
|
SESSION_COOKIE_SECURE = False
|
||||||
|
# The path of the session cookie.
|
||||||
|
SESSION_COOKIE_PATH = "/"
|
||||||
|
# Whether to use the non-RFC standard httpOnly flag (IE, FF3+, others)
|
||||||
|
SESSION_COOKIE_HTTPONLY = True
|
||||||
|
# Whether to set the flag restricting cookie leaks on cross-site requests.
|
||||||
|
# This can be 'Lax', 'Strict', or None to disable the flag.
|
||||||
|
SESSION_COOKIE_SAMESITE = "Lax"
|
||||||
|
# Whether to save the session data on every request.
|
||||||
|
SESSION_SAVE_EVERY_REQUEST = False
|
||||||
|
# Whether a user's session cookie expires when the Web browser is closed.
|
||||||
|
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
|
||||||
|
# The module to store session data
|
||||||
|
SESSION_ENGINE = "django.contrib.sessions.backends.db"
|
||||||
|
# Directory to store session files if using the file session module. If None,
|
||||||
|
# the backend will use a sensible default.
|
||||||
|
SESSION_FILE_PATH: Optional[str] = ...
|
||||||
|
# class to serialize session data
|
||||||
|
SESSION_SERIALIZER = "django.contrib.sessions.serializers.JSONSerializer"
|
||||||
|
|
||||||
|
#########
|
||||||
|
# CACHE #
|
||||||
|
#########
|
||||||
|
|
||||||
|
# The cache backends to use.
|
||||||
|
CACHES: Dict[str, Dict[str, Any]] = ...
|
||||||
|
CACHE_MIDDLEWARE_KEY_PREFIX = ""
|
||||||
|
CACHE_MIDDLEWARE_SECONDS = 600
|
||||||
|
CACHE_MIDDLEWARE_ALIAS = "default"
|
||||||
|
|
||||||
|
##################
|
||||||
|
# AUTHENTICATION #
|
||||||
|
##################
|
||||||
|
|
||||||
|
AUTH_USER_MODEL: str = ...
|
||||||
|
|
||||||
|
AUTHENTICATION_BACKENDS: Sequence[str] = ...
|
||||||
|
|
||||||
|
LOGIN_URL = "/accounts/login/"
|
||||||
|
|
||||||
|
LOGIN_REDIRECT_URL: str = ...
|
||||||
|
|
||||||
|
LOGOUT_REDIRECT_URL: Optional[str] = ...
|
||||||
|
|
||||||
|
# The number of days a password reset link is valid for
|
||||||
|
PASSWORD_RESET_TIMEOUT_DAYS = 3
|
||||||
|
|
||||||
|
# the first hasher in this list is the preferred algorithm. any
|
||||||
|
# password using different algorithms will be converted automatically
|
||||||
|
# upon login
|
||||||
|
PASSWORD_HASHERS: List[str] = ...
|
||||||
|
|
||||||
|
AUTH_PASSWORD_VALIDATORS: List[Dict[str, str]] = ...
|
||||||
|
|
||||||
|
###########
|
||||||
|
# SIGNING #
|
||||||
|
###########
|
||||||
|
|
||||||
|
SIGNING_BACKEND = "django.core.signing.TimestampSigner"
|
||||||
|
|
||||||
|
########
|
||||||
|
# CSRF #
|
||||||
|
########
|
||||||
|
|
||||||
|
# Dotted path to callable to be used as view when a request is
|
||||||
|
# rejected by the CSRF middleware.
|
||||||
|
CSRF_FAILURE_VIEW = "django.views.csrf.csrf_failure"
|
||||||
|
|
||||||
|
# Settings for CSRF cookie.
|
||||||
|
CSRF_COOKIE_NAME = "csrftoken"
|
||||||
|
CSRF_COOKIE_AGE = 60 * 60 * 24 * 7 * 52
|
||||||
|
CSRF_COOKIE_DOMAIN = None
|
||||||
|
CSRF_COOKIE_PATH = "/"
|
||||||
|
CSRF_COOKIE_SECURE = False
|
||||||
|
CSRF_COOKIE_HTTPONLY = False
|
||||||
|
CSRF_COOKIE_SAMESITE = "Lax"
|
||||||
|
CSRF_HEADER_NAME = "HTTP_X_CSRFTOKEN"
|
||||||
|
CSRF_TRUSTED_ORIGINS: List[str] = ...
|
||||||
|
CSRF_USE_SESSIONS = False
|
||||||
|
|
||||||
|
############
|
||||||
|
# MESSAGES #
|
||||||
|
############
|
||||||
|
|
||||||
|
# Class to use as messages backend
|
||||||
|
MESSAGE_STORAGE = "django.contrib.messages.storage.fallback.FallbackStorage"
|
||||||
|
|
||||||
|
# Default values of MESSAGE_LEVEL and MESSAGE_TAGS are defined within
|
||||||
|
# django.contrib.messages to avoid imports in this settings file.
|
||||||
|
|
||||||
|
###########
|
||||||
|
# LOGGING #
|
||||||
|
###########
|
||||||
|
|
||||||
|
# The callable to use to configure logging
|
||||||
|
LOGGING_CONFIG = "logging.config.dictConfig"
|
||||||
|
|
||||||
|
# Custom logging configuration.
|
||||||
|
LOGGING: Dict[str, Any] = ...
|
||||||
|
|
||||||
|
# Default exception reporter filter class used in case none has been
|
||||||
|
# specifically assigned to the HttpRequest instance.
|
||||||
|
DEFAULT_EXCEPTION_REPORTER_FILTER = "django.views.debug.SafeExceptionReporterFilter"
|
||||||
|
|
||||||
|
###########
|
||||||
|
# TESTING #
|
||||||
|
###########
|
||||||
|
|
||||||
|
# The name of the class to use to run the test suite
|
||||||
|
TEST_RUNNER = "django.test.runner.DiscoverRunner"
|
||||||
|
|
||||||
|
# Apps that don't need to be serialized at test database creation time
|
||||||
|
# (only apps with migrations are to start with)
|
||||||
|
TEST_NON_SERIALIZED_APPS: List[str] = ...
|
||||||
|
|
||||||
|
############
|
||||||
|
# FIXTURES #
|
||||||
|
############
|
||||||
|
|
||||||
|
# The list of directories to search for fixtures
|
||||||
|
FIXTURE_DIRS: List[str] = ...
|
||||||
|
|
||||||
|
###############
|
||||||
|
# STATICFILES #
|
||||||
|
###############
|
||||||
|
|
||||||
|
# A list of locations of additional static files
|
||||||
|
STATICFILES_DIRS: List[str] = ...
|
||||||
|
|
||||||
|
# The default file storage backend used during the build process
|
||||||
|
STATICFILES_STORAGE: str = ...
|
||||||
|
|
||||||
|
# List of finder classes that know how to find static files in
|
||||||
|
# various locations.
|
||||||
|
STATICFILES_FINDERS: List[str] = ...
|
||||||
|
|
||||||
|
##############
|
||||||
|
# MIGRATIONS #
|
||||||
|
##############
|
||||||
|
|
||||||
|
# Migration module overrides for apps, by app label.
|
||||||
|
MIGRATION_MODULES: Dict[str, str] = ...
|
||||||
|
|
||||||
|
#################
|
||||||
|
# SYSTEM CHECKS #
|
||||||
|
#################
|
||||||
|
|
||||||
|
# List of all issues generated by system checks that should be silenced. Light
|
||||||
|
# issues like warnings, infos or debugs will not generate a message. Silencing
|
||||||
|
# serious issues like errors and criticals does not result in hiding the
|
||||||
|
# message, but Django will not stop you from e.g. running server.
|
||||||
|
SILENCED_SYSTEM_CHECKS: List[str] = ...
|
||||||
|
|
||||||
|
#######################
|
||||||
|
# SECURITY MIDDLEWARE #
|
||||||
|
#######################
|
||||||
|
SECURE_BROWSER_XSS_FILTER = False
|
||||||
|
SECURE_CONTENT_TYPE_NOSNIFF = False
|
||||||
|
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
|
||||||
|
SECURE_HSTS_PRELOAD = False
|
||||||
|
SECURE_HSTS_SECONDS = 0
|
||||||
|
SECURE_REDIRECT_EXEMPT: List[str] = ...
|
||||||
|
SECURE_SSL_HOST = None
|
||||||
|
SECURE_SSL_REDIRECT = False
|
||||||
@@ -1,20 +1,22 @@
|
|||||||
# Stubs for django.conf.urls (Python 3.5)
|
# Stubs for django.conf.urls (Python 3.5)
|
||||||
from typing import Any, Callable, Dict, List, Optional, overload, Tuple, Union
|
from typing import Any, Callable, Dict, List, Optional, overload, Tuple, Union
|
||||||
|
|
||||||
from django.http.response import HttpResponse
|
from django.http.response import HttpResponse, HttpResponseBase
|
||||||
|
|
||||||
from django.urls import URLResolver, URLPattern
|
from django.urls import URLResolver, URLPattern
|
||||||
|
|
||||||
handler400 = ... # type: str
|
handler400: Callable[..., HttpResponse] = ...
|
||||||
handler403 = ... # type: str
|
handler403: Callable[..., HttpResponse] = ...
|
||||||
handler404 = ... # type: str
|
handler404: Callable[..., HttpResponse] = ...
|
||||||
handler500 = ... # type: str
|
handler500: Callable[..., HttpResponse] = ...
|
||||||
|
|
||||||
IncludedURLConf = Tuple[List[URLResolver], Optional[str], Optional[str]]
|
IncludedURLConf = Tuple[List[URLResolver], Optional[str], Optional[str]]
|
||||||
|
|
||||||
def include(arg: Any, namespace: str = ..., app_name: str = ...) -> IncludedURLConf: ...
|
def include(arg: Any, namespace: str = ..., app_name: str = ...) -> IncludedURLConf: ...
|
||||||
@overload
|
@overload
|
||||||
def url(regex: str, view: Callable[..., HttpResponse], kwargs: Dict[str, Any] = ..., name: str = ...) -> URLPattern: ...
|
def url(
|
||||||
|
regex: str, view: Callable[..., HttpResponseBase], kwargs: Dict[str, Any] = ..., name: str = ...
|
||||||
|
) -> URLPattern: ...
|
||||||
@overload
|
@overload
|
||||||
def url(regex: str, view: IncludedURLConf, kwargs: Dict[str, Any] = ..., name: str = ...) -> URLResolver: ...
|
def url(regex: str, view: IncludedURLConf, kwargs: Dict[str, Any] = ..., name: str = ...) -> URLResolver: ...
|
||||||
@overload
|
@overload
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from django.contrib.admin.decorators import register as register
|
from .decorators import register as register
|
||||||
from django.contrib.admin.filters import (
|
from .filters import (
|
||||||
AllValuesFieldListFilter as AllValuesFieldListFilter,
|
AllValuesFieldListFilter as AllValuesFieldListFilter,
|
||||||
BooleanFieldListFilter as BooleanFieldListFilter,
|
BooleanFieldListFilter as BooleanFieldListFilter,
|
||||||
ChoicesFieldListFilter as ChoicesFieldListFilter,
|
ChoicesFieldListFilter as ChoicesFieldListFilter,
|
||||||
@@ -10,14 +10,15 @@ from django.contrib.admin.filters import (
|
|||||||
RelatedOnlyFieldListFilter as RelatedOnlyFieldListFilter,
|
RelatedOnlyFieldListFilter as RelatedOnlyFieldListFilter,
|
||||||
SimpleListFilter as SimpleListFilter,
|
SimpleListFilter as SimpleListFilter,
|
||||||
)
|
)
|
||||||
from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME as ACTION_CHECKBOX_NAME
|
from .helpers import ACTION_CHECKBOX_NAME as ACTION_CHECKBOX_NAME
|
||||||
from django.contrib.admin.options import (
|
from .options import (
|
||||||
HORIZONTAL as HORIZONTAL,
|
HORIZONTAL as HORIZONTAL,
|
||||||
VERTICAL as VERTICAL,
|
VERTICAL as VERTICAL,
|
||||||
ModelAdmin as ModelAdmin,
|
ModelAdmin as ModelAdmin,
|
||||||
StackedInline as StackedInline,
|
StackedInline as StackedInline,
|
||||||
TabularInline as TabularInline,
|
TabularInline as TabularInline,
|
||||||
)
|
)
|
||||||
from django.contrib.admin.sites import AdminSite as AdminSite, site as site
|
from .sites import AdminSite as AdminSite, site as site
|
||||||
|
from . import checks as checks
|
||||||
|
|
||||||
def autodiscover() -> None: ...
|
def autodiscover() -> None: ...
|
||||||
|
|||||||
@@ -1,25 +1,6 @@
|
|||||||
from typing import Any
|
|
||||||
|
|
||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
|
||||||
class SimpleAdminConfig(AppConfig):
|
class SimpleAdminConfig(AppConfig):
|
||||||
apps: None
|
|
||||||
label: str
|
|
||||||
models: None
|
|
||||||
models_module: None
|
|
||||||
module: Any
|
|
||||||
path: str
|
|
||||||
default_site: str = ...
|
default_site: str = ...
|
||||||
name: str = ...
|
|
||||||
verbose_name: Any = ...
|
|
||||||
def ready(self) -> None: ...
|
|
||||||
|
|
||||||
class AdminConfig(SimpleAdminConfig):
|
class AdminConfig(SimpleAdminConfig): ...
|
||||||
apps: None
|
|
||||||
label: str
|
|
||||||
models: None
|
|
||||||
models_module: None
|
|
||||||
module: Any
|
|
||||||
name: str
|
|
||||||
path: str
|
|
||||||
def ready(self) -> None: ...
|
|
||||||
|
|||||||
@@ -1,19 +1,18 @@
|
|||||||
from typing import Any, List
|
from typing import Any, List, Union
|
||||||
|
|
||||||
from django.contrib.admin.options import BaseModelAdmin, InlineModelAdmin, ModelAdmin
|
from django.contrib.admin.options import BaseModelAdmin, InlineModelAdmin, ModelAdmin
|
||||||
from django.core.checks.messages import Error
|
from django.core.checks.messages import Error
|
||||||
|
|
||||||
def check_admin_app(app_configs: None, **kwargs: Any) -> List[str]: ...
|
_CheckError = Union[str, Error]
|
||||||
def check_dependencies(**kwargs: Any) -> List[Error]: ...
|
|
||||||
|
def check_admin_app(app_configs: None, **kwargs: Any) -> List[_CheckError]: ...
|
||||||
|
def check_dependencies(**kwargs: Any) -> List[_CheckError]: ...
|
||||||
|
|
||||||
class BaseModelAdminChecks:
|
class BaseModelAdminChecks:
|
||||||
def check(self, admin_obj: BaseModelAdmin, **kwargs: Any) -> List[Error]: ...
|
def check(self, admin_obj: BaseModelAdmin, **kwargs: Any) -> List[_CheckError]: ...
|
||||||
|
|
||||||
class ModelAdminChecks(BaseModelAdminChecks):
|
class ModelAdminChecks(BaseModelAdminChecks): ...
|
||||||
def check(self, admin_obj: ModelAdmin, **kwargs: Any) -> List[Error]: ...
|
class InlineModelAdminChecks(BaseModelAdminChecks): ...
|
||||||
|
|
||||||
class InlineModelAdminChecks(BaseModelAdminChecks):
|
|
||||||
def check(self, inline_obj: InlineModelAdmin, **kwargs: Any) -> List[Any]: ...
|
|
||||||
|
|
||||||
def must_be(type: Any, option: Any, obj: Any, id: Any): ...
|
def must_be(type: Any, option: Any, obj: Any, id: Any): ...
|
||||||
def must_inherit_from(parent: Any, option: Any, obj: Any, id: Any): ...
|
def must_inherit_from(parent: Any, option: Any, obj: Any, id: Any): ...
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, Callable, Dict, List, Optional, Tuple, Type
|
from typing import Any, Callable, Dict, List, Optional, Tuple, Type, Iterator
|
||||||
|
|
||||||
from django.contrib.admin.options import ModelAdmin
|
from django.contrib.admin.options import ModelAdmin
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
from django.core.handlers.wsgi import WSGIRequest
|
||||||
@@ -16,7 +16,7 @@ class ListFilter:
|
|||||||
self, request: WSGIRequest, params: Dict[str, str], model: Type[Model], model_admin: ModelAdmin
|
self, request: WSGIRequest, params: Dict[str, str], model: Type[Model], model_admin: ModelAdmin
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def has_output(self) -> bool: ...
|
def has_output(self) -> bool: ...
|
||||||
def choices(self, changelist: Any) -> None: ...
|
def choices(self, changelist: Any) -> Optional[Iterator[Dict[str, Any]]]: ...
|
||||||
def queryset(self, request: Any, queryset: QuerySet) -> Optional[QuerySet]: ...
|
def queryset(self, request: Any, queryset: QuerySet) -> Optional[QuerySet]: ...
|
||||||
def expected_parameters(self) -> Optional[List[str]]: ...
|
def expected_parameters(self) -> Optional[List[str]]: ...
|
||||||
|
|
||||||
|
|||||||
@@ -1,33 +1,7 @@
|
|||||||
from typing import Any, Dict
|
|
||||||
|
|
||||||
from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm
|
from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm
|
||||||
from django.contrib.auth.models import User
|
|
||||||
|
|
||||||
class AdminAuthenticationForm(AuthenticationForm):
|
class AdminAuthenticationForm(AuthenticationForm):
|
||||||
auto_id: str
|
|
||||||
data: Dict[str, str]
|
|
||||||
empty_permitted: bool
|
|
||||||
error_class: type
|
|
||||||
fields: Dict[Any, Any]
|
|
||||||
files: Dict[Any, Any]
|
|
||||||
initial: Dict[Any, Any]
|
|
||||||
is_bound: bool
|
|
||||||
label_suffix: str
|
|
||||||
request: None
|
|
||||||
user_cache: None
|
|
||||||
error_messages: Any = ...
|
|
||||||
required_css_class: str = ...
|
required_css_class: str = ...
|
||||||
def confirm_login_allowed(self, user: User) -> None: ...
|
|
||||||
|
|
||||||
class AdminPasswordChangeForm(PasswordChangeForm):
|
class AdminPasswordChangeForm(PasswordChangeForm):
|
||||||
auto_id: str
|
|
||||||
data: Dict[Any, Any]
|
|
||||||
empty_permitted: bool
|
|
||||||
error_class: type
|
|
||||||
fields: Dict[Any, Any]
|
|
||||||
files: Dict[Any, Any]
|
|
||||||
initial: Dict[Any, Any]
|
|
||||||
is_bound: bool
|
|
||||||
label_suffix: str
|
|
||||||
user: Any
|
|
||||||
required_css_class: str = ...
|
required_css_class: str = ...
|
||||||
|
|||||||
@@ -1,27 +1,17 @@
|
|||||||
import collections
|
from typing import Any, Callable, Dict, Iterator, List, Optional, Tuple, Union
|
||||||
from typing import Any, Callable, Dict, Iterator, List, Optional, Tuple, Union, Type
|
|
||||||
|
|
||||||
from django import forms
|
|
||||||
from django.contrib.auth.forms import AdminPasswordChangeForm
|
from django.contrib.auth.forms import AdminPasswordChangeForm
|
||||||
from django.db.models.fields import AutoField
|
from django.forms.boundfield import BoundField
|
||||||
from django.forms.utils import ErrorDict, ErrorList
|
from django.forms.utils import ErrorDict
|
||||||
from django.forms.widgets import Media, Widget
|
from django.forms.widgets import Media, Widget
|
||||||
from django.utils.safestring import SafeText
|
from django.utils.safestring import SafeText
|
||||||
|
|
||||||
from django.forms.boundfield import BoundField
|
from django import forms
|
||||||
|
from django.db.models.fields import AutoField
|
||||||
|
|
||||||
ACTION_CHECKBOX_NAME: str
|
ACTION_CHECKBOX_NAME: str
|
||||||
|
|
||||||
class ActionForm(forms.Form):
|
class ActionForm(forms.Form):
|
||||||
auto_id: None
|
|
||||||
data: Dict[Any, Any]
|
|
||||||
empty_permitted: bool
|
|
||||||
error_class: Type[ErrorList]
|
|
||||||
fields: collections.OrderedDict
|
|
||||||
files: Dict[Any, Any]
|
|
||||||
initial: Dict[Any, Any]
|
|
||||||
is_bound: bool
|
|
||||||
label_suffix: str
|
|
||||||
action: Any = ...
|
action: Any = ...
|
||||||
select_across: Any = ...
|
select_across: Any = ...
|
||||||
|
|
||||||
@@ -36,8 +26,8 @@ class AdminForm:
|
|||||||
form: AdminPasswordChangeForm,
|
form: AdminPasswordChangeForm,
|
||||||
fieldsets: List[Tuple[None, Dict[str, List[str]]]],
|
fieldsets: List[Tuple[None, Dict[str, List[str]]]],
|
||||||
prepopulated_fields: Dict[Any, Any],
|
prepopulated_fields: Dict[Any, Any],
|
||||||
readonly_fields: None = ...,
|
readonly_fields: Any = ...,
|
||||||
model_admin: None = ...,
|
model_admin: Any = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def __iter__(self) -> Iterator[Fieldset]: ...
|
def __iter__(self) -> Iterator[Fieldset]: ...
|
||||||
@property
|
@property
|
||||||
@@ -137,7 +127,6 @@ class InlineAdminFormSet:
|
|||||||
|
|
||||||
class InlineAdminForm(AdminForm):
|
class InlineAdminForm(AdminForm):
|
||||||
formset: Any = ...
|
formset: Any = ...
|
||||||
model_admin: Any = ...
|
|
||||||
original: Any = ...
|
original: Any = ...
|
||||||
show_url: Any = ...
|
show_url: Any = ...
|
||||||
absolute_url: Any = ...
|
absolute_url: Any = ...
|
||||||
@@ -152,7 +141,6 @@ class InlineAdminForm(AdminForm):
|
|||||||
model_admin: Optional[Any] = ...,
|
model_admin: Optional[Any] = ...,
|
||||||
view_on_site_url: Optional[Any] = ...,
|
view_on_site_url: Optional[Any] = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def __iter__(self) -> Iterator[InlineFieldset]: ...
|
|
||||||
def needs_explicit_pk_field(self) -> Union[bool, AutoField]: ...
|
def needs_explicit_pk_field(self) -> Union[bool, AutoField]: ...
|
||||||
def pk_field(self) -> AdminField: ...
|
def pk_field(self) -> AdminField: ...
|
||||||
def fk_field(self) -> AdminField: ...
|
def fk_field(self) -> AdminField: ...
|
||||||
@@ -162,9 +150,6 @@ class InlineAdminForm(AdminForm):
|
|||||||
class InlineFieldset(Fieldset):
|
class InlineFieldset(Fieldset):
|
||||||
formset: Any = ...
|
formset: Any = ...
|
||||||
def __init__(self, formset: Any, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, formset: Any, *args: Any, **kwargs: Any) -> None: ...
|
||||||
def __iter__(self) -> Iterator[Fieldline]: ...
|
|
||||||
|
|
||||||
class AdminErrorList(forms.utils.ErrorList):
|
class AdminErrorList(forms.utils.ErrorList):
|
||||||
data: List[Any]
|
|
||||||
error_class: str
|
|
||||||
def __init__(self, form: Any, inline_formsets: Any) -> None: ...
|
def __init__(self, form: Any, inline_formsets: Any) -> None: ...
|
||||||
|
|||||||
@@ -1,20 +1,17 @@
|
|||||||
import datetime
|
from typing import Any, Optional, Union
|
||||||
from typing import Any, Dict, List, Optional, Union
|
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
from django.db import models
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.db.models.base import Model
|
from django.db.models.base import Model
|
||||||
|
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
ADDITION: int
|
ADDITION: int
|
||||||
CHANGE: int
|
CHANGE: int
|
||||||
DELETION: int
|
DELETION: int
|
||||||
ACTION_FLAG_CHOICES: Any
|
ACTION_FLAG_CHOICES: Any
|
||||||
|
|
||||||
class LogEntryManager(models.Manager):
|
class LogEntryManager(models.Manager["LogEntry"]):
|
||||||
creation_counter: int
|
|
||||||
model: None
|
|
||||||
name: None
|
|
||||||
use_in_migrations: bool = ...
|
|
||||||
def log_action(
|
def log_action(
|
||||||
self,
|
self,
|
||||||
user_id: int,
|
user_id: int,
|
||||||
@@ -22,28 +19,18 @@ class LogEntryManager(models.Manager):
|
|||||||
object_id: Union[int, str, UUID],
|
object_id: Union[int, str, UUID],
|
||||||
object_repr: str,
|
object_repr: str,
|
||||||
action_flag: int,
|
action_flag: int,
|
||||||
change_message: Union[
|
change_message: Any = ...,
|
||||||
Dict[str, Dict[str, List[str]]], List[Dict[str, Dict[str, Union[List[str], str]]]], str
|
|
||||||
] = ...,
|
|
||||||
) -> LogEntry: ...
|
) -> LogEntry: ...
|
||||||
|
|
||||||
class LogEntry(models.Model):
|
class LogEntry(models.Model):
|
||||||
content_type_id: int
|
action_time: models.DateTimeField = ...
|
||||||
id: None
|
user: models.ForeignKey = ...
|
||||||
user_id: int
|
content_type: models.ForeignKey = models.ForeignKey(ContentType, on_delete=models.CASCADE)
|
||||||
action_time: datetime.datetime = ...
|
object_id: models.TextField = ...
|
||||||
user: Any = ...
|
object_repr: models.CharField = ...
|
||||||
content_type: Any = ...
|
action_flag: models.PositiveSmallIntegerField = ...
|
||||||
object_id: str = ...
|
change_message: models.TextField = ...
|
||||||
object_repr: str = ...
|
objects: LogEntryManager = ...
|
||||||
action_flag: int = ...
|
|
||||||
change_message: str = ...
|
|
||||||
objects: Any = ...
|
|
||||||
class Meta:
|
|
||||||
verbose_name: Any = ...
|
|
||||||
verbose_name_plural: Any = ...
|
|
||||||
db_table: str = ...
|
|
||||||
ordering: Any = ...
|
|
||||||
def is_addition(self) -> bool: ...
|
def is_addition(self) -> bool: ...
|
||||||
def is_change(self) -> bool: ...
|
def is_change(self) -> bool: ...
|
||||||
def is_deletion(self) -> bool: ...
|
def is_deletion(self) -> bool: ...
|
||||||
|
|||||||
@@ -1,28 +1,28 @@
|
|||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Type, Union
|
from typing import Any, Callable, Dict, Iterator, List, Optional, Sequence, Set, Tuple, Type, Union
|
||||||
|
|
||||||
from django.contrib.admin.filters import SimpleListFilter
|
from django.contrib.admin.filters import ListFilter
|
||||||
from django.contrib.admin.models import LogEntry
|
from django.contrib.admin.models import LogEntry
|
||||||
from django.contrib.admin.sites import AdminSite
|
from django.contrib.admin.sites import AdminSite
|
||||||
from django.contrib.admin.views.main import ChangeList
|
from django.contrib.admin.views.main import ChangeList
|
||||||
from django.contrib.auth.forms import AdminPasswordChangeForm
|
from django.contrib.auth.forms import AdminPasswordChangeForm
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.core.checks.messages import Error
|
from django.core.checks.messages import Error
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
|
||||||
from django.core.paginator import Paginator
|
from django.core.paginator import Paginator
|
||||||
from django.db.models.base import Model
|
from django.db.models.base import Model
|
||||||
from django.forms.fields import TypedChoiceField
|
|
||||||
|
|
||||||
from django.db.models.fields import Field
|
|
||||||
from django.db.models.fields.related import ForeignKey, ManyToManyField, RelatedField
|
from django.db.models.fields.related import ForeignKey, ManyToManyField, RelatedField
|
||||||
|
from django.db.models.options import Options
|
||||||
from django.db.models.query import QuerySet
|
from django.db.models.query import QuerySet
|
||||||
|
from django.forms.fields import TypedChoiceField
|
||||||
from django.forms.models import ModelChoiceField, ModelMultipleChoiceField
|
from django.forms.models import ModelChoiceField, ModelMultipleChoiceField
|
||||||
from django.forms.widgets import Media
|
from django.forms.widgets import Media
|
||||||
|
from django.http.request import HttpRequest
|
||||||
from django.http.response import HttpResponse, HttpResponseBase, HttpResponseRedirect, JsonResponse
|
from django.http.response import HttpResponse, HttpResponseBase, HttpResponseRedirect, JsonResponse
|
||||||
|
from django.template.response import TemplateResponse
|
||||||
from django.urls.resolvers import URLPattern
|
from django.urls.resolvers import URLPattern
|
||||||
from django.utils.safestring import SafeText
|
from django.utils.safestring import SafeText
|
||||||
|
|
||||||
from django.db.models.options import Options
|
from django.db.models.fields import Field
|
||||||
|
|
||||||
IS_POPUP_VAR: str
|
IS_POPUP_VAR: str
|
||||||
TO_FIELD_VAR: str
|
TO_FIELD_VAR: str
|
||||||
@@ -55,60 +55,61 @@ class BaseModelAdmin:
|
|||||||
view_on_site: bool = ...
|
view_on_site: bool = ...
|
||||||
show_full_result_count: bool = ...
|
show_full_result_count: bool = ...
|
||||||
checks_class: Any = ...
|
checks_class: Any = ...
|
||||||
def check(self, **kwargs: Any) -> List[Error]: ...
|
def check(self, **kwargs: Any) -> List[Union[str, Error]]: ...
|
||||||
def __init__(self) -> None: ...
|
def __init__(self) -> None: ...
|
||||||
def formfield_for_dbfield(self, db_field: Field, request: WSGIRequest, **kwargs: Any) -> Optional[Field]: ...
|
def formfield_for_dbfield(
|
||||||
def formfield_for_choice_field(self, db_field: Field, request: WSGIRequest, **kwargs: Any) -> TypedChoiceField: ...
|
self, db_field: Field, request: Optional[HttpRequest], **kwargs: Any
|
||||||
def get_field_queryset(self, db: None, db_field: RelatedField, request: WSGIRequest) -> Optional[QuerySet]: ...
|
) -> Optional[Field]: ...
|
||||||
|
def formfield_for_choice_field(
|
||||||
|
self, db_field: Field, request: Optional[HttpRequest], **kwargs: Any
|
||||||
|
) -> TypedChoiceField: ...
|
||||||
|
def get_field_queryset(
|
||||||
|
self, db: None, db_field: RelatedField, request: Optional[HttpRequest]
|
||||||
|
) -> Optional[QuerySet]: ...
|
||||||
def formfield_for_foreignkey(
|
def formfield_for_foreignkey(
|
||||||
self, db_field: ForeignKey, request: WSGIRequest, **kwargs: Any
|
self, db_field: ForeignKey, request: Optional[HttpRequest], **kwargs: Any
|
||||||
) -> Optional[ModelChoiceField]: ...
|
) -> Optional[ModelChoiceField]: ...
|
||||||
def formfield_for_manytomany(
|
def formfield_for_manytomany(
|
||||||
self, db_field: ManyToManyField, request: WSGIRequest, **kwargs: Any
|
self, db_field: ManyToManyField, request: Optional[HttpRequest], **kwargs: Any
|
||||||
) -> ModelMultipleChoiceField: ...
|
) -> ModelMultipleChoiceField: ...
|
||||||
def get_autocomplete_fields(self, request: WSGIRequest) -> Tuple: ...
|
def get_autocomplete_fields(self, request: HttpRequest) -> Tuple: ...
|
||||||
def get_view_on_site_url(self, obj: Optional[Model] = ...) -> Optional[str]: ...
|
def get_view_on_site_url(self, obj: Optional[Model] = ...) -> Optional[str]: ...
|
||||||
def get_empty_value_display(self) -> SafeText: ...
|
def get_empty_value_display(self) -> SafeText: ...
|
||||||
def get_exclude(self, request: WSGIRequest, obj: Optional[Model] = ...) -> None: ...
|
def get_exclude(self, request: HttpRequest, obj: Optional[Model] = ...) -> Any: ...
|
||||||
def get_fields(
|
def get_fields(self, request: HttpRequest, obj: Optional[Model] = ...) -> Sequence[Union[Callable, str]]: ...
|
||||||
self, request: WSGIRequest, obj: Optional[Model] = ...
|
|
||||||
) -> Union[List[Union[Callable, str]], Tuple[str, str]]: ...
|
|
||||||
def get_fieldsets(
|
def get_fieldsets(
|
||||||
self, request: WSGIRequest, obj: Optional[Model] = ...
|
self, request: HttpRequest, obj: Optional[Model] = ...
|
||||||
) -> Union[
|
) -> List[Tuple[Optional[str], Dict[str, Any]]]: ...
|
||||||
List[Tuple[None, Dict[str, List[Union[Callable, str]]]]],
|
def get_ordering(self, request: HttpRequest) -> Union[List[str], Tuple]: ...
|
||||||
Tuple[Tuple[Optional[str], Dict[str, Tuple[Union[Tuple[str, str], str]]]]],
|
def get_readonly_fields(self, request: HttpRequest, obj: Optional[Model] = ...) -> Union[List[str], Tuple]: ...
|
||||||
]: ...
|
def get_prepopulated_fields(self, request: HttpRequest, obj: Optional[Model] = ...) -> Dict[str, Tuple[str]]: ...
|
||||||
def get_ordering(self, request: WSGIRequest) -> Union[List[str], Tuple]: ...
|
def get_queryset(self, request: HttpRequest) -> QuerySet: ...
|
||||||
def get_readonly_fields(self, request: WSGIRequest, obj: Optional[Model] = ...) -> Union[List[str], Tuple]: ...
|
def get_sortable_by(self, request: HttpRequest) -> Union[List[Callable], List[str], Tuple]: ...
|
||||||
def get_prepopulated_fields(self, request: WSGIRequest, obj: Optional[Model] = ...) -> Dict[str, Tuple[str]]: ...
|
|
||||||
def get_queryset(self, request: WSGIRequest) -> QuerySet: ...
|
|
||||||
def get_sortable_by(self, request: WSGIRequest) -> Union[List[Callable], List[str], Tuple]: ...
|
|
||||||
def lookup_allowed(self, lookup: str, value: str) -> bool: ...
|
def lookup_allowed(self, lookup: str, value: str) -> bool: ...
|
||||||
def to_field_allowed(self, request: WSGIRequest, to_field: str) -> bool: ...
|
def to_field_allowed(self, request: HttpRequest, to_field: str) -> bool: ...
|
||||||
def has_add_permission(self, request: WSGIRequest) -> bool: ...
|
def has_add_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ...
|
||||||
def has_change_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ...
|
def has_change_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ...
|
||||||
def has_delete_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ...
|
def has_delete_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ...
|
||||||
def has_view_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ...
|
def has_view_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ...
|
||||||
def has_module_permission(self, request: WSGIRequest) -> bool: ...
|
def has_module_permission(self, request: HttpRequest) -> bool: ...
|
||||||
|
|
||||||
class ModelAdmin(BaseModelAdmin):
|
class ModelAdmin(BaseModelAdmin):
|
||||||
formfield_overrides: Any
|
formfield_overrides: Any
|
||||||
list_display: Any = ...
|
list_display: Sequence[Union[str, Callable]] = ...
|
||||||
list_display_links: Any = ...
|
list_display_links: Optional[Sequence[Union[str, Callable]]] = ...
|
||||||
list_filter: Any = ...
|
list_filter: Sequence[Union[str, Type[ListFilter], Tuple[str, Type[ListFilter]]]] = ...
|
||||||
list_select_related: bool = ...
|
list_select_related: Union[bool, Sequence[str]] = ...
|
||||||
list_per_page: int = ...
|
list_per_page: int = ...
|
||||||
list_max_show_all: int = ...
|
list_max_show_all: int = ...
|
||||||
list_editable: Any = ...
|
list_editable: Sequence[str] = ...
|
||||||
search_fields: Any = ...
|
search_fields: Sequence[str] = ...
|
||||||
date_hierarchy: Any = ...
|
date_hierarchy: Optional[Any] = ...
|
||||||
save_as: bool = ...
|
save_as: bool = ...
|
||||||
save_as_continue: bool = ...
|
save_as_continue: bool = ...
|
||||||
save_on_top: bool = ...
|
save_on_top: bool = ...
|
||||||
paginator: Any = ...
|
paginator: Any = ...
|
||||||
preserve_filters: bool = ...
|
preserve_filters: bool = ...
|
||||||
inlines: Any = ...
|
inlines: Sequence[Type[InlineModelAdmin]] = ...
|
||||||
add_form_template: Any = ...
|
add_form_template: Any = ...
|
||||||
change_form_template: Any = ...
|
change_form_template: Any = ...
|
||||||
change_list_template: Any = ...
|
change_list_template: Any = ...
|
||||||
@@ -126,64 +127,54 @@ class ModelAdmin(BaseModelAdmin):
|
|||||||
opts: Options = ...
|
opts: Options = ...
|
||||||
admin_site: AdminSite = ...
|
admin_site: AdminSite = ...
|
||||||
def __init__(self, model: Type[Model], admin_site: Optional[AdminSite]) -> None: ...
|
def __init__(self, model: Type[Model], admin_site: Optional[AdminSite]) -> None: ...
|
||||||
def get_inline_instances(self, request: WSGIRequest, obj: Optional[Model] = ...) -> List[InlineModelAdmin]: ...
|
def get_inline_instances(self, request: HttpRequest, obj: Optional[Model] = ...) -> List[InlineModelAdmin]: ...
|
||||||
def get_urls(self) -> List[URLPattern]: ...
|
def get_urls(self) -> List[URLPattern]: ...
|
||||||
@property
|
@property
|
||||||
def urls(self) -> List[URLPattern]: ...
|
def urls(self) -> List[URLPattern]: ...
|
||||||
@property
|
@property
|
||||||
def media(self) -> Media: ...
|
def media(self) -> Media: ...
|
||||||
def get_model_perms(self, request: WSGIRequest) -> Dict[str, bool]: ...
|
def get_model_perms(self, request: HttpRequest) -> Dict[str, bool]: ...
|
||||||
def get_form(self, request: Any, obj: Optional[Any] = ..., change: bool = ..., **kwargs: Any): ...
|
def get_form(self, request: Any, obj: Optional[Any] = ..., change: bool = ..., **kwargs: Any): ...
|
||||||
def get_changelist(self, request: WSGIRequest, **kwargs: Any) -> Type[ChangeList]: ...
|
def get_changelist(self, request: HttpRequest, **kwargs: Any) -> Type[ChangeList]: ...
|
||||||
def get_changelist_instance(self, request: WSGIRequest) -> ChangeList: ...
|
def get_changelist_instance(self, request: HttpRequest) -> ChangeList: ...
|
||||||
def get_object(self, request: WSGIRequest, object_id: str, from_field: None = ...) -> Optional[Model]: ...
|
def get_object(self, request: HttpRequest, object_id: str, from_field: None = ...) -> Optional[Model]: ...
|
||||||
def get_changelist_form(self, request: Any, **kwargs: Any): ...
|
def get_changelist_form(self, request: Any, **kwargs: Any): ...
|
||||||
def get_changelist_formset(self, request: Any, **kwargs: Any): ...
|
def get_changelist_formset(self, request: Any, **kwargs: Any): ...
|
||||||
def get_formsets_with_inlines(self, request: WSGIRequest, obj: Optional[Model] = ...) -> None: ...
|
def get_formsets_with_inlines(self, request: HttpRequest, obj: Optional[Model] = ...) -> Iterator[Any]: ...
|
||||||
def get_paginator(
|
def get_paginator(
|
||||||
self,
|
self,
|
||||||
request: WSGIRequest,
|
request: HttpRequest,
|
||||||
queryset: QuerySet,
|
queryset: QuerySet,
|
||||||
per_page: int,
|
per_page: int,
|
||||||
orphans: int = ...,
|
orphans: int = ...,
|
||||||
allow_empty_first_page: bool = ...,
|
allow_empty_first_page: bool = ...,
|
||||||
) -> Paginator: ...
|
) -> Paginator: ...
|
||||||
def log_addition(
|
def log_addition(self, request: HttpRequest, object: Model, message: Any) -> LogEntry: ...
|
||||||
self,
|
def log_change(self, request: HttpRequest, object: Model, message: Any) -> LogEntry: ...
|
||||||
request: WSGIRequest,
|
def log_deletion(self, request: HttpRequest, object: Model, object_repr: str) -> LogEntry: ...
|
||||||
object: Model,
|
|
||||||
message: Union[Dict[str, Dict[Any, Any]], List[Dict[str, Dict[str, str]]]],
|
|
||||||
) -> LogEntry: ...
|
|
||||||
def log_change(
|
|
||||||
self,
|
|
||||||
request: WSGIRequest,
|
|
||||||
object: Model,
|
|
||||||
message: Union[Dict[str, Dict[str, List[str]]], List[Dict[str, Dict[str, Union[List[str], str]]]]],
|
|
||||||
) -> LogEntry: ...
|
|
||||||
def log_deletion(self, request: WSGIRequest, object: Model, object_repr: str) -> LogEntry: ...
|
|
||||||
def action_checkbox(self, obj: Model) -> SafeText: ...
|
def action_checkbox(self, obj: Model) -> SafeText: ...
|
||||||
def get_actions(self, request: WSGIRequest) -> OrderedDict: ...
|
def get_actions(self, request: HttpRequest) -> OrderedDict: ...
|
||||||
def get_action_choices(
|
def get_action_choices(
|
||||||
self, request: WSGIRequest, default_choices: List[Tuple[str, str]] = ...
|
self, request: HttpRequest, default_choices: List[Tuple[str, str]] = ...
|
||||||
) -> List[Tuple[str, str]]: ...
|
) -> List[Tuple[str, str]]: ...
|
||||||
def get_action(self, action: Union[Callable, str]) -> Tuple[Callable, str, str]: ...
|
def get_action(self, action: Union[Callable, str]) -> Tuple[Callable, str, str]: ...
|
||||||
def get_list_display(self, request: WSGIRequest) -> Union[List[Callable], List[str], Tuple[str]]: ...
|
def get_list_display(self, request: HttpRequest) -> Sequence[str]: ...
|
||||||
def get_list_display_links(
|
def get_list_display_links(self, request: HttpRequest, list_display: Sequence[str]) -> Optional[Sequence[str]]: ...
|
||||||
self, request: WSGIRequest, list_display: Union[List[Callable], List[str], Tuple[str]]
|
def get_list_filter(self, request: HttpRequest) -> Sequence[str]: ...
|
||||||
) -> Optional[Union[List[Callable], List[str], Tuple[str]]]: ...
|
def get_list_select_related(self, request: HttpRequest) -> Sequence[str]: ...
|
||||||
def get_list_filter(self, request: WSGIRequest) -> Union[List[Type[SimpleListFilter]], List[str], Tuple]: ...
|
def get_search_fields(self, request: HttpRequest) -> List[str]: ...
|
||||||
def get_list_select_related(self, request: WSGIRequest) -> Union[Tuple, bool]: ...
|
|
||||||
def get_search_fields(self, request: WSGIRequest) -> Union[List[str], Tuple]: ...
|
|
||||||
def get_search_results(
|
def get_search_results(
|
||||||
self, request: WSGIRequest, queryset: QuerySet, search_term: str
|
self, request: HttpRequest, queryset: QuerySet, search_term: str
|
||||||
) -> Tuple[QuerySet, bool]: ...
|
) -> Tuple[QuerySet, bool]: ...
|
||||||
def get_preserved_filters(self, request: WSGIRequest) -> str: ...
|
def get_preserved_filters(self, request: HttpRequest) -> str: ...
|
||||||
|
def _get_edited_object_pks(self, request: HttpRequest, prefix: str) -> List[str]: ...
|
||||||
|
def _get_list_editable_queryset(self, request: HttpRequest, prefix: str) -> QuerySet: ...
|
||||||
def construct_change_message(
|
def construct_change_message(
|
||||||
self, request: WSGIRequest, form: AdminPasswordChangeForm, formsets: None, add: bool = ...
|
self, request: HttpRequest, form: AdminPasswordChangeForm, formsets: None, add: bool = ...
|
||||||
) -> List[Dict[str, Dict[str, List[str]]]]: ...
|
) -> List[Dict[str, Dict[str, List[str]]]]: ...
|
||||||
def message_user(
|
def message_user(
|
||||||
self,
|
self,
|
||||||
request: WSGIRequest,
|
request: HttpRequest,
|
||||||
message: str,
|
message: str,
|
||||||
level: Union[int, str] = ...,
|
level: Union[int, str] = ...,
|
||||||
extra_tags: str = ...,
|
extra_tags: str = ...,
|
||||||
@@ -191,8 +182,8 @@ class ModelAdmin(BaseModelAdmin):
|
|||||||
) -> None: ...
|
) -> None: ...
|
||||||
def save_form(self, request: Any, form: Any, change: Any): ...
|
def save_form(self, request: Any, form: Any, change: Any): ...
|
||||||
def save_model(self, request: Any, obj: Any, form: Any, change: Any) -> None: ...
|
def save_model(self, request: Any, obj: Any, form: Any, change: Any) -> None: ...
|
||||||
def delete_model(self, request: WSGIRequest, obj: Model) -> None: ...
|
def delete_model(self, request: HttpRequest, obj: Model) -> None: ...
|
||||||
def delete_queryset(self, request: WSGIRequest, queryset: QuerySet) -> None: ...
|
def delete_queryset(self, request: HttpRequest, queryset: QuerySet) -> None: ...
|
||||||
def save_formset(self, request: Any, form: Any, formset: Any, change: Any) -> None: ...
|
def save_formset(self, request: Any, form: Any, formset: Any, change: Any) -> None: ...
|
||||||
def save_related(self, request: Any, form: Any, formsets: Any, change: Any) -> None: ...
|
def save_related(self, request: Any, form: Any, formsets: Any, change: Any) -> None: ...
|
||||||
def render_change_form(
|
def render_change_form(
|
||||||
@@ -204,51 +195,52 @@ class ModelAdmin(BaseModelAdmin):
|
|||||||
form_url: str = ...,
|
form_url: str = ...,
|
||||||
obj: Optional[Any] = ...,
|
obj: Optional[Any] = ...,
|
||||||
): ...
|
): ...
|
||||||
def response_add(self, request: WSGIRequest, obj: Model, post_url_continue: None = ...) -> HttpResponse: ...
|
def response_add(
|
||||||
def response_change(self, request: WSGIRequest, obj: Model) -> HttpResponse: ...
|
self, request: HttpRequest, obj: Model, post_url_continue: Optional[str] = ...
|
||||||
def response_post_save_add(self, request: WSGIRequest, obj: Model) -> HttpResponseRedirect: ...
|
) -> HttpResponse: ...
|
||||||
def response_post_save_change(self, request: WSGIRequest, obj: Model) -> HttpResponseRedirect: ...
|
def response_change(self, request: HttpRequest, obj: Model) -> HttpResponse: ...
|
||||||
def response_action(self, request: WSGIRequest, queryset: QuerySet) -> Optional[HttpResponseBase]: ...
|
def response_post_save_add(self, request: HttpRequest, obj: Model) -> HttpResponseRedirect: ...
|
||||||
def response_delete(self, request: WSGIRequest, obj_display: str, obj_id: int) -> HttpResponse: ...
|
def response_post_save_change(self, request: HttpRequest, obj: Model) -> HttpResponseRedirect: ...
|
||||||
|
def response_action(self, request: HttpRequest, queryset: QuerySet) -> Optional[HttpResponseBase]: ...
|
||||||
|
def response_delete(self, request: HttpRequest, obj_display: str, obj_id: int) -> HttpResponse: ...
|
||||||
def render_delete_form(self, request: Any, context: Any): ...
|
def render_delete_form(self, request: Any, context: Any): ...
|
||||||
def get_inline_formsets(
|
def get_inline_formsets(
|
||||||
self, request: WSGIRequest, formsets: List[Any], inline_instances: List[Any], obj: Optional[Model] = ...
|
self, request: HttpRequest, formsets: List[Any], inline_instances: List[Any], obj: Optional[Model] = ...
|
||||||
) -> List[Any]: ...
|
) -> List[Any]: ...
|
||||||
def get_changeform_initial_data(self, request: WSGIRequest) -> Dict[str, str]: ...
|
def get_changeform_initial_data(self, request: HttpRequest) -> Dict[str, str]: ...
|
||||||
def changeform_view(
|
def changeform_view(
|
||||||
self,
|
self,
|
||||||
request: WSGIRequest,
|
request: HttpRequest,
|
||||||
object_id: Optional[str] = ...,
|
object_id: Optional[str] = ...,
|
||||||
form_url: str = ...,
|
form_url: str = ...,
|
||||||
extra_context: Optional[Dict[str, bool]] = ...,
|
extra_context: Optional[Dict[str, bool]] = ...,
|
||||||
) -> Any: ...
|
) -> Any: ...
|
||||||
def autocomplete_view(self, request: WSGIRequest) -> JsonResponse: ...
|
def autocomplete_view(self, request: HttpRequest) -> JsonResponse: ...
|
||||||
def add_view(self, request: WSGIRequest, form_url: str = ..., extra_context: None = ...) -> HttpResponse: ...
|
def add_view(self, request: HttpRequest, form_url: str = ..., extra_context: None = ...) -> HttpResponse: ...
|
||||||
def change_view(
|
def change_view(
|
||||||
self, request: WSGIRequest, object_id: str, form_url: str = ..., extra_context: Optional[Dict[str, bool]] = ...
|
self, request: HttpRequest, object_id: str, form_url: str = ..., extra_context: Optional[Dict[str, bool]] = ...
|
||||||
) -> HttpResponse: ...
|
) -> HttpResponse: ...
|
||||||
def changelist_view(
|
def changelist_view(
|
||||||
self, request: WSGIRequest, extra_context: Optional[Dict[str, str]] = ...
|
self, request: HttpRequest, extra_context: Optional[Dict[str, str]] = ...
|
||||||
) -> HttpResponseBase: ...
|
) -> TemplateResponse: ...
|
||||||
def get_deleted_objects(
|
def get_deleted_objects(
|
||||||
self, objs: QuerySet, request: WSGIRequest
|
self, objs: QuerySet, request: HttpRequest
|
||||||
) -> Tuple[List[Any], Dict[Any, Any], Set[Any], List[Any]]: ...
|
) -> Tuple[List[Any], Dict[Any, Any], Set[Any], List[Any]]: ...
|
||||||
def delete_view(self, request: WSGIRequest, object_id: str, extra_context: None = ...) -> Any: ...
|
def delete_view(self, request: HttpRequest, object_id: str, extra_context: None = ...) -> Any: ...
|
||||||
def history_view(self, request: WSGIRequest, object_id: str, extra_context: None = ...) -> HttpResponse: ...
|
def history_view(self, request: HttpRequest, object_id: str, extra_context: None = ...) -> HttpResponse: ...
|
||||||
|
|
||||||
class InlineModelAdmin(BaseModelAdmin):
|
class InlineModelAdmin(BaseModelAdmin):
|
||||||
model: Any = ...
|
model: Any = ...
|
||||||
fk_name: Any = ...
|
fk_name: Any = ...
|
||||||
formset: Any = ...
|
formset: Any = ...
|
||||||
extra: int = ...
|
extra: int = ...
|
||||||
min_num: Any = ...
|
min_num: Optional[int] = ...
|
||||||
max_num: Any = ...
|
max_num: Optional[int] = ...
|
||||||
template: Any = ...
|
template: str = ...
|
||||||
verbose_name: Any = ...
|
verbose_name: Optional[str] = ...
|
||||||
verbose_name_plural: Any = ...
|
verbose_name_plural: Optional[str] = ...
|
||||||
can_delete: bool = ...
|
can_delete: bool = ...
|
||||||
show_change_link: bool = ...
|
show_change_link: bool = ...
|
||||||
checks_class: Any = ...
|
|
||||||
classes: Any = ...
|
classes: Any = ...
|
||||||
admin_site: Any = ...
|
admin_site: Any = ...
|
||||||
parent_model: Any = ...
|
parent_model: Any = ...
|
||||||
@@ -257,18 +249,10 @@ class InlineModelAdmin(BaseModelAdmin):
|
|||||||
def __init__(self, parent_model: Union[Type[Model], Model], admin_site: AdminSite) -> None: ...
|
def __init__(self, parent_model: Union[Type[Model], Model], admin_site: AdminSite) -> None: ...
|
||||||
@property
|
@property
|
||||||
def media(self) -> Media: ...
|
def media(self) -> Media: ...
|
||||||
def get_extra(self, request: WSGIRequest, obj: Optional[Model] = ..., **kwargs: Any) -> int: ...
|
def get_extra(self, request: HttpRequest, obj: Optional[Model] = ..., **kwargs: Any) -> int: ...
|
||||||
def get_min_num(self, request: WSGIRequest, obj: Optional[Model] = ..., **kwargs: Any) -> None: ...
|
def get_min_num(self, request: HttpRequest, obj: Optional[Model] = ..., **kwargs: Any) -> Optional[int]: ...
|
||||||
def get_max_num(self, request: WSGIRequest, obj: Optional[Model] = ..., **kwargs: Any) -> Optional[int]: ...
|
def get_max_num(self, request: HttpRequest, obj: Optional[Model] = ..., **kwargs: Any) -> Optional[int]: ...
|
||||||
fields: Any = ...
|
|
||||||
def get_formset(self, request: Any, obj: Optional[Any] = ..., **kwargs: Any): ...
|
def get_formset(self, request: Any, obj: Optional[Any] = ..., **kwargs: Any): ...
|
||||||
def get_queryset(self, request: WSGIRequest) -> QuerySet: ...
|
|
||||||
def has_change_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ...
|
|
||||||
def has_delete_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ...
|
|
||||||
def has_view_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ...
|
|
||||||
|
|
||||||
class StackedInline(InlineModelAdmin):
|
class StackedInline(InlineModelAdmin): ...
|
||||||
template: str = ...
|
class TabularInline(InlineModelAdmin): ...
|
||||||
|
|
||||||
class TabularInline(InlineModelAdmin):
|
|
||||||
template: str = ...
|
|
||||||
|
|||||||
@@ -26,8 +26,9 @@ class AdminSite:
|
|||||||
password_change_template: Any = ...
|
password_change_template: Any = ...
|
||||||
password_change_done_template: Any = ...
|
password_change_done_template: Any = ...
|
||||||
name: str = ...
|
name: str = ...
|
||||||
|
_registry: Dict[Type[Model], ModelAdmin]
|
||||||
def __init__(self, name: str = ...) -> None: ...
|
def __init__(self, name: str = ...) -> None: ...
|
||||||
def check(self, app_configs: None) -> List[str]: ...
|
def check(self, app_configs: None) -> List[Any]: ...
|
||||||
def register(
|
def register(
|
||||||
self,
|
self,
|
||||||
model_or_iterable: Union[List[Type[Model]], Tuple[Type[Model]], Type[Model]],
|
model_or_iterable: Union[List[Type[Model]], Tuple[Type[Model]], Type[Model]],
|
||||||
@@ -47,9 +48,9 @@ class AdminSite:
|
|||||||
def empty_value_display(self, empty_value_display: Any) -> None: ...
|
def empty_value_display(self, empty_value_display: Any) -> None: ...
|
||||||
def has_permission(self, request: WSGIRequest) -> bool: ...
|
def has_permission(self, request: WSGIRequest) -> bool: ...
|
||||||
def admin_view(self, view: Callable, cacheable: bool = ...) -> Callable: ...
|
def admin_view(self, view: Callable, cacheable: bool = ...) -> Callable: ...
|
||||||
def get_urls(self) -> List[Union[URLPattern, URLResolver]]: ...
|
def get_urls(self) -> List[URLResolver]: ...
|
||||||
@property
|
@property
|
||||||
def urls(self) -> Tuple[List[Union[URLPattern, URLResolver]], str, str]: ...
|
def urls(self) -> Tuple[List[URLResolver], str, str]: ...
|
||||||
def each_context(self, request: Any): ...
|
def each_context(self, request: Any): ...
|
||||||
def password_change(self, request: WSGIRequest, extra_context: Dict[str, str] = ...) -> TemplateResponse: ...
|
def password_change(self, request: WSGIRequest, extra_context: Dict[str, str] = ...) -> TemplateResponse: ...
|
||||||
def password_change_done(self, request: WSGIRequest, extra_context: None = ...) -> TemplateResponse: ...
|
def password_change_done(self, request: WSGIRequest, extra_context: None = ...) -> TemplateResponse: ...
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, Dict, Iterator, List, Optional, Union
|
from typing import Any, Dict, Iterator, List, Optional, Union, Iterable
|
||||||
|
|
||||||
from django.contrib.admin.filters import FieldListFilter
|
from django.contrib.admin.filters import FieldListFilter
|
||||||
from django.contrib.admin.templatetags.base import InclusionAdminNode
|
from django.contrib.admin.templatetags.base import InclusionAdminNode
|
||||||
@@ -15,7 +15,7 @@ register: Any
|
|||||||
DOT: str
|
DOT: str
|
||||||
|
|
||||||
def paginator_number(cl: ChangeList, i: int) -> SafeText: ...
|
def paginator_number(cl: ChangeList, i: int) -> SafeText: ...
|
||||||
def pagination(cl: ChangeList) -> Dict[str, Union[List[Union[int, str]], ChangeList, int, range, str]]: ...
|
def pagination(cl: ChangeList) -> Dict[str, Iterable[Any]]: ...
|
||||||
def pagination_tag(parser: Parser, token: Token) -> InclusionAdminNode: ...
|
def pagination_tag(parser: Parser, token: Token) -> InclusionAdminNode: ...
|
||||||
def result_headers(cl: ChangeList) -> Iterator[Dict[str, Optional[Union[int, str]]]]: ...
|
def result_headers(cl: ChangeList) -> Iterator[Dict[str, Optional[Union[int, str]]]]: ...
|
||||||
def items_for_result(cl: ChangeList, result: Model, form: None) -> Iterator[SafeText]: ...
|
def items_for_result(cl: ChangeList, result: Model, form: None) -> Iterator[SafeText]: ...
|
||||||
@@ -32,7 +32,7 @@ def result_list(
|
|||||||
str, Union[List[Dict[str, Optional[Union[int, str]]]], List[ResultList], List[BoundField], ChangeList, int]
|
str, Union[List[Dict[str, Optional[Union[int, str]]]], List[ResultList], List[BoundField], ChangeList, int]
|
||||||
]: ...
|
]: ...
|
||||||
def result_list_tag(parser: Parser, token: Token) -> InclusionAdminNode: ...
|
def result_list_tag(parser: Parser, token: Token) -> InclusionAdminNode: ...
|
||||||
def date_hierarchy(cl: ChangeList) -> Optional[Dict[str, Union[Dict[str, str], List[Dict[str, str]], bool]]]: ...
|
def date_hierarchy(cl: ChangeList) -> Optional[Dict[str, Any]]: ...
|
||||||
def date_hierarchy_tag(parser: Parser, token: Token) -> InclusionAdminNode: ...
|
def date_hierarchy_tag(parser: Parser, token: Token) -> InclusionAdminNode: ...
|
||||||
def search_form(cl: ChangeList) -> Dict[str, Union[bool, ChangeList, str]]: ...
|
def search_form(cl: ChangeList) -> Dict[str, Union[bool, ChangeList, str]]: ...
|
||||||
def search_form_tag(parser: Parser, token: Token) -> InclusionAdminNode: ...
|
def search_form_tag(parser: Parser, token: Token) -> InclusionAdminNode: ...
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, Callable, Optional
|
from typing import Any, Callable, Dict, List
|
||||||
|
|
||||||
from django.template.base import Parser, Token
|
from django.template.base import Parser, Token
|
||||||
from django.template.context import Context
|
from django.template.context import Context
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
|
import collections
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Type, Union
|
from typing import Any, Callable, Dict, List, Optional, Sequence, Set, Tuple, Type, Union
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
from django.contrib.admin.options import BaseModelAdmin
|
from django.contrib.admin.options import BaseModelAdmin
|
||||||
@@ -8,28 +9,23 @@ from django.contrib.auth.forms import AdminPasswordChangeForm
|
|||||||
from django.core.handlers.wsgi import WSGIRequest
|
from django.core.handlers.wsgi import WSGIRequest
|
||||||
from django.db.models.base import Model
|
from django.db.models.base import Model
|
||||||
from django.db.models.deletion import Collector
|
from django.db.models.deletion import Collector
|
||||||
from django.db.models.fields import Field
|
|
||||||
from django.db.models.fields.mixins import FieldCacheMixin
|
from django.db.models.fields.mixins import FieldCacheMixin
|
||||||
from django.db.models.fields.reverse_related import ForeignObjectRel, ManyToOneRel, OneToOneRel
|
from django.db.models.fields.reverse_related import ManyToOneRel
|
||||||
from django.db.models.options import Options
|
from django.db.models.options import Options
|
||||||
from django.db.models.query import QuerySet
|
from django.db.models.query import QuerySet
|
||||||
|
from django.forms.forms import BaseForm
|
||||||
from django.utils.safestring import SafeText
|
from django.utils.safestring import SafeText
|
||||||
|
|
||||||
|
from django.db.models.fields import Field, reverse_related
|
||||||
|
|
||||||
class FieldIsAForeignKeyColumnName(Exception): ...
|
class FieldIsAForeignKeyColumnName(Exception): ...
|
||||||
|
|
||||||
def lookup_needs_distinct(opts: Options, lookup_path: str) -> bool: ...
|
def lookup_needs_distinct(opts: Options, lookup_path: str) -> bool: ...
|
||||||
def prepare_lookup_value(key: str, value: Union[datetime, str]) -> Union[bool, datetime, str]: ...
|
def prepare_lookup_value(key: str, value: Union[datetime, str]) -> Union[bool, datetime, str]: ...
|
||||||
def quote(s: Union[int, str, UUID]) -> Union[int, str, UUID]: ...
|
def quote(s: Union[int, str, UUID]) -> str: ...
|
||||||
def unquote(s: str) -> str: ...
|
def unquote(s: str) -> str: ...
|
||||||
def flatten(
|
def flatten(fields: Any) -> List[Union[Callable, str]]: ...
|
||||||
fields: Union[List[Union[Callable, str]], List[Union[List[str], str]], List[Union[Tuple[str, str], str]], Tuple]
|
def flatten_fieldsets(fieldsets: Any) -> List[Union[Callable, str]]: ...
|
||||||
) -> List[Union[Callable, str]]: ...
|
|
||||||
def flatten_fieldsets(
|
|
||||||
fieldsets: Union[
|
|
||||||
List[Tuple[Optional[str], Dict[str, Tuple[str]]]],
|
|
||||||
Tuple[Tuple[Optional[str], Dict[str, Tuple[Union[Tuple[str, str], str]]]]],
|
|
||||||
]
|
|
||||||
) -> List[Union[Callable, str]]: ...
|
|
||||||
def get_deleted_objects(
|
def get_deleted_objects(
|
||||||
objs: QuerySet, request: WSGIRequest, admin_site: AdminSite
|
objs: QuerySet, request: WSGIRequest, admin_site: AdminSite
|
||||||
) -> Tuple[List[Any], Dict[Any, Any], Set[Any], List[Any]]: ...
|
) -> Tuple[List[Any], Dict[Any, Any], Set[Any], List[Any]]: ...
|
||||||
@@ -47,7 +43,7 @@ class NestedObjects(Collector):
|
|||||||
def add_edge(self, source: Optional[Model], target: Model) -> None: ...
|
def add_edge(self, source: Optional[Model], target: Model) -> None: ...
|
||||||
def collect(
|
def collect(
|
||||||
self,
|
self,
|
||||||
objs: Union[List[Model], QuerySet],
|
objs: Union[Sequence[Optional[Model]], QuerySet],
|
||||||
source: Optional[Type[Model]] = ...,
|
source: Optional[Type[Model]] = ...,
|
||||||
source_attr: Optional[str] = ...,
|
source_attr: Optional[str] = ...,
|
||||||
**kwargs: Any
|
**kwargs: Any
|
||||||
@@ -62,7 +58,11 @@ def lookup_field(
|
|||||||
name: Union[Callable, str], obj: Model, model_admin: BaseModelAdmin = ...
|
name: Union[Callable, str], obj: Model, model_admin: BaseModelAdmin = ...
|
||||||
) -> Tuple[Optional[Field], Callable, Callable]: ...
|
) -> Tuple[Optional[Field], Callable, Callable]: ...
|
||||||
def label_for_field(
|
def label_for_field(
|
||||||
name: Union[Callable, str], model: Type[Model], model_admin: Optional[BaseModelAdmin] = ..., return_attr: bool = ...
|
name: Union[Callable, str],
|
||||||
|
model: Type[Model],
|
||||||
|
model_admin: Optional[BaseModelAdmin] = ...,
|
||||||
|
return_attr: bool = ...,
|
||||||
|
form: Optional[BaseForm] = ...,
|
||||||
) -> Union[Tuple[Optional[str], Union[Callable, Type[str]]], str]: ...
|
) -> Union[Tuple[Optional[str], Union[Callable, Type[str]]], str]: ...
|
||||||
def help_text_for_field(name: str, model: Type[Model]) -> str: ...
|
def help_text_for_field(name: str, model: Type[Model]) -> str: ...
|
||||||
def display_for_field(
|
def display_for_field(
|
||||||
|
|||||||
@@ -1,18 +1,10 @@
|
|||||||
from typing import Any, Optional
|
from typing import Any
|
||||||
|
|
||||||
|
from django.contrib.admin.options import ModelAdmin
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
from django.core.handlers.wsgi import WSGIRequest
|
||||||
from django.core.paginator import Paginator
|
|
||||||
from django.db.models.query import QuerySet
|
|
||||||
from django.http.response import JsonResponse
|
|
||||||
from django.views.generic.list import BaseListView
|
from django.views.generic.list import BaseListView
|
||||||
|
|
||||||
class AutocompleteJsonView(BaseListView):
|
class AutocompleteJsonView(BaseListView):
|
||||||
paginate_by: int = ...
|
|
||||||
model_admin: ModelAdmin = ...
|
model_admin: ModelAdmin = ...
|
||||||
term: Any = ...
|
term: Any = ...
|
||||||
paginator_class: Any = ...
|
|
||||||
object_list: Any = ...
|
|
||||||
def get(self, request: WSGIRequest, *args: Any, **kwargs: Any) -> JsonResponse: ...
|
|
||||||
def get_paginator(self, *args: Any, **kwargs: Any) -> Paginator: ...
|
|
||||||
def get_queryset(self) -> QuerySet: ...
|
|
||||||
def has_perm(self, request: WSGIRequest, obj: None = ...) -> bool: ...
|
def has_perm(self, request: WSGIRequest, obj: None = ...) -> bool: ...
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ from django.db.models.expressions import Combinable, CombinedExpression, OrderBy
|
|||||||
from django.db.models.query import QuerySet
|
from django.db.models.query import QuerySet
|
||||||
|
|
||||||
from django.db.models.options import Options
|
from django.db.models.options import Options
|
||||||
|
from django.forms.formsets import BaseFormSet
|
||||||
|
|
||||||
ALL_VAR: str
|
ALL_VAR: str
|
||||||
ORDER_VAR: str
|
ORDER_VAR: str
|
||||||
@@ -44,6 +45,7 @@ class ChangeList:
|
|||||||
queryset: Any = ...
|
queryset: Any = ...
|
||||||
title: Any = ...
|
title: Any = ...
|
||||||
pk_attname: Any = ...
|
pk_attname: Any = ...
|
||||||
|
formset: Optional[BaseFormSet]
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
request: WSGIRequest,
|
request: WSGIRequest,
|
||||||
|
|||||||
@@ -1,16 +1,12 @@
|
|||||||
from collections import OrderedDict
|
from typing import Any, Dict, List, Optional, Set, Tuple, Union
|
||||||
from datetime import datetime
|
|
||||||
from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union
|
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
from django import forms
|
|
||||||
from django.contrib.admin.sites import AdminSite
|
from django.contrib.admin.sites import AdminSite
|
||||||
from django.db.models.fields.reverse_related import ForeignObjectRel
|
from django.db.models.fields.reverse_related import ForeignObjectRel, ManyToOneRel
|
||||||
from django.db.models.query_utils import Q
|
from django.forms.models import ModelChoiceIterator
|
||||||
from django.forms.fields import Field
|
from django.forms.widgets import ChoiceWidget, Media
|
||||||
from django.forms.widgets import ChoiceWidget, Media, Widget
|
|
||||||
from django.http.request import QueryDict
|
from django import forms
|
||||||
from django.utils.datastructures import MultiValueDict
|
|
||||||
|
|
||||||
class FilteredSelectMultiple(forms.SelectMultiple):
|
class FilteredSelectMultiple(forms.SelectMultiple):
|
||||||
@property
|
@property
|
||||||
@@ -18,112 +14,37 @@ class FilteredSelectMultiple(forms.SelectMultiple):
|
|||||||
verbose_name: Any = ...
|
verbose_name: Any = ...
|
||||||
is_stacked: Any = ...
|
is_stacked: Any = ...
|
||||||
def __init__(self, verbose_name: str, is_stacked: bool, attrs: None = ..., choices: Tuple = ...) -> None: ...
|
def __init__(self, verbose_name: str, is_stacked: bool, attrs: None = ..., choices: Tuple = ...) -> None: ...
|
||||||
def get_context(
|
|
||||||
self, name: str, value: Union[List[Any], str], attrs: Optional[Dict[str, str]]
|
|
||||||
) -> Dict[
|
|
||||||
str,
|
|
||||||
Union[
|
|
||||||
Dict[
|
|
||||||
str,
|
|
||||||
Union[
|
|
||||||
Dict[str, Union[int, str]],
|
|
||||||
List[Tuple[None, List[Dict[str, Union[Dict[Any, Any], int, str]]], int]],
|
|
||||||
bool,
|
|
||||||
str,
|
|
||||||
],
|
|
||||||
],
|
|
||||||
Dict[str, Union[Dict[str, Union[int, str]], List[str], bool, str]],
|
|
||||||
],
|
|
||||||
]: ...
|
|
||||||
|
|
||||||
class AdminDateWidget(forms.DateInput):
|
class AdminDateWidget(forms.DateInput):
|
||||||
attrs: Dict[str, str]
|
|
||||||
input_type: str
|
|
||||||
@property
|
@property
|
||||||
def media(self) -> Media: ...
|
def media(self) -> Media: ...
|
||||||
def __init__(self, attrs: Optional[Dict[str, Union[int, str]]] = ..., format: None = ...) -> None: ...
|
|
||||||
|
|
||||||
class AdminTimeWidget(forms.TimeInput):
|
class AdminTimeWidget(forms.TimeInput):
|
||||||
attrs: Dict[str, str]
|
|
||||||
input_type: str
|
|
||||||
@property
|
@property
|
||||||
def media(self) -> Media: ...
|
def media(self) -> Media: ...
|
||||||
def __init__(self, attrs: Optional[Dict[str, Union[int, str]]] = ..., format: None = ...) -> None: ...
|
|
||||||
|
|
||||||
class AdminSplitDateTime(forms.SplitDateTimeWidget):
|
class AdminSplitDateTime(forms.SplitDateTimeWidget): ...
|
||||||
attrs: Dict[Any, Any]
|
class AdminRadioSelect(forms.RadioSelect): ...
|
||||||
widgets: List[DateTimeBaseInput]
|
class AdminFileWidget(forms.ClearableFileInput): ...
|
||||||
template_name: str = ...
|
|
||||||
def __init__(self, attrs: None = ...) -> None: ...
|
|
||||||
def get_context(
|
|
||||||
self, name: str, value: Optional[Union[List[str], datetime]], attrs: Optional[Dict[str, Union[bool, str]]]
|
|
||||||
) -> Dict[
|
|
||||||
str,
|
|
||||||
Union[
|
|
||||||
Dict[
|
|
||||||
str,
|
|
||||||
Optional[
|
|
||||||
Union[
|
|
||||||
Dict[str, Union[bool, str]],
|
|
||||||
List[Dict[str, Optional[Union[Dict[str, Union[bool, str]], bool, str]]]],
|
|
||||||
bool,
|
|
||||||
str,
|
|
||||||
]
|
|
||||||
],
|
|
||||||
],
|
|
||||||
str,
|
|
||||||
],
|
|
||||||
]: ...
|
|
||||||
|
|
||||||
class AdminRadioSelect(forms.RadioSelect):
|
def url_params_from_lookup_dict(lookups: Any) -> Dict[str, str]: ...
|
||||||
attrs: Dict[str, str]
|
|
||||||
template_name: str = ...
|
|
||||||
|
|
||||||
class AdminFileWidget(forms.ClearableFileInput):
|
|
||||||
attrs: Dict[Any, Any]
|
|
||||||
template_name: str = ...
|
|
||||||
|
|
||||||
def url_params_from_lookup_dict(
|
|
||||||
lookups: Union[
|
|
||||||
Dict[str, Callable], Dict[str, List[str]], Dict[str, Tuple[str, str]], Dict[str, bool], Dict[str, str], Q
|
|
||||||
]
|
|
||||||
) -> Dict[str, str]: ...
|
|
||||||
|
|
||||||
class ForeignKeyRawIdWidget(forms.TextInput):
|
class ForeignKeyRawIdWidget(forms.TextInput):
|
||||||
attrs: Dict[Any, Any]
|
rel: ManyToOneRel = ...
|
||||||
template_name: str = ...
|
|
||||||
rel: django.db.models.fields.reverse_related.ManyToOneRel = ...
|
|
||||||
admin_site: AdminSite = ...
|
admin_site: AdminSite = ...
|
||||||
db: None = ...
|
db: None = ...
|
||||||
def __init__(self, rel: ForeignObjectRel, admin_site: AdminSite, attrs: None = ..., using: None = ...) -> None: ...
|
def __init__(self, rel: ForeignObjectRel, admin_site: AdminSite, attrs: None = ..., using: None = ...) -> None: ...
|
||||||
def get_context(
|
|
||||||
self, name: str, value: Optional[Union[List[int], int, str, UUID]], attrs: Optional[Dict[str, Union[bool, str]]]
|
|
||||||
) -> Dict[str, Union[Dict[str, Optional[Union[Dict[str, Union[bool, str]], bool, str]]], str]]: ...
|
|
||||||
def base_url_parameters(self) -> Dict[str, str]: ...
|
def base_url_parameters(self) -> Dict[str, str]: ...
|
||||||
def url_parameters(self) -> Dict[str, str]: ...
|
def url_parameters(self) -> Dict[str, str]: ...
|
||||||
def label_and_url_for_value(self, value: Union[int, str, UUID]) -> Tuple[str, str]: ...
|
def label_and_url_for_value(self, value: Union[int, str, UUID]) -> Tuple[str, str]: ...
|
||||||
|
|
||||||
class ManyToManyRawIdWidget(ForeignKeyRawIdWidget):
|
class ManyToManyRawIdWidget(ForeignKeyRawIdWidget): ...
|
||||||
admin_site: AdminSite
|
|
||||||
attrs: Dict[Any, Any]
|
|
||||||
db: None
|
|
||||||
rel: django.db.models.fields.reverse_related.ManyToManyRel
|
|
||||||
template_name: str = ...
|
|
||||||
def get_context(
|
|
||||||
self, name: str, value: Optional[List[int]], attrs: Optional[Dict[str, str]]
|
|
||||||
) -> Dict[str, Union[Dict[str, Union[Dict[str, str], bool, str]], str]]: ...
|
|
||||||
def url_parameters(self) -> Dict[Any, Any]: ...
|
|
||||||
def label_and_url_for_value(self, value: List[int]) -> Tuple[str, str]: ...
|
|
||||||
def value_from_datadict(self, data: QueryDict, files: MultiValueDict, name: str) -> None: ...
|
|
||||||
def format_value(self, value: Optional[List[int]]) -> str: ...
|
|
||||||
|
|
||||||
class RelatedFieldWidgetWrapper(forms.Widget):
|
class RelatedFieldWidgetWrapper(forms.Widget):
|
||||||
template_name: str = ...
|
template_name: str = ...
|
||||||
needs_multipart_form: bool = ...
|
|
||||||
attrs: Dict[Any, Any] = ...
|
|
||||||
choices: ModelChoiceIterator = ...
|
choices: ModelChoiceIterator = ...
|
||||||
widget: django.contrib.admin.widgets.AutocompleteSelect = ...
|
widget: AutocompleteSelect = ...
|
||||||
rel: django.db.models.fields.reverse_related.ManyToOneRel = ...
|
rel: ManyToOneRel = ...
|
||||||
can_add_related: bool = ...
|
can_add_related: bool = ...
|
||||||
can_change_related: bool = ...
|
can_change_related: bool = ...
|
||||||
can_delete_related: bool = ...
|
can_delete_related: bool = ...
|
||||||
@@ -139,54 +60,19 @@ class RelatedFieldWidgetWrapper(forms.Widget):
|
|||||||
can_delete_related: bool = ...,
|
can_delete_related: bool = ...,
|
||||||
can_view_related: bool = ...,
|
can_view_related: bool = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def __deepcopy__(
|
|
||||||
self, memo: Dict[int, Union[List[Union[Field, Widget]], OrderedDict, Field, Widget]]
|
|
||||||
) -> RelatedFieldWidgetWrapper: ...
|
|
||||||
@property
|
|
||||||
def is_hidden(self) -> bool: ...
|
|
||||||
@property
|
@property
|
||||||
def media(self) -> Media: ...
|
def media(self) -> Media: ...
|
||||||
def get_related_url(self, info: Tuple[str, str], action: str, *args: Any) -> str: ...
|
def get_related_url(self, info: Tuple[str, str], action: str, *args: Any) -> str: ...
|
||||||
def get_context(
|
|
||||||
self, name: str, value: Optional[Union[int, str]], attrs: Optional[Dict[str, Union[bool, str]]]
|
|
||||||
) -> Dict[str, Union[bool, str]]: ...
|
|
||||||
def value_from_datadict(
|
|
||||||
self, data: QueryDict, files: MultiValueDict, name: str
|
|
||||||
) -> Optional[Union[List[str], str]]: ...
|
|
||||||
def value_omitted_from_data(self, data: Dict[Any, Any], files: Dict[Any, Any], name: str) -> bool: ...
|
|
||||||
def id_for_label(self, id_: str) -> str: ...
|
|
||||||
|
|
||||||
class AdminTextareaWidget(forms.Textarea):
|
class AdminTextareaWidget(forms.Textarea): ...
|
||||||
attrs: Dict[str, str]
|
class AdminTextInputWidget(forms.TextInput): ...
|
||||||
def __init__(self, attrs: None = ...) -> None: ...
|
class AdminEmailInputWidget(forms.EmailInput): ...
|
||||||
|
class AdminURLFieldWidget(forms.URLInput): ...
|
||||||
class AdminTextInputWidget(forms.TextInput):
|
|
||||||
attrs: Dict[str, str]
|
|
||||||
input_type: str
|
|
||||||
def __init__(self, attrs: None = ...) -> None: ...
|
|
||||||
|
|
||||||
class AdminEmailInputWidget(forms.EmailInput):
|
|
||||||
attrs: Dict[str, str]
|
|
||||||
input_type: str
|
|
||||||
def __init__(self, attrs: None = ...) -> None: ...
|
|
||||||
|
|
||||||
class AdminURLFieldWidget(forms.URLInput):
|
|
||||||
attrs: Dict[str, str]
|
|
||||||
input_type: str
|
|
||||||
template_name: str = ...
|
|
||||||
def __init__(self, attrs: None = ...) -> None: ...
|
|
||||||
def get_context(
|
|
||||||
self, name: str, value: Optional[str], attrs: Optional[Dict[str, str]]
|
|
||||||
) -> Dict[str, Union[Dict[str, Optional[Union[Dict[str, str], bool, str]]], str]]: ...
|
|
||||||
|
|
||||||
class AdminIntegerFieldWidget(forms.NumberInput):
|
class AdminIntegerFieldWidget(forms.NumberInput):
|
||||||
attrs: Dict[str, str]
|
|
||||||
input_type: str
|
|
||||||
class_name: str = ...
|
class_name: str = ...
|
||||||
def __init__(self, attrs: None = ...) -> None: ...
|
|
||||||
|
|
||||||
class AdminBigIntegerFieldWidget(AdminIntegerFieldWidget):
|
class AdminBigIntegerFieldWidget(AdminIntegerFieldWidget): ...
|
||||||
class_name: str = ...
|
|
||||||
|
|
||||||
SELECT2_TRANSLATIONS: Any
|
SELECT2_TRANSLATIONS: Any
|
||||||
|
|
||||||
@@ -206,12 +92,6 @@ class AutocompleteMixin:
|
|||||||
using: None = ...,
|
using: None = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def get_url(self) -> str: ...
|
def get_url(self) -> str: ...
|
||||||
def build_attrs(
|
|
||||||
self, base_attrs: Dict[str, str], extra_attrs: Optional[Dict[str, Union[bool, str]]] = ...
|
|
||||||
) -> Dict[str, Union[bool, str]]: ...
|
|
||||||
def optgroups(
|
|
||||||
self, name: str, value: List[str], attr: Dict[str, Union[bool, str]] = ...
|
|
||||||
) -> List[Tuple[None, List[Dict[str, Union[Dict[str, bool], Set[str], int, str]]], int]]: ...
|
|
||||||
@property
|
@property
|
||||||
def media(self) -> Media: ...
|
def media(self) -> Media: ...
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,11 @@ from django.db.models.base import Model
|
|||||||
from django.db.models.options import Options
|
from django.db.models.options import Options
|
||||||
from django.http.request import HttpRequest
|
from django.http.request import HttpRequest
|
||||||
|
|
||||||
from .signals import user_logged_in, user_logged_out, user_login_failed
|
from .signals import (
|
||||||
|
user_logged_in as user_logged_in,
|
||||||
|
user_logged_out as user_logged_out,
|
||||||
|
user_login_failed as user_login_failed,
|
||||||
|
)
|
||||||
|
|
||||||
SESSION_KEY: str
|
SESSION_KEY: str
|
||||||
BACKEND_SESSION_KEY: str
|
BACKEND_SESSION_KEY: str
|
||||||
|
|||||||
@@ -1,54 +1,18 @@
|
|||||||
from typing import Any, Dict, List, Optional, Tuple, Type
|
from typing import Any
|
||||||
|
|
||||||
from django.contrib.auth.models import User, Group
|
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
from django.core.handlers.wsgi import WSGIRequest
|
||||||
from django.db.models.fields.related import ManyToManyField
|
|
||||||
from django.forms.models import ModelMultipleChoiceField
|
|
||||||
from django.http.response import HttpResponse
|
from django.http.response import HttpResponse
|
||||||
from django.urls.resolvers import URLPattern
|
|
||||||
|
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.admin.sites import AdminSite
|
|
||||||
|
|
||||||
csrf_protect_m: Any
|
csrf_protect_m: Any
|
||||||
sensitive_post_parameters_m: Any
|
sensitive_post_parameters_m: Any
|
||||||
|
|
||||||
class GroupAdmin(admin.ModelAdmin):
|
class GroupAdmin(admin.ModelAdmin): ...
|
||||||
admin_site: AdminSite
|
|
||||||
formfield_overrides: Any
|
|
||||||
model: Type[Group]
|
|
||||||
opts: Options
|
|
||||||
search_fields: Any = ...
|
|
||||||
ordering: Any = ...
|
|
||||||
filter_horizontal: Any = ...
|
|
||||||
def formfield_for_manytomany(
|
|
||||||
self, db_field: ManyToManyField, request: WSGIRequest = ..., **kwargs: Any
|
|
||||||
) -> ModelMultipleChoiceField: ...
|
|
||||||
|
|
||||||
class UserAdmin(admin.ModelAdmin):
|
class UserAdmin(admin.ModelAdmin):
|
||||||
admin_site: AdminSite
|
|
||||||
formfield_overrides: Dict[
|
|
||||||
Type[Union[django.db.models.fields.DateTimeCheckMixin, Field]],
|
|
||||||
Dict[str, Type[Union[django.forms.fields.SplitDateTimeField, Widget]]],
|
|
||||||
]
|
|
||||||
model: Type[User]
|
|
||||||
opts: Options
|
|
||||||
add_form_template: str = ...
|
|
||||||
change_user_password_template: Any = ...
|
change_user_password_template: Any = ...
|
||||||
fieldsets: Any = ...
|
|
||||||
add_fieldsets: Any = ...
|
add_fieldsets: Any = ...
|
||||||
form: Any = ...
|
|
||||||
add_form: Any = ...
|
add_form: Any = ...
|
||||||
change_password_form: Any = ...
|
change_password_form: Any = ...
|
||||||
list_display: Any = ...
|
|
||||||
list_filter: Any = ...
|
|
||||||
search_fields: Any = ...
|
|
||||||
ordering: Any = ...
|
|
||||||
filter_horizontal: Any = ...
|
|
||||||
def get_fieldsets(self, request: WSGIRequest, obj: None = ...) -> Tuple[Tuple[None, Dict[str, Tuple[str]]]]: ...
|
|
||||||
def get_form(self, request: Any, obj: Optional[Any] = ..., **kwargs: Any): ...
|
|
||||||
def get_urls(self) -> List[URLPattern]: ...
|
|
||||||
def lookup_allowed(self, lookup: str, value: str) -> bool: ...
|
|
||||||
def add_view(self, request: WSGIRequest, form_url: str = ..., extra_context: None = ...) -> Any: ...
|
|
||||||
def user_change_password(self, request: WSGIRequest, id: str, form_url: str = ...) -> HttpResponse: ...
|
def user_change_password(self, request: WSGIRequest, id: str, form_url: str = ...) -> HttpResponse: ...
|
||||||
def response_add(self, request: WSGIRequest, obj: User, post_url_continue: None = ...) -> HttpResponse: ...
|
|
||||||
|
|||||||
@@ -1,18 +1,3 @@
|
|||||||
from typing import Any, Optional
|
|
||||||
|
|
||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
|
||||||
from .checks import check_models_permissions, check_user_model
|
class AuthConfig(AppConfig): ...
|
||||||
from .management import create_permissions
|
|
||||||
from .signals import user_logged_in
|
|
||||||
|
|
||||||
class AuthConfig(AppConfig):
|
|
||||||
apps: None
|
|
||||||
label: str
|
|
||||||
models: None
|
|
||||||
models_module: None
|
|
||||||
module: Any
|
|
||||||
path: str
|
|
||||||
name: str = ...
|
|
||||||
verbose_name: Any = ...
|
|
||||||
def ready(self) -> None: ...
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, Optional, Tuple, List
|
from typing import Any, Optional, Tuple, List, overload
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
@@ -11,10 +11,9 @@ class BaseUserManager(models.Manager):
|
|||||||
class AbstractBaseUser(models.Model):
|
class AbstractBaseUser(models.Model):
|
||||||
password: models.CharField = ...
|
password: models.CharField = ...
|
||||||
last_login: Optional[models.DateTimeField] = ...
|
last_login: Optional[models.DateTimeField] = ...
|
||||||
is_active: bool = ...
|
is_active: models.BooleanField = ...
|
||||||
REQUIRED_FIELDS: List[str] = ...
|
REQUIRED_FIELDS: List[str] = ...
|
||||||
class Meta:
|
class Meta: ...
|
||||||
abstract: bool = ...
|
|
||||||
def get_username(self) -> str: ...
|
def get_username(self) -> str: ...
|
||||||
def clean(self) -> None: ...
|
def clean(self) -> None: ...
|
||||||
def save(self, *args: Any, **kwargs: Any) -> None: ...
|
def save(self, *args: Any, **kwargs: Any) -> None: ...
|
||||||
@@ -31,4 +30,8 @@ class AbstractBaseUser(models.Model):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def get_email_field_name(cls) -> str: ...
|
def get_email_field_name(cls) -> str: ...
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@overload
|
||||||
def normalize_username(cls, username: str) -> str: ...
|
def normalize_username(cls, username: str) -> str: ...
|
||||||
|
@classmethod
|
||||||
|
@overload
|
||||||
|
def normalize_username(cls, username: Any) -> Any: ...
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
from typing import Any, List, Optional
|
from typing import Any, List
|
||||||
|
|
||||||
from django.core.checks.messages import CheckMessage
|
from django.core.checks.messages import CheckMessage
|
||||||
|
|
||||||
from .management import _get_builtin_permissions
|
|
||||||
|
|
||||||
def check_user_model(app_configs: None = ..., **kwargs: Any) -> List[CheckMessage]: ...
|
def check_user_model(app_configs: None = ..., **kwargs: Any) -> List[CheckMessage]: ...
|
||||||
def check_models_permissions(app_configs: None = ..., **kwargs: Any) -> List[Any]: ...
|
def check_models_permissions(app_configs: None = ..., **kwargs: Any) -> List[Any]: ...
|
||||||
|
|||||||
@@ -1,22 +1,20 @@
|
|||||||
from typing import Any, Dict, Optional, Union
|
from typing import Any, Dict
|
||||||
|
|
||||||
from django.contrib.auth.models import AnonymousUser, User
|
|
||||||
from django.http.request import HttpRequest
|
from django.http.request import HttpRequest
|
||||||
from django.utils.functional import SimpleLazyObject
|
|
||||||
|
|
||||||
class PermLookupDict:
|
class PermLookupDict:
|
||||||
app_label: django.utils.safestring.SafeText
|
app_label: str
|
||||||
user: SimpleLazyObject
|
user: Any
|
||||||
def __init__(self, user: SimpleLazyObject, app_label: str) -> None: ...
|
def __init__(self, user: Any, app_label: str) -> None: ...
|
||||||
def __getitem__(self, perm_name: str) -> bool: ...
|
def __getitem__(self, perm_name: str) -> bool: ...
|
||||||
def __iter__(self) -> Any: ...
|
def __iter__(self) -> Any: ...
|
||||||
def __bool__(self) -> bool: ...
|
def __bool__(self) -> bool: ...
|
||||||
|
|
||||||
class PermWrapper:
|
class PermWrapper:
|
||||||
user: SimpleLazyObject = ...
|
user: Any = ...
|
||||||
def __init__(self, user: Union[AnonymousUser, User]) -> None: ...
|
def __init__(self, user: Any) -> None: ...
|
||||||
def __getitem__(self, app_label: str) -> PermLookupDict: ...
|
def __getitem__(self, app_label: str) -> PermLookupDict: ...
|
||||||
def __iter__(self) -> Any: ...
|
def __iter__(self) -> Any: ...
|
||||||
def __contains__(self, perm_name: Union[bool, str]) -> bool: ...
|
def __contains__(self, perm_name: Any) -> bool: ...
|
||||||
|
|
||||||
def auth(request: HttpRequest) -> Dict[str, Union[PermWrapper, AnonymousUser, User]]: ...
|
def auth(request: HttpRequest) -> Dict[str, Any]: ...
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
from typing import Any, Callable, List, Optional, Set, Union
|
from typing import Any, Callable, List, Optional, Set, Union
|
||||||
|
|
||||||
|
from django.contrib.auth import REDIRECT_FIELD_NAME as REDIRECT_FIELD_NAME
|
||||||
|
|
||||||
def user_passes_test(
|
def user_passes_test(
|
||||||
test_func: Callable, login_url: Optional[str] = ..., redirect_field_name: str = ...
|
test_func: Callable, login_url: Optional[str] = ..., redirect_field_name: str = ...
|
||||||
) -> Callable: ...
|
) -> Callable: ...
|
||||||
|
|||||||
@@ -1,84 +1,36 @@
|
|||||||
import collections
|
from typing import Any, Dict, Iterator, Optional
|
||||||
import datetime
|
|
||||||
from typing import Any, Dict, Iterator, List, Optional, Union, Type
|
|
||||||
|
|
||||||
from django.contrib.auth.base_user import AbstractBaseUser
|
from django.contrib.auth.base_user import AbstractBaseUser
|
||||||
from django.contrib.auth.models import AbstractUser, User
|
from django.contrib.auth.models import AbstractUser, User
|
||||||
from django.contrib.auth.tokens import PasswordResetTokenGenerator
|
from django.contrib.auth.tokens import PasswordResetTokenGenerator
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
from django.core.handlers.wsgi import WSGIRequest
|
||||||
from django.forms.utils import ErrorList
|
|
||||||
from django.http.request import QueryDict
|
|
||||||
from django.utils.datastructures import MultiValueDict
|
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
|
|
||||||
UserModel: Any
|
UserModel: Any
|
||||||
|
|
||||||
class ReadOnlyPasswordHashWidget(forms.Widget):
|
class ReadOnlyPasswordHashWidget(forms.Widget):
|
||||||
attrs: Dict[Any, Any]
|
|
||||||
template_name: str = ...
|
template_name: str = ...
|
||||||
|
|
||||||
class ReadOnlyPasswordHashField(forms.Field):
|
class ReadOnlyPasswordHashField(forms.Field):
|
||||||
widget: Any = ...
|
|
||||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
||||||
def bound_data(self, data: None, initial: str) -> str: ...
|
|
||||||
def has_changed(self, initial: str, data: Optional[str]) -> bool: ...
|
|
||||||
|
|
||||||
class UsernameField(forms.CharField):
|
class UsernameField(forms.CharField): ...
|
||||||
def to_python(self, value: Optional[str]) -> str: ...
|
|
||||||
|
|
||||||
class UserCreationForm(forms.ModelForm):
|
class UserCreationForm(forms.ModelForm):
|
||||||
auto_id: str
|
|
||||||
data: Dict[str, str]
|
|
||||||
empty_permitted: bool
|
|
||||||
error_class: Type[ErrorList]
|
|
||||||
fields: collections.OrderedDict
|
|
||||||
files: Dict[Any, Any]
|
|
||||||
initial: Dict[Any, Any]
|
|
||||||
instance: User
|
|
||||||
is_bound: bool
|
|
||||||
label_suffix: str
|
|
||||||
error_messages: Any = ...
|
error_messages: Any = ...
|
||||||
password1: Any = ...
|
password1: Any = ...
|
||||||
password2: Any = ...
|
password2: Any = ...
|
||||||
class Meta:
|
|
||||||
model: Any = ...
|
|
||||||
fields: Any = ...
|
|
||||||
field_classes: Any = ...
|
|
||||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
||||||
def clean_password2(self) -> str: ...
|
def clean_password2(self) -> str: ...
|
||||||
def save(self, commit: bool = ...) -> User: ...
|
|
||||||
|
|
||||||
class UserChangeForm(forms.ModelForm):
|
class UserChangeForm(forms.ModelForm):
|
||||||
auto_id: str
|
|
||||||
data: Dict[Any, Any]
|
|
||||||
empty_permitted: bool
|
|
||||||
error_class: Type[ErrorList]
|
|
||||||
fields: collections.OrderedDict
|
|
||||||
files: Dict[Any, Any]
|
|
||||||
initial: Dict[str, Optional[Union[List[Any], datetime.datetime, int, str]]]
|
|
||||||
instance: User
|
|
||||||
is_bound: bool
|
|
||||||
label_suffix: str
|
|
||||||
password: Any = ...
|
password: Any = ...
|
||||||
class Meta:
|
|
||||||
model: Any = ...
|
|
||||||
fields: str = ...
|
|
||||||
field_classes: Any = ...
|
|
||||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
||||||
def clean_password(self) -> str: ...
|
def clean_password(self) -> str: ...
|
||||||
|
|
||||||
class AuthenticationForm(forms.Form):
|
class AuthenticationForm(forms.Form):
|
||||||
auto_id: str
|
|
||||||
data: QueryDict
|
|
||||||
empty_permitted: bool
|
|
||||||
error_class: Type[ErrorList]
|
|
||||||
fields: collections.OrderedDict
|
|
||||||
files: MultiValueDict
|
|
||||||
initial: Dict[Any, Any]
|
|
||||||
is_bound: bool
|
|
||||||
label_suffix: str
|
|
||||||
username: Any = ...
|
username: Any = ...
|
||||||
password: Any = ...
|
password: Any = ...
|
||||||
error_messages: Any = ...
|
error_messages: Any = ...
|
||||||
@@ -91,21 +43,12 @@ class AuthenticationForm(forms.Form):
|
|||||||
def get_invalid_login_error(self) -> ValidationError: ...
|
def get_invalid_login_error(self) -> ValidationError: ...
|
||||||
|
|
||||||
class PasswordResetForm(forms.Form):
|
class PasswordResetForm(forms.Form):
|
||||||
auto_id: str
|
|
||||||
data: Dict[Any, Any]
|
|
||||||
empty_permitted: bool
|
|
||||||
error_class: Type[ErrorList]
|
|
||||||
fields: collections.OrderedDict
|
|
||||||
files: Dict[Any, Any]
|
|
||||||
initial: Dict[Any, Any]
|
|
||||||
is_bound: bool
|
|
||||||
label_suffix: str
|
|
||||||
email: Any = ...
|
email: Any = ...
|
||||||
def send_mail(
|
def send_mail(
|
||||||
self,
|
self,
|
||||||
subject_template_name: str,
|
subject_template_name: str,
|
||||||
email_template_name: str,
|
email_template_name: str,
|
||||||
context: Dict[str, Union[AbstractBaseUser, str]],
|
context: Dict[str, Any],
|
||||||
from_email: Optional[str],
|
from_email: Optional[str],
|
||||||
to_email: str,
|
to_email: str,
|
||||||
html_email_template_name: Optional[str] = ...,
|
html_email_template_name: Optional[str] = ...,
|
||||||
@@ -125,15 +68,6 @@ class PasswordResetForm(forms.Form):
|
|||||||
) -> None: ...
|
) -> None: ...
|
||||||
|
|
||||||
class SetPasswordForm(forms.Form):
|
class SetPasswordForm(forms.Form):
|
||||||
auto_id: str
|
|
||||||
data: Dict[Any, Any]
|
|
||||||
empty_permitted: bool
|
|
||||||
error_class: Type[ErrorList]
|
|
||||||
fields: collections.OrderedDict
|
|
||||||
files: Dict[Any, Any]
|
|
||||||
initial: Dict[Any, Any]
|
|
||||||
is_bound: bool
|
|
||||||
label_suffix: str
|
|
||||||
error_messages: Any = ...
|
error_messages: Any = ...
|
||||||
new_password1: Any = ...
|
new_password1: Any = ...
|
||||||
new_password2: Any = ...
|
new_password2: Any = ...
|
||||||
@@ -143,31 +77,10 @@ class SetPasswordForm(forms.Form):
|
|||||||
def save(self, commit: bool = ...) -> AbstractBaseUser: ...
|
def save(self, commit: bool = ...) -> AbstractBaseUser: ...
|
||||||
|
|
||||||
class PasswordChangeForm(SetPasswordForm):
|
class PasswordChangeForm(SetPasswordForm):
|
||||||
auto_id: str
|
|
||||||
data: Dict[Any, Any]
|
|
||||||
empty_permitted: bool
|
|
||||||
error_class: Type[ErrorList]
|
|
||||||
fields: collections.OrderedDict
|
|
||||||
files: Dict[Any, Any]
|
|
||||||
initial: Dict[Any, Any]
|
|
||||||
is_bound: bool
|
|
||||||
label_suffix: str
|
|
||||||
user: User
|
|
||||||
error_messages: Any = ...
|
|
||||||
old_password: Any = ...
|
old_password: Any = ...
|
||||||
field_order: Any = ...
|
|
||||||
def clean_old_password(self) -> str: ...
|
def clean_old_password(self) -> str: ...
|
||||||
|
|
||||||
class AdminPasswordChangeForm(forms.Form):
|
class AdminPasswordChangeForm(forms.Form):
|
||||||
auto_id: str
|
|
||||||
data: Dict[Any, Any]
|
|
||||||
empty_permitted: bool
|
|
||||||
error_class: Type[ErrorList]
|
|
||||||
fields: collections.OrderedDict
|
|
||||||
files: Dict[Any, Any]
|
|
||||||
initial: Dict[Any, Any]
|
|
||||||
is_bound: bool
|
|
||||||
label_suffix: str
|
|
||||||
error_messages: Any = ...
|
error_messages: Any = ...
|
||||||
required_css_class: str = ...
|
required_css_class: str = ...
|
||||||
password1: Any = ...
|
password1: Any = ...
|
||||||
@@ -176,5 +89,3 @@ class AdminPasswordChangeForm(forms.Form):
|
|||||||
def __init__(self, user: AbstractUser, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, user: AbstractUser, *args: Any, **kwargs: Any) -> None: ...
|
||||||
def clean_password2(self) -> str: ...
|
def clean_password2(self) -> str: ...
|
||||||
def save(self, commit: bool = ...) -> AbstractUser: ...
|
def save(self, commit: bool = ...) -> AbstractUser: ...
|
||||||
@property
|
|
||||||
def changed_data(self) -> List[str]: ...
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
from collections import OrderedDict
|
|
||||||
from typing import Any, Callable, Dict, List, Optional
|
from typing import Any, Callable, Dict, List, Optional
|
||||||
|
|
||||||
UNUSABLE_PASSWORD_PREFIX: str
|
UNUSABLE_PASSWORD_PREFIX: str
|
||||||
@@ -17,92 +16,30 @@ def identify_hasher(encoded: str) -> BasePasswordHasher: ...
|
|||||||
def mask_hash(hash: str, show: int = ..., char: str = ...) -> str: ...
|
def mask_hash(hash: str, show: int = ..., char: str = ...) -> str: ...
|
||||||
|
|
||||||
class BasePasswordHasher:
|
class BasePasswordHasher:
|
||||||
algorithm: Any = ...
|
algorithm: str = ...
|
||||||
library: Any = ...
|
library: str = ...
|
||||||
|
rounds: int = ...
|
||||||
|
time_cost: int = ...
|
||||||
|
memory_cost: int = ...
|
||||||
|
parallelism: int = ...
|
||||||
|
digest: Any = ...
|
||||||
|
iterations: Optional[int] = ...
|
||||||
def salt(self) -> str: ...
|
def salt(self) -> str: ...
|
||||||
def verify(self, password: str, encoded: str) -> Any: ...
|
def verify(self, password: str, encoded: str) -> bool: ...
|
||||||
def encode(self, password: str, salt: str) -> Any: ...
|
def encode(self, password: str, salt: str) -> Any: ...
|
||||||
def safe_summary(self, encoded: str) -> Any: ...
|
def safe_summary(self, encoded: str) -> Any: ...
|
||||||
def must_update(self, encoded: str) -> bool: ...
|
def must_update(self, encoded: str) -> bool: ...
|
||||||
def harden_runtime(self, password: str, encoded: str) -> None: ...
|
def harden_runtime(self, password: str, encoded: str) -> None: ...
|
||||||
|
|
||||||
class PBKDF2PasswordHasher(BasePasswordHasher):
|
class PBKDF2PasswordHasher(BasePasswordHasher):
|
||||||
algorithm: str = ...
|
|
||||||
iterations: int = ...
|
|
||||||
digest: Any = ...
|
|
||||||
def encode(self, password: str, salt: str, iterations: Optional[int] = ...) -> str: ...
|
def encode(self, password: str, salt: str, iterations: Optional[int] = ...) -> str: ...
|
||||||
def verify(self, password: str, encoded: str) -> bool: ...
|
|
||||||
def safe_summary(self, encoded: str) -> OrderedDict: ...
|
|
||||||
def must_update(self, encoded: str) -> bool: ...
|
|
||||||
def harden_runtime(self, password: str, encoded: str) -> None: ...
|
|
||||||
|
|
||||||
class PBKDF2SHA1PasswordHasher(PBKDF2PasswordHasher):
|
class PBKDF2SHA1PasswordHasher(PBKDF2PasswordHasher): ...
|
||||||
algorithm: str = ...
|
class Argon2PasswordHasher(BasePasswordHasher): ...
|
||||||
digest: Any = ...
|
class BCryptSHA256PasswordHasher(BasePasswordHasher): ...
|
||||||
|
class BCryptPasswordHasher(BCryptSHA256PasswordHasher): ...
|
||||||
class Argon2PasswordHasher(BasePasswordHasher):
|
class SHA1PasswordHasher(BasePasswordHasher): ...
|
||||||
algorithm: str = ...
|
class MD5PasswordHasher(BasePasswordHasher): ...
|
||||||
library: str = ...
|
class UnsaltedSHA1PasswordHasher(BasePasswordHasher): ...
|
||||||
time_cost: int = ...
|
class UnsaltedMD5PasswordHasher(BasePasswordHasher): ...
|
||||||
memory_cost: int = ...
|
class CryptPasswordHasher(BasePasswordHasher): ...
|
||||||
parallelism: int = ...
|
|
||||||
def encode(self, password: Any, salt: Any): ...
|
|
||||||
def verify(self, password: Any, encoded: Any): ...
|
|
||||||
def safe_summary(self, encoded: Any): ...
|
|
||||||
def must_update(self, encoded: Any): ...
|
|
||||||
def harden_runtime(self, password: Any, encoded: Any) -> None: ...
|
|
||||||
|
|
||||||
class BCryptSHA256PasswordHasher(BasePasswordHasher):
|
|
||||||
algorithm: str = ...
|
|
||||||
digest: Any = ...
|
|
||||||
library: Any = ...
|
|
||||||
rounds: int = ...
|
|
||||||
def salt(self): ...
|
|
||||||
def encode(self, password: Any, salt: Any): ...
|
|
||||||
def verify(self, password: Any, encoded: Any): ...
|
|
||||||
def safe_summary(self, encoded: Any): ...
|
|
||||||
def must_update(self, encoded: Any): ...
|
|
||||||
def harden_runtime(self, password: Any, encoded: Any) -> None: ...
|
|
||||||
|
|
||||||
class BCryptPasswordHasher(BCryptSHA256PasswordHasher):
|
|
||||||
algorithm: str = ...
|
|
||||||
digest: Any = ...
|
|
||||||
|
|
||||||
class SHA1PasswordHasher(BasePasswordHasher):
|
|
||||||
algorithm: str = ...
|
|
||||||
def encode(self, password: str, salt: str) -> str: ...
|
|
||||||
def verify(self, password: str, encoded: str) -> bool: ...
|
|
||||||
def safe_summary(self, encoded: Any): ...
|
|
||||||
def harden_runtime(self, password: Any, encoded: Any) -> None: ...
|
|
||||||
|
|
||||||
class MD5PasswordHasher(BasePasswordHasher):
|
|
||||||
algorithm: str = ...
|
|
||||||
def encode(self, password: str, salt: str) -> str: ...
|
|
||||||
def verify(self, password: str, encoded: str) -> bool: ...
|
|
||||||
def safe_summary(self, encoded: str) -> OrderedDict: ...
|
|
||||||
def harden_runtime(self, password: Any, encoded: Any) -> None: ...
|
|
||||||
|
|
||||||
class UnsaltedSHA1PasswordHasher(BasePasswordHasher):
|
|
||||||
algorithm: str = ...
|
|
||||||
def salt(self) -> str: ...
|
|
||||||
def encode(self, password: str, salt: str) -> str: ...
|
|
||||||
def verify(self, password: str, encoded: str) -> bool: ...
|
|
||||||
def safe_summary(self, encoded: Any): ...
|
|
||||||
def harden_runtime(self, password: Any, encoded: Any) -> None: ...
|
|
||||||
|
|
||||||
class UnsaltedMD5PasswordHasher(BasePasswordHasher):
|
|
||||||
algorithm: str = ...
|
|
||||||
def salt(self) -> str: ...
|
|
||||||
def encode(self, password: str, salt: str) -> str: ...
|
|
||||||
def verify(self, password: str, encoded: str) -> bool: ...
|
|
||||||
def safe_summary(self, encoded: Any): ...
|
|
||||||
def harden_runtime(self, password: Any, encoded: Any) -> None: ...
|
|
||||||
|
|
||||||
class CryptPasswordHasher(BasePasswordHasher):
|
|
||||||
algorithm: str = ...
|
|
||||||
library: str = ...
|
|
||||||
def salt(self): ...
|
|
||||||
def encode(self, password: Any, salt: Any): ...
|
|
||||||
def verify(self, password: Any, encoded: Any): ...
|
|
||||||
def safe_summary(self, encoded: Any): ...
|
|
||||||
def harden_runtime(self, password: Any, encoded: Any) -> None: ...
|
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ class AuthenticationMiddleware(MiddlewareMixin):
|
|||||||
class RemoteUserMiddleware(MiddlewareMixin):
|
class RemoteUserMiddleware(MiddlewareMixin):
|
||||||
header: str = ...
|
header: str = ...
|
||||||
force_logout_if_no_header: bool = ...
|
force_logout_if_no_header: bool = ...
|
||||||
def process_request(self, request: WSGIRequest) -> None: ...
|
def process_request(self, request: HttpRequest) -> None: ...
|
||||||
def clean_username(self, username: str, request: WSGIRequest) -> str: ...
|
def clean_username(self, username: str, request: HttpRequest) -> str: ...
|
||||||
|
|
||||||
class PersistentRemoteUserMiddleware(RemoteUserMiddleware):
|
class PersistentRemoteUserMiddleware(RemoteUserMiddleware):
|
||||||
force_logout_if_no_header: bool = ...
|
force_logout_if_no_header: bool = ...
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from typing import Any, Callable, List, Optional
|
from typing import Any, Callable, List, Optional
|
||||||
|
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
from django import http
|
||||||
from django.http.response import HttpResponse, HttpResponseRedirect
|
from django.http.response import HttpResponse, HttpResponseRedirect
|
||||||
|
|
||||||
class AccessMixin:
|
class AccessMixin:
|
||||||
@@ -14,15 +14,15 @@ class AccessMixin:
|
|||||||
def handle_no_permission(self) -> HttpResponseRedirect: ...
|
def handle_no_permission(self) -> HttpResponseRedirect: ...
|
||||||
|
|
||||||
class LoginRequiredMixin(AccessMixin):
|
class LoginRequiredMixin(AccessMixin):
|
||||||
def dispatch(self, request: WSGIRequest, *args: Any, **kwargs: Any) -> HttpResponse: ...
|
def dispatch(self, request: http.HttpRequest, *args: Any, **kwargs: Any) -> HttpResponse: ...
|
||||||
|
|
||||||
class PermissionRequiredMixin(AccessMixin):
|
class PermissionRequiredMixin(AccessMixin):
|
||||||
permission_required: Any = ...
|
permission_required: Any = ...
|
||||||
def get_permission_required(self) -> List[str]: ...
|
def get_permission_required(self) -> List[str]: ...
|
||||||
def has_permission(self) -> bool: ...
|
def has_permission(self) -> bool: ...
|
||||||
def dispatch(self, request: WSGIRequest, *args: Any, **kwargs: Any) -> HttpResponse: ...
|
def dispatch(self, request: http.HttpRequest, *args: Any, **kwargs: Any) -> HttpResponse: ...
|
||||||
|
|
||||||
class UserPassesTestMixin(AccessMixin):
|
class UserPassesTestMixin(AccessMixin):
|
||||||
def test_func(self) -> None: ...
|
def test_func(self) -> None: ...
|
||||||
def get_test_func(self) -> Callable: ...
|
def get_test_func(self) -> Callable: ...
|
||||||
def dispatch(self, request: WSGIRequest, *args: Any, **kwargs: Any) -> HttpResponse: ...
|
def dispatch(self, request: http.HttpRequest, *args: Any, **kwargs: Any) -> HttpResponse: ...
|
||||||
|
|||||||
@@ -1,46 +1,33 @@
|
|||||||
import datetime
|
|
||||||
from typing import Any, List, Optional, Set, Tuple, Type, Union
|
from typing import Any, List, Optional, Set, Tuple, Type, Union
|
||||||
|
|
||||||
from django.contrib.auth.base_user import AbstractBaseUser as AbstractBaseUser, BaseUserManager as BaseUserManager
|
from django.contrib.auth.base_user import AbstractBaseUser as AbstractBaseUser, BaseUserManager as BaseUserManager
|
||||||
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.db.models.manager import EmptyManager
|
from django.db.models.manager import EmptyManager
|
||||||
|
|
||||||
|
from django.contrib.auth.validators import UnicodeUsernameValidator
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
def update_last_login(sender: Type[AbstractBaseUser], user: AbstractBaseUser, **kwargs: Any) -> None: ...
|
def update_last_login(sender: Type[AbstractBaseUser], user: AbstractBaseUser, **kwargs: Any) -> None: ...
|
||||||
|
|
||||||
class PermissionManager(models.Manager):
|
class PermissionManager(models.Manager):
|
||||||
creation_counter: int
|
|
||||||
model: None
|
|
||||||
name: None
|
|
||||||
use_in_migrations: bool = ...
|
|
||||||
def get_by_natural_key(self, codename: str, app_label: str, model: str) -> Permission: ...
|
def get_by_natural_key(self, codename: str, app_label: str, model: str) -> Permission: ...
|
||||||
|
|
||||||
class Permission(models.Model):
|
class Permission(models.Model):
|
||||||
content_type_id: int
|
content_type_id: int
|
||||||
id: int
|
name: models.CharField = ...
|
||||||
name: str = ...
|
content_type: models.ForeignKey = models.ForeignKey(ContentType, on_delete=models.CASCADE)
|
||||||
content_type: Any = ...
|
codename: models.CharField = ...
|
||||||
codename: str = ...
|
|
||||||
def natural_key(self) -> Tuple[str, str, str]: ...
|
def natural_key(self) -> Tuple[str, str, str]: ...
|
||||||
|
|
||||||
class GroupManager(models.Manager):
|
class GroupManager(models.Manager):
|
||||||
creation_counter: int
|
|
||||||
model: None
|
|
||||||
name: None
|
|
||||||
use_in_migrations: bool = ...
|
|
||||||
def get_by_natural_key(self, name: str) -> Group: ...
|
def get_by_natural_key(self, name: str) -> Group: ...
|
||||||
|
|
||||||
class Group(models.Model):
|
class Group(models.Model):
|
||||||
id: None
|
name: models.CharField = ...
|
||||||
name: str = ...
|
permissions: models.ManyToManyField = models.ManyToManyField(Permission)
|
||||||
permissions: Any = ...
|
|
||||||
def natural_key(self): ...
|
def natural_key(self): ...
|
||||||
|
|
||||||
class UserManager(BaseUserManager):
|
class UserManager(BaseUserManager):
|
||||||
creation_counter: int
|
|
||||||
model: None
|
|
||||||
name: None
|
|
||||||
use_in_migrations: bool = ...
|
|
||||||
def create_user(
|
def create_user(
|
||||||
self, username: str, email: Optional[str] = ..., password: Optional[str] = ..., **extra_fields: Any
|
self, username: str, email: Optional[str] = ..., password: Optional[str] = ..., **extra_fields: Any
|
||||||
) -> AbstractUser: ...
|
) -> AbstractUser: ...
|
||||||
@@ -49,24 +36,23 @@ class UserManager(BaseUserManager):
|
|||||||
) -> AbstractBaseUser: ...
|
) -> AbstractBaseUser: ...
|
||||||
|
|
||||||
class PermissionsMixin(models.Model):
|
class PermissionsMixin(models.Model):
|
||||||
is_superuser: Any = ...
|
is_superuser: models.BooleanField = ...
|
||||||
groups: Any = ...
|
groups: models.ManyToManyField = models.ManyToManyField(Group)
|
||||||
user_permissions: Any = ...
|
user_permissions: models.ManyToManyField = models.ManyToManyField(Permission)
|
||||||
def get_group_permissions(self, obj: None = ...) -> Set[str]: ...
|
def get_group_permissions(self, obj: None = ...) -> Set[str]: ...
|
||||||
def get_all_permissions(self, obj: Optional[str] = ...) -> Set[str]: ...
|
def get_all_permissions(self, obj: Optional[str] = ...) -> Set[str]: ...
|
||||||
def has_perm(self, perm: Union[Tuple[str, Any], str], obj: Optional[str] = ...) -> bool: ...
|
def has_perm(self, perm: Union[Tuple[str, Any], str], obj: Optional[str] = ...) -> bool: ...
|
||||||
def has_perms(self, perm_list: Union[List[str], Set[str], Tuple[str]], obj: None = ...) -> bool: ...
|
def has_perms(self, perm_list: Union[List[str], Set[str], Tuple[str]], obj: None = ...) -> bool: ...
|
||||||
def has_module_perms(self, app_label: str) -> bool: ...
|
def has_module_perms(self, app_label: str) -> bool: ...
|
||||||
|
|
||||||
class AbstractUser(AbstractBaseUser, PermissionsMixin):
|
class AbstractUser(AbstractBaseUser, PermissionsMixin): # type: ignore
|
||||||
is_superuser: bool
|
username_validator: UnicodeUsernameValidator = ...
|
||||||
username_validator: Any = ...
|
username: models.CharField = ...
|
||||||
username: str = ...
|
first_name: models.CharField = ...
|
||||||
first_name: str = ...
|
last_name: models.CharField = ...
|
||||||
last_name: str = ...
|
email: models.EmailField = ...
|
||||||
email: str = ...
|
is_staff: models.BooleanField = ...
|
||||||
is_staff: bool = ...
|
date_joined: models.DateTimeField = ...
|
||||||
date_joined: datetime.datetime = ...
|
|
||||||
EMAIL_FIELD: str = ...
|
EMAIL_FIELD: str = ...
|
||||||
USERNAME_FIELD: str = ...
|
USERNAME_FIELD: str = ...
|
||||||
def clean(self) -> None: ...
|
def clean(self) -> None: ...
|
||||||
|
|||||||
@@ -1,46 +1,46 @@
|
|||||||
from pathlib import PosixPath
|
from pathlib import Path, PosixPath
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
from typing import Any, List, Mapping, Optional, Protocol, Sequence, Set, Union
|
||||||
|
|
||||||
from django.contrib.auth.base_user import AbstractBaseUser
|
from django.contrib.auth.base_user import AbstractBaseUser
|
||||||
from django.contrib.auth.models import User
|
|
||||||
|
|
||||||
def get_default_password_validators() -> Union[
|
class PasswordValidator(Protocol):
|
||||||
List[NumericPasswordValidator], List[UserAttributeSimilarityValidator]
|
def validate(self, password: str, user: Optional[AbstractBaseUser] = ...): ...
|
||||||
]: ...
|
|
||||||
def get_password_validators(
|
def get_default_password_validators() -> List[PasswordValidator]: ...
|
||||||
validator_config: List[Dict[str, Union[Dict[str, int], str]]]
|
def get_password_validators(validator_config: Sequence[Mapping[str, Any]]) -> List[PasswordValidator]: ...
|
||||||
) -> Union[List[NumericPasswordValidator], List[UserAttributeSimilarityValidator]]: ...
|
|
||||||
def validate_password(
|
def validate_password(
|
||||||
password: str, user: Optional[AbstractBaseUser] = ..., password_validators: Optional[List[Any]] = ...
|
password: str,
|
||||||
|
user: Optional[AbstractBaseUser] = ...,
|
||||||
|
password_validators: Optional[Sequence[PasswordValidator]] = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def password_changed(
|
def password_changed(
|
||||||
password: str, user: Optional[AbstractBaseUser] = ..., password_validators: None = ...
|
password: str,
|
||||||
|
user: Optional[AbstractBaseUser] = ...,
|
||||||
|
password_validators: Optional[Sequence[PasswordValidator]] = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def password_validators_help_texts(password_validators: Optional[List[Any]] = ...) -> List[str]: ...
|
def password_validators_help_texts(password_validators: Optional[Sequence[PasswordValidator]] = ...) -> List[str]: ...
|
||||||
|
|
||||||
password_validators_help_text_html: Any
|
password_validators_help_text_html: Any
|
||||||
|
|
||||||
class MinimumLengthValidator:
|
class MinimumLengthValidator:
|
||||||
min_length: int = ...
|
min_length: int = ...
|
||||||
def __init__(self, min_length: int = ...) -> None: ...
|
def __init__(self, min_length: int = ...) -> None: ...
|
||||||
def validate(self, password: str, user: Optional[User] = ...) -> None: ...
|
def validate(self, password: str, user: Optional[AbstractBaseUser] = ...) -> None: ...
|
||||||
def get_help_text(self) -> str: ...
|
def get_help_text(self) -> str: ...
|
||||||
|
|
||||||
class UserAttributeSimilarityValidator:
|
class UserAttributeSimilarityValidator:
|
||||||
DEFAULT_USER_ATTRIBUTES: Any = ...
|
DEFAULT_USER_ATTRIBUTES: Sequence[str] = ...
|
||||||
user_attributes: Tuple[str, str, str, str] = ...
|
user_attributes: Sequence[str] = ...
|
||||||
max_similarity: float = ...
|
max_similarity: float = ...
|
||||||
def __init__(
|
def __init__(self, user_attributes: Sequence[str] = ..., max_similarity: float = ...) -> None: ...
|
||||||
self, user_attributes: Union[List[str], Tuple[str, str, str, str]] = ..., max_similarity: float = ...
|
def validate(self, password: str, user: Optional[AbstractBaseUser] = ...) -> None: ...
|
||||||
) -> None: ...
|
|
||||||
def validate(self, password: str, user: Optional[User] = ...) -> None: ...
|
|
||||||
def get_help_text(self) -> str: ...
|
def get_help_text(self) -> str: ...
|
||||||
|
|
||||||
class CommonPasswordValidator:
|
class CommonPasswordValidator:
|
||||||
DEFAULT_PASSWORD_LIST_PATH: Any = ...
|
DEFAULT_PASSWORD_LIST_PATH: Path = ...
|
||||||
passwords: Set[str] = ...
|
passwords: Set[str] = ...
|
||||||
def __init__(self, password_list_path: Union[PosixPath, str] = ...) -> None: ...
|
def __init__(self, password_list_path: Union[PosixPath, str] = ...) -> None: ...
|
||||||
def validate(self, password: str, user: None = ...) -> None: ...
|
def validate(self, password: str, user: Optional[AbstractBaseUser] = ...) -> None: ...
|
||||||
def get_help_text(self) -> str: ...
|
def get_help_text(self) -> str: ...
|
||||||
|
|
||||||
class NumericPasswordValidator:
|
class NumericPasswordValidator:
|
||||||
|
|||||||
4
django-stubs/contrib/auth/validators.pyi
Normal file
4
django-stubs/contrib/auth/validators.pyi
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
from django.core import validators
|
||||||
|
|
||||||
|
class ASCIIUsernameValidator(validators.RegexValidator): ...
|
||||||
|
class UnicodeUsernameValidator(validators.RegexValidator): ...
|
||||||
@@ -1,15 +1,10 @@
|
|||||||
from typing import Any, Dict, Optional, Set, Type, Union
|
from typing import Any, Optional, Set
|
||||||
|
|
||||||
from django.contrib.auth.base_user import AbstractBaseUser
|
from django.contrib.auth.base_user import AbstractBaseUser
|
||||||
from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm, PasswordResetForm, SetPasswordForm
|
|
||||||
from django.contrib.auth.models import User
|
|
||||||
from django.contrib.sites.models import Site
|
|
||||||
from django.contrib.sites.requests import RequestSite
|
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
from django.core.handlers.wsgi import WSGIRequest
|
||||||
from django.http.request import HttpRequest
|
from django.http.request import HttpRequest
|
||||||
from django.http.response import HttpResponse, HttpResponseRedirect
|
from django.http.response import HttpResponseRedirect
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from django.utils.datastructures import MultiValueDict
|
|
||||||
from django.views.generic.base import TemplateView
|
from django.views.generic.base import TemplateView
|
||||||
from django.views.generic.edit import FormView
|
from django.views.generic.edit import FormView
|
||||||
|
|
||||||
@@ -20,31 +15,18 @@ class SuccessURLAllowedHostsMixin:
|
|||||||
def get_success_url_allowed_hosts(self) -> Set[str]: ...
|
def get_success_url_allowed_hosts(self) -> Set[str]: ...
|
||||||
|
|
||||||
class LoginView(SuccessURLAllowedHostsMixin, FormView):
|
class LoginView(SuccessURLAllowedHostsMixin, FormView):
|
||||||
form_class: Any = ...
|
|
||||||
authentication_form: Any = ...
|
authentication_form: Any = ...
|
||||||
redirect_field_name: Any = ...
|
redirect_field_name: Any = ...
|
||||||
template_name: str = ...
|
|
||||||
redirect_authenticated_user: bool = ...
|
redirect_authenticated_user: bool = ...
|
||||||
extra_context: Any = ...
|
extra_context: Any = ...
|
||||||
def dispatch(self, request: HttpRequest, *args: Any, **kwargs: Any) -> HttpResponse: ...
|
|
||||||
def get_success_url(self) -> str: ...
|
|
||||||
def get_redirect_url(self) -> str: ...
|
def get_redirect_url(self) -> str: ...
|
||||||
def get_form_class(self) -> Type[AuthenticationForm]: ...
|
|
||||||
def get_form_kwargs(self) -> Dict[str, Optional[Union[Dict[str, str], HttpRequest, MultiValueDict]]]: ...
|
|
||||||
def form_valid(self, form: AuthenticationForm) -> HttpResponseRedirect: ...
|
|
||||||
def get_context_data(
|
|
||||||
self, **kwargs: Any
|
|
||||||
) -> Dict[str, Union[AuthenticationForm, LoginView, Site, RequestSite, str]]: ...
|
|
||||||
|
|
||||||
class LogoutView(SuccessURLAllowedHostsMixin, TemplateView):
|
class LogoutView(SuccessURLAllowedHostsMixin, TemplateView):
|
||||||
next_page: Any = ...
|
next_page: Any = ...
|
||||||
redirect_field_name: Any = ...
|
redirect_field_name: Any = ...
|
||||||
template_name: str = ...
|
|
||||||
extra_context: Any = ...
|
extra_context: Any = ...
|
||||||
def dispatch(self, request: HttpRequest, *args: Any, **kwargs: Any) -> HttpResponse: ...
|
|
||||||
def post(self, request: WSGIRequest, *args: Any, **kwargs: Any) -> TemplateResponse: ...
|
def post(self, request: WSGIRequest, *args: Any, **kwargs: Any) -> TemplateResponse: ...
|
||||||
def get_next_page(self) -> Optional[str]: ...
|
def get_next_page(self) -> Optional[str]: ...
|
||||||
def get_context_data(self, **kwargs: Any): ...
|
|
||||||
|
|
||||||
def logout_then_login(request: HttpRequest, login_url: Optional[str] = ...) -> HttpResponseRedirect: ...
|
def logout_then_login(request: HttpRequest, login_url: Optional[str] = ...) -> HttpResponseRedirect: ...
|
||||||
def redirect_to_login(
|
def redirect_to_login(
|
||||||
@@ -58,55 +40,32 @@ class PasswordContextMixin:
|
|||||||
class PasswordResetView(PasswordContextMixin, FormView):
|
class PasswordResetView(PasswordContextMixin, FormView):
|
||||||
email_template_name: str = ...
|
email_template_name: str = ...
|
||||||
extra_email_context: Any = ...
|
extra_email_context: Any = ...
|
||||||
form_class: Any = ...
|
|
||||||
from_email: Any = ...
|
from_email: Any = ...
|
||||||
html_email_template_name: Any = ...
|
html_email_template_name: Any = ...
|
||||||
subject_template_name: str = ...
|
subject_template_name: str = ...
|
||||||
success_url: Any = ...
|
|
||||||
template_name: str = ...
|
|
||||||
title: Any = ...
|
title: Any = ...
|
||||||
token_generator: Any = ...
|
token_generator: Any = ...
|
||||||
def dispatch(self, *args: Any, **kwargs: Any) -> HttpResponse: ...
|
|
||||||
def form_valid(self, form: PasswordResetForm) -> HttpResponseRedirect: ...
|
|
||||||
|
|
||||||
INTERNAL_RESET_URL_TOKEN: str
|
INTERNAL_RESET_URL_TOKEN: str
|
||||||
INTERNAL_RESET_SESSION_TOKEN: str
|
INTERNAL_RESET_SESSION_TOKEN: str
|
||||||
|
|
||||||
class PasswordResetDoneView(PasswordContextMixin, TemplateView):
|
class PasswordResetDoneView(PasswordContextMixin, TemplateView):
|
||||||
template_name: str = ...
|
|
||||||
title: Any = ...
|
title: Any = ...
|
||||||
|
|
||||||
class PasswordResetConfirmView(PasswordContextMixin, FormView):
|
class PasswordResetConfirmView(PasswordContextMixin, FormView):
|
||||||
form_class: Any = ...
|
|
||||||
post_reset_login: bool = ...
|
post_reset_login: bool = ...
|
||||||
post_reset_login_backend: Any = ...
|
post_reset_login_backend: Any = ...
|
||||||
success_url: Any = ...
|
|
||||||
template_name: str = ...
|
|
||||||
title: Any = ...
|
title: Any = ...
|
||||||
token_generator: Any = ...
|
token_generator: Any = ...
|
||||||
validlink: bool = ...
|
validlink: bool = ...
|
||||||
user: Any = ...
|
user: Any = ...
|
||||||
def dispatch(self, *args: Any, **kwargs: Any) -> HttpResponse: ...
|
|
||||||
def get_user(self, uidb64: str) -> Optional[AbstractBaseUser]: ...
|
def get_user(self, uidb64: str) -> Optional[AbstractBaseUser]: ...
|
||||||
def get_form_kwargs(self) -> Dict[str, Optional[Union[Dict[Any, Any], AbstractBaseUser, MultiValueDict]]]: ...
|
|
||||||
def form_valid(self, form: SetPasswordForm) -> HttpResponseRedirect: ...
|
|
||||||
def get_context_data(self, **kwargs: Any): ...
|
|
||||||
|
|
||||||
class PasswordResetCompleteView(PasswordContextMixin, TemplateView):
|
class PasswordResetCompleteView(PasswordContextMixin, TemplateView):
|
||||||
template_name: str = ...
|
|
||||||
title: Any = ...
|
title: Any = ...
|
||||||
def get_context_data(self, **kwargs: Any): ...
|
|
||||||
|
|
||||||
class PasswordChangeView(PasswordContextMixin, FormView):
|
class PasswordChangeView(PasswordContextMixin, FormView):
|
||||||
form_class: Any = ...
|
|
||||||
success_url: Any = ...
|
|
||||||
template_name: str = ...
|
|
||||||
title: Any = ...
|
title: Any = ...
|
||||||
def dispatch(self, *args: Any, **kwargs: Any) -> HttpResponse: ...
|
|
||||||
def get_form_kwargs(self) -> Dict[str, Optional[Union[Dict[Any, Any], User, MultiValueDict]]]: ...
|
|
||||||
def form_valid(self, form: PasswordChangeForm) -> HttpResponseRedirect: ...
|
|
||||||
|
|
||||||
class PasswordChangeDoneView(PasswordContextMixin, TemplateView):
|
class PasswordChangeDoneView(PasswordContextMixin, TemplateView):
|
||||||
template_name: str = ...
|
|
||||||
title: Any = ...
|
title: Any = ...
|
||||||
def dispatch(self, *args: Any, **kwargs: Any) -> TemplateResponse: ...
|
|
||||||
|
|||||||
@@ -1,6 +1,14 @@
|
|||||||
from django.db.models.base import Model
|
|
||||||
from typing import Any, List, Type
|
from typing import Any, List, Type
|
||||||
|
|
||||||
|
from django.contrib.admin.options import InlineModelAdmin
|
||||||
|
from django.db.models.base import Model
|
||||||
|
|
||||||
class GenericInlineModelAdminChecks:
|
class GenericInlineModelAdminChecks:
|
||||||
def _check_exclude_of_parent_model(self, obj: GenericTabularInline, parent_model: Type[Model]) -> List[Any]: ...
|
def _check_exclude_of_parent_model(self, obj: GenericInlineModelAdmin, parent_model: Type[Model]) -> List[Any]: ...
|
||||||
def _check_relation(self, obj: GenericTabularInline, parent_model: Type[Model]) -> List[Any]: ...
|
def _check_relation(self, obj: GenericInlineModelAdmin, parent_model: Type[Model]) -> List[Any]: ...
|
||||||
|
|
||||||
|
class GenericInlineModelAdmin(InlineModelAdmin):
|
||||||
|
template: str = ...
|
||||||
|
|
||||||
|
class GenericStackedInline(GenericInlineModelAdmin): ...
|
||||||
|
class GenericTabularInline(GenericInlineModelAdmin): ...
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
from typing import Any, Optional
|
|
||||||
|
|
||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
|
||||||
from .management import create_contenttypes, inject_rename_contenttypes_operations
|
class ContentTypesConfig(AppConfig): ...
|
||||||
|
|
||||||
class ContentTypesConfig(AppConfig):
|
|
||||||
apps: None
|
|
||||||
label: str
|
|
||||||
models: None
|
|
||||||
models_module: None
|
|
||||||
module: Any
|
|
||||||
path: str
|
|
||||||
name: str = ...
|
|
||||||
verbose_name: Any = ...
|
|
||||||
def ready(self) -> None: ...
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, Callable, Dict, List, Optional, Tuple, Type, Union
|
from typing import Any, Callable, Dict, List, Optional, Tuple, Type, Union, Generic
|
||||||
|
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.core.checks.messages import Error
|
from django.core.checks.messages import Error
|
||||||
@@ -51,7 +51,7 @@ class GenericForeignKey(FieldCacheMixin):
|
|||||||
|
|
||||||
class GenericRel(ForeignObjectRel):
|
class GenericRel(ForeignObjectRel):
|
||||||
field: GenericRelation
|
field: GenericRelation
|
||||||
limit_choices_to: Dict[Any, Any]
|
limit_choices_to: Optional[Union[Dict[str, Any], Callable[[], Any]]]
|
||||||
model: Type[Model]
|
model: Type[Model]
|
||||||
multiple: bool
|
multiple: bool
|
||||||
on_delete: Callable
|
on_delete: Callable
|
||||||
@@ -65,7 +65,7 @@ class GenericRel(ForeignObjectRel):
|
|||||||
to: Union[Type[Model], str],
|
to: Union[Type[Model], str],
|
||||||
related_name: None = ...,
|
related_name: None = ...,
|
||||||
related_query_name: Optional[str] = ...,
|
related_query_name: Optional[str] = ...,
|
||||||
limit_choices_to: None = ...,
|
limit_choices_to: Optional[Union[Dict[str, Any], Callable[[], Any]]] = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
|
|
||||||
class GenericRelation(ForeignObject):
|
class GenericRelation(ForeignObject):
|
||||||
@@ -79,6 +79,7 @@ class GenericRelation(ForeignObject):
|
|||||||
object_id_field_name: Any = ...
|
object_id_field_name: Any = ...
|
||||||
content_type_field_name: Any = ...
|
content_type_field_name: Any = ...
|
||||||
for_concrete_model: Any = ...
|
for_concrete_model: Any = ...
|
||||||
|
to_fields: Any = ...
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
to: Union[Type[Model], str],
|
to: Union[Type[Model], str],
|
||||||
@@ -86,17 +87,15 @@ class GenericRelation(ForeignObject):
|
|||||||
content_type_field: str = ...,
|
content_type_field: str = ...,
|
||||||
for_concrete_model: bool = ...,
|
for_concrete_model: bool = ...,
|
||||||
related_query_name: Optional[str] = ...,
|
related_query_name: Optional[str] = ...,
|
||||||
limit_choices_to: None = ...,
|
limit_choices_to: Optional[Union[Dict[str, Any], Callable[[], Any]]] = ...,
|
||||||
**kwargs: Any
|
**kwargs: Any
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def check(self, **kwargs: Any) -> List[Error]: ...
|
def check(self, **kwargs: Any) -> List[Error]: ...
|
||||||
to_fields: Any = ...
|
|
||||||
def resolve_related_fields(self) -> List[Tuple[PositiveIntegerField, Field]]: ...
|
def resolve_related_fields(self) -> List[Tuple[PositiveIntegerField, Field]]: ...
|
||||||
def get_path_info(self, filtered_relation: Optional[FilteredRelation] = ...) -> List[PathInfo]: ...
|
def get_path_info(self, filtered_relation: Optional[FilteredRelation] = ...) -> List[PathInfo]: ...
|
||||||
def get_reverse_path_info(self, filtered_relation: None = ...) -> List[PathInfo]: ...
|
def get_reverse_path_info(self, filtered_relation: None = ...) -> List[PathInfo]: ...
|
||||||
def value_to_string(self, obj: Model) -> str: ...
|
def value_to_string(self, obj: Model) -> str: ...
|
||||||
model: Any = ...
|
model: Any = ...
|
||||||
def contribute_to_class(self, cls: Type[Model], name: str, **kwargs: Any) -> None: ...
|
|
||||||
def set_attributes_from_rel(self) -> None: ...
|
def set_attributes_from_rel(self) -> None: ...
|
||||||
def get_internal_type(self) -> str: ...
|
def get_internal_type(self) -> str: ...
|
||||||
def get_content_type(self) -> ContentType: ...
|
def get_content_type(self) -> ContentType: ...
|
||||||
|
|||||||
@@ -1,20 +1,13 @@
|
|||||||
from typing import Any, Optional
|
from typing import Any, Dict, List
|
||||||
|
|
||||||
from django.core.management import BaseCommand
|
|
||||||
from django.core.management.base import CommandParser
|
|
||||||
from django.db.models.deletion import Collector
|
from django.db.models.deletion import Collector
|
||||||
|
|
||||||
from ...management import get_contenttypes_and_models
|
from django.core.management import BaseCommand
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand): ...
|
||||||
stderr: django.core.management.base.OutputWrapper
|
|
||||||
stdout: django.core.management.base.OutputWrapper
|
|
||||||
style: django.core.management.color.Style
|
|
||||||
def add_arguments(self, parser: CommandParser) -> None: ...
|
|
||||||
def handle(self, **options: Any) -> None: ...
|
|
||||||
|
|
||||||
class NoFastDeleteCollector(Collector):
|
class NoFastDeleteCollector(Collector):
|
||||||
data: collections.OrderedDict
|
data: Dict[str, Any]
|
||||||
dependencies: Dict[Any, Any]
|
dependencies: Dict[Any, Any]
|
||||||
fast_deletes: List[Any]
|
fast_deletes: List[Any]
|
||||||
field_updates: Dict[Any, Any]
|
field_updates: Dict[Any, Any]
|
||||||
|
|||||||
@@ -4,12 +4,7 @@ from django.db import models
|
|||||||
from django.db.models.base import Model
|
from django.db.models.base import Model
|
||||||
from django.db.models.query import QuerySet
|
from django.db.models.query import QuerySet
|
||||||
|
|
||||||
class ContentTypeManager(models.Manager):
|
class ContentTypeManager(models.Manager["ContentType"]):
|
||||||
creation_counter: int
|
|
||||||
model: None
|
|
||||||
name: None
|
|
||||||
use_in_migrations: bool = ...
|
|
||||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
|
||||||
def get_by_natural_key(self, app_label: str, model: str) -> ContentType: ...
|
def get_by_natural_key(self, app_label: str, model: str) -> ContentType: ...
|
||||||
def get_for_model(self, model: Union[Type[Model], Model], for_concrete_model: bool = ...) -> ContentType: ...
|
def get_for_model(self, model: Union[Type[Model], Model], for_concrete_model: bool = ...) -> ContentType: ...
|
||||||
def get_for_models(self, *models: Any, for_concrete_models: bool = ...) -> Dict[Type[Model], ContentType]: ...
|
def get_for_models(self, *models: Any, for_concrete_models: bool = ...) -> Dict[Type[Model], ContentType]: ...
|
||||||
@@ -18,14 +13,9 @@ class ContentTypeManager(models.Manager):
|
|||||||
|
|
||||||
class ContentType(models.Model):
|
class ContentType(models.Model):
|
||||||
id: int
|
id: int
|
||||||
app_label: str = ...
|
app_label: models.CharField = ...
|
||||||
model: str = ...
|
model: models.CharField = ...
|
||||||
objects: Any = ...
|
objects: ContentTypeManager = ...
|
||||||
class Meta:
|
|
||||||
verbose_name: Any = ...
|
|
||||||
verbose_name_plural: Any = ...
|
|
||||||
db_table: str = ...
|
|
||||||
unique_together: Any = ...
|
|
||||||
@property
|
@property
|
||||||
def name(self) -> str: ...
|
def name(self) -> str: ...
|
||||||
def model_class(self) -> Optional[Type[Model]]: ...
|
def model_class(self) -> Optional[Type[Model]]: ...
|
||||||
|
|||||||
@@ -1,22 +1,7 @@
|
|||||||
from typing import Any, Dict, Optional, Union
|
from typing import Any
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.db.models.query import QuerySet
|
|
||||||
|
|
||||||
class FlatpageForm(forms.ModelForm):
|
class FlatpageForm(forms.ModelForm):
|
||||||
auto_id: str
|
|
||||||
data: Dict[str, Union[List[int], str]]
|
|
||||||
empty_permitted: bool
|
|
||||||
error_class: Type[ErrorList]
|
|
||||||
fields: collections.OrderedDict
|
|
||||||
files: Dict[Any, Any]
|
|
||||||
initial: Dict[str, Union[List[django.contrib.sites.models.Site], int, str]]
|
|
||||||
instance: django.contrib.flatpages.models.FlatPage
|
|
||||||
is_bound: bool
|
|
||||||
label_suffix: str
|
|
||||||
url: Any = ...
|
url: Any = ...
|
||||||
class Meta:
|
|
||||||
model: Any = ...
|
|
||||||
fields: str = ...
|
|
||||||
def clean_url(self) -> str: ...
|
def clean_url(self) -> str: ...
|
||||||
def clean(self) -> Dict[str, Union[bool, QuerySet, str]]: ...
|
|
||||||
|
|||||||
@@ -1,19 +1,13 @@
|
|||||||
from typing import Any, Optional
|
from django.contrib.sites.models import Site
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
class FlatPage(models.Model):
|
class FlatPage(models.Model):
|
||||||
id: None
|
url: models.CharField = ...
|
||||||
url: str = ...
|
title: models.CharField = ...
|
||||||
title: str = ...
|
content: models.TextField = ...
|
||||||
content: str = ...
|
enable_comments: models.BooleanField = ...
|
||||||
enable_comments: bool = ...
|
template_name: models.CharField = ...
|
||||||
template_name: str = ...
|
registration_required: models.BooleanField = ...
|
||||||
registration_required: bool = ...
|
sites: models.ManyToManyField[Site, Site] = ...
|
||||||
sites: Any = ...
|
|
||||||
class Meta:
|
|
||||||
db_table: str = ...
|
|
||||||
verbose_name: Any = ...
|
|
||||||
verbose_name_plural: Any = ...
|
|
||||||
ordering: Any = ...
|
|
||||||
def get_absolute_url(self) -> str: ...
|
def get_absolute_url(self) -> str: ...
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
from typing import Optional
|
|
||||||
|
|
||||||
from django.contrib.sitemaps import Sitemap
|
from django.contrib.sitemaps import Sitemap
|
||||||
from django.db.models.query import QuerySet
|
|
||||||
|
|
||||||
class FlatPageSitemap(Sitemap):
|
class FlatPageSitemap(Sitemap): ...
|
||||||
def items(self) -> QuerySet: ...
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from datetime import date, datetime
|
from datetime import date, datetime as datetime
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
from typing import Any, Optional, Union
|
from typing import Any, Optional, Union
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
from .api import (
|
||||||
|
get_level as get_level,
|
||||||
|
set_level as set_level,
|
||||||
|
add_message as add_message,
|
||||||
|
debug as debug,
|
||||||
|
error as error,
|
||||||
|
success as success,
|
||||||
|
get_messages as get_messages,
|
||||||
|
MessageFailure as MessageFailure,
|
||||||
|
info as info,
|
||||||
|
warning as warning,
|
||||||
|
)
|
||||||
|
|
||||||
|
from .constants import (
|
||||||
|
DEBUG as DEBUG,
|
||||||
|
DEFAULT_LEVELS as DEFAULT_LEVELS,
|
||||||
|
DEFAULT_TAGS as DEFAULT_TAGS,
|
||||||
|
ERROR as ERROR,
|
||||||
|
INFO as INFO,
|
||||||
|
SUCCESS as SUCCESS,
|
||||||
|
WARNING as WARNING,
|
||||||
|
)
|
||||||
|
|
||||||
|
default_app_config: str = ...
|
||||||
|
|||||||
11
django-stubs/contrib/messages/constants.pyi
Normal file
11
django-stubs/contrib/messages/constants.pyi
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
from typing import Dict
|
||||||
|
|
||||||
|
DEBUG: int = ...
|
||||||
|
INFO: int = ...
|
||||||
|
SUCCESS: int = ...
|
||||||
|
WARNING: int = ...
|
||||||
|
ERROR: int = ...
|
||||||
|
|
||||||
|
DEFAULT_TAGS: Dict[int, str] = ...
|
||||||
|
|
||||||
|
DEFAULT_LEVELS: Dict[str, int] = ...
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
from django.core.handlers.wsgi import WSGIRequest
|
|
||||||
from django.http.request import HttpRequest
|
from django.http.request import HttpRequest
|
||||||
from django.http.response import HttpResponseBase
|
from django.http.response import HttpResponse
|
||||||
from django.utils.deprecation import MiddlewareMixin
|
from django.utils.deprecation import MiddlewareMixin
|
||||||
|
|
||||||
class MessageMiddleware(MiddlewareMixin):
|
class MessageMiddleware(MiddlewareMixin):
|
||||||
def process_request(self, request: WSGIRequest) -> None: ...
|
def process_request(self, request: HttpRequest) -> None: ...
|
||||||
def process_response(self, request: HttpRequest, response: HttpResponseBase) -> HttpResponseBase: ...
|
def process_response(self, request: HttpRequest, response: HttpResponse) -> HttpResponse: ...
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ class Message:
|
|||||||
def level_tag(self) -> str: ...
|
def level_tag(self) -> str: ...
|
||||||
|
|
||||||
class BaseStorage:
|
class BaseStorage:
|
||||||
request: Any = ...
|
request: HttpRequest = ...
|
||||||
used: bool = ...
|
used: bool = ...
|
||||||
added_new: bool = ...
|
added_new: bool = ...
|
||||||
def __init__(self, request: HttpRequest, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, request: HttpRequest, *args: Any, **kwargs: Any) -> None: ...
|
||||||
|
|||||||
@@ -1,49 +1,20 @@
|
|||||||
import json
|
import json
|
||||||
from typing import Any, Dict, List, Optional, Union
|
from typing import Any
|
||||||
|
|
||||||
from django.contrib.messages.storage.base import BaseStorage, Message
|
from django.contrib.messages.storage.base import BaseStorage
|
||||||
|
|
||||||
class MessageEncoder(json.JSONEncoder):
|
class MessageEncoder(json.JSONEncoder):
|
||||||
allow_nan: bool
|
allow_nan: bool
|
||||||
check_circular: bool
|
check_circular: bool
|
||||||
ensure_ascii: bool
|
ensure_ascii: bool
|
||||||
indent: None
|
|
||||||
item_separator: str
|
|
||||||
key_separator: str
|
|
||||||
skipkeys: bool
|
skipkeys: bool
|
||||||
sort_keys: bool
|
sort_keys: bool
|
||||||
message_key: str = ...
|
message_key: str = ...
|
||||||
def default(self, obj: Message) -> List[Union[int, str]]: ...
|
|
||||||
|
|
||||||
class MessageDecoder(json.JSONDecoder):
|
class MessageDecoder(json.JSONDecoder):
|
||||||
def process_messages(
|
def process_messages(self, obj: Any) -> Any: ...
|
||||||
self,
|
|
||||||
obj: Union[
|
|
||||||
Dict[
|
|
||||||
str, Union[List[Union[Dict[str, List[Union[int, str]]], List[Union[int, str]]]], List[Union[int, str]]]
|
|
||||||
],
|
|
||||||
List[Union[List[Union[int, str]], str]],
|
|
||||||
str,
|
|
||||||
],
|
|
||||||
) -> Union[
|
|
||||||
Dict[str, Union[List[Union[Dict[str, Message], Message]], Message]],
|
|
||||||
List[Union[Dict[str, Union[List[Union[Dict[str, Message], Message]], Message]], Message]],
|
|
||||||
List[Union[Message, str]],
|
|
||||||
Message,
|
|
||||||
str,
|
|
||||||
]: ...
|
|
||||||
def decode(
|
|
||||||
self, s: str, **kwargs: Any
|
|
||||||
) -> Union[
|
|
||||||
List[Union[Dict[str, Union[List[Union[Dict[str, Message], Message]], Message]], Message]],
|
|
||||||
List[Union[Message, str]],
|
|
||||||
Message,
|
|
||||||
]: ...
|
|
||||||
|
|
||||||
class CookieStorage(BaseStorage):
|
class CookieStorage(BaseStorage):
|
||||||
added_new: bool
|
|
||||||
request: WSGIRequest
|
|
||||||
used: bool
|
|
||||||
cookie_name: str = ...
|
cookie_name: str = ...
|
||||||
max_cookie_size: int = ...
|
max_cookie_size: int = ...
|
||||||
not_finished: str = ...
|
not_finished: str = ...
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
from typing import Any, Optional
|
from typing import Any
|
||||||
|
|
||||||
from django.contrib.messages.storage.base import BaseStorage
|
from django.contrib.messages.storage.base import BaseStorage
|
||||||
|
|
||||||
class FallbackStorage(BaseStorage):
|
class FallbackStorage(BaseStorage):
|
||||||
added_new: bool
|
|
||||||
request: WSGIRequest
|
|
||||||
used: bool
|
|
||||||
storage_classes: Any = ...
|
storage_classes: Any = ...
|
||||||
storages: Any = ...
|
storages: Any = ...
|
||||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
||||||
|
|||||||
@@ -1,15 +1,10 @@
|
|||||||
from typing import Any, List, Optional, Union
|
from typing import Any, List, Optional, Sequence, Union
|
||||||
|
|
||||||
from django.contrib.messages.storage.base import BaseStorage, Message
|
from django.contrib.messages.storage.base import BaseStorage
|
||||||
from django.http.request import HttpRequest
|
from django.http.request import HttpRequest
|
||||||
|
|
||||||
class SessionStorage(BaseStorage):
|
class SessionStorage(BaseStorage):
|
||||||
added_new: bool
|
|
||||||
request: WSGIRequest
|
|
||||||
used: bool
|
|
||||||
session_key: str = ...
|
session_key: str = ...
|
||||||
def __init__(self, request: HttpRequest, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, request: HttpRequest, *args: Any, **kwargs: Any) -> None: ...
|
||||||
def serialize_messages(self, messages: Union[List[Message], List[str]]) -> str: ...
|
def serialize_messages(self, messages: Sequence[Any]) -> str: ...
|
||||||
def deserialize_messages(
|
def deserialize_messages(self, data: Optional[Union[List[Any], str]]) -> Optional[List[Any]]: ...
|
||||||
self, data: Optional[Union[List[Any], str]]
|
|
||||||
) -> Optional[Union[List[Message], List[str]]]: ...
|
|
||||||
|
|||||||
@@ -8,3 +8,4 @@ from .ranges import (
|
|||||||
DateRangeField as DateRangeField,
|
DateRangeField as DateRangeField,
|
||||||
DateTimeRangeField as DateTimeRangeField,
|
DateTimeRangeField as DateTimeRangeField,
|
||||||
)
|
)
|
||||||
|
from .hstore import HStoreField as HStoreField
|
||||||
|
|||||||
@@ -1,34 +1,51 @@
|
|||||||
from typing import Any, Dict, List, Optional, Tuple, Union, TypeVar, Generic, Sequence
|
from typing import Any, Iterable, List, Optional, Sequence, TypeVar, Union
|
||||||
|
|
||||||
|
from django.db.models.expressions import Combinable
|
||||||
|
from django.db.models.fields import Field, _ErrorMessagesToOverride, _FieldChoices, _ValidatorCallable
|
||||||
|
|
||||||
from django.db.models.fields import Field
|
|
||||||
from .mixins import CheckFieldDefaultMixin
|
from .mixins import CheckFieldDefaultMixin
|
||||||
|
|
||||||
_T = TypeVar("_T", bound=Field)
|
# __set__ value type
|
||||||
|
_ST = TypeVar("_ST")
|
||||||
|
# __get__ return type
|
||||||
|
_GT = TypeVar("_GT")
|
||||||
|
|
||||||
|
class ArrayField(CheckFieldDefaultMixin, Field[_ST, _GT]):
|
||||||
|
_pyi_private_set_type: Union[Sequence[Any], Combinable]
|
||||||
|
_pyi_private_get_type: List[Any]
|
||||||
|
|
||||||
class ArrayField(CheckFieldDefaultMixin, Field, Generic[_T]):
|
|
||||||
empty_strings_allowed: bool = ...
|
empty_strings_allowed: bool = ...
|
||||||
default_error_messages: Any = ...
|
default_error_messages: Any = ...
|
||||||
base_field: Any = ...
|
base_field: Any = ...
|
||||||
size: Any = ...
|
size: Any = ...
|
||||||
default_validators: Any = ...
|
default_validators: Any = ...
|
||||||
from_db_value: Any = ...
|
from_db_value: Any = ...
|
||||||
def __init__(self, base_field: _T, size: None = ..., **kwargs: Any) -> None: ...
|
def __init__(
|
||||||
@property
|
self,
|
||||||
def model(self): ...
|
base_field: Field,
|
||||||
@model.setter
|
size: Optional[int] = ...,
|
||||||
def model(self, model: Any) -> None: ...
|
verbose_name: Optional[Union[str, bytes]] = ...,
|
||||||
def check(self, **kwargs: Any) -> List[Any]: ...
|
name: Optional[str] = ...,
|
||||||
def set_attributes_from_name(self, name: str) -> None: ...
|
primary_key: bool = ...,
|
||||||
|
max_length: Optional[int] = ...,
|
||||||
|
unique: bool = ...,
|
||||||
|
blank: bool = ...,
|
||||||
|
null: bool = ...,
|
||||||
|
db_index: bool = ...,
|
||||||
|
default: Any = ...,
|
||||||
|
editable: bool = ...,
|
||||||
|
auto_created: bool = ...,
|
||||||
|
serialize: bool = ...,
|
||||||
|
unique_for_date: Optional[str] = ...,
|
||||||
|
unique_for_month: Optional[str] = ...,
|
||||||
|
unique_for_year: Optional[str] = ...,
|
||||||
|
choices: Optional[_FieldChoices] = ...,
|
||||||
|
help_text: str = ...,
|
||||||
|
db_column: Optional[str] = ...,
|
||||||
|
db_tablespace: Optional[str] = ...,
|
||||||
|
validators: Iterable[_ValidatorCallable] = ...,
|
||||||
|
error_messages: Optional[_ErrorMessagesToOverride] = ...,
|
||||||
|
) -> None: ...
|
||||||
@property
|
@property
|
||||||
def description(self): ...
|
def description(self): ...
|
||||||
def db_type(self, connection: Any): ...
|
|
||||||
def get_db_prep_value(self, value: Any, connection: Any, prepared: bool = ...): ...
|
|
||||||
def deconstruct(self) -> Tuple[None, str, List[Any], Dict[str, Optional[Union[bool, Field]]]]: ...
|
|
||||||
def to_python(self, value: Any): ...
|
|
||||||
def value_to_string(self, obj: Any): ...
|
|
||||||
def get_transform(self, name: Any): ...
|
def get_transform(self, name: Any): ...
|
||||||
def validate(self, value: Any, model_instance: Any) -> None: ...
|
|
||||||
def run_validators(self, value: Any) -> None: ...
|
|
||||||
def formfield(self, **kwargs: Any): ...
|
|
||||||
def __set__(self, instance, value: Sequence[_T]): ...
|
|
||||||
def __get__(self, instance, owner) -> List[_T]: ...
|
|
||||||
|
|||||||
17
django-stubs/contrib/postgres/fields/hstore.pyi
Normal file
17
django-stubs/contrib/postgres/fields/hstore.pyi
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from django.db.models import Field, Transform
|
||||||
|
from .mixins import CheckFieldDefaultMixin
|
||||||
|
|
||||||
|
class HStoreField(CheckFieldDefaultMixin, Field):
|
||||||
|
def get_transform(self, name) -> Any: ...
|
||||||
|
|
||||||
|
class KeyTransform(Transform):
|
||||||
|
def __init__(self, key_name: str, *args: Any, **kwargs: Any): ...
|
||||||
|
|
||||||
|
class KeyTransformFactory:
|
||||||
|
def __init__(self, key_name: str): ...
|
||||||
|
def __call__(self, *args, **kwargs) -> KeyTransform: ...
|
||||||
|
|
||||||
|
class KeysTransform(Transform): ...
|
||||||
|
class ValuesTransform(Transform): ...
|
||||||
@@ -2,46 +2,27 @@ from typing import Any
|
|||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
|
from psycopg2.extras import DateRange, DateTimeTZRange, NumericRange # type: ignore
|
||||||
|
|
||||||
class RangeField(models.Field):
|
class RangeField(models.Field):
|
||||||
empty_strings_allowed: bool = ...
|
empty_strings_allowed: bool = ...
|
||||||
base_field: Any = ...
|
base_field: Any = ...
|
||||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
range_type: Any = ...
|
||||||
@property
|
|
||||||
def model(self): ...
|
|
||||||
@model.setter
|
|
||||||
def model(self, model: Any) -> None: ...
|
|
||||||
def get_prep_value(self, value: Any): ...
|
def get_prep_value(self, value: Any): ...
|
||||||
def to_python(self, value: Any): ...
|
def to_python(self, value: Any): ...
|
||||||
def set_attributes_from_name(self, name: str) -> None: ...
|
|
||||||
def value_to_string(self, obj: Any): ...
|
def value_to_string(self, obj: Any): ...
|
||||||
def formfield(self, **kwargs: Any): ...
|
|
||||||
|
|
||||||
class IntegerRangeField(RangeField):
|
class IntegerRangeField(RangeField):
|
||||||
base_field: Any = ...
|
def __get__(self, instance, owner) -> NumericRange: ...
|
||||||
range_type: Any = ...
|
|
||||||
form_field: Any = ...
|
|
||||||
def db_type(self, connection: Any): ...
|
|
||||||
|
|
||||||
class BigIntegerRangeField(RangeField):
|
class BigIntegerRangeField(RangeField):
|
||||||
base_field: Any = ...
|
def __get__(self, instance, owner) -> NumericRange: ...
|
||||||
range_type: Any = ...
|
|
||||||
form_field: Any = ...
|
|
||||||
def db_type(self, connection: Any): ...
|
|
||||||
|
|
||||||
class FloatRangeField(RangeField):
|
class FloatRangeField(RangeField):
|
||||||
base_field: Any = ...
|
def __get__(self, instance, owner) -> NumericRange: ...
|
||||||
range_type: Any = ...
|
|
||||||
form_field: Any = ...
|
|
||||||
def db_type(self, connection: Any): ...
|
|
||||||
|
|
||||||
class DateTimeRangeField(RangeField):
|
class DateTimeRangeField(RangeField):
|
||||||
base_field: Any = ...
|
def __get__(self, instance, owner) -> DateTimeTZRange: ...
|
||||||
range_type: Any = ...
|
|
||||||
form_field: Any = ...
|
|
||||||
def db_type(self, connection: Any): ...
|
|
||||||
|
|
||||||
class DateRangeField(RangeField):
|
class DateRangeField(RangeField):
|
||||||
base_field: Any = ...
|
def __get__(self, instance, owner) -> DateRange: ...
|
||||||
range_type: Any = ...
|
|
||||||
form_field: Any = ...
|
|
||||||
def db_type(self, connection: Any): ...
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
from django.http.request import HttpRequest
|
||||||
from django.http.response import HttpResponse
|
from django.http.response import HttpResponse
|
||||||
from django.utils.deprecation import MiddlewareMixin
|
from django.utils.deprecation import MiddlewareMixin
|
||||||
|
|
||||||
class RedirectFallbackMiddleware(MiddlewareMixin):
|
class RedirectFallbackMiddleware(MiddlewareMixin):
|
||||||
response_gone_class: Any = ...
|
response_gone_class: Any = ...
|
||||||
response_redirect_class: Any = ...
|
response_redirect_class: Any = ...
|
||||||
def process_response(self, request: WSGIRequest, response: HttpResponse) -> HttpResponse: ...
|
def process_response(self, request: HttpRequest, response: HttpResponse) -> HttpResponse: ...
|
||||||
|
|||||||
@@ -1,16 +1,6 @@
|
|||||||
from typing import Any, Optional
|
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
class Redirect(models.Model):
|
class Redirect(models.Model):
|
||||||
id: None
|
site: models.ForeignKey = ...
|
||||||
site_id: int
|
old_path: models.CharField = ...
|
||||||
site: Any = ...
|
new_path: models.CharField = ...
|
||||||
old_path: str = ...
|
|
||||||
new_path: str = ...
|
|
||||||
class Meta:
|
|
||||||
verbose_name: Any = ...
|
|
||||||
verbose_name_plural: Any = ...
|
|
||||||
db_table: str = ...
|
|
||||||
unique_together: Any = ...
|
|
||||||
ordering: Any = ...
|
|
||||||
|
|||||||
@@ -1,33 +1,23 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Any, Dict, Optional, Union
|
from typing import Any, Dict, Optional, Union
|
||||||
|
|
||||||
from django.db.models.base import Model
|
|
||||||
|
|
||||||
VALID_KEY_CHARS: Any
|
VALID_KEY_CHARS: Any
|
||||||
|
|
||||||
class CreateError(Exception): ...
|
class CreateError(Exception): ...
|
||||||
class UpdateError(Exception): ...
|
class UpdateError(Exception): ...
|
||||||
|
|
||||||
class SessionBase:
|
class SessionBase(Dict[str, Any]):
|
||||||
TEST_COOKIE_NAME: str = ...
|
TEST_COOKIE_NAME: str = ...
|
||||||
TEST_COOKIE_VALUE: str = ...
|
TEST_COOKIE_VALUE: str = ...
|
||||||
accessed: bool = ...
|
accessed: bool = ...
|
||||||
modified: bool = ...
|
modified: bool = ...
|
||||||
serializer: Any = ...
|
serializer: Any = ...
|
||||||
def __init__(self, session_key: Optional[str] = ...) -> None: ...
|
def __init__(self, session_key: Optional[str] = ...) -> None: ...
|
||||||
def __contains__(self, key: str) -> bool: ...
|
|
||||||
def __getitem__(self, key: str) -> Any: ...
|
|
||||||
def __setitem__(self, key: str, value: Any) -> None: ...
|
|
||||||
def __delitem__(self, key: str) -> None: ...
|
|
||||||
def get(self, key: str, default: Optional[str] = ...) -> Any: ...
|
|
||||||
def pop(self, key: str, default: Any = ...) -> Any: ...
|
|
||||||
def setdefault(self, key: str, value: str) -> str: ...
|
|
||||||
def set_test_cookie(self) -> None: ...
|
def set_test_cookie(self) -> None: ...
|
||||||
def test_cookie_worked(self) -> bool: ...
|
def test_cookie_worked(self) -> bool: ...
|
||||||
def delete_test_cookie(self) -> None: ...
|
def delete_test_cookie(self) -> None: ...
|
||||||
def encode(self, session_dict: Dict[str, Model]) -> str: ...
|
def encode(self, session_dict: Dict[str, Any]) -> str: ...
|
||||||
def decode(self, session_data: Union[bytes, str]) -> Dict[str, Model]: ...
|
def decode(self, session_data: Union[bytes, str]) -> Dict[str, Any]: ...
|
||||||
def update(self, dict_: Dict[str, int]) -> None: ...
|
|
||||||
def has_key(self, key: Any): ...
|
def has_key(self, key: Any): ...
|
||||||
def keys(self): ...
|
def keys(self): ...
|
||||||
def values(self): ...
|
def values(self): ...
|
||||||
@@ -41,10 +31,10 @@ class SessionBase:
|
|||||||
def get_expire_at_browser_close(self) -> bool: ...
|
def get_expire_at_browser_close(self) -> bool: ...
|
||||||
def flush(self) -> None: ...
|
def flush(self) -> None: ...
|
||||||
def cycle_key(self) -> None: ...
|
def cycle_key(self) -> None: ...
|
||||||
def exists(self, session_key: Any) -> None: ...
|
def exists(self, session_key: str) -> bool: ...
|
||||||
def create(self) -> None: ...
|
def create(self) -> None: ...
|
||||||
def save(self, must_create: bool = ...) -> None: ...
|
def save(self, must_create: bool = ...) -> None: ...
|
||||||
def delete(self, session_key: Optional[Any] = ...) -> None: ...
|
def delete(self, session_key: Optional[Any] = ...) -> None: ...
|
||||||
def load(self) -> None: ...
|
def load(self) -> Dict[str, Any]: ...
|
||||||
@classmethod
|
@classmethod
|
||||||
def clear_expired(cls) -> None: ...
|
def clear_expired(cls) -> None: ...
|
||||||
|
|||||||
@@ -1,23 +1,11 @@
|
|||||||
from typing import Any, Dict, Optional
|
from typing import Any, Optional
|
||||||
|
|
||||||
from django.contrib.sessions.backends.base import SessionBase
|
from django.contrib.sessions.backends.base import SessionBase
|
||||||
|
|
||||||
from django.contrib.sessions.serializers import JSONSerializer
|
|
||||||
|
|
||||||
KEY_PREFIX: str
|
KEY_PREFIX: str
|
||||||
|
|
||||||
class SessionStore(SessionBase):
|
class SessionStore(SessionBase):
|
||||||
accessed: bool
|
|
||||||
serializer: JSONSerializer
|
|
||||||
cache_key_prefix: Any = ...
|
cache_key_prefix: Any = ...
|
||||||
def __init__(self, session_key: Optional[str] = ...) -> None: ...
|
def __init__(self, session_key: Optional[str] = ...) -> None: ...
|
||||||
@property
|
@property
|
||||||
def cache_key(self) -> str: ...
|
def cache_key(self) -> str: ...
|
||||||
def load(self) -> Dict[str, str]: ...
|
|
||||||
modified: bool = ...
|
|
||||||
def create(self) -> None: ...
|
|
||||||
def save(self, must_create: bool = ...) -> None: ...
|
|
||||||
def exists(self, session_key: Optional[str]) -> bool: ...
|
|
||||||
def delete(self, session_key: Optional[str] = ...) -> None: ...
|
|
||||||
@classmethod
|
|
||||||
def clear_expired(cls) -> None: ...
|
|
||||||
|
|||||||
@@ -1,19 +1,11 @@
|
|||||||
from typing import Any, Dict, Optional
|
from typing import Any, Optional
|
||||||
|
|
||||||
from django.contrib.sessions.backends.db import SessionStore as DBStore
|
from django.contrib.sessions.backends.db import SessionStore as DBStore
|
||||||
|
|
||||||
KEY_PREFIX: str
|
KEY_PREFIX: str
|
||||||
|
|
||||||
class SessionStore(DBStore):
|
class SessionStore(DBStore):
|
||||||
accessed: bool
|
|
||||||
modified: bool
|
|
||||||
serializer: Type[django.core.signing.JSONSerializer]
|
|
||||||
cache_key_prefix: Any = ...
|
cache_key_prefix: Any = ...
|
||||||
def __init__(self, session_key: Optional[str] = ...) -> None: ...
|
def __init__(self, session_key: Optional[str] = ...) -> None: ...
|
||||||
@property
|
@property
|
||||||
def cache_key(self) -> str: ...
|
def cache_key(self) -> str: ...
|
||||||
def load(self) -> Dict[str, str]: ...
|
|
||||||
def exists(self, session_key: Optional[str]) -> bool: ...
|
|
||||||
def save(self, must_create: bool = ...) -> None: ...
|
|
||||||
def delete(self, session_key: Optional[str] = ...) -> None: ...
|
|
||||||
def flush(self) -> None: ...
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, Dict, Optional, Type, Union
|
from typing import Dict, Optional, Type
|
||||||
|
|
||||||
from django.contrib.sessions.backends.base import SessionBase
|
from django.contrib.sessions.backends.base import SessionBase
|
||||||
from django.contrib.sessions.base_session import AbstractBaseSession
|
from django.contrib.sessions.base_session import AbstractBaseSession
|
||||||
@@ -6,18 +6,8 @@ from django.contrib.sessions.models import Session
|
|||||||
from django.db.models.base import Model
|
from django.db.models.base import Model
|
||||||
|
|
||||||
class SessionStore(SessionBase):
|
class SessionStore(SessionBase):
|
||||||
accessed: bool
|
|
||||||
serializer: Type[django.core.signing.JSONSerializer]
|
|
||||||
def __init__(self, session_key: Optional[str] = ...) -> None: ...
|
def __init__(self, session_key: Optional[str] = ...) -> None: ...
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_model_class(cls) -> Type[Session]: ...
|
def get_model_class(cls) -> Type[Session]: ...
|
||||||
def model(self) -> Type[AbstractBaseSession]: ...
|
def model(self) -> Type[AbstractBaseSession]: ...
|
||||||
def load(self) -> Dict[str, Union[Model, int, str]]: ...
|
|
||||||
def exists(self, session_key: Optional[str]) -> bool: ...
|
|
||||||
modified: bool = ...
|
|
||||||
def create(self) -> None: ...
|
|
||||||
def create_model_instance(self, data: Dict[str, Model]) -> AbstractBaseSession: ...
|
def create_model_instance(self, data: Dict[str, Model]) -> AbstractBaseSession: ...
|
||||||
def save(self, must_create: bool = ...) -> None: ...
|
|
||||||
def delete(self, session_key: Optional[str] = ...) -> None: ...
|
|
||||||
@classmethod
|
|
||||||
def clear_expired(cls) -> None: ...
|
|
||||||
|
|||||||
@@ -1,19 +1,9 @@
|
|||||||
from typing import Any, Dict, Optional, Union
|
from typing import Optional
|
||||||
|
|
||||||
from django.contrib.sessions.backends.base import SessionBase
|
from django.contrib.sessions.backends.base import SessionBase
|
||||||
|
|
||||||
class SessionStore(SessionBase):
|
class SessionStore(SessionBase):
|
||||||
accessed: bool
|
|
||||||
serializer: Type[django.core.signing.JSONSerializer]
|
|
||||||
storage_path: str = ...
|
storage_path: str = ...
|
||||||
file_prefix: str = ...
|
file_prefix: str = ...
|
||||||
def __init__(self, session_key: Optional[str] = ...) -> None: ...
|
def __init__(self, session_key: Optional[str] = ...) -> None: ...
|
||||||
def load(self) -> Dict[str, Union[int, str]]: ...
|
|
||||||
modified: bool = ...
|
|
||||||
def create(self) -> None: ...
|
|
||||||
def save(self, must_create: bool = ...) -> None: ...
|
|
||||||
def exists(self, session_key: Optional[str]) -> bool: ...
|
|
||||||
def delete(self, session_key: Optional[str] = ...) -> None: ...
|
|
||||||
def clean(self) -> None: ...
|
def clean(self) -> None: ...
|
||||||
@classmethod
|
|
||||||
def clear_expired(cls) -> None: ...
|
|
||||||
|
|||||||
@@ -1,17 +1,3 @@
|
|||||||
from datetime import datetime
|
|
||||||
from typing import Any, Dict, Optional, Union
|
|
||||||
|
|
||||||
from django.contrib.sessions.backends.base import SessionBase
|
from django.contrib.sessions.backends.base import SessionBase
|
||||||
|
|
||||||
class SessionStore(SessionBase):
|
class SessionStore(SessionBase): ...
|
||||||
accessed: bool
|
|
||||||
serializer: Type[django.core.signing.JSONSerializer]
|
|
||||||
def load(self) -> Dict[str, Union[datetime, str]]: ...
|
|
||||||
modified: bool = ...
|
|
||||||
def create(self) -> None: ...
|
|
||||||
def save(self, must_create: bool = ...) -> None: ...
|
|
||||||
def exists(self, session_key: Optional[str] = ...) -> bool: ...
|
|
||||||
def delete(self, session_key: Optional[str] = ...) -> None: ...
|
|
||||||
def cycle_key(self) -> None: ...
|
|
||||||
@classmethod
|
|
||||||
def clear_expired(cls) -> None: ...
|
|
||||||
|
|||||||
@@ -1,24 +1,19 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Any, Dict, Optional
|
from typing import Any, Dict, Optional, Type
|
||||||
|
|
||||||
|
from django.contrib.sessions.backends.base import SessionBase
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
class BaseSessionManager(models.Manager):
|
class BaseSessionManager(models.Manager):
|
||||||
creation_counter: int
|
|
||||||
model: None
|
|
||||||
name: None
|
|
||||||
def encode(self, session_dict: Dict[str, int]) -> str: ...
|
def encode(self, session_dict: Dict[str, int]) -> str: ...
|
||||||
def save(self, session_key: str, session_dict: Dict[str, int], expire_date: datetime) -> AbstractBaseSession: ...
|
def save(self, session_key: str, session_dict: Dict[str, int], expire_date: datetime) -> AbstractBaseSession: ...
|
||||||
|
|
||||||
class AbstractBaseSession(models.Model):
|
class AbstractBaseSession(models.Model):
|
||||||
session_key: Any = ...
|
expire_date: datetime
|
||||||
session_data: Any = ...
|
session_data: str
|
||||||
expire_date: Any = ...
|
session_key: str
|
||||||
objects: Any = ...
|
objects: Any = ...
|
||||||
class Meta:
|
|
||||||
abstract: bool = ...
|
|
||||||
verbose_name: Any = ...
|
|
||||||
verbose_name_plural: Any = ...
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_session_store_class(cls) -> None: ...
|
def get_session_store_class(cls) -> Optional[Type[SessionBase]]: ...
|
||||||
def get_decoded(self) -> Dict[str, int]: ...
|
def get_decoded(self) -> Dict[str, int]: ...
|
||||||
|
|||||||
@@ -1,10 +1,3 @@
|
|||||||
from typing import Any, Optional
|
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand): ...
|
||||||
stderr: django.core.management.base.OutputWrapper
|
|
||||||
stdout: django.core.management.base.OutputWrapper
|
|
||||||
style: django.core.management.color.Style
|
|
||||||
help: str = ...
|
|
||||||
def handle(self, **options: Any) -> None: ...
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
from typing import Type
|
from typing import Type
|
||||||
|
|
||||||
from django.contrib.sessions.backends.base import SessionBase
|
from django.contrib.sessions.backends.base import SessionBase
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
|
||||||
from django.http.request import HttpRequest
|
from django.http.request import HttpRequest
|
||||||
from django.http.response import HttpResponse
|
from django.http.response import HttpResponse
|
||||||
from django.utils.deprecation import MiddlewareMixin
|
from django.utils.deprecation import MiddlewareMixin
|
||||||
@@ -9,4 +8,4 @@ from django.utils.deprecation import MiddlewareMixin
|
|||||||
class SessionMiddleware(MiddlewareMixin):
|
class SessionMiddleware(MiddlewareMixin):
|
||||||
SessionStore: Type[SessionBase] = ...
|
SessionStore: Type[SessionBase] = ...
|
||||||
def process_request(self, request: HttpRequest) -> None: ...
|
def process_request(self, request: HttpRequest) -> None: ...
|
||||||
def process_response(self, request: WSGIRequest, response: HttpResponse) -> HttpResponse: ...
|
def process_response(self, request: HttpRequest, response: HttpResponse) -> HttpResponse: ...
|
||||||
|
|||||||
@@ -1,20 +1,4 @@
|
|||||||
from typing import Any, Optional, Type
|
|
||||||
|
|
||||||
from django.contrib.sessions.backends.db import SessionStore
|
|
||||||
from django.contrib.sessions.base_session import AbstractBaseSession, BaseSessionManager
|
from django.contrib.sessions.base_session import AbstractBaseSession, BaseSessionManager
|
||||||
|
|
||||||
class SessionManager(BaseSessionManager):
|
class SessionManager(BaseSessionManager): ...
|
||||||
creation_counter: int
|
class Session(AbstractBaseSession): ...
|
||||||
model: None
|
|
||||||
name: None
|
|
||||||
use_in_migrations: bool = ...
|
|
||||||
|
|
||||||
class Session(AbstractBaseSession):
|
|
||||||
expire_date: datetime.datetime
|
|
||||||
session_data: str
|
|
||||||
session_key: str
|
|
||||||
objects: Any = ...
|
|
||||||
@classmethod
|
|
||||||
def get_session_store_class(cls) -> Type[SessionStore]: ...
|
|
||||||
class Meta(AbstractBaseSession.Meta):
|
|
||||||
db_table: str = ...
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, Dict, Optional
|
from typing import Dict
|
||||||
|
|
||||||
from django.core.signing import JSONSerializer as BaseJSONSerializer
|
from django.core.signing import JSONSerializer as BaseJSONSerializer
|
||||||
from django.db.models.base import Model
|
from django.db.models.base import Model
|
||||||
|
|||||||
@@ -11,25 +11,24 @@ PING_URL: str
|
|||||||
|
|
||||||
class SitemapNotFound(Exception): ...
|
class SitemapNotFound(Exception): ...
|
||||||
|
|
||||||
def ping_google(sitemap_url: None = ..., ping_url: str = ...) -> None: ...
|
def ping_google(sitemap_url: Optional[str] = ..., ping_url: str = ...) -> None: ...
|
||||||
|
|
||||||
class Sitemap:
|
class Sitemap:
|
||||||
limit: int = ...
|
limit: int = ...
|
||||||
protocol: Any = ...
|
protocol: Optional[str] = ...
|
||||||
def items(self) -> List[Any]: ...
|
def items(self) -> List[Any]: ...
|
||||||
def location(self, obj: Model) -> str: ...
|
def location(self, obj: Model) -> str: ...
|
||||||
@property
|
@property
|
||||||
def paginator(self) -> Paginator: ...
|
def paginator(self) -> Paginator: ...
|
||||||
def get_urls(
|
def get_urls(
|
||||||
self, page: Union[int, str] = ..., site: Optional[Union[Site, RequestSite]] = ..., protocol: Optional[str] = ...
|
self, page: Union[int, str] = ..., site: Optional[Union[Site, RequestSite]] = ..., protocol: Optional[str] = ...
|
||||||
) -> List[Dict[str, Optional[Union[datetime, Model, str]]]]: ...
|
) -> List[Dict[str, Any]]: ...
|
||||||
|
|
||||||
class GenericSitemap(Sitemap):
|
class GenericSitemap(Sitemap):
|
||||||
priority: None = ...
|
priority: Optional[float] = ...
|
||||||
changefreq: None = ...
|
changefreq: Optional[str] = ...
|
||||||
queryset: QuerySet = ...
|
queryset: QuerySet = ...
|
||||||
date_field: None = ...
|
date_field: None = ...
|
||||||
protocol: None = ...
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
info_dict: Dict[str, Union[datetime, QuerySet, str]],
|
info_dict: Dict[str, Union[datetime, QuerySet, str]],
|
||||||
@@ -37,7 +36,6 @@ class GenericSitemap(Sitemap):
|
|||||||
changefreq: Optional[str] = ...,
|
changefreq: Optional[str] = ...,
|
||||||
protocol: Optional[str] = ...,
|
protocol: Optional[str] = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def items(self) -> QuerySet: ...
|
|
||||||
def lastmod(self, item: Model) -> Optional[datetime]: ...
|
def lastmod(self, item: Model) -> Optional[datetime]: ...
|
||||||
|
|
||||||
default_app_config: str
|
default_app_config: str
|
||||||
|
|||||||
@@ -1,20 +1,21 @@
|
|||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from typing import Any, Callable, Dict, Optional, Type, Union
|
from typing import Callable, Dict, Optional, Type, Union
|
||||||
|
|
||||||
|
from django.http.request import HttpRequest
|
||||||
|
from django.template.response import TemplateResponse
|
||||||
|
|
||||||
from django.contrib.sitemaps import GenericSitemap, Sitemap
|
from django.contrib.sitemaps import GenericSitemap, Sitemap
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
|
||||||
from django.template.response import TemplateResponse
|
|
||||||
|
|
||||||
def x_robots_tag(func: Callable) -> Callable: ...
|
def x_robots_tag(func: Callable) -> Callable: ...
|
||||||
def index(
|
def index(
|
||||||
request: WSGIRequest,
|
request: HttpRequest,
|
||||||
sitemaps: Dict[str, Union[Type[Sitemap], Sitemap]],
|
sitemaps: Dict[str, Union[Type[Sitemap], Sitemap]],
|
||||||
template_name: str = ...,
|
template_name: str = ...,
|
||||||
content_type: str = ...,
|
content_type: str = ...,
|
||||||
sitemap_url_name: str = ...,
|
sitemap_url_name: str = ...,
|
||||||
) -> TemplateResponse: ...
|
) -> TemplateResponse: ...
|
||||||
def sitemap(
|
def sitemap(
|
||||||
request: WSGIRequest,
|
request: HttpRequest,
|
||||||
sitemaps: Union[Dict[str, Type[Sitemap]], Dict[str, GenericSitemap], OrderedDict],
|
sitemaps: Union[Dict[str, Type[Sitemap]], Dict[str, GenericSitemap], OrderedDict],
|
||||||
section: Optional[str] = ...,
|
section: Optional[str] = ...,
|
||||||
template_name: str = ...,
|
template_name: str = ...,
|
||||||
|
|||||||
@@ -1,14 +1,3 @@
|
|||||||
from typing import Any
|
|
||||||
|
|
||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
|
||||||
class SitesConfig(AppConfig):
|
class SitesConfig(AppConfig): ...
|
||||||
apps: None
|
|
||||||
label: str
|
|
||||||
models: None
|
|
||||||
models_module: None
|
|
||||||
module: Any
|
|
||||||
path: str
|
|
||||||
name: str = ...
|
|
||||||
verbose_name: Any = ...
|
|
||||||
def ready(self) -> None: ...
|
|
||||||
|
|||||||
@@ -7,24 +7,14 @@ from django.db import models
|
|||||||
SITE_CACHE: Any
|
SITE_CACHE: Any
|
||||||
|
|
||||||
class SiteManager(models.Manager):
|
class SiteManager(models.Manager):
|
||||||
creation_counter: int
|
|
||||||
model: None
|
|
||||||
name: None
|
|
||||||
use_in_migrations: bool = ...
|
|
||||||
def get_current(self, request: Optional[HttpRequest] = ...) -> Site: ...
|
def get_current(self, request: Optional[HttpRequest] = ...) -> Site: ...
|
||||||
def clear_cache(self) -> None: ...
|
def clear_cache(self) -> None: ...
|
||||||
def get_by_natural_key(self, domain: str) -> Site: ...
|
def get_by_natural_key(self, domain: str) -> Site: ...
|
||||||
|
|
||||||
class Site(models.Model):
|
class Site(models.Model):
|
||||||
id: int
|
domain: models.CharField = ...
|
||||||
domain: str = ...
|
name: models.CharField = ...
|
||||||
name: str = ...
|
objects: SiteManager = ...
|
||||||
objects: Any = ...
|
|
||||||
class Meta:
|
|
||||||
db_table: str = ...
|
|
||||||
verbose_name: Any = ...
|
|
||||||
verbose_name_plural: Any = ...
|
|
||||||
ordering: Any = ...
|
|
||||||
def natural_key(self) -> Tuple[str]: ...
|
def natural_key(self) -> Tuple[str]: ...
|
||||||
|
|
||||||
def clear_site_cache(sender: Type[Site], **kwargs: Any) -> None: ...
|
def clear_site_cache(sender: Type[Site], **kwargs: Any) -> None: ...
|
||||||
|
|||||||
@@ -1,15 +1,6 @@
|
|||||||
from typing import Any, Optional
|
from typing import Any
|
||||||
|
|
||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
|
||||||
class StaticFilesConfig(AppConfig):
|
class StaticFilesConfig(AppConfig):
|
||||||
apps: None
|
|
||||||
label: str
|
|
||||||
models: None
|
|
||||||
models_module: None
|
|
||||||
module: Any
|
|
||||||
path: str
|
|
||||||
name: str = ...
|
|
||||||
verbose_name: Any = ...
|
|
||||||
ignore_patterns: Any = ...
|
ignore_patterns: Any = ...
|
||||||
def ready(self) -> None: ...
|
|
||||||
|
|||||||
@@ -1,45 +1,43 @@
|
|||||||
from typing import Any, Iterator, List, Optional, Tuple, Union
|
from typing import Any, Iterable, Iterator, List, Mapping, Optional, Union, overload
|
||||||
|
|
||||||
from django.contrib.staticfiles.storage import StaticFilesStorage
|
|
||||||
from django.core.checks.messages import Error
|
from django.core.checks.messages import Error
|
||||||
from django.core.files.storage import DefaultStorage, FileSystemStorage
|
from django.core.files.storage import Storage
|
||||||
|
from typing_extensions import Literal
|
||||||
|
|
||||||
searched_locations: Any
|
searched_locations: Any
|
||||||
|
|
||||||
class BaseFinder:
|
class BaseFinder:
|
||||||
def check(self, **kwargs: Any) -> Any: ...
|
def check(self, **kwargs: Any) -> List[Error]: ...
|
||||||
def find(self, path: Any, all: bool = ...) -> None: ...
|
def find(self, path: str, all: bool = ...) -> Optional[Any]: ...
|
||||||
def list(self, ignore_patterns: Any) -> None: ...
|
def list(self, ignore_patterns: Any) -> Iterable[Any]: ...
|
||||||
|
|
||||||
class FileSystemFinder(BaseFinder):
|
class FileSystemFinder(BaseFinder):
|
||||||
locations: List[Any] = ...
|
locations: List[Any] = ...
|
||||||
storages: collections.OrderedDict = ...
|
storages: Mapping[str, Any] = ...
|
||||||
def __init__(self, app_names: None = ..., *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, app_names: None = ..., *args: Any, **kwargs: Any) -> None: ...
|
||||||
def check(self, **kwargs: Any) -> List[Error]: ...
|
|
||||||
def find(self, path: str, all: bool = ...) -> Union[List[str], str]: ...
|
|
||||||
def find_location(self, root: str, path: str, prefix: str = ...) -> Optional[str]: ...
|
def find_location(self, root: str, path: str, prefix: str = ...) -> Optional[str]: ...
|
||||||
def list(self, ignore_patterns: List[str]) -> Iterator[Tuple[str, FileSystemStorage]]: ...
|
|
||||||
|
|
||||||
class AppDirectoriesFinder(BaseFinder):
|
class AppDirectoriesFinder(BaseFinder):
|
||||||
storage_class: Any = ...
|
storage_class: Any = ...
|
||||||
source_dir: str = ...
|
source_dir: str = ...
|
||||||
apps: List[str] = ...
|
apps: List[str] = ...
|
||||||
storages: collections.OrderedDict = ...
|
storages: Mapping[str, Any] = ...
|
||||||
def __init__(self, app_names: None = ..., *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, app_names: None = ..., *args: Any, **kwargs: Any) -> None: ...
|
||||||
def list(self, ignore_patterns: List[str]) -> Iterator[Tuple[str, FileSystemStorage]]: ...
|
|
||||||
def find(self, path: str, all: bool = ...) -> Union[List[str], str]: ...
|
|
||||||
def find_in_app(self, app: str, path: str) -> Optional[str]: ...
|
def find_in_app(self, app: str, path: str) -> Optional[str]: ...
|
||||||
|
|
||||||
class BaseStorageFinder(BaseFinder):
|
class BaseStorageFinder(BaseFinder):
|
||||||
storage: Any = ...
|
storage: Storage = ...
|
||||||
def __init__(self, storage: Optional[StaticFilesStorage] = ..., *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, storage: Optional[Storage] = ..., *args: Any, **kwargs: Any) -> None: ...
|
||||||
def find(self, path: str, all: bool = ...) -> Union[List[str], str]: ...
|
|
||||||
def list(self, ignore_patterns: List[str]) -> Iterator[Tuple[str, DefaultStorage]]: ...
|
|
||||||
|
|
||||||
class DefaultStorageFinder(BaseStorageFinder):
|
class DefaultStorageFinder(BaseStorageFinder): ...
|
||||||
storage: django.contrib.staticfiles.storage.StaticFilesStorage = ...
|
|
||||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
|
||||||
|
|
||||||
def find(path: str, all: bool = ...) -> Optional[Union[List[str], str]]: ...
|
def find(path: str, all: bool = ...) -> Optional[Union[List[str], str]]: ...
|
||||||
def get_finders() -> Iterator[BaseFinder]: ...
|
def get_finders() -> Iterator[BaseFinder]: ...
|
||||||
|
@overload
|
||||||
|
def get_finder(import_path: Literal["django.contrib.staticfiles.finders.FileSystemFinder"]) -> FileSystemFinder: ...
|
||||||
|
@overload
|
||||||
|
def get_finder(
|
||||||
|
import_path: Literal["django.contrib.staticfiles.finders.AppDirectoriesFinder"]
|
||||||
|
) -> AppDirectoriesFinder: ...
|
||||||
|
@overload
|
||||||
def get_finder(import_path: str) -> BaseFinder: ...
|
def get_finder(import_path: str) -> BaseFinder: ...
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, Optional
|
from typing import Any
|
||||||
|
|
||||||
from django.core.handlers.wsgi import WSGIHandler, WSGIRequest
|
from django.core.handlers.wsgi import WSGIHandler, WSGIRequest
|
||||||
|
|
||||||
@@ -7,9 +7,6 @@ class StaticFilesHandler(WSGIHandler):
|
|||||||
application: WSGIHandler = ...
|
application: WSGIHandler = ...
|
||||||
base_url: Any = ...
|
base_url: Any = ...
|
||||||
def __init__(self, application: WSGIHandler) -> None: ...
|
def __init__(self, application: WSGIHandler) -> None: ...
|
||||||
def load_middleware(self) -> None: ...
|
|
||||||
def get_base_url(self) -> str: ...
|
def get_base_url(self) -> str: ...
|
||||||
def file_path(self, url: str) -> str: ...
|
def file_path(self, url: str) -> str: ...
|
||||||
def serve(self, request: WSGIRequest) -> Any: ...
|
def serve(self, request: WSGIRequest) -> Any: ...
|
||||||
def get_response(self, request: WSGIRequest) -> Any: ...
|
|
||||||
def __call__(self, environ: Any, start_response: Any): ...
|
|
||||||
|
|||||||
@@ -1,22 +1,16 @@
|
|||||||
from typing import Any, Dict, List, Optional
|
from typing import Any, Dict, List
|
||||||
|
|
||||||
from django.core.files.storage import FileSystemStorage
|
from django.core.files.storage import FileSystemStorage
|
||||||
from django.core.management.base import BaseCommand, CommandParser
|
from django.core.management.base import BaseCommand
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
stderr: django.core.management.base.OutputWrapper
|
|
||||||
stdout: django.core.management.base.OutputWrapper
|
|
||||||
help: str = ...
|
|
||||||
requires_system_checks: bool = ...
|
|
||||||
copied_files: Any = ...
|
copied_files: Any = ...
|
||||||
symlinked_files: Any = ...
|
symlinked_files: Any = ...
|
||||||
unmodified_files: Any = ...
|
unmodified_files: Any = ...
|
||||||
post_processed_files: Any = ...
|
post_processed_files: Any = ...
|
||||||
storage: Any = ...
|
storage: Any = ...
|
||||||
style: django.core.management.color.Style = ...
|
|
||||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
||||||
def local(self) -> bool: ...
|
def local(self) -> bool: ...
|
||||||
def add_arguments(self, parser: CommandParser) -> None: ...
|
|
||||||
interactive: Any = ...
|
interactive: Any = ...
|
||||||
verbosity: Any = ...
|
verbosity: Any = ...
|
||||||
symlink: Any = ...
|
symlink: Any = ...
|
||||||
@@ -26,7 +20,6 @@ class Command(BaseCommand):
|
|||||||
post_process: Any = ...
|
post_process: Any = ...
|
||||||
def set_options(self, **options: Any) -> None: ...
|
def set_options(self, **options: Any) -> None: ...
|
||||||
def collect(self) -> Dict[str, List[str]]: ...
|
def collect(self) -> Dict[str, List[str]]: ...
|
||||||
def handle(self, **options: Any) -> Optional[str]: ...
|
|
||||||
def log(self, msg: str, level: int = ...) -> None: ...
|
def log(self, msg: str, level: int = ...) -> None: ...
|
||||||
def is_local_storage(self) -> bool: ...
|
def is_local_storage(self) -> bool: ...
|
||||||
def clear_dir(self, path: str) -> None: ...
|
def clear_dir(self, path: str) -> None: ...
|
||||||
|
|||||||
@@ -1,12 +1,3 @@
|
|||||||
from typing import Any, Optional
|
from django.core.management.base import LabelCommand
|
||||||
|
|
||||||
from django.core.management.base import CommandParser, LabelCommand
|
class Command(LabelCommand): ...
|
||||||
|
|
||||||
class Command(LabelCommand):
|
|
||||||
stderr: django.core.management.base.OutputWrapper
|
|
||||||
stdout: django.core.management.base.OutputWrapper
|
|
||||||
style: django.core.management.color.Style
|
|
||||||
help: str = ...
|
|
||||||
label: str = ...
|
|
||||||
def add_arguments(self, parser: CommandParser) -> None: ...
|
|
||||||
def handle_label(self, path: str, **options: Any) -> str: ...
|
|
||||||
|
|||||||
@@ -1,13 +1,3 @@
|
|||||||
from typing import Any, Optional
|
from django.core.management.commands.runserver import Command as RunserverCommand # type: ignore
|
||||||
|
|
||||||
from django.contrib.staticfiles.handlers import StaticFilesHandler
|
class Command(RunserverCommand): ...
|
||||||
from django.core.management.base import CommandParser
|
|
||||||
from django.core.management.commands.runserver import Command as RunserverCommand
|
|
||||||
|
|
||||||
class Command(RunserverCommand):
|
|
||||||
stderr: django.core.management.base.OutputWrapper
|
|
||||||
stdout: django.core.management.base.OutputWrapper
|
|
||||||
style: django.core.management.color.Style
|
|
||||||
help: str = ...
|
|
||||||
def add_arguments(self, parser: CommandParser) -> None: ...
|
|
||||||
def get_handler(self, *args: Any, **options: Any) -> StaticFilesHandler: ...
|
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ class HashedFilesMixin:
|
|||||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
||||||
def file_hash(self, name: str, content: File = ...) -> str: ...
|
def file_hash(self, name: str, content: File = ...) -> str: ...
|
||||||
def hashed_name(self, name: str, content: Optional[File] = ..., filename: Optional[str] = ...) -> str: ...
|
def hashed_name(self, name: str, content: Optional[File] = ..., filename: Optional[str] = ...) -> str: ...
|
||||||
def url(self, name: SafeText, force: bool = ...) -> str: ...
|
|
||||||
def url_converter(self, name: str, hashed_files: OrderedDict, template: str = ...) -> Callable: ...
|
def url_converter(self, name: str, hashed_files: OrderedDict, template: str = ...) -> Callable: ...
|
||||||
def post_process(
|
def post_process(
|
||||||
self, paths: OrderedDict, dry_run: bool = ..., **options: Any
|
self, paths: OrderedDict, dry_run: bool = ..., **options: Any
|
||||||
@@ -33,16 +32,13 @@ class ManifestFilesMixin(HashedFilesMixin):
|
|||||||
manifest_version: str = ...
|
manifest_version: str = ...
|
||||||
manifest_name: str = ...
|
manifest_name: str = ...
|
||||||
manifest_strict: bool = ...
|
manifest_strict: bool = ...
|
||||||
hashed_files: Any = ...
|
|
||||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
||||||
def read_manifest(self) -> Any: ...
|
def read_manifest(self) -> Any: ...
|
||||||
def load_manifest(self) -> OrderedDict: ...
|
def load_manifest(self) -> OrderedDict: ...
|
||||||
def post_process(self, *args: Any, **kwargs: Any) -> None: ...
|
|
||||||
def save_manifest(self) -> None: ...
|
def save_manifest(self) -> None: ...
|
||||||
def stored_name(self, name: str) -> str: ...
|
|
||||||
|
|
||||||
class _MappingCache:
|
class _MappingCache:
|
||||||
cache: django.core.cache.DefaultCacheProxy = ...
|
cache: Any = ...
|
||||||
def __init__(self, cache: Any) -> None: ...
|
def __init__(self, cache: Any) -> None: ...
|
||||||
def __setitem__(self, key: Any, value: Any) -> None: ...
|
def __setitem__(self, key: Any, value: Any) -> None: ...
|
||||||
def __getitem__(self, key: Any): ...
|
def __getitem__(self, key: Any): ...
|
||||||
@@ -51,9 +47,7 @@ class _MappingCache:
|
|||||||
def get(self, key: Any, default: Optional[Any] = ...): ...
|
def get(self, key: Any, default: Optional[Any] = ...): ...
|
||||||
|
|
||||||
class CachedFilesMixin(HashedFilesMixin):
|
class CachedFilesMixin(HashedFilesMixin):
|
||||||
hashed_files: Any = ...
|
|
||||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
||||||
def hash_key(self, name: str) -> str: ...
|
|
||||||
|
|
||||||
class CachedStaticFilesStorage(CachedFilesMixin, StaticFilesStorage): ...
|
class CachedStaticFilesStorage(CachedFilesMixin, StaticFilesStorage): ...
|
||||||
class ManifestStaticFilesStorage(ManifestFilesMixin, StaticFilesStorage): ...
|
class ManifestStaticFilesStorage(ManifestFilesMixin, StaticFilesStorage): ...
|
||||||
|
|||||||
@@ -23,5 +23,5 @@ class Feed:
|
|||||||
def feed_extra_kwargs(self, obj: None) -> Dict[Any, Any]: ...
|
def feed_extra_kwargs(self, obj: None) -> Dict[Any, Any]: ...
|
||||||
def item_extra_kwargs(self, item: Model) -> Dict[Any, Any]: ...
|
def item_extra_kwargs(self, item: Model) -> Dict[Any, Any]: ...
|
||||||
def get_object(self, request: WSGIRequest, *args: Any, **kwargs: Any) -> None: ...
|
def get_object(self, request: WSGIRequest, *args: Any, **kwargs: Any) -> None: ...
|
||||||
def get_context_data(self, **kwargs: Any) -> Dict[str, Model]: ...
|
def get_context_data(self, **kwargs: Any) -> Dict[str, Any]: ...
|
||||||
def get_feed(self, obj: None, request: WSGIRequest) -> SyndicationFeed: ...
|
def get_feed(self, obj: None, request: WSGIRequest) -> SyndicationFeed: ...
|
||||||
|
|||||||
2
django-stubs/core/cache/__init__.pyi
vendored
2
django-stubs/core/cache/__init__.pyi
vendored
@@ -1,7 +1,7 @@
|
|||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from typing import Any, Callable, Dict, Union
|
from typing import Any, Callable, Dict, Union
|
||||||
|
|
||||||
from django.core.cache.backends.base import BaseCache as BaseCache
|
from .backends.base import BaseCache as BaseCache
|
||||||
|
|
||||||
DEFAULT_CACHE_ALIAS: str
|
DEFAULT_CACHE_ALIAS: str
|
||||||
|
|
||||||
|
|||||||
24
django-stubs/core/cache/backends/base.pyi
vendored
24
django-stubs/core/cache/backends/base.pyi
vendored
@@ -1,5 +1,4 @@
|
|||||||
from collections import OrderedDict
|
from typing import Any, Callable, Dict, Iterable, List, Optional, Union
|
||||||
from typing import Any, Callable, Dict, List, Optional, Union
|
|
||||||
|
|
||||||
from django.core.exceptions import ImproperlyConfigured
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
|
|
||||||
@@ -9,7 +8,7 @@ class CacheKeyWarning(RuntimeWarning): ...
|
|||||||
DEFAULT_TIMEOUT: Any
|
DEFAULT_TIMEOUT: Any
|
||||||
MEMCACHE_MAX_KEY_LENGTH: int
|
MEMCACHE_MAX_KEY_LENGTH: int
|
||||||
|
|
||||||
def default_key_func(key: Union[int, str], key_prefix: str, version: Union[int, str]) -> str: ...
|
def default_key_func(key: Any, key_prefix: str, version: Any) -> str: ...
|
||||||
def get_key_func(key_func: Optional[Union[Callable, str]]) -> Callable: ...
|
def get_key_func(key_func: Optional[Union[Callable, str]]) -> Callable: ...
|
||||||
|
|
||||||
class BaseCache:
|
class BaseCache:
|
||||||
@@ -17,29 +16,24 @@ class BaseCache:
|
|||||||
key_prefix: str = ...
|
key_prefix: str = ...
|
||||||
version: int = ...
|
version: int = ...
|
||||||
key_func: Callable = ...
|
key_func: Callable = ...
|
||||||
def __init__(self, params: Dict[str, Optional[Union[Callable, Dict[str, int], int, str]]]) -> None: ...
|
def __init__(self, params: Dict[str, Any]) -> None: ...
|
||||||
def get_backend_timeout(self, timeout: Any = ...) -> Optional[float]: ...
|
def get_backend_timeout(self, timeout: Any = ...) -> Optional[float]: ...
|
||||||
def make_key(self, key: Union[int, str], version: Optional[Union[int, str]] = ...) -> str: ...
|
def make_key(self, key: Any, version: Optional[Any] = ...) -> str: ...
|
||||||
def add(self, key: Any, value: Any, timeout: Any = ..., version: Optional[Any] = ...) -> None: ...
|
def add(self, key: Any, value: Any, timeout: Any = ..., version: Optional[Any] = ...) -> None: ...
|
||||||
def get(self, key: Any, default: Optional[Any] = ..., version: Optional[Any] = ...) -> None: ...
|
def get(self, key: Any, default: Optional[Any] = ..., version: Optional[Any] = ...) -> Any: ...
|
||||||
def set(self, key: Any, value: Any, timeout: Any = ..., version: Optional[Any] = ...) -> None: ...
|
def set(self, key: Any, value: Any, timeout: Any = ..., version: Optional[Any] = ...) -> None: ...
|
||||||
def touch(self, key: Any, timeout: Any = ..., version: Optional[Any] = ...) -> None: ...
|
def touch(self, key: Any, timeout: Any = ..., version: Optional[Any] = ...) -> None: ...
|
||||||
def delete(self, key: Any, version: Optional[Any] = ...) -> None: ...
|
def delete(self, key: Any, version: Optional[Any] = ...) -> None: ...
|
||||||
def get_many(self, keys: List[str], version: Optional[int] = ...) -> Dict[str, Union[int, str]]: ...
|
def get_many(self, keys: List[str], version: Optional[int] = ...) -> Dict[str, Union[int, str]]: ...
|
||||||
def get_or_set(
|
def get_or_set(
|
||||||
self, key: str, default: Optional[Union[Callable, int, str]], timeout: Any = ..., version: Optional[int] = ...
|
self, key: Any, default: Optional[Any], timeout: Any = ..., version: Optional[int] = ...
|
||||||
) -> Optional[Union[int, str]]: ...
|
) -> Optional[Any]: ...
|
||||||
def has_key(self, key: Any, version: Optional[Any] = ...): ...
|
def has_key(self, key: Any, version: Optional[Any] = ...): ...
|
||||||
def incr(self, key: str, delta: int = ..., version: Optional[int] = ...) -> int: ...
|
def incr(self, key: str, delta: int = ..., version: Optional[int] = ...) -> int: ...
|
||||||
def decr(self, key: str, delta: int = ..., version: Optional[int] = ...) -> int: ...
|
def decr(self, key: str, delta: int = ..., version: Optional[int] = ...) -> int: ...
|
||||||
def __contains__(self, key: str) -> bool: ...
|
def __contains__(self, key: str) -> bool: ...
|
||||||
def set_many(
|
def set_many(self, data: Dict[str, Any], timeout: Any = ..., version: Optional[Any] = ...) -> List[Any]: ...
|
||||||
self,
|
def delete_many(self, keys: Iterable[Any], version: Optional[Any] = ...) -> None: ...
|
||||||
data: Union[Dict[str, bytes], Dict[str, int], Dict[str, str], OrderedDict],
|
|
||||||
timeout: Any = ...,
|
|
||||||
version: Optional[Union[int, str]] = ...,
|
|
||||||
) -> List[Any]: ...
|
|
||||||
def delete_many(self, keys: Union[Dict[str, str], List[str]], version: None = ...) -> None: ...
|
|
||||||
def clear(self) -> None: ...
|
def clear(self) -> None: ...
|
||||||
def validate_key(self, key: str) -> None: ...
|
def validate_key(self, key: str) -> None: ...
|
||||||
def incr_version(self, key: str, delta: int = ..., version: Optional[int] = ...) -> int: ...
|
def incr_version(self, key: str, delta: int = ..., version: Optional[int] = ...) -> int: ...
|
||||||
|
|||||||
23
django-stubs/core/cache/backends/db.pyi
vendored
23
django-stubs/core/cache/backends/db.pyi
vendored
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, Callable, Dict, Optional, Union
|
from typing import Any, Dict
|
||||||
|
|
||||||
from django.core.cache.backends.base import BaseCache
|
from django.core.cache.backends.base import BaseCache
|
||||||
|
|
||||||
@@ -16,24 +16,7 @@ class Options:
|
|||||||
def __init__(self, table: str) -> None: ...
|
def __init__(self, table: str) -> None: ...
|
||||||
|
|
||||||
class BaseDatabaseCache(BaseCache):
|
class BaseDatabaseCache(BaseCache):
|
||||||
default_timeout: int
|
|
||||||
key_func: Callable
|
|
||||||
key_prefix: str
|
|
||||||
version: int
|
|
||||||
cache_model_class: Any = ...
|
cache_model_class: Any = ...
|
||||||
def __init__(self, table: str, params: Dict[str, Union[Callable, Dict[str, int], int, str]]) -> None: ...
|
def __init__(self, table: str, params: Dict[str, Any]) -> None: ...
|
||||||
|
|
||||||
class DatabaseCache(BaseDatabaseCache):
|
class DatabaseCache(BaseDatabaseCache): ...
|
||||||
default_timeout: int
|
|
||||||
key_func: Callable
|
|
||||||
key_prefix: str
|
|
||||||
version: int
|
|
||||||
def get(self, key: str, default: Optional[Union[int, str]] = ..., version: Optional[int] = ...) -> Any: ...
|
|
||||||
def set(self, key: str, value: Any, timeout: Any = ..., version: Optional[int] = ...) -> None: ...
|
|
||||||
def add(
|
|
||||||
self, key: str, value: Union[Dict[str, int], bytes, int, str], timeout: Any = ..., version: Optional[int] = ...
|
|
||||||
) -> bool: ...
|
|
||||||
def touch(self, key: str, timeout: Any = ..., version: None = ...) -> bool: ...
|
|
||||||
def delete(self, key: str, version: Optional[int] = ...) -> None: ...
|
|
||||||
def has_key(self, key: str, version: Optional[int] = ...) -> Any: ...
|
|
||||||
def clear(self) -> None: ...
|
|
||||||
|
|||||||
15
django-stubs/core/cache/backends/dummy.pyi
vendored
15
django-stubs/core/cache/backends/dummy.pyi
vendored
@@ -1,19 +1,6 @@
|
|||||||
from typing import Any, Dict, Optional, Union, Callable
|
from typing import Any
|
||||||
|
|
||||||
from django.core.cache.backends.base import BaseCache
|
from django.core.cache.backends.base import BaseCache
|
||||||
|
|
||||||
class DummyCache(BaseCache):
|
class DummyCache(BaseCache):
|
||||||
default_timeout: int
|
|
||||||
key_func: Callable
|
|
||||||
key_prefix: str
|
|
||||||
version: int
|
|
||||||
def __init__(self, host: str, *args: Any, **kwargs: Any) -> None: ...
|
def __init__(self, host: str, *args: Any, **kwargs: Any) -> None: ...
|
||||||
def add(self, key: str, value: str, timeout: Any = ..., version: None = ...) -> bool: ...
|
|
||||||
def get(self, key: str, default: Optional[str] = ..., version: Optional[int] = ...) -> Optional[str]: ...
|
|
||||||
def set(
|
|
||||||
self, key: str, value: Union[Dict[str, Any], int, str], timeout: Any = ..., version: Optional[str] = ...
|
|
||||||
) -> None: ...
|
|
||||||
def touch(self, key: str, timeout: Any = ..., version: None = ...) -> bool: ...
|
|
||||||
def delete(self, key: str, version: None = ...) -> None: ...
|
|
||||||
def has_key(self, key: str, version: None = ...) -> bool: ...
|
|
||||||
def clear(self) -> None: ...
|
|
||||||
|
|||||||
19
django-stubs/core/cache/backends/filebased.pyi
vendored
19
django-stubs/core/cache/backends/filebased.pyi
vendored
@@ -1,22 +1,7 @@
|
|||||||
from typing import Any, Callable, Dict, Optional, Union
|
from typing import Any, Dict
|
||||||
|
|
||||||
from django.core.cache.backends.base import BaseCache
|
from django.core.cache.backends.base import BaseCache
|
||||||
|
|
||||||
class FileBasedCache(BaseCache):
|
class FileBasedCache(BaseCache):
|
||||||
default_timeout: int
|
|
||||||
key_func: Callable
|
|
||||||
key_prefix: str
|
|
||||||
version: int
|
|
||||||
cache_suffix: str = ...
|
cache_suffix: str = ...
|
||||||
def __init__(self, dir: str, params: Dict[str, Union[Callable, Dict[str, int], int, str]]) -> None: ...
|
def __init__(self, dir: str, params: Dict[str, Any]) -> None: ...
|
||||||
def add(
|
|
||||||
self, key: str, value: Union[Dict[str, int], bytes, int, str], timeout: Any = ..., version: Optional[int] = ...
|
|
||||||
) -> bool: ...
|
|
||||||
def get(
|
|
||||||
self, key: str, default: Optional[Union[int, str]] = ..., version: Optional[int] = ...
|
|
||||||
) -> Optional[str]: ...
|
|
||||||
def set(self, key: str, value: Any, timeout: Any = ..., version: Optional[int] = ...) -> None: ...
|
|
||||||
def touch(self, key: str, timeout: Any = ..., version: None = ...) -> bool: ...
|
|
||||||
def delete(self, key: str, version: Optional[int] = ...) -> None: ...
|
|
||||||
def has_key(self, key: str, version: Optional[int] = ...) -> bool: ...
|
|
||||||
def clear(self) -> None: ...
|
|
||||||
|
|||||||
4
django-stubs/core/cache/utils.pyi
vendored
4
django-stubs/core/cache/utils.pyi
vendored
@@ -1,5 +1,5 @@
|
|||||||
from typing import Any, List, Optional, Union
|
from typing import Any, Iterable, Optional
|
||||||
|
|
||||||
TEMPLATE_FRAGMENT_KEY_TEMPLATE: str
|
TEMPLATE_FRAGMENT_KEY_TEMPLATE: str
|
||||||
|
|
||||||
def make_template_fragment_key(fragment_name: str, vary_on: Optional[Union[List[int], List[str]]] = ...) -> str: ...
|
def make_template_fragment_key(fragment_name: str, vary_on: Optional[Iterable[Any]] = ...) -> str: ...
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
from .messages import Warning as Warning, Info as Info, Debug as Debug, Error as Error, Critical as Critical
|
||||||
|
|
||||||
|
from .registry import run_checks as run_checks, Tags as Tags, register as register
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, Optional, Union
|
from typing import Any, Optional
|
||||||
|
|
||||||
DEBUG: int
|
DEBUG: int
|
||||||
INFO: int
|
INFO: int
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, List, Optional
|
from typing import Any, List
|
||||||
|
|
||||||
from django.core.checks.messages import Warning
|
from django.core.checks.messages import Warning
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
from typing import Any, Dict, Iterator, List, Optional, Tuple, Type, Union
|
from typing import Any, Dict, Iterator, List, Mapping, Optional, Tuple, Union
|
||||||
|
|
||||||
from django.db.models.base import Model
|
|
||||||
from django.forms.utils import ErrorDict
|
from django.forms.utils import ErrorDict
|
||||||
|
|
||||||
class FieldDoesNotExist(Exception): ...
|
class FieldDoesNotExist(Exception): ...
|
||||||
@@ -31,20 +30,13 @@ class ValidationError(Exception):
|
|||||||
message: Any = ...
|
message: Any = ...
|
||||||
code: Any = ...
|
code: Any = ...
|
||||||
params: Any = ...
|
params: Any = ...
|
||||||
def __init__(
|
def __init__(self, message: Any, code: Optional[str] = ..., params: Optional[Mapping[str, Any]] = ...) -> None: ...
|
||||||
self,
|
|
||||||
message: Any,
|
|
||||||
code: Optional[str] = ...,
|
|
||||||
params: Optional[
|
|
||||||
Union[Dict[str, Union[Tuple[str], Type[Model], Model, str]], Dict[str, Union[int, str]]]
|
|
||||||
] = ...,
|
|
||||||
) -> None: ...
|
|
||||||
@property
|
@property
|
||||||
def message_dict(self) -> Dict[str, List[str]]: ...
|
def message_dict(self) -> Dict[str, List[str]]: ...
|
||||||
@property
|
@property
|
||||||
def messages(self) -> List[str]: ...
|
def messages(self) -> List[str]: ...
|
||||||
def update_error_dict(
|
def update_error_dict(
|
||||||
self, error_dict: Union[Dict[str, List[ValidationError]], ErrorDict]
|
self, error_dict: Mapping[str, Any]
|
||||||
) -> Union[Dict[str, List[ValidationError]], ErrorDict]: ...
|
) -> Union[Dict[str, List[ValidationError]], ErrorDict]: ...
|
||||||
def __iter__(self) -> Iterator[Union[Tuple[str, List[str]], str]]: ...
|
def __iter__(self) -> Iterator[Union[Tuple[str, List[str]], str]]: ...
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,15 @@
|
|||||||
from ctypes import Structure, c_int64, c_ulong, c_void_p
|
from ctypes import Structure, Union
|
||||||
from io import BufferedRandom, TextIOWrapper
|
from typing import Any
|
||||||
from typing import Union
|
|
||||||
|
|
||||||
LOCK_SH: int
|
LOCK_SH: int
|
||||||
LOCK_NB: int
|
LOCK_NB: int
|
||||||
LOCK_EX: int
|
LOCK_EX: int
|
||||||
ULONG_PTR = c_int64
|
ULONG_PTR: Any = ...
|
||||||
ULONG_PTR = c_ulong
|
PVOID: Any = ...
|
||||||
PVOID = c_void_p
|
|
||||||
|
|
||||||
class _OFFSET(Structure): ...
|
class _OFFSET(Structure): ...
|
||||||
class _OFFSET_UNION(Union): ...
|
class _OFFSET_UNION(Union): ...
|
||||||
class OVERLAPPED(Structure): ...
|
class OVERLAPPED(Structure): ...
|
||||||
|
|
||||||
def lock(f: Union[BufferedRandom, TextIOWrapper, int], flags: int) -> bool: ...
|
def lock(f: Any, flags: int) -> bool: ...
|
||||||
def unlock(f: Union[BufferedRandom, int]) -> bool: ...
|
def unlock(f: Any) -> bool: ...
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from io import StringIO, TextIOWrapper
|
from typing import Any, IO, List, Optional, Tuple
|
||||||
from typing import Any, List, Optional, Tuple, Union
|
|
||||||
|
|
||||||
from django.core.files.base import File
|
from django.core.files.base import File
|
||||||
from django.utils.functional import LazyObject
|
from django.utils.functional import LazyObject
|
||||||
|
|
||||||
class Storage:
|
class Storage:
|
||||||
def open(self, name: str, mode: str = ...) -> File: ...
|
def open(self, name: str, mode: str = ...) -> File: ...
|
||||||
def save(
|
def save(self, name: Optional[str], content: IO[Any], max_length: Optional[int] = ...) -> str: ...
|
||||||
self, name: Optional[str], content: Union[StringIO, TextIOWrapper, File], max_length: Optional[int] = ...
|
|
||||||
) -> str: ...
|
|
||||||
def get_valid_name(self, name: str) -> str: ...
|
def get_valid_name(self, name: str) -> str: ...
|
||||||
def get_available_name(self, name: str, max_length: Optional[int] = ...) -> str: ...
|
def get_available_name(self, name: str, max_length: Optional[int] = ...) -> str: ...
|
||||||
def generate_filename(self, filename: str) -> str: ...
|
def generate_filename(self, filename: str) -> str: ...
|
||||||
@@ -31,10 +28,15 @@ class FileSystemStorage(Storage):
|
|||||||
file_permissions_mode: Optional[int] = ...,
|
file_permissions_mode: Optional[int] = ...,
|
||||||
directory_permissions_mode: Optional[int] = ...,
|
directory_permissions_mode: Optional[int] = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
|
@property
|
||||||
def base_location(self) -> str: ...
|
def base_location(self) -> str: ...
|
||||||
|
@property
|
||||||
def location(self) -> str: ...
|
def location(self) -> str: ...
|
||||||
|
@property
|
||||||
def base_url(self) -> str: ...
|
def base_url(self) -> str: ...
|
||||||
|
@property
|
||||||
def file_permissions_mode(self) -> Optional[int]: ...
|
def file_permissions_mode(self) -> Optional[int]: ...
|
||||||
|
@property
|
||||||
def directory_permissions_mode(self) -> Optional[int]: ...
|
def directory_permissions_mode(self) -> Optional[int]: ...
|
||||||
|
|
||||||
class DefaultStorage(LazyObject): ...
|
class DefaultStorage(LazyObject): ...
|
||||||
|
|||||||
@@ -1,45 +1,48 @@
|
|||||||
# Stubs for django.core.files.uploadedfile (Python 3.5)
|
|
||||||
|
|
||||||
from typing import Any, Dict, IO, Iterator, Optional, Union
|
from typing import Any, Dict, IO, Iterator, Optional, Union
|
||||||
from django.core.files import temp as tempfile
|
from django.core.files import temp as tempfile
|
||||||
from django.core.files.base import File
|
from django.core.files.base import File
|
||||||
|
|
||||||
class UploadedFile(File):
|
class UploadedFile(File):
|
||||||
content_type = ... # type: Optional[str]
|
content_type: Optional[str] = ...
|
||||||
charset = ... # type: Optional[str]
|
charset: Optional[str] = ...
|
||||||
content_type_extra = ... # type: Optional[Dict[str, str]]
|
content_type_extra: Optional[Dict[str, str]] = ...
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
file: IO,
|
file: Optional[IO] = ...,
|
||||||
name: str = None,
|
name: Optional[str] = ...,
|
||||||
content_type: str = None,
|
content_type: Optional[str] = ...,
|
||||||
size: int = None,
|
size: Optional[int] = ...,
|
||||||
charset: str = None,
|
charset: Optional[str] = ...,
|
||||||
content_type_extra: Dict[str, str] = None,
|
content_type_extra: Optional[Dict[str, str]] = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
|
|
||||||
class TemporaryUploadedFile(UploadedFile):
|
class TemporaryUploadedFile(UploadedFile):
|
||||||
def __init__(
|
def __init__(
|
||||||
self, name: str, content_type: str, size: int, charset: str, content_type_extra: Dict[str, str] = None
|
self,
|
||||||
|
name: Optional[str],
|
||||||
|
content_type: Optional[str],
|
||||||
|
size: Optional[int],
|
||||||
|
charset: Optional[str],
|
||||||
|
content_type_extra: Optional[Dict[str, str]] = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def temporary_file_path(self) -> str: ...
|
def temporary_file_path(self) -> str: ...
|
||||||
|
|
||||||
class InMemoryUploadedFile(UploadedFile):
|
class InMemoryUploadedFile(UploadedFile):
|
||||||
field_name = ... # type: Optional[str]
|
field_name: Optional[str] = ...
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
file: IO,
|
file: IO,
|
||||||
field_name: Optional[str],
|
field_name: Optional[str],
|
||||||
name: str,
|
name: Optional[str],
|
||||||
content_type: Optional[str],
|
content_type: Optional[str],
|
||||||
size: int,
|
size: Optional[int],
|
||||||
charset: Optional[str],
|
charset: Optional[str],
|
||||||
content_type_extra: Dict[str, str] = None,
|
content_type_extra: Dict[str, str] = ...,
|
||||||
) -> None: ...
|
) -> None: ...
|
||||||
def chunks(self, chunk_size: int = None) -> Iterator[bytes]: ...
|
def chunks(self, chunk_size: Optional[int] = ...) -> Iterator[bytes]: ...
|
||||||
def multiple_chunks(self, chunk_size: int = None) -> bool: ...
|
def multiple_chunks(self, chunk_size: Optional[int] = ...) -> bool: ...
|
||||||
|
|
||||||
class SimpleUploadedFile(InMemoryUploadedFile):
|
class SimpleUploadedFile(InMemoryUploadedFile):
|
||||||
def __init__(self, name: str, content: bytes, content_type: str = "") -> None: ...
|
def __init__(self, name: str, content: Optional[Union[bytes, str]], content_type: str = ...) -> None: ...
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls: Any, file_dict: Dict[str, Union[str, bytes]]) -> None: ...
|
def from_dict(cls: Any, file_dict: Dict[str, Union[str, bytes]]) -> None: ...
|
||||||
|
|||||||
@@ -1,13 +1,17 @@
|
|||||||
from typing import Any, Callable
|
from typing import Any, Callable
|
||||||
|
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
from django.http.request import HttpRequest
|
||||||
from django.http.response import HttpResponse, HttpResponseBase
|
from django.http.response import HttpResponse, HttpResponseBase
|
||||||
|
|
||||||
logger: Any
|
logger: Any
|
||||||
|
|
||||||
class BaseHandler:
|
class BaseHandler:
|
||||||
|
_view_middleware: None = ...
|
||||||
|
_template_response_middleware: None = ...
|
||||||
|
_exception_middleware: None = ...
|
||||||
|
_middleware_chain: None = ...
|
||||||
def load_middleware(self) -> None: ...
|
def load_middleware(self) -> None: ...
|
||||||
def make_view_atomic(self, view: Callable) -> Callable: ...
|
def make_view_atomic(self, view: Callable) -> Callable: ...
|
||||||
def get_exception_response(self, request: Any, resolver: Any, status_code: Any, exception: Any): ...
|
def get_exception_response(self, request: Any, resolver: Any, status_code: Any, exception: Any): ...
|
||||||
def get_response(self, request: WSGIRequest) -> HttpResponseBase: ...
|
def get_response(self, request: HttpRequest) -> HttpResponseBase: ...
|
||||||
def process_exception_by_middleware(self, exception: Exception, request: WSGIRequest) -> HttpResponse: ...
|
def process_exception_by_middleware(self, exception: Exception, request: HttpRequest) -> HttpResponse: ...
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
from typing import Any, Callable
|
from typing import Any, Callable
|
||||||
|
|
||||||
from django.core.handlers.wsgi import WSGIRequest
|
from django.http.request import HttpRequest
|
||||||
from django.http.response import HttpResponse
|
from django.http.response import HttpResponse
|
||||||
from django.urls.resolvers import URLResolver
|
from django.urls.resolvers import URLResolver
|
||||||
|
|
||||||
def convert_exception_to_response(get_response: Callable) -> Callable: ...
|
def convert_exception_to_response(get_response: Callable) -> Callable: ...
|
||||||
def response_for_exception(request: WSGIRequest, exc: Exception) -> HttpResponse: ...
|
def response_for_exception(request: HttpRequest, exc: Exception) -> HttpResponse: ...
|
||||||
def get_exception_response(
|
def get_exception_response(
|
||||||
request: WSGIRequest, resolver: URLResolver, status_code: int, exception: Exception, sender: None = ...
|
request: HttpRequest, resolver: URLResolver, status_code: int, exception: Exception, sender: None = ...
|
||||||
) -> HttpResponse: ...
|
) -> HttpResponse: ...
|
||||||
def handle_uncaught_exception(request: Any, resolver: Any, exc_info: Any): ...
|
def handle_uncaught_exception(request: Any, resolver: Any, exc_info: Any): ...
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user