Написание сценария, который делает это, вероятно, не будет очень сложным (хотя есть разные синтаксисы для обработки импорта)
Это тривиально. Там import
и from module import
. Два синтаксиса для обработки.
Вы знаете более точный термин для того, что я пытаюсь сделать? Реорганизация кода?
Дизайн. Это называется дизайн . Да, вы реорганизуете существующий дизайн, но ...
Правило первое
Не начинайте проектирование с того, что у вас есть. Если вы это сделаете, вы будете только «грызть края», делая небольшие, а иногда и несущественные изменения.
Правило второе
Начните проектирование с того, что должно было бы иметь, если бы вы были умнее. Подумайте широко и четко о том, что вы действительно должны делать. Не обращай внимания на то, что ты сделал.
Правило три
Дизайн с нуля (или de novo , как говорят некоторые люди) с правильной архитектурой пакетов и модулей.
Создайте для этого отдельный проект.
Правило четвертое
Тест первый. Напишите модульные тесты для вашей новой архитектуры. Если у вас есть модульные тесты, скопируйте их в новый проект. Измените импорт, чтобы отразить новую архитектуру, и перепишите тесты, чтобы выразить свое великолепное упрощение.
Все тесты не пройдены, потому что вы не переместили код. Это хорошо.
Правило пятое
Переместить код в новую структуру в последнюю очередь. Прекратите перемещение кода после прохождения тестов.
Вам не нужно анализировать импорт, чтобы сделать это, кстати. Вы просто используете grep
для поиска модулей и классов. Старый импорт и запутанные отношения между старым импортом не имеют значения, и их не нужно анализировать. Вы выбрасываете это. Вам не нужны инструменты умнее, чем grep
.
Если вы чувствуете желание переместить код, вы должны быть очень дисциплинированными. (1) у вас должны быть тесты, которые не пройдены, и затем (2) вы можете переместить некоторый код для прохождения тестов, которые не прошли.