Skip to content

Commit 68247fa

Browse files
committed
lint
1 parent 6e8782c commit 68247fa

Some content is hidden

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

50 files changed

+1072
-1046
lines changed

pyproject.toml

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,24 @@ dev = [
4040
]
4141

4242
[tool.isort]
43-
combine_as_imports = true
44-
default_section = "THIRDPARTY"
45-
include_trailing_comma = true
46-
known_tests = "pytest,unittest,factory"
47-
known_demo = "demo"
48-
known_django = "django"
49-
sections = "FUTURE,STDLIB,DJANGO,THIRDPARTY,TESTS,FIRSTPARTY,DEMO,LOCALFOLDER"
50-
known_first_party = "etools_validator"
51-
multi_line_output = 3
52-
line_length = 120
53-
balanced_wrapping = true
54-
order_by_type = false
43+
profile = "black"
44+
45+
[tool.black]
46+
line-length = 120
47+
include = '\.pyi?$'
48+
exclude = '''
49+
/(
50+
\.git
51+
| \.hg
52+
| \.mypy_cache
53+
| \.tox
54+
| \.venv
55+
| venv
56+
| _build
57+
| buck-out
58+
| build
59+
| dist
60+
| migrations
61+
| snapshots
62+
)/
63+
'''

setup.cfg

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/concurrency/admin.py

Lines changed: 15 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,17 @@
1212
from django.forms import CheckboxInput
1313
from django.forms.formsets import (
1414
INITIAL_FORM_COUNT,
15-
ManagementForm,
1615
MAX_NUM_FORM_COUNT,
1716
TOTAL_FORM_COUNT,
17+
ManagementForm,
1818
)
1919
from django.forms.models import BaseModelFormSet
2020
from django.http import HttpResponse, HttpResponseRedirect
2121
from django.utils.encoding import force_str
2222
from django.utils.html import format_html
2323
from django.utils.safestring import mark_safe
24-
from django.utils.translation import gettext_lazy as _, ngettext
24+
from django.utils.translation import gettext_lazy as _
25+
from django.utils.translation import ngettext
2526

2627
from concurrency import core, forms
2728
from concurrency.api import get_revision_of_object
@@ -44,9 +45,7 @@ def action_checkbox(self, obj):
4445
if self.check_concurrent_action:
4546
attrs = {
4647
"class": "action-select",
47-
"aria-label": format_html(
48-
_("Select this object for an action - {}"), obj
49-
),
48+
"aria-label": format_html(_("Select this object for an action - {}"), obj),
5049
}
5150
checkbox = CheckboxInput(attrs, lambda value: False)
5251
pk = force_str("%s,%s" % (obj.pk, get_revision_of_object(obj)))
@@ -57,9 +56,7 @@ def action_checkbox(self, obj):
5756
else: # pragma: no cover
5857
return super().action_checkbox(obj)
5958

60-
action_checkbox.short_description = mark_safe(
61-
'<input type="checkbox" id="action-toggle" />'
62-
)
59+
action_checkbox.short_description = mark_safe('<input type="checkbox" id="action-toggle" />')
6360
action_checkbox.allow_tags = True
6461

6562
def get_confirmation_template(self):
@@ -114,9 +111,7 @@ def response_action(self, request, queryset): # noqa
114111
revision_field = self.model._concurrencymeta.field
115112

116113
if self.check_concurrent_action:
117-
self.delete_selected_confirmation_template = (
118-
self.get_confirmation_template()
119-
)
114+
self.delete_selected_confirmation_template = self.get_confirmation_template()
120115

121116
# If select_across we have to avoid the use of concurrency
122117
if selected is not ALL:
@@ -166,9 +161,7 @@ def __init__(self, *args, **kwargs):
166161
def _get_concurrency_fields(self):
167162
v = []
168163
for pk, version in self._versions:
169-
v.append(
170-
f'<input type="hidden" name="{concurrency_param_name}_{pk}" value="{version}">'
171-
)
164+
v.append(f'<input type="hidden" name="{concurrency_param_name}_{pk}" value="{version}">')
172165
return mark_safe("".join(v))
173166

174167
def render(self, template_name=None, context=None, renderer=None):
@@ -183,26 +176,18 @@ def __str__(self):
183176

184177
__html__ = __str__
185178

186-
def _html_output(
187-
self, normal_row, error_row, row_ender, help_text_html, errors_on_separate_row
188-
):
189-
ret = super()._html_output(
190-
normal_row, error_row, row_ender, help_text_html, errors_on_separate_row
191-
)
179+
def _html_output(self, normal_row, error_row, row_ender, help_text_html, errors_on_separate_row):
180+
ret = super()._html_output(normal_row, error_row, row_ender, help_text_html, errors_on_separate_row)
192181
return mark_safe("{0}{1}".format(ret, self._get_concurrency_fields()))
193182

194183

195184
class ConcurrentBaseModelFormSet(BaseModelFormSet):
196185
def _management_form(self):
197186
"""Returns the ManagementForm instance for this FormSet."""
198187
if self.is_bound:
199-
form = ConcurrentManagementForm(
200-
self.data, auto_id=self.auto_id, prefix=self.prefix
201-
)
188+
form = ConcurrentManagementForm(self.data, auto_id=self.auto_id, prefix=self.prefix)
202189
if not form.is_valid():
203-
raise ValidationError(
204-
"ManagementForm data is missing or has been tampered with"
205-
)
190+
raise ValidationError("ManagementForm data is missing or has been tampered with")
206191
else:
207192
form = ConcurrentManagementForm(
208193
auto_id=self.auto_id,
@@ -212,10 +197,7 @@ def _management_form(self):
212197
INITIAL_FORM_COUNT: self.initial_form_count(),
213198
MAX_NUM_FORM_COUNT: self.max_num,
214199
},
215-
versions=[
216-
(form.instance.pk, get_revision_of_object(form.instance))
217-
for form in self.initial_forms
218-
],
200+
versions=[(form.instance.pk, get_revision_of_object(form.instance)) for form in self.initial_forms],
219201
)
220202
return form
221203

@@ -308,9 +290,7 @@ def message_user(self, request, message, *args, **kwargs):
308290
return super().message_user(request, message, *args, **kwargs)
309291

310292

311-
class ConcurrentModelAdmin(
312-
ConcurrencyActionMixin, ConcurrencyListEditableMixin, admin.ModelAdmin
313-
):
293+
class ConcurrentModelAdmin(ConcurrencyActionMixin, ConcurrencyListEditableMixin, admin.ModelAdmin):
314294
form = ConcurrentForm
315295
formfield_overrides = {forms.VersionField: {"widget": VersionWidget}}
316296

@@ -322,9 +302,7 @@ def check(self, **kwargs):
322302
errors.append(
323303
Error(
324304
"Missed version field in {} fields definition".format(self),
325-
hint="Please add '{}' to the 'fields' attribute".format(
326-
version_field.name
327-
),
305+
hint="Please add '{}' to the 'fields' attribute".format(version_field.name),
328306
obj=None,
329307
id="concurrency.A001",
330308
)
@@ -337,9 +315,7 @@ def check(self, **kwargs):
337315
errors.append(
338316
Error(
339317
"Missed version field in {} fieldsets definition".format(self),
340-
hint="Please add '{}' to the 'fieldsets' attribute".format(
341-
version_field.name
342-
),
318+
hint="Please add '{}' to the 'fieldsets' attribute".format(version_field.name),
343319
obj=None,
344320
id="concurrency.A002",
345321
)

src/concurrency/api.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,7 @@ def is_changed(obj):
3939
"""
4040
revision_field = get_version_fieldname(obj)
4141
version = get_revision_of_object(obj)
42-
return not obj.__class__.objects.filter(
43-
**{obj._meta.pk.name: obj.pk, revision_field: version}
44-
).exists()
42+
return not obj.__class__.objects.filter(**{obj._meta.pk.name: obj.pk, revision_field: version}).exists()
4543

4644

4745
def get_version(model_instance, version):

src/concurrency/config.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,15 @@ def __init__(self, prefix):
4848
value = getattr(settings, prefix_name, default)
4949
self._set_attr(prefix_name, value)
5050
setattr(settings, prefix_name, value)
51-
setting_changed.send(
52-
self.__class__, setting=prefix_name, value=value, enter=True
53-
)
51+
setting_changed.send(self.__class__, setting=prefix_name, value=value, enter=True)
5452

5553
setting_changed.connect(self._handler)
5654

5755
def _set_attr(self, prefix_name, value):
58-
name = prefix_name[len(self.prefix) + 1:]
56+
name = prefix_name[1 + len(self.prefix):]
5957
if name == "IGNORE_DEFAULT":
6058
raise ImproperlyConfigured(
61-
"IGNORE_DEFAULT has been removed in django-concurrency 1.5. "
62-
"Use VERSION_FIELD_REQUIRED instead"
59+
"IGNORE_DEFAULT has been removed in django-concurrency 1.5. " "Use VERSION_FIELD_REQUIRED instead"
6360
)
6461
elif name == "CALLBACK":
6562
if isinstance(value, str):
@@ -79,9 +76,7 @@ def _set_attr(self, prefix_name, value):
7976
try:
8077
value[k] = import_string(v)
8178
except ImportError as e:
82-
raise ImproperlyConfigured(
83-
f"Unable to load {k} TriggerFactory. Invalid fqn '{v}': {e}"
84-
)
79+
raise ImproperlyConfigured(f"Unable to load {k} TriggerFactory. Invalid fqn '{v}': {e}")
8580

8681
setattr(self, name, value)
8782

src/concurrency/core.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ def _select_lock(model_instance, version_value=None):
3838

3939
if not entry:
4040
logger.debug(
41-
"Conflict detected on `{0}` pk:`{0.pk}`, "
42-
"version `{1}` not found".format(model_instance, value)
41+
"Conflict detected on `{0}` pk:`{0.pk}`, " "version `{1}` not found".format(model_instance, value)
4342
)
4443
conf._callback(model_instance)
4544
else: # pragma: no cover

src/concurrency/exceptions.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,4 @@ def __init__(self, *args, **kwargs):
1616
class VersionError(SuspiciousOperation):
1717

1818
def __init__(self, message=None, code=None, params=None, *args, **kwargs):
19-
self.message = message or _(
20-
"Version number is missing or has been tampered with"
21-
)
19+
self.message = message or _("Version number is missing or has been tampered with")

src/concurrency/fields.py

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,15 @@ def class_prepared_concurrency_handler(sender, **kwargs):
3434
setattr(sender, "_concurrencymeta", local)
3535

3636
if hasattr(sender, "ConcurrencyMeta"):
37-
sender._concurrencymeta.enabled = getattr(
38-
sender.ConcurrencyMeta, "enabled", True
39-
)
37+
sender._concurrencymeta.enabled = getattr(sender.ConcurrencyMeta, "enabled", True)
4038
check_fields = getattr(sender.ConcurrencyMeta, "check_fields", None)
4139
ignore_fields = getattr(sender.ConcurrencyMeta, "ignore_fields", None)
4240
if check_fields and ignore_fields:
4341
raise ValueError("Cannot set both 'check_fields' and 'ignore_fields'")
4442

4543
sender._concurrencymeta.check_fields = check_fields
4644
sender._concurrencymeta.ignore_fields = ignore_fields
47-
sender._concurrencymeta.increment = getattr(
48-
sender.ConcurrencyMeta, "increment", True
49-
)
45+
sender._concurrencymeta.increment = getattr(sender.ConcurrencyMeta, "increment", True)
5046
sender._concurrencymeta.skip = False
5147

5248
if not (sender._concurrencymeta.manually):
@@ -71,9 +67,7 @@ def post_syncdb_concurrency_handler(sender, **kwargs):
7167

7268

7369
if conf.AUTO_CREATE_TRIGGERS:
74-
post_migrate.connect(
75-
post_syncdb_concurrency_handler, dispatch_uid="post_syncdb_concurrency_handler"
76-
)
70+
post_migrate.connect(post_syncdb_concurrency_handler, dispatch_uid="post_syncdb_concurrency_handler")
7771

7872

7973
class VersionField(Field):
@@ -145,9 +139,7 @@ def _wrap_model_methods(model):
145139

146140
def _wrap_do_update(self, func):
147141

148-
def _do_update(
149-
model_instance, base_qs, using, pk_val, values, update_fields, forced_update
150-
):
142+
def _do_update(model_instance, base_qs, using, pk_val, values, update_fields, forced_update):
151143
version_field = model_instance._concurrencymeta.field
152144
old_version = get_revision_of_object(model_instance)
153145
if not version_field.model._meta.abstract:
@@ -354,16 +346,10 @@ def _get_hash(self, instance):
354346

355347
filter_ = functools.partial(filter_fields, instance)
356348
if check_fields is None and ignore_fields is None:
357-
fields = sorted(
358-
[f.name for f in filter(filter_, instance._meta.get_fields())]
359-
)
349+
fields = sorted([f.name for f in filter(filter_, instance._meta.get_fields())])
360350
elif check_fields is None:
361351
fields = sorted(
362-
[
363-
f.name
364-
for f in filter(filter_, instance._meta.get_fields())
365-
if f.name not in ignore_fields
366-
]
352+
[f.name for f in filter(filter_, instance._meta.get_fields()) if f.name not in ignore_fields]
367353
)
368354
else:
369355
fields = instance._concurrencymeta.check_fields
@@ -372,9 +358,7 @@ def _get_hash(self, instance):
372358
# FK. the raw value of the FK is enough
373359
field = opts.get_field(field_name)
374360
if isinstance(field, models.ManyToManyField):
375-
values[field_name] = getattr(instance, field_name).values_list(
376-
"pk", flat=True
377-
)
361+
values[field_name] = getattr(instance, field_name).values_list("pk", flat=True)
378362
else:
379363
values[field_name] = field.value_from_object(instance)
380364
return hashlib.sha1(force_str(values).encode("utf-8")).hexdigest()

src/concurrency/forms.py

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

33
from django import forms
44
from django.core.exceptions import (
5-
ImproperlyConfigured,
65
NON_FIELD_ERRORS,
6+
ImproperlyConfigured,
77
ValidationError,
88
)
99
from django.core.signing import BadSignature, Signer
@@ -32,11 +32,7 @@ def clean(self):
3232
)
3333

3434
except RecordModifiedError:
35-
self._update_errors(
36-
ValidationError(
37-
{NON_FIELD_ERRORS: self.error_class([_("Record Modified")])}
38-
)
39-
)
35+
self._update_errors(ValidationError({NON_FIELD_ERRORS: self.error_class([_("Record Modified")])}))
4036

4137
return super().clean()
4238

@@ -78,19 +74,15 @@ def sign(self, value):
7874
def get_signer():
7975
path = conf.FIELD_SIGNER
8076
i = path.rfind(".")
81-
module, attr = path[:i], path[i + 1 :]
77+
module, attr = path[:i], path[i + 1:]
8278
try:
8379
mod = import_module(module)
8480
except ImportError as e:
85-
raise ImproperlyConfigured(
86-
'Error loading concurrency signer %s: "%s"' % (module, e)
87-
)
81+
raise ImproperlyConfigured('Error loading concurrency signer %s: "%s"' % (module, e))
8882
try:
8983
signer_class = getattr(mod, attr)
9084
except AttributeError: # pragma: no cover
91-
raise ImproperlyConfigured(
92-
'Module "%s" does not define a valid signer named "%s"' % (module, attr)
93-
)
85+
raise ImproperlyConfigured('Module "%s" does not define a valid signer named "%s"' % (module, attr))
9486
return signer_class()
9587

9688

@@ -107,9 +99,7 @@ def __repr__(self):
10799

108100
class VersionField(forms.IntegerField):
109101
widget = HiddenInput # Default widget to use when rendering this type of Field.
110-
hidden_widget = (
111-
HiddenInput # Default widget to use when rendering this as "hidden".
112-
)
102+
hidden_widget = HiddenInput # Default widget to use when rendering this as "hidden".
113103

114104
def __init__(self, *args, **kwargs):
115105
self._signer = kwargs.pop("signer", get_signer())

0 commit comments

Comments
 (0)