je-editor 0.0.215__py3-none-any.whl → 0.0.216__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.
Files changed (132) hide show
  1. git_client/commit_graph.py +88 -0
  2. git_client/git.py +181 -0
  3. git_client/git_cli.py +66 -0
  4. git_client/github.py +50 -0
  5. {je_editor-0.0.215.dist-info → je_editor-0.0.216.dist-info}/METADATA +2 -1
  6. je_editor-0.0.216.dist-info/RECORD +127 -0
  7. je_editor-0.0.216.dist-info/top_level.txt +4 -0
  8. pyside_ui/git_ui/commit_table.py +27 -0
  9. pyside_ui/git_ui/git_branch_tree_widget.py +119 -0
  10. pyside_ui/git_ui/git_client_gui.py +292 -0
  11. pyside_ui/git_ui/graph_view.py +174 -0
  12. pyside_ui/main_ui/ai_widget/ai_config.py +19 -0
  13. pyside_ui/main_ui/ai_widget/ask_thread.py +17 -0
  14. pyside_ui/main_ui/ai_widget/chat_ui.py +130 -0
  15. pyside_ui/main_ui/ai_widget/langchain_interface.py +45 -0
  16. pyside_ui/main_ui/menu/check_style_menu/build_check_style_menu.py +81 -0
  17. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/dock_menu/build_dock_menu.py +2 -2
  18. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/tab_menu/build_tab_menu.py +2 -2
  19. {je_editor/utils → utils}/multi_language/english.py +1 -1
  20. {je_editor/utils → utils}/multi_language/traditional_chinese.py +1 -1
  21. je_editor/__init__.py +0 -34
  22. je_editor/__main__.py +0 -18
  23. je_editor/start_editor.py +0 -17
  24. je_editor-0.0.215.dist-info/RECORD +0 -117
  25. je_editor-0.0.215.dist-info/top_level.txt +0 -1
  26. {je_editor/code_scan → code_scan}/__init__.py +0 -0
  27. {je_editor/code_scan → code_scan}/ruff_thread.py +0 -0
  28. {je_editor/code_scan → code_scan}/watchdog_implement.py +0 -0
  29. {je_editor/code_scan → code_scan}/watchdog_thread.py +0 -0
  30. {je_editor-0.0.215.dist-info → je_editor-0.0.216.dist-info}/WHEEL +0 -0
  31. {je_editor-0.0.215.dist-info → je_editor-0.0.216.dist-info}/licenses/LICENSE +0 -0
  32. {je_editor/pyside_ui → pyside_ui}/__init__.py +0 -0
  33. {je_editor/pyside_ui → pyside_ui}/browser/__init__.py +0 -0
  34. {je_editor/pyside_ui → pyside_ui}/browser/browser_download_window.py +0 -0
  35. {je_editor/pyside_ui → pyside_ui}/browser/browser_serach_lineedit.py +0 -0
  36. {je_editor/pyside_ui → pyside_ui}/browser/browser_view.py +0 -0
  37. {je_editor/pyside_ui → pyside_ui}/browser/browser_widget.py +0 -0
  38. {je_editor/pyside_ui → pyside_ui}/code/__init__.py +0 -0
  39. {je_editor/pyside_ui → pyside_ui}/code/auto_save/__init__.py +0 -0
  40. {je_editor/pyside_ui → pyside_ui}/code/auto_save/auto_save_manager.py +0 -0
  41. {je_editor/pyside_ui → pyside_ui}/code/auto_save/auto_save_thread.py +0 -0
  42. {je_editor/pyside_ui → pyside_ui}/code/code_format/__init__.py +0 -0
  43. {je_editor/pyside_ui → pyside_ui}/code/code_format/pep8_format.py +0 -0
  44. {je_editor/pyside_ui → pyside_ui}/code/code_process/__init__.py +0 -0
  45. {je_editor/pyside_ui → pyside_ui}/code/code_process/code_exec.py +0 -0
  46. {je_editor/pyside_ui → pyside_ui}/code/plaintext_code_edit/__init__.py +0 -0
  47. {je_editor/pyside_ui → pyside_ui}/code/plaintext_code_edit/code_edit_plaintext.py +0 -0
  48. {je_editor/pyside_ui → pyside_ui}/code/running_process_manager.py +0 -0
  49. {je_editor/pyside_ui → pyside_ui}/code/shell_process/__init__.py +0 -0
  50. {je_editor/pyside_ui → pyside_ui}/code/shell_process/shell_exec.py +0 -0
  51. {je_editor/pyside_ui → pyside_ui}/code/syntax/__init__.py +0 -0
  52. {je_editor/pyside_ui → pyside_ui}/code/syntax/python_syntax.py +0 -0
  53. {je_editor/pyside_ui → pyside_ui}/code/syntax/syntax_setting.py +0 -0
  54. {je_editor/pyside_ui → pyside_ui}/code/textedit_code_result/__init__.py +0 -0
  55. {je_editor/pyside_ui → pyside_ui}/code/textedit_code_result/code_record.py +0 -0
  56. {je_editor/pyside_ui → pyside_ui}/code/variable_inspector/__init__.py +0 -0
  57. {je_editor/pyside_ui → pyside_ui}/code/variable_inspector/inspector_gui.py +0 -0
  58. {je_editor/pyside_ui → pyside_ui}/dialog/__init__.py +0 -0
  59. {je_editor/pyside_ui → pyside_ui}/dialog/ai_dialog/__init__.py +0 -0
  60. {je_editor/pyside_ui → pyside_ui}/dialog/ai_dialog/set_ai_dialog.py +0 -0
  61. {je_editor/pyside_ui → pyside_ui}/dialog/file_dialog/__init__.py +0 -0
  62. {je_editor/pyside_ui → pyside_ui}/dialog/file_dialog/create_file_dialog.py +0 -0
  63. {je_editor/pyside_ui → pyside_ui}/dialog/file_dialog/open_file_dialog.py +0 -0
  64. {je_editor/pyside_ui → pyside_ui}/dialog/file_dialog/save_file_dialog.py +0 -0
  65. {je_editor/pyside_ui → pyside_ui}/dialog/search_ui/__init__.py +0 -0
  66. {je_editor/pyside_ui → pyside_ui}/dialog/search_ui/search_error_box.py +0 -0
  67. {je_editor/pyside_ui → pyside_ui}/dialog/search_ui/search_text_box.py +0 -0
  68. {je_editor/pyside_ui → pyside_ui}/main_ui/__init__.py +0 -0
  69. {je_editor/pyside_ui → pyside_ui}/main_ui/console_widget/__init__.py +0 -0
  70. {je_editor/pyside_ui → pyside_ui}/main_ui/console_widget/console_gui.py +0 -0
  71. {je_editor/pyside_ui → pyside_ui}/main_ui/console_widget/qprocess_adapter.py +0 -0
  72. {je_editor/pyside_ui → pyside_ui}/main_ui/dock/__init__.py +0 -0
  73. {je_editor/pyside_ui → pyside_ui}/main_ui/dock/destroy_dock.py +0 -0
  74. {je_editor/pyside_ui → pyside_ui}/main_ui/editor/__init__.py +0 -0
  75. {je_editor/pyside_ui → pyside_ui}/main_ui/editor/editor_widget.py +0 -0
  76. {je_editor/pyside_ui → pyside_ui}/main_ui/editor/editor_widget_dock.py +0 -0
  77. {je_editor/pyside_ui → pyside_ui}/main_ui/editor/process_input.py +0 -0
  78. {je_editor/pyside_ui → pyside_ui}/main_ui/ipython_widget/__init__.py +0 -0
  79. {je_editor/pyside_ui → pyside_ui}/main_ui/ipython_widget/rich_jupyter.py +0 -0
  80. {je_editor/pyside_ui → pyside_ui}/main_ui/main_editor.py +0 -0
  81. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/__init__.py +0 -0
  82. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/dock_menu/__init__.py +0 -0
  83. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/file_menu/__init__.py +0 -0
  84. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/file_menu/build_file_menu.py +0 -0
  85. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/help_menu/__init__.py +0 -0
  86. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/help_menu/build_help_menu.py +0 -0
  87. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/language_menu/__init__.py +0 -0
  88. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/language_menu/build_language_server.py +0 -0
  89. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/python_env_menu/__init__.py +0 -0
  90. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/python_env_menu/build_venv_menu.py +0 -0
  91. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/run_menu/__init__.py +0 -0
  92. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/run_menu/build_run_menu.py +0 -0
  93. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/run_menu/under_run_menu/__init__.py +0 -0
  94. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/run_menu/under_run_menu/build_debug_menu.py +0 -0
  95. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/run_menu/under_run_menu/build_program_menu.py +0 -0
  96. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/run_menu/under_run_menu/build_shell_menu.py +0 -0
  97. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/run_menu/under_run_menu/utils.py +0 -0
  98. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/set_menu_bar.py +0 -0
  99. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/style_menu/__init__.py +0 -0
  100. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/style_menu/build_style_menu.py +0 -0
  101. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/tab_menu/__init__.py +0 -0
  102. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/text_menu/__init__.py +0 -0
  103. {je_editor/pyside_ui → pyside_ui}/main_ui/menu/text_menu/build_text_menu.py +0 -0
  104. {je_editor/pyside_ui → pyside_ui}/main_ui/save_settings/__init__.py +0 -0
  105. {je_editor/pyside_ui → pyside_ui}/main_ui/save_settings/setting_utils.py +0 -0
  106. {je_editor/pyside_ui → pyside_ui}/main_ui/save_settings/user_color_setting_file.py +0 -0
  107. {je_editor/pyside_ui → pyside_ui}/main_ui/save_settings/user_setting_file.py +0 -0
  108. {je_editor/pyside_ui → pyside_ui}/main_ui/system_tray/__init__.py +0 -0
  109. {je_editor/pyside_ui → pyside_ui}/main_ui/system_tray/extend_system_tray.py +0 -0
  110. {je_editor/utils → utils}/__init__.py +0 -0
  111. {je_editor/utils → utils}/encodings/__init__.py +0 -0
  112. {je_editor/utils → utils}/encodings/python_encodings.py +0 -0
  113. {je_editor/utils → utils}/exception/__init__.py +0 -0
  114. {je_editor/utils → utils}/exception/exception_tags.py +0 -0
  115. {je_editor/utils → utils}/exception/exceptions.py +0 -0
  116. {je_editor/utils → utils}/file/__init__.py +0 -0
  117. {je_editor/utils → utils}/file/open/__init__.py +0 -0
  118. {je_editor/utils → utils}/file/open/open_file.py +0 -0
  119. {je_editor/utils → utils}/file/save/__init__.py +0 -0
  120. {je_editor/utils → utils}/file/save/save_file.py +0 -0
  121. {je_editor/utils → utils}/json/__init__.py +0 -0
  122. {je_editor/utils → utils}/json/json_file.py +0 -0
  123. {je_editor/utils → utils}/json_format/__init__.py +0 -0
  124. {je_editor/utils → utils}/json_format/json_process.py +0 -0
  125. {je_editor/utils → utils}/logging/__init__.py +0 -0
  126. {je_editor/utils → utils}/logging/loggin_instance.py +0 -0
  127. {je_editor/utils → utils}/multi_language/__init__.py +0 -0
  128. {je_editor/utils → utils}/multi_language/multi_language_wrapper.py +0 -0
  129. {je_editor/utils → utils}/redirect_manager/__init__.py +0 -0
  130. {je_editor/utils → utils}/redirect_manager/redirect_manager_class.py +0 -0
  131. {je_editor/utils → utils}/venv_check/__init__.py +0 -0
  132. {je_editor/utils → utils}/venv_check/check_venv.py +0 -0
@@ -0,0 +1,130 @@
1
+ from __future__ import annotations
2
+
3
+ from pathlib import Path
4
+ from typing import TYPE_CHECKING, Union
5
+
6
+ from PySide6.QtCore import Qt, QTimer
7
+ from PySide6.QtGui import QFontDatabase
8
+ from PySide6.QtWidgets import QWidget, QPlainTextEdit, QScrollArea, QLabel, QComboBox, QGridLayout, QPushButton, \
9
+ QMessageBox, QSizePolicy, QLineEdit
10
+
11
+ from je_editor.pyside_ui.dialog.ai_dialog.set_ai_dialog import SetAIDialog
12
+ from je_editor.pyside_ui.main_ui.ai_widget.ai_config import AIConfig, ai_config
13
+ from je_editor.pyside_ui.main_ui.ai_widget.ask_thread import AskThread
14
+ from je_editor.pyside_ui.main_ui.ai_widget.langchain_interface import LangChainInterface
15
+ from je_editor.utils.json.json_file import read_json
16
+ from je_editor.utils.multi_language.multi_language_wrapper import language_wrapper
17
+
18
+ if TYPE_CHECKING:
19
+ from je_editor.pyside_ui.main_ui.main_editor import EditorMain
20
+
21
+
22
+ class ChatUI(QWidget):
23
+
24
+ def __init__(self, main_window: EditorMain):
25
+ super().__init__()
26
+ self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
27
+ self.main_window = main_window
28
+ # Chat panel
29
+ self.chat_panel = QPlainTextEdit()
30
+ self.chat_panel.setLineWrapMode(self.chat_panel.LineWrapMode.NoWrap)
31
+ self.chat_panel.setReadOnly(True)
32
+ self.chat_panel_scroll_area = QScrollArea()
33
+ self.chat_panel_scroll_area.setWidgetResizable(True)
34
+ self.chat_panel_scroll_area.setViewportMargins(0, 0, 0, 0)
35
+ self.chat_panel_scroll_area.setWidget(self.chat_panel)
36
+ self.chat_panel.setFont(QFontDatabase.font(self.font().family(), "", 16))
37
+ # Prompt input
38
+ self.prompt_input = QLineEdit()
39
+ self.prompt_input.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
40
+ self.prompt_input.returnPressed.connect(self.call_ai_model)
41
+ # Font size combobox
42
+ self.font_size_label = QLabel(language_wrapper.language_word_dict.get("font_size"))
43
+ self.font_size_combobox = QComboBox()
44
+ for font_size in range(2, 101, 2):
45
+ self.font_size_combobox.addItem(str(font_size))
46
+ self.font_size_combobox.setCurrentText("16")
47
+ self.font_size_combobox.currentTextChanged.connect(self.update_panel_text_size)
48
+ # Buttons
49
+ self.set_ai_config_button = QPushButton(language_wrapper.language_word_dict.get("chat_ui_set_ai_button"))
50
+ self.set_ai_config_button.clicked.connect(self.set_ai_config)
51
+ self.load_ai_config_button = QPushButton(language_wrapper.language_word_dict.get("chat_ui_load_ai_button"))
52
+ self.load_ai_config_button.clicked.connect(lambda: self.load_ai_config(show_load_complete=True))
53
+ self.call_ai_model_button = QPushButton(language_wrapper.language_word_dict.get("chat_ui_call_ai_model_button"))
54
+ self.call_ai_model_button.clicked.connect(self.call_ai_model)
55
+ # Add to layout
56
+ self.grid_layout = QGridLayout()
57
+ self.grid_layout.addWidget(self.chat_panel_scroll_area, 0, 0, 1, 4)
58
+ self.grid_layout.addWidget(self.call_ai_model_button, 1, 0)
59
+ self.grid_layout.addWidget(self.font_size_combobox, 1, 1)
60
+ self.grid_layout.addWidget(self.set_ai_config_button, 1, 2)
61
+ self.grid_layout.addWidget(self.load_ai_config_button, 1, 3)
62
+ self.grid_layout.addWidget(self.prompt_input, 2, 0, 1, 4)
63
+
64
+ # Variable
65
+ self.ai_config: AIConfig = ai_config
66
+ self.lang_chain_interface: Union[LangChainInterface, None] = None
67
+ self.set_ai_config_dialog = None
68
+ # Timer to pop queue
69
+ self.pull_message_timer = QTimer(self)
70
+ self.pull_message_timer.setInterval(1000)
71
+ self.pull_message_timer.timeout.connect(self.pull_message)
72
+ self.pull_message_timer.start()
73
+
74
+ # Set layout
75
+ self.setLayout(self.grid_layout)
76
+
77
+ self.load_ai_config()
78
+
79
+ def update_panel_text_size(self):
80
+ self.chat_panel.setFont(
81
+ QFontDatabase.font(self.font().family(), "", int(self.font_size_combobox.currentText())))
82
+
83
+ def load_ai_config(self, show_load_complete: bool = False):
84
+ ai_config_file = Path(str(Path.cwd()) + "/" + ".jeditor/ai_config.json")
85
+ if ai_config_file.exists():
86
+ with open(ai_config_file, "r", encoding="utf-8"):
87
+ json_data: dict = read_json(str(ai_config_file))
88
+ if json_data:
89
+ if json_data.get("AI_model") and len(json_data.get("AI_model")) == 4:
90
+ ai_info: dict = json_data.get("AI_model")
91
+ if ai_info.get("ai_base_url") and ai_info.get("chat_model"):
92
+ ai_config.choosable_ai.update(json_data)
93
+ self.lang_chain_interface = LangChainInterface(
94
+ main_window=self,
95
+ api_key=ai_info.get("ai_api_key"),
96
+ base_url=ai_info.get("ai_base_url"),
97
+ chat_model=ai_info.get("chat_model"),
98
+ prompt_template=ai_info.get("prompt_template"),
99
+ )
100
+ if show_load_complete:
101
+ load_complete = QMessageBox(self)
102
+ load_complete.setWindowTitle(language_wrapper.language_word_dict.get("load_ai_messagebox_title"))
103
+ load_complete.setText(language_wrapper.language_word_dict.get("load_ai_messagebox_text"))
104
+ load_complete.exec()
105
+
106
+
107
+ def call_ai_model(self):
108
+ if isinstance(self.lang_chain_interface, LangChainInterface):
109
+ thread = AskThread(lang_chain_interface=self.lang_chain_interface, prompt=self.prompt_input.text())
110
+ thread.start()
111
+ else:
112
+ ai_info = ai_config.choosable_ai.get('AI_model')
113
+ QMessageBox.warning(self,
114
+ language_wrapper.language_word_dict.get("call_ai_model_error_title"),
115
+ language_wrapper.language_word_dict.get(
116
+ f"ai_api_key: {ai_info.get('ai_api_key')}, \n"
117
+ f"ai_base_url: {ai_info.get('ai_base_url')}, \n"
118
+ f"chat_model: {ai_info.get('chat_model')}, \n"
119
+ f"prompt_template: {ai_info.get('prompt_template')}"))
120
+
121
+ def pull_message(self):
122
+ if not ai_config.message_queue.empty():
123
+ ai_response = ai_config.message_queue.get_nowait()
124
+ self.chat_panel.appendPlainText(ai_response)
125
+ self.chat_panel.appendPlainText("\n")
126
+
127
+ def set_ai_config(self):
128
+ # Set and output AI a config file
129
+ self.set_ai_config_dialog = SetAIDialog()
130
+ self.set_ai_config_dialog.show()
@@ -0,0 +1,45 @@
1
+ from __future__ import annotations
2
+
3
+ import os
4
+ import re
5
+ from typing import Union, TYPE_CHECKING
6
+
7
+ from PySide6.QtWidgets import QMessageBox
8
+ from langchain.prompts.chat import SystemMessagePromptTemplate
9
+ from langchain_openai import ChatOpenAI
10
+ from pydantic import SecretStr
11
+
12
+ from je_editor.utils.multi_language.multi_language_wrapper import language_wrapper
13
+
14
+ if TYPE_CHECKING:
15
+ from je_editor.pyside_ui.main_ui.ai_widget.chat_ui import ChatUI
16
+
17
+ class LangChainInterface(object):
18
+
19
+ def __init__(self, main_window: ChatUI, prompt_template: str, base_url: str, api_key: Union[SecretStr, str],
20
+ chat_model: str):
21
+ self.system_message_prompt = SystemMessagePromptTemplate.from_template(prompt_template)
22
+ self.base_url = base_url
23
+ self.api_key = api_key
24
+ self.chat_model = chat_model
25
+ self.main_window = main_window
26
+ os.environ["OPENAI_BASE_URL"] = self.base_url
27
+ os.environ["OPENAI_API_KEY"] = self.api_key
28
+ os.environ["CHAT_MODEL"] = self.chat_model
29
+ self.chat_ai = ChatOpenAI(base_url=self.base_url, api_key=self.api_key, model=self.chat_model)
30
+
31
+ def call_ai_model(self, prompt: str) -> str | None:
32
+ message = None
33
+ try:
34
+ message = self.chat_ai.invoke(prompt).text()
35
+ match = re.search(r"</think>\s*(.*)", message, re.DOTALL)
36
+ if match:
37
+ message = match.group(1).strip()
38
+ else:
39
+ message = message
40
+
41
+ except Exception as error:
42
+ QMessageBox.warning(self.main_window,
43
+ language_wrapper.language_word_dict.get("call_ai_model_error_title"),
44
+ str(error))
45
+ return message
@@ -0,0 +1,81 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from je_editor.pyside_ui.main_ui.editor.editor_widget import EditorWidget
6
+ from je_editor.utils.logging.loggin_instance import jeditor_logger
7
+ from je_editor.utils.multi_language.multi_language_wrapper import language_wrapper
8
+
9
+ if TYPE_CHECKING:
10
+ from je_editor.pyside_ui.main_ui.main_editor import EditorMain
11
+ from PySide6.QtGui import QAction, QKeySequence
12
+ from yapf.yapflib.yapf_api import FormatCode
13
+
14
+ from je_editor.utils.json_format.json_process import reformat_json
15
+
16
+
17
+ def set_check_menu(ui_we_want_to_set: EditorMain) -> None:
18
+ jeditor_logger.info(f"build_check_style_menu.py set_check_menu ui_we_want_to_set: {ui_we_want_to_set}")
19
+ ui_we_want_to_set.check_menu = ui_we_want_to_set.menu.addMenu(
20
+ language_wrapper.language_word_dict.get("check_code_style_menu_label"))
21
+ # Yapf code check
22
+ ui_we_want_to_set.check_menu.yapf_check_python_action = QAction(
23
+ language_wrapper.language_word_dict.get("yapf_reformat_label"))
24
+ ui_we_want_to_set.check_menu.yapf_check_python_action.setShortcut(
25
+ QKeySequence("Ctrl+Shift+Y"))
26
+ ui_we_want_to_set.check_menu.yapf_check_python_action.triggered.connect(
27
+ lambda: yapf_check_python_code(
28
+ ui_we_want_to_set
29
+ )
30
+ )
31
+ ui_we_want_to_set.check_menu.addAction(ui_we_want_to_set.check_menu.yapf_check_python_action)
32
+ # Reformat JSON
33
+ ui_we_want_to_set.check_menu.reformat_json_action = QAction(
34
+ language_wrapper.language_word_dict.get("reformat_json_label"))
35
+ ui_we_want_to_set.check_menu.reformat_json_action.setShortcut("Ctrl+j")
36
+ ui_we_want_to_set.check_menu.reformat_json_action.triggered.connect(
37
+ lambda: reformat_json_text(
38
+ ui_we_want_to_set
39
+ )
40
+ )
41
+ ui_we_want_to_set.check_menu.addAction(ui_we_want_to_set.check_menu.reformat_json_action)
42
+ # Python formate check
43
+ ui_we_want_to_set.check_menu.check_python_format = QAction(
44
+ language_wrapper.language_word_dict.get("python_format_checker"))
45
+ ui_we_want_to_set.check_menu.check_python_format.setShortcut("Ctrl+Alt+p")
46
+ ui_we_want_to_set.check_menu.check_python_format.triggered.connect(
47
+ lambda: check_python_format(
48
+ ui_we_want_to_set
49
+ )
50
+ )
51
+ ui_we_want_to_set.check_menu.addAction(ui_we_want_to_set.check_menu.check_python_format)
52
+
53
+
54
+ def yapf_check_python_code(ui_we_want_to_set: EditorMain) -> None:
55
+ jeditor_logger.info(f"build_check_style_menu.py yapf_check_python_code ui_we_want_to_set: {ui_we_want_to_set}")
56
+ widget = ui_we_want_to_set.tab_widget.currentWidget()
57
+ if isinstance(widget, EditorWidget):
58
+ code_text = widget.code_edit.toPlainText()
59
+ widget.code_result.setPlainText("")
60
+ format_code = FormatCode(
61
+ unformatted_source=code_text,
62
+ style_config="google"
63
+ )
64
+ if isinstance(format_code, tuple):
65
+ widget.code_edit.setPlainText(format_code[0])
66
+
67
+
68
+ def reformat_json_text(ui_we_want_to_set: EditorMain) -> None:
69
+ jeditor_logger.info(f"build_check_style_menu.py reformat_json_text ui_we_want_to_set: {ui_we_want_to_set}")
70
+ widget = ui_we_want_to_set.tab_widget.currentWidget()
71
+ if isinstance(widget, EditorWidget):
72
+ code_text = widget.code_edit.toPlainText()
73
+ widget.code_result.setPlainText("")
74
+ widget.code_edit.setPlainText(reformat_json(code_text))
75
+
76
+
77
+ def check_python_format(ui_we_want_to_set: EditorMain) -> None:
78
+ jeditor_logger.info(f"build_check_style_menu.py check_python_format ui_we_want_to_set: {ui_we_want_to_set}")
79
+ widget = ui_we_want_to_set.tab_widget.currentWidget()
80
+ if isinstance(widget, EditorWidget):
81
+ widget.check_file_format()
@@ -10,8 +10,8 @@ from frontengine import FrontEngineMainUI
10
10
 
11
11
  from je_editor.pyside_ui.browser.browser_widget import BrowserWidget
12
12
  from je_editor.pyside_ui.code.variable_inspector.inspector_gui import VariableInspector
13
- from je_editor.pyside_ui.ui_git.git_branch_tree_widget import GitTreeViewGUI
14
- from je_editor.pyside_ui.ui_git.git_client_gui import Gitgui
13
+ from je_editor.pyside_ui.git_ui.git_branch_tree_widget import GitTreeViewGUI
14
+ from je_editor.pyside_ui.git_ui.git_client_gui import Gitgui
15
15
  from je_editor.pyside_ui.main_ui.ai_widget.chat_ui import ChatUI
16
16
  from je_editor.pyside_ui.main_ui.console_widget.console_gui import ConsoleWidget
17
17
  from je_editor.pyside_ui.main_ui.dock.destroy_dock import DestroyDock
@@ -6,8 +6,8 @@ from frontengine import FrontEngineMainUI
6
6
 
7
7
  from je_editor.pyside_ui.browser.browser_widget import BrowserWidget
8
8
  from je_editor.pyside_ui.code.variable_inspector.inspector_gui import VariableInspector
9
- from je_editor.pyside_ui.ui_git.git_branch_tree_widget import GitTreeViewGUI
10
- from je_editor.pyside_ui.ui_git.git_client_gui import Gitgui
9
+ from je_editor.pyside_ui.git_ui.git_branch_tree_widget import GitTreeViewGUI
10
+ from je_editor.pyside_ui.git_ui.git_client_gui import Gitgui
11
11
  from je_editor.pyside_ui.main_ui.ai_widget.chat_ui import ChatUI
12
12
  from je_editor.pyside_ui.main_ui.console_widget.console_gui import ConsoleWidget
13
13
  from je_editor.pyside_ui.main_ui.editor.editor_widget import EditorWidget
@@ -169,7 +169,7 @@ please make sure that the current encoding is consistent with the default encodi
169
169
  "err_read_diff": "Failed to read diff",
170
170
  "err_stage": "Stage failed",
171
171
  "info_stage_title": "Stage",
172
- "info_stage_msg": "Executed client_git add -A",
172
+ "info_stage_msg": "Executed git_client add -A",
173
173
  "err_commit": "Commit failed",
174
174
  "info_commit_title": "Commit",
175
175
  "info_commit_msg": "Commit created",
@@ -163,7 +163,7 @@ traditional_chinese_word_dict = {
163
163
  "err_read_diff": "讀取差異失敗",
164
164
  "err_stage": "暫存失敗",
165
165
  "info_stage_title": "暫存",
166
- "info_stage_msg": "已執行 client_git add -A",
166
+ "info_stage_msg": "已執行 git_client add -A",
167
167
  "err_commit": "提交失敗",
168
168
  "info_commit_title": "提交",
169
169
  "info_commit_msg": "已建立提交",
je_editor/__init__.py DELETED
@@ -1,34 +0,0 @@
1
- from je_editor.pyside_ui.browser.browser_widget import BrowserWidget
2
- from je_editor.pyside_ui.code.code_process.code_exec import ExecManager
3
- from je_editor.pyside_ui.code.shell_process.shell_exec import ShellManager
4
- from je_editor.pyside_ui.code.syntax.python_syntax import PythonHighlighter
5
- from je_editor.pyside_ui.code.syntax.syntax_setting import syntax_extend_setting_dict, syntax_rule_setting_dict
6
- from je_editor.pyside_ui.main_ui.editor.editor_widget import EditorWidget
7
- from je_editor.pyside_ui.main_ui.editor.editor_widget_dock import FullEditorWidget
8
- from je_editor.pyside_ui.main_ui.main_editor import EDITOR_EXTEND_TAB
9
- from je_editor.pyside_ui.main_ui.main_editor import EditorMain
10
- from je_editor.pyside_ui.main_ui.save_settings.user_color_setting_file import user_setting_color_dict
11
- from je_editor.pyside_ui.main_ui.save_settings.user_setting_file import user_setting_dict
12
- from je_editor.start_editor import start_editor
13
- from je_editor.utils.exception.exceptions import JEditorCantFindLanguageException
14
- from je_editor.utils.exception.exceptions import JEditorContentFileException
15
- from je_editor.utils.exception.exceptions import JEditorException
16
- from je_editor.utils.exception.exceptions import JEditorExecException
17
- from je_editor.utils.exception.exceptions import JEditorJsonException
18
- from je_editor.utils.exception.exceptions import JEditorOpenFileException
19
- from je_editor.utils.exception.exceptions import JEditorRunOnShellException
20
- from je_editor.utils.exception.exceptions import JEditorSaveFileException
21
- from je_editor.utils.multi_language.english import english_word_dict
22
- from je_editor.utils.multi_language.multi_language_wrapper import language_wrapper
23
- from je_editor.utils.multi_language.traditional_chinese import traditional_chinese_word_dict
24
-
25
- __all__ = [
26
- "start_editor", "EditorMain", "EDITOR_EXTEND_TAB",
27
- "JEditorException", "JEditorExecException", "FullEditorWidget",
28
- "JEditorRunOnShellException", "JEditorSaveFileException", "syntax_rule_setting_dict",
29
- "JEditorOpenFileException", "JEditorContentFileException", "syntax_extend_setting_dict",
30
- "JEditorCantFindLanguageException", "JEditorJsonException", "PythonHighlighter",
31
- "user_setting_dict", "user_setting_color_dict", "EditorWidget", "BrowserWidget",
32
- "ExecManager", "ShellManager", "traditional_chinese_word_dict", "english_word_dict",
33
- "language_wrapper"
34
- ]
je_editor/__main__.py DELETED
@@ -1,18 +0,0 @@
1
- if __name__ == "__main__":
2
- # argparse
3
- import argparse
4
-
5
- from je_editor.start_editor import start_editor
6
-
7
- argparse_event_dict = {
8
- "start": start_editor,
9
- }
10
- parser = argparse.ArgumentParser()
11
- parser.add_argument("-s", "--start", action="store_true", help="start editor")
12
- args = parser.parse_args()
13
- args = vars(args)
14
- for key, value in args.items():
15
- if value is not None and key not in ["start"]:
16
- argparse_event_dict.get(key)(value)
17
- else:
18
- argparse_event_dict.get(key)()
je_editor/start_editor.py DELETED
@@ -1,17 +0,0 @@
1
- import sys
2
-
3
- from PySide6.QtCore import QCoreApplication
4
- from PySide6.QtWidgets import QApplication
5
- from qt_material import apply_stylesheet
6
-
7
- from je_editor.pyside_ui.main_ui.main_editor import EditorMain
8
-
9
-
10
- def start_editor(debug_mode: bool = False) -> None:
11
- new_editor = QCoreApplication.instance()
12
- if new_editor is None:
13
- new_editor = QApplication(sys.argv)
14
- window = EditorMain(debug_mode)
15
- apply_stylesheet(new_editor, theme='dark_amber.xml')
16
- window.showMaximized()
17
- sys.exit(new_editor.exec())
@@ -1,117 +0,0 @@
1
- je_editor/__init__.py,sha256=IZm-mUID0W7-smb9SYEtwcWrpr8mz6OyF4e5akHGrFU,2405
2
- je_editor/__main__.py,sha256=2ymm4ESRcqP4K1YQyeaDbGhuK-0C1IausIiEOpbm6Ds,570
3
- je_editor/start_editor.py,sha256=hW7JFOjBkcW7hdC7q-9JsaVTeSNCep1GsqxLmbMU4wg,543
4
- je_editor/code_scan/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- je_editor/code_scan/ruff_thread.py,sha256=pQjfsaQXI2ZJ6nAGq0Fpw-k3S2V_gYQ0lPgYnNC9Re0,938
6
- je_editor/code_scan/watchdog_implement.py,sha256=9N5TCvWQKi66DSrViUaNhUwP5TkYhmbz_ncS9KTGPx8,1313
7
- je_editor/code_scan/watchdog_thread.py,sha256=jHJCIsDN1kcfK4dIY5MHORafV4EJNN93x4GgNnEx1G4,833
8
- je_editor/pyside_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- je_editor/pyside_ui/browser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- je_editor/pyside_ui/browser/browser_download_window.py,sha256=KEO8AoZYSDuES0z5os9ziD44lS47kIo3kbd5iOUM2Go,2018
11
- je_editor/pyside_ui/browser/browser_serach_lineedit.py,sha256=GYX6faCIxl-HtRXHZoc3EAuK6Ll41jgUV3ksawY5rsc,899
12
- je_editor/pyside_ui/browser/browser_view.py,sha256=vH_-Xw1DE5RqTz-wYxkKl0X6tzpcFVKXQqMqay7tJiw,1661
13
- je_editor/pyside_ui/browser/browser_widget.py,sha256=0fVnl6ye4FBz3bnxm-0SSEWW8bGlHS5DqQmMew5CKDk,3031
14
- je_editor/pyside_ui/code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- je_editor/pyside_ui/code/running_process_manager.py,sha256=VdfdprPNlPmMySOKDOjEEl5X9IsJVPSDb0a2KDKgiQg,1008
16
- je_editor/pyside_ui/code/auto_save/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- je_editor/pyside_ui/code/auto_save/auto_save_manager.py,sha256=hQ03TVq-c-mGku51DrjpmLtsPkVcZv4G_jaozC06Ir0,1019
18
- je_editor/pyside_ui/code/auto_save/auto_save_thread.py,sha256=V_A8_4JZdHdF9e2E_rYY_paS7rnJjB8_YVPxTyHZ_QE,1662
19
- je_editor/pyside_ui/code/code_format/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- je_editor/pyside_ui/code/code_format/pep8_format.py,sha256=zrCkUdz2SG4bnMSkXfccvpHAmUOxXLedSBxL_nkdaoE,3574
21
- je_editor/pyside_ui/code/code_process/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- je_editor/pyside_ui/code/code_process/code_exec.py,sha256=k0EPC2ZhC7yZTJkcezUvELIuD8AkU_GoXQcM8JL2Ptc,10686
23
- je_editor/pyside_ui/code/plaintext_code_edit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- je_editor/pyside_ui/code/plaintext_code_edit/code_edit_plaintext.py,sha256=lcwmBemFenH-uDGe6fo70MS47emzPFgy9XL7cipwryY,14249
25
- je_editor/pyside_ui/code/shell_process/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- je_editor/pyside_ui/code/shell_process/shell_exec.py,sha256=3x9nMRlAQdK7asoB_GD-Dx9LyrCOic8YIy0wzapmpiw,9527
27
- je_editor/pyside_ui/code/syntax/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- je_editor/pyside_ui/code/syntax/python_syntax.py,sha256=9rK7_DYAANgf28PUdVl9xs42b76Re_SWwIpijEGBuzQ,3054
29
- je_editor/pyside_ui/code/syntax/syntax_setting.py,sha256=oaLRF_83Oa6bcAorf7AlZG0Mrt4FmsK7b4aA-LS_bRo,2284
30
- je_editor/pyside_ui/code/textedit_code_result/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- je_editor/pyside_ui/code/textedit_code_result/code_record.py,sha256=pT-CmcADEaXLZ0ih6D6rpe1XywgszrEpcJxtJYgopJE,2162
32
- je_editor/pyside_ui/code/variable_inspector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- je_editor/pyside_ui/code/variable_inspector/inspector_gui.py,sha256=QMcwN3td5Nr01bWpUHEFJzl-wb0Ifigqx6ybfvQSzJY,4747
34
- je_editor/pyside_ui/dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- je_editor/pyside_ui/dialog/ai_dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
- je_editor/pyside_ui/dialog/ai_dialog/set_ai_dialog.py,sha256=w_cku2dQthtk0TDSxEeDB-tvzdHV4vmUhFVDlb2ynO8,2392
37
- je_editor/pyside_ui/dialog/file_dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- je_editor/pyside_ui/dialog/file_dialog/create_file_dialog.py,sha256=3NvGVld_If2TsM_Xt0pgWDTcj51szS8MxG1raU-tP2A,1650
39
- je_editor/pyside_ui/dialog/file_dialog/open_file_dialog.py,sha256=wTI4TwMfJ-960c_C0cLy2EhWbZosewSmpyWOrcf9yLE,3806
40
- je_editor/pyside_ui/dialog/file_dialog/save_file_dialog.py,sha256=pyPfwgrDiDpMKk8T_4oBukgJLxdWnzIKSziwFt4YuUU,1781
41
- je_editor/pyside_ui/dialog/search_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
- je_editor/pyside_ui/dialog/search_ui/search_error_box.py,sha256=jSa423cQW_xQ2WAj46CCWPsCP0Gy7g-UDe5o8LQyKQk,1190
43
- je_editor/pyside_ui/dialog/search_ui/search_text_box.py,sha256=ul-98FVByq_TNkkLZcBSF4VSwIQNBBj-4e6jYlh6YEA,1229
44
- je_editor/pyside_ui/main_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- je_editor/pyside_ui/main_ui/main_editor.py,sha256=O5wiy5QW8IrxHAzBkcu7v4OmFraVxDIkoQhwWA032GU,11546
46
- je_editor/pyside_ui/main_ui/console_widget/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
- je_editor/pyside_ui/main_ui/console_widget/console_gui.py,sha256=3H0Ocj9oDtgAoH7mT2YjDsSeFW3FphsstJqtIesS4yA,5572
48
- je_editor/pyside_ui/main_ui/console_widget/qprocess_adapter.py,sha256=UIyIoCEyt6hMxc2oLH68ioERFyuPDnPub05_Yi_-rGs,2304
49
- je_editor/pyside_ui/main_ui/dock/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
- je_editor/pyside_ui/main_ui/dock/destroy_dock.py,sha256=MTN45BykNm6FA4gMW7gI4Kr9orTdcxVTm7mch3DUhaw,604
51
- je_editor/pyside_ui/main_ui/editor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- je_editor/pyside_ui/main_ui/editor/editor_widget.py,sha256=AnrBGoToipAtxh2XRNey3wskKns6AxJ6hwtdST3fovw,10387
53
- je_editor/pyside_ui/main_ui/editor/editor_widget_dock.py,sha256=6oDf0pKx0sThlk_Qz0gduPIpasPqib6OYnMnQ4FRXFo,1930
54
- je_editor/pyside_ui/main_ui/editor/process_input.py,sha256=zj29E3He5_PD23HnIaDQ1vn3LWRECXTf8P7MWsX73k0,3401
55
- je_editor/pyside_ui/main_ui/ipython_widget/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
- je_editor/pyside_ui/main_ui/ipython_widget/rich_jupyter.py,sha256=LKbMbgpstsk_EiwbBSJ9Ljn7Ia3j2UNpQ_JAI6_LJ4Q,1629
57
- je_editor/pyside_ui/main_ui/menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- je_editor/pyside_ui/main_ui/menu/set_menu_bar.py,sha256=I12DXLyRO4cKe17fQY-QDazKEIh9W36LNV1aKUw47MU,1823
59
- je_editor/pyside_ui/main_ui/menu/dock_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
- je_editor/pyside_ui/main_ui/menu/dock_menu/build_dock_menu.py,sha256=xEhtt_JITYelUvNAx0kC5pGEXfdD7Hy2knLNj9Xwl48,8402
61
- je_editor/pyside_ui/main_ui/menu/file_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
- je_editor/pyside_ui/main_ui/menu/file_menu/build_file_menu.py,sha256=YT6kvXShRbfM4Qo51VveO_IK8uDqlNrGwHZUiM6_Tes,6881
63
- je_editor/pyside_ui/main_ui/menu/help_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
- je_editor/pyside_ui/main_ui/menu/help_menu/build_help_menu.py,sha256=iy1xDpV-u4DhZp8ZsetVKwHuJCctYgCWMpkIv12u3V0,2869
65
- je_editor/pyside_ui/main_ui/menu/language_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
- je_editor/pyside_ui/main_ui/menu/language_menu/build_language_server.py,sha256=23jKdAYxN65xJMVd5NbCwhIjwh2kfXVDszN1wmIs1A0,2333
67
- je_editor/pyside_ui/main_ui/menu/python_env_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
- je_editor/pyside_ui/main_ui/menu/python_env_menu/build_venv_menu.py,sha256=Hv_UbIwlRGlcpvDVSHjNHFslYvFawLh81raWA6zoJAY,9206
69
- je_editor/pyside_ui/main_ui/menu/run_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- je_editor/pyside_ui/main_ui/menu/run_menu/build_run_menu.py,sha256=r1jl9FYHttRK6D09YItjVI6qsz46TA-OCV03TYOI4W8,5269
71
- je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
- je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/build_debug_menu.py,sha256=eTkByv3TBxYuyxNWYnohWNPo2I4COxglV_GEeTsgNvk,3329
73
- je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/build_program_menu.py,sha256=jfc7l6zYpRdtYdj2f0nydP41hxEkqCXFISLcTn_AU0E,3125
74
- je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/build_shell_menu.py,sha256=KNRNjMyqhaimjOrwuEwtVfGD90xph0VYl25_-kUGllE,2896
75
- je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/utils.py,sha256=zk5adQ7xidJgzaO81kKxc7LI34jCplcocL6vhacHEec,858
76
- je_editor/pyside_ui/main_ui/menu/style_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
- je_editor/pyside_ui/main_ui/menu/style_menu/build_style_menu.py,sha256=OjfcjQ7fA1Z1rMwIS9oGkIkC-jy-e0jdGoYo1btTqUQ,1852
78
- je_editor/pyside_ui/main_ui/menu/tab_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
- je_editor/pyside_ui/main_ui/menu/tab_menu/build_tab_menu.py,sha256=5gpbzIRyk_ezlD_0qIJ8EtAPBtmLz0XBDk1pa0VCGHE,9238
80
- je_editor/pyside_ui/main_ui/menu/text_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
- je_editor/pyside_ui/main_ui/menu/text_menu/build_text_menu.py,sha256=k3pOpK4i8ccs3D8VIrNx8g3kUDp1fZdqv9H5uEvNl5c,3558
82
- je_editor/pyside_ui/main_ui/save_settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- je_editor/pyside_ui/main_ui/save_settings/setting_utils.py,sha256=p1gY71j_PgSdlibA0uOm1eIKvOlIH_jNIJ-At0x3iMU,600
84
- je_editor/pyside_ui/main_ui/save_settings/user_color_setting_file.py,sha256=o0BZRHPMUEtoXaf0ihfOEzt3doLwgSmU3gQx51cCWAg,3145
85
- je_editor/pyside_ui/main_ui/save_settings/user_setting_file.py,sha256=XkHC2BABD6xLIx7gFTy6NzjqYXFMImSngwqp9GxELdc,1034
86
- je_editor/pyside_ui/main_ui/system_tray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
- je_editor/pyside_ui/main_ui/system_tray/extend_system_tray.py,sha256=xrk3TEaWdYyqc2U7po928sHV_tUj5QCdOsZEDKoU3_Y,2259
88
- je_editor/utils/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
89
- je_editor/utils/encodings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- je_editor/utils/encodings/python_encodings.py,sha256=Nn_GsBZcPHcY5djoL2ki5eriKUpCI0ZgZ6XKgnEo1YI,1613
91
- je_editor/utils/exception/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
92
- je_editor/utils/exception/exception_tags.py,sha256=KjkbbqrtIuNn07657AOVEpX0RZlOpTUFxKPiHld3xgM,1104
93
- je_editor/utils/exception/exceptions.py,sha256=4e2ivqFWgBq4L_8QgRjd79xdOAgR_tyW_hpBlQeePpw,506
94
- je_editor/utils/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
- je_editor/utils/file/open/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
96
- je_editor/utils/file/open/open_file.py,sha256=zaqj0g87AbczCTNnVW9xPsQ2Da9pTsUwO75WIp08IPg,1211
97
- je_editor/utils/file/save/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
98
- je_editor/utils/file/save/save_file.py,sha256=j_WpSXz2M0XweuruiC332-ZXpqgPiYlZULOnEiwuUOM,998
99
- je_editor/utils/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
- je_editor/utils/json/json_file.py,sha256=zTzQp-VFlaXg7puxC3EgEECURuuDmfJ8I9emX0EZyfw,1699
101
- je_editor/utils/json_format/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
102
- je_editor/utils/json_format/json_process.py,sha256=tszo48OnVivVkuuPrl-FtGaaq-1YOJLKT2o2A3qQi3M,1250
103
- je_editor/utils/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
- je_editor/utils/logging/loggin_instance.py,sha256=5MUuLesU_WpR_Iu1uoAATi5Bj2yMYkimZrMfiXbk5pI,881
105
- je_editor/utils/multi_language/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
- je_editor/utils/multi_language/english.py,sha256=s4vnWDqTX2G5DiLLdJHIyhGz2ozcuJ7e9DLYfTpuEf8,9974
107
- je_editor/utils/multi_language/multi_language_wrapper.py,sha256=_MtYrE51poQ1p_iWvT2eg_604uj6IsiBgGpifWpYLGc,1050
108
- je_editor/utils/multi_language/traditional_chinese.py,sha256=cc_KawxqvHnBH0MthkDwgco8FuEXfT7OfU8I55nmDVs,10052
109
- je_editor/utils/redirect_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
- je_editor/utils/redirect_manager/redirect_manager_class.py,sha256=1gICetKpohBvmxmVhnqeCRq7AQS2YWK4AURmrqnVYVw,2277
111
- je_editor/utils/venv_check/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
- je_editor/utils/venv_check/check_venv.py,sha256=oCrMdue4NYUUGrVifh_iHFwIgxVx9azYN4jz3Xiulgg,999
113
- je_editor-0.0.215.dist-info/licenses/LICENSE,sha256=KMhUHh6pnIUvmXDW-49L_Sz63bqkOlPDqsecaqKiitU,1091
114
- je_editor-0.0.215.dist-info/METADATA,sha256=QBFQvPWu1iCCeMr_iGtwUA8ju2KikfjQkSg0wC3N-T8,3446
115
- je_editor-0.0.215.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
116
- je_editor-0.0.215.dist-info/top_level.txt,sha256=_9YA7BgxpkmdLs-5V_UQILxClcMRgPyG1a3qaE-Bkcs,10
117
- je_editor-0.0.215.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- je_editor
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes