Skip to content

Commit 3329c12

Browse files
committed
style: lint & format
1 parent 12712bf commit 3329c12

123 files changed

Lines changed: 3801 additions & 2421 deletions

File tree

Some content is hidden

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

.travis.yml

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

account/decorators.py

Lines changed: 43 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@ def __get__(self, obj, obj_type):
1717
return functools.partial(self.__call__, obj)
1818

1919
def error(self, data):
20-
return JSONResponse.response({"error": "permission-denied", "data": data})
20+
return JSONResponse.response({'error': 'permission-denied', 'data': data})
2121

2222
def __call__(self, *args, **kwargs):
2323
self.request = args[1]
2424

2525
if self.check_permission():
2626
if self.request.user.is_disabled:
27-
return self.error("Your account is disabled")
27+
return self.error('Your account is disabled')
2828
return self.func(*args, **kwargs)
2929
else:
30-
return self.error("Please login first")
30+
return self.error('Please login first')
3131

3232
def check_permission(self):
3333
raise NotImplementedError()
@@ -67,13 +67,18 @@ def check_contest_password(password, contest_password):
6767
else:
6868
# sig#timestamp 这种形式的密码也可以,但是在界面上没提供支持
6969
# sig = sha256(contest_password + timestamp)[:8]
70-
if "#" in password:
71-
s = password.split("#")
70+
if '#' in password:
71+
s = password.split('#')
7272
if len(s) != 2:
7373
return False
7474
sig, ts = s[0], s[1]
7575

76-
if sig == hashlib.sha256((contest_password + ts).encode("utf-8")).hexdigest()[:8]:
76+
if (
77+
sig
78+
== hashlib.sha256((contest_password + ts).encode('utf-8')).hexdigest()[
79+
:8
80+
]
81+
):
7782
try:
7883
ts = int(ts)
7984
except Exception:
@@ -85,7 +90,7 @@ def check_contest_password(password, contest_password):
8590
return False
8691

8792

88-
def check_contest_permission(check_type="details"):
93+
def check_contest_permission(check_type='details'):
8994
"""
9095
只供Class based view 使用,检查用户是否有权进入该contest, check_type 可选 details, problems, ranks, submissions
9196
若通过验证,在view中可通过self.contest获得该contest
@@ -96,48 +101,65 @@ def _check_permission(*args, **kwargs):
96101
self = args[0]
97102
request = args[1]
98103
user = request.user
99-
if request.data.get("contest_id"):
100-
contest_id = request.data["contest_id"]
104+
if request.data.get('contest_id'):
105+
contest_id = request.data['contest_id']
101106
else:
102-
contest_id = request.GET.get("contest_id")
107+
contest_id = request.GET.get('contest_id')
103108
if not contest_id:
104-
return self.error("Parameter error, contest_id is required")
109+
return self.error('Parameter error, contest_id is required')
105110

106111
try:
107112
# use self.contest to avoid query contest again in view.
108-
self.contest = Contest.objects.select_related("created_by").get(id=contest_id, visible=True)
113+
self.contest = Contest.objects.select_related('created_by').get(
114+
id=contest_id, visible=True
115+
)
109116
except Contest.DoesNotExist:
110117
return self.error("Contest %s doesn't exist" % contest_id)
111118

112119
# Anonymous
113120
if not user.is_authenticated:
114-
return self.error("Please login first.")
121+
return self.error('Please login first.')
115122

116123
# creator or owner
117124
if user.is_contest_admin(self.contest):
118125
return func(*args, **kwargs)
119126

120127
if self.contest.contest_type == ContestType.PASSWORD_PROTECTED_CONTEST:
121128
# password error
122-
if not check_contest_password(request.session.get(CONTEST_PASSWORD_SESSION_KEY, {}).get(self.contest.id), self.contest.password):
123-
return self.error("Wrong password or password expired")
129+
if not check_contest_password(
130+
request.session.get(CONTEST_PASSWORD_SESSION_KEY, {}).get(
131+
self.contest.id
132+
),
133+
self.contest.password,
134+
):
135+
return self.error('Wrong password or password expired')
124136

125137
# regular user get contest problems, ranks etc. before contest started
126-
if self.contest.status == ContestStatus.CONTEST_NOT_START and check_type != "details":
127-
return self.error("Contest has not started yet.")
138+
if (
139+
self.contest.status == ContestStatus.CONTEST_NOT_START
140+
and check_type != 'details'
141+
):
142+
return self.error('Contest has not started yet.')
128143

129144
# check does user have permission to get ranks, submissions in OI Contest
130-
if self.contest.status == ContestStatus.CONTEST_UNDERWAY and self.contest.rule_type == ContestRuleType.OI:
131-
if not self.contest.real_time_rank and (check_type == "ranks" or check_type == "submissions"):
132-
return self.error(f"No permission to get {check_type}")
145+
if (
146+
self.contest.status == ContestStatus.CONTEST_UNDERWAY
147+
and self.contest.rule_type == ContestRuleType.OI
148+
):
149+
if not self.contest.real_time_rank and (
150+
check_type == 'ranks' or check_type == 'submissions'
151+
):
152+
return self.error(f'No permission to get {check_type}')
133153

134154
return func(*args, **kwargs)
155+
135156
return _check_permission
157+
136158
return decorator
137159

138160

139161
def ensure_created_by(obj, user):
140-
e = APIError(msg=f"{obj.__class__.__name__} does not exist")
162+
e = APIError(msg=f'{obj.__class__.__name__} does not exist')
141163
if not user.is_admin_role():
142164
raise e
143165
if user.is_super_admin():

account/middleware.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from django.conf import settings
21
from django.db import connection
32
from django.utils.timezone import now
43
from django.utils.deprecation import MiddlewareMixin
@@ -9,12 +8,14 @@
98

109
class APITokenAuthMiddleware(MiddlewareMixin):
1110
def process_request(self, request):
12-
appkey = request.META.get("HTTP_APPKEY")
11+
appkey = request.META.get('HTTP_APPKEY')
1312
if appkey:
1413
try:
15-
request.user = User.objects.get(open_api_appkey=appkey, open_api=True, is_disabled=False)
14+
request.user = User.objects.get(
15+
open_api_appkey=appkey, open_api=True, is_disabled=False
16+
)
1617
request.csrf_processing_done = True
17-
request.auth_method = "api_key"
18+
request.auth_method = 'api_key'
1819
except User.DoesNotExist:
1920
pass
2021

@@ -25,12 +26,12 @@ def process_request(self, request):
2526
if forwarded:
2627
request.ip = forwarded.split(',')[0].strip()
2728
else:
28-
request.ip = request.META["REMOTE_ADDR"]
29+
request.ip = request.META['REMOTE_ADDR']
2930
if request.user.is_authenticated:
3031
session = request.session
31-
session["user_agent"] = request.META.get("HTTP_USER_AGENT", "")
32-
session["ip"] = request.ip
33-
session["last_activity"] = now()
32+
session['user_agent'] = request.META.get('HTTP_USER_AGENT', '')
33+
session['ip'] = request.ip
34+
session['last_activity'] = now()
3435
user_sessions = request.user.session_keys
3536
if session.session_key not in user_sessions:
3637
user_sessions.append(session.session_key)
@@ -40,18 +41,20 @@ def process_request(self, request):
4041
class AdminRoleRequiredMiddleware(MiddlewareMixin):
4142
def process_request(self, request):
4243
path = request.path_info
43-
if path.startswith("/admin/") or path.startswith("/api/admin/"):
44+
if path.startswith('/admin/') or path.startswith('/api/admin/'):
4445
if not (request.user.is_authenticated and request.user.is_admin_role()):
45-
return JSONResponse.response({"error": "login-required", "data": "Please login in first"})
46+
return JSONResponse.response(
47+
{'error': 'login-required', 'data': 'Please login in first'}
48+
)
4649

4750

4851
class LogSqlMiddleware(MiddlewareMixin):
4952
def process_response(self, request, response):
50-
print("\033[94m", "#" * 30, "\033[0m")
53+
print('\033[94m', '#' * 30, '\033[0m')
5154
time_threshold = 0.03
5255
for query in connection.queries:
53-
if float(query["time"]) > time_threshold:
54-
print("\033[93m", query, "\n", "-" * 30, "\033[0m")
56+
if float(query['time']) > time_threshold:
57+
print('\033[93m', query, '\n', '-' * 30, '\033[0m')
5558
else:
56-
print(query, "\n", "-" * 30)
59+
print(query, '\n', '-' * 30)
5760
return response

account/migrations/0001_initial.py

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,30 @@
1111

1212

1313
class Migration(migrations.Migration):
14-
1514
initial = True
1615

17-
dependencies = [
18-
]
16+
dependencies = []
1917

2018
operations = [
2119
migrations.CreateModel(
2220
name='User',
2321
fields=[
24-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
22+
(
23+
'id',
24+
models.AutoField(
25+
auto_created=True,
26+
primary_key=True,
27+
serialize=False,
28+
verbose_name='ID',
29+
),
30+
),
2531
('password', models.CharField(max_length=128, verbose_name='password')),
26-
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
32+
(
33+
'last_login',
34+
models.DateTimeField(
35+
blank=True, null=True, verbose_name='last login'
36+
),
37+
),
2738
('username', models.CharField(max_length=30, unique=True)),
2839
('real_name', models.CharField(max_length=30, null=True)),
2940
('email', models.EmailField(max_length=254, null=True)),
@@ -48,20 +59,37 @@ class Migration(migrations.Migration):
4859
migrations.CreateModel(
4960
name='UserProfile',
5061
fields=[
51-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
62+
(
63+
'id',
64+
models.AutoField(
65+
auto_created=True,
66+
primary_key=True,
67+
serialize=False,
68+
verbose_name='ID',
69+
),
70+
),
5271
('problems_status', jsonfield.fields.JSONField(default={})),
53-
('avatar', models.CharField(default="default.png", max_length=50)),
72+
('avatar', models.CharField(default='default.png', max_length=50)),
5473
('blog', models.URLField(blank=True, null=True)),
5574
('mood', models.CharField(blank=True, max_length=200, null=True)),
5675
('accepted_problem_number', models.IntegerField(default=0)),
5776
('submission_number', models.IntegerField(default=0)),
58-
('phone_number', models.CharField(blank=True, max_length=15, null=True)),
77+
(
78+
'phone_number',
79+
models.CharField(blank=True, max_length=15, null=True),
80+
),
5981
('school', models.CharField(blank=True, max_length=200, null=True)),
6082
('major', models.CharField(blank=True, max_length=200, null=True)),
6183
('student_id', models.CharField(blank=True, max_length=15, null=True)),
6284
('time_zone', models.CharField(blank=True, max_length=32, null=True)),
6385
('language', models.CharField(blank=True, max_length=32, null=True)),
64-
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
86+
(
87+
'user',
88+
models.OneToOneField(
89+
on_delete=django.db.models.deletion.CASCADE,
90+
to=settings.AUTH_USER_MODEL,
91+
),
92+
),
6593
],
6694
options={
6795
'db_table': 'user_profile',

account/migrations/0002_auto_20170209_1028.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77

88
class Migration(migrations.Migration):
9-
109
dependencies = [
1110
('account', '0001_initial'),
1211
]

account/migrations/0003_userprofile_total_score.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77

88
class Migration(migrations.Migration):
9-
109
dependencies = [
1110
('account', '0002_auto_20170209_1028'),
1211
]
@@ -25,5 +24,5 @@ class Migration(migrations.Migration):
2524
migrations.RemoveField(
2625
model_name='userprofile',
2726
name='time_zone',
28-
)
27+
),
2928
]

account/migrations/0005_auto_20170830_1154.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88

99
class Migration(migrations.Migration):
10-
1110
dependencies = [
1211
('account', '0003_userprofile_total_score'),
1312
]

account/migrations/0006_user_session_keys.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88

99
class Migration(migrations.Migration):
10-
1110
dependencies = [
1211
('account', '0005_auto_20170830_1154'),
1312
]

account/migrations/0008_auto_20171011_1214.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88

99
class Migration(migrations.Migration):
10-
1110
dependencies = [
1211
('account', '0006_user_session_keys'),
1312
]
@@ -70,7 +69,9 @@ class Migration(migrations.Migration):
7069
migrations.AlterField(
7170
model_name='userprofile',
7271
name='avatar',
73-
field=models.CharField(default='/static/avatar/default.png', max_length=256),
72+
field=models.CharField(
73+
default='/static/avatar/default.png', max_length=256
74+
),
7475
),
7576
migrations.AlterField(
7677
model_name='userprofile',

account/migrations/0009_auto_20171125_1514.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77

88
class Migration(migrations.Migration):
9-
109
dependencies = [
1110
('account', '0008_auto_20171011_1214'),
1211
]
@@ -15,6 +14,8 @@ class Migration(migrations.Migration):
1514
migrations.AlterField(
1615
model_name='userprofile',
1716
name='avatar',
18-
field=models.CharField(default='/public/avatar/default.png', max_length=256),
17+
field=models.CharField(
18+
default='/public/avatar/default.png', max_length=256
19+
),
1920
),
2021
]

0 commit comments

Comments
 (0)