Skip to content

Commit cda167e

Browse files
authored
Add missing fixes from Ruff (#557)
* Fix: Add missing fixes from Ruff * Refactor: replace `re_path` with `path` (assisted by `django-upgrade` tool) * Update Ruff to `13.2` and sort imports
1 parent e227604 commit cda167e

File tree

258 files changed

+1111
-1199
lines changed

Some content is hidden

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

258 files changed

+1111
-1199
lines changed

.github/workflows/ruff.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ jobs:
1515
- uses: astral-sh/ruff-action@v3
1616
with:
1717
src: "./oioioi"
18-
version: 0.11.12
18+
version: 0.13.2

conftest.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
from __future__ import print_function
2-
31
import pytest
4-
2+
from django.conf import settings
53
from oioioi.base.tests import pytest_plugin as base_plugin
64
from oioioi.contests.tests import pytest_plugin as contests_plugin
7-
from django.conf import settings
85

96

107
def pytest_addoption(parser):

ez_setup.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
This file can also be run as a script to install or upgrade setuptools.
1515
"""
1616

17-
from __future__ import print_function
18-
1917
import os
2018
import sys
2119

@@ -25,7 +23,7 @@
2523
from md5 import md5
2624

2725
DEFAULT_VERSION = "0.6c11"
28-
DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
26+
DEFAULT_URL = f"http://pypi.python.org/packages/{sys.version[:3]}/s/setuptools/"
2927

3028
md5_data = {
3129
"setuptools-0.6b1-py2.3.egg": "8822caf901250d848b996b7f25c6e6ca",
@@ -78,7 +76,7 @@ def _validate_md5(egg_name, data):
7876
digest = md5(data).hexdigest()
7977
if digest != md5_data[egg_name]:
8078
print(
81-
("md5 validation of %s failed! (Possible download problem?)" % egg_name),
79+
(f"md5 validation of {egg_name} failed! (Possible download problem?)"),
8280
file=sys.stderr,
8381
)
8482
sys.exit(2)
@@ -122,12 +120,11 @@ def do_download():
122120
if was_imported:
123121
print(
124122
(
125-
"The required version of setuptools (>=%s) is not available, and\n"
123+
f"The required version of setuptools (>={version}) is not available, and\n"
126124
"can't be installed while this script is running. Please install\n"
127125
" a more recent version first, using 'easy_install -U setuptools'."
128-
"\n\n(Currently using %r)"
129-
)
130-
% (version, e.args[0]),
126+
f"\n\n(Currently using {e.args[0]!r})"
127+
),
131128
file=sys.stderr,
132129
)
133130
sys.exit(2)
@@ -148,7 +145,7 @@ def download_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_d
148145
"""
149146
import urllib.request
150147

151-
egg_name = "setuptools-%s-py%s.egg" % (version, sys.version[:3])
148+
egg_name = f"setuptools-{version}-py{sys.version[:3]}.egg"
152149
url = download_base + egg_name
153150
saveto = os.path.join(to_dir, egg_name)
154151
src = dst = None
@@ -251,7 +248,7 @@ def update_md5(filenames):
251248
md5_data[base] = md5(f.read()).hexdigest()
252249
f.close()
253250

254-
data = [" %r: %r,\n" % it for it in md5_data.items()]
251+
data = [" {!r}: {!r},\n".format(*it) for it in md5_data.items()]
255252
data.sort()
256253
repl = "".join(data)
257254

oioioi/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# apply monkey patch
2-
from oioioi.contests import current_contest
2+
from oioioi.contests import current_contest # noqa: F401

oioioi/acm/controllers.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def fill_evaluation_environ(self, environ, submission):
6666
environ["score_aggregator"] = "oioioi.acm.utils.acm_score_aggregator"
6767
environ["report_kinds"] = ["FULL"]
6868

69-
super(ACMContestController, self).fill_evaluation_environ(environ, submission)
69+
super().fill_evaluation_environ(environ, submission)
7070

7171
def update_report_statuses(self, submission, queryset):
7272
if submission.kind == "TESTRUN":
@@ -77,7 +77,7 @@ def update_report_statuses(self, submission, queryset):
7777

7878
def update_submission_score(self, submission):
7979
if submission.kind == "TESTRUN":
80-
super(ACMContestController, self).update_submission_score(submission)
80+
super().update_submission_score(submission)
8181
return
8282
try:
8383
report = SubmissionReport.objects.get(submission=submission, status="ACTIVE", kind="FULL")
@@ -111,7 +111,7 @@ def __init__(self, user):
111111

112112
def _fill_user_result_for_problem(self, result, pi_submissions):
113113
if pi_submissions:
114-
for penalties_count, submission in enumerate(pi_submissions, 1):
114+
for penalties_count, submission in enumerate(pi_submissions, 1): # noqa: B007
115115
if submission.status == "IGN":
116116
# We have found IGNORED submission before accepted one.
117117
# This means, that some other
@@ -213,7 +213,7 @@ def can_submit(self, request, problem_instance, check_round_times=True):
213213
return True
214214
if not is_participant(request):
215215
return False
216-
return super(ACMOpenContestController, self).can_submit(request, problem_instance, check_round_times)
216+
return super().can_submit(request, problem_instance, check_round_times)
217217

218218

219219
class _FakeUserResultForProblem:

oioioi/acm/score.py

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

88
def format_time(seconds):
99
minutes = seconds // 60
10-
return "%d:%02d" % (minutes // 60, minutes % 60)
10+
return f"{minutes // 60}:{minutes % 60:02d}"
1111

1212

1313
@total_ordering
@@ -143,14 +143,10 @@ def penalty_repr(self):
143143
if self.penalties_count <= 3:
144144
return "*" * self.penalties_count
145145
else:
146-
return "*(%d)" % (self.penalties_count,)
146+
return f"*({self.penalties_count})"
147147

148148
def total_time_repr(self):
149-
return "%d:%02d:%02d" % (
150-
self.total_time / 3600,
151-
(self.total_time % 3600) / 60,
152-
self.total_time % 60,
153-
)
149+
return f"{int(self.total_time / 3600)}:{int((self.total_time % 3600) / 60):02d}:{int(self.total_time % 60):02d}"
154150

155151
def time_passed_repr(self):
156152
return format_time(self.time_passed)
@@ -182,13 +178,7 @@ def _to_repr(self):
182178
``penalties_count`` is number of unsuccessful submissions.
183179
"""
184180
ordering = 10**10 * (self.problems_solved + 1) - self.total_time
185-
return "%020d:%010d:%010d:%010d:%010d" % (
186-
ordering,
187-
self.problems_solved,
188-
self.time_passed,
189-
self.penalties_count,
190-
self.penalty_time,
191-
)
181+
return f"{int(ordering):020d}:{self.problems_solved:010d}:{self.time_passed:010d}:{self.penalties_count:010d}:{self.penalty_time:010d}"
192182

193183
@property
194184
def total_time(self):

oioioi/amppz/controllers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def default_can_see_ranking(self, request):
4141
return is_contest_admin(request) or is_contest_observer(request)
4242

4343
def default_contestlogo_url(self):
44-
return "%samppz/images/logo-cropped.png" % settings.STATIC_URL
44+
return f"{settings.STATIC_URL}amppz/images/logo-cropped.png"
4545

4646
def default_contesticons_urls(self):
47-
return ["%samppz/images/menu-icon.png" % settings.STATIC_URL]
47+
return [f"{settings.STATIC_URL}amppz/images/menu-icon.png"]

oioioi/balloons/admin.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def color_display(self, instance):
4545
color_display.short_description = _("Color")
4646

4747
def get_queryset(self, request):
48-
qs = super(ProblemBalloonsConfigAdmin, self).get_queryset(request)
48+
qs = super().get_queryset(request)
4949
return qs.filter(problem_instance__contest=request.contest)
5050

5151
def formfield_for_foreignkey(self, db_field, request, **kwargs):
@@ -54,7 +54,7 @@ def formfield_for_foreignkey(self, db_field, request, **kwargs):
5454
if request.contest:
5555
qs = qs.filter(contest=request.contest)
5656
kwargs["queryset"] = qs
57-
return super(ProblemBalloonsConfigAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
57+
return super().formfield_for_foreignkey(db_field, request, **kwargs)
5858

5959

6060
contest_site.contest_register(ProblemBalloonsConfig, ProblemBalloonsConfigAdmin)
@@ -85,7 +85,7 @@ def get_readonly_fields(self, request, obj=None):
8585
return self.readonly_fields
8686

8787
def get_queryset(self, request):
88-
qs = super(BalloonsDisplayAdmin, self).get_queryset(request)
88+
qs = super().get_queryset(request)
8989
if request.contest is None:
9090
return qs
9191
return qs.filter(contest=request.contest)
@@ -101,7 +101,7 @@ def formfield_for_foreignkey(self, db_field, request, **kwargs):
101101
if qs or not request.user.is_superuser:
102102
kwargs["queryset"] = qs
103103

104-
return super(BalloonsDisplayAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
104+
return super().formfield_for_foreignkey(db_field, request, **kwargs)
105105

106106

107107
admin.site.register(BalloonsDisplay, BalloonsDisplayAdmin)
@@ -159,7 +159,7 @@ class BalloonsDeliveryAccessDataAdminMixin:
159159
"""
160160

161161
def __init__(self, *args, **kwargs):
162-
super(BalloonsDeliveryAccessDataAdminMixin, self).__init__(*args, **kwargs)
162+
super().__init__(*args, **kwargs)
163163
self.inlines = tuple(self.inlines) + (BalloonsDeliveryAccessDataInline,)
164164

165165

oioioi/balloons/controllers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class BalloonsDeliveryACMControllerMixin:
1616
"""
1717

1818
def submission_judged(self, submission, rejudged=False):
19-
super(BalloonsDeliveryACMControllerMixin, self).submission_judged(submission, rejudged)
19+
super().submission_judged(submission, rejudged)
2020
self._create_balloon_delivery(submission)
2121

2222
@transaction.atomic

oioioi/balloons/models.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,11 @@ class Meta:
5656
ordering = ["id"]
5757

5858
def __str__(self):
59-
return "%(user)s for %(problem)s (%(delivered)s)" % {
60-
"user": self.user,
61-
"problem": self.problem_instance,
62-
"delivered": "delivered" if self.delivered else "not delivered",
63-
}
59+
return "{user} for {problem} ({delivered})".format(
60+
user=self.user,
61+
problem=self.problem_instance,
62+
delivered="delivered" if self.delivered else "not delivered",
63+
)
6464

6565

6666
class BalloonsDeliveryAccessData(models.Model):

0 commit comments

Comments
 (0)