Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 31, 2016 16:31:24

kazenniy
Зарегистрирован: 2015-12-09
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Библиотека ATA Pass-Through для pyhton3 под linux.

Вот, хочу поделиться своим творением. Питон изучаю сравнительно недавно (это первый серьезный проект) так что за код сильно не ругайте. Очень хотелось бы конструктивной критики от сообщников.
Если вам нужно получить подробную информацию о жестком диске, прочитать SMART, запустить встроенные в SMART тесты или работать с паролями накопителей, то эта библиотечка может облегчить вам жизнь.
Код библиотеки достаточно объемный, поэтому даю ссылку на гитхаб: ATA Pass-Through library

Офлайн

#2 Окт. 31, 2016 17:49:16

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2742
Репутация: +  183  -
Профиль   Отправить e-mail  

Библиотека ATA Pass-Through для pyhton3 под linux.

> Очень хотелось бы конструктивной критики от сообщников.

Вот мои первые впечатления:
1) С функцией swapString явно что-то не так.
2) Научись пользоваться словарями. Писать гигантские условия не комильфо.
3) У многих функций/методов отсутствует документация.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Окт. 31, 2016 18:27:49

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Библиотека ATA Pass-Through для pyhton3 под linux.

Ну и PEP8…

Офлайн

#4 Окт. 31, 2016 18:58:47

kazenniy
Зарегистрирован: 2015-12-09
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Библиотека ATA Pass-Through для pyhton3 под linux.

Функцию swapString я нашел где-то на просторах сети в самом начале работы по этому проекту. Она работает. Что с ней не так?
Длинным списком условий я заменял отсутствующий в питоне оператор switch/case. В питоне принято делать это через словари?
Поскольку библиотека пишется изначально для себя, с документированием не очень хорошо, это правда. Нормальная документация планируется позже. Но мне казалось, что там достаточно простой код.

Отредактировано kazenniy (Окт. 31, 2016 19:06:05)

Офлайн

#5 Окт. 31, 2016 19:04:29

kazenniy
Зарегистрирован: 2015-12-09
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Библиотека ATA Pass-Through для pyhton3 под linux.

4kpt_IV
Ну и PEP8…
А что не так с pep8? Проверку на pep8 проходит без ошибок. Ну кроме длины строк конечно, но это осознанный выбор. Идея писать столбиком по 80 символов мне кажется сильно устаревшей.

Офлайн

#6 Окт. 31, 2016 19:19:36

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Библиотека ATA Pass-Through для pyhton3 под linux.

Какой механизм использовали для проверки???

Офлайн

#7 Окт. 31, 2016 19:21:18

kazenniy
Зарегистрирован: 2015-12-09
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Библиотека ATA Pass-Through для pyhton3 под linux.

Самый большой блок 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"
Или существует какой-то путь реализовать и такие вещи на словарях?

Офлайн

#8 Окт. 31, 2016 19:22:16

kazenniy
Зарегистрирован: 2015-12-09
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Библиотека ATA Pass-Through для pyhton3 под linux.

4kpt_IV
Какой механизм использовали для проверки???
Питоновский pep8-1.7.0

Офлайн

#9 Окт. 31, 2016 19:25:59

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Библиотека ATA Pass-Through для pyhton3 под linux.

Неужели по нему методы класса могут быть CamelCase?

Отредактировано 4kpt_IV (Окт. 31, 2016 19:26:13)

Офлайн

#10 Окт. 31, 2016 19:27:43

kazenniy
Зарегистрирован: 2015-12-09
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Библиотека ATA Pass-Through для pyhton3 под linux.

$ 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

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version