PythonProgressHandler - Обработчик прогресса длительной операции
===================================================================

.. currentmodule:: axioma.core

.. class:: PythonProgressHandler


    Класс с помощью которой пользователь может управлять прогрессом 
    операции и получать результат вычислений


    .. method:: pythonError(error)

        [signal] Сигнал который содержит информацию о случившейся ошибке

        :param error: Набор данных об ошибке
        :type error: :class:`tuple`

    .. method:: setResult(result)

        Потокобезопасный метод, который устанавливает результат вычислений

    .. method:: result()

        Потокобезопасный метод получения результата выполнения 
        пользовательской  функции

    .. py:method:: setProgress(value)

        Устанавливает прогресс текущей операции

        :param value: Значение прогресса
        :type value: :class:`int`

    .. py:method:: setProgressRange(min, max)

        Устнавливает минимальное и максимальное значение прогресса

        :param min: Нижняя граница прогресса
        :type min: :class:`int`
        :param max: Верхняя граница прогресса
        :type max: :class:`int`

    .. py:method:: isFinished()

        Возвращает признак завершилась ли задача связанная с текущим
        обработчиком

        :rtype: :class:`bool`

    .. py:method:: isCanceled()

        Возвращает признак отменена ли задача связанная с текущим 
        обработчиком

        :rtype: :class:`bool`

    .. py:method:: tryCancelFromPython()

        Метод вызывается из диалогов отображающих прогресс, чтобы 
        сигнализировать, что пользователь хочет отменить операцию

    .. py:method:: tryFinishFromPython()

        Метод обычно вызывается при завершении выполнении кода пользовательской 
        задачи. Как правило используется при реализации метода :meth:`~axioma.core.PythonTask.onStart`
        в наследниках :class:`~axioma.core.PythonTask`

    .. py:method:: started()

        [signal] Вычисления начали выполняться

    .. py:method:: finished()

        [signal] Вычисления завершились. Всегда отправляется, даже если внутри
        пользовательской операции возникло искючение

    .. py:method:: successful()

        [signal] Вычисления успешно завершились

    .. py:method:: canceled()

        [signal] Вычисления были отменены

    .. py:method:: progressValueChanged(progressValue)

        [signal] Изменилось значение прогресса. 

        :param progressValue: Новое значение прогресса
        :type progressValue: :class:`int`

    .. py:method:: progressRangeChanged(range)

        [signal] Поменялся диапазон в котором изменяется прогресс операции
        Испускается при вызове метода :meth:`~setProgressRange`

        :param range: Диапазон изменения прогресса
        :type range: :class:`~axioma.core.Range`

    .. py:method:: setMessage(message)

        Меняет текст основного сообщения в диалоге отображающего прогресс.

        :param message: Основное сообщение которое отображается в диалоге 
        прогресса
        :type message: :class:`str`

    .. py:method:: messageChanged(progressText)

        [signal] Испускается когда нужно обновить сообщение в диалоге 
        которые отображает прогресс 

        :param progressText: Новый текст основного сообщения диалогами
        :type progressText: :class:`str`

    .. py:method:: setWindowTitle(title)

        Метод для установки нового заголовка диалога отображающего прогресс

        :param title: Заголовок
        :type titile: :class:`str`
    
    .. py:method:: windowTitileChanged(windowTitile)

        [signal] Сигнал который уведомляет диалог с прогрессом, что нужно
        поменять заголовок окна 

        :param windowTitile: Заголовок диалога отображающего прогресс
        :type windowTitile: :class:`str`


