Skip to content

Commit a740a50

Browse files
committed
Setup dev tools and format with Ruff
1 parent 9f84653 commit a740a50

File tree

8 files changed

+48
-36
lines changed

8 files changed

+48
-36
lines changed

pyproject.toml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,28 @@ allow-direct-references = true
5252

5353
[tool.hatch.build.targets.wheel]
5454
packages = ["src/webstack_django_sorting"]
55+
56+
[tool.ruff]
57+
line-length = 100
58+
target-version = "py38"
59+
60+
[tool.ruff.lint]
61+
select = ["E", "F", "I", "UP", "B", "SIM"]
62+
63+
[tool.mypy]
64+
python_version = "3.8"
65+
plugins = ["mypy_django_plugin.main"]
66+
strict = false
67+
warn_return_any = true
68+
warn_unused_configs = true
69+
70+
[[tool.mypy.overrides]]
71+
module = "django.*"
72+
ignore_missing_imports = true
73+
74+
[tool.django-stubs]
75+
django_settings_module = "testproj.settings"
76+
77+
[tool.pytest.ini_options]
78+
DJANGO_SETTINGS_MODULE = "testproj.settings"
79+
pythonpath = ["src/testproj"]

src/testproj/manage.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/usr/bin/env python
22
"""Django's command-line utility for administrative tasks."""
3+
34
import os
45
import sys
56

src/testproj/testproj/settings.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,7 @@
8383
# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators
8484

8585
AUTH_PASSWORD_VALIDATORS = [
86-
{
87-
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator"
88-
},
86+
{"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator"},
8987
{"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator"},
9088
{"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator"},
9189
{"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator"},

src/testproj/testproj/testapp/tests.py

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,8 @@ class IndexTest(TestCase):
99
def setUp(self):
1010
self.url = reverse("secret_list")
1111

12-
self.foo_file = models.SecretFile.objects.create(
13-
filename="foo.txt", order=1, size=1024
14-
)
15-
self.bar_file = models.SecretFile.objects.create(
16-
filename="bar.txt", order=2, size=512
17-
)
12+
self.foo_file = models.SecretFile.objects.create(filename="foo.txt", order=1, size=1024)
13+
self.bar_file = models.SecretFile.objects.create(filename="bar.txt", order=2, size=512)
1814

1915
def test_list(self):
2016
response = self.client.get(self.url)
@@ -46,15 +42,9 @@ def setUp(self):
4642
self.nulls_first_url = reverse("nulls_first")
4743
self.nulls_last_url = reverse("nulls_last")
4844

49-
self.foo_file = models.SecretFile.objects.create(
50-
filename="foo.txt", order=1, size=1024
51-
)
52-
self.bar_file = models.SecretFile.objects.create(
53-
filename="bar.txt", order=2, size=512
54-
)
55-
self.none_file = models.SecretFile.objects.create(
56-
filename=None, order=3, size=512
57-
)
45+
self.foo_file = models.SecretFile.objects.create(filename="foo.txt", order=1, size=1024)
46+
self.bar_file = models.SecretFile.objects.create(filename="bar.txt", order=2, size=512)
47+
self.none_file = models.SecretFile.objects.create(filename=None, order=3, size=512)
5848

5949
def test_sorting_nulls_first(self):
6050
"""Verify None sorted field_name is in first places when sorting in asc and desc order"""

src/testproj/testproj/testapp/views.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ def home(request):
88

99

1010
def secret_list(request):
11-
return render(
12-
request, "secret_list.html", {"secret_files": models.SecretFile.objects.all()}
13-
)
11+
return render(request, "secret_list.html", {"secret_files": models.SecretFile.objects.all()})
12+
1413

1514
def secret_list_some_desc(request):
1615
return render(
1716
request, "secret_list_some_desc.html", {"secret_files": models.SecretFile.objects.all()}
1817
)
1918

19+
2020
def secret_list_nulls_first(request):
2121
return render(
2222
request,
@@ -34,15 +34,15 @@ def secret_list_nulls_last(request):
3434

3535

3636
def jinja_secret_list(request):
37-
return render(
38-
request, "secret_list.jinja2", {"secret_files": models.SecretFile.objects.all()}
39-
)
37+
return render(request, "secret_list.jinja2", {"secret_files": models.SecretFile.objects.all()})
38+
4039

4140
def jinja_secret_list_some_desc(request):
4241
return render(
4342
request, "secret_list_some_desc.jinja2", {"secret_files": models.SecretFile.objects.all()}
4443
)
4544

45+
4646
def jinja_secret_list_nulls_first(request):
4747
return render(
4848
request,

src/testproj/testproj/urls.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,15 @@
66
urlpatterns = [
77
path("", views.home, name="home"),
88
path("list", views.secret_list, name="secret_list"),
9-
path("list_some_desc", views.secret_list_some_desc, name="secret_list_some_desc"),
9+
path("list_some_desc", views.secret_list_some_desc, name="secret_list_some_desc"),
1010
path("nulls/first", views.secret_list_nulls_first, name="nulls_first"),
1111
path("nulls/last", views.secret_list_nulls_last, name="nulls_last"),
1212
path("jinja/list", views.jinja_secret_list, name="jinja_secret_list"),
13-
path("jinja/list_some_desc", views.jinja_secret_list_some_desc, name="jinja_secret_list_some_desc"),
13+
path(
14+
"jinja/list_some_desc",
15+
views.jinja_secret_list_some_desc,
16+
name="jinja_secret_list_some_desc",
17+
),
1418
path(
1519
"jinja/nulls/first",
1620
views.jinja_secret_list_nulls_first,

src/webstack_django_sorting/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
DEFAULT_SORT_UP = getattr(settings, "DEFAULT_SORT_UP", " ↑")
44
DEFAULT_SORT_DOWN = getattr(settings, "DEFAULT_SORT_DOWN", " ↓")
5-
INVALID_FIELD_RAISES_404 = getattr(settings, "SORTING_INVALID_FIELD_RAISES_404", False)
5+
INVALID_FIELD_RAISES_404 = getattr(settings, "SORTING_INVALID_FIELD_RAISES_404", False)

src/webstack_django_sorting/templatetags/sorting_tags.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,7 @@ def anchor(parser, token):
3535
except IndexError:
3636
title = bits[1].capitalize()
3737

38-
default_sort_order = (
39-
"desc" if len(bits) >= 4 and bits[3].strip("'\"") == "desc" else "asc"
40-
)
38+
default_sort_order = "desc" if len(bits) >= 4 and bits[3].strip("'\"") == "desc" else "asc"
4139

4240
return SortAnchorNode(
4341
bits[1].strip(),
@@ -61,9 +59,7 @@ class SortAnchorNode(template.Node):
6159
6260
"""
6361

64-
def __init__(
65-
self, field, title, title_is_var, title_is_translatable, default_sort_order
66-
):
62+
def __init__(self, field, title, title_is_var, title_is_translatable, default_sort_order):
6763
self.field = field
6864
self.title = title
6965
self.title_is_var = title_is_var
@@ -85,9 +81,7 @@ def render(self, context):
8581

8682
def autosort(parser, token):
8783
bits = [b.strip("\"'") for b in token.split_contents()]
88-
help_msg = (
89-
"autosort tag synopsis: {%% autosort queryset [as " "context_variable] %%}"
90-
)
84+
help_msg = "autosort tag synopsis: {%% autosort queryset [as context_variable] %%}"
9185
context_var = None
9286

9387
# Check if their is some optional parameter (as new_context_var, nulls)

0 commit comments

Comments
 (0)