Найти - Пользователи
Полная версия: Библиотека ATA Pass-Through для pyhton3 под linux.
Начало » Python проекты » Библиотека ATA Pass-Through для pyhton3 под linux.
1 2 3
kazenniy
Вот, хочу поделиться своим творением. Питон изучаю сравнительно недавно (это первый серьезный проект) так что за код сильно не ругайте. Очень хотелось бы конструктивной критики от сообщников.
Если вам нужно получить подробную информацию о жестком диске, прочитать SMART, запустить встроенные в SMART тесты или работать с паролями накопителей, то эта библиотечка может облегчить вам жизнь.
Код библиотеки достаточно объемный, поэтому даю ссылку на гитхаб: ATA Pass-Through library
Rodegast
> Очень хотелось бы конструктивной критики от сообщников.

Вот мои первые впечатления:
1) С функцией swapString явно что-то не так.
2) Научись пользоваться словарями. Писать гигантские условия не комильфо.
3) У многих функций/методов отсутствует документация.
4kpt_IV
Ну и PEP8…
kazenniy
Функцию swapString я нашел где-то на просторах сети в самом начале работы по этому проекту. Она работает. Что с ней не так?
Длинным списком условий я заменял отсутствующий в питоне оператор switch/case. В питоне принято делать это через словари?
Поскольку библиотека пишется изначально для себя, с документированием не очень хорошо, это правда. Нормальная документация планируется позже. Но мне казалось, что там достаточно простой код.
kazenniy
4kpt_IV
Ну и PEP8…
А что не так с pep8? Проверку на pep8 проходит без ошибок. Ну кроме длины строк конечно, но это осознанный выбор. Идея писать столбиком по 80 символов мне кажется сильно устаревшей.
4kpt_IV
Какой механизм использовали для проверки???
kazenniy
Самый большой блок 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"
Или существует какой-то путь реализовать и такие вещи на словарях?
kazenniy
4kpt_IV
Какой механизм использовали для проверки???
Питоновский pep8-1.7.0
4kpt_IV
Неужели по нему методы класса могут быть CamelCase?
kazenniy
$ 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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB