Python Project Fixer
Python Project Fixer (fix_python_project.py)
Автоматически исправляет структуру Python-проекта: 1. Удаляет BOM-маркеры из текстовых файлов (.py, .json, .txt) 2. Создаёт недостающие init.py файлы (игнорируя служебные папки) 3. Сохраняет подробный лог всех выполненных операций
Использование: python fix_python_project.py [путь_к_проекту]
ProjectFixer
Основной класс для исправления структуры Python-проекта.
Атрибуты
root_dir (str): Корневая директория проекта. log (List[str]): Список записей лога выполненных операций.
Source code in tools\fix_python_project.py
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | |
__init__(root_dir='.')
Инициализирует экземпляр ProjectFixer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
root_dir
|
str
|
Корневая директория проекта. По умолчанию текущая директория ('.'). |
'.'
|
Source code in tools\fix_python_project.py
34 35 36 37 38 39 40 41 | |
create_init_py(dir_path)
Создаёт файл init.py в указанной директории.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dir_path
|
str
|
Путь к директории для создания init.py. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
True, если файл был успешно создан. |
Raises:
| Type | Description |
|---|---|
Exception
|
Если произошла ошибка при создании файла. |
Source code in tools\fix_python_project.py
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | |
needs_init_py(dir_path)
Определяет, требуется ли создание init.py в директории.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dir_path
|
str
|
Путь к проверяемой директории. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
True, если init.py отсутствует, но требуется. |
Source code in tools\fix_python_project.py
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | |
process_directory()
Рекурсивно обрабатывает проект, применяя все исправления.
Source code in tools\fix_python_project.py
127 128 129 130 131 132 133 134 135 136 137 | |
remove_bom(filepath)
Удаляет BOM-маркер из файла, если он присутствует.
Обрабатывает все файлы, включая находящиеся в tests/.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
filepath
|
str
|
Путь к файлу для обработки. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
True, если BOM был удалён, False в противном случае. |
Raises:
| Type | Description |
|---|---|
Exception
|
Если произошла ошибка при чтении/записи файла. |
Source code in tools\fix_python_project.py
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | |
save_log(log_file='project_fix.log')
Сохраняет лог выполненных операций в файл.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
log_file
|
str
|
Имя файла для сохранения лога. По умолчанию 'project_fix.log'. |
'project_fix.log'
|
Source code in tools\fix_python_project.py
139 140 141 142 143 144 145 146 | |
should_skip_init(dir_path)
Проверяет, нужно ли пропустить создание init.py в директории.
Игнорирует служебные папки (tests/, .git/ и др.).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dir_path
|
str
|
Путь к проверяемой директории. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
True, если директорию следует пропустить. |
Source code in tools\fix_python_project.py
70 71 72 73 74 75 76 77 78 79 80 81 82 83 | |