Hw18#4
Conversation
Add create_results_dir_if_doesnt_exist function
ANugmanova
left a comment
There was a problem hiding this comment.
Поскольку заданий с потоками и с тестами нет, то оцениваю только репозиторий.
Из хорошего: коротко и по делу:) Довольно понятный нейминг, по коммитам можно понять какие вносились изменения, да и в целом, код довольно аккуратный, тут молодец!
Дальше несколько проблем по стилю, которые повлияли на оценку:
- Код иногда идет сплошным полотном. Там, где длинные функции и не хочется их разбивать (хотя лучше почаще разбивать!), нужно делить код на логические блоки и разделять пустыми строками. К примеру, ошибки отдельно, вычисления отдельно, какая-то подготовка результата тоже отдельно. Так и тебе, и кому-то со стороны будет комфортнее читать код. При разработке будет понятно, что нужно сфокусироваться вот на этом кусочке, а не на всей функции. И еще важно, там где это возможно, обязательно уходить от вложенностей. Это не только упрощает чтение, но и иногда спасает от ошибок. Поставил слишком мало отступов и операция уже выполняется во внешнем цикле, а не во внутреннем, так что чем меньше циклов в цикле, тем безопаснее:)
- Пару раз импорты встречались в очень странных местах, их всегда нужно располагать вначале скрипта.
- Не хватает описания. Цель этого задания была в том, чтобы сделать репозиторий, который мог бы посмотреть человек со стороны. Пока что он выглядит не очень дружелюбно для людей, которые не в контексте)
- Местами отсутствуют достриги
- Не хватает примеров для OpenFasta.
Итого, 9/15 за репозиторий
| Homework for Python course in the Bioinformatic Institute | ||
| # Homework repository for 2023-2024 Informatics Bioinstitute professional retraining program | ||
|
|
||
| Here, several homeworks conserning processing bioinformatical data are gathered. Please, see Showcases.ipynb for some examples. |
There was a problem hiding this comment.
Ну тут все-таки немножно лучше добавить о том что реализовано:) Обработка каких данных, что за обработка вообще. То есть после README должно быть какое-то представление о том полезен человеку этот репозиторий или нет
| return: | ||
| - no return | ||
| """ | ||
| import os |
There was a problem hiding this comment.
импорты тут располагать точно не стоит, все должно быть вначале, ну и у тебя уже есть эта библиотека:)
| - no return | ||
| """ | ||
| import os | ||
| if '.fastq' in os.path.basename(path): |
There was a problem hiding this comment.
такую вложенность неудобно читать, лучше вынести исключения, которые касаются проверки файла, и потом отдельный блок начать с открытия файла
|
|
||
|
|
||
| def create_results_dir_if_doesnt_exist() -> None: | ||
| import os |
| log = 'stdout:\n\n' + stdout.getvalue() + '\nstderr:\n\n' + stderr.getvalue() | ||
| bot_send_message(chat_id, message, function_name, log) | ||
|
|
||
| def bot_send_message(chat_id: int, message: str, function_name: str, log: str = None): |
There was a problem hiding this comment.
это может быть независимой функцией, то есть ее лучше вытащить из telegram_logger, чтобы не нагромождать
| self.current_line = None | ||
| self.finished = False | ||
|
|
||
| def read_record(self): |
There was a problem hiding this comment.
эти методы лучше определить после дандер методов
| @@ -0,0 +1,3 @@ | |||
| Bio==1.6.2 | |||
| biopython==1.83 | |||
| numpy==1.24.3 | |||
There was a problem hiding this comment.
Поскольку в твоем репозитории ноутбук заменяет README, то лучше было бы добавить некоторые пояснения, что вот тут вот мы тестируем базовые операции для днк, рнк и белков, вот тут проверяем, что срабатывает ошибка и тд. Хорошо бы, чтобы человеку, который не очень понимает о чем код при быстром просмотре стало все понятно.
| Homework for Python course in the Bioinformatic Institute | ||
| # Homework repository for 2023-2024 Informatics Bioinstitute professional retraining program | ||
|
|
||
| Here, several homeworks conserning processing bioinformatical data are gathered. Please, see Showcases.ipynb for some examples. |
There was a problem hiding this comment.
Ну тут все-таки стоит побольше рассказать про то что в репозитории, с какими данными работаешь, какой есть функционал. После просмотра README у человека должно быть понимание интересно ему дальше разбираться с репозиторием или нет:)
| class AminoAcidSequence(BiologicalSequence): | ||
| alphabet = 'ARNDCQEGHILKMFPSTWYVarndcqeghilkmfpstwyv' | ||
|
|
||
| def is_correct_alphabet(self) -> bool: |
There was a problem hiding this comment.
это нужно сдвинуть ближе к концу класса. Лучше всего, сначала дандер методы, потом публичные, потом приватные
No description provided.