ИНСТРУМЕНТЫ РЕДАКТИРОВАНИЯ PYTHON — редактирование файлов Python
-------------------------------------------------

По состоянию на: 23 января 2026 г.
Путь: docs/help/tools/python_editing.txt

ОПИСАНИЕ
------------
Инструменты для редактирования, анализа и разделения файлов Python.
Особенно полезно для:
  - Большие файлы Python (более 500 строк)
  - Проверка кода и рефакторинг.
  - Управление контекстом LLM (сохранение токенов)
  - Изменения в структурированном коде

ВАЖНО: PYTHON_CLI_EDITOR
--------------------------
Основной инструмент редактирования Python имеет собственную подробную информацию.
Документация из-за ее сложности и важности:

  bach --help tools/python_cli_editor

 Python_cli_editor создан специально для помощников ИИ:
  - Показать структуру вместо чтения всего файла (сохранить токены)
  - Редактировать определенные методы/классы
  - Хирургические изменения вместо полной перезаписи

Краткий обзор python_cli_editor:
  bach python_cli_editor script.py --show-all      # Показать структуру
  bach python_cli_editor script.py --show 50-80    # Строки 50-80
  bach python_cli_editor script.py --imports       # Только импорт
  bach python_cli_editor script.py --classes       # Только классы
  bach python_cli_editor script.py --add code.py --in-class MyClass --save

Подробнее: bach --help Tools/python_cli_editor

PYCUTTER: c_pycutter
--------------------
Разбивает большие файлы Python на отдельные текстовые файлы для каждого класса.

ПРИЛОЖЕНИЕ СЛУЧАИ:
  - Обзор кода: просмотрите каждый класс индивидуально.
  - Контекст LLM: загружать только соответствующий класс.
  - Документация: создание документации по классам.
  - Рефакторинг: обзор больших файлов

ОСНОВНЫЕ КОМАНДЫ:

  # Разделить файл (создать подпапки)
  bach c_pycutter main.py

  # Вывод в определенную папку
  bach c_pycutter main.py --output-dir ./extracted

  # Вывод JSON (для дальнейшей обработки)
  bach c_pycutter main.py --json

ОПЦИИ:
  --output-dir DIR Выходной каталог
  --json Вывод JSON вместо файлов

СТРУКТУРА ВЫВОДА:
  main_20260123_120000/
    Вспомогательные функции.txt # Импорт, глобальные функции
    ClassA.txt # Код класса ClassA
    ClassB.txt # Код класса ClassB
    ...

Пример рабочего процесса:
  # 1. Разделить большой файл
  bach c_pycutter riesige_app.py --output-dir ./review

  №2. Редактировать отдельный класс
  # (в отдельном редакторе или с помощью python_cli_editor)

  # 3. Применить изменения обратно
  # (вручную или с помощью инструмента сравнения)

МЕТОД АНАЛИЗАТОР: c_method_analyzer
----------------------------------
Углубленный анализ кода Python на наличие проблем и структуры.

ФУНКЦИИ:
  - Инвентаризация методов (все методы с номерами строк)
  - Анализ вызовов (какой метод какой вызывает)
  - Проверка импорта (использованный или неиспользованный)
  - Обнаружение опечаток (похожие имена)
  - Тест подключения сигнала (Qt/Tk)
  - Обнаружение атрибутов перед инициализацией

ОСНОВНЫЕ КОМАНДЫ:

  # Анализ файла
  bach c_method_analyzer script.py

  # Вывод JSON
  bach c_method_analyzer script.py --json

  # Только сводка
  bach c_method_analyzer script.py --summary

  # Анализ конкретного класса
  bach c_method_analyzer script.py --class MyClass

ОПЦИИ:
  --json Вывод JSON (машиночитаемый)
  --summary Только компактное резюме
  --class NAME Анализировать только определенный класс
  --verbose Подробный вывод

 ПРИМЕР ВЫВОДА:
  === АНАЛИЗАТОР МЕТОДОВ: script.py ===

  [КЛАССЫ]
    МойКласс (строки 15–120)
      - __init__ (17)
      - данные_процесса (35)
      - _helper (80) <- никогда не звонил!

  [ПОТЕНЦИАЛЬНЫЕ ПРОБЛЕМЫ]
    Строка 42: self._hepler() – опечатка? Возможно, Вы имели в виду: _helper
    Строка 67: self.button.connect(self.on_click) — on_click не найден

  [НЕИСПОЛЬЗОВАННЫЙ ИМПОРТ]
    - импортировать json (строка 3)

  [СТАТИСТИКА]
    Классы: 2
    Методов: 15
    Строки: 320

ТИПИЧНЫЕ РАБОЧИЕ ПРОЦЕССЫ
------------------

1. ПОНИМАНИЕ БОЛЬШОГО ФАЙЛА
   Сначала структура, потом детали:

   # получить обзор
   bach python_cli_editor grosse_datei.py --show-all

   # Или разделить на проверку
   bach c_pycutter grosse_datei.py

2. НАЙТИ ПРОБЛЕМЫ ПЕРЕД СОВЕРШЕНИЕМ
   Анализ кода:

   bach c_method_analyzer script.py

   Показывает: опечатки, неиспользуемые методы, отсутствующие ссылки

3. ПОДГОТОВЬТЕ РЕФАКТОРИНГ
   Понимание зависимостей:

   # Кто кому звонит?
   bach c_method_analyzer script.py --verbose

   # Посмотрите на класс изолированно
   bach c_pycutter script.py

4. СОХРАНИТЬ ТОКЕНЫ (контекст AI)
   Вместо чтения всего файла:

   # Загружать только структуру
   bach python_cli_editor script.py --show-all

   # Затем выберите соответствующий метод
   bach python_cli_editor script.py --show 150-180

КОГДА КАКОЙ ИНСТРУМЕНТ?
------------------

| Задача | Инструмент |
|--------------------------------|---------------------|
| Показать структуру | python_cli_editor |
| Специально изменить код | python_cli_editor |
| Разделить файл на части | c_pycutter |
| Найти проблемы/ошибки | c_method_analyzer |
| Проверить импорт | c_method_analyzer |
| Найдите опечатки | c_method_analyzer

|CONTEXT INJECTOR
----------------
ContextInjector распознает ключевые слова и рекомендует следующие инструменты:

  «редактировать питон» -> bach python_cli_editor <файл> --show-all
  «редактировать класс» -> bach python_cli_editor <файл> --show-all
  «метод редактирования» -> bach python_cli_editor <файл> --show-all
  «структура кода» -> bach python_cli_editor <файл> --show-all
  «разделить файл» -> bach c_pycutter <файл>
  «слишком большой» -> bach c_pycutter <файл>

СМОТРИ ТАКЖЕ
----------
  bach --help tools/python_cli_editor  Подробная документация по редактору (ВАЖНО!)
  bach --help tools/imports            Обработка импорта
  bach --help tools/code_quality       Качество кода (кодирование и т. д.)
  bach --help tools/analysis           Другие инструменты анализа
