26 декабря | 2024г. | 21:28:56


АвторТема: Плагин Pycodestyle  (Прочитано 4596 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1395
  • Поблагодарили: 8694
  • Уважение: +147
Плагин Pycodestyle
« Первое сообщение: 16 августа | 2022г. | 18:48:52 »
0
Плагин Pycodestyle ver. 1.0 (Py2/Py3)

- Простенький плагин на основе утилиты Pycodestyle для анализа кода Python, а именно для проверки кода на соответствие PEP8.
- PEP8 - это руководство по спецификации кода Python, его можно найти на официальном сайте. Цель - поддерживать последовательность и читаемость кода, так как код читается гораздо чаще, чем пишется.
- На Py2 работает заметно медленнее, чем на Py3.
- Порядок работы: Выбираем в любом месте ресивера файл *.py. Нажимаем кнопку ОК и ждем пару секунд, на экране появятся данные скорости тестирования и общая статистика ошибок и предупреждений.
- Синяя кнопка - просмотр подробных результатов проверки с указанием номера строки и позиции ошибки.
- Зеленая кнопка - просмотр еще и исходного кода для каждой ошибки или предупреждения с указанием точного места, где это произошло.
- Желтая кнопка - просмотр ошибок с выдержками из PEP8 для случаев с нарушениями.
- Все это так же сохраняется в соответствующих файлах в папке /tmp/pycodestyleresult/
- Файлы с результатами сохраняются до следующего запуска этого плагина.
- Пример:
/tmp/plugin.py:20:11: E401 multiple imports on one line
import sys, os, struct
              ^
В файле /tmp/plugin.py строка 20 позиция 11 ошибка E401 "Несколько импортов в одной строке"
По правилам каждый модуль нужно импортировать в отдельной строке, то есть верно так:
import sys
import os
import struct
- Плагин может быть полезным тем, кто сам пишет плагины, конвертеры, рендеры и т.д.
- Как минимум, для себя нашел много интересного и неожиданного.
Спойлер   :
[ Гостям не разрешен просмотр вложений ]


Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1395
  • Поблагодарили: 8694
  • Уважение: +147
Плагин Pycodestyle
« Ответ #1: 16 августа | 2022г. | 22:10:05 »
0
Разобрались.
Если есть вопросы по работе плагина или его косяки - милости прошу.
Если не нравится что и как я делаю - проходим мимо и делаем сами.

Оффлайн Vasiliks

  • Джедай Куратор
  • **
  • Сообщений: 2339
  • Поблагодарили: 7146
  • Уважение: +59
Плагин Pycodestyle
« Ответ #2: 05 сентября | 2022г. | 22:23:02 »
0
Evg77734, плагин полезный :good:
Хотелка: чтобы при выходе из плагина запоминалась последняя папка.
  • Enigma2: GI-8120, GI ET7000mini, ET11000 - openPLI Develop
...Никогда не спорьте с идиотами. Вы опуститесь до их уровня, где они вас задавят своим опытом.

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1395
  • Поблагодарили: 8694
  • Уважение: +147
Плагин Pycodestyle
« Ответ #3: 05 сентября | 2022г. | 22:40:08 »
0
чтобы при выходе из плагина запоминалась последняя папка
Хотелку записал.
Есть еще идея добавить отдельными разделами autopep8, pyflakes и vulture, добился в ресивере все работает, осталось в плагин запихнуть)), тогда уже и название менять придется. Но, то огородом занимаюсь, то вот снова копаюсь в погоде  :yes4:

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1395
  • Поблагодарили: 8694
  • Уважение: +147
Плагин Pycodestyle
« Ответ #4: 06 сентября | 2022г. | 14:28:40 »
0
Хотелка
Поправил: при выходе из плагина, запоминается последняя открытая папка, при следующем запуске плагина возвращаемся в нее же.

Оффлайн Vasiliks

  • Джедай Куратор
  • **
  • Сообщений: 2339
  • Поблагодарили: 7146
  • Уважение: +59
Плагин Pycodestyle
« Ответ #5: 29 июля | 2023г. | 13:26:56 »
0
Evg77734, дальнейшее развитие плагина предвидеться? Я им довольно часто пользуюсь и много чего уже переделал в лучшую сторону :drinks:
  • Enigma2: GI-8120, GI ET7000mini, ET11000 - openPLI Develop
...Никогда не спорьте с идиотами. Вы опуститесь до их уровня, где они вас задавят своим опытом.

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1395
  • Поблагодарили: 8694
  • Уважение: +147
Плагин Pycodestyle
« Ответ #6: 29 июля | 2023г. | 17:14:44 »
0
дальнейшее развитие
Я посмотрю по свободе, что там к чему сейчас. Но пока дачно-огородный сезон, все усилия направлены в другое русло   :hi:

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1395
  • Поблагодарили: 8694
  • Уважение: +147
Плагин Pycodestyle
« Ответ #7: 31 июля | 2023г. | 19:36:39 »
0
Чуть подкорректировал и проверил на работоспособность, в архиве Pycodestyle.zip версия работает на OpenATV 6.4, 7.0, 7.1. чтобы работало на OpenATV 7.3 нужно заменить файл plugin.py из прицепа.
Но все это работает для Py2 на версии утилиты 2.8.0, для Py3 на версии утилиты 2.9.1
Крайняя версия утилиты 2.10.0 от 23.11.2022. Но чтобы она заработала в плагине нужно вносить определенные правки.

Pycodestyle 2.10.0 (2022-11-23)
Спойлер   :
Changes:

E231: allow trailing comma inside 1-tuples in []. PR #1108.
W601, W602, W603, W604: removed (no longer relevant in python 3). PR #1111.
E741: also apply to lambdas. PR #1106.
E741: fix false positive for comparison operators. PR #1118.
Но если есть необходимость, то версия 2.10.0 прекрасно работает из терминала, команда:
Спойлер   :
/usr/lib/enigma2/python/Plugins/Extensions/Pycodestyle/2_10_0/pycodestyle_2_10_0.py --show-source --statistics --benchmark --show-pep8 /tmp/Testfile.py
где /tmp/Testfile.py путь к интересующему файлу.

Вывод результатов там же и он достаточно большой, может не в каждый терминал поместиться. Но можно например настроить PuTTY на вывод лога в определенный файл в указанном месте, тогда весь результат сохранится там.

Теги:
 



X

Добро пожаловать!

Мы заметили, что у Вас установлено расширение AdBlock или ему подобное. Пожалуйста добавьте наш Клуб в белый список, внесите этим посильную лепту в его развитие. Спасибо!