ненависть

May 13, 2014 03:10

Я понимаю, когда нужно довести до оргазма pep8/flake8. Но проблема состоит в том, что у меня на компьютере и на jenkins'е разные pep'ы (и да, я пробовал их ставить через easy_intall - всё равно не та версия). И они возбуждаются на разное. А я не понимаю, как удовлетоврить удалённый pep, потому что у него не встаёт на то, что встаёт у локального pep ( Read more... )

python, ci, openstack, neutron

Leave a comment

Comments 17

kostoprav May 13 2014, 01:23:42 UTC
наплодить пару лишних переменых нэ?
типа
cmd = ["ovs-vsctl", self.TO, ..., "Interface"]
payload = self._encode_ovs_json(headings, data)

utils.execute(cmd, root_helper=self.root_helper).AndReturn(payload)

Хотя я вобще не любитель function chaining

Reply

amarao_san May 13 2014, 01:25:09 UTC
Это не совсем мой кот, а бэкпорт, так что я его стремился сохранить максимально близко к оригиналу.

Reply

kostoprav May 13 2014, 01:27:20 UTC
если парой движений, не внося новых зависимостей или сайд эффектов можно улучшить мир, почему нет?
Ну и плюс, дифф по строчкам примерно такой-же будет, а следующий человек потратит меньше времени на чтение.

Reply

amarao_san May 13 2014, 01:38:46 UTC
Потому что это бэкпорт. Он не пойдёт в апстрим. В апстриме он уже есть. Его жизнь - это до конца срока поддержки продукта. В следующей версии этого кода уже не будет.

А вот следующий бэкпортящий может долго тупить на том, что "тут переменная есть, а тут нет". Так что чем меньше бэкпорт меняет, тем лучше.

При этом нужно найти балланс между "меняет в старом коде" и "меняет что-то в перенесённом новом коде".

Reply


eterevsky May 13 2014, 06:42:43 UTC
Я бы вот так форматировал:

utils.execute(
["ovs-vsctl", self.TO, "--format=json", "--",
"--columns=name,external_ids", "list", "Interface"],
root_helper=self.root_helper
).AndReturn(self._encode_ovs_json(headings, data))

Reply

amarao_san May 13 2014, 06:53:15 UTC
flake8 neutron/tests/unit/openvswitch/test_ovs_lib.py

neutron/tests/unit/openvswitch/test_ovs_lib.py:493:11: E121 continuation line under-indented for hanging indent
).AndReturn(self._encode_ovs_json(headings, data))

Там фашисты. Не прорвёшься.

Reply

eterevsky May 13 2014, 07:01:25 UTC
Тогда поднять ).AndReturn(...) на indent 4, а параметры execute на indent 8. Меня помимо lint'а беспокоит, чтобы код был максимально читаем, а для этого иерархия должна максимально сохраняться.

И да, у нас тоже все коммиты на всех языка проверяются дико въедливым линтом.

Reply

amarao_san May 13 2014, 07:23:49 UTC
Эм... не понял, что сделать.

Но, в любом случае, эта дрянь требует изуродовать код для прохода его style guide'а.

Reply


eterevsky May 13 2014, 06:45:31 UTC
Кстати, PEP8 достаточно размыт в смысле описания стиля. Вот этот style guide более подробен и конкретен.

Reply

amarao_san May 13 2014, 06:53:49 UTC
Ну, меня стиль мало волнует, а вот flake8 фейлит билды только так.

Reply


eterevsky May 13 2014, 07:27:29 UTC
В тему:

Reply


Leave a comment

Up