Skip to content

Commit 1df4321

Browse files
committed
Replace Black and isort with Ruff for code formatting and linting
- Update pre-commit configuration to use Ruff instead of Black/isort - Add Ruff as development dependency in pyproject.toml - Configure Ruff with Django-aware import sorting and formatting rules - Apply Ruff formatting across entire codebase: - Fix import ordering and grouping - Remove unused imports and variables - Fix string formatting (remove f-string prefixes where unnecessary) - Improve code style consistency - Fix minor linting issues (unused variables, comparison style) - Update task completion status in migration spec - Maintain existing line length and formatting preferences This migration consolidates two tools (Black + isort) into one (Ruff) while maintaining code quality standards and improving development workflow efficiency.
1 parent 409e6f3 commit 1df4321

38 files changed

Lines changed: 231 additions & 104 deletions

.kiro/specs/black-to-ruff-migration/tasks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
- Add Ruff as a development dependency in the "# Development & Debugging" section alongside django-debug-toolbar
1111
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 4.1, 4.2, 4.3, 4.4_
1212

13-
- [ ] 2. Update pre-commit configuration
13+
- [x] 2. Update pre-commit configuration
1414

1515
- Replace Black hook (psf/black) with Ruff formatter hook (charliermarsh/ruff-pre-commit)
1616
- Replace isort hook (pycqa/isort) with Ruff import sorting hook using --select I flag

.pre-commit-config.yaml

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
default_language_version:
22
python: python3.11
33

4-
# Ignore all 'migration' folders and .vscode folder
5-
exclude: '^(\.vscode\/?)|(.*\/migrations\/.*)$'
4+
# Ignore migration folders
5+
exclude: '.*\/migrations\/.*'
66

77
repos:
88
# pre-commit hooks
99
- repo: https://github.com/pre-commit/pre-commit-hooks
10-
rev: v3.2.0
10+
rev: v5.0.0
1111
hooks:
1212
- id: no-commit-to-branch
1313
args: [--branch, main]
@@ -22,15 +22,12 @@ repos:
2222
- id: mixed-line-ending
2323
args: [--fix=lf]
2424

25-
# isort
26-
- repo: https://github.com/pycqa/isort
27-
rev: 5.12.0
25+
# ruff
26+
- repo: https://github.com/astral-sh/ruff-pre-commit
27+
rev: v0.12.5
2828
hooks:
29-
- id: isort
30-
31-
# black
32-
- repo: https://github.com/psf/black
33-
rev: 23.3.0
34-
hooks:
35-
- id: black
36-
args: [--preview]
29+
# Run the linter.
30+
- id: ruff-check
31+
args: [--fix]
32+
# Run the formatter.
33+
- id: ruff-format

accounts/views.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
from django.conf import settings
1+
from allauth.account.views import (
2+
LoginView as AllAuthLoginView,
3+
SignupView as AllAuthSignupView,
4+
)
25
from django.contrib import messages
36
from django.contrib.auth.decorators import login_required
47
from django.shortcuts import (
58
get_object_or_404,
69
redirect,
710
render,
811
)
12+
from django.urls import reverse
913
from django.utils import timezone
1014
from django.utils.decorators import method_decorator
1115
from django.views.generic import TemplateView
12-
13-
from allauth.account.views import (
14-
LoginView as AllAuthLoginView,
15-
SignupView as AllAuthSignupView,
16-
)
1716
from meta.views import MetadataMixin
1817

1918
from coderdojochi.forms import (

coderdojochi/admin.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from django.urls import reverse
1212
from django.utils import timezone
1313
from django.utils.html import format_html
14-
1514
from import_export import resources
1615
from import_export.admin import (
1716
ImportExportActionModelAdmin,

coderdojochi/cron.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
from datetime import timedelta
22

3+
import arrow
34
from django.conf import settings
45
from django.utils import timezone
5-
6-
import arrow
76
from django_cron import (
87
CronJobBase,
98
Schedule,

coderdojochi/custom_storages.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
from django.conf import settings
2-
32
from storages.backends.s3boto import S3BotoStorage
43

54

coderdojochi/forms.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import re
22

3+
import html5.forms.widgets as html5_widgets
4+
from dateutil.relativedelta import relativedelta
35
from django import forms
46
from django.contrib.auth import get_user_model
57
from django.core.files.images import get_image_dimensions
@@ -17,11 +19,8 @@
1719
from django.utils.html import format_html
1820
from django.utils.safestring import mark_safe
1921
from django.utils.text import format_lazy
20-
21-
import html5.forms.widgets as html5_widgets
2222
from django_recaptcha.fields import ReCaptchaField
2323
from django_recaptcha.widgets import ReCaptchaV3
24-
from dateutil.relativedelta import relativedelta
2524

2625
from coderdojochi.models import (
2726
CDCUser,

coderdojochi/models/mentor.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22

33
from django.db import models
44
from django.urls import reverse
5-
65
from stdimage.models import StdImageField
76

87
from ..notifications import (
98
NewMentorBgCheckNotification,
109
NewMentorNotification,
11-
NewMentorOrderNotification,
1210
)
1311
from .common import CommonInfo
1412
from .race_ethnicity import RaceEthnicity
@@ -143,7 +141,7 @@ def get_absolute_url(self):
143141
)
144142

145143
def get_avatar(self):
146-
if self.avatar and self.avatar_approved == True:
144+
if self.avatar and self.avatar_approved:
147145
return {
148146
"url": f"{self.avatar.url}",
149147
"thumbnail": {

coderdojochi/models/mentor_order.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import os
2-
31
from django.db import models
42

53
from ..notifications import NewMentorOrderNotification

coderdojochi/models/session.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from django.db import models
88
from django.urls.base import reverse
99
from django.utils import formats
10-
from django.utils.functional import cached_property
1110

1211
from .common import CommonInfo
1312

0 commit comments

Comments
 (0)