Skip to content

Commit

Permalink
Merge pull request #58 from Integration-Automation/dev
Browse files Browse the repository at this point in the history
Refactor
  • Loading branch information
JE-Chen45 committed Sep 8, 2023
2 parents 916f06b + 5e26dee commit b8ba6d6
Show file tree
Hide file tree
Showing 22 changed files with 111 additions and 89 deletions.
25 changes: 6 additions & 19 deletions automation_editor/automation_editor_ui/editor_main/main_ui.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,7 @@
from qt_material import apply_stylesheet

from automation_editor.automation_editor_ui.complete.complete_extend import complete_extend_package
from automation_editor.automation_editor_ui. \
menu.api_testka_menu.build_api_testka_menu import set_apitestka_menu
from automation_editor.automation_editor_ui. \
menu.auto_control_menu.build_autocontrol_menu import set_autocontrol_menu
from automation_editor.automation_editor_ui.menu.automation_file_menu.build_automation_file_menu import \
set_automation_file_menu
from automation_editor.automation_editor_ui.menu.install_menu.build_install_menu import set_install_menu
from automation_editor.automation_editor_ui.menu. \
load_density_menu.build_load_density_menu import set_load_density_menu
from automation_editor.automation_editor_ui.menu.mail_thunder_menu.build_mail_thunder_menu import set_mail_thunder_menu
from automation_editor.automation_editor_ui \
.menu.web_runner_menu.build_webrunner_menu import set_web_runner_menu
from automation_editor.automation_editor_ui.menu.build_menubar import add_menu_to_menubar
from automation_editor.automation_editor_ui.syntax.syntax_extend import \
syntax_extend_package

Expand All @@ -30,14 +19,12 @@ class AutomationEditor(EditorMain):
def __init__(self, debug_mode: bool = False):
super().__init__()
self.current_run_code_window: List[QWidget] = list()
# Project compiler if user not choose this will use which to find
self.python_compiler = None
# Delete JEditor help
self.help_menu.deleteLater()
set_autocontrol_menu(self)
set_apitestka_menu(self)
set_load_density_menu(self)
set_web_runner_menu(self)
set_automation_file_menu(self)
set_mail_thunder_menu(self)
set_install_menu(self)
# Menu
add_menu_to_menubar(self)
syntax_extend_package(self)
complete_extend_package(self)
# System tray change
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def set_apitestka_menu(ui_we_want_to_set: AutomationEditor):
:param ui_we_want_to_set: main window to add menu.
:return: None
"""
ui_we_want_to_set.apitestka_menu = ui_we_want_to_set.menu.addMenu("APITestka")
ui_we_want_to_set.apitestka_menu = ui_we_want_to_set.automation_menu.addMenu("APITestka")
ui_we_want_to_set.apitestka_run_menu = ui_we_want_to_set.apitestka_menu.addMenu("Run")
# Run APITestka Script
ui_we_want_to_set.run_apitestka_action = QAction("Run APITestka Script")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def set_autocontrol_menu(ui_we_want_to_set: AutomationEditor):
:param ui_we_want_to_set: main window to add menu.
:return: None
"""
ui_we_want_to_set.autocontrol_menu = ui_we_want_to_set.menu.addMenu("AutoControl")
ui_we_want_to_set.autocontrol_menu = ui_we_want_to_set.automation_menu.addMenu("AutoControl")
ui_we_want_to_set.autocontrol_run_menu = ui_we_want_to_set.autocontrol_menu.addMenu("Run")
# Run AutoControl Script
ui_we_want_to_set.run_autocontrol_action = QAction("Run AutoControl Script")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def set_automation_file_menu(ui_we_want_to_set: AutomationEditor):
:param ui_we_want_to_set: main window to add menu.
:return: None
"""
ui_we_want_to_set.automation_file_menu = ui_we_want_to_set.menu.addMenu("FileAutomation")
ui_we_want_to_set.automation_file_menu = ui_we_want_to_set.automation_menu.addMenu("FileAutomation")
ui_we_want_to_set.automation_run_file_menu = ui_we_want_to_set.automation_file_menu.addMenu("Run")
# Run FileAutomation Script
ui_we_want_to_set.run_file_automation_action = QAction("Run FileAutomation Script")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def set_load_density_menu(ui_we_want_to_set: AutomationEditor):
:param ui_we_want_to_set: main window to add menu.
:return: None
"""
ui_we_want_to_set.load_density_menu = ui_we_want_to_set.menu.addMenu("LoadDensity")
ui_we_want_to_set.load_density_menu = ui_we_want_to_set.automation_menu.addMenu("LoadDensity")
ui_we_want_to_set.load_density_run_menu = ui_we_want_to_set.load_density_menu.addMenu("Run")
# Run LoadDensity Script
ui_we_want_to_set.run_load_density_action = QAction("Run LoadDensity Script")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def set_mail_thunder_menu(ui_we_want_to_set: AutomationEditor):
:param ui_we_want_to_set: main window to add menu.
:return: None
"""
ui_we_want_to_set.mail_thunder_menu = ui_we_want_to_set.menu.addMenu("MailThunder")
ui_we_want_to_set.mail_thunder_menu = ui_we_want_to_set.automation_menu.addMenu("MailThunder")
ui_we_want_to_set.mail_thunder_run_menu = ui_we_want_to_set.mail_thunder_menu.addMenu("Run")
# Run MailThunder
ui_we_want_to_set.run_mail_thunder_action = QAction("Run MailThunder")
Expand Down
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def set_web_runner_menu(ui_we_want_to_set: AutomationEditor):
:param ui_we_want_to_set: main window to add menu.
:return: None
"""
ui_we_want_to_set.web_runner_menu = ui_we_want_to_set.menu.addMenu("WebRunner")
ui_we_want_to_set.web_runner_menu = ui_we_want_to_set.automation_menu.addMenu("WebRunner")
ui_we_want_to_set.web_runner_run_menu = ui_we_want_to_set.web_runner_menu.addMenu("Run")
# Run WEBRunner Script
ui_we_want_to_set.run_web_runner_action = QAction("Run WebRunner Script")
Expand Down
36 changes: 36 additions & 0 deletions automation_editor/automation_editor_ui/menu/build_menubar.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from __future__ import annotations

from typing import TYPE_CHECKING

from automation_editor.automation_editor_ui.menu.automation_menu.api_testka_menu.build_api_testka_menu import \
set_apitestka_menu
from automation_editor.automation_editor_ui.menu.automation_menu.auto_control_menu.build_autocontrol_menu import \
set_autocontrol_menu
from automation_editor.automation_editor_ui.menu.automation_menu.automation_file_menu.build_automation_file_menu import \
set_automation_file_menu
from automation_editor.automation_editor_ui.menu.automation_menu.load_density_menu.build_load_density_menu import \
set_load_density_menu
from automation_editor.automation_editor_ui.menu.automation_menu.mail_thunder_menu.build_mail_thunder_menu import \
set_mail_thunder_menu
from automation_editor.automation_editor_ui.menu.automation_menu.web_runner_menu.build_webrunner_menu import \
set_web_runner_menu
from automation_editor.automation_editor_ui.menu.install_menu.automation_menu.build_automation_install_menu import \
build_automation_install_menu
from automation_editor.automation_editor_ui.menu.install_menu.tools_menu.build_tool_install_menu import \
build_tool_install_menu

if TYPE_CHECKING:
from automation_editor.automation_editor_ui.editor_main.main_ui import AutomationEditor


def add_menu_to_menubar(ui_we_want_to_set: AutomationEditor):
ui_we_want_to_set.automation_menu = ui_we_want_to_set.menu.addMenu("Automation")
ui_we_want_to_set.install_menu = ui_we_want_to_set.menu.addMenu("Install")
set_apitestka_menu(ui_we_want_to_set)
set_autocontrol_menu(ui_we_want_to_set)
set_automation_file_menu(ui_we_want_to_set)
set_load_density_menu(ui_we_want_to_set)
set_mail_thunder_menu(ui_we_want_to_set)
set_web_runner_menu(ui_we_want_to_set)
build_automation_install_menu(ui_we_want_to_set)
build_tool_install_menu(ui_we_want_to_set)
Empty file.
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -2,100 +2,52 @@

from typing import TYPE_CHECKING

from PySide6.QtGui import QAction

from automation_editor.automation_editor_ui.menu.install_menu.install_utils import install_package

if TYPE_CHECKING:
from automation_editor.automation_editor_ui.editor_main.main_ui import AutomationEditor

import os
import shutil
import sys
from pathlib import Path

from PySide6.QtGui import QAction
from je_editor import ShellManager, EditorWidget


def set_install_menu(ui_we_want_to_set: AutomationEditor):
"""
Build menu include install package feature.
:param ui_we_want_to_set: main window to add menu.
:return: None
"""
ui_we_want_to_set.install_menu = ui_we_want_to_set.menu.addMenu("Install")
# Try to install Build Tools
ui_we_want_to_set.install_tool_action = QAction("Install Build Tools")
ui_we_want_to_set.install_tool_action.triggered.connect(
lambda: install_build_tools(ui_we_want_to_set)
)
ui_we_want_to_set.install_menu.addAction(ui_we_want_to_set.install_tool_action)
def build_automation_install_menu(ui_we_want_to_set: AutomationEditor):
ui_we_want_to_set.install_automation_menu = ui_we_want_to_set.install_menu.addMenu("Automation")
# Try to install AutoControl
ui_we_want_to_set.install_autocontrol_action = QAction("Install AutoControl")
ui_we_want_to_set.install_autocontrol_action.triggered.connect(
lambda: install_autocontrol(ui_we_want_to_set)
)
ui_we_want_to_set.install_menu.addAction(ui_we_want_to_set.install_autocontrol_action)
ui_we_want_to_set.install_automation_menu.addAction(ui_we_want_to_set.install_autocontrol_action)
# Try to install APITestka
ui_we_want_to_set.install_api_testka = QAction("Install APITestka")
ui_we_want_to_set.install_api_testka.triggered.connect(
lambda: install_api_testka(ui_we_want_to_set)
)
ui_we_want_to_set.install_menu.addAction(ui_we_want_to_set.install_api_testka)
ui_we_want_to_set.install_automation_menu.addAction(ui_we_want_to_set.install_api_testka)
# Try to install LoadDensity
ui_we_want_to_set.install_load_density_action = QAction("Install LoadDensity")
ui_we_want_to_set.install_load_density_action.triggered.connect(
lambda: install_load_density(ui_we_want_to_set)
)
ui_we_want_to_set.install_menu.addAction(ui_we_want_to_set.install_load_density_action)
ui_we_want_to_set.install_automation_menu.addAction(ui_we_want_to_set.install_load_density_action)
# Try to install WebRunner
ui_we_want_to_set.install_web_runner_action = QAction("Install WebRunner")
ui_we_want_to_set.install_web_runner_action.triggered.connect(
lambda: install_web_runner(ui_we_want_to_set)
)
ui_we_want_to_set.install_menu.addAction(ui_we_want_to_set.install_web_runner_action)
ui_we_want_to_set.install_automation_menu.addAction(ui_we_want_to_set.install_web_runner_action)
# Try to install Automation File
ui_we_want_to_set.install_automation_file_action = QAction("Install Automation File")
ui_we_want_to_set.install_automation_file_action.triggered.connect(
lambda: install_automation_file(ui_we_want_to_set)
)
ui_we_want_to_set.install_menu.addAction(ui_we_want_to_set.install_automation_file_action)
ui_we_want_to_set.install_automation_menu.addAction(ui_we_want_to_set.install_automation_file_action)
# Try to install MailThunder
ui_we_want_to_set.install_mail_thunder_action = QAction("Install MailThunder")
ui_we_want_to_set.install_mail_thunder_action.triggered.connect(
lambda: install_mail_thunder_file(ui_we_want_to_set)
)
ui_we_want_to_set.install_menu.addAction(ui_we_want_to_set.install_mail_thunder_action)


def install_package(package_text: str, ui_we_want_to_set: AutomationEditor) -> None:
if sys.platform in ["win32", "cygwin", "msys"]:
venv_path = Path(os.getcwd() + "/venv/Scripts")
else:
venv_path = Path(os.getcwd() + "/venv/bin")
if venv_path.is_dir() and venv_path.exists():
compiler_path = shutil.which(
cmd="python3",
path=str(venv_path)
)
else:
compiler_path = shutil.which(cmd="python3")
if compiler_path is None:
compiler_path = shutil.which(
cmd="python",
path=str(venv_path)
)
else:
compiler_path = shutil.which(cmd="python")
widget = ui_we_want_to_set.tab_widget.currentWidget()
if isinstance(widget, EditorWidget):
shell_manager = ShellManager()
shell_manager.main_window = widget
shell_manager.later_init()
shell_manager.exec_shell([f"{compiler_path}", "-m", "pip", "install", f"{package_text}", "-U"])


def install_build_tools(ui_we_want_to_set: AutomationEditor) -> None:
install_package("setuptools", ui_we_want_to_set)
install_package("build", ui_we_want_to_set)
install_package("wheel", ui_we_want_to_set)
ui_we_want_to_set.install_automation_menu.addAction(ui_we_want_to_set.install_mail_thunder_action)


def install_autocontrol(ui_we_want_to_set: AutomationEditor) -> None:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from __future__ import annotations

from typing import TYPE_CHECKING

from je_editor import EditorWidget, ShellManager

if TYPE_CHECKING:
from automation_editor.automation_editor_ui.editor_main.main_ui import AutomationEditor


def install_package(package_text: str, ui_we_want_to_set: AutomationEditor) -> None:
widget = ui_we_want_to_set.tab_widget.currentWidget()
if isinstance(widget, EditorWidget):
widget.python_compiler = ui_we_want_to_set.python_compiler
shell_manager = ShellManager(main_window=widget)
shell_manager.later_init()
if widget.python_compiler is not None:
compiler_path = widget.python_compiler
else:
compiler_path = shell_manager.compiler_path
shell_manager.exec_shell([f"{compiler_path}", "-m", "pip", "install", f"{package_text}", "-U"])
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from __future__ import annotations

from typing import TYPE_CHECKING

from PySide6.QtGui import QAction

from automation_editor.automation_editor_ui.menu.install_menu.install_utils import install_package

if TYPE_CHECKING:
from automation_editor.automation_editor_ui.editor_main.main_ui import AutomationEditor


def build_tool_install_menu(ui_we_want_to_set: AutomationEditor):
ui_we_want_to_set.install_tools_menu = ui_we_want_to_set.install_menu.addMenu("Tools")
# Try to install Build Tools
ui_we_want_to_set.install_tool_action = QAction("Install Build Tools")
ui_we_want_to_set.install_tool_action.triggered.connect(
lambda: install_build_tools(ui_we_want_to_set)
)
ui_we_want_to_set.install_tools_menu.addAction(ui_we_want_to_set.install_tool_action)


def install_build_tools(ui_we_want_to_set: AutomationEditor) -> None:
install_package("setuptools", ui_we_want_to_set)
install_package("build", ui_we_want_to_set)
install_package("wheel", ui_we_want_to_set)
8 changes: 4 additions & 4 deletions exe/auto_py_to_exe_setting.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
},
{
"optionDest": "filenames",
"value": "C:/Users/JeffreyChen/Desktop/Code_Space/AutomationEditor/exe/start_automation_editor.py"
"value": "C:/CodeWorkspace/AutomationEditor/exe/start_automation_editor.py"
},
{
"optionDest": "onefile",
Expand All @@ -19,7 +19,7 @@
},
{
"optionDest": "icon_file",
"value": "C:/Users/JeffreyChen/Desktop/Code_Space/AutomationEditor/exe/je_driver_icon.ico"
"value": "C:/CodeWorkspace/AutomationEditor/exe/je_driver_icon.ico"
},
{
"optionDest": "name",
Expand Down Expand Up @@ -75,11 +75,11 @@
},
{
"optionDest": "datas",
"value": "C:/Users/JeffreyChen/Desktop/Code_Space/AutomationEditor/exe/je_driver_icon.ico;."
"value": "C:/CodeWorkspace/AutomationEditor/exe/je_driver_icon.ico;."
},
{
"optionDest": "pathex",
"value": "C:/Users/JeffreyChen/Desktop/Code_Space/AutomationEditor/venv"
"value": "C:/CodeWorkspace/AutomationEditor/venv"
}
],
"nonPyinstallerOptions": {
Expand Down

0 comments on commit b8ba6d6

Please sign in to comment.