Setup pre-commit for the template files (#3433)

This commit is contained in:
Bruno Alla 2021-11-26 15:41:50 +00:00 committed by GitHub
parent 15f403c02c
commit 407a7d8bbc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 87 additions and 43 deletions

View File

@ -5,16 +5,20 @@ on:
pull_request:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: "3.9"
cache: pip
- name: Run pre-commit
uses: pre-commit/action@v2.0.3
tox:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tox-env:
- py39
- black-template
name: "tox env ${{ matrix.tox-env }}"
name: "Test with tox"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
@ -25,8 +29,8 @@ jobs:
run: |
python -m pip install -U pip
python -m pip install -U tox
- name: Tox ${{ matrix.tox-env }}
run: tox -e ${{ matrix.tox-env }}
- name: Run tox
run: tox -e py39
docker:
runs-on: ubuntu-latest

29
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,29 @@
exclude: "{{cookiecutter.project_slug}}"
default_stages: [commit]
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- id: trailing-whitespace
- id: check-yaml
- repo: https://github.com/psf/black
rev: 21.11b1
hooks:
- id: black
- repo: https://github.com/PyCQA/isort
rev: 5.10.1
hooks:
- id: isort
- repo: https://github.com/PyCQA/flake8
rev: 4.0.1
hooks:
- id: flake8
ci:
autoupdate_schedule: weekly
skip: []
submodules: false

View File

@ -7,10 +7,7 @@
#
# All configuration values have a default; values that are commented out
# serve to show the default.
from datetime import datetime
import os
import sys
now = datetime.now()
@ -242,7 +239,8 @@ texinfo_documents = [
"Cookiecutter Django documentation",
"Daniel Roy Greenfeld",
"Cookiecutter Django",
"A Cookiecutter template for creating production-ready Django projects quickly.",
"A Cookiecutter template for creating production-ready "
"Django projects quickly.",
"Miscellaneous",
)
]

View File

@ -5,7 +5,8 @@ NOTE:
can potentially be run in Python 2.x environment
(at least so we presume in `pre_gen_project.py`).
TODO: ? restrict Cookiecutter Django project initialization to Python 3.x environments only
TODO: restrict Cookiecutter Django project initialization to
Python 3.x environments only
"""
from __future__ import print_function
@ -164,8 +165,8 @@ def set_flag(file_path, flag, value=None, formatted=None, *args, **kwargs):
random_string = generate_random_string(*args, **kwargs)
if random_string is None:
print(
"We couldn't find a secure pseudo-random number generator on your system. "
"Please, make sure to manually {} later.".format(flag)
"We couldn't find a secure pseudo-random number generator on your "
"system. Please, make sure to manually {} later.".format(flag)
)
random_string = flag
if formatted is not None:

View File

@ -4,7 +4,8 @@ NOTE:
as the whole Cookiecutter Django project initialization
can potentially be run in Python 2.x environment.
TODO: ? restrict Cookiecutter Django project initialization to Python 3.x environments only
TODO: restrict Cookiecutter Django project initialization
to Python 3.x environments only
"""
from __future__ import print_function
@ -39,7 +40,7 @@ if "{{ cookiecutter.use_docker }}".lower() == "n":
)
yes_options, no_options = frozenset(["y"]), frozenset(["n"])
while True:
choice = raw_input().lower()
choice = raw_input().lower() # noqa: F821
if choice in yes_options:
break
@ -65,7 +66,8 @@ if (
and "{{ cookiecutter.cloud_provider }}" == "None"
):
print(
"You should either use Whitenoise or select a Cloud Provider to serve static files"
"You should either use Whitenoise or select a "
"Cloud Provider to serve static files"
)
sys.exit(1)
@ -77,6 +79,7 @@ if (
and "{{ cookiecutter.mail_service }}" == "Amazon SES"
):
print(
"You should either use AWS or select a different Mail Service for sending emails."
"You should either use AWS or select a different "
"Mail Service for sending emails."
)
sys.exit(1)

View File

@ -1 +0,0 @@

View File

@ -85,7 +85,7 @@ def group_pulls_by_change_type(
"Updated": [],
}
for pull in pull_requests_list:
label_names = {l.name for l in pull.labels}
label_names = {label.name for label in pull.labels}
if "update" in label_names:
group_name = "Updated"
elif "bug" in label_names:

7
setup.cfg Normal file
View File

@ -0,0 +1,7 @@
[flake8]
exclude = docs
max-line-length = 88
[isort]
profile = black
known_first_party = tests,scripts,hooks

View File

@ -13,7 +13,10 @@ with open("README.rst") as readme_file:
setup(
name="cookiecutter-django",
version=version,
description="A Cookiecutter template for creating production-ready Django projects quickly.",
description=(
"A Cookiecutter template for creating production-ready "
"Django projects quickly."
),
long_description=long_description,
author="Daniel Roy Greenfeld",
author_email="pydanny@gmail.com",

View File

@ -2,10 +2,10 @@ import os
import re
import pytest
from cookiecutter.exceptions import FailedHookException
import sh
import yaml
from binaryornot.check import is_binary
from cookiecutter.exceptions import FailedHookException
PATTERN = r"{{(\s?cookiecutter)[.](.*?)}}"
RE_OBJ = re.compile(PATTERN)