TransactionalTable - Интерфейс транзакционной таблицы
=====================================================

.. currentmodule:: axioma.core.dp

.. class:: TransactionalTable

	Абстрактный класс, представляющий транзакционную таблицу. Из редактируемой таблицы :class:`~axioma.core.dp.EditableTable` можно получить транзакционную,\
	используя функцию :func:`~axioma.core.dp.wrap`.
	Если для открытия использовать метод :func:`axioma.core.open_json`, то в случае, если есть возможность редактирования таблицы, внутренняя \
	транзакционная таблица создается по умолчанию.
	Если транзакционная таблица создана, все изменения таблицы (вставка/изменение/удалени) производятся в нее. После вызова метода \
	:meth:`~axioma.core.dp.HasFeatureHistory.commit` измениния сохраняются в основной таблице.


	Унаследован от:

	* :class:`~axioma.core.dp.EditableTable`
	* :class:`~axioma.core.dp.HasFeatureHistory`
	

Функции:
	
.. function:: wrap(edit_table)

	Обернуть редактируемую таблицу в транзакционную. Файл транзакции
	будет создан, если это возможно, в директории с данными редактируемой таблицы,
	иначе будет создан :any:`временный файл <PyQt5.QtCore.QTemporaryFile>`.

	:param edit_table: редактируемая таблица
	:type edit_table: :class:`~axioma.core.dp.EditableTable`

.. function:: wrap(edit_table, file_path)

	Обернуть редактируемую таблицу в транзакционную

	:param edit_table: редактируемая таблица
	:type edit_table: :class:`~axioma.core.dp.EditableTable`
	:param file_path: путь к файлу транзакции, который будет создан
	:type file_path: :class:`str`


Пример использования:

.. literalinclude:: ../../../../../../examples/edit_table_json.py
	:language: python
	:linenos:
