Skip to content
Merged

Dev #74

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .idea/Python_JEAutoControl.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

151 changes: 52 additions & 99 deletions .idea/workspace.xml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "je_auto_control_dev"
version = "0.0.59"
version = "0.0.61"
authors = [
{ name = "JE-Chen", email = "zenmailman@gmail.com" },
]
Expand Down
4 changes: 3 additions & 1 deletion je_auto_control/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@
from je_auto_control.utils.generate_report.generate_xml_report import generate_xml_report
# callback
from je_auto_control.utils.callback.callback_function_executor import callback_executor
# package manager
from je_auto_control.utils.package_manager.package_manager_class import package_manager

__all__ = [
"click_mouse", "mouse_table", "position", "press_mouse", "release_mouse",
Expand All @@ -95,5 +97,5 @@
"generate_json", "generate_json_report",
"generate_xml", "generate_xml_report",
"get_dir_files_as_list", "create_template_dir", "start_autocontrol_socket_server",
"callback_executor"
"callback_executor", "package_manager"
]
3 changes: 3 additions & 0 deletions je_auto_control/utils/executor/action_executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from je_auto_control.utils.generate_report.generate_xml_report import generate_xml
from je_auto_control.utils.generate_report.generate_xml_report import generate_xml_report
from je_auto_control.utils.json.json_file import read_action_json
from je_auto_control.utils.package_manager.package_manager_class import package_manager
from je_auto_control.utils.test_record.record_test_class import record_action_to_list, test_record_instance
from je_auto_control.wrapper.auto_control_image import locate_all_image, locate_and_click, locate_image_center
from je_auto_control.wrapper.auto_control_keyboard import check_key_is_press
Expand Down Expand Up @@ -74,6 +75,7 @@ def __init__(self):
# execute
"execute_action": self.execute_action,
"execute_files": self.execute_files,
"add_package_to_executor": package_manager.add_package_to_executor,
}
# get all time module builtin function and add to event dict
for function in getmembers(time, isbuiltin):
Expand Down Expand Up @@ -135,6 +137,7 @@ def execute_files(self, execute_files_list: list) -> list:


executor = Executor()
package_manager.executor = executor


def add_command_to_executor(command_dict: dict):
Expand Down
Empty file.
36 changes: 36 additions & 0 deletions je_auto_control/utils/package_manager/package_manager_class.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from importlib import import_module
from importlib.util import find_spec
from inspect import getmembers, isfunction
from sys import stderr


class PackageManager(object):

def __init__(self):
self.installed_package_dict = {
}
self.executor = None

def check_package(self, package: str):
if self.installed_package_dict.get(package, None) is None:
found_spec = find_spec(package)
if found_spec is not None:
try:
installed_package = import_module(found_spec.name)
self.installed_package_dict.update({found_spec.name: installed_package})
except ModuleNotFoundError as error:
print(repr(error), file=stderr)
return self.installed_package_dict.get(package, None)

def add_package_to_executor(self, package):
installed_package = self.check_package(package)
if installed_package is not None and self.executor is not None:
for function in getmembers(installed_package, isfunction):
self.executor.event_dict.update({str(function): function})
elif installed_package is None:
print(repr(ModuleNotFoundError(f"Can't find package {package}")), file=stderr)
else:
print(f"Executor error {self.executor}", file=stderr)


package_manager = PackageManager()
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "je_auto_control"
version = "0.0.125"
version = "0.0.126"
authors = [
{ name = "JE-Chen", email = "zenmailman@gmail.com" },
]
Expand Down