Przeglądaj źródła

d01 Отказ от питона (тяжко)

SVI 2 lat temu
rodzic
commit
218796645a

+ 0 - 13
desktop/app/app.py

@@ -1,13 +0,0 @@
-"""Глобальный объект приложения."""
-
-from .kernel import kernel
-from .gui import gui
-
-
-class App:
-    """Глобальный объект приложения."""
-
-    def __init__(self) -> None:
-        """Создаёт новый объект приложения."""
-        self.kern: kernel.Kernel = kernel.Kernel()
-        self.gui: gui.Gui = gui.Gui(self)

+ 0 - 17
desktop/app/gui/gui.py

@@ -1,17 +0,0 @@
-"""Графическая подсистема клиента."""
-
-from typ import typ
-from app.gui.win_main import win_main
-
-
-class Gui:
-    """Графическая подсистема клиента."""
-
-    def __init__(self, app: typ.IApp) -> None:
-        """Возвращает новый экземпляр приложения."""
-        self.win: win_main.WinMain = win_main.WinMain(app)
-        "Главное окно приложения"
-
-    def run(self) -> None:
-        """Запускает графику в главную петлю."""
-        self.win.run()

+ 0 - 65
desktop/app/gui/win_login/win_login.py

@@ -1,65 +0,0 @@
-"""Окно подключения к серверу."""
-
-import tkinter
-
-
-class WinLogin(tkinter.Toplevel):
-    """Окно логина на сервер вар-танка."""
-
-    def __init__(self, win: tkinter.Tk) -> None:
-        """Создание окна логина."""
-        tkinter.Toplevel.__init__(self, master=win)
-        self.wm_title(string="Логин")
-        self.minsize(300, 200)
-        self._login: str = "empty_login"
-
-        self.frm_login: tkinter.Frame = tkinter.Frame(self)
-        self.frm_login["relief"] = "ridge"
-        self.frm_login["border"] = 3
-        self.frm_login.pack(side="top", fill="x", expand=False)
-        lbl_login: tkinter.Label = tkinter.Label(self.frm_login)
-        lbl_login["text"] = "Логин"
-        lbl_login["anchor"] = "e"
-        lbl_login["justify"] = "right"
-        lbl_login.pack(side="left", fill="both", expand=True)
-        self.ent_login: tkinter.Entry = tkinter.Entry(self.frm_login)
-        self.ent_login["justify"] = "left"
-        self.ent_login.pack(side="right", fill="both", expand=True)
-
-        self.frm_pass: tkinter.Frame = tkinter.Frame(self)
-        self.frm_pass["relief"] = "ridge"
-        self.frm_pass["border"] = 3
-        self.frm_pass.pack(side="top", fill="x", expand=False)
-        lbl_pass: tkinter.Label = tkinter.Label(self.frm_pass)
-        lbl_pass["text"] = "Пароль"
-        lbl_pass["anchor"] = "e"
-        lbl_pass["justify"] = "right"
-        lbl_pass.pack(side="left", fill="both", expand=True)
-        self.ent_pass: tkinter.Entry = tkinter.Entry(self.frm_pass)
-        self.ent_pass["justify"] = "left"
-        self.ent_pass.pack(side="right", fill="both", expand=True)
-
-        self.frm_btn: tkinter.Frame = tkinter.Frame(self)
-        self.frm_btn.pack(side="top", fill="x", expand=False)
-        self.btn_login: tkinter.Button = tkinter.Button(self.frm_btn)
-        self.btn_login["command"] = self.make_login
-        self.btn_login["text"] = "Логин"
-        self.btn_login.pack(side="left", fill="x", expand=True)
-        self.btn_cancel: tkinter.Button = tkinter.Button(self.frm_btn)
-        self.btn_cancel["command"] = self.cancel_login
-        self.btn_cancel["text"] = "Отмена"
-        self.btn_cancel.pack(side="left", fill="x", expand=True)
-
-    @property
-    def login(self) -> str:
-        """Логин для входя на сервер."""
-        return self._login
-
-    def make_login(self) -> None:
-        """Выполняет вход на сервер."""
-        print("WinLogin.make_login()")
-
-    def cancel_login(self) -> None:
-        """Отменяет вход на сервер."""
-        print("WinLogin.make_login()")
-        self.destroy()

+ 0 - 26
desktop/app/gui/win_main/frm_down/frm_down.py

@@ -1,26 +0,0 @@
-"""Нижний фрейм главного окна."""
-import tkinter
-
-from typ.iapp import IApp
-
-
-class FrmDown(tkinter.Frame):
-    """Нижний фрейм главного окна."""
-
-    def __init__(self, app: IApp) -> None:
-        """Возвращает новый объект нижнего фрейма главного окна."""
-        tkinter.Frame.__init__(self, app.gui().win_main())
-        self.win: tkinter.Tk = app.gui().win_main()
-        self.btn_exit: tkinter.Button = tkinter.Button(self, text="Выход")
-        self.btn_exit["command"] = self.quit
-        self.btn_exit["fg"] = "#f00"
-        self.btn_exit["bg"] = "#eee"
-        self.btn_exit["border"] = 3
-        self.btn_exit["relief"] = "raised"
-        self.btn_exit.pack(expand=True, side="right", fill="x")
-        self.pack(expand=False, side="bottom", fill="x")
-
-    def quit(self) -> None:
-        """Заставляет выйти изприложения."""
-        print("FrmDown.quit()")
-        self.win.destroy()

+ 0 - 30
desktop/app/gui/win_main/main_menu/main_menu.py

@@ -1,30 +0,0 @@
-"""Меню главного окна"""
-
-import tkinter
-from typ.iapp import IApp
-
-
-class MainMenu(tkinter.Menu):
-    """Главное меню главного окна"""
-
-    def __init__(self, app: IApp) -> None:
-        tkinter.Menu.__init__(self, master=app.gui().win_main())
-        self.win: tkinter.Tk = app
-        mnu_file: tkinter.Menu = tkinter.Menu(master=self)
-        mnu_file.add_command(label="Логин", command=self.login)
-        mnu_file.add_separator()
-        mnu_file.add_command(label="Выход", command=self.quit)
-        self.add_cascade(label="Файл", menu=mnu_file)
-        app.config(menu=self)
-
-    def login(self) -> None:
-        """Выполняет логин на сервер"""
-        print("MainMenu.login()")
-        win: win_login.WinLogin = win_login.WinLogin(self.win)
-        login: str = win.login
-        print(f"MainMenu.login(): login={login}")
-
-    def quit(self) -> None:
-        """Выполняет выход из приложения"""
-        print("MainMenu.quit()")
-        self.win.quit()

+ 0 - 24
desktop/app/gui/win_main/win_main.py

@@ -1,24 +0,0 @@
-"""Главное окно клиента вар-танка"""
-import tkinter
-from typ.iapp import IApp
-from typ.iwin_main import IWinMain
-from .frm_down import frm_down
-from .main_menu import main_menu
-
-
-class WinMain(tkinter.Tk, IWinMain):
-    """Главное окно клинта вартанка."""
-
-    def __init__(self, app: IApp) -> None:
-        tkinter.Tk.__init__(self)
-        self.wm_title("WarTank")
-        self.minsize(640, 480)
-        self.frm_down: frm_down.FrmDown = frm_down.FrmDown(app)
-        "Нижний фрейм главного окна"
-        self.menu: main_menu.MainMenu = main_menu.MainMenu(app)
-        "Меню главного окна"
-        self._app: IApp = app
-
-    def run(self) -> None:
-        """Запускает графику в работу."""
-        self.mainloop()

+ 0 - 12
desktop/app/kernel/kernel.py

@@ -1,12 +0,0 @@
-"""Ядро логики клиента."""
-
-from app.kernel.user import user
-
-
-class Kernel:
-    """Ядро логики клиента."""
-
-    def __init__(self) -> None:
-        """Создаёт экземпляр ядра."""
-        self.user: user.User = user.User()
-        "Пользователь клиента"

+ 0 - 25
desktop/app/kernel/user/user.py

@@ -1,25 +0,0 @@
-"""Пользователь клиента."""
-
-
-from typ import typ
-from app.kernel.user.user_login import user_login
-from app.kernel.user.user_pass import user_pass
-
-
-class User(typ.IUser):
-    """Пользователь клиента."""
-
-    def __init__(self) -> None:
-        """Возвращает новы   объект пользователя клиента."""
-        self._login: typ.ILogin = user_login.UserLogin()
-        "Логин юзера"
-        self._password: typ.IPass = user_pass.UserPass()
-        "Пароль юзера"
-
-    def login(self) -> typ.ILogin:
-        """Логин пользователя."""
-        return self._login
-
-    def password(self) -> typ.IPass:
-        """Пароль пользователя."""
-        return self._password

+ 0 - 27
desktop/app/kernel/user/user_login/user_login.py

@@ -1,27 +0,0 @@
-"""Логин пользователя клиента."""
-
-from typ import typ
-
-
-class UserLogin(typ.ILogin):
-    """Логин пользователя клиента."""
-
-    def __init__(self) -> None:
-        """Конструктор логина пользователя клиента."""
-        self._login: str = ""
-        "Фактическое значение логина клиента"
-
-    def get(self) -> str:
-        """Возвращает хранимый логин клиента."""
-        return self._login
-
-    def set(self, val: str) -> str:
-        """Устанавливает значение логина клиента.
-
-        Возвращает ошибку, если логин пустой или установлен ранее.
-        """
-        if val == "":
-            return "UserLogin.set(): логин пустой"
-        if self._login != "":
-            return "UserLogin.set(): логин установлен ранее"
-        return ""

+ 0 - 24
desktop/app/kernel/user/user_pass/user_pass.py

@@ -1,24 +0,0 @@
-"""Пароль пользователя клиента."""
-
-from typ import typ
-
-
-class UserPass(typ.IPass):
-    """Пароль пользователя клиента."""
-
-    def __init__(self) -> None:
-        """Возвращает новый пароль пользователя."""
-        self._pass: str = ""
-
-    def get(self) -> str:
-        """Возвращает хранимый пароль."""
-        return self._pass
-
-    def set(self, val: str) -> str:
-        """Устанавливает новое значение пароля пользователя клиента."""
-        if val == "":
-            return "UserPass.set(): password is empty"
-        if self._pass != "":
-            return "User.password_set(): пароль уже установлен"
-        self._pass = val
-        return ""

+ 0 - 14
desktop/desktop.py

@@ -1,14 +0,0 @@
-"""Пускач для десктоп-клиента сервера вар-танк."""
-
-
-
-
-def main() -> None:
-    """Главная функци клиента."""
-    kern: kernel.Kernel = kernel.Kernel()
-
-
-
-
-if __name__ == "__main__":
-    main()

+ 0 - 18
desktop/typ/iapp.py

@@ -1,18 +0,0 @@
-"""Интерфейс к объекту приложения."""
-
-import abc
-
-from typ.ikernel import IKern
-from typ.igui import IGui
-
-
-class IApp(abc.ABC):
-    """Интерфейс к объекту приложения."""
-
-    @abc.abstractmethod
-    def kern(self) -> IKern:
-        """Возвращает ядро приложения."""
-
-    @abc.abstractmethod
-    def gui(self) -> IGui:
-        """Возвращает GUI приложения."""

+ 0 - 17
desktop/typ/igui.py

@@ -1,17 +0,0 @@
-"""Интерфейс к графике."""
-
-import abc
-from typ.iwin_main import IWinMain
-from typ.iwin_login import IWinLogin
-
-
-class Gui(abc.ABC):
-    """Графика для клиента."""
-
-    @abc.abstractmethod
-    def win_main(self) -> IWinMain:
-        """Возвращает главное окно."""
-
-    @abc.abstractmethod
-    def win_login(self) -> IWinLogin:
-        """Возвращает окно логина."""

+ 0 - 16
desktop/typ/ikernel.py

@@ -1,16 +0,0 @@
-"""Интерфейс ядра приложения клиента."""
-
-import abc
-
-from typ.iuser import IUser
-
-
-class IKern(abc.ABC):
-    """Ядро логики приложения."""
-
-    def __init__(self) -> None:
-        """Возвращает новый объект ядра."""
-
-    @abc.abstractmethod
-    def user(self) -> IUser:
-        """Возвращает объект пользователя системы."""

+ 0 - 14
desktop/typ/ilogin.py

@@ -1,14 +0,0 @@
-"""Логин пользователя для клиента вар-танка."""
-import abc
-
-
-class ILogin(abc.ABC):
-    """Объект логина пользователя клиента."""
-
-    @abc.abstractmethod
-    def get(self) -> str:
-        """Возвращает хранимый логин."""
-
-    @abc.abstractmethod
-    def set(self, val: str) -> str:
-        """Устанавливает хранимый логин."""

+ 0 - 14
desktop/typ/ipass.py

@@ -1,14 +0,0 @@
-"""Пароль для логина на сервер вар-танка."""
-import abc
-
-
-class IPass(abc.ABC):
-    """Объект пароля пользователя клиента."""
-
-    @abc.abstractmethod
-    def get(self) -> str:
-        """Возвращает хранимый логин."""
-
-    @abc.abstractmethod
-    def set(self, val: str) -> str:
-        """Устанавливает хранимый логин."""

+ 0 - 18
desktop/typ/iuser.py

@@ -1,18 +0,0 @@
-"""Интерфейс к объекту пользователя клиента."""
-
-import abc
-
-from typ.ilogin import ILogin
-from typ.ipass import IPass
-
-
-class IUser(abc.ABC):
-    """Тип пользователя клиента."""
-
-    @abc.abstractmethod
-    def login(self) -> ILogin:
-        """Возвращает логин пользователя."""
-
-    @abc.abstractmethod
-    def password(self) -> IPass:
-        """Возвращает пароль пользователя."""

+ 0 - 7
desktop/typ/iwin_login.py

@@ -1,7 +0,0 @@
-"""Интерфейс к окну логина."""
-
-import abc
-
-
-class IWinLogin(abc.ABC):
-    """Интерфейс к окну логина."""

+ 0 - 6
desktop/typ/iwin_main.py

@@ -1,6 +0,0 @@
-"""Интерфейс к главному окну приложения."""
-import abc
-
-
-class IWinMain(abc.ABC):
-    """Интерфейс главного окна приложения."""

+ 0 - 1
desktop/typ/typ.py

@@ -1 +0,0 @@
-"""Содержит необходимые интерфейсы для работы."""