dump_detective¶
- dump_detective(file)¶
- Параметры:
file (str | Path | BufferedReader) – Путь к файлу или файловый объект
- Результат:
Объект читателя соответствующего формата
- Тип результата:
- Исключение:
ValueError – Если передан неподдерживаемый тип файла
Автоматическое определение формата дампа и создание соответствующего читателя.
Описание:
Анализирует заголовок файла и определяет его формат, возвращая готовый объект для чтения данных. Поддерживает все форматы, используемые в системе DBHose.
Определяемые форматы:
PGPack - сигнатура
PGPACK\n\x00PGCopy - сигнатура
PGCOPY\n\xffNative - любой другой файл (определение по исключению)
Поддерживаемые входные типы:
Строка с путем к файлу
Объект
pathlib.PathФайловый объект (
BufferedReader,BytesIO)Любой объект с методом
read()
Примеры использования:
# Определение по пути к файлу
reader = dump_detective("data.pgpack")
print(type(reader)) # <class 'PGPackReader'>
# Определение по файловому объекту
with open("unknown_dump.bin", "rb") as f:
reader = dump_detective(f)
# Автоматическое определение формата
# Использование в цепочке
data = list(dump_detective("archive.native").to_rows())
Особенности:
Автоматическое определение сжатия (через
define_reader)Сохранение позиции в файле при определении
Возврат готового к использованию объекта читателя
Поддержка всех форматов DBHose без явного указания типа
Использование:
Для универсального открытия файлов дампов без необходимости знать их точный формат заранее.