SOP Analyzer - это инструмент командной строки для анализа и просмотра содержимого файлов пакетов SimpleOne (.sop). Утилита предоставляет подробную информацию о метаданных пакета, статистике записей, таблицах и выполняемых операциях.
Возможности
Метаданные пакета: информация о названии, ID приложения, версии и временных метках
Статистика записей: общее количество записей, операции удаления, сильные перезаписи
Анализ таблиц: детальная информация по таблицам и действиям над ними
Диагностика: инструменты для отладки проблем с файлами
Несколько форматов вывода: читаемый текст и структурированный JSON
Установка
Требования
- Python 3.7+
- Стандартные библиотеки Python (не требует дополнительных зависимостей)
Установка из исходного кода
git clone https://github.com/CodeeCod/SOP-Analyzer.git
cd sop-analyzer
Использование
Базовое использование
python3 sop_analyzer.py package.sop
Опции командной строки
| Опция | Описание |
|---|---|
--metadata |
Показать только метаданные пакета |
--stats |
Показать статистику записей |
--tables |
Показать информацию о таблицах |
--json |
Вывод в формате JSON |
--debug |
Диагностическая информация |
--verbose, -v |
Подробный вывод |
Примеры использования
Полный отчет:
python3 sop_analyzer.py package.sop
Только метаданные:
python3 sop_analyzer.py package.sop --metadata
Статистика записей:
python3 sop_analyzer.py package.sop --stats
Информация о таблицах:
python3 sop_analyzer.py package.sop --tables
Вывод в JSON формате:
python3 sop_analyzer.py package.sop --json
Диагностическая информация:
python3 sop_analyzer.py package.sop --debug
Структура вывода
Метаданные пакета
- Название пакета
- ID приложения
- Временная метка
- Версия
Статистика записей
- Общее количество записей
- Количество операций удаления
- Количество сильных перезаписей
- Распределение по типам действий
Информация о таблицах
- Название таблицы
- Количество записей
- Статистика действий по типам
Формат JSON вывода
При использовании опции --json утилита выводит структурированные данные:
{
"metadata": {
"name": "[SA] build.2007",
"pack_application_id": "155931135900000002",
"timestamp": null,
"version": "Неизвестно"
},
"record_statistics": {
"total_records": 133,
"delete_operations": 0,
"strong_overwrites": 0,
"actions_breakdown": {
"update": 60,
"insert": 73
}
},
"tables": [
{
"name": "sys_translation",
"record_count": 60,
"actions": {
"insert": 52,
"update": 8
}
}
Диагностика проблем
Если утилита не может прочитать файл, используйте опцию --debug для получения диагностической информации:
python3 sop_analyzer.py problematic.sop --debug
Это покажет:
- Размер файла данных
- Первые и последние байты данных
- Список файлов в архиве
Обработка ошибок
Утилита включает несколько методов декомпрессии для обработки различных форматов сжатия данных. При возникновении ошибок автоматически предоставляется диагностическая информация.
