Skip to content

Commit f6368c7

Browse files
committed
Fix linting errors and apply code formatting
- Applied black code formatting to all Python files - Organized imports with isort - Fixed unused variables in ban_handlers.py - Removed trailing whitespace and cleaned up formatting - Fixed long lines by splitting them appropriately - Converted escape sequences to raw strings to prevent syntax warnings - Fixed broken import statements and function definitions - Removed unused imports from sendler/match_messages.py - All Python files now compile without syntax errors
1 parent 414d2cf commit f6368c7

10 files changed

Lines changed: 95 additions & 58 deletions

File tree

handlers/admin/__init__.py

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

handlers/admin/admin_report.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,41 +8,41 @@ def prepare_user_info():
88
"""Формируем список пользователей со штрафными баллами и другой инф."""
99
with Session() as db_session:
1010
query = text(
11-
"""SELECT
12-
mr.about_whom_id,
13-
ui.teleg_id,
14-
ui.name,
15-
un.username,
11+
"""SELECT
12+
mr.about_whom_id,
13+
ui.teleg_id,
14+
ui.name,
15+
un.username,
1616
COUNT(
1717
CASE
1818
WHEN mr.grade = 0 THEN 1
1919
ELSE NULL
2020
END
21-
) AS cnt_fail,
22-
MAX(mr.date_of_comment) AS last_comment,
21+
) AS cnt_fail,
22+
MAX(mr.date_of_comment) AS last_comment,
2323
mr.comment,
2424
bl.ban_status
2525
FROM mets_reviews AS mr
26-
LEFT JOIN user_info AS ui
26+
LEFT JOIN user_info AS ui
2727
ON mr.about_whom_id = ui.id
28-
LEFT JOIN tg_usernames AS un
28+
LEFT JOIN tg_usernames AS un
2929
ON mr.about_whom_id = un.id
3030
LEFT JOIN (
31-
SELECT
32-
banned_user_id,
33-
MAX(id) AS max_id,
31+
SELECT
32+
banned_user_id,
33+
MAX(id) AS max_id,
3434
ban_status
3535
FROM ban_list
3636
GROUP BY banned_user_id, ban_status
37-
) AS bl
37+
) AS bl
3838
ON mr.about_whom_id = bl.banned_user_id
3939
WHERE mr.grade = 0
40-
GROUP BY
41-
mr.about_whom_id,
42-
ui.teleg_id,
43-
ui.name,
44-
un.username,
45-
mr.comment,
40+
GROUP BY
41+
mr.about_whom_id,
42+
ui.teleg_id,
43+
ui.name,
44+
un.username,
45+
mr.comment,
4646
bl.ban_status
4747
ORDER BY MAX(mr.date_of_comment) DESC;
4848
"""

handlers/admin/ban_handlers.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ async def ban_list_add(message: types.Message):
5454
async def ban_list_add_answer(message: types.Message, state: FSMContext):
5555
"""Получение ответа от админа и проверка введенного id."""
5656
logger.info(f"Для добавления в бан введен пользователь " f"с if {message.text}.")
57-
user_id = message.text
5857
if not await ban_validator(message):
5958
return
6059
await state.update_data(banned_user_id=int(message.text))
@@ -132,7 +131,6 @@ async def ban_list_remove(message: types.Message):
132131
async def ban_list_remove_answer(message: types.Message, state: FSMContext):
133132
"""Получение ответа с id пользователем для вывода из бана. Валидация."""
134133
logger.info(f"Для вывода из бана введен пользователь " f"с if {message.text}.")
135-
user_id = message.text
136134
if not await unban_validator(message):
137135
return
138136
await state.update_data(unbanned_user_id=int(message.text))

handlers/admin/validators/validators.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ async def resolve_user_input_to_db_id(user_input: str):
9696
return (
9797
True,
9898
db_id,
99-
f"Найден пользователь по явно указанному внутреннему ID: {internal_user.name}",
99+
f"Найден пользователь по явно указанному внутреннему ID: "
100+
f"{internal_user.name}",
100101
)
101102
return False, None, f"Пользователь с внутренним ID {db_id} не найден"
102103
except ValueError:
@@ -136,14 +137,16 @@ async def resolve_user_input_to_db_id(user_input: str):
136137
telegram_user.id,
137138
f"⚠️ ВНИМАНИЕ: ID {user_id} найден у двух пользователей! "
138139
f"Выбран по Telegram ID: {telegram_user.name}. "
139-
f"Для точности используйте @username или укажите 'db:{user_id}' для внутреннего ID.",
140+
f"Для точности используйте @username или укажите "
141+
f"'db:{user_id}' для внутреннего ID.",
140142
)
141143

142144
# Случай 4: Не найден ни по одному типу ID
143145
return (
144146
False,
145147
None,
146-
f"Пользователь с ID {user_id} не найден ни в внутренней базе, ни среди Telegram ID",
148+
f"Пользователь с ID {user_id} не найден ни в внутренней базе, "
149+
f"ни среди Telegram ID",
147150
)
148151

149152
return False, None, "Неверный формат ввода. Введите число (ID) или username с @"

handlers/user/first_check.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,16 @@ async def check_and_add_registration_button(message: types.Message):
2929
3030
Добро пожаловать в бот для знакомств 2-й смены лагеря "Буревестник" 2025!
3131
32-
Каждый день мы будем подбирать для тебя нового собеседника из нашей смены. Ты сможешь узнать, кто это, и пойти познакомиться с ним вживую! Распределение происходит ежедневно, так что не упусти шанс найти новых друзей.
33-
Чтобы начать, пройди небольшую регистрацию: представься и ответь на пару вопросов. Это поможет твоему новому знакомому завязать разговор.
32+
Каждый день мы будем подбирать для тебя нового собеседника из нашей смены. \
33+
Ты сможешь узнать, кто это, и пойти познакомиться с ним вживую! \
34+
Распределение происходит ежедневно, так что не упусти шанс найти новых друзей.
35+
Чтобы начать, пройди небольшую регистрацию: представься и ответь на пару вопросов. \
36+
Это поможет твоему новому знакомому завязать разговор.
3437
3538
Нажми кнопку "Регистрация" ниже, чтобы найти первого собеседника!
36-
37-
Для общения всей сменой, помощи и рассказов о встречах присоединяйся к нашему общему чату в Телеграме: https://t.me/+Nrp4dllTGetkNDJi
39+
40+
Для общения всей сменой, помощи и рассказов о встречах присоединяйся к нашему \
41+
общему чату в Телеграме: https://t.me/+Nrp4dllTGetkNDJi
3842
"""
3943
if not await check_user_in_base(message):
4044
await bot.send_message(

handlers/user/handlers.py

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,51 @@
1+
import logging
2+
13
from aiogram import exceptions, types
2-
from aiogram.dispatcher import Dispatcher
4+
from aiogram.dispatcher import FSMContext
5+
6+
from data import bot
7+
8+
logger = logging.getLogger(__name__)
9+
from handlers.decorators import (add_tg_username_to_db, check_ban,
10+
check_profile_exists)
11+
from handlers.user.ban_check import check_user_in_ban_list
12+
from handlers.user.get_info_from_table import get_info_from_user_table
13+
from handlers.user.new_member import add_user_to_base
14+
from keyboards.user import *
15+
from states.states import GeneralUserData, UserData
16+
17+
18+
async def about_bot(message):
19+
"""Информация о Random Coffee."""
20+
logger.info(
21+
f"Пользователь с TG_ID {message.from_user.id} " f"запросил информацию о боте"
22+
)
23+
await bot.send_message(
24+
message.from_user.id,
25+
r"""☕️ Алоха\, это бот Рандом Кофе\!
26+
27+
Бот еженедельно подбирает вам собеседника для очной или онлайн\-встречи\. """
28+
+ r"""Общайтесь\, делитесь идеями и расширяйте круг знакомств\!
29+
30+
*Как это работает\:*
31+
— Алгоритм формирует пару *каждую неделю*\, стараясь избежать повторов\.
32+
— После уведомления вы **самостоятельно договариваетесь** о времени и месте\.
33+
34+
*Правила\:*
35+
— *Хотите отдохнуть\?* Включите «Каникулы» в настройках \(1\-3 недели\) """
36+
+ r"""*до* распределения пар\.
37+
— Если пара уже назначена\, а вы не планируете встречаться — """
38+
+ r"""*предупредите партнёра* и\, например\, перенесите встречу\. """
39+
+ r"""Игнор — последний вариант\!
40+
— Хотите перестать рандомкофиться\? Остановите бота через меню Telegram\.
41+
42+
*Советы\:*
43+
— Идеальный формат\: *20–30 минут* за чашкой кофе или прогулкой\.
44+
— *Очные встречи* предпочтительнее, но онлайн — допустимая альтернатива\.""",
45+
parse_mode="MarkdownV2",
46+
)
47+
348

4-
from controllerBD.db_loader import Session
5-
from controllerBD.models import MetInfo
6-
from handlers.decorators import user_handlers
7-
from handlers.user.add_username import check_username
849
from handlers.user.get_info_from_table import (get_full_user_info_by_id,
950
get_holidays_status_from_db,
1051
get_id_from_user_info_table,
@@ -77,7 +118,7 @@ async def about_bot(message: types.Message):
77118
)
78119
await bot.send_message(
79120
message.from_user.id,
80-
"""☕️ Алоха\, это бот Рандом Кофе\!
121+
r"""☕️ Алоха\, это бот Рандом Кофе\!
81122
82123
Бот еженедельно подбирает вам собеседника для очной или онлайн\-встречи\. Общайтесь\, делитесь идеями и расширяйте круг знакомств\!
83124

keyboards/__init__.py

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

match_algoritm/MatchingHelper.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ def start(self):
9191
logger.info("Начало работы алгоритма")
9292
subprocess.call(
9393
[
94-
"./match_algoritm/matchingalogitm -f ./data/match_algoritm_data/input.txt --max"
94+
"./match_algoritm/matchingalogitm -f "
95+
"./data/match_algoritm_data/input.txt --max"
9596
],
9697
shell=True,
9798
)

match_algoritm/blossom.py

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,17 @@ def __init__(self):
6363

6464
def __assert_representation(self):
6565
for t in self.adjacency:
66-
assert (
67-
len(self.adjacency[t]) > 0
68-
), "Если вершина существует в матрице смежности, она должна иметь хотя бы одного соседа."
66+
assert len(self.adjacency[t]) > 0, (
67+
"Если вершина существует в матрице смежности, она должна иметь "
68+
"хотя бы одного соседа."
69+
)
6970
for u in self.adjacency[t]:
7071
self.__assert_edge_exists((t, u))
7172
for t in self.unmarked_adjacency:
72-
assert (
73-
len(self.unmarked_adjacency[t]) > 0
74-
), "Если вершина существует в непомеченной матрице смежности, она должна иметь хотя бы одного соседа."
73+
assert len(self.unmarked_adjacency[t]) > 0, (
74+
"Если вершина существует в непомеченной матрице смежности, она "
75+
"должна иметь хотя бы одного соседа."
76+
)
7577
for u in self.unmarked_adjacency[t]:
7678
self.__assert_edge_exists((t, u))
7779
self.__assert_unmarked_edge_exists((t, u))
@@ -240,9 +242,7 @@ def lift_path(self, path, blossom):
240242
assert False, "Путь не может содержать ровно одну вершину"
241243
if path[0] == blossom.get_id():
242244

243-
############################################################################################################
244245
# ЛЕВАЯ КОНЕЧНАЯ ТОЧКА
245-
############################################################################################################
246246

247247
w = path[1]
248248
blossom_path = []
@@ -260,9 +260,7 @@ def lift_path(self, path, blossom):
260260
), "At least one path with even edges must exist through the blossom"
261261
if path[-1] == blossom.get_id():
262262

263-
############################################################################################################
264263
# ПРАВАЯ КОНЕЧНАЯ ТОЧКА
265-
############################################################################################################
266264
u = path[-2]
267265
blossom_path = []
268266
for v in blossom.traverse_left():
@@ -282,9 +280,7 @@ def lift_path(self, path, blossom):
282280
u, w = path[i - 1], path[i + 1]
283281
if u in self.adjacency[blossom.get_base()]:
284282

285-
####################################################################################################
286-
# ВРУТРЕНЯЯ ЧАСТЬ ЦВЕТКА ЛЕВООРЕНТИРОВАНИИА
287-
####################################################################################################
283+
# ВНУТРЕННЯЯ ЧАСТЬ ЦВЕТКА ЛЕВООРИЕНТИРОВАННАЯ
288284

289285
blossom_path = []
290286
for v in blossom.traverse_left():
@@ -301,9 +297,7 @@ def lift_path(self, path, blossom):
301297
), "At least one path with even edges must exist through the blossom"
302298
elif w in self.adjacency[blossom.get_base()]:
303299

304-
####################################################################################################
305-
# ВРУТРЕНЯЯ ЧАСТЬ ПРАВООРИЕНТИРОВАННА
306-
####################################################################################################
300+
# ВНУТРЕННЯЯ ЧАСТЬ ПРАВООРИЕНТИРОВАННАЯ
307301

308302
blossom_path = []
309303
for v in blossom.traverse_left():
@@ -490,8 +484,8 @@ def contract(self, blossom):
490484
return matching
491485

492486

493-
"""Лес — это неориентированный граф, в котором любые две вершины связаны не более чем одним путем.
494-
Эквивалентно, лес - это неориентированный ациклический граф, все компоненты связности которого являются деревьями;
487+
"""Лес — это неориентированный граф, в котором любые две вершины связаны не более чем одним путем.
488+
Эквивалентно, лес - это неориентированный ациклический граф, все компоненты связности которого являются деревьями;
495489
другими словами, граф состоит из несвязного объединения деревьев."""
496490

497491

sendler/match_messages.py

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

55
from controllerBD.db_loader import Session
66
from controllerBD.models import Gender, Users
7-
from controllerBD.services import (get_defaulf_pare_base_id,
8-
get_tg_username_from_db_by_teleg_id,
9-
update_all_user_mets, update_mets)
7+
from controllerBD.services import get_tg_username_from_db_by_teleg_id
108
from data import IS_FOR_BUR
119
from handlers.user.work_with_date import date_from_db_to_message
1210
from keyboards.user import help_texts_markup

0 commit comments

Comments
 (0)