from quantum.openstack.common import cfg…from quantum.plugins.openvswitch.common import config
И pylint “ругался” на 2-й импорт, который нигде больше не использовался. Но если посмотреть на код этого модуля (https://github.com/openstack/quantum/blob/master/quantum/plugins/openvswitch/common/config.py) и вспомнить как работает механизм импорта в Python’е, то становится ясно, какие проблемы могут быть: при загрузке модуля config, он устанавливает значения по умолчанию настроек. А так, как со всемы настройками принято работать через общий интерфейс cfg, и не импортировать можуль config, то, с большой вероятностью, где-то в runtime у нас произойдет исключение.
Описанный выше пример простой и банальный, но приводит нас к двум простым правилам:
Вот интересно, если бы не unit-тесты и понимание работы import’ов, сколько бы времени потратил на фикс бага, после такого “улучшения” кода?