Skip to content

Commit 01716c1

Browse files
committed
reformat to new ruff rules
Increase ruff linter strictness and apply fixes
1 parent 758a528 commit 01716c1

26 files changed

+453
-386
lines changed

ajax_select/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""JQuery-Ajax Autocomplete fields for Django Forms."""
2+
23
__version__ = "3.0.2"
34
__author__ = "crucialfelix"
45
__contact__ = "[email protected]"

ajax_select/admin.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55

66
class AjaxSelectAdmin(admin.ModelAdmin):
7-
"""in order to get + popup functions subclass this or do the same hook inside of your get_form"""
7+
"""in order to get + popup functions subclass this or do the same hook inside of your get_form."""
88

99
def get_form(self, request, obj=None, **kwargs):
1010
form = super().get_form(request, obj, **kwargs)
@@ -20,13 +20,9 @@ def get_formset(self, request, obj=None, **kwargs):
2020
return fs
2121

2222

23-
class AjaxSelectAdminTabularInline(
24-
AjaxSelectAdminInlineFormsetMixin, admin.TabularInline
25-
):
23+
class AjaxSelectAdminTabularInline(AjaxSelectAdminInlineFormsetMixin, admin.TabularInline):
2624
pass
2725

2826

29-
class AjaxSelectAdminStackedInline(
30-
AjaxSelectAdminInlineFormsetMixin, admin.StackedInline
31-
):
27+
class AjaxSelectAdminStackedInline(AjaxSelectAdminInlineFormsetMixin, admin.StackedInline):
3228
pass

ajax_select/apps.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@ class AjaxSelectConfig(AppConfig):
1010
Your LookupClass subclass may register itself.
1111
"""
1212

13-
name = 'ajax_select'
14-
verbose_name = 'Ajax Selects'
13+
name = "ajax_select"
14+
verbose_name = "Ajax Selects"
1515

1616
def ready(self):
1717
from ajax_select.registry import registry
18+
1819
registry.load_channels()

ajax_select/fields.py

Lines changed: 24 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ def render(self, name, value, attrs=None, renderer=None, **_kwargs):
101101
try:
102102
obj = objs[0]
103103
except IndexError as e:
104-
raise Exception(f"{lookup} cannot find object:{value}") from e
104+
msg = f"{lookup} cannot find object:{value}"
105+
raise Exception(msg) from e
105106
current_repr = lookup.format_item_display(obj)
106107
initial = [current_repr, obj.pk]
107108

@@ -117,9 +118,7 @@ def render(self, name, value, attrs=None, renderer=None, **_kwargs):
117118
"func_slug": self.html_id.replace("-", ""),
118119
"add_link": self.add_link,
119120
}
120-
context.update(
121-
make_plugin_options(lookup, self.channel, self.plugin_options, initial)
122-
)
121+
context.update(make_plugin_options(lookup, self.channel, self.plugin_options, initial))
123122
templates = [
124123
f"ajax_select/autocompleteselect_{self.channel}.html",
125124
"ajax_select/autocompleteselect.html",
@@ -142,12 +141,12 @@ class AutoCompleteSelectField(forms.fields.CharField):
142141
def __init__(self, channel, *args, **kwargs):
143142
self.channel = channel
144143

145-
widget_kwargs = dict(
146-
channel=channel,
147-
help_text=kwargs.get("help_text", _(as_default_help)),
148-
show_help_text=kwargs.pop("show_help_text", True),
149-
plugin_options=kwargs.pop("plugin_options", {}),
150-
)
144+
widget_kwargs = {
145+
"channel": channel,
146+
"help_text": kwargs.get("help_text", _(as_default_help)),
147+
"show_help_text": kwargs.pop("show_help_text", True),
148+
"plugin_options": kwargs.pop("plugin_options", {}),
149+
}
151150
widget_kwargs.update(kwargs.pop("widget_options", {}))
152151
kwargs["widget"] = AutoCompleteSelectWidget(**widget_kwargs)
153152
super().__init__(*args, **kwargs, max_length=255)
@@ -161,12 +160,12 @@ def clean(self, value):
161160
# or your channel is faulty
162161
# out of the scope of this field to do anything more than
163162
# tell you it doesn't exist
164-
raise forms.ValidationError(f"{lookup} cannot find object: {value}")
163+
msg = f"{lookup} cannot find object: {value}"
164+
raise forms.ValidationError(msg)
165165
return objs[0]
166-
else:
167-
if self.required:
168-
raise forms.ValidationError(self.error_messages["required"])
169-
return None
166+
if self.required:
167+
raise forms.ValidationError(self.error_messages["required"])
168+
return None
170169

171170
def check_can_add(self, user, model):
172171
_check_can_add(self, user, model)
@@ -219,11 +218,7 @@ def render(self, name, value, attrs=None, renderer=None, **_kwargs):
219218
lookup = registry.get(self.channel)
220219

221220
values = list(value)
222-
objects = (
223-
values
224-
if all([isinstance(v, Model) for v in values])
225-
else lookup.get_objects(values)
226-
)
221+
objects = values if all(isinstance(v, Model) for v in values) else lookup.get_objects(values)
227222

228223
current_ids = pack_ids([obj.pk for obj in objects])
229224

@@ -243,9 +238,7 @@ def render(self, name, value, attrs=None, renderer=None, **_kwargs):
243238
"func_slug": self.html_id.replace("-", ""),
244239
"add_link": self.add_link,
245240
}
246-
context.update(
247-
make_plugin_options(lookup, self.channel, self.plugin_options, initial)
248-
)
241+
context.update(make_plugin_options(lookup, self.channel, self.plugin_options, initial))
249242
templates = [
250243
f"ajax_select/autocompleteselectmultiple_{self.channel}.html",
251244
"ajax_select/autocompleteselectmultiple.html",
@@ -377,9 +370,7 @@ def render(self, name, value, attrs=None, renderer=None, **_kwargs):
377370
"extra_attrs": mark_safe(flatatt(final_attrs)),
378371
"func_slug": self.html_id.replace("-", ""),
379372
}
380-
context.update(
381-
make_plugin_options(lookup, self.channel, self.plugin_options, initial)
382-
)
373+
context.update(make_plugin_options(lookup, self.channel, self.plugin_options, initial))
383374
templates = [
384375
f"ajax_select/autocomplete_{self.channel}.html",
385376
"ajax_select/autocomplete.html",
@@ -398,11 +389,11 @@ class AutoCompleteField(forms.CharField):
398389
def __init__(self, channel, *args, **kwargs):
399390
self.channel = channel
400391

401-
widget_kwargs = dict(
402-
help_text=kwargs.get("help_text", _(as_default_help)),
403-
show_help_text=kwargs.pop("show_help_text", True),
404-
plugin_options=kwargs.pop("plugin_options", {}),
405-
)
392+
widget_kwargs = {
393+
"help_text": kwargs.get("help_text", _(as_default_help)),
394+
"show_help_text": kwargs.pop("show_help_text", True),
395+
"plugin_options": kwargs.pop("plugin_options", {}),
396+
}
406397
widget_kwargs.update(kwargs.pop("widget_options", {}))
407398
if "attrs" in kwargs:
408399
widget_kwargs["attrs"] = kwargs.pop("attrs")
@@ -446,9 +437,7 @@ def autoselect_fields_check_can_add(form, model, user):
446437
related_model.
447438
"""
448439
for name, form_field in form.declared_fields.items():
449-
if isinstance(
450-
form_field, (AutoCompleteSelectMultipleField, AutoCompleteSelectField)
451-
):
440+
if isinstance(form_field, (AutoCompleteSelectMultipleField, AutoCompleteSelectField)):
452441
db_field = model._meta.get_field(name)
453442
if hasattr(db_field, "remote_field"):
454443
form_field.check_can_add(user, db_field.remote_field.model)
@@ -480,5 +469,4 @@ def pack_ids(ids):
480469
if ids:
481470
# |pk|pk| of current
482471
return "|" + "|".join(str(pk) for pk in ids) + "|"
483-
else:
484-
return "|"
472+
return "|"

ajax_select/helpers.py

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

77

88
def make_ajax_form(model, fieldlist, superclass=ModelForm, show_help_text=False, **kwargs):
9-
"""Creates a ModelForm subclass with AutoComplete fields.
9+
"""
10+
Creates a ModelForm subclass with AutoComplete fields.
1011
1112
Args:
1213
model (type): Model class for which you are making the ModelForm
@@ -37,21 +38,20 @@ class YourModelAdmin(Admin):
3738
"""
3839
# will support previous arg name for several versions before deprecating
3940
# TODO: time to go
40-
if 'show_m2m_help' in kwargs:
41-
show_help_text = kwargs.pop('show_m2m_help')
41+
if "show_m2m_help" in kwargs:
42+
show_help_text = kwargs.pop("show_m2m_help")
4243

4344
class TheForm(superclass):
44-
4545
class Meta:
4646
exclude = []
4747

4848
Meta.model = model
49-
if hasattr(superclass, 'Meta'):
50-
if hasattr(superclass.Meta, 'fields'):
49+
if hasattr(superclass, "Meta"):
50+
if hasattr(superclass.Meta, "fields"):
5151
Meta.fields = superclass.Meta.fields
52-
if hasattr(superclass.Meta, 'exclude'):
52+
if hasattr(superclass.Meta, "exclude"):
5353
Meta.exclude = superclass.Meta.exclude
54-
if hasattr(superclass.Meta, 'widgets'):
54+
if hasattr(superclass.Meta, "widgets"):
5555
Meta.widgets = superclass.Meta.widgets
5656

5757
for model_fieldname, channel in fieldlist.items():
@@ -64,7 +64,8 @@ class Meta:
6464

6565

6666
def make_ajax_field(related_model, fieldname_on_model, channel, show_help_text=False, **kwargs):
67-
"""Makes an AutoComplete field for use in a Form.
67+
"""
68+
Makes an AutoComplete field for use in a Form.
6869
6970
Args:
7071
related_model (Model): model of the related object
@@ -82,29 +83,24 @@ def make_ajax_field(related_model, fieldname_on_model, channel, show_help_text=F
8283
8384
Returns:
8485
(AutoCompleteField, AutoCompleteSelectField, AutoCompleteSelectMultipleField): field
86+
8587
"""
8688
from ajax_select.fields import AutoCompleteField, AutoCompleteSelectField, AutoCompleteSelectMultipleField
8789

8890
field = related_model._meta.get_field(fieldname_on_model)
89-
if 'label' not in kwargs:
90-
kwargs['label'] = _(capfirst(force_str(field.verbose_name)))
91+
if "label" not in kwargs:
92+
kwargs["label"] = _(capfirst(force_str(field.verbose_name)))
9193

92-
if ('help_text' not in kwargs) and field.help_text:
93-
kwargs['help_text'] = field.help_text
94-
if 'required' not in kwargs:
95-
kwargs['required'] = not field.blank
94+
if ("help_text" not in kwargs) and field.help_text:
95+
kwargs["help_text"] = field.help_text
96+
if "required" not in kwargs:
97+
kwargs["required"] = not field.blank
9698

97-
kwargs['show_help_text'] = show_help_text
99+
kwargs["show_help_text"] = show_help_text
98100
if isinstance(field, ManyToManyField):
99-
f = AutoCompleteSelectMultipleField(
100-
channel,
101-
**kwargs)
101+
f = AutoCompleteSelectMultipleField(channel, **kwargs)
102102
elif isinstance(field, ForeignKey):
103-
f = AutoCompleteSelectField(
104-
channel,
105-
**kwargs)
103+
f = AutoCompleteSelectField(channel, **kwargs)
106104
else:
107-
f = AutoCompleteField(
108-
channel,
109-
**kwargs)
105+
f = AutoCompleteField(channel, **kwargs)
110106
return f

ajax_select/lookup_channel.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ def get_query(self, q, request):
3939
4040
Returns:
4141
(QuerySet, list, generator): iterable of related_models
42+
4243
"""
4344
kwargs = {f"{self.search_field}__icontains": q}
4445
return self.model.objects.filter(**kwargs).order_by(self.search_field)
@@ -59,6 +60,7 @@ def get_result(self, obj):
5960
obj (Model):
6061
Returns:
6162
str: The object as string
63+
6264
"""
6365
return escape(force_str(obj))
6466

@@ -70,6 +72,7 @@ def format_match(self, obj):
7072
obj (Model):
7173
Returns:
7274
str: formatted string, may contain HTML.
75+
7376
"""
7477
return escape(force_str(obj))
7578

@@ -81,6 +84,7 @@ def format_item_display(self, obj):
8184
obj (Model):
8285
Returns:
8386
str: formatted string, may contain HTML.
87+
8488
"""
8589
return escape(force_str(obj))
8690

@@ -92,6 +96,7 @@ def get_objects(self, ids):
9296
ids (list): list of primary keys
9397
Returns:
9498
list: list of Model objects
99+
95100
"""
96101
# Inherited models have a OneToOneField (rather than eg AutoField)
97102
if getattr(self.model._meta.pk, "remote_field", False):
@@ -118,10 +123,13 @@ def can_add(self, user, other_model):
118123
Args:
119124
user (User)
120125
other_model (Model): the ForeignKey or M2M model to check if the User can add.
126+
121127
Returns:
122128
bool
129+
123130
"""
124131
from django.contrib.contenttypes.models import ContentType
132+
125133
ctype = ContentType.objects.get_for_model(other_model)
126134
return user.has_perm(f"{ctype.app_label}.add_{ctype.model}")
127135

@@ -138,8 +146,10 @@ def check_auth(self, request):
138146
139147
Args:
140148
request (Request)
149+
141150
Raises:
142151
PermissionDenied
152+
143153
"""
144154
if not request.user.is_staff:
145155
raise PermissionDenied

0 commit comments

Comments
 (0)