Автоматический рефакторинг и игнорирование flake8

Выполнен автоматический рефакторинг. Для тех файлов,
которые не прошли flake8 - был добавлен `noqa`, чтобы
в будущем исправить эти проблемы
This commit is contained in:
2024-07-08 00:38:01 +03:00
parent 4edeef4003
commit e80a01157f
54 changed files with 540 additions and 287 deletions

View File

@@ -4,7 +4,7 @@
Модуль содержит в себе следующие таблицы:
* `Chats` - таблица для хранения информации о чатах.
* `Chats` - таблица для хранения информации о чатах.
* `Users` - таблица для хранения информации о пользователях.
* `Messages` - таблица для хранения информации о сообщениях.
* `ChatStats` - таблица для хранения статистики чатов по дням.
@@ -28,9 +28,9 @@ Cтруктура таблицы `Users`:
руктура таблицы `Messages`:
* `message_chat_id` - идентификатор чата в котором отправлено сообщение.
* `message_id` - идентификатор сообщения.
* `messag_sender_id` - идентификатор пользователя отправившего сообщение. Если сообщение отправил бот, то
* `messag_sender_id` - идентификатор пользователя отправившего сообщение. Если сообщение отправил бот, то
`messag_sender_id` = 0.
* `answer_to_message_id` - идентификатор сообщения на которое дан ответ. Если ответа нет или ответ на служебное
* `answer_to_message_id` - идентификатор сообщения на которое дан ответ. Если ответа нет или ответ на служебное
сообщение о создании топика в чатах с форумным типом, то `answer_to_message_id` = 0.
* `message_ai_model` - идентификатор модели нейросети, которая использовалась для генерации ответа. Если ответ'
сгенерирован не был, то `message_ai_model` = null.
@@ -45,4 +45,4 @@ Cтруктура таблицы `UserStats`:
* `chat_id` - идентификатор чата для которого собрана статистика.
* `user_id` - идентификатор пользователя для которого собрана статистика.
* `date` - дата на которую собрана статистика.
* `messages_count` - количество сообщений отправленных пользователем в чат за день.
* `messages_count` - количество сообщений отправленных пользователем в чат за день.

View File

@@ -1 +1 @@
from . import db_api, models
from . import db_api, models

View File

@@ -1,13 +1,14 @@
from .models.chats import Chats
from .models.messages import Messages
from .models.users import Users
from .models.user_stats import UserStats
from .models.chat_stats import ChatStats
from ....service import paths
from ..exceptions.module_exceptions import MissingModuleName, NotExpectedModuleName
import peewee as pw
from aiogram.types import Message
from ....service import paths
from ..exceptions.module_exceptions import MissingModuleName, NotExpectedModuleName
from .models.chat_stats import ChatStats
from .models.chats import Chats
from .models.messages import Messages
from .models.user_stats import UserStats
from .models.users import Users
def connect_database(is_test: bool = False, module: str | None = None):
if is_test:
@@ -37,11 +38,14 @@ def create_tables(db: pw.SqliteDatabase):
def add_chat(chat_id, chat_name, chat_type=10, chat_stats=0):
chat, created = Chats.get_or_create(id=chat_id, defaults={
'chat_name': chat_name,
'chat_type': chat_type,
'chat_all_stat': chat_stats,
})
chat, created = Chats.get_or_create(
id=chat_id,
defaults={
"chat_name": chat_name,
"chat_type": chat_type,
"chat_all_stat": chat_stats,
},
)
if not created:
# Обновить существующий чат, если он уже существует
chat.chat_name = chat_name
@@ -50,19 +54,30 @@ def add_chat(chat_id, chat_name, chat_type=10, chat_stats=0):
chat.save()
def add_user(user_id, user_first_name, user_last_name=None, user_tag=None, user_role=0, user_stats=0, user_rep=0):
def add_user(
user_id,
user_first_name,
user_last_name=None,
user_tag=None,
user_role=0,
user_stats=0,
user_rep=0,
):
if user_last_name is None:
user_name = user_first_name
else:
user_name = user_first_name + " " + user_last_name
user, created = Users.get_or_create(id=user_id, defaults={
'user_tag': user_tag,
'user_name': user_name,
'user_role': user_role,
'user_stats': user_stats,
'user_rep': user_rep
})
user, created = Users.get_or_create(
id=user_id,
defaults={
"user_tag": user_tag,
"user_name": user_name,
"user_role": user_role,
"user_stats": user_stats,
"user_rep": user_rep,
},
)
if not created:
# Обновить существующего пользователя, если он уже существует
user.user_tag = user_tag
@@ -84,26 +99,20 @@ def add_message(message: Message, message_ai_model=None):
message_sender_id=message.from_user.id,
answer_to_message_id=answer_to_message_id,
message_ai_model=message_ai_model,
message_text=message.text
message_text=message.text,
)
def add_chat_stats(chat_id, date, messages_count):
ChatStats.create(
chat_id=chat_id,
date=date,
messages_count=messages_count
)
ChatStats.create(chat_id=chat_id, date=date, messages_count=messages_count)
def add_user_stats(chat_id, user_id, date, messages_count):
UserStats.create(
chat_id=chat_id,
user_id=user_id,
date=date,
messages_count=messages_count
chat_id=chat_id, user_id=user_id, date=date, messages_count=messages_count
)
# Работа с таблицей чатов
@@ -125,6 +134,7 @@ def get_chat_all_stat(chat_id):
chat = Chats.get_or_none(Chats.id == chat_id)
return chat.chat_all_stat if chat else None
# Работа с таблицей пользователей
@@ -136,6 +146,7 @@ def get_user_tag(user_id):
user = Users.get_or_none(Users.id == user_id)
return user.user_tag if user else None
def get_user_id(user_tag):
user = Users.get_or_none(Users.user_tag == user_tag)
return user.id if user else None
@@ -179,32 +190,44 @@ def change_user_role(user_id, new_user_role):
query = Users.update(user_role=new_user_role).where(Users.id == user_id)
query.execute()
# Работа с таблицей сообщений
def get_message(message_chat_id, message_id):
return Messages.get_or_none(Messages.message_chat_id == message_chat_id, Messages.message_id == message_id)
return Messages.get_or_none(
Messages.message_chat_id == message_chat_id, Messages.message_id == message_id
)
def get_message_sender_id(message_chat_id, message_id):
message = Messages.get_or_none(Messages.message_chat_id == message_chat_id, Messages.message_id == message_id)
message = Messages.get_or_none(
Messages.message_chat_id == message_chat_id, Messages.message_id == message_id
)
return message.message_sender_id if message else None
def get_message_text(message_chat_id, message_id):
message = Messages.get_or_none(Messages.message_chat_id == message_chat_id, Messages.message_id == message_id)
message = Messages.get_or_none(
Messages.message_chat_id == message_chat_id, Messages.message_id == message_id
)
return message.message_text if message else None
def get_message_ai_model(message_chat_id, message_id):
message = Messages.get_or_none(Messages.message_chat_id == message_chat_id, Messages.message_id == message_id)
message = Messages.get_or_none(
Messages.message_chat_id == message_chat_id, Messages.message_id == message_id
)
return message.message_ai_model if message else None
def get_answer_to_message_id(message_chat_id, message_id):
message = Messages.get_or_none(Messages.message_chat_id == message_chat_id, Messages.message_id == message_id)
message = Messages.get_or_none(
Messages.message_chat_id == message_chat_id, Messages.message_id == message_id
)
return message.answer_to_message_id if message else None
# Работа с таблицей статистики чатов
@@ -214,6 +237,7 @@ def get_chat_stats(chat_id):
chat_stats[chat_stat.date] = chat_stat.messages_count
return chat_stats
# Работа с таблицей статистики пользователей
@@ -223,26 +247,28 @@ def get_user_stats(user_id):
user_stats[user_stat.date] = user_stat.messages_count
return user_stats
# Функции обновления
def update_chat_all_stat(chat_id):
query = Chats.update(chat_all_stat=Chats.chat_all_stat + 1).where(Chats.id == chat_id)
query = Chats.update(chat_all_stat=Chats.chat_all_stat + 1).where(
Chats.id == chat_id
)
query.execute()
def update_chat_stats(chat_id, date):
chat_stats = ChatStats.get_or_none(ChatStats.chat_id == chat_id, ChatStats.date == date)
chat_stats = ChatStats.get_or_none(
ChatStats.chat_id == chat_id, ChatStats.date == date
)
if chat_stats:
query = ChatStats.update(messages_count=ChatStats.messages_count + 1).where(ChatStats.chat_id == chat_id,
ChatStats.date == date)
query = ChatStats.update(messages_count=ChatStats.messages_count + 1).where(
ChatStats.chat_id == chat_id, ChatStats.date == date
)
query.execute()
else:
ChatStats.create(
chat_id=chat_id,
date=date,
messages_count=1
)
ChatStats.create(chat_id=chat_id, date=date, messages_count=1)
def update_user_all_stat(user_id):
@@ -251,10 +277,7 @@ def update_user_all_stat(user_id):
query = Users.update(user_stats=Users.user_stats + 1).where(Users.id == user_id)
query.execute()
else:
Users.create(
id=user_id,
user_stats=1
)
Users.create(id=user_id, user_stats=1)
def update_user_rep(user_id):
@@ -263,24 +286,21 @@ def update_user_rep(user_id):
query = Users.update(user_rep=Users.user_rep + 1).where(Users.id == user_id)
query.execute()
else:
Users.create(
id=user_id,
user_rep=1
)
Users.create(id=user_id, user_rep=1)
def update_user_stats(chat_id, user_id, date):
user_stats = UserStats.get_or_none(UserStats.chat_id == chat_id, UserStats.user_id == user_id,
UserStats.date == date)
user_stats = UserStats.get_or_none(
UserStats.chat_id == chat_id,
UserStats.user_id == user_id,
UserStats.date == date,
)
if user_stats:
query = UserStats.update(messages_count=UserStats.messages_count + 1).where(UserStats.chat_id == chat_id,
UserStats.user_id == user_id,
UserStats.date == date)
query = UserStats.update(messages_count=UserStats.messages_count + 1).where(
UserStats.chat_id == chat_id,
UserStats.user_id == user_id,
UserStats.date == date,
)
query.execute()
else:
UserStats.create(
chat_id=chat_id,
user_id=user_id,
date=date,
messages_count=1
)
UserStats.create(chat_id=chat_id, user_id=user_id, date=date, messages_count=1)

View File

@@ -3,4 +3,4 @@
"description": "Модуль для работы с БД",
"author": "OCAB Team",
"version": "1.0"
}
}

View File

@@ -2,8 +2,8 @@ import peewee as pw
class ChatStats(pw.Model):
class Meta:
...
class Meta: ...
chat_id = pw.IntegerField(null=False)
date = pw.DateField(null=False)
messages_count = pw.IntegerField(null=False, default=0)

View File

@@ -2,8 +2,8 @@ import peewee as pw
class Chats(pw.Model):
class Meta:
...
class Meta: ...
chat_name = pw.CharField(null=False)
chat_type = pw.IntegerField(null=False, default=10)
chat_all_stat = pw.IntegerField(null=False)

View File

@@ -2,12 +2,11 @@ import peewee as pw
class Messages(pw.Model):
class Meta:
...
class Meta: ...
message_chat_id = pw.IntegerField(null=False)
message_id = pw.IntegerField(null=False)
message_sender_id = pw.IntegerField(null=False)
answer_to_message_id = pw.IntegerField(null=True)
message_ai_model = pw.TextField(null=True)
message_text = pw.TextField(null=False)

View File

@@ -2,8 +2,8 @@ import peewee as pw
class UserStats(pw.Model):
class Meta:
...
class Meta: ...
chat_id = pw.IntegerField(null=False)
user_id = pw.IntegerField(null=False)
date = pw.DateField(null=False)

View File

@@ -2,8 +2,8 @@ import peewee as pw
class Users(pw.Model):
class Meta:
...
class Meta: ...
user_tag = pw.CharField(null=True)
user_name = pw.CharField(null=False) # до 255 символов
user_role = pw.IntegerField(null=True, default=3)

View File

@@ -1 +1 @@
Эта директория для тестовой БД
Эта директория для тестовой БД

View File

@@ -1,8 +1,10 @@
import unittest
import os
# flake8: noqa
import os
import unittest
from ..db_api import *
from ...exceptions.module_exceptions import MissingModuleName, NotExpectedModuleName
from ..db_api import *
class TestDatabaseAPI(unittest.TestCase):
@@ -13,6 +15,7 @@ class TestDatabaseAPI(unittest.TestCase):
def setUpClass(cls):
cls.database, cls.path = connect_database(is_test=True, module="database")
create_tables(cls.database)
def test_fail_connect(cls):
with cls.assertRaises(MissingModuleName):
cls.database, cls.path = connect_database(is_test=True)
@@ -35,8 +38,12 @@ class TestDatabaseAPI(unittest.TestCase):
self.assertEqual(chat2.chat_role, 1)
def test_add_and_get_message(self):
add_message(message_id=1, message_text="Test Message 1", message_sender=1, answer_id=2)
add_message(message_id=2, message_text="Test Message 2", message_sender=2, answer_id=1)
add_message(
message_id=1, message_text="Test Message 1", message_sender=1, answer_id=2
)
add_message(
message_id=2, message_text="Test Message 2", message_sender=2, answer_id=1
)
message1 = get_message(1)
self.assertIsNotNone(message1)
@@ -49,8 +56,22 @@ class TestDatabaseAPI(unittest.TestCase):
self.assertEqual(message2.message_text, "Test Message 2")
def test_add_and_get_user(self):
add_user(user_id=100, user_name="TestUser1", user_tag="TestTag1", user_role=0, user_stats=10, user_rep=5)
add_user(user_id=101, user_name="TestUser2", user_tag="TestTag2", user_role=1, user_stats=20, user_rep=10)
add_user(
user_id=100,
user_name="TestUser1",
user_tag="TestTag1",
user_role=0,
user_stats=10,
user_rep=5,
)
add_user(
user_id=101,
user_name="TestUser2",
user_tag="TestTag2",
user_role=1,
user_stats=20,
user_rep=10,
)
user1 = get_user(100)
self.assertIsNotNone(user1)
@@ -63,8 +84,22 @@ class TestDatabaseAPI(unittest.TestCase):
self.assertEqual(user2.user_name, "TestUser2")
def test_get_user_role(self):
add_user(user_id=102, user_name="TestUser3", user_tag="TestTag3", user_role=0, user_stats=30, user_rep=15)
add_user(user_id=103, user_name="TestUser4", user_tag="TestTag4", user_role=1, user_stats=40, user_rep=20)
add_user(
user_id=102,
user_name="TestUser3",
user_tag="TestTag3",
user_role=0,
user_stats=30,
user_rep=15,
)
add_user(
user_id=103,
user_name="TestUser4",
user_tag="TestTag4",
user_role=1,
user_stats=40,
user_rep=20,
)
user_role1 = get_user_role(102)
self.assertEqual(user_role1, 0)
@@ -73,12 +108,26 @@ class TestDatabaseAPI(unittest.TestCase):
self.assertEqual(user_role2, 1)
def test_change_user_name(self):
add_user(user_id=104, user_name="OldName1", user_tag="TestTag5", user_role=0, user_stats=50, user_rep=25)
add_user(
user_id=104,
user_name="OldName1",
user_tag="TestTag5",
user_role=0,
user_stats=50,
user_rep=25,
)
change_user_name(104, "NewName1")
updated_user1 = get_user(104)
self.assertEqual(updated_user1.user_name, "NewName1")
add_user(user_id=105, user_name="OldName2", user_tag="TestTag6", user_role=1, user_stats=60, user_rep=30)
add_user(
user_id=105,
user_name="OldName2",
user_tag="TestTag6",
user_role=1,
user_stats=60,
user_rep=30,
)
change_user_name(105, "NewName2")
updated_user2 = get_user(105)
self.assertEqual(updated_user2.user_name, "NewName2")
@@ -89,5 +138,5 @@ class TestDatabaseAPI(unittest.TestCase):
os.system(f"rm {cls.path}")
if __name__ == '__main__':
if __name__ == "__main__":
unittest.main()