Open MikhailPasechnik opened 3 years ago
не любишь ты классы так, как люблю их я) но тут в принципе достаточно ясно всё и гибкий контроль поведения через параметры должен быть, так что норм.
Вмешаюсь немного, если комментарий не в тему, игнорируйте пожалуйста
не совсем понимаю, что это за класс, похоже на абстрактный интерфейс. Абстрактные методы обязательно должны перегружаться, их вызов должен быть невозможен. Можно воспользоваться модулем abc
.
В любом случае мы ожидаем что метод Subimt.start
произведет некую работу, но он это не реализует,
https://github.com/ell-pancho/afanasy/blob/7d6a17c79149b1c06434fc27548641bc46011110/afanasy_maya_submit.py#L66
и будет корректней предупредить клиента выкинув NotImplementedError
.
думаю в нашем случае такой способ формирования команды приемлемый,
https://github.com/ell-pancho/afanasy/blob/7d6a17c79149b1c06434fc27548641bc46011110/afanasy_maya_submit.py#L96
но учтите, если в каком то параметре по какой то причине окажется пробел, результат будет не корректным. Если необходимо предусмотреть пробелы в параметрах - воспользуйтесь модулем shlex
.
Submit - класс подразумевался как базовый для всех класс, с определенным набором методов, на случай если будут ещё писаться сабмитеры для нюка, гудини и всего такого. Добавлю в него эксепшены)
Ой, еще, мы предпочитаем использовать пакет Qt.py для совместимости. https://github.com/ell-pancho/afanasy/blob/7d6a17c79149b1c06434fc27548641bc46011110/afanasy_maya_submit.py#L31
Ещё завезенные импорты это плохая практика. Если ещё не пользуешься линтером, рекомендую flake8, можем скинуть наш конфиг.
Мои замечания не влияют на приёмку кода нами, только если Миша подтвердит или хочешь сам улучшить.
PySide2 вроде с майкой едет, но если нужно от этого отвязаться - то без проблем) только нужно знать где лежит Qt.py Линтер у меня какой-то встроенный в VS Code, но было бы неплохо иметь одинаковый стиль написания, если скинете - будет здорово)
Я просто сагрился на странное переключение на PySide1) такое часто не работает. Qt.py это пакет, pip install Qt.py Но ещё раз, если Миша не подтвердит, лучше не меняй ничего, могут новые проблемы всплывать. Тут вообще может имееть смысл выделение gui в отдельный модуль, чтобы без тяжёлой зависимости в виде PySide запускать.
конфиг vscode так примерно выглядит
{
"files.trimTrailingWhitespace": true,
"python.linting.enabled": true,
"editor.rulers": [
{"column": 80},
],
"python.linting.flake8Enabled": true,
"python.linting.flake8Args": [
"--config",
"${workspaceFolder}/python/setup.cfg",
],
"python.linting.mypyEnabled": true,
"python.formatting.yapfArgs": [
"--style",
"${workspaceFolder}/python/setup.cfg"
],
"python.formatting.provider": "yapf",
}
setup.cfg, примерно так
[flake8]
import-order-style: google
[yapf]
based_on_style: google
column_limit: 79
модули: flake8-import-order, flake8, mypy, pep8-naming, types-PyYAML, types-requests, types-six, yapf
Про PySide - так советуют писать для совместимости со старыми майками https://help.autodesk.com/view/MAYAUL/2017/ENU/?guid=__files_GUID_3F96AF53_A47E_4351_A86A_396E7BFD6665_htm За конфиги спасибо, поставлю у себя)
https://github.com/mottosso/Qt.py лучше читается и дает лучшую совместимость
@ell-pancho в логике обработке status, data = job.send()
явно что-то не так, if not status: pm.display...(status)
https://github.com/ell-pancho/afanasy/blob/main/afanasy_maya_submit.py
Добавить в диалог CGRU:
Все настройки, которые проставляет сабмиттер, нужно откатывать на исходные значения.
Для того, чтобы помимо сабмита с помощью диалогового окна, можно было сделать это программно