mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2025-07-31 02:09:49 +03:00
Compare commits
No commits in common. "master" and "2025.06.02" have entirely different histories.
master
...
2025.06.02
1
.github/ISSUE_TEMPLATE/bug.md
vendored
1
.github/ISSUE_TEMPLATE/bug.md
vendored
|
@ -13,6 +13,7 @@ labels: bug
|
||||||
<!-- To assist you best, please include commands that you've run, options you've selected and any relevant logs -->
|
<!-- To assist you best, please include commands that you've run, options you've selected and any relevant logs -->
|
||||||
|
|
||||||
- Host system configuration:
|
- Host system configuration:
|
||||||
|
|
||||||
- Version of cookiecutter CLI (get it with `cookiecutter --version`):
|
- Version of cookiecutter CLI (get it with `cookiecutter --version`):
|
||||||
- OS name and version:
|
- OS name and version:
|
||||||
|
|
||||||
|
|
10
.github/contributors.json
vendored
10
.github/contributors.json
vendored
|
@ -1728,15 +1728,5 @@
|
||||||
"name": "Dominique Plante",
|
"name": "Dominique Plante",
|
||||||
"github_login": "dominiqueplante",
|
"github_login": "dominiqueplante",
|
||||||
"twitter_username": ""
|
"twitter_username": ""
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Lucas Klasa",
|
|
||||||
"github_login": "lucaskbr",
|
|
||||||
"twitter_username": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "DevForsure",
|
|
||||||
"github_login": "DevForsure",
|
|
||||||
"twitter_username": ""
|
|
||||||
}
|
}
|
||||||
]
|
]
|
2
.github/workflows/align-versions.yml
vendored
2
.github/workflows/align-versions.yml
vendored
|
@ -47,6 +47,6 @@ jobs:
|
||||||
|
|
||||||
- run: uv run ${{ matrix.job.script }}
|
- run: uv run ${{ matrix.job.script }}
|
||||||
|
|
||||||
- uses: stefanzweifel/git-auto-commit-action@v6
|
- uses: stefanzweifel/git-auto-commit-action@v5
|
||||||
with:
|
with:
|
||||||
commit_message: Align versions
|
commit_message: Align versions
|
||||||
|
|
2
.github/workflows/dependabot-uv-lock.yml
vendored
2
.github/workflows/dependabot-uv-lock.yml
vendored
|
@ -28,6 +28,6 @@ jobs:
|
||||||
|
|
||||||
- uses: astral-sh/setup-uv@v6
|
- uses: astral-sh/setup-uv@v6
|
||||||
- run: uv lock
|
- run: uv lock
|
||||||
- uses: stefanzweifel/git-auto-commit-action@v6
|
- uses: stefanzweifel/git-auto-commit-action@v5
|
||||||
with:
|
with:
|
||||||
commit_message: Regenerate uv.lock
|
commit_message: Regenerate uv.lock
|
||||||
|
|
2
.github/workflows/update-contributors.yml
vendored
2
.github/workflows/update-contributors.yml
vendored
|
@ -26,7 +26,7 @@ jobs:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Commit changes
|
- name: Commit changes
|
||||||
uses: stefanzweifel/git-auto-commit-action@v6
|
uses: stefanzweifel/git-auto-commit-action@v5.0.1
|
||||||
with:
|
with:
|
||||||
commit_message: Update Contributors
|
commit_message: Update Contributors
|
||||||
file_pattern: CONTRIBUTORS.md .github/contributors.json
|
file_pattern: CONTRIBUTORS.md .github/contributors.json
|
||||||
|
|
|
@ -44,7 +44,7 @@ repos:
|
||||||
- id: isort
|
- id: isort
|
||||||
|
|
||||||
- repo: https://github.com/PyCQA/flake8
|
- repo: https://github.com/PyCQA/flake8
|
||||||
rev: 7.3.0
|
rev: 7.2.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: flake8
|
- id: flake8
|
||||||
|
|
||||||
|
|
223
CHANGELOG.md
223
CHANGELOG.md
|
@ -3,229 +3,6 @@ All enhancements and patches to Cookiecutter Django will be documented in this f
|
||||||
|
|
||||||
<!-- GENERATOR_PLACEHOLDER -->
|
<!-- GENERATOR_PLACEHOLDER -->
|
||||||
|
|
||||||
## 2025.07.27
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update coverage to 7.10.1 ([#5947](https://github.com/cookiecutter/cookiecutter-django/pull/5947))
|
|
||||||
|
|
||||||
## 2025.07.25
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update django-anymail to 13.0.1 ([#5946](https://github.com/cookiecutter/cookiecutter-django/pull/5946))
|
|
||||||
|
|
||||||
## 2025.07.24
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update coverage to 7.10.0 ([#5944](https://github.com/cookiecutter/cookiecutter-django/pull/5944))
|
|
||||||
|
|
||||||
- Update ruff to 0.12.5 ([#5943](https://github.com/cookiecutter/cookiecutter-django/pull/5943))
|
|
||||||
|
|
||||||
- Bump traefik from 3.4.4 to 3.5.0 ([#5942](https://github.com/cookiecutter/cookiecutter-django/pull/5942))
|
|
||||||
|
|
||||||
## 2025.07.22
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update sentry-sdk to 2.33.2 ([#5941](https://github.com/cookiecutter/cookiecutter-django/pull/5941))
|
|
||||||
|
|
||||||
## 2025.07.21
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update sentry-sdk to 2.33.1 ([#5940](https://github.com/cookiecutter/cookiecutter-django/pull/5940))
|
|
||||||
|
|
||||||
## 2025.07.18
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update mypy to 1.17.0 ([#5937](https://github.com/cookiecutter/cookiecutter-django/pull/5937))
|
|
||||||
|
|
||||||
- Update django-stubs to 5.2.2 ([#5936](https://github.com/cookiecutter/cookiecutter-django/pull/5936))
|
|
||||||
|
|
||||||
## 2025.07.17
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update ruff to 0.12.4 ([#5935](https://github.com/cookiecutter/cookiecutter-django/pull/5935))
|
|
||||||
|
|
||||||
## 2025.07.16
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update sentry-sdk to 2.33.0 ([#5933](https://github.com/cookiecutter/cookiecutter-django/pull/5933))
|
|
||||||
|
|
||||||
## 2025.07.15
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update mypy to 1.16.1 ([#5901](https://github.com/cookiecutter/cookiecutter-django/pull/5901))
|
|
||||||
|
|
||||||
- Bump traefik from 3.4.3 to 3.4.4 ([#5930](https://github.com/cookiecutter/cookiecutter-django/pull/5930))
|
|
||||||
|
|
||||||
## 2025.07.14
|
|
||||||
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
- Fix howto docker command ([#5929](https://github.com/cookiecutter/cookiecutter-django/pull/5929))
|
|
||||||
|
|
||||||
## 2025.07.11
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update ruff to 0.12.3 ([#5928](https://github.com/cookiecutter/cookiecutter-django/pull/5928))
|
|
||||||
|
|
||||||
- Update django-allauth to 65.10.0 ([#5927](https://github.com/cookiecutter/cookiecutter-django/pull/5927))
|
|
||||||
|
|
||||||
## 2025.07.05
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update coverage to 7.9.2 ([#5925](https://github.com/cookiecutter/cookiecutter-django/pull/5925))
|
|
||||||
|
|
||||||
## 2025.07.04
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update ruff to 0.12.2 ([#5923](https://github.com/cookiecutter/cookiecutter-django/pull/5923))
|
|
||||||
|
|
||||||
## 2025.07.02
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update pillow to 11.3.0 ([#5921](https://github.com/cookiecutter/cookiecutter-django/pull/5921))
|
|
||||||
|
|
||||||
## 2025.06.30
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Bump traefik from 3.4.1 to 3.4.3 ([#5917](https://github.com/cookiecutter/cookiecutter-django/pull/5917))
|
|
||||||
|
|
||||||
- Update uvicorn to 0.35.0 ([#5919](https://github.com/cookiecutter/cookiecutter-django/pull/5919))
|
|
||||||
|
|
||||||
- Update sentry-sdk to 2.32.0 ([#5918](https://github.com/cookiecutter/cookiecutter-django/pull/5918))
|
|
||||||
|
|
||||||
## 2025.06.26
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update ruff to 0.12.1 ([#5916](https://github.com/cookiecutter/cookiecutter-django/pull/5916))
|
|
||||||
|
|
||||||
## 2025.06.24
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update sentry-sdk to 2.31.0 ([#5912](https://github.com/cookiecutter/cookiecutter-django/pull/5912))
|
|
||||||
|
|
||||||
## 2025.06.19
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update pytest to 8.4.1 ([#5907](https://github.com/cookiecutter/cookiecutter-django/pull/5907))
|
|
||||||
|
|
||||||
## 2025.06.18
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update ruff to 0.12.0 ([#5904](https://github.com/cookiecutter/cookiecutter-django/pull/5904))
|
|
||||||
|
|
||||||
- Update django-stubs to 5.2.1 ([#5905](https://github.com/cookiecutter/cookiecutter-django/pull/5905))
|
|
||||||
|
|
||||||
- Update django-redis to 6.0.0 ([#5903](https://github.com/cookiecutter/cookiecutter-django/pull/5903))
|
|
||||||
|
|
||||||
- Update django-webpack-loader to 3.2.1 ([#5902](https://github.com/cookiecutter/cookiecutter-django/pull/5902))
|
|
||||||
|
|
||||||
## 2025.06.17
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update django-coverage-plugin to 3.1.1 ([#5900](https://github.com/cookiecutter/cookiecutter-django/pull/5900))
|
|
||||||
|
|
||||||
- Update watchfiles to 1.1.0 ([#5899](https://github.com/cookiecutter/cookiecutter-django/pull/5899))
|
|
||||||
|
|
||||||
## 2025.06.15
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update coverage to 7.9.1 ([#5898](https://github.com/cookiecutter/cookiecutter-django/pull/5898))
|
|
||||||
|
|
||||||
## 2025.06.13
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update coverage to 7.9.0 ([#5897](https://github.com/cookiecutter/cookiecutter-django/pull/5897))
|
|
||||||
|
|
||||||
- Update sentry-sdk to 2.30.0 ([#5896](https://github.com/cookiecutter/cookiecutter-django/pull/5896))
|
|
||||||
|
|
||||||
## 2025.06.11
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update collectfasta to 3.3.0 ([#5892](https://github.com/cookiecutter/cookiecutter-django/pull/5892))
|
|
||||||
|
|
||||||
## 2025.06.10
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update django to 5.1.11 ([#5891](https://github.com/cookiecutter/cookiecutter-django/pull/5891))
|
|
||||||
|
|
||||||
- Update crispy-bootstrap5 to 2025.6 ([#5888](https://github.com/cookiecutter/cookiecutter-django/pull/5888))
|
|
||||||
|
|
||||||
## 2025.06.06
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update ruff to 0.11.13 ([#5887](https://github.com/cookiecutter/cookiecutter-django/pull/5887))
|
|
||||||
|
|
||||||
## 2025.06.05
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Bump python from 3.12.10 to 3.12.11 in docs Docker ([#5883](https://github.com/cookiecutter/cookiecutter-django/pull/5883))
|
|
||||||
|
|
||||||
- Bump python from 3.12.10 to 3.12.11 in production Docker ([#5884](https://github.com/cookiecutter/cookiecutter-django/pull/5884))
|
|
||||||
|
|
||||||
- Bump python from 3.12.10 3.12.11 in local Docker ([#5885](https://github.com/cookiecutter/cookiecutter-django/pull/5885))
|
|
||||||
|
|
||||||
- Update django to 5.1.10 ([#5882](https://github.com/cookiecutter/cookiecutter-django/pull/5882))
|
|
||||||
|
|
||||||
## 2025.06.04
|
|
||||||
|
|
||||||
|
|
||||||
### Updated
|
|
||||||
|
|
||||||
- Update argon2-cffi to 25.1.0 ([#5880](https://github.com/cookiecutter/cookiecutter-django/pull/5880))
|
|
||||||
|
|
||||||
- Update pytest to 8.4.0 ([#5881](https://github.com/cookiecutter/cookiecutter-django/pull/5881))
|
|
||||||
|
|
||||||
## 2025.06.02
|
## 2025.06.02
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -768,13 +768,6 @@ Listed in alphabetical order.
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>DevForsure</td>
|
|
||||||
<td>
|
|
||||||
<a href="https://github.com/DevForsure">DevForsure</a>
|
|
||||||
</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>Diane Chen</td>
|
<td>Diane Chen</td>
|
||||||
<td>
|
<td>
|
||||||
|
@ -1517,13 +1510,6 @@ Listed in alphabetical order.
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>Lucas Klasa</td>
|
|
||||||
<td>
|
|
||||||
<a href="https://github.com/lucaskbr">lucaskbr</a>
|
|
||||||
</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>Luis Nell</td>
|
<td>Luis Nell</td>
|
||||||
<td>
|
<td>
|
||||||
|
|
18
README.md
18
README.md
|
@ -84,11 +84,11 @@ and then editing the results to include your name, email, and various configurat
|
||||||
|
|
||||||
First, get Cookiecutter. Trust me, it's awesome:
|
First, get Cookiecutter. Trust me, it's awesome:
|
||||||
|
|
||||||
pip install "cookiecutter>=1.7.0"
|
$ pip install "cookiecutter>=1.7.0"
|
||||||
|
|
||||||
Now run it against this repo:
|
Now run it against this repo:
|
||||||
|
|
||||||
cookiecutter https://github.com/cookiecutter/cookiecutter-django
|
$ cookiecutter https://github.com/cookiecutter/cookiecutter-django
|
||||||
|
|
||||||
You'll be prompted for some values. Provide them, then a Django project will be created for you.
|
You'll be prompted for some values. Provide them, then a Django project will be created for you.
|
||||||
|
|
||||||
|
@ -175,16 +175,16 @@ Answer the prompts with your own desired [options](http://cookiecutter-django.re
|
||||||
|
|
||||||
Enter the project and take a look around:
|
Enter the project and take a look around:
|
||||||
|
|
||||||
cd reddit/
|
$ cd reddit/
|
||||||
ls
|
$ ls
|
||||||
|
|
||||||
Create a git repo and push it there:
|
Create a git repo and push it there:
|
||||||
|
|
||||||
git init
|
$ git init
|
||||||
git add .
|
$ git add .
|
||||||
git commit -m "first awesome commit"
|
$ git commit -m "first awesome commit"
|
||||||
git remote add origin git@github.com:pydanny/redditclone.git
|
$ git remote add origin git@github.com:pydanny/redditclone.git
|
||||||
git push -u origin master
|
$ git push -u origin master
|
||||||
|
|
||||||
Now take a look at your repo. Don't forget to carefully look at the generated README. Awesome, right?
|
Now take a look at your repo. Don't forget to carefully look at the generated README. Awesome, right?
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[project]
|
[project]
|
||||||
name = "cookiecutter-django"
|
name = "cookiecutter-django"
|
||||||
version = "2025.07.27"
|
version = "2025.06.02"
|
||||||
description = "A Cookiecutter template for creating production-ready Django projects quickly."
|
description = "A Cookiecutter template for creating production-ready Django projects quickly."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
keywords = [
|
keywords = [
|
||||||
|
@ -43,7 +43,7 @@ dependencies = [
|
||||||
"pytest-xdist==3.6.1",
|
"pytest-xdist==3.6.1",
|
||||||
"pyyaml==6.0.2",
|
"pyyaml==6.0.2",
|
||||||
"requests==2.32.3",
|
"requests==2.32.3",
|
||||||
"ruff==0.12.7",
|
"ruff==0.11.12",
|
||||||
"sh==2.1; sys_platform!='win23'",
|
"sh==2.1; sys_platform!='win23'",
|
||||||
"tox==4.23.2",
|
"tox==4.23.2",
|
||||||
"tox-uv>=1.17",
|
"tox-uv>=1.17",
|
||||||
|
|
42
uv.lock
42
uv.lock
|
@ -182,7 +182,7 @@ wheels = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cookiecutter-django"
|
name = "cookiecutter-django"
|
||||||
version = "2025.7.27"
|
version = "2025.6.2"
|
||||||
source = { virtual = "." }
|
source = { virtual = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "binaryornot" },
|
{ name = "binaryornot" },
|
||||||
|
@ -229,7 +229,7 @@ requires-dist = [
|
||||||
{ name = "pytest-xdist", specifier = "==3.6.1" },
|
{ name = "pytest-xdist", specifier = "==3.6.1" },
|
||||||
{ name = "pyyaml", specifier = "==6.0.2" },
|
{ name = "pyyaml", specifier = "==6.0.2" },
|
||||||
{ name = "requests", specifier = "==2.32.3" },
|
{ name = "requests", specifier = "==2.32.3" },
|
||||||
{ name = "ruff", specifier = "==0.12.7" },
|
{ name = "ruff", specifier = "==0.11.12" },
|
||||||
{ name = "sh", marker = "sys_platform != 'win23'", specifier = "==2.1" },
|
{ name = "sh", marker = "sys_platform != 'win23'", specifier = "==2.1" },
|
||||||
{ name = "tox", specifier = "==4.23.2" },
|
{ name = "tox", specifier = "==4.23.2" },
|
||||||
{ name = "tox-uv", specifier = ">=1.17" },
|
{ name = "tox-uv", specifier = ">=1.17" },
|
||||||
|
@ -830,27 +830,27 @@ wheels = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruff"
|
name = "ruff"
|
||||||
version = "0.12.7"
|
version = "0.11.12"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/a1/81/0bd3594fa0f690466e41bd033bdcdf86cba8288345ac77ad4afbe5ec743a/ruff-0.12.7.tar.gz", hash = "sha256:1fc3193f238bc2d7968772c82831a4ff69252f673be371fb49663f0068b7ec71", size = 5197814 }
|
sdist = { url = "https://files.pythonhosted.org/packages/15/0a/92416b159ec00cdf11e5882a9d80d29bf84bba3dbebc51c4898bfbca1da6/ruff-0.11.12.tar.gz", hash = "sha256:43cf7f69c7d7c7d7513b9d59c5d8cafd704e05944f978614aa9faff6ac202603", size = 4202289 }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/e1/d2/6cb35e9c85e7a91e8d22ab32ae07ac39cc34a71f1009a6f9e4a2a019e602/ruff-0.12.7-py3-none-linux_armv6l.whl", hash = "sha256:76e4f31529899b8c434c3c1dede98c4483b89590e15fb49f2d46183801565303", size = 11852189 },
|
{ url = "https://files.pythonhosted.org/packages/60/cc/53eb79f012d15e136d40a8e8fc519ba8f55a057f60b29c2df34efd47c6e3/ruff-0.11.12-py3-none-linux_armv6l.whl", hash = "sha256:c7680aa2f0d4c4f43353d1e72123955c7a2159b8646cd43402de6d4a3a25d7cc", size = 10285597 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/63/5b/a4136b9921aa84638f1a6be7fb086f8cad0fde538ba76bda3682f2599a2f/ruff-0.12.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:789b7a03e72507c54fb3ba6209e4bb36517b90f1a3569ea17084e3fd295500fb", size = 12519389 },
|
{ url = "https://files.pythonhosted.org/packages/e7/d7/73386e9fb0232b015a23f62fea7503f96e29c29e6c45461d4a73bac74df9/ruff-0.11.12-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:2cad64843da9f134565c20bcc430642de897b8ea02e2e79e6e02a76b8dcad7c3", size = 11053154 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a8/c9/3e24a8472484269b6b1821794141f879c54645a111ded4b6f58f9ab0705f/ruff-0.12.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2e1c2a3b8626339bb6369116e7030a4cf194ea48f49b64bb505732a7fce4f4e3", size = 11743384 },
|
{ url = "https://files.pythonhosted.org/packages/4e/eb/3eae144c5114e92deb65a0cb2c72326c8469e14991e9bc3ec0349da1331c/ruff-0.11.12-py3-none-macosx_11_0_arm64.whl", hash = "sha256:9b6886b524a1c659cee1758140138455d3c029783d1b9e643f3624a5ee0cb0aa", size = 10403048 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/26/7c/458dd25deeb3452c43eaee853c0b17a1e84169f8021a26d500ead77964fd/ruff-0.12.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32dec41817623d388e645612ec70d5757a6d9c035f3744a52c7b195a57e03860", size = 11943759 },
|
{ url = "https://files.pythonhosted.org/packages/29/64/20c54b20e58b1058db6689e94731f2a22e9f7abab74e1a758dfba058b6ca/ruff-0.11.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cc3a3690aad6e86c1958d3ec3c38c4594b6ecec75c1f531e84160bd827b2012", size = 10597062 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/7f/8b/658798472ef260ca050e400ab96ef7e85c366c39cf3dfbef4d0a46a528b6/ruff-0.12.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47ef751f722053a5df5fa48d412dbb54d41ab9b17875c6840a58ec63ff0c247c", size = 11654028 },
|
{ url = "https://files.pythonhosted.org/packages/29/3a/79fa6a9a39422a400564ca7233a689a151f1039110f0bbbabcb38106883a/ruff-0.11.12-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f97fdbc2549f456c65b3b0048560d44ddd540db1f27c778a938371424b49fe4a", size = 10155152 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a8/86/9c2336f13b2a3326d06d39178fd3448dcc7025f82514d1b15816fe42bfe8/ruff-0.12.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a828a5fc25a3efd3e1ff7b241fd392686c9386f20e5ac90aa9234a5faa12c423", size = 13225209 },
|
{ url = "https://files.pythonhosted.org/packages/e5/a4/22c2c97b2340aa968af3a39bc38045e78d36abd4ed3fa2bde91c31e712e3/ruff-0.11.12-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74adf84960236961090e2d1348c1a67d940fd12e811a33fb3d107df61eef8fc7", size = 11723067 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/76/69/df73f65f53d6c463b19b6b312fd2391dc36425d926ec237a7ed028a90fc1/ruff-0.12.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5726f59b171111fa6a69d82aef48f00b56598b03a22f0f4170664ff4d8298efb", size = 14182353 },
|
{ url = "https://files.pythonhosted.org/packages/bc/cf/3e452fbd9597bcd8058856ecd42b22751749d07935793a1856d988154151/ruff-0.11.12-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:b56697e5b8bcf1d61293ccfe63873aba08fdbcbbba839fc046ec5926bdb25a3a", size = 12460807 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/58/1e/de6cda406d99fea84b66811c189b5ea139814b98125b052424b55d28a41c/ruff-0.12.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:74e6f5c04c4dd4aba223f4fe6e7104f79e0eebf7d307e4f9b18c18362124bccd", size = 13631555 },
|
{ url = "https://files.pythonhosted.org/packages/2f/ec/8f170381a15e1eb7d93cb4feef8d17334d5a1eb33fee273aee5d1f8241a3/ruff-0.11.12-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4d47afa45e7b0eaf5e5969c6b39cbd108be83910b5c74626247e366fd7a36a13", size = 12063261 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/6f/ae/625d46d5164a6cc9261945a5e89df24457dc8262539ace3ac36c40f0b51e/ruff-0.12.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d0bfe4e77fba61bf2ccadf8cf005d6133e3ce08793bbe870dd1c734f2699a3e", size = 12667556 },
|
{ url = "https://files.pythonhosted.org/packages/0d/bf/57208f8c0a8153a14652a85f4116c0002148e83770d7a41f2e90b52d2b4e/ruff-0.11.12-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bf9603fe1bf949de8b09a2da896f05c01ed7a187f4a386cdba6760e7f61be", size = 11329601 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/55/bf/9cb1ea5e3066779e42ade8d0cd3d3b0582a5720a814ae1586f85014656b6/ruff-0.12.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06bfb01e1623bf7f59ea749a841da56f8f653d641bfd046edee32ede7ff6c606", size = 12939784 },
|
{ url = "https://files.pythonhosted.org/packages/c3/56/edf942f7fdac5888094d9ffa303f12096f1a93eb46570bcf5f14c0c70880/ruff-0.11.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08033320e979df3b20dba567c62f69c45e01df708b0f9c83912d7abd3e0801cd", size = 11522186 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/55/7f/7ead2663be5627c04be83754c4f3096603bf5e99ed856c7cd29618c691bd/ruff-0.12.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e41df94a957d50083fd09b916d6e89e497246698c3f3d5c681c8b3e7b9bb4ac8", size = 11771356 },
|
{ url = "https://files.pythonhosted.org/packages/ed/63/79ffef65246911ed7e2290aeece48739d9603b3a35f9529fec0fc6c26400/ruff-0.11.12-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:929b7706584f5bfd61d67d5070f399057d07c70585fa8c4491d78ada452d3bef", size = 10449032 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/17/40/a95352ea16edf78cd3a938085dccc55df692a4d8ba1b3af7accbe2c806b0/ruff-0.12.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:4000623300563c709458d0ce170c3d0d788c23a058912f28bbadc6f905d67afa", size = 11612124 },
|
{ url = "https://files.pythonhosted.org/packages/88/19/8c9d4d8a1c2a3f5a1ea45a64b42593d50e28b8e038f1aafd65d6b43647f3/ruff-0.11.12-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7de4a73205dc5756b8e09ee3ed67c38312dce1aa28972b93150f5751199981b5", size = 10129370 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/4d/74/633b04871c669e23b8917877e812376827c06df866e1677f15abfadc95cb/ruff-0.12.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:69ffe0e5f9b2cf2b8e289a3f8945b402a1b19eff24ec389f45f23c42a3dd6fb5", size = 12479945 },
|
{ url = "https://files.pythonhosted.org/packages/bc/0f/2d15533eaa18f460530a857e1778900cd867ded67f16c85723569d54e410/ruff-0.11.12-py3-none-musllinux_1_2_i686.whl", hash = "sha256:2635c2a90ac1b8ca9e93b70af59dfd1dd2026a40e2d6eebaa3efb0465dd9cf02", size = 11123529 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/be/34/c3ef2d7799c9778b835a76189c6f53c179d3bdebc8c65288c29032e03613/ruff-0.12.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a07a5c8ffa2611a52732bdc67bf88e243abd84fe2d7f6daef3826b59abbfeda4", size = 12998677 },
|
{ url = "https://files.pythonhosted.org/packages/4f/e2/4c2ac669534bdded835356813f48ea33cfb3a947dc47f270038364587088/ruff-0.11.12-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d05d6a78a89166f03f03a198ecc9d18779076ad0eec476819467acb401028c0c", size = 11577642 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/77/ab/aca2e756ad7b09b3d662a41773f3edcbd262872a4fc81f920dc1ffa44541/ruff-0.12.7-py3-none-win32.whl", hash = "sha256:c928f1b2ec59fb77dfdf70e0419408898b63998789cc98197e15f560b9e77f77", size = 11756687 },
|
{ url = "https://files.pythonhosted.org/packages/a7/9b/c9ddf7f924d5617a1c94a93ba595f4b24cb5bc50e98b94433ab3f7ad27e5/ruff-0.11.12-py3-none-win32.whl", hash = "sha256:f5a07f49767c4be4772d161bfc049c1f242db0cfe1bd976e0f0886732a4765d6", size = 10475511 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/b4/71/26d45a5042bc71db22ddd8252ca9d01e9ca454f230e2996bb04f16d72799/ruff-0.12.7-py3-none-win_amd64.whl", hash = "sha256:9c18f3d707ee9edf89da76131956aba1270c6348bfee8f6c647de841eac7194f", size = 12912365 },
|
{ url = "https://files.pythonhosted.org/packages/fd/d6/74fb6d3470c1aada019ffff33c0f9210af746cca0a4de19a1f10ce54968a/ruff-0.11.12-py3-none-win_amd64.whl", hash = "sha256:5a4d9f8030d8c3a45df201d7fb3ed38d0219bccd7955268e863ee4a115fa0832", size = 11523573 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/4c/9b/0b8aa09817b63e78d94b4977f18b1fcaead3165a5ee49251c5d5c245bb2d/ruff-0.12.7-py3-none-win_arm64.whl", hash = "sha256:dfce05101dbd11833a0776716d5d1578641b7fddb537fe7fa956ab85d1769b69", size = 11982083 },
|
{ url = "https://files.pythonhosted.org/packages/44/42/d58086ec20f52d2b0140752ae54b355ea2be2ed46f914231136dd1effcc7/ruff-0.11.12-py3-none-win_arm64.whl", hash = "sha256:65194e37853158d368e333ba282217941029a28ea90913c67e558c611d04daa5", size = 10697770 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
@ -36,10 +36,10 @@ repos:
|
||||||
|
|
||||||
# Run the Ruff linter.
|
# Run the Ruff linter.
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: v0.12.7
|
rev: v0.11.12
|
||||||
hooks:
|
hooks:
|
||||||
# Linter
|
# Linter
|
||||||
- id: ruff-check
|
- id: ruff
|
||||||
args: [--fix, --exit-non-zero-on-fix]
|
args: [--fix, --exit-non-zero-on-fix]
|
||||||
# Formatter
|
# Formatter
|
||||||
- id: ruff-format
|
- id: ruff-format
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# define an alias for the specific python version used in this file.
|
# define an alias for the specific python version used in this file.
|
||||||
FROM docker.io/python:3.12.11-slim-bookworm AS python
|
FROM docker.io/python:3.12.10-slim-bookworm AS python
|
||||||
|
|
||||||
# Python build stage
|
# Python build stage
|
||||||
FROM python AS python-build-stage
|
FROM python AS python-build-stage
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# define an alias for the specific python version used in this file.
|
# define an alias for the specific python version used in this file.
|
||||||
FROM docker.io/python:3.12.11-slim-bookworm AS python
|
FROM docker.io/python:3.12.10-slim-bookworm AS python
|
||||||
|
|
||||||
|
|
||||||
# Python build stage
|
# Python build stage
|
||||||
|
|
|
@ -25,7 +25,7 @@ RUN npm run build
|
||||||
|
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
# define an alias for the specific python version used in this file.
|
# define an alias for the specific python version used in this file.
|
||||||
FROM docker.io/python:3.12.11-slim-bookworm AS python
|
FROM docker.io/python:3.12.10-slim-bookworm AS python
|
||||||
|
|
||||||
# Python build stage
|
# Python build stage
|
||||||
FROM python AS python-build-stage
|
FROM python AS python-build-stage
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM docker.io/traefik:3.5.0
|
FROM docker.io/traefik:3.4.1
|
||||||
RUN mkdir -p /etc/traefik/acme \
|
RUN mkdir -p /etc/traefik/acme \
|
||||||
&& touch /etc/traefik/acme/acme.json \
|
&& touch /etc/traefik/acme/acme.json \
|
||||||
&& chmod 600 /etc/traefik/acme/acme.json
|
&& chmod 600 /etc/traefik/acme/acme.json
|
||||||
|
|
|
@ -17,9 +17,9 @@ app.config_from_object("django.conf:settings", namespace="CELERY")
|
||||||
|
|
||||||
@setup_logging.connect
|
@setup_logging.connect
|
||||||
def config_loggers(*args, **kwargs):
|
def config_loggers(*args, **kwargs):
|
||||||
from logging.config import dictConfig # noqa: PLC0415
|
from logging.config import dictConfig
|
||||||
|
|
||||||
from django.conf import settings # noqa: PLC0415
|
from django.conf import settings
|
||||||
|
|
||||||
dictConfig(settings.LOGGING)
|
dictConfig(settings.LOGGING)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
# ruff: noqa: E501
|
||||||
from .base import * # noqa: F403
|
from .base import * # noqa: F403
|
||||||
from .base import INSTALLED_APPS
|
from .base import INSTALLED_APPS
|
||||||
from .base import MIDDLEWARE
|
from .base import MIDDLEWARE
|
||||||
|
@ -78,7 +79,7 @@ if env("USE_DOCKER") == "yes":
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
hostname, _, ips = socket.gethostbyname_ex(socket.gethostname())
|
hostname, _, ips = socket.gethostbyname_ex(socket.gethostname())
|
||||||
INTERNAL_IPS += [".".join([*ip.split(".")[:-1], "1"]) for ip in ips]
|
INTERNAL_IPS += [".".join(ip.split(".")[:-1] + ["1"]) for ip in ips]
|
||||||
{%- if cookiecutter.frontend_pipeline in ['Gulp', 'Webpack'] %}
|
{%- if cookiecutter.frontend_pipeline in ['Gulp', 'Webpack'] %}
|
||||||
try:
|
try:
|
||||||
_, _, ips = socket.gethostbyname_ex("node")
|
_, _, ips = socket.gethostbyname_ex("node")
|
||||||
|
|
|
@ -15,7 +15,7 @@ from inside the `{{cookiecutter.project_slug}}/docs` directory.
|
||||||
{% else %}
|
{% else %}
|
||||||
To build and serve docs, use the commands::
|
To build and serve docs, use the commands::
|
||||||
|
|
||||||
docker compose -f docker-compose.docs.yml up
|
docker compose -f docker-compose.local.yml up docs
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ def main():
|
||||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.local")
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.local")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from django.core.management import execute_from_command_line # noqa: PLC0415
|
from django.core.management import execute_from_command_line
|
||||||
except ImportError as exc:
|
except ImportError as exc:
|
||||||
raise ImportError( # noqa: TRY003
|
raise ImportError( # noqa: TRY003
|
||||||
"Couldn't import Django. Are you sure it's installed and " # noqa: EM101
|
"Couldn't import Django. Are you sure it's installed and " # noqa: EM101
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
python-slugify==8.0.4 # https://github.com/un33k/python-slugify
|
python-slugify==8.0.4 # https://github.com/un33k/python-slugify
|
||||||
Pillow==11.3.0 # pyup: != 11.2.0 # https://github.com/python-pillow/Pillow
|
Pillow==11.2.1 # pyup: != 11.2.0 # https://github.com/python-pillow/Pillow
|
||||||
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
|
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
|
||||||
{%- if cookiecutter.windows == 'y' and cookiecutter.use_docker == 'n' %}
|
{%- if cookiecutter.windows == 'y' and cookiecutter.use_docker == 'n' %}
|
||||||
rcssmin==1.1.2 --install-option="--without-c-extensions" # https://github.com/ndparker/rcssmin
|
rcssmin==1.1.2 --install-option="--without-c-extensions" # https://github.com/ndparker/rcssmin
|
||||||
|
@ -7,7 +7,7 @@ rcssmin==1.1.2 --install-option="--without-c-extensions" # https://github.com/n
|
||||||
rcssmin==1.1.2 # https://github.com/ndparker/rcssmin
|
rcssmin==1.1.2 # https://github.com/ndparker/rcssmin
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
argon2-cffi==25.1.0 # https://github.com/hynek/argon2_cffi
|
argon2-cffi==23.1.0 # https://github.com/hynek/argon2_cffi
|
||||||
{%- if cookiecutter.use_whitenoise == 'y' %}
|
{%- if cookiecutter.use_whitenoise == 'y' %}
|
||||||
whitenoise==6.9.0 # https://github.com/evansd/whitenoise
|
whitenoise==6.9.0 # https://github.com/evansd/whitenoise
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
@ -23,22 +23,22 @@ flower==2.0.1 # https://github.com/mher/flower
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if cookiecutter.use_async == 'y' %}
|
{%- if cookiecutter.use_async == 'y' %}
|
||||||
uvicorn[standard]==0.35.0 # https://github.com/encode/uvicorn
|
uvicorn[standard]==0.34.3 # https://github.com/encode/uvicorn
|
||||||
uvicorn-worker==0.3.0 # https://github.com/Kludex/uvicorn-worker
|
uvicorn-worker==0.3.0 # https://github.com/Kludex/uvicorn-worker
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
# Django
|
# Django
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
django==5.1.11 # pyup: < 5.2 # https://www.djangoproject.com/
|
django==5.1.9 # pyup: < 5.2 # https://www.djangoproject.com/
|
||||||
django-environ==0.12.0 # https://github.com/joke2k/django-environ
|
django-environ==0.12.0 # https://github.com/joke2k/django-environ
|
||||||
django-model-utils==5.0.0 # https://github.com/jazzband/django-model-utils
|
django-model-utils==5.0.0 # https://github.com/jazzband/django-model-utils
|
||||||
django-allauth[mfa]==65.10.0 # https://github.com/pennersr/django-allauth
|
django-allauth[mfa]==65.9.0 # https://github.com/pennersr/django-allauth
|
||||||
django-crispy-forms==2.4 # https://github.com/django-crispy-forms/django-crispy-forms
|
django-crispy-forms==2.4 # https://github.com/django-crispy-forms/django-crispy-forms
|
||||||
crispy-bootstrap5==2025.6 # https://github.com/django-crispy-forms/crispy-bootstrap5
|
crispy-bootstrap5==2025.4 # https://github.com/django-crispy-forms/crispy-bootstrap5
|
||||||
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
|
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
|
||||||
django-compressor==4.5.1 # https://github.com/django-compressor/django-compressor
|
django-compressor==4.5.1 # https://github.com/django-compressor/django-compressor
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
django-redis==6.0.0 # https://github.com/jazzband/django-redis
|
django-redis==5.4.0 # https://github.com/jazzband/django-redis
|
||||||
{%- if cookiecutter.use_drf == 'y' %}
|
{%- if cookiecutter.use_drf == 'y' %}
|
||||||
# Django REST Framework
|
# Django REST Framework
|
||||||
djangorestframework==3.16.0 # https://github.com/encode/django-rest-framework
|
djangorestframework==3.16.0 # https://github.com/encode/django-rest-framework
|
||||||
|
@ -47,5 +47,5 @@ django-cors-headers==4.7.0 # https://github.com/adamchainz/django-cors-headers
|
||||||
drf-spectacular==0.28.0 # https://github.com/tfranzel/drf-spectacular
|
drf-spectacular==0.28.0 # https://github.com/tfranzel/drf-spectacular
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if cookiecutter.frontend_pipeline == 'Webpack' %}
|
{%- if cookiecutter.frontend_pipeline == 'Webpack' %}
|
||||||
django-webpack-loader==3.2.1 # https://github.com/django-webpack/django-webpack-loader
|
django-webpack-loader==3.2.0 # https://github.com/django-webpack/django-webpack-loader
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
|
@ -8,14 +8,14 @@ psycopg[c]==3.2.9 # https://github.com/psycopg/psycopg
|
||||||
psycopg[binary]==3.2.9 # https://github.com/psycopg/psycopg
|
psycopg[binary]==3.2.9 # https://github.com/psycopg/psycopg
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if cookiecutter.use_async == 'y' or cookiecutter.use_celery == 'y' %}
|
{%- if cookiecutter.use_async == 'y' or cookiecutter.use_celery == 'y' %}
|
||||||
watchfiles==1.1.0 # https://github.com/samuelcolvin/watchfiles
|
watchfiles==1.0.5 # https://github.com/samuelcolvin/watchfiles
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
mypy==1.17.0 # https://github.com/python/mypy
|
mypy==1.15.0 # https://github.com/python/mypy
|
||||||
django-stubs[compatible-mypy]==5.2.2 # https://github.com/typeddjango/django-stubs
|
django-stubs[compatible-mypy]==5.2.0 # https://github.com/typeddjango/django-stubs
|
||||||
pytest==8.4.1 # https://github.com/pytest-dev/pytest
|
pytest==8.3.5 # https://github.com/pytest-dev/pytest
|
||||||
pytest-sugar==1.0.0 # https://github.com/Teemu/pytest-sugar
|
pytest-sugar==1.0.0 # https://github.com/Teemu/pytest-sugar
|
||||||
{%- if cookiecutter.use_drf == "y" %}
|
{%- if cookiecutter.use_drf == "y" %}
|
||||||
djangorestframework-stubs==3.16.0 # https://github.com/typeddjango/djangorestframework-stubs
|
djangorestframework-stubs==3.16.0 # https://github.com/typeddjango/djangorestframework-stubs
|
||||||
|
@ -28,8 +28,8 @@ sphinx-autobuild==2024.10.3 # https://github.com/GaretJax/sphinx-autobuild
|
||||||
|
|
||||||
# Code quality
|
# Code quality
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
ruff==0.12.7 # https://github.com/astral-sh/ruff
|
ruff==0.11.12 # https://github.com/astral-sh/ruff
|
||||||
coverage==7.10.1 # https://github.com/nedbat/coveragepy
|
coverage==7.8.2 # https://github.com/nedbat/coveragepy
|
||||||
djlint==1.36.4 # https://github.com/Riverside-Healthcare/djLint
|
djlint==1.36.4 # https://github.com/Riverside-Healthcare/djLint
|
||||||
pre-commit==4.2.0 # https://github.com/pre-commit/pre-commit
|
pre-commit==4.2.0 # https://github.com/pre-commit/pre-commit
|
||||||
|
|
||||||
|
@ -39,5 +39,5 @@ factory-boy==3.3.2 # https://github.com/FactoryBoy/factory_boy
|
||||||
|
|
||||||
django-debug-toolbar==5.2.0 # https://github.com/jazzband/django-debug-toolbar
|
django-debug-toolbar==5.2.0 # https://github.com/jazzband/django-debug-toolbar
|
||||||
django-extensions==4.1 # https://github.com/django-extensions/django-extensions
|
django-extensions==4.1 # https://github.com/django-extensions/django-extensions
|
||||||
django-coverage-plugin==3.1.1 # https://github.com/nedbat/django_coverage_plugin
|
django-coverage-plugin==3.1.0 # https://github.com/nedbat/django_coverage_plugin
|
||||||
pytest-django==4.11.1 # https://github.com/pytest-dev/pytest-django
|
pytest-django==4.11.1 # https://github.com/pytest-dev/pytest-django
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
gunicorn==23.0.0 # https://github.com/benoitc/gunicorn
|
gunicorn==23.0.0 # https://github.com/benoitc/gunicorn
|
||||||
psycopg[c]==3.2.9 # https://github.com/psycopg/psycopg
|
psycopg[c]==3.2.9 # https://github.com/psycopg/psycopg
|
||||||
{%- if cookiecutter.use_whitenoise == 'n'and cookiecutter.cloud_provider in ('AWS', 'GCP') %}
|
{%- if cookiecutter.use_whitenoise == 'n'and cookiecutter.cloud_provider in ('AWS', 'GCP') %}
|
||||||
Collectfasta==3.3.0 # https://github.com/jasongi/collectfasta
|
Collectfasta==3.2.1 # https://github.com/jasongi/collectfasta
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if cookiecutter.use_sentry == "y" %}
|
{%- if cookiecutter.use_sentry == "y" %}
|
||||||
sentry-sdk==2.34.1 # https://github.com/getsentry/sentry-python
|
sentry-sdk==2.29.1 # https://github.com/getsentry/sentry-python
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if cookiecutter.use_docker == "n" and cookiecutter.windows == "y" %}
|
{%- if cookiecutter.use_docker == "n" and cookiecutter.windows == "y" %}
|
||||||
hiredis==3.2.1 # https://github.com/redis/hiredis-py
|
hiredis==3.2.1 # https://github.com/redis/hiredis-py
|
||||||
|
@ -24,21 +24,21 @@ django-storages[google]==1.14.6 # https://github.com/jschneier/django-storages
|
||||||
django-storages[azure]==1.14.6 # https://github.com/jschneier/django-storages
|
django-storages[azure]==1.14.6 # https://github.com/jschneier/django-storages
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if cookiecutter.mail_service == 'Mailgun' %}
|
{%- if cookiecutter.mail_service == 'Mailgun' %}
|
||||||
django-anymail[mailgun]==13.0.1 # https://github.com/anymail/django-anymail
|
django-anymail[mailgun]==13.0 # https://github.com/anymail/django-anymail
|
||||||
{%- elif cookiecutter.mail_service == 'Amazon SES' %}
|
{%- elif cookiecutter.mail_service == 'Amazon SES' %}
|
||||||
django-anymail[amazon-ses]==13.0.1 # https://github.com/anymail/django-anymail
|
django-anymail[amazon-ses]==13.0 # https://github.com/anymail/django-anymail
|
||||||
{%- elif cookiecutter.mail_service == 'Mailjet' %}
|
{%- elif cookiecutter.mail_service == 'Mailjet' %}
|
||||||
django-anymail[mailjet]==13.0.1 # https://github.com/anymail/django-anymail
|
django-anymail[mailjet]==13.0 # https://github.com/anymail/django-anymail
|
||||||
{%- elif cookiecutter.mail_service == 'Mandrill' %}
|
{%- elif cookiecutter.mail_service == 'Mandrill' %}
|
||||||
django-anymail[mandrill]==13.0.1 # https://github.com/anymail/django-anymail
|
django-anymail[mandrill]==13.0 # https://github.com/anymail/django-anymail
|
||||||
{%- elif cookiecutter.mail_service == 'Postmark' %}
|
{%- elif cookiecutter.mail_service == 'Postmark' %}
|
||||||
django-anymail[postmark]==13.0.1 # https://github.com/anymail/django-anymail
|
django-anymail[postmark]==13.0 # https://github.com/anymail/django-anymail
|
||||||
{%- elif cookiecutter.mail_service == 'Sendgrid' %}
|
{%- elif cookiecutter.mail_service == 'Sendgrid' %}
|
||||||
django-anymail[sendgrid]==13.0.1 # https://github.com/anymail/django-anymail
|
django-anymail[sendgrid]==13.0 # https://github.com/anymail/django-anymail
|
||||||
{%- elif cookiecutter.mail_service == 'Brevo' %}
|
{%- elif cookiecutter.mail_service == 'Brevo' %}
|
||||||
django-anymail[brevo]==13.0.1 # https://github.com/anymail/django-anymail
|
django-anymail[brevo]==13.0 # https://github.com/anymail/django-anymail
|
||||||
{%- elif cookiecutter.mail_service == 'SparkPost' %}
|
{%- elif cookiecutter.mail_service == 'SparkPost' %}
|
||||||
django-anymail[sparkpost]==13.0.1 # https://github.com/anymail/django-anymail
|
django-anymail[sparkpost]==13.0 # https://github.com/anymail/django-anymail
|
||||||
{%- elif cookiecutter.mail_service == 'Other SMTP' %}
|
{%- elif cookiecutter.mail_service == 'Other SMTP' %}
|
||||||
django-anymail==13.0.1 # https://github.com/anymail/django-anymail
|
django-anymail==13.0 # https://github.com/anymail/django-anymail
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
|
@ -10,4 +10,4 @@ class UsersConfig(AppConfig):
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
with contextlib.suppress(ImportError):
|
with contextlib.suppress(ImportError):
|
||||||
import {{ cookiecutter.project_slug }}.users.signals # noqa: F401, PLC0415
|
import {{ cookiecutter.project_slug }}.users.signals # noqa: F401
|
||||||
|
|
|
@ -60,7 +60,7 @@ class TestUserAdmin:
|
||||||
def _force_allauth(self, settings):
|
def _force_allauth(self, settings):
|
||||||
settings.DJANGO_ADMIN_FORCE_ALLAUTH = True
|
settings.DJANGO_ADMIN_FORCE_ALLAUTH = True
|
||||||
# Reload the admin module to apply the setting change
|
# Reload the admin module to apply the setting change
|
||||||
import {{ cookiecutter.project_slug }}.users.admin as users_admin # noqa: PLC0415
|
import {{ cookiecutter.project_slug }}.users.admin as users_admin
|
||||||
|
|
||||||
with contextlib.suppress(admin.sites.AlreadyRegistered): # type: ignore[attr-defined]
|
with contextlib.suppress(admin.sites.AlreadyRegistered): # type: ignore[attr-defined]
|
||||||
reload(users_admin)
|
reload(users_admin)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user