UserCoordSystem
=================

.. currentmodule:: axioma.cs

.. class:: UserCoordSystem

	Контейнер для хранения пользовательских координатных систем

		.. py:method:: UserCoordSystem(dir)

			Конструктор

			:param dir: Каталог, в котором хранится xml файл UserCoordSystem.xml с параметрами пользовательских координатных систем
			:type dir: :class:`~PyQt5.QtCore.QDir`

		.. py:method:: setDir(dir)

			Установка нового каталога хранения файла с пользовательскими координатными системами

			:param dir: Новый каталог
			:type dir: :class:`~PyQt5.QtCore.QDir`
 
		.. py:method:: loadFromFile(silent = False)

			Загрузка контента из файла UserCoordSystem.xml во внутреннюю структуру

			:param silent: Не выводить сообщения об ошибках
			:type silent: :class:`bool`

		.. py:method:: saveToFile(force = True)

			Сохранение внутренней структуры во внешнем файле UserCoordSystem.xml

			:param force: Пересоздать файл при его существовании
			:type force: :class:`bool`

		.. py:method:: setCoordSystem(catalogName, csData, description)

			Установка значений для координатной системы. Если такое существует, заменяет. Если нет, - создает новое значение

			:param catalogName: Наименование папки в дереве представления
			:type catalogName: :class:`str`
			:param csData: Параметры координатной системы
			:type csData: :class:`~axioma.cs.CoordSystem.SourceData`
			:param description: Описание в дереве представления
			:type description: :class:`str`

		.. py:method:: removeCoordSystem(catalogName, csData,)

			Удаление координатной системы

			:param catalogName: Наименование папки в дереве представления
			:type catalogName: :class:`str`
			:param csData: Параметры координатной системы
			:type csData: :class:`~axioma.cs.CoordSystem.SourceData`
			:return: True, если удачно. В противном случае False
			:rtype: :class:`bool`
			
		..

			.. class:: CoordSystemParam

				Параметры координатной системы с описанием

				.. py:attribute:: coordsys

				Параметры

				:type: :class:`~axioma.cs.CoordSystem.SourceData`

				.. py:attribute:: description

				Описание. Используется для представления в дереве

				:type: :class:`str`


		..

			.. class:: CsDataType

				Поименованные списки параметров. Используется как наименование ветки в дереве.

				.. py:attribute:: name

				Наименование

				:type: :class:`str`

				.. py:attribute:: data

				Массив с параметрами

				:type: :class:`list` [ :class:`~axioma.cs.UserCoordSystem.CoordSystemParam` ]

		.. py:method:: data()

			Возвращает все данные во внутреннем представлении

			:return: True, если да. В противном случае False
			:rtype: :class:`list` [ :class:`~axioma.cs.UserCoordSystem.CoordSystemParam` ]

		.. py:method:: hasValue(checkData)

			Проверка на существование значения

			:param checkData: Проверяемое значение
			:type checkData: :class:`~axioma.cs.CoordSystem.SourceData`
			:return: True, если существует. В противном случае False
			:rtype: :class:`bool`

		.. py:method:: description(checkData)

			Возвращает описание координатной системы

			:param checkData: Проверяемое значение
			:type checkData: :class:`~axioma.cs.CoordSystem.SourceData`
			:return: Описание или пустую строку, если не найдено
			:rtype: :class:`str`

		.. py:staticmethod:: stringToSourceType(str)

			Преобразует строку во внутренний формат

			:param str: Строка
			:type str: :class:`str`
			:rtype: :class:`~axioma.cs.CoordSystem.SourceType`

		.. py:staticmethod:: stringToSourceType(st)

			Преобразует значение из внутреннего формата в строку

			:param st: Значение
			:type st: :class:`~axioma.cs.CoordSystem.SourceType`
			:rtype: :class:`str`

		.. py:staticmethod:: saveToFile(fileInfo, data, force = True)

			Сохранение

			:param fileInfo: Данные по файлу хранения
			:type fileInfo: :class:`~PyQt5.QtCore.QFileInfo`
			:param data: Данные
			:type data: :class:`list` [ :class:`~axioma.cs.UserCoordSystem.CoordSystemParam` ]
			:param force: Пересоздать файл при его существовании
			:type force: :class:`bool`
