From 65afbacb580e3f148587bcdf0d84374ba0c259ff Mon Sep 17 00:00:00 2001 From: Lev Rusanov <30170278+JDM170@users.noreply.github.com> Date: Wed, 23 Mar 2022 18:06:16 +0700 Subject: [PATCH] Update --- build.bat | 4 +- build.spec | 80 +++++++++++++++---------------- filesio.py | 58 +++++++++++------------ main.py | 127 ++++++++++++++++++++++++-------------------------- match_name.py | 52 ++++++++++----------- settings.json | 58 +++++++++++------------ 6 files changed, 188 insertions(+), 191 deletions(-) diff --git a/build.bat b/build.bat index 70d97d1..39c35df 100644 --- a/build.bat +++ b/build.bat @@ -1,2 +1,2 @@ -@echo off -pyinstaller build.spec --upx-dir=upx\ +@echo off +pyinstaller build.spec --upx-dir=upx\ diff --git a/build.spec b/build.spec index e17c8b0..a4715b5 100644 --- a/build.spec +++ b/build.spec @@ -1,40 +1,40 @@ -# -*- mode: python ; coding: utf-8 -*- - - -block_cipher = None - - -a = Analysis(['main.py'], - pathex=[], - binaries=[], - datas=[], - hiddenimports=[], - hookspath=[], - hooksconfig={}, - runtime_hooks=[], - excludes=[], - win_no_prefer_redirects=False, - win_private_assemblies=False, - cipher=block_cipher, - noarchive=False) -pyz = PYZ(a.pure, a.zipped_data, - cipher=block_cipher) - -exe = EXE(pyz, - a.scripts, - a.binaries, - a.zipfiles, - a.datas, - [], - name='Scheduled computer restart', - debug=False, - bootloader_ignore_signals=False, - strip=False, - upx=True, - upx_exclude=[], - runtime_tmpdir=None, - console=True, - disable_windowed_traceback=False, - target_arch=None, - codesign_identity=None, - entitlements_file=None) +# -*- mode: python ; coding: utf-8 -*- + + +block_cipher = None + + +a = Analysis(['main.py'], + pathex=[], + binaries=[], + datas=[], + hiddenimports=[], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False) +pyz = PYZ(a.pure, a.zipped_data, + cipher=block_cipher) + +exe = EXE(pyz, + a.scripts, + a.binaries, + a.zipfiles, + a.datas, + [], + name='Scheduled computer restart', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=True, + disable_windowed_traceback=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None) diff --git a/filesio.py b/filesio.py index 260f78f..fb42c3f 100644 --- a/filesio.py +++ b/filesio.py @@ -1,29 +1,29 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -from json import load, dump -from os.path import exists -from os import remove - - -class FilesIO: - def __init__(self, file_name=".\\settings.json", default_values=None): - self.file_name = file_name - self.default_values = default_values - - def create_default_file(self): - if self.default_values is not None: - if exists(self.file_name): - remove(self.file_name) - with open(self.file_name, encoding="utf-8", mode="w") as f: - dump(self.default_values, f, indent=4, separators=(",", " : ")) - - def get_data(self): - try: - with open(self.file_name, encoding="utf-8", mode="r") as f: - ret_data = load(f) - except FileNotFoundError: - self.create_default_file() - # ret_data = self.default_values - return False - return ret_data +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +from json import load, dump +from os.path import exists +from os import remove + + +class FilesIO: + def __init__(self, file_name=".\\settings.json", default_values=None): + self.file_name = file_name + self.default_values = default_values + + def create_default_file(self): + if self.default_values is not None: + if exists(self.file_name): + remove(self.file_name) + with open(self.file_name, encoding="utf-8", mode="w") as f: + dump(self.default_values, f, indent=4, separators=(",", " : ")) + + def get_data(self): + try: + with open(self.file_name, encoding="utf-8", mode="r") as f: + ret_data = load(f) + return ret_data + except FileNotFoundError: + self.create_default_file() + # ret_data = self.default_values + return False diff --git a/main.py b/main.py index 495e7eb..a977df3 100644 --- a/main.py +++ b/main.py @@ -1,65 +1,62 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -from sys import exit, argv -from os import system -from subprocess import Popen -from time import sleep -from filesio import FilesIO -from match_name import MatchIO - - -default_values = { - "expr_list": [ - [r"^[a-zA-Z]+\d+$", "R54-630300"], # THE01 - [r"^\d+[a-zA-Z]+\d+$", "R54-"], # 630300THE01 - [r"^[rR]\d*[-]\d+[a-zA-Z]+\d+$", ""] # R54-630300THE01 - ], - "pc": { - "2": [ # Пятидневка - "IT01", - "IT02" - ], - "7": [ # Цех - "PIS09", - "PIS10" - ] - } -} -loaded_file = None - - -def main(comp_key, is_prod): - global loaded_file - list_pc_names = loaded_file.get("pc").get(comp_key) - if list_pc_names is not None: - for pc_name in list_pc_names: - formatted_pc_name = matchio.check_arm_name(pc_name) - if formatted_pc_name is not False: - # print("pc_name:", formatted_pc_name) - if is_prod is True: - # system("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)) - Popen("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)).wait() - else: - print("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)) - else: - print("Попробуйте еще раз выбрать область запуска скрипта!") - - -if __name__ == "__main__": - if len(argv) < 3: - print("Укажите номер запускаемой области!\n2 - Кабинеты; 7 - Цех") - exit() - try: - filesio = FilesIO(default_values=default_values) - loaded_file = filesio.get_data() - if loaded_file is False: - raise OSError - matchio = MatchIO(loaded_file.get("expr_list")) - main(argv[1], argv[2].strip() == "prod") - except OSError: - print("Файл с настройками не найден. Создан файл со стандартными настройками.") - sleep(20) - exit() - except KeyboardInterrupt: - exit() +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +from sys import exit, argv +from os import system +from subprocess import Popen +from filesio import FilesIO +from match_name import MatchIO + + +default_values = { + "expr_list": [ + [r"^[a-zA-Z]+\d+$", "R54-630300"], # THE01 + [r"^\d+[a-zA-Z]+\d+$", "R54-"], # 630300THE01 + [r"^[rR]\d*[-]\d+[a-zA-Z]+\d+$", ""] # R54-630300THE01 + ], + "pc": { + "2": [ # Пятидневка + "IT01", + "IT02" + ], + "7": [ # Цех + "PIS09", + "PIS10" + ] + } +} +loaded_file = None + + +def main(comp_key, is_debug): + global loaded_file + list_pc_names = loaded_file.get("pc").get(comp_key) + if list_pc_names is not None: + for pc_name in list_pc_names: + formatted_pc_name = matchio.check_arm_name(pc_name) + if formatted_pc_name is not False: + if is_debug is False: + # system("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)) + Popen("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)).wait() + else: + print("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)) + else: + print("Попробуйте еще раз выбрать область запуска скрипта!") + + +if __name__ == "__main__": + if len(argv) < 3: + print("Укажите номер запускаемой области!\n2 - Кабинеты; 7 - Цех") + exit() + try: + filesio = FilesIO(default_values=default_values) + loaded_file = filesio.get_data() + if loaded_file is False: + raise OSError + matchio = MatchIO(loaded_file.get("expr_list")) + main(argv[1], argv[2].strip() == "debug") + except OSError: + print("Файл с настройками не найден. Создан файл со стандартными настройками.") + exit() + except KeyboardInterrupt: + exit() diff --git a/match_name.py b/match_name.py index ae1c612..242de85 100644 --- a/match_name.py +++ b/match_name.py @@ -1,26 +1,26 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -from re import match - -# Список выражений по которым проводится проверка -# По дефолту стоит регион R54, индекс 630300 -default_expr_list = [ - [r"^[a-zA-Z]+\d+$", "R54-630300"], # THE01 - [r"^\d+[a-zA-Z]+\d+$", "R54-"], # 630300THE01 - [r"^[rR]\d*[-]\d+[a-zA-Z]+\d+$", ""] # R54-630300THE01 -] - - -class MatchIO: - def __init__(self, expr_list=None): - self.expr_list = expr_list is None and default_expr_list or expr_list - - def check_arm_name(self, pc_name): - for r in self.expr_list: - if match(r[0], pc_name): - pc_name = "{}{}".format(r[1], pc_name) - break - if match(self.expr_list[2][0], pc_name): - return pc_name - return False +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +from re import match + +# Список выражений по которым проводится проверка +# По дефолту стоит регион R54, индекс 630300 +default_expr_list = [ + [r"^[a-zA-Z]+\d+$", "R54-630300"], # THE01 + [r"^\d+[a-zA-Z]+\d+$", "R54-"], # 630300THE01 + [r"^[rR]\d*[-]\d+[a-zA-Z]+\d+$", ""] # R54-630300THE01 +] + + +class MatchIO: + def __init__(self, expr_list=None): + self.expr_list = expr_list is None and default_expr_list or expr_list + + def check_arm_name(self, pc_name): + for r in self.expr_list: + if match(r[0], pc_name): + pc_name = "{}{}".format(r[1], pc_name) + break + if match(self.expr_list[2][0], pc_name): + return pc_name + return False diff --git a/settings.json b/settings.json index 15fb3ac..0bc7f44 100644 --- a/settings.json +++ b/settings.json @@ -1,30 +1,30 @@ -{ - "expr_list" : [ - [ - "^[a-zA-Z]+\\d+$", - "R54-630300" - ], - [ - "^\\d+[a-zA-Z]+\\d+$", - "R54-" - ], - [ - "^[rR]\\d*[-]\\d+[a-zA-Z]+\\d+$", - "" - ] - ], - "pc" : { - "2" : [ - "IT01", - "IT02", - "630870MMP01", - "R54-630870MMP02" - ], - "7" : [ - "PIS09", - "PIS10", - "630870THE01", - "R54-630870THE02" - ] - } +{ + "expr_list" : [ + [ + "^[a-zA-Z]+\\d+$", + "R54-630300" + ], + [ + "^\\d+[a-zA-Z]+\\d+$", + "R54-" + ], + [ + "^[rR]\\d*[-]\\d+[a-zA-Z]+\\d+$", + "" + ] + ], + "pc" : { + "2" : [ + "IT01", + "IT02", + "630870MMP01", + "R54-630870MMP02" + ], + "7" : [ + "PIS09", + "PIS10", + "630870THE01", + "R54-630870THE02" + ] + } } \ No newline at end of file