コード例 #1
0
ファイル: Menu.py プロジェクト: kirsrus/ItvIntellectReglament
 def help(self):
     """ Пункт меню "помощь". """
     cprint(u"\n\n____----******* ПОМОЩЬ ********----____\n", "magenta")
     print u"В процессе оформления..."
     print u"В процессе оформления..."
     print u"В процессе оформления..."
     print u"В процессе оформления..."
     print u"В процессе оформления..."
     cprint(u"\n****----_______________________----****\n", "magenta")
     raw_input(u"[ENTER для продолжения]")
     print "\n"
コード例 #2
0
ファイル: Menu.py プロジェクト: kirsrus/ItvIntellectReglament
    def checkSystemEnvironment(self):
        """ Проведение проверки на наличие всех необходимых инструметов и условий для работы программы.

        Возвращает:
            True/False - результат проверки на совместимость. При ошибке, на консоль выводятся сообщения об недостатках.

        """
        # Проверка версии ОС.
        try:
            ("5.1", "5.2", "6.0", "6.1").index(self.checkWindowsVersion())
        except Exception:
            cprint(u"ОШИБКА: ", "red", newline=False)
            print(u"неподдерживаемая операционная система версии %s" % self.checkWindowsVersion())
            return False
        # Проверка наличия утилиты taskkill.exe.
        fileNames = ("taskkill.exe",)
        for item in fileNames:
            if not self.checkFilePath(item):
                cprint(u"ОШИБКА: ", "red", newline=False)
                print(u"не найден необходимый для работы программы файл %s" % item)
                return False
        return True
コード例 #3
0
ファイル: Menu.py プロジェクト: kirsrus/ItvIntellectReglament
    def reglament(self):
        """ Пункт меню "регламентные работы" """
        # Сначала производим сбор информации через метод self.test и если сбор произошол успешный,
        # продолжаем работу. Иначе завершаем работу с сообщеинем об невозможности проветси регламент.
        testResult = self.test()
        if not testResult:
            cprint(u"\nОШИБКА ПРОВЕДЕНИЯ ТЕСТИРОВАНИЯ: ", "red", newline=False)
            print u"проведение регламентных работ невозможно\nдо устранения неисправностей, проявившихся при тестировании.\n"
        else:

            workList = (
                    {
                    "name": u"ОЧИСТКА АРХИВА:\n",
                    "print": True,
                    "process": self.workArchiveDelete,
                    "critical": True,
                    },

                )

            # Запуск процесса регламента:
            for workProcess in workList:
                workProcess["process"].writeInfoLine = self.writeInfoLine
                cprint(u"\n%s\n" % workProcess["name"], "blue", newline=False)
                if workProcess["print"]:
                    workProcess["process"].print_ = True
                result = workProcess["process"].execReglament()  # Проведение регламента.

                if not workProcess["print"]:
                    if result:
                        cprint(u"ОК", "green")
                    else:
                        cprint(u"ОШИБКА: ", "red", newline=False)
                        if workProcess["process"].errorMessage:
                            print workProcess["process"].errorMessage
                        else:
                            print u"неописанная ошибка."
                if not result and workProcess["critical"]:
                    break

            exit(1)
コード例 #4
0
ファイル: Menu.py プロジェクト: kirsrus/ItvIntellectReglament
    def test(self):
        """ Пункт меню "тестирование комьютера"

        Возвращает:
            True/False - результат сбора информации.

        """

        workList = (
            {
                "name": u"СБОР ИНФОРМАЦИИ О КОМПЬЮТЕРЕ:\n",  # Описание процесса.
                "print": True,  # Выводить информацию о ходе работы на консоль.
                "process": self.workSystemInfo,  # Класс, обрабатывающий задание.
                "critical": False,  # Завершать-ли обработку при некорректном завершении обработки задания.
            },
            {
                "name": u"ИНФОРМАЦИЯ ОБ АРХИВЕ:\n",
                "print": True,
                "process": self.workArchiveDelete,
                "critical": True,
            },

        )

        # Запуск процесса сбора информации:
        resultAll = True
        for workProcess in workList:
            workProcess["process"].writeInfoLine = self.writeInfoLine
            cprint(u"\n%s\n" % workProcess["name"], "blue", newline=False)
            if workProcess["print"]:
                workProcess["process"].print_ = True
            result = workProcess["process"].readInfo()  # Чтение рабочей информации.
            if not workProcess["print"]:
                if result:
                    cprint(u"ОК", "green")
                else:
                    cprint(u"ОШИБКА: ", "red", newline=False)
                    if workProcess["process"].errorMessage:
                        print workProcess["process"].errorMessage
                    else:
                        print u"неописанная ошибка."
            if not result and workProcess["critical"]:  # Если сбой в сборе информации критический - вернуть False.
                resultAll = False
                break

        return resultAll
コード例 #5
0
ファイル: Menu.py プロジェクト: kirsrus/ItvIntellectReglament
    def writeInfoLine(self, type_, text, title=""):
        """ Оформление вывода сообщение о текущем действиии рабочего класса (описывает загрушку метода writeInfoLine)

        Аргументы:
            type_ - (string) тип сообщения (ok, warning, error, fatal, info)
            text - текст сообщения
            title - заголовок сообщения (пишется перед текстом цвета, указанного в type_)

        """
        # Проверка входящих данных:
        try:
            ("ok", "warning", "error", "fatal", "info").index(type_)
        except Exception:
            raise ValueError(u"Передано некорректное значение параметра type_ - %s" % type_)
        # Вывод информации на консоль:
        color = {
            "ok": "green",
            "warning": "yellow",
            "error": "red",
            "fatal": "red",
            "info": ""
            }
        about = {
            "ok": u"ОК",
            "warning": u"ВНИМАНИЕ",
            "error": u"ОШИБКА",
            "fatal": u"ФАТАЛЬНАЯ ОШИБКА",
            "info": ""
        }
        if title:
            cprint(u"  " + title + ": ", f=color[type_], newline=False)
            print text
        elif type_ == "info":
            cprint(u"  " + text, f=color[type_])
        else:
            cprint(u"  " + about[type_] + ": ", f=color[type_], newline=False)
            print text
        return None
コード例 #6
0
ファイル: Menu.py プロジェクト: kirsrus/ItvIntellectReglament
 def mainMenu(self):
     """ Основное меню программы """
     while True:
         cprint(u"\n\n____----**** ОСНОВНОЕ МЕНЮ ****----____", "magenta")
         cprint(u"1. ТЕСТИРОВАНИЕ компьютера (без обработки);", "yellow")
         cprint(u"2. провести РЕГЛАМЕНТНЫЕ работы на компьютере;", "yellow")
         cprint(u"3. указать компьютера СИНХРОНИЗАЦИИ;", "yellow")
         cprint(u"4. ПОМОЩЬ;", "yellow")
         cprint(u"0. ВЫХОД;", "red")
         cprint(u"****----_______________________----****\n", "magenta")
         # Обработка ошибок ввода:
         try:
             input_ = input(u"ВВОД: ")
             try:
                 (0, 1, 2, 3).index(input_)
             except Exception:
                 cprint(u"\nОШИБКА: ", "red", newline=False)
                 print u"необходимо ввести цифру иеню 1-3, или 0 для выхода из программы."
                 time.sleep(1)
                 continue
         except Exception:
             cprint(u"\nОШИБКА: ", "red", newline=False)
             print u"необходимо вводить только цифры номеров элементов меню."
             time.sleep(1)
             continue
         # Обработка элементов меню.
         if not input_:  # Выход из программы.
             return
         elif input_ == 1:  # Тестирование комьпютера.
             cprint(u"\n\n____----**** ТЕСТИРОВАНИЕ КОМПЬЮТЕРА ****----____\n", "magenta")
             self.test()
             cprint(u"\n****----_________________________________----****\n", "magenta")
             raw_input(u"[ENTER для продолжения]")
         elif input_ == 2:  # Регламентные работы.
             cprint(u"\n\n____----**** РЕГЛАМЕНТНЫЕ РАБОТЫ ****----____\n", "magenta")
             self.reglament()
             cprint(u"\n****----_________________________________----****\n", "magenta")
             raw_input(u"[ENTER для продолжения]")
         elif input_ == 3:  # Указать компьютер синхронизации.
             pass
         elif input_ == 4:  # Помощь.
             self.help()
コード例 #7
0
ファイル: Menu.py プロジェクト: kirsrus/ItvIntellectReglament
            except Exception:
                cprint(u"\nОШИБКА: ", "red", newline=False)
                print u"необходимо вводить только цифры номеров элементов меню."
                time.sleep(1)
                continue
            # Обработка элементов меню.
            if not input_:  # Выход из программы.
                return
            elif input_ == 1:  # Тестирование комьпютера.
                cprint(u"\n\n____----**** ТЕСТИРОВАНИЕ КОМПЬЮТЕРА ****----____\n", "magenta")
                self.test()
                cprint(u"\n****----_________________________________----****\n", "magenta")
                raw_input(u"[ENTER для продолжения]")
            elif input_ == 2:  # Регламентные работы.
                cprint(u"\n\n____----**** РЕГЛАМЕНТНЫЕ РАБОТЫ ****----____\n", "magenta")
                self.reglament()
                cprint(u"\n****----_________________________________----****\n", "magenta")
                raw_input(u"[ENTER для продолжения]")
            elif input_ == 3:  # Указать компьютер синхронизации.
                pass
            elif input_ == 4:  # Помощь.
                self.help()


if __name__ == '__main__':
    m = Menu()
    cprint(u"Проверка рабочей среды ..... ", newline=False)
    result = m.checkSystemEnvironment()
    if result:
        cprint(u"OK", "green")