Skip to content

Commit 035bd83

Browse files
authored
Merge pull request #4 from 18F/eg-add-linting
Linting setup
2 parents 6da63ea + d6489db commit 035bd83

52 files changed

Lines changed: 1959 additions & 1964 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dir-locals.el

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
((web-mode . (
2+
(web-mode-markup-indent-offset . 2)
3+
(web-mode-code-indent-offset . 2)
4+
(python-flymake-command '("docker compose exec web flake8 ."))
5+
(eval web-mode-set-engine 'django)
6+
(eval drupal-mode)
7+
(eval electric-pair-mode nil)
8+
(eval hl-line-mode)))
9+
(auto-mode-alist . (
10+
("\\.html\\'" . web-mode)
11+
("\\.py\\'" . python-ts-mode))))

.flake8

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[flake8]
2+
max-line-length = 120
3+
max-complexity = 10
4+
# E203 Whitespace before ':'
5+
extend-ignore = E203
6+
# F401 Module imported but unused
7+
# F403 'from module import *' used
8+
# E402 Module level import not at top of file
9+
per-file-ignores = __init__.py:F401,F403,E402
10+
exclude =
11+
.venv
12+
weather.gov

Makefile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,15 @@ pause:
2828

2929
build-css: # Build CSS
3030
docker compose run --rm uswds npx gulp compile
31+
32+
python-lint:
33+
docker compose exec web python -m black .
34+
docker compose exec web python -m flake8 .
35+
36+
template-lint:
37+
docker compose exec web djlint weather/templates/ --extension=html
38+
39+
template-format:
40+
docker compose exec web djlint weather/templates/ --reformat --extension=html
41+
42+
lint: python-lint template-format template-lint

manage.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
def main():
88
"""Run administrative tasks."""
9-
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'weathergov.settings')
9+
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "weathergov.settings")
1010
try:
1111
from django.core.management import execute_from_command_line
1212
except ImportError as exc:
@@ -18,5 +18,5 @@ def main():
1818
execute_from_command_line(sys.argv)
1919

2020

21-
if __name__ == '__main__':
21+
if __name__ == "__main__":
2222
main()

pyproject.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[tool.black]
2+
line-length=120
3+
unstable=true
4+
5+
[tool.djlint]
6+
# H030 Consider adding a meta description.
7+
# H031 Consider adding meta keywords.
8+
# H006 img tag should have height and width attributes.
9+
# H023 Do not use entity references.
10+
# H020 Empty tag pair found. Consider removing.
11+
# H021 Inline styles should be avoided.
12+
ignore="H030,H031,H006,H023,H020,H021"
13+
indent=2
14+
15+
16+
[tool.mypy]
17+
ignore_missing_imports = true

requirements.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,6 @@ Django>=5.0
22
psycopg2>=2.8
33
mysqlclient>=2.2
44
requests
5+
black
6+
djlint
7+
flake8

weather/admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
from django.contrib import admin
1+
# from django.contrib import admin
22

33
# Register your models here.

weather/apps.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22

33

44
class WeatherConfig(AppConfig):
5-
default_auto_field = 'django.db.models.BigAutoField'
6-
name = 'weather'
5+
default_auto_field = "django.db.models.BigAutoField"
6+
name = "weather"

weather/context_processors.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
from django.conf import settings
22

3+
34
def route_info(request):
45
return {
5-
'path_name': request.resolver_match.view_name,
6-
'site_name': settings.SITE_NAME,
7-
'site_slogan': settings.SITE_SLOGAN,
8-
'site_logo': settings.SITE_LOGO
6+
"path_name": request.resolver_match.view_name,
7+
"site_name": settings.SITE_NAME,
8+
"site_slogan": settings.SITE_SLOGAN,
9+
"site_logo": settings.SITE_LOGO,
910
}

weather/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
from django.db import models
1+
# from django.db import models
22

33
# Create your models here.

0 commit comments

Comments
 (0)