Описание модулей¶
database_reader¶
-
class
onec_dtools.database_reader.DatabaseReader(db_file)¶ Параметры: db_file (BufferedReader) – файл базы данных -
locale= None¶ Язык БД
-
tables= None¶ Словарь таблиц БД.
Ключ: Имя таблицы
Значение: Объект класса Table
-
total_pages= None¶ Количество страниц в БД
-
version= None¶ Версия формата
-
-
class
onec_dtools.database_reader.Table(db_file, description)¶ Таблица файловой БД
Параметры: - db_file (BufferedReader) – Объект файла БД
- description (string) – Описание таблицы во внутреннем формате 1С
-
__getitem__(key)¶ Реализует интерфейс работы с таблицой как со списком
Параметры: key (int) – индекс строки Результат: строка таблицы Тип результата: Row
-
__iter__()¶ Реализует интерфейс перебора строк табилцы
Результат: Итератор строк таблицы
-
__len__()¶ Позволяет получать число строк в таблице
Результат: Общее количество строк в таблице (включая пустые) Тип результата: int
-
fields= None¶ Словарь описаний полей таблицы
-
name= None¶ Имя таблицы
-
class
onec_dtools.database_reader.Row(db_file, row_bytes, table)¶ Строка БД
Параметры: - db_file (BufferedReader) – Объект файла БД
- row_bytes (bytearray) – Внутреннее представление строки
- table (Table) – Таблица БД, которой принадлежит строка.
-
__getitem__(key)¶ Позволяет получать значения полей по имени колонки
Параметры: key (string) – Имя колонки Результат: Значение поля
-
as_dict(read_blobs=False)¶ Возвращает представление строки таблицы в виде словаря
Параметры: read_blobs (bool) – Флаг считывания значений BLOB полей Результат: Строка таблицы Тип результата: OrderedDict
-
as_list(read_blobs=False)¶ Возвращает представление строки таблицы в виде списка
Параметры: read_blobs (bool) – Флаг считывания значений BLOB полей Результат: Строка таблицы Тип результата: list
-
is_empty= None¶ Флаг пустой строки. Все поля пустой строки равны None
-
class
onec_dtools.database_reader.Blob(db_file, blob_size, blob_offset, blob_chunk_offset, field_type)¶ Поле неограниченной длины
Параметры: - db_file (BufferedReader) – Объект файла БД
- blob_size (int) – Размер BLOB в байтах
- blob_offset (int) – Смещение объекта BLOB данных таблицы в файле БД (страниц)
- blob_chunk_offset (int) – Смещение данных внутри BLOB объекта (число блоков по 256 байт)
- field_type (string) – тип поля неограниченной длины (I или NT)
-
__iter__()¶ Позволяет считывать данные поля блоками.
Результат: Итератор BLOB кусками по 256 байт Тип результата: bytearray
-
__len__()¶ Результат: Размер поля в байтах Тип результата: int
-
value¶ Результат: Значение поля Тип результата: bytearray или string
-
class
onec_dtools.database_reader.DBObject(db_file, object_offset)¶ Объект БД
Параметры: - db_file (BufferedReader) – Объект файла БД
- object_offset (int) – смещение объекта БД относительно начала файла БД (в страницах)
-
__len__()¶ Реализует интерфейс получения размера объета
Результат: Размер объекта в байтах Тип результата: int
-
read(size=-1)¶ Читает не более size байт данных объекта БД
Параметры: size (int) – Размер считываемых данных. Size < 0 для чтения всего объекта. Результат: данные объекта Тип результата: bytearray
-
seek(pos)¶ Позиционируется на смещении относительно начала данных объекта
Параметры: pos (int) – Байт от начала данных объекта
-
class
onec_dtools.database_reader.FieldDescription¶ Описание поля таблицы
-
type¶
-
null_exists¶
-
length¶
-
precision¶ Длина дробной части для типа Numeric
-
case_sensitive¶
-
data_offset¶ Смещение данных поля относительно начала строки (байт)
-
data_length¶ Длина данных поля (байт)
-
-
onec_dtools.database_reader.database_header(db_file)¶ Читает заголовок файла БД
Параметры: db_file (BufferedReader) – Объект файла БД Результат: версия и число страниц Тип результата: tuple
-
onec_dtools.database_reader.root_object(db_file)¶ Читает корневой объет БД
Параметры: db_file (BufferedReader) – Объект файла БД Результат: язык и смещения объектов описания таблиц БД Тип результата: tuple
-
onec_dtools.database_reader.raw_tables_descriptions(db_file, tables_offsets)¶ Получает описания таблиц БД во внутренне формате 1С.
Параметры: - db_file (BufferedReader) – Объект файла БД
- tables_offsets (tuple) – Cмещения объектов описания таблиц БД
Результат: Описания таблиц
Тип результата: list
-
onec_dtools.database_reader.calc_field_size(field_type, length)¶ Рассчитывает размер данных поля
Параметры: - field_type (string) – Тип поля
- length (int) – Длина поля
Результат: Длина поля в байтах
Тип результата: int
-
onec_dtools.database_reader.numeric_to_int(numeric, length, precision)¶ Преобразуем Numeric формат 1С в число.
Параметры: - numeric (bytearray) – число в формате Numeric
- length (int) – длина поля
- precision (int) – точность
Результат: Числовое представление
Тип результата: int или float
-
onec_dtools.database_reader.nvc_to_string(nvc)¶ Преобразует NVarChar формат 1С в строку.
Параметры: nvc (bytearray) – строка в формате NVC Результат: Строковое представление Тип результата: string
-
onec_dtools.database_reader.bytes_to_datetime(bts)¶ Пробразует данные типа DT в дату/время
Параметры: bts (bytearray) – значение в формате DT Результат: дата+время Тип результата: datetime
container_reader¶
-
class
onec_dtools.container_reader.ContainerReader(file)¶ Класс для чтения контейнеров
-
entries= None¶ Список файлов в контейнере
-
extract(path, deflate=False, recursive=False)¶ Распаковывает содержимое контейнера в каталог
Параметры: - path (string) – каталог распаковки
- deflate (bool) – разархивировать содержимое файлов
- recursive (bool) – выполнять рекурсивно
-
-
onec_dtools.container_reader.extract(filename, folder)¶ Распаковка контейнера. Сахар для ContainerReader
Параметры: - filename (string) – полное имя файла-контейнера
- folder (string) – каталог назначения
-
onec_dtools.container_reader.read_header(file)¶ Считывыет заголовок контейнера.
Параметры: file (BufferedReader) – объект файла контейнера Результат: Заголовок контейнера Тип результата: Header
-
onec_dtools.container_reader.read_block(file, offset, max_data_length=None)¶ Считывает блок данных из контейнера.
Параметры: - file (BufferedReader) – объект файла контейнера
- offset (int) – смещение блока в файле контейнера (байт)
- max_data_length (int) – максимальный размер считываемых данных из блока (байт)
Результат: объект блока данных
Тип результата: Block
-
onec_dtools.container_reader.read_document(file, offset)¶ Считывает документ из контейнера. В качестве данных документа возвращается генератор.
Параметры: - file (BufferedReader) – объект файла контейнера
- offset (int) – смещение документа в контейнере
Результат: объект документа
Тип результата: Document
-
onec_dtools.container_reader.read_full_document(file, offset)¶ Считывает документ из контейнера. Данные документа считываются целиком.
Параметры: - file (BufferedReader) – объект файла контейнера
- offset (int) – смещение документа в контейнере (байт)
Результат: объект документа
Тип результата: Document
-
onec_dtools.container_reader.parse_datetime(time)¶ Преобразует внутренний формат хранения дат файлов в контейнере в обычную дату
Параметры: time (string) – внутреннее представление даты Результат: дата/время Тип результата: datetime
-
onec_dtools.container_reader.read_entries(file)¶ Считывает оглавление контейнера
Параметры: file (BufferedReader) – объект файла контейнера Результат: словарь файлов в контейнере Тип результата: OrderedDict
container_writer¶
-
class
onec_dtools.container_writer.ContainerWriter(file)¶ Класс для записи контейнеров
Параметры: file (BufferedReader) – объект файла контейнера -
__enter__()¶ Вход в блок. Позволяет применять оператор with.
-
__exit__(exc_type, exc_val, exc_tb)¶ Выход из блока. Позволяет применять оператор with.
-
add_file(fd, name, inflate=False)¶ Добавляет файл в контейнер
Параметры: - fd (BufferedReader) – file-like объект файла
- name (string) – Имя файла в контейнере
- inflate (bool) – флаг сжатия
-
write_block(data, **kwargs)¶ Записывает блок данных в контейнер
Параметры: - data – file-like объект
- kwargs – Опциональные параметры
Результат: смещение записанных данных (байт)
Тип результата: int
-
write_header()¶ Записывает заголовок контейнера
-
write_toc()¶ Записывает оглавление контейнера
-
-
onec_dtools.container_writer.build(folder, filename)¶ Запакоывает каталог в контейнер включая вложенные каталоги. Сахар для ContainerWriter.
Параметры: - folder (string) – каталог с данными, запаковываемыми в контейнер
- filename (string) – имя файла контейнера
-
onec_dtools.container_writer.add_entries(container, folder, nested=False)¶ Рекурсивно добавляет файлы из директории в контейнер
Параметры: - container (BufferedReader) – объет файла контейнера
- folder (string) – каталог файлов, которые надо поместить в контейнер
- nested (bool) – обрабатывать вложенные каталоги
-
onec_dtools.container_writer.epoch2int(epoch_time)¶ Преобразует время в формате “количество секунд с начала эпохи” в количество сотых микросекундных интервалов с 0001.01.01
Параметры: epoch_time (real) – время в формате Python Результат: количество сотых микросекундных интервалов Тип результата: int
-
onec_dtools.container_writer.int2hex(value)¶ Получает строковое представление целого числа в шестнадцатиричном формате длиной не менее 4 байт
Параметры: value (int) – конвертируемое число Результат: предоставление числа Type: string
-
onec_dtools.container_writer.get_size(file)¶ Возвращает размер file-like объекта
Параметры: file (BufferedReader) – объекта файла Результат: размер в байтах Тип результата: int