Skip to content

Commit 124f23c

Browse files
authored
Merge pull request #74 from Integrated-Testing-Environment/dev
Dev
2 parents 4367d1a + cbd89e5 commit 124f23c

File tree

8 files changed

+97
-103
lines changed

8 files changed

+97
-103
lines changed

.idea/Python_JEAutoControl.iml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

Lines changed: 52 additions & 99 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dev.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
66

77
[project]
88
name = "je_auto_control_dev"
9-
version = "0.0.59"
9+
version = "0.0.61"
1010
authors = [
1111
{ name = "JE-Chen", email = "zenmailman@gmail.com" },
1212
]

je_auto_control/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@
7171
from je_auto_control.utils.generate_report.generate_xml_report import generate_xml_report
7272
# callback
7373
from je_auto_control.utils.callback.callback_function_executor import callback_executor
74+
# package manager
75+
from je_auto_control.utils.package_manager.package_manager_class import package_manager
7476

7577
__all__ = [
7678
"click_mouse", "mouse_table", "position", "press_mouse", "release_mouse",
@@ -95,5 +97,5 @@
9597
"generate_json", "generate_json_report",
9698
"generate_xml", "generate_xml_report",
9799
"get_dir_files_as_list", "create_template_dir", "start_autocontrol_socket_server",
98-
"callback_executor"
100+
"callback_executor", "package_manager"
99101
]

je_auto_control/utils/executor/action_executor.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from je_auto_control.utils.generate_report.generate_xml_report import generate_xml
1616
from je_auto_control.utils.generate_report.generate_xml_report import generate_xml_report
1717
from je_auto_control.utils.json.json_file import read_action_json
18+
from je_auto_control.utils.package_manager.package_manager_class import package_manager
1819
from je_auto_control.utils.test_record.record_test_class import record_action_to_list, test_record_instance
1920
from je_auto_control.wrapper.auto_control_image import locate_all_image, locate_and_click, locate_image_center
2021
from je_auto_control.wrapper.auto_control_keyboard import check_key_is_press
@@ -74,6 +75,7 @@ def __init__(self):
7475
# execute
7576
"execute_action": self.execute_action,
7677
"execute_files": self.execute_files,
78+
"add_package_to_executor": package_manager.add_package_to_executor,
7779
}
7880
# get all time module builtin function and add to event dict
7981
for function in getmembers(time, isbuiltin):
@@ -135,6 +137,7 @@ def execute_files(self, execute_files_list: list) -> list:
135137

136138

137139
executor = Executor()
140+
package_manager.executor = executor
138141

139142

140143
def add_command_to_executor(command_dict: dict):

je_auto_control/utils/package_manager/__init__.py

Whitespace-only changes.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
from importlib import import_module
2+
from importlib.util import find_spec
3+
from inspect import getmembers, isfunction
4+
from sys import stderr
5+
6+
7+
class PackageManager(object):
8+
9+
def __init__(self):
10+
self.installed_package_dict = {
11+
}
12+
self.executor = None
13+
14+
def check_package(self, package: str):
15+
if self.installed_package_dict.get(package, None) is None:
16+
found_spec = find_spec(package)
17+
if found_spec is not None:
18+
try:
19+
installed_package = import_module(found_spec.name)
20+
self.installed_package_dict.update({found_spec.name: installed_package})
21+
except ModuleNotFoundError as error:
22+
print(repr(error), file=stderr)
23+
return self.installed_package_dict.get(package, None)
24+
25+
def add_package_to_executor(self, package):
26+
installed_package = self.check_package(package)
27+
if installed_package is not None and self.executor is not None:
28+
for function in getmembers(installed_package, isfunction):
29+
self.executor.event_dict.update({str(function): function})
30+
elif installed_package is None:
31+
print(repr(ModuleNotFoundError(f"Can't find package {package}")), file=stderr)
32+
else:
33+
print(f"Executor error {self.executor}", file=stderr)
34+
35+
36+
package_manager = PackageManager()

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
66

77
[project]
88
name = "je_auto_control"
9-
version = "0.0.125"
9+
version = "0.0.126"
1010
authors = [
1111
{ name = "JE-Chen", email = "zenmailman@gmail.com" },
1212
]

0 commit comments

Comments
 (0)