Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

optimize getlecture #53

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open

optimize getlecture #53

wants to merge 8 commits into from

Conversation

Spangi2000
Copy link

@Spangi2000 Spangi2000 commented Nov 16, 2024

Изменения:

В get lecturer оставил всего один цикл for по всем комментариям, чтобы улучшить реализацию, а также, все проверки производятся на каждой итерации.

Детали реализации:

Простым языком, я ввёл переменные result.mark_freebie, result.mark_kindness, result.mark_clarity и в них на цикле for забиваются значения оценок по разным критериям, после вводим список general_marks в который кладем среднее арифметическое от оценок лежащих в каждом из resalts. После этого делаем последний шаг - Находим среднее арифметическое всех видов оценок (халявность, полярность, доброта). Вот и всё дорогой проверяющий.

Check-List

  • Вы проверили свой код перед отправкой запроса?
  • Вы написали тесты к реализованным функциям?
  • Вы не забыли применить форматирование black и isort для Back-End или Prettier для Front-End?

Copy link

github-actions bot commented Nov 16, 2024

Code Coverage

Coverage Report
FileStmtsMissCoverMissing
rating_api
   __main__.py440%1–7
   exceptions.py26292%35–36
rating_api/models
   base.py55198%76
   db.py73297%61, 74
rating_api/routes
   comment.py811878%31, 42–45, 76–85, 128, 138–143, 150, 173, 189
   exc_handlers.py20195%26
   lecturer.py1001486%146–169, 185, 193, 211, 217
rating_api/schemas
   base.py12467%6–9
TOTAL4834690% 

Summary

Tests Skipped Failures Errors Time
44 0 💤 3 ❌ 0 🔥 3.073s ⏱️

Comment on lines 124 to 137
result.mark_freebie, result.mark_kindness, result.mark_clarity = 0, 0, 0

for comment in approved_comments:
result.mark_freebie += comment.mark_freebie
result.mark_kindness += comment.mark_kindness
result.mark_clarity += comment.mark_clarity

general_marks = [
lecturer_to_result.mark_freebie,
lecturer_to_result.mark_kindness,
lecturer_to_result.mark_clarity,
result.mark_freebie / len(approved_comments),
result.mark_kindness / len(approved_comments),
result.mark_clarity / len(approved_comments),
]
lecturer_to_result.mark_general = sum(general_marks) / len(general_marks)
result.mark_general = sum(general_marks) / len(general_marks)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

result изначально имеет вид:

class LecturerGetAll(Base):
    lecturers: list[LecturerGet] = []
    limit: int
    offset: int
    total: int

А тут вместо добавления оценок лекторам, создаются новые поля в result и перезаписываются при каждой итерации по лектору

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Аналогично нужно поправить ручку get_lecturer

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Также выкатили пр на тесты, так что стоит написать тесты на:

  1. Запрос всех лекторов с комментами
  2. Запрос одного лектора с комментами
  3. Запрос всех лекторов с оценками
  4. Запрос одного лектора с оценками

Copy link

💩 Code linting failed, use black and isort to fix it.

Copy link

💩 Code linting failed, use black and isort to fix it.

1 similar comment
Copy link

💩 Code linting failed, use black and isort to fix it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Переписать реализацию ручки GET lecturer
2 participants