PyBreeze 1.0.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- automation_ide/__init__.py +7 -0
- automation_ide/__main__.py +0 -0
- automation_ide/automation_editor_ui/__init__.py +0 -0
- automation_ide/automation_editor_ui/connect_gui/__init__.py +0 -0
- automation_ide/automation_editor_ui/connect_gui/ssh/__init__.py +0 -0
- automation_ide/automation_editor_ui/connect_gui/ssh/ssh_command_widget.py +246 -0
- automation_ide/automation_editor_ui/connect_gui/ssh/ssh_file_viewer_widget.py +501 -0
- automation_ide/automation_editor_ui/connect_gui/ssh/ssh_login_widget.py +67 -0
- automation_ide/automation_editor_ui/connect_gui/ssh/ssh_main_widget.py +49 -0
- automation_ide/automation_editor_ui/connect_gui/url/__init__.py +0 -0
- automation_ide/automation_editor_ui/connect_gui/url/ai_code_review_gui.py +177 -0
- automation_ide/automation_editor_ui/editor_main/__init__.py +0 -0
- automation_ide/automation_editor_ui/editor_main/main_ui.py +104 -0
- automation_ide/automation_editor_ui/extend_ai_gui/__init__.py +0 -0
- automation_ide/automation_editor_ui/extend_ai_gui/ai_gui_global_variable.py +40 -0
- automation_ide/automation_editor_ui/extend_ai_gui/code_review/__init__.py +0 -0
- automation_ide/automation_editor_ui/extend_ai_gui/code_review/code_review_thread.py +81 -0
- automation_ide/automation_editor_ui/extend_ai_gui/code_review/cot_code_review_gui.py +82 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/__init__.py +0 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/__init__.py +0 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/code_smell_detector.py +22 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/first_code_review.py +17 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/first_summary_prompt.py +17 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/global_rule.py +59 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/judge.py +91 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/judge_single_review.py +85 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/linter.py +17 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/step_by_step_analysis.py +35 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/total_summary.py +66 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_prompt_editor_widget.py +136 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_editor_widget.py +136 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/__init__.py +0 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/code_explainer.py +21 -0
- automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/code_review.py +37 -0
- automation_ide/automation_editor_ui/extend_ai_gui/skills/__init__.py +0 -0
- automation_ide/automation_editor_ui/extend_ai_gui/skills/skills_send_gui.py +98 -0
- automation_ide/automation_editor_ui/extend_multi_language/__init__.py +0 -0
- automation_ide/automation_editor_ui/extend_multi_language/extend_english.py +272 -0
- automation_ide/automation_editor_ui/extend_multi_language/extend_traditional_chinese.py +272 -0
- automation_ide/automation_editor_ui/extend_multi_language/update_language_dict.py +8 -0
- automation_ide/automation_editor_ui/menu/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/automation_menu/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/automation_menu/api_testka_menu/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/automation_menu/api_testka_menu/build_api_testka_menu.py +137 -0
- automation_ide/automation_editor_ui/menu/automation_menu/auto_control_menu/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/automation_menu/auto_control_menu/build_autocontrol_menu.py +169 -0
- automation_ide/automation_editor_ui/menu/automation_menu/automation_file_menu/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/automation_menu/automation_file_menu/build_automation_file_menu.py +122 -0
- automation_ide/automation_editor_ui/menu/automation_menu/load_density_menu/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/automation_menu/load_density_menu/build_load_density_menu.py +137 -0
- automation_ide/automation_editor_ui/menu/automation_menu/mail_thunder_menu/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/automation_menu/mail_thunder_menu/build_mail_thunder_menu.py +88 -0
- automation_ide/automation_editor_ui/menu/automation_menu/test_pioneer_menu/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/automation_menu/test_pioneer_menu/build_test_pioneer_menu.py +62 -0
- automation_ide/automation_editor_ui/menu/automation_menu/web_runner_menu/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/automation_menu/web_runner_menu/build_webrunner_menu.py +119 -0
- automation_ide/automation_editor_ui/menu/build_menubar.py +47 -0
- automation_ide/automation_editor_ui/menu/install_menu/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/install_menu/automation_menu/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/install_menu/automation_menu/build_automation_install_menu.py +82 -0
- automation_ide/automation_editor_ui/menu/install_menu/install_utils.py +21 -0
- automation_ide/automation_editor_ui/menu/install_menu/tools_menu/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/install_menu/tools_menu/build_tool_install_menu.py +29 -0
- automation_ide/automation_editor_ui/menu/menu_utils.py +16 -0
- automation_ide/automation_editor_ui/menu/tools/__init__.py +0 -0
- automation_ide/automation_editor_ui/menu/tools/tools_menu.py +162 -0
- automation_ide/automation_editor_ui/show_code_window/__init__.py +0 -0
- automation_ide/automation_editor_ui/show_code_window/code_window.py +21 -0
- automation_ide/automation_editor_ui/syntax/__init__.py +0 -0
- automation_ide/automation_editor_ui/syntax/syntax_extend.py +40 -0
- automation_ide/automation_editor_ui/syntax/syntax_keyword.py +163 -0
- automation_ide/extend/__init__.py +0 -0
- automation_ide/extend/mail_thunder_extend/__init__.py +0 -0
- automation_ide/extend/mail_thunder_extend/mail_thunder_setting.py +36 -0
- automation_ide/extend/process_executor/__init__.py +0 -0
- automation_ide/extend/process_executor/api_testka/__init__.py +0 -0
- automation_ide/extend/process_executor/api_testka/api_testka_process.py +66 -0
- automation_ide/extend/process_executor/auto_control/__init__.py +0 -0
- automation_ide/extend/process_executor/auto_control/auto_control_process.py +62 -0
- automation_ide/extend/process_executor/file_automation/__init__.py +0 -0
- automation_ide/extend/process_executor/file_automation/file_automation_process.py +66 -0
- automation_ide/extend/process_executor/load_density/__init__.py +0 -0
- automation_ide/extend/process_executor/load_density/load_density_process.py +66 -0
- automation_ide/extend/process_executor/mail_thunder/__init__.py +0 -0
- automation_ide/extend/process_executor/mail_thunder/mail_thunder_process.py +16 -0
- automation_ide/extend/process_executor/process_executor_utils.py +72 -0
- automation_ide/extend/process_executor/python_task_process_manager.py +177 -0
- automation_ide/extend/process_executor/test_pioneer/__init__.py +0 -0
- automation_ide/extend/process_executor/test_pioneer/test_pioneer_process_manager.py +181 -0
- automation_ide/extend/process_executor/web_runner/__init__.py +0 -0
- automation_ide/extend/process_executor/web_runner/web_runner_process.py +66 -0
- automation_ide/utils/__init__.py +0 -0
- automation_ide/utils/exception/__init__.py +0 -0
- automation_ide/utils/exception/exception_tags.py +37 -0
- automation_ide/utils/exception/exceptions.py +50 -0
- automation_ide/utils/file_process/__init__.py +0 -0
- automation_ide/utils/file_process/get_dir_file_list.py +29 -0
- automation_ide/utils/json_format/__init__.py +1 -0
- automation_ide/utils/json_format/json_process.py +28 -0
- automation_ide/utils/logging/__init__.py +0 -0
- automation_ide/utils/logging/logger.py +50 -0
- automation_ide/utils/manager/__init__.py +0 -0
- automation_ide/utils/manager/package_manager/__init__.py +0 -0
- automation_ide/utils/manager/package_manager/package_manager_class.py +18 -0
- pybreeze-1.0.4.dist-info/METADATA +69 -0
- pybreeze-1.0.4.dist-info/RECORD +109 -0
- pybreeze-1.0.4.dist-info/WHEEL +5 -0
- pybreeze-1.0.4.dist-info/licenses/LICENSE +21 -0
- pybreeze-1.0.4.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# add command exception
|
|
2
|
+
add_command_type_exception_tag: str = "command execute_return_value type must be a method or function"
|
|
3
|
+
add_command_not_allow_package_exception_tag: str = "chosen command package is not allowed"
|
|
4
|
+
|
|
5
|
+
# send html report exception
|
|
6
|
+
send_html_exception_tag: str = """
|
|
7
|
+
make sure you have installed je_mail_thunder
|
|
8
|
+
can't send HTML report: check that the login username and password are correct
|
|
9
|
+
and that the current working folder contains default_name.html (the default HTML report execute_detail)
|
|
10
|
+
or use the file_path function to read
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
# test executor exception
|
|
14
|
+
auto_control_process_executor_exception_tag: str = "can't run AutoControl"
|
|
15
|
+
api_testka_process_executor_exception_tag: str = "can't run APITestka"
|
|
16
|
+
web_runner_process_executor_exception_tag: str = "can't run WebRunner"
|
|
17
|
+
load_density_process_executor_exception_tag: str = "can't run LoadDensity"
|
|
18
|
+
|
|
19
|
+
# Install
|
|
20
|
+
not_install_exception: str = "please install the package first; can't find the package"
|
|
21
|
+
|
|
22
|
+
# ui exception
|
|
23
|
+
wrong_test_data_format_exception_tag: str = "incorrect test data format"
|
|
24
|
+
|
|
25
|
+
# exec exception
|
|
26
|
+
exec_error: str = "AutomationEditor execution error"
|
|
27
|
+
file_not_fond_error: str = "File not found"
|
|
28
|
+
compiler_not_found_error: str = "Compiler not found"
|
|
29
|
+
not_install_package_error: str = "required package not installed"
|
|
30
|
+
|
|
31
|
+
# json exception
|
|
32
|
+
cant_reformat_json_error: str = "can't reformat JSON: is the type correct?"
|
|
33
|
+
wrong_json_data_error: str = "can't parse JSON"
|
|
34
|
+
|
|
35
|
+
# XML
|
|
36
|
+
cant_read_xml_error: str = "can't read XML"
|
|
37
|
+
xml_type_error: str = "XML type error"
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
class ITEException(Exception):
|
|
2
|
+
pass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
# Executor
|
|
6
|
+
|
|
7
|
+
class ITEAddCommandException(ITEException):
|
|
8
|
+
pass
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ITEExecException(ITEException):
|
|
12
|
+
pass
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class ITETestExecutorException(ITEException):
|
|
16
|
+
pass
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# HTML
|
|
20
|
+
|
|
21
|
+
class ITESendHtmlReportException(ITEException):
|
|
22
|
+
pass
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# UI
|
|
26
|
+
|
|
27
|
+
class ITEUIException(ITEException):
|
|
28
|
+
pass
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Content
|
|
32
|
+
|
|
33
|
+
class ITEContentFileException(ITEException):
|
|
34
|
+
pass
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# Json
|
|
38
|
+
|
|
39
|
+
class ITEJsonException(ITEException):
|
|
40
|
+
pass
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
# XML
|
|
44
|
+
|
|
45
|
+
class XMLException(ITEException):
|
|
46
|
+
pass
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class XMLTypeException(XMLException):
|
|
50
|
+
pass
|
|
File without changes
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
from os import getcwd
|
|
3
|
+
from os import walk
|
|
4
|
+
from os.path import abspath
|
|
5
|
+
from os.path import join
|
|
6
|
+
|
|
7
|
+
from PySide6.QtWidgets import QFileDialog, QMainWindow
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def get_dir_files_as_list(dir_path: str = getcwd(), default_search_file_extension: str = ".json") -> list:
|
|
11
|
+
"""
|
|
12
|
+
get dir file when end with default_search_file_extension
|
|
13
|
+
:param dir_path: which dir we want to walk and get file list
|
|
14
|
+
:param default_search_file_extension: which extension we want to search
|
|
15
|
+
:return: [] if nothing searched or [file1, file2.... files] file was searched
|
|
16
|
+
"""
|
|
17
|
+
return [
|
|
18
|
+
abspath(join(dir_path, file)) for root, dirs, files in walk(dir_path)
|
|
19
|
+
for file in files
|
|
20
|
+
if file.endswith(default_search_file_extension.lower())
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def ask_and_get_dir_files_as_list(main_window: QMainWindow, default_search_file_extension: str = ".json") -> list:
|
|
25
|
+
choose_dir = QFileDialog(parent=main_window).getExistingDirectory()
|
|
26
|
+
if choose_dir is not None and choose_dir != "":
|
|
27
|
+
return get_dir_files_as_list(choose_dir, default_search_file_extension)
|
|
28
|
+
else:
|
|
29
|
+
print("Not select any dir", file=sys.stderr)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import json.decoder
|
|
2
|
+
import sys
|
|
3
|
+
from json import dumps
|
|
4
|
+
from json import loads
|
|
5
|
+
|
|
6
|
+
from automation_ide.utils.exception.exception_tags import cant_reformat_json_error
|
|
7
|
+
from automation_ide.utils.exception.exception_tags import wrong_json_data_error
|
|
8
|
+
from automation_ide.utils.exception.exceptions import ITEJsonException
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def __process_json(json_string: str, **kwargs) -> str:
|
|
12
|
+
try:
|
|
13
|
+
return dumps(loads(json_string), indent=4, sort_keys=True, **kwargs)
|
|
14
|
+
except json.JSONDecodeError as error:
|
|
15
|
+
print(wrong_json_data_error, file=sys.stderr)
|
|
16
|
+
raise error
|
|
17
|
+
except TypeError:
|
|
18
|
+
try:
|
|
19
|
+
return dumps(json_string, indent=4, sort_keys=True, **kwargs)
|
|
20
|
+
except TypeError:
|
|
21
|
+
raise ITEJsonException(wrong_json_data_error)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def reformat_json(json_string: str, **kwargs) -> str:
|
|
25
|
+
try:
|
|
26
|
+
return __process_json(json_string, **kwargs)
|
|
27
|
+
except ITEJsonException:
|
|
28
|
+
raise ITEJsonException(cant_reformat_json_error)
|
|
File without changes
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from logging.handlers import RotatingFileHandler
|
|
3
|
+
|
|
4
|
+
# 設定 root logger 等級 Set root logger level
|
|
5
|
+
logging.root.setLevel(logging.DEBUG)
|
|
6
|
+
|
|
7
|
+
# 建立 AutoControlGUI 專用 logger Create dedicated logger
|
|
8
|
+
automation_ide_logger = logging.getLogger("AutomationIDE")
|
|
9
|
+
|
|
10
|
+
# 日誌格式 Formatter
|
|
11
|
+
formatter = logging.Formatter(
|
|
12
|
+
"%(asctime)s | %(name)s | %(levelname)s | %(message)s"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class AutomationIDELogger(RotatingFileHandler):
|
|
17
|
+
"""
|
|
18
|
+
AutoControlGUILoggingHandler
|
|
19
|
+
自訂日誌處理器,繼承 RotatingFileHandler
|
|
20
|
+
- 支援檔案大小輪替
|
|
21
|
+
- 預設輸出到 AutoControlGUI.log
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
def __init__(
|
|
25
|
+
self,
|
|
26
|
+
filename: str = "AutomationIDE.log",
|
|
27
|
+
mode: str = "w",
|
|
28
|
+
max_bytes: int = 1073741824, # 1GB
|
|
29
|
+
backup_count: int = 0,
|
|
30
|
+
):
|
|
31
|
+
super().__init__(
|
|
32
|
+
filename=filename,
|
|
33
|
+
mode=mode,
|
|
34
|
+
maxBytes=max_bytes,
|
|
35
|
+
backupCount=backup_count,
|
|
36
|
+
)
|
|
37
|
+
self.setFormatter(formatter) # 設定格式器
|
|
38
|
+
self.setLevel(logging.DEBUG) # 設定等級
|
|
39
|
+
|
|
40
|
+
def emit(self, record: logging.LogRecord) -> None:
|
|
41
|
+
"""
|
|
42
|
+
Emit log record.
|
|
43
|
+
輸出日誌紀錄
|
|
44
|
+
"""
|
|
45
|
+
super().emit(record)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
# 建立並加入檔案處理器 Add file handler to logger
|
|
49
|
+
file_handler = AutomationIDELogger()
|
|
50
|
+
automation_ide_logger.addHandler(file_handler)
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import os
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class PackageManager(object):
|
|
5
|
+
|
|
6
|
+
def __init__(self):
|
|
7
|
+
os.environ["WDM_LOG"] = "0"
|
|
8
|
+
self.syntax_check_list = [
|
|
9
|
+
"je_auto_control",
|
|
10
|
+
"je_load_density",
|
|
11
|
+
"je_api_testka",
|
|
12
|
+
"je_web_runner",
|
|
13
|
+
"automation_file",
|
|
14
|
+
"mail_thunder"
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
package_manager = PackageManager()
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: PyBreeze
|
|
3
|
+
Version: 1.0.4
|
|
4
|
+
Summary: AutomationEditor for multi automation
|
|
5
|
+
Author-email: JE-Chen <jechenmailman@gmail.com>
|
|
6
|
+
Project-URL: Homepage, https://github.com/Intergration-Automation-Testing/AutomationEditor
|
|
7
|
+
Project-URL: Code, https://github.com/Intergration-Automation-Testing/AutomationEditor
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
9
|
+
Classifier: Development Status :: 2 - Pre-Alpha
|
|
10
|
+
Classifier: Environment :: Win32 (MS Windows)
|
|
11
|
+
Classifier: Environment :: MacOS X
|
|
12
|
+
Classifier: Environment :: X11 Applications
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: je-editor
|
|
18
|
+
Requires-Dist: je_auto_control
|
|
19
|
+
Requires-Dist: je_web_runner
|
|
20
|
+
Requires-Dist: je_load_density
|
|
21
|
+
Requires-Dist: je_api_testka
|
|
22
|
+
Requires-Dist: je-mail-thunder
|
|
23
|
+
Requires-Dist: automation-file
|
|
24
|
+
Requires-Dist: PySide6==6.10.2
|
|
25
|
+
Requires-Dist: test_pioneer
|
|
26
|
+
Requires-Dist: paramiko
|
|
27
|
+
Dynamic: license-file
|
|
28
|
+
|
|
29
|
+
# Automation-IDE
|
|
30
|
+
An integrated test automation IDE developed with Python and PySide6 (Qt).
|
|
31
|
+
|
|
32
|
+
## Components
|
|
33
|
+
- Editor
|
|
34
|
+
- https://github.com/Integration-Automation/JEDITOR
|
|
35
|
+
- GUI Testing
|
|
36
|
+
- https://github.com/Integration-Automation/AutoControlGUI
|
|
37
|
+
- API Testing
|
|
38
|
+
- https://github.com/Integration-Automation/APITestka
|
|
39
|
+
- Web Testing
|
|
40
|
+
- https://github.com/Integration-Automation/WebRunner
|
|
41
|
+
- Load Testing
|
|
42
|
+
- https://github.com/Integration-Automation/LoadDensity
|
|
43
|
+
- File
|
|
44
|
+
- https://github.com/Integration-Automation/FileAutomation
|
|
45
|
+
- OpenCV
|
|
46
|
+
- https://github.com/Integration-Automation/je_opencv_wrapper
|
|
47
|
+
- Mail
|
|
48
|
+
- https://github.com/Integration-Automation/MailThunder
|
|
49
|
+
|
|
50
|
+
## Supported features:
|
|
51
|
+
- Python syntax highlighting
|
|
52
|
+
- Auto reformatter
|
|
53
|
+
- Code execution
|
|
54
|
+
- Test scripts
|
|
55
|
+
- Shell commands
|
|
56
|
+
- Embedded browser
|
|
57
|
+
- Jupyter integration
|
|
58
|
+
- Git client
|
|
59
|
+
- Code diff viewer, etc.
|
|
60
|
+
|
|
61
|
+
## Testing modules include:
|
|
62
|
+
- GUI testing
|
|
63
|
+
- API testing
|
|
64
|
+
- Load testing
|
|
65
|
+
- Web testing
|
|
66
|
+
|
|
67
|
+
## Installation
|
|
68
|
+
> pip install automation_editor
|
|
69
|
+
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
automation_ide/__init__.py,sha256=zG_DOSHrbLZ4ndtEgLeze6GwRXuAPItcMdw6bSHzVCE,334
|
|
2
|
+
automation_ide/__main__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
automation_ide/automation_editor_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
automation_ide/automation_editor_ui/connect_gui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
automation_ide/automation_editor_ui/connect_gui/ssh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
automation_ide/automation_editor_ui/connect_gui/ssh/ssh_command_widget.py,sha256=Yczk0WCXPT29-lHstxSkYkzT2GlLRBXIyO4PO1PGuHY,10006
|
|
7
|
+
automation_ide/automation_editor_ui/connect_gui/ssh/ssh_file_viewer_widget.py,sha256=gyFJjb8VHJTT_bgHwN3i5tVq6AiqrusJhjYAkR0UPh4,18921
|
|
8
|
+
automation_ide/automation_editor_ui/connect_gui/ssh/ssh_login_widget.py,sha256=iUiazb70sm8tZN6Wqv8jXtvJKLXPusLlW1up0C_iHl0,2975
|
|
9
|
+
automation_ide/automation_editor_ui/connect_gui/ssh/ssh_main_widget.py,sha256=6JHHBhBhj4buEDL_yLJurW1LqTxN41JouGNEXz28_Lc,1958
|
|
10
|
+
automation_ide/automation_editor_ui/connect_gui/url/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
automation_ide/automation_editor_ui/connect_gui/url/ai_code_review_gui.py,sha256=ODkqHUfCBf5oZEOI49g6MYCv5t1I22SCHAxQ5MBZL2w,6776
|
|
12
|
+
automation_ide/automation_editor_ui/editor_main/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
+
automation_ide/automation_editor_ui/editor_main/main_ui.py,sha256=WChJON-oVx3hKW3F_7zqPz1MsT-zdpCyC9N7Ynir8MI,3577
|
|
14
|
+
automation_ide/automation_editor_ui/extend_ai_gui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
automation_ide/automation_editor_ui/extend_ai_gui/ai_gui_global_variable.py,sha256=YkuNAzGUnGKjWk7vYIyYhHm5gUm2E-VGaS3zbKK6meE,1786
|
|
16
|
+
automation_ide/automation_editor_ui/extend_ai_gui/code_review/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
+
automation_ide/automation_editor_ui/extend_ai_gui/code_review/code_review_thread.py,sha256=xS62f446MU0EAkubLF12x7FlOPs43ghLN6POhGZuNAU,3692
|
|
18
|
+
automation_ide/automation_editor_ui/extend_ai_gui/code_review/cot_code_review_gui.py,sha256=7HamJ5hcrnU8Njg9O1bRaO6PARe_5amkt0ktoAKD4qM,3386
|
|
19
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_prompt_editor_widget.py,sha256=jlfjQXeFo2c9E6s5YT5Nhvz1A2vQUsipE4SwXZZbWQY,5787
|
|
21
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_editor_widget.py,sha256=4WvmBEciAAUhCHFapHZjsPYBnZloiY2p6HTBJC7269c,5632
|
|
22
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/code_smell_detector.py,sha256=VOfmBpzIPks-1fImtOUB5yOXLxa6RXmLwFcTRMTg5r4,1107
|
|
24
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/first_code_review.py,sha256=k6QfvH0jB3I-Q7Ml3QlwWmo_bF4bTlgU0PSC8FtlaIM,735
|
|
25
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/first_summary_prompt.py,sha256=n6dBNf01PfJ_6FVYpVcGNA6EpQraNqKTpbJMzQs8T0c,826
|
|
26
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/global_rule.py,sha256=e1E4H_uHSsGSrXIO2Y6WgU7gw9Suhl299fOGnvputA8,2073
|
|
27
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/judge.py,sha256=Ne5Mx4M7uV4zPgllYsbXQlEtrg0x_RPcxLLBERwVCFI,4745
|
|
28
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/judge_single_review.py,sha256=42pD4z6d_GcTcmriZZQm7cdne3EDikcKNh4TrW3EodI,4666
|
|
29
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/linter.py,sha256=afhY4z26Wc9bf1d64gtqFuKYwIcJFO9zPKW47AfoS4o,712
|
|
30
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/step_by_step_analysis.py,sha256=zzy3zKlKbgSnAZjH4Bg8U8347Au7qRDaRixy14HuThM,1169
|
|
31
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/cot_code_review_prompt_templates/total_summary.py,sha256=2tUXyi4Nnl7aIpozK8Tmy9zBkcbRCkX1nPun96eXQm8,2325
|
|
32
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/code_explainer.py,sha256=Tl8n5zRQFExGpKHmnmXw5GV1gASpUrwubLagT6Nu1ao,618
|
|
34
|
+
automation_ide/automation_editor_ui/extend_ai_gui/prompt_edit_gui/skills_prompt_templates/code_review.py,sha256=9QfDnYs4ZZbzGeS2vf1uxLr_VwJgsew_ehnW8rDWjIo,1299
|
|
35
|
+
automation_ide/automation_editor_ui/extend_ai_gui/skills/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
+
automation_ide/automation_editor_ui/extend_ai_gui/skills/skills_send_gui.py,sha256=Gt2_m6mvBegoIp7HNh8ZMXEEbDic7rJqBAHxDSWzhGE,3837
|
|
37
|
+
automation_ide/automation_editor_ui/extend_multi_language/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
|
+
automation_ide/automation_editor_ui/extend_multi_language/extend_english.py,sha256=69pOEIO1X7sySOZYi_ndGK9yNxE_1eJUrbVcnSYiE7Y,18430
|
|
39
|
+
automation_ide/automation_editor_ui/extend_multi_language/extend_traditional_chinese.py,sha256=x5JEkCxdHOeHHGdqzuSVGb3t_tFEdeTLuH2JXpeexb8,18899
|
|
40
|
+
automation_ide/automation_editor_ui/extend_multi_language/update_language_dict.py,sha256=uhdveIWP2fKKweG-C5xpzqV6Q-6cxmdEy541Ghpzs-I,362
|
|
41
|
+
automation_ide/automation_editor_ui/menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
+
automation_ide/automation_editor_ui/menu/build_menubar.py,sha256=c5wSfZponE96tGdCBArkFVvUOY69ZjY7GC2FK43Ujt8,2458
|
|
43
|
+
automation_ide/automation_editor_ui/menu/menu_utils.py,sha256=KDk-sU39WaG2iDAmn3NpuXkwHrN1ZHbDDU1Tc_zCR2w,513
|
|
44
|
+
automation_ide/automation_editor_ui/menu/automation_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
+
automation_ide/automation_editor_ui/menu/automation_menu/api_testka_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
|
+
automation_ide/automation_editor_ui/menu/automation_menu/api_testka_menu/build_api_testka_menu.py,sha256=jJNV3jKy3gvpwS4yUxuMOwbn8X-dQUI2TSDPaKaam5A,5611
|
|
47
|
+
automation_ide/automation_editor_ui/menu/automation_menu/auto_control_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
|
+
automation_ide/automation_editor_ui/menu/automation_menu/auto_control_menu/build_autocontrol_menu.py,sha256=RIvOcK1js4g7LwJGHVq5MyG8GwrjyngZ2CNSaH4Ppyg,7250
|
|
49
|
+
automation_ide/automation_editor_ui/menu/automation_menu/automation_file_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
+
automation_ide/automation_editor_ui/menu/automation_menu/automation_file_menu/build_automation_file_menu.py,sha256=JvpoHNXLivt2mw1a64PTMjr__VSgs30AK_ldY0Xg_D4,5434
|
|
51
|
+
automation_ide/automation_editor_ui/menu/automation_menu/load_density_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
52
|
+
automation_ide/automation_editor_ui/menu/automation_menu/load_density_menu/build_load_density_menu.py,sha256=TYV1jfQr-TFRMkTp0mG5CNuYCrjxUa_ZjnagbVKIW2I,5814
|
|
53
|
+
automation_ide/automation_editor_ui/menu/automation_menu/mail_thunder_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
|
+
automation_ide/automation_editor_ui/menu/automation_menu/mail_thunder_menu/build_mail_thunder_menu.py,sha256=kNkZfEvU_8iJkpHyYbzDxuSbP97Pwi_gW5zf2apWBss,3615
|
|
55
|
+
automation_ide/automation_editor_ui/menu/automation_menu/test_pioneer_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
+
automation_ide/automation_editor_ui/menu/automation_menu/test_pioneer_menu/build_test_pioneer_menu.py,sha256=IB2ubp5F-wzzhhp5wTJ77P79JrxTuEbD_oTn9kovJX8,2457
|
|
57
|
+
automation_ide/automation_editor_ui/menu/automation_menu/web_runner_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
|
+
automation_ide/automation_editor_ui/menu/automation_menu/web_runner_menu/build_webrunner_menu.py,sha256=0fs6Qgt92EON2cEbZ7UlTsabd6wM7yDjiCtKDzJwXQI,5136
|
|
59
|
+
automation_ide/automation_editor_ui/menu/install_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
60
|
+
automation_ide/automation_editor_ui/menu/install_menu/install_utils.py,sha256=TEsJxUvW-HAMMG9LP5GlRoAcv7dVx7LTyXNDHI6KTQo,865
|
|
61
|
+
automation_ide/automation_editor_ui/menu/install_menu/automation_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
|
+
automation_ide/automation_editor_ui/menu/install_menu/automation_menu/build_automation_install_menu.py,sha256=AXBUxh24AqeJs1Zr7XSzXM4UrmA107AaaNYsRNu27ZU,3858
|
|
63
|
+
automation_ide/automation_editor_ui/menu/install_menu/tools_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
|
+
automation_ide/automation_editor_ui/menu/install_menu/tools_menu/build_tool_install_menu.py,sha256=d8bWFuwextSvbJZSa_kwBHc9PW3FTZC_KoVDbtfjSxY,1228
|
|
65
|
+
automation_ide/automation_editor_ui/menu/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
|
+
automation_ide/automation_editor_ui/menu/tools/tools_menu.py,sha256=vn9OuX1_gnukbnI0gwexEZiRZYnWo4aC6YAohCcQuPE,8474
|
|
67
|
+
automation_ide/automation_editor_ui/show_code_window/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
68
|
+
automation_ide/automation_editor_ui/show_code_window/code_window.py,sha256=eK-F3dl4ltF7zKaHxkMQrwPQ9FGu4rne2tIJZpNdjAg,889
|
|
69
|
+
automation_ide/automation_editor_ui/syntax/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
|
+
automation_ide/automation_editor_ui/syntax/syntax_extend.py,sha256=e8rMJZlq8QeiDTLYu3Yv4abUjHxfljZfrnPGqiAwmoQ,1389
|
|
71
|
+
automation_ide/automation_editor_ui/syntax/syntax_keyword.py,sha256=GSArc94R83ZJGB0daNrxFJl79iqY76TEhBPtVyG1I4M,11590
|
|
72
|
+
automation_ide/extend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
|
+
automation_ide/extend/mail_thunder_extend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
74
|
+
automation_ide/extend/mail_thunder_extend/mail_thunder_setting.py,sha256=Ys6zdSLt_AoTd6MlVKKCu-jZ73QWB1-qIZKdX_rQ9Rc,1698
|
|
75
|
+
automation_ide/extend/process_executor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
76
|
+
automation_ide/extend/process_executor/process_executor_utils.py,sha256=6EzroU1DmaXbJq_JEynM1T8259xgPsD66weYdeRIOYU,2475
|
|
77
|
+
automation_ide/extend/process_executor/python_task_process_manager.py,sha256=Ywc-RnJt9mvcVktqBT0xaMnk3kO1NMSGWZbdxG1QH7k,7582
|
|
78
|
+
automation_ide/extend/process_executor/api_testka/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
|
+
automation_ide/extend/process_executor/api_testka/api_testka_process.py,sha256=SxUzzB0lMFSDZr4Ufy2gA7WKR28GxKAijihg1P8_cyA,2374
|
|
80
|
+
automation_ide/extend/process_executor/auto_control/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
81
|
+
automation_ide/extend/process_executor/auto_control/auto_control_process.py,sha256=ndeX3vwb3A09G_ufdBSHQtkHoWFjj-G3nw6sWeQkGIs,2261
|
|
82
|
+
automation_ide/extend/process_executor/file_automation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
+
automation_ide/extend/process_executor/file_automation/file_automation_process.py,sha256=BT0sz1p3xSNxPtC7fWiutGL1hawoIYTKNTJGaYJ_CC0,2438
|
|
84
|
+
automation_ide/extend/process_executor/load_density/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
85
|
+
automation_ide/extend/process_executor/load_density/load_density_process.py,sha256=ZsB44eGkZQ1YeE9VFVceoARVukvvHoUf-JIurnm-XpM,2388
|
|
86
|
+
automation_ide/extend/process_executor/mail_thunder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
|
+
automation_ide/extend/process_executor/mail_thunder/mail_thunder_process.py,sha256=OXOz5ubuVMFLjE0I6ahmNmuBMffxcdsWGwo-pzJUjUc,520
|
|
88
|
+
automation_ide/extend/process_executor/test_pioneer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
89
|
+
automation_ide/extend/process_executor/test_pioneer/test_pioneer_process_manager.py,sha256=qwq27Ib0c8rQcZsobCMaiuGN7E71OiT4zH0cbSHYjxQ,7791
|
|
90
|
+
automation_ide/extend/process_executor/web_runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
|
+
automation_ide/extend/process_executor/web_runner/web_runner_process.py,sha256=kETMi6w5Dw6nx3mjbBpcLSeT7rY7Hhs2zC5Lc1IY-rA,2402
|
|
92
|
+
automation_ide/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
|
+
automation_ide/utils/exception/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
94
|
+
automation_ide/utils/exception/exception_tags.py,sha256=-v7J_-N6WtDKVmi-HXiAcMu9_U4RrvO1C8BPFZw7Y-c,1563
|
|
95
|
+
automation_ide/utils/exception/exceptions.py,sha256=s16Z4BzWrCf-Y6Muqa6YwRVIHkNFvkWVo3ms8-TLHFg,608
|
|
96
|
+
automation_ide/utils/file_process/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
97
|
+
automation_ide/utils/file_process/get_dir_file_list.py,sha256=99BklRgv3YVMrpUcSh4cmxADgUg8Zo5-l1_p6Usuo1M,1171
|
|
98
|
+
automation_ide/utils/json_format/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
99
|
+
automation_ide/utils/json_format/json_process.py,sha256=e5q-TW0_sOf_6MsSrPRFrU9zbCOj8vIK5xSsqMHyffk,996
|
|
100
|
+
automation_ide/utils/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
101
|
+
automation_ide/utils/logging/logger.py,sha256=9xhN3nOoxzOHyqkFOd-3KFC3p9D-OhXzk0FcqQWUI90,1429
|
|
102
|
+
automation_ide/utils/manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
103
|
+
automation_ide/utils/manager/package_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
104
|
+
automation_ide/utils/manager/package_manager/package_manager_class.py,sha256=aov9dc92ElWDPwNeZOQf217HJ3NPQca_ZhuO1hv2VJM,381
|
|
105
|
+
pybreeze-1.0.4.dist-info/licenses/LICENSE,sha256=t-QeGGJ2BhTBn1LdAT-yPQqGOT1y_plfYqjbI3p_tRY,1085
|
|
106
|
+
pybreeze-1.0.4.dist-info/METADATA,sha256=gUu1WOdN45p7RrOM2uhuMMqS692ze2VXpmIeyQMz9Uc,2097
|
|
107
|
+
pybreeze-1.0.4.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
108
|
+
pybreeze-1.0.4.dist-info/top_level.txt,sha256=m7y7nVLJi3lRESk5f9XrXdAucJOTFRHQbZ5MPFdPtnk,15
|
|
109
|
+
pybreeze-1.0.4.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 JE-Chen
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
automation_ide
|