Skip to content

Commit 6156191

Browse files
committed
Added the TID252 Ruff rule
Makes it less of a hassle to remember when to do relative and when to do absolute imports, and makes it somewhat easier to read the code through e.g. GitHub.
1 parent d26bc09 commit 6156191

File tree

137 files changed

+270
-356
lines changed

Some content is hidden

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

137 files changed

+270
-356
lines changed

CONTRIBUTING.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
+ [For code in general](#for-code-in-general)
2323
- [Quotation marks inside strings](#quotation-marks-inside-strings)
2424
- [String concatenation](#string-concatenation)
25-
- [Imports](#imports)
2625
+ [For each module (file)](#for-each-module-file)
2726
- [Folder/directory location](#folderdirectory-location)
2827
- [Filename](#filename)
@@ -158,11 +157,6 @@ if an f-string is hard to read, extract inserted code to variables, and insert t
158157
For translation strings (using `gettext` or `gettext_lazy`), use the standard `format()` method for concatenation.
159158
For example:<br/>`_("{chant} Batman!").format(chant="NaN" * 15)` (where `gettext_lazy` is imported as `_`).
160159

161-
#### Imports
162-
163-
All imports in a file that are from the same app as the mentioned file, should be relative
164-
(e.g. `from .models import User` or `from .. import views`).
165-
166160

167161
### For each module (file)
168162

pyproject.toml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,17 @@ show-fixes = true
6868
format.docstring-code-format = true
6969

7070
lint.select = [
71-
"E", # flake8/pycodestyle (Error)
72-
"F", # flake8/Pyflakes
73-
"I", # isort
71+
"E", # flake8/pycodestyle (Error)
72+
"F", # flake8/Pyflakes
73+
"I", # isort
74+
"TID252", # https://docs.astral.sh/ruff/rules/relative-imports/#relative-imports-tid252
7475
]
7576

7677
# Disable line length check in migrations
7778
lint.per-file-ignores."**/migrations/**" = [ "E501" ]
7879

80+
lint.flake8-tidy-imports.ban-relative-imports = "all"
81+
7982
lint.isort.combine-as-imports = true
8083

8184
# Ignore E501 for comments starting with TODO, FIXME, etc.

src/announcements/admin.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22
from django.template.defaultfilters import urlize
33
from django.utils.translation import gettext_lazy as _
44

5+
from announcements.models import Announcement
56
from util.admin_utils import (
67
DefaultAdminWidgetsMixin,
78
list_filter_factory,
89
search_escaped_and_unescaped,
910
)
1011

11-
from .models import Announcement
12-
1312

1413
class AnnouncementAdmin(DefaultAdminWidgetsMixin, admin.ModelAdmin):
1514
list_display = (

src/announcements/forms.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
from django.forms import ModelForm
22

3+
from announcements.models import Announcement
34
from web.widgets import SemanticChoiceInput, SemanticDateTimeInput
45

5-
from .models import Announcement
6-
76

87
class AnnouncementForm(ModelForm):
98
class Meta:

src/announcements/templatetags/announcement_tags.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from django import template
22

3-
from ..models import Announcement
3+
from announcements.models import Announcement
44

55
register = template.Library()
66

src/announcements/tests/test_urls.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22
from django.utils import timezone
33
from django_hosts import reverse
44

5+
from announcements.models import Announcement
56
from util.test_utils import (
67
Get,
78
assert_requesting_paths_succeeds,
89
generate_all_admin_urls_for_model_and_objs,
910
)
1011

11-
from ..models import Announcement
12-
1312

1413
class UrlTests(TestCase):
1514
def setUp(self):

src/announcements/urls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from django.urls import include, path
22

3-
from . import views
3+
from announcements import views
44

55
urlpatterns = []
66

src/announcements/views.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55
from django.utils.translation import gettext_lazy as _
66
from django.views.generic import CreateView, DeleteView, ListView, UpdateView
77

8+
from announcements.forms import AnnouncementForm
9+
from announcements.models import Announcement
810
from util.view_utils import CustomFieldsetFormMixin, PreventGetRequestsMixin
911

10-
from .forms import AnnouncementForm
11-
from .models import Announcement
12-
1312

1413
class AdminAnnouncementListView(PermissionRequiredMixin, ListView):
1514
permission_required = ("announcements.change_announcement",)

src/card/formfields.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
from django.utils.text import capfirst
33
from django.utils.translation import gettext_lazy as _
44

5-
from .validators import card_number_input_validator
6-
from .widgets import CardNumberInput
5+
from card.validators import card_number_input_validator
6+
from card.widgets import CardNumberInput
77

88

99
class CardNumberField(forms.CharField):

src/card/modelfields.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from django.db import models
22
from django.utils.translation import gettext_lazy as _
33

4-
from .validators import card_number_validator
4+
from card.validators import card_number_validator
55

66

77
class CardNumberField(models.CharField):
@@ -25,7 +25,7 @@ def __init__(self, **kwargs):
2525
)
2626

2727
def formfield(self, **kwargs):
28-
from . import formfields # Avoids circular importing
28+
from card import formfields # Avoids circular importing
2929

3030
return super().formfield(
3131
**{

0 commit comments

Comments
 (0)