Форум сайта python.su
Вот, хочу поделиться своим творением. Питон изучаю сравнительно недавно (это первый серьезный проект) так что за код сильно не ругайте. Очень хотелось бы конструктивной критики от сообщников.
Если вам нужно получить подробную информацию о жестком диске, прочитать SMART, запустить встроенные в SMART тесты или работать с паролями накопителей, то эта библиотечка может облегчить вам жизнь.
Код библиотеки достаточно объемный, поэтому даю ссылку на гитхаб: ATA Pass-Through library
Офлайн
> Очень хотелось бы конструктивной критики от сообщников.
Вот мои первые впечатления:
1) С функцией swapString явно что-то не так.
2) Научись пользоваться словарями. Писать гигантские условия не комильфо.
3) У многих функций/методов отсутствует документация.
Офлайн
Ну и PEP8…
Офлайн
Функцию swapString я нашел где-то на просторах сети в самом начале работы по этому проекту. Она работает. Что с ней не так?
Длинным списком условий я заменял отсутствующий в питоне оператор switch/case. В питоне принято делать это через словари?
Поскольку библиотека пишется изначально для себя, с документированием не очень хорошо, это правда. Нормальная документация планируется позже. Но мне казалось, что там достаточно простой код.
Отредактировано kazenniy (Окт. 31, 2016 19:06:05)
Офлайн
4kpt_IVА что не так с pep8? Проверку на pep8 проходит без ошибок. Ну кроме длины строк конечно, но это осознанный выбор. Идея писать столбиком по 80 символов мне кажется сильно устаревшей.
Ну и PEP8…
Офлайн
Какой механизм использовали для проверки???
Офлайн
Самый большой блок if по моему не получится заменить на словарь, там есть подусловия. Что-то типа:
elif id == 206:
if self.ssd:
return "Unknown_SSD_Attribute"
return "Flying_Height"
elif id == 207:
if self.ssd:
return "Unknown_SSD_Attribute"
return "Spin_High_Current"
Офлайн
4kpt_IVПитоновский pep8-1.7.0
Какой механизм использовали для проверки???
Офлайн
Неужели по нему методы класса могут быть CamelCase?
Отредактировано 4kpt_IV (Окт. 31, 2016 19:26:13)
Офлайн
$ pep8 atapt.py
atapt.py:47:80: E501 line too long (83 > 79 characters)
atapt.py:167:80: E501 line too long (85 > 79 characters)
atapt.py:168:80: E501 line too long (110 > 79 characters)
atapt.py:231:80: E501 line too long (93 > 79 characters)
atapt.py:259:80: E501 line too long (90 > 79 characters)
atapt.py:260:80: E501 line too long (83 > 79 characters)
atapt.py:261:80: E501 line too long (81 > 79 characters)
atapt.py:286:80: E501 line too long (81 > 79 characters)
atapt.py:287:80: E501 line too long (100 > 79 characters)
atapt.py:310:10: E114 indentation is not a multiple of four (comment)
atapt.py:311:80: E501 line too long (80 > 79 characters)
atapt.py:314:80: E501 line too long (114 > 79 characters)
atapt.py:316:80: E501 line too long (83 > 79 characters)
atapt.py:317:80: E501 line too long (80 > 79 characters)
atapt.py:321:80: E501 line too long (90 > 79 characters)
atapt.py:450:80: E501 line too long (97 > 79 characters)
atapt.py:455:80: E501 line too long (84 > 79 characters)
atapt.py:479:80: E501 line too long (103 > 79 characters)
atapt.py:487:80: E501 line too long (90 > 79 characters)
atapt.py:500:80: E501 line too long (89 > 79 characters)
atapt.py:512:80: E501 line too long (89 > 79 characters)
atapt.py:525:80: E501 line too long (107 > 79 characters)
atapt.py:539:80: E501 line too long (111 > 79 characters)
atapt.py:560:80: E501 line too long (82 > 79 characters)
atapt.py:561:80: E501 line too long (87 > 79 characters)
atapt.py:566:80: E501 line too long (98 > 79 characters)
atapt.py:567:80: E501 line too long (118 > 79 characters)
atapt.py:575:80: E501 line too long (95 > 79 characters)
atapt.py:807:80: E501 line too long (106 > 79 characters)
atapt.py:817:80: E501 line too long (84 > 79 characters)
atapt.py:822:80: E501 line too long (117 > 79 characters)
atapt.py:835:80: E501 line too long (131 > 79 characters)
atapt.py:893:80: E501 line too long (89 > 79 characters)
atapt.py:897:80: E501 line too long (82 > 79 characters)
atapt.py:898:80: E501 line too long (103 > 79 characters)
atapt.py:913:80: E501 line too long (89 > 79 characters)
atapt.py:953:80: E501 line too long (83 > 79 characters)
atapt.py:980:80: E501 line too long (85 > 79 characters)
atapt.py:994:80: E501 line too long (97 > 79 characters)
atapt.py:995:80: E501 line too long (83 > 79 characters)
atapt.py:1023:80: E501 line too long (85 > 79 characters)
atapt.py:1037:1: W391 blank line at end of file
Офлайн