From 74d119d7c5b6268f33d5e8c7cf3c0a2ab379635a Mon Sep 17 00:00:00 2001 From: hzy15610046011 <1295752786@qq.com> Date: Tue, 20 Apr 2021 17:26:39 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E7=94=A8=20qsettings=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E6=9B=B4=E6=96=B0=E7=9A=84=E8=AE=BE=E7=BD=AE=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app2.py | 45 +++- configuration/config.ini | 8 + features/io/settings.py | 4 +- features/main_window/base.py | 66 +++--- features/ui/ui_option.py | 124 +++++------ features/ui/ui_option.ui | 119 +++++----- features/util/update.py | 12 +- load_modules.py | 9 +- packages/code_editor/codeeditor/tabwidget.py | 8 +- packages/qt_vditor/client.py | 11 +- packages/qt_vditor/examples/sample.md | 7 + pmgwidgets/utilities/platform/fileutils.py | 9 +- pmlocalserver/server.py | 4 +- utils/__init__.py | 114 +++++----- utils/path.py | 73 ++++++- utils/settings/__init__.py | 1 + utils/settings/settings.py | 217 +++++++++++++++++++ 17 files changed, 560 insertions(+), 271 deletions(-) create mode 100644 configuration/config.ini create mode 100644 packages/qt_vditor/examples/sample.md create mode 100644 utils/settings/__init__.py create mode 100644 utils/settings/settings.py diff --git a/app2.py b/app2.py index 226e3271..862d0d93 100644 --- a/app2.py +++ b/app2.py @@ -65,7 +65,7 @@ os.environ['FORCE_QT_API'] = "1" from typing import List, Callable, Tuple, ClassVar from PySide2.QtCore import Signal, QTimer, Qt, QCoreApplication from PySide2.QtGui import QCloseEvent, QTextCursor, QResizeEvent, QMoveEvent, QFont, QIcon, QPixmap -from PySide2.QtWidgets import QApplication, QMessageBox, QSplashScreen, QStatusBar +from PySide2.QtWidgets import QApplication, QMessageBox, QSplashScreen, QStatusBar, QDialog, QVBoxLayout, QProgressBar import pmgwidgets pmgwidgets.in_unit_test = lambda: False @@ -76,7 +76,7 @@ from features.main_window import base from features.io.settings import Settings from features.io.settings import load_theme from features.interpretermanager.interpretermanager import InterpreterManagerWidget -from features.util.update import perform_update, UpdateTipClient +from features.util.update import UpdateTipClient from features.feedback import FeedbackClient from features.ui.widgets.controlpanel import PMPageExt from features.ui.pmwidgets import BaseMainWindow @@ -140,9 +140,8 @@ class MainWindow(BaseMainWindow): def __init__(self, parent=None): super().__init__(parent) - - t00 = time.time() settings = Settings() + t00 = time.time() self.main_option_form = base.OptionForm() self.project_wizard: base.ProjectWizardForm = None self.settings_changed_signal.connect(self.on_settings_changed) @@ -191,7 +190,8 @@ class MainWindow(BaseMainWindow): dw.setMaximumWidth(400) # 设置主题 ,组件都加载后再设置主题,否则可能有些组件不生效 - load_theme(settings['theme']) + settings = utils.get_settings_from_file("config.ini") + load_theme(settings.value("MAIN/THEME")) self.show() self.load_layout() @@ -200,7 +200,7 @@ class MainWindow(BaseMainWindow): self.on_main_window_shown() self.start_pmlocalserver() # 只要在插件加载完成之后启动就行,目前放在最后 - self.update_tip_client = UpdateTipClient() # 启动程序,检查更新,弹窗提醒 + self.update_tip_client = UpdateTipClient(True) # 启动程序,检查更新,弹窗提醒 t01 = time.time() logging.debug('Time Elapsed for loading main window contents: %f' % (t01 - t00)) @@ -219,7 +219,6 @@ class MainWindow(BaseMainWindow): a0.accept() self.delete_temporary_dock_windows() self.save_layout() # TODO:PySide2上存储布局有问题。 - Settings.get_instance().save() self.close_signal.emit() self.extensions_manager.stop() for k in self.dock_widgets.keys(): @@ -282,7 +281,12 @@ class MainWindow(BaseMainWindow): self.window_geometry_changed_signal.emit() def on_settings_changed(self): - load_theme(Settings.get_instance()['theme']) + """ + 当设置项发生改变时,加载这些设置项。 + Returns: + + """ + load_theme(utils.get_settings_from_file("config.ini").value("MAIN/THEME")) def delayed_call(self, time_ms: int, callback: Callable) -> None: """ @@ -368,7 +372,25 @@ class MainWindow(BaseMainWindow): """ 打开'检查更新'页面 """ - perform_update() + # perform_update() + dlg = QDialog() + dlg.setLayout(QVBoxLayout()) + proc = QProgressBar() + dlg.layout().addWidget(proc) + dlg.setWindowTitle("请稍等,正在进行更新检查") + proc.setRange(0, 0) + + def close(b): + if b: + dlg.close() + else: + dlg.close() + QMessageBox.information(self, "更新提示", "已经是最新版,无需更新!") + + self.update_tip_client = UpdateTipClient(False) + self.update_tip_client.thread.exist_update.connect(close) + + dlg.exec_() def main_install_update(self): closed = self.close() @@ -479,8 +501,9 @@ def main(test_function: Callable[[MainWindow], None] = None): splash.finish(window) if test_function is None: - # 展示快速启动窗口 - window.first_form_display() + # 展示快速启动窗口。只有在设置为True的情况下才显示起始页。 + if utils.get_settings_item_from_file("config.ini", "MAIN/SHOW_START_PAGE"): + window.first_form_display() else: test_function(window) logging.info('boot time elapsed:%f s' % (t1 - t0)) diff --git a/configuration/config.ini b/configuration/config.ini new file mode 100644 index 00000000..207edccc --- /dev/null +++ b/configuration/config.ini @@ -0,0 +1,8 @@ +[MAIN] +THEME = Fusion +LANGUAGE = zh_CN +PATH_OUTPUT = +PATH_WORKDIR = +INTERPRETER = d:/pyminer/python.exe +SHOW_START_PAGE = True +CHECK_UPDATE = True diff --git a/features/io/settings.py b/features/io/settings.py index 30b6c6d3..58eaf48b 100644 --- a/features/io/settings.py +++ b/features/io/settings.py @@ -1,4 +1,5 @@ """ +TODO:DEPRECATED。这个文件将被废弃! settings.py负责设置文件的输入输出。 Settings继承字典类,另外写了存储函数。 还有其他设置的函数 @@ -40,6 +41,7 @@ import platform from typing import Dict from PySide2.QtWidgets import QApplication + import qdarkstyle import utils @@ -49,7 +51,7 @@ logger = logging.getLogger(__name__) def get_pyminer_data_path() -> str: path = os.path.join(os.path.expanduser('~'), '.pyminer') if not os.path.exists(path): - os.mkdir(path) + os.makedirs(path) return path diff --git a/features/main_window/base.py b/features/main_window/base.py index 57d2f341..1a48a628 100644 --- a/features/main_window/base.py +++ b/features/main_window/base.py @@ -1,31 +1,27 @@ import os import sys -import time -import subprocess import webbrowser -from typing import Tuple, List +from typing import List -import qdarkstyle -from PySide2.QtCore import QPoint, QRectF -from PySide2.QtGui import QMouseEvent, QPainter, QLinearGradient -from PySide2.QtGui import QCloseEvent +from PySide2.QtCore import QPoint from PySide2.QtCore import Signal, Qt, QUrl, QPropertyAnimation -from PySide2.QtWidgets import QApplication, QListWidgetItem, QWizard, QHeaderView, QMessageBox +from PySide2.QtGui import QCloseEvent +from PySide2.QtGui import QMouseEvent from PySide2.QtWebEngineWidgets import * +from PySide2.QtWidgets import QListWidgetItem, QWizard, QMessageBox from PySide2.QtWidgets import QWidget, QDesktopWidget, QFileDialog, QApplication, QDialog -from pmgwidgets import PMGPanel -from features.ui.ui_option import Ui_Form as Option_Ui_Form -from features.ui.ui_appstore import Ui_Form as appStore_Ui_Form +import utils +from features.extensions.extensionlib.extension_lib import extension_lib +from features.io.settings import Settings from features.ui.ui_aboutme import Ui_Form as About_Ui_Form -from features.ui.ui_project_wizard import Ui_Wizard as Project_Ui_Form +from features.ui.ui_appstore import Ui_Form as appStore_Ui_Form from features.ui.ui_first_form import Ui_Form as first_Ui_Form -import utils +from features.ui.ui_option import Ui_Form as Option_Ui_Form +from features.ui.ui_project_wizard import Ui_Wizard as Project_Ui_Form +from pmgwidgets import PMGPanel from utils import get_main_window -from features.io.settings import Settings -from features.extensions.extensionlib.extension_lib import extension_lib - class OptionForm(QDialog, Option_Ui_Form): """ @@ -53,21 +49,12 @@ class OptionForm(QDialog, Option_Ui_Form): self.pushButton_cancel.clicked.connect(self.close) self.pushButton_ok.clicked.connect(self.close) self.pushButton_help.clicked.connect(self.get_help) - self.get_check_update() - - def get_check_update(self): - """是否启动检查更新""" - check_update = Settings.get_instance().get('check_update') - if check_update is None: - self.checkBox.setChecked(True) # 默认检查更新 - else: - self.checkBox.setChecked(check_update) def setup_ui(self): self.comboBox_9.setEnabled(False) self.comboBox_8.setEnabled(False) - self.checkBox_2.setEnabled(False) - self.checkBox_minitray.setEnabled(False) + # self.checkbox_show_startpage.setEnabled(False) + # self.checkBox_minitray.setEnabled(False) def add_settings_panel(self, text: str, settings_content: List): settings_widget = PMGPanel(views=settings_content) @@ -132,22 +119,31 @@ class OptionForm(QDialog, Option_Ui_Form): 从而每次重新显示的时候都可以刷新数据。 :return: """ - settings = Settings.get_instance() - if settings.get('theme') is not None: + settings = utils.get_settings_from_file("config.ini") + print(settings.value('MAIN/PATH_WORKDIR')) + if settings.value('MAIN/THEME') is not None: for i in range(self.comboBox_theme.count()): - if self.comboBox_theme.itemText(i) == settings['theme']: + if self.comboBox_theme.itemText(i) == settings.value('MAIN/THEME'): self.comboBox_theme.setCurrentIndex(i) - self.lineEdit_worksapce.setText(settings['work_dir']) + self.lineEdit_worksapce.setText(settings.value("MAIN/PATH_WORKDIR")) + self.lineEdit_output.setText(settings.value("MAIN/PATH_OUTPUT")) + + check_update = utils.get_settings_item_from_file("config.ini", "MAIN/CHECK_UPDATE") + show_start_page = utils.get_settings_item_from_file("config.ini", "MAIN/SHOW_START_PAGE") + self.check_box_check_upd_on_startup.setChecked(check_update) + self.checkbox_show_startpage.setChecked(show_start_page) + def refresh_settings(self): """ 窗口关闭时,调用此方法,刷新主界面设置项。 :return: """ - settings = Settings.get_instance() - settings['work_dir'] = self.lineEdit_worksapce.text() - settings['theme'] = self.comboBox_theme.currentText() - settings['check_update'] = self.checkBox.isChecked() # 设置是否检查更新 + utils.write_settings_item_to_file("config.ini", "MAIN/THEME", self.comboBox_theme.currentText()) + utils.write_settings_item_to_file("config.ini", "MAIN/PATH_WORKDIR", self.lineEdit_worksapce.text()) + utils.write_settings_item_to_file("config.ini", "MAIN/PATH_OUTPUT", self.lineEdit_output.text()) + utils.write_settings_item_to_file("config.ini", "MAIN/CHECK_UPDATE", self.check_box_check_upd_on_startup.isChecked()) + utils.write_settings_item_to_file("config.ini", "MAIN/SHOW_START_PAGE", self.checkbox_show_startpage.isChecked()) get_main_window().on_settings_changed() self.signal_settings_changed.emit() diff --git a/features/ui/ui_option.py b/features/ui/ui_option.py index 38cf32e7..13fc3958 100644 --- a/features/ui/ui_option.py +++ b/features/ui/ui_option.py @@ -46,50 +46,24 @@ class Ui_Form(object): self.verticalLayout_8.setObjectName(u"verticalLayout_8") self.formLayout_2 = QFormLayout() self.formLayout_2.setObjectName(u"formLayout_2") - self.label = QLabel(self.tabBase) - self.label.setObjectName(u"label") - - self.formLayout_2.setWidget(1, QFormLayout.LabelRole, self.label) - - self.label_15 = QLabel(self.tabBase) - self.label_15.setObjectName(u"label_15") - - self.formLayout_2.setWidget(2, QFormLayout.LabelRole, self.label_15) - - self.checkBox = QCheckBox(self.tabBase) - self.checkBox.setObjectName(u"checkBox") - self.checkBox.setChecked(True) - - self.formLayout_2.setWidget(5, QFormLayout.LabelRole, self.checkBox) - - self.checkBox_2 = QCheckBox(self.tabBase) - self.checkBox_2.setObjectName(u"checkBox_2") - - self.formLayout_2.setWidget(7, QFormLayout.LabelRole, self.checkBox_2) - - self.label_16 = QLabel(self.tabBase) - self.label_16.setObjectName(u"label_16") - - self.formLayout_2.setWidget(3, QFormLayout.LabelRole, self.label_16) - - self.comboBox_9 = QComboBox(self.tabBase) - self.comboBox_9.addItem("") - self.comboBox_9.addItem("") - self.comboBox_9.setObjectName(u"comboBox_9") + self.label_theme = QLabel(self.tabBase) + self.label_theme.setObjectName(u"label_theme") - self.formLayout_2.setWidget(3, QFormLayout.FieldRole, self.comboBox_9) + self.formLayout_2.setWidget(0, QFormLayout.LabelRole, self.label_theme) - self.label_11 = QLabel(self.tabBase) - self.label_11.setObjectName(u"label_11") + self.comboBox_theme = QComboBox(self.tabBase) + self.comboBox_theme.addItem("") + self.comboBox_theme.addItem("") + self.comboBox_theme.addItem("") + self.comboBox_theme.addItem("") + self.comboBox_theme.setObjectName(u"comboBox_theme") - self.formLayout_2.setWidget(4, QFormLayout.LabelRole, self.label_11) + self.formLayout_2.setWidget(0, QFormLayout.FieldRole, self.comboBox_theme) - self.comboBox_8 = QComboBox(self.tabBase) - self.comboBox_8.addItem("") - self.comboBox_8.addItem("") - self.comboBox_8.setObjectName(u"comboBox_8") + self.label = QLabel(self.tabBase) + self.label.setObjectName(u"label") - self.formLayout_2.setWidget(4, QFormLayout.FieldRole, self.comboBox_8) + self.formLayout_2.setWidget(1, QFormLayout.LabelRole, self.label) self.horizontalLayout_14 = QHBoxLayout() self.horizontalLayout_14.setObjectName(u"horizontalLayout_14") @@ -106,6 +80,11 @@ class Ui_Form(object): self.formLayout_2.setLayout(1, QFormLayout.FieldRole, self.horizontalLayout_14) + self.label_15 = QLabel(self.tabBase) + self.label_15.setObjectName(u"label_15") + + self.formLayout_2.setWidget(2, QFormLayout.LabelRole, self.label_15) + self.horizontalLayout_15 = QHBoxLayout() self.horizontalLayout_15.setObjectName(u"horizontalLayout_15") self.lineEdit_output = QLineEdit(self.tabBase) @@ -121,25 +100,41 @@ class Ui_Form(object): self.formLayout_2.setLayout(2, QFormLayout.FieldRole, self.horizontalLayout_15) - self.label_theme = QLabel(self.tabBase) - self.label_theme.setObjectName(u"label_theme") + self.label_16 = QLabel(self.tabBase) + self.label_16.setObjectName(u"label_16") - self.formLayout_2.setWidget(0, QFormLayout.LabelRole, self.label_theme) + self.formLayout_2.setWidget(3, QFormLayout.LabelRole, self.label_16) - self.comboBox_theme = QComboBox(self.tabBase) - self.comboBox_theme.addItem("") - self.comboBox_theme.addItem("") - self.comboBox_theme.addItem("") - self.comboBox_theme.addItem("") - self.comboBox_theme.setObjectName(u"comboBox_theme") + self.comboBox_9 = QComboBox(self.tabBase) + self.comboBox_9.addItem("") + self.comboBox_9.addItem("") + self.comboBox_9.setObjectName(u"comboBox_9") - self.formLayout_2.setWidget(0, QFormLayout.FieldRole, self.comboBox_theme) + self.formLayout_2.setWidget(3, QFormLayout.FieldRole, self.comboBox_9) - self.checkBox_minitray = QCheckBox(self.tabBase) - self.checkBox_minitray.setObjectName(u"checkBox_minitray") - self.checkBox_minitray.setChecked(True) + self.label_11 = QLabel(self.tabBase) + self.label_11.setObjectName(u"label_11") - self.formLayout_2.setWidget(6, QFormLayout.LabelRole, self.checkBox_minitray) + self.formLayout_2.setWidget(4, QFormLayout.LabelRole, self.label_11) + + self.comboBox_8 = QComboBox(self.tabBase) + self.comboBox_8.addItem("") + self.comboBox_8.addItem("") + self.comboBox_8.setObjectName(u"comboBox_8") + + self.formLayout_2.setWidget(4, QFormLayout.FieldRole, self.comboBox_8) + + self.check_box_check_upd_on_startup = QCheckBox(self.tabBase) + self.check_box_check_upd_on_startup.setObjectName(u"check_box_check_upd_on_startup") + self.check_box_check_upd_on_startup.setChecked(True) + + self.formLayout_2.setWidget(5, QFormLayout.LabelRole, self.check_box_check_upd_on_startup) + + self.checkbox_show_startpage = QCheckBox(self.tabBase) + self.checkbox_show_startpage.setObjectName(u"checkbox_show_startpage") + self.checkbox_show_startpage.setChecked(True) + + self.formLayout_2.setWidget(6, QFormLayout.LabelRole, self.checkbox_show_startpage) self.verticalLayout_8.addLayout(self.formLayout_2) @@ -354,7 +349,7 @@ class Ui_Form(object): self.retranslateUi(Form) - self.stackedWidget.setCurrentIndex(2) + self.stackedWidget.setCurrentIndex(0) self.tabWidget.setCurrentIndex(0) @@ -374,10 +369,16 @@ class Ui_Form(object): ___qlistwidgetitem2.setText(QCoreApplication.translate("Form", u"\u683c\u5f0f\u5316", None)); self.listWidget.setSortingEnabled(__sortingEnabled) + self.label_theme.setText(QCoreApplication.translate("Form", u"UI Theme", None)) + self.comboBox_theme.setItemText(0, QCoreApplication.translate("Form", u"Fusion", None)) + self.comboBox_theme.setItemText(1, QCoreApplication.translate("Form", u"Qdarkstyle", None)) + self.comboBox_theme.setItemText(2, QCoreApplication.translate("Form", u"windowsvista", None)) + self.comboBox_theme.setItemText(3, QCoreApplication.translate("Form", u"Windows", None)) + self.label.setText(QCoreApplication.translate("Form", u"Work Directory", None)) + self.toolButton_workspace.setText(QCoreApplication.translate("Form", u"...", None)) self.label_15.setText(QCoreApplication.translate("Form", u"Output Directory", None)) - self.checkBox.setText(QCoreApplication.translate("Form", u"Check upd on startup", None)) - self.checkBox_2.setText(QCoreApplication.translate("Form", u"Start with system", None)) + self.toolButton_output.setText(QCoreApplication.translate("Form", u"...", None)) self.label_16.setText(QCoreApplication.translate("Form", u"UI Language", None)) self.comboBox_9.setItemText(0, QCoreApplication.translate("Form", u"\u7b80\u4f53\u4e2d\u6587", None)) self.comboBox_9.setItemText(1, QCoreApplication.translate("Form", u"English", None)) @@ -386,15 +387,8 @@ class Ui_Form(object): self.comboBox_8.setItemText(0, QCoreApplication.translate("Form", u"utf-8", None)) self.comboBox_8.setItemText(1, QCoreApplication.translate("Form", u"gb2312", None)) - self.toolButton_workspace.setText(QCoreApplication.translate("Form", u"...", None)) - self.toolButton_output.setText(QCoreApplication.translate("Form", u"...", None)) - self.label_theme.setText(QCoreApplication.translate("Form", u"UI Theme", None)) - self.comboBox_theme.setItemText(0, QCoreApplication.translate("Form", u"Fusion", None)) - self.comboBox_theme.setItemText(1, QCoreApplication.translate("Form", u"Qdarkstyle", None)) - self.comboBox_theme.setItemText(2, QCoreApplication.translate("Form", u"windowsvista", None)) - self.comboBox_theme.setItemText(3, QCoreApplication.translate("Form", u"Windows", None)) - - self.checkBox_minitray.setText(QCoreApplication.translate("Form", u"Minimize to tray", None)) + self.check_box_check_upd_on_startup.setText(QCoreApplication.translate("Form", u"Check upd on startup", None)) + self.checkbox_show_startpage.setText(QCoreApplication.translate("Form", u"\u663e\u793a\u8d77\u59cb\u9875\u9762", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabBase), QCoreApplication.translate("Form", u"Basic", None)) self.checkBox_3.setText(QCoreApplication.translate("Form", u"Interlaced coloring", None)) self.label_10.setText(QCoreApplication.translate("Form", u"Table Header Background:", None)) diff --git a/features/ui/ui_option.ui b/features/ui/ui_option.ui index addaebe8..645ab651 100644 --- a/features/ui/ui_option.ui +++ b/features/ui/ui_option.ui @@ -44,7 +44,7 @@ - 2 + 0 @@ -75,79 +75,44 @@ - - - - Work Directory - - - - - - - Output Directory - - - - - - - Check upd on startup - - - true - - - - - - - Start with system - - - - - + + - UI Language + UI Theme - - + + - 简体中文 + Fusion - English + Qdarkstyle - - - - - - Encoding - - - - - - utf-8 + windowsvista - gb2312 + Windows + + + + Work Directory + + + @@ -162,6 +127,13 @@ + + + + Output Directory + + + @@ -176,41 +148,62 @@ - - + + - UI Theme + UI Language - - + + - Fusion + 简体中文 - Qdarkstyle + English + + + + + + Encoding + + + + + - windowsvista + utf-8 - Windows + gb2312 + + + + Check upd on startup + + + true + + + - + - Minimize to tray + 显示起始页面 true diff --git a/features/util/update.py b/features/util/update.py index 9c30689d..22aad5c8 100644 --- a/features/util/update.py +++ b/features/util/update.py @@ -11,7 +11,7 @@ from PySide2.QtCore import Qt, QThread, Signal from PySide2.QtWidgets import QProgressBar, QVBoxLayout, QLabel, QApplication, QDesktopWidget, QDialog, QHBoxLayout, \ QPushButton, QTableWidgetItem, QHeaderView, QTableView -from features.io.settings import Settings +import utils from features.util.check_update_ui import Ui_Dialog from features.util.make_update import should_be_recorded @@ -184,7 +184,6 @@ class UpdateClientThread(BaseUpdateThread): return if response.status_code == 200: local_path = self.root.joinpath(item) - # local_path = Path('D:/temp/temp').joinpath(item) if not local_path.parent.is_dir(): os.makedirs(local_path.parent) with open(local_path, 'wb') as f: @@ -208,23 +207,23 @@ class UpdateClientThread(BaseUpdateThread): class UpdateTipClient(Ui_Dialog): - def __init__(self): + def __init__(self, startup: bool): self.dialog = QDialog() self.setupUi(self.dialog) self.url = MD5_JSON_URL self.update_files_list = [] self.delete_files_list = [] self.root = Path(__file__).parent.parent.parent.parent - self.is_start_thread() + self.is_start_thread(startup) - def is_start_thread(self): + def is_start_thread(self, startup: bool): """ 根据根目录下是否存在.git目录,判断是否处于开发状态,开发状态不检查更新 根据设置界面检查更新checkbox是否为True,决定是否启动检查更新 """ if self.root.joinpath('.git').is_dir(): return - if Settings.get_instance().get('check_update'): + if not (startup and (not utils.get_settings_item_from_file("config.ini", "MAIN/CHECK_UPDATE"))): self.thread = UpdateTipThread(url=self.url) self.thread.update_files_list.connect(self.set_update_files_list) self.thread.delete_files_list.connect(self.set_delete_files_list) @@ -283,7 +282,6 @@ class UpdateTipClient(Ui_Dialog): def set_exist_update(self, flag): """ 存在更新则启动界面 - TODO:暂时不要启动这样的更新界面了。要更新的话,手动更新.因为现在设置项还没有做好。 """ if flag: self.init_gui() diff --git a/load_modules.py b/load_modules.py index 01602d0e..14542a2d 100644 --- a/load_modules.py +++ b/load_modules.py @@ -1,8 +1,11 @@ +import logging +import os + from PySide2.QtCore import QTranslator, QSettings from PySide2.QtGui import QFontDatabase from PySide2.QtWidgets import QApplication -from utils import * +from utils import get_root_dir, get_config_file_dir logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) @@ -18,14 +21,12 @@ def load_translator(app: QApplication): app.translator = QTranslator() app.translator2 = QTranslator() - settings = QSettings(os.path.join(get_root_dir(), "config.ini"), QSettings.IniFormat) + settings = QSettings(get_config_file_dir("config.ini"), QSettings.IniFormat) language = settings.value("MAIN/LANGUAGE") logger.debug("获取设置项MAIN/LANGUAGE: %s" % language) - print(get_root_dir()) path_lang = os.path.join(get_root_dir(), 'languages', '{}'.format(language), '{}.qm'.format(language)) logger.debug("翻译文件的路径:%s" % path_lang) - if os.path.isfile(path_lang): app.translator.load(path_lang) app.installTranslator(app.translator) diff --git a/packages/code_editor/codeeditor/tabwidget.py b/packages/code_editor/codeeditor/tabwidget.py index ea32224e..afe5f295 100644 --- a/packages/code_editor/codeeditor/tabwidget.py +++ b/packages/code_editor/codeeditor/tabwidget.py @@ -976,11 +976,9 @@ if __name__ == '__main__': w.setMinimumHeight(600) w.setup_ui() code_editor_root_directory = os.path.dirname(__file__) - # w.slot_new_script( - # '/home/hzy/Desktop/create_dataset.py') # os.path.join(code_editor_root_directory, 'tests', 'test_file.py')) w.slot_new_script(r'C:/Users/12957/documents/developing/Python/pyminer_workdir/app_designer.py') w.currentWidget().goto_line(5) - # w.on_work_dir_changed(r'C:\Users\12957\AppData') - # w.slot_new_script(r'c:/users/12957/desktop/test.md') - # w.on_work_dir_changed('c:/users/12957/desktop') + # w.on_work_dir_changed(r'') + # w.slot_new_script(r'') + # w.on_work_dir_changed('') sys.exit(app.exec_()) diff --git a/packages/qt_vditor/client.py b/packages/qt_vditor/client.py index 74dde821..2031bd97 100644 --- a/packages/qt_vditor/client.py +++ b/packages/qt_vditor/client.py @@ -1,11 +1,12 @@ +import json import os -from PySide2 import QtWidgets, QtCore -from PySide2.QtWebEngineWidgets import QWebEngineView -import sys import re +import sys import time + import requests -import json +from PySide2 import QtWidgets, QtCore +from PySide2.QtWebEngineWidgets import QWebEngineView class Window(QtWidgets.QDialog): @@ -80,6 +81,6 @@ class Window(QtWidgets.QDialog): if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) win = Window(url='http://127.0.0.1:5000/qt_vditor') - win.load_file(file_path='D:/pyminer/pyminer2/extensions/packages/pmagg/sample/sample_code.md') + win.load_file(file_path=os.path.join(os.path.dirname(__file__), "examples", "sample.md")) win.show() app.exec_() diff --git a/packages/qt_vditor/examples/sample.md b/packages/qt_vditor/examples/sample.md new file mode 100644 index 00000000..da6e237a --- /dev/null +++ b/packages/qt_vditor/examples/sample.md @@ -0,0 +1,7 @@ +# 这是一个Markdown文件的一级标题 +## 这是一个Markdown文件的二级标题 +```python +def func(): + print("Hello Vditor!") +func() +``` \ No newline at end of file diff --git a/pmgwidgets/utilities/platform/fileutils.py b/pmgwidgets/utilities/platform/fileutils.py index 757a5645..f681e9dd 100644 --- a/pmgwidgets/utilities/platform/fileutils.py +++ b/pmgwidgets/utilities/platform/fileutils.py @@ -1,4 +1,5 @@ import os + import chardet @@ -129,9 +130,5 @@ def copy_paste(source_path: str, target_path: str): if __name__ == '__main__': - # move_to_trash('C:/Users/12957/Desktop/1.jpg') - create_file_if_not_exist(r'c:/users/12957/Desktop/rwrweew/ddddd/ggwewe/aaaaaa/as.a') - create_file_if_not_exist(r'c:/users/12957/Desktop/rwrweew/ddddd/ggwewe/aaaaaa/aa.s') - print(get_parent_path(r'c:/users/12957/desktop', 2)) - print(load_json( - r'/pyminer2/extensions/packages/code_editor/customized/settings.json')) + print(get_parent_path(os.path.dirname(__file__), 2)) + print(load_json(r'/pyminer2/extensions/packages/code_editor/customized/settings.json')) diff --git a/pmlocalserver/server.py b/pmlocalserver/server.py index 9d86addd..e9370246 100644 --- a/pmlocalserver/server.py +++ b/pmlocalserver/server.py @@ -1,7 +1,7 @@ -from flask import Flask +import threading +from flask import Flask from flask_cors import CORS -import threading server = Flask(__name__, static_folder='static', static_url_path='/static') CORS(server, supports_credentials=True) # 解决跨域 diff --git a/utils/__init__.py b/utils/__init__.py index fcb4d50b..e03a1832 100644 --- a/utils/__init__.py +++ b/utils/__init__.py @@ -3,17 +3,10 @@ # # 通用工具,可以在全局进行调用。 -import os -import datetime -import logging import webbrowser +from typing import TYPE_CHECKING -from .path import ( - get_root_dir, - get_user_dir, - get_desktop_dir, - get_documents_dir, -) +from .debug import * from .environ import ( get_python_version, get_python_modules_directory, @@ -21,6 +14,17 @@ from .environ import ( getScriptsPath, getDesignerPath ) +from .io import * +from .path import ( + get_root_dir, + get_user_dir, + get_desktop_dir, + get_documents_dir, + get_pyminer_data_dir, + get_user_config_dir, + get_default_config_dir, + get_config_file_dir +) from .platform import ( is_windows_platform, is_mac_platform, @@ -28,13 +32,9 @@ from .platform import ( is_kde_desktop, is_gnome_desktop ) - -from .io import * -from .debug import * +from .settings import * from .ui import * -from typing import TYPE_CHECKING - if TYPE_CHECKING: import pmgui version = 'v2.1.0 Beta' @@ -81,46 +81,46 @@ def open_url(url): webbrowser.open_new_tab(url) -def unzip_file(zip_src: str, dst_dir: str): - """ - 解压文件 - Args: - zip_src: - dst_dir: - - Returns: - - """ - r = zipfile.is_zipfile(zip_src) - if r: - fz = zipfile.ZipFile(zip_src, 'r') - for file in fz.namelist(): - fz.extract(file, dst_dir) - else: - print('This is not zip') - - -def make_zip(src_path, zip_dist_path, root='', rules=None): - """ - 创建zip包 - Args: - src_path: - zip_dist_path: - root: - rules: - - Returns: - - """ - if rules is None: - rules = [] - z = zipfile.ZipFile(zip_dist_path, 'w', zipfile.ZIP_DEFLATED) - for dirpath, dirnames, filenames in os.walk(src_path): - relpath = os.path.relpath(dirpath, src_path) - if is_neglect_path(relpath, rules): - continue - fpath = os.path.relpath(dirpath, src_path) - for filename in filenames: - filepath = os.path.join(dirpath, filename) - z.write(filepath, os.path.join(root, fpath, filename)) - z.close() +# def unzip_file(zip_src: str, dst_dir: str): +# """ +# 解压文件 +# Args: +# zip_src: +# dst_dir: +# +# Returns: +# +# """ +# r = zipfile.is_zipfile(zip_src) +# if r: +# fz = zipfile.ZipFile(zip_src, 'r') +# for file in fz.namelist(): +# fz.extract(file, dst_dir) +# else: +# print('This is not zip') +# +# +# def make_zip(src_path, zip_dist_path, root='', rules=None): +# """ +# 创建zip包 +# Args: +# src_path: +# zip_dist_path: +# root: +# rules: +# +# Returns: +# +# """ +# if rules is None: +# rules = [] +# z = zipfile.ZipFile(zip_dist_path, 'w', zipfile.ZIP_DEFLATED) +# for dirpath, dirnames, filenames in os.walk(src_path): +# relpath = os.path.relpath(dirpath, src_path) +# if is_neglect_path(relpath, rules): +# continue +# fpath = os.path.relpath(dirpath, src_path) +# for filename in filenames: +# filepath = os.path.join(dirpath, filename) +# z.write(filepath, os.path.join(root, fpath, filename)) +# z.close() diff --git a/utils/path.py b/utils/path.py index dd93c327..fc36a962 100644 --- a/utils/path.py +++ b/utils/path.py @@ -3,9 +3,12 @@ # Get application path information # 获取应用路径信息 import os -import sys +import shutil + from PySide2.QtCore import QStandardPaths +from .settings import SETTINGS_FILES + def get_root_dir() -> str: """ @@ -121,21 +124,71 @@ def get_path_generic_cache() -> str: return path -def get_path_generic_config() -> str: - path = QStandardPaths.writableLocation(QStandardPaths.GenericConfigLocation) +# def get_path_generic_config() -> str: +# path = QStandardPaths.writableLocation(QStandardPaths.GenericConfigLocation) +# return path + + +# def get_path_app_data() -> str: +# path = QStandardPaths.writableLocation(QStandardPaths.AppDataLocation) +# return path + + +# def get_path_app_config() -> str: +# path = QStandardPaths.writableLocation(QStandardPaths.AppConfigLocation) +# return path + + +def get_path_app_local_data() -> str: + path = QStandardPaths.writableLocation(QStandardPaths.AppLocalDataLocation) return path -def get_path_app_data() -> str: - path = QStandardPaths.writableLocation(QStandardPaths.AppDataLocation) +def get_pyminer_data_dir() -> str: + """ + 获取PyMiner的数据文件存储位置,一般为.pyminer文件夹。 + Returns: + + """ + path = os.path.join(os.path.expanduser('~'), '.pyminer') + if not os.path.exists(path): + os.makedirs(path) return path -def get_path_app_config() -> str: - path = QStandardPaths.writableLocation(QStandardPaths.AppConfigLocation) +def get_default_config_dir() -> str: + """ + 获取PyMiner默认设置的位置。软件第一次运行时,从这里获取设置,并且将设置拷贝到用户目录下面。。 + Returns: + + """ + return os.path.join(get_root_dir(), "configuration") + + +def get_user_config_dir() -> str: + """ + 获取用户的设置目录。 .pyminer/pyminer_config + Returns: + + """ + path = os.path.join(get_pyminer_data_dir(), "pyminer_config") + if not os.path.exists(path): + os.makedirs(path) return path -def get_path_app_local_data() -> str: - path = QStandardPaths.writableLocation(QStandardPaths.AppLocalDataLocation) - return path \ No newline at end of file +def get_config_file_dir(filename: str) -> str: + """ + 获取设置文件的路径 + Args: + filename: + + Returns: + + """ + assert filename in SETTINGS_FILES + user_cfg_file_path = os.path.join(get_user_config_dir(), filename) + if not os.path.exists(user_cfg_file_path): + default_cfg_file_path = os.path.join(get_default_config_dir(), filename) + shutil.copy(default_cfg_file_path, user_cfg_file_path) + return user_cfg_file_path diff --git a/utils/settings/__init__.py b/utils/settings/__init__.py new file mode 100644 index 00000000..c70020d5 --- /dev/null +++ b/utils/settings/__init__.py @@ -0,0 +1 @@ +from .settings import * \ No newline at end of file diff --git a/utils/settings/settings.py b/utils/settings/settings.py new file mode 100644 index 00000000..6a56a907 --- /dev/null +++ b/utils/settings/settings.py @@ -0,0 +1,217 @@ +import ast +import json +import os +import shutil +import sys +from typing import Any + +from PySide2.QtCore import QSettings, QTranslator +from PySide2.QtGui import QFont +from PySide2.QtWidgets import QWidget, QMessageBox, QApplication, QFileDialog, QStyleFactory + +# from features.ui.base.Preferences import Ui_Form + +Ui_Form = object + +SETTINGS_FILES = {"config.ini"} + + +def get_settings_from_file(file_name: str) -> QSettings: + """ + 从文件中获取设置 + Args: + file_name: + + Returns: + + """ + from ..path import get_config_file_dir + return QSettings(get_config_file_dir(file_name), QSettings.IniFormat) + + +def get_settings_item_from_file(file_name: str, item: str) -> Any: + """ + 从文件中获取设置。如果用户目录下没有,就去默认目录下面寻找。 + 这样可以解决软件更新时引入的问题。 + 对于true、false型变量,都会认为是字符串型。 + 0,1,2,3等,会被认为是数值型。 + 对于 + Args: + file_name: + item: + + Returns: + + """ + assert file_name in SETTINGS_FILES + from ..path import get_user_config_dir, get_default_config_dir + user_cfg_file_path = os.path.join(get_user_config_dir(), file_name) + default_cfg_file_path = os.path.join(get_default_config_dir(), file_name) + if not os.path.exists(user_cfg_file_path): + shutil.copy(default_cfg_file_path, user_cfg_file_path) + val = QSettings(user_cfg_file_path, QSettings.IniFormat).value(item) + if val is None: + val = QSettings(default_cfg_file_path, QSettings.IniFormat).value(item) + assert val is not None, (default_cfg_file_path, item) + try: + val = ast.literal_eval(val) + except: + pass + return val + + +def write_settings_item_to_file(file_name: str, item: str, value: Any): + """ + 带有类型转换地写入 + + Args: + file_name: + item: + value: + + Returns: + + """ + assert file_name in SETTINGS_FILES + from ..path import get_config_file_dir + + value_str = "" + if isinstance(value,str): + value_str = value + elif isinstance(value, (list, dict, set)): + value_str = json.dumps(value) + else: + value_str = str(value) + QSettings(os.path.join(get_config_file_dir(file_name)), QSettings.IniFormat).setValue(item, value_str) + + +class Preferences(QWidget, Ui_Form): + def __init__(self): + super(Preferences, self).__init__() + self.setupUi(self) + + self.pushButton_ok.clicked.connect(self.save_settings) + self.toolButton_workspace.clicked.connect(self.change_workspace_path) + self.toolButton_output.clicked.connect(self.change_output_path) + self.comboBox_language.currentIndexChanged.connect(self.change_lang) + self.comboBox_theme.currentIndexChanged.connect(self.change_theme) + + # load settings + self.settings = QSettings("config.ini", QSettings.IniFormat) + self.theme = self.settings.value("MAIN/THEME") + self.language = self.settings.value("MAIN/LANGUAGE") + self.path_workspace = self.settings.value("MAIN/PATH_WORKDIR") + self.path_output = self.settings.value("MAIN/PATH_OUTPUT") + self.path_interpreter = self.settings.value("MAIN/INTERPRETER") + self.if_display_startpage = self.settings.value("MAIN/STARTPAGE") + + self.comboBox_theme.setCurrentText(self.theme) + self.lineEdit_worksapce.setText(self.path_workspace) + self.lineEdit_output.setText(self.path_output) + + # 设置语言 + if self.language == "zh_CN": + self.comboBox_language.setCurrentText("简体中文") + elif self.language == "en": + self.comboBox_language.setCurrentText("English") + + # 设置显示快速启动页 + if self.if_display_startpage == "True": + self.checkBox_startpage.setChecked(True) + else: + self.checkBox_startpage.setChecked(False) + + # 设置解释器路径 + if self.path_interpreter: + print(self.path_interpreter) + else: + self.path_interpreter = sys.executable + print(self.path_interpreter) + + # 设置工作目录 + if self.path_workspace: + self.lineEdit_worksapce.setText(self.path_workspace) + else: + self.path_workspace = os.path.join(get_documents_dir(), 'PyMiner Workspace') + self.lineEdit_worksapce.setText(self.path_workspace) + + # 设置输出目录 + if self.path_output: + self.lineEdit_output.setText(self.path_workspace) + else: + self.path_output = os.path.join(get_documents_dir(), 'PyMiner Workspace', 'output') + self.lineEdit_output.setText(self.path_output) + + def change_fontsize(self): + font = QFont() + font.setPointSize(int(self.spinBox.value())) + self.plainTextEdit.setFont(font) + + def save_settings(self): + + self.theme = self.comboBox_theme.currentText() + self.path_workspace = self.lineEdit_worksapce.text() + self.path_output = self.lineEdit_output.text() + self.interpreter = "d:/pyminer/python.exe" + + # 保存 语言设置 + + if self.comboBox_language.currentText() == "简体中文": + self.language = "zh_CN" + else: + self.language = "en" + + # 保存 是否显示‘快速启动页’ + if self.checkBox_startpage.isChecked(): + self.if_display_startpage = "True" + else: + self.if_display_startpage = "False" + + self.settings.setValue("MAIN/THEME", self.theme) + self.settings.setValue("MAIN/LANGUAGE", self.language) + self.settings.setValue("MAIN/PATH_WORKSPACE", self.path_workspace) + self.settings.setValue("MAIN/PATH_OUTPUT", self.path_output) + self.settings.setValue("MAIN/INTERPRETER", self.interpreter) + self.settings.setValue("MAIN/STARTPAGE", self.if_display_startpage) + + # if self.comboBox.currentText()=='简体中文': + # self.language ='zh_CN' + # else: + # self.language = 'English' + # self.settings.setValue("General/Language", self.language) + QMessageBox.information(self, "提示", "设置内容已保存,重启后生效!") + + def change_workspace_path(self): + dir_path = QFileDialog.getExistingDirectory(self, "Select a directory as workspace", os.path.expanduser('~')) + self.lineEdit_worksapce.setText(dir_path) + + def change_output_path(self): + dir_path = QFileDialog.getExistingDirectory(self, "Select a directory as output location", + os.path.expanduser('~')) + self.lineEdit_output.setText(dir_path) + + def change_lang(self): + if self.comboBox.currentText() == 'English': + trans = QTranslator() + trans.load('English.qm') + app.installTranslator(trans) + self.retranslateUi(self) + + else: + trans = QTranslator() + trans.load('zh_CN.qm') + app.installTranslator(trans) + self.retranslateUi(self) + + def change_theme(self): + if self.comboBox_theme.currentText() == "Fusion": + QApplication.setStyle(QStyleFactory.create("Fusion")) + else: + QApplication.setStyle(QStyleFactory.create("windowsvista")) + + +if __name__ == '__main__': + app = QApplication(sys.argv) + form = Preferences() + form.show() + sys.exit(app.exec_()) -- Gitee From 15dab71d7e5e0819583a55185bfda5b2bc541be7 Mon Sep 17 00:00:00 2001 From: hzy15610046011 <1295752786@qq.com> Date: Tue, 20 Apr 2021 18:24:12 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=A1=B9=E8=AF=BB=E5=8F=96=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复最新版Matplotlib中PMAgg DivergingNorm被废止的问题 更新了matplotlib的版本号。后面要求更新 --- app2.py | 6 +- configuration/config.ini | 10 ++ features/feedback.py | 30 +++--- features/main_window/base.py | 26 ++++- features/ui/ui_aboutme.py | 27 +++-- features/ui/ui_aboutme.ui | 17 ++-- packages/pmagg/ui/linestyles.py | 2 +- requirements.txt | 2 +- requirements_linux.txt | 2 +- requirements_mac.txt | 2 +- run_before_commit.py | 2 +- utils/__init__.py | 4 +- utils/settings/settings.py | 169 ++++---------------------------- 13 files changed, 97 insertions(+), 202 deletions(-) diff --git a/app2.py b/app2.py index 862d0d93..0b4c722c 100644 --- a/app2.py +++ b/app2.py @@ -153,7 +153,7 @@ class MainWindow(BaseMainWindow): self.resize(1920, 1080) # 设置主窗体标题 - self.setWindowTitle('PyMiner ' + utils.version) + self.setWindowTitle('PyMiner ' + utils.get_settings_item_from_file("config.ini", "INFO/VERSION", "default")) # 设置状态栏 self.statusBar = QStatusBar() @@ -372,13 +372,13 @@ class MainWindow(BaseMainWindow): """ 打开'检查更新'页面 """ - # perform_update() dlg = QDialog() dlg.setLayout(QVBoxLayout()) proc = QProgressBar() dlg.layout().addWidget(proc) dlg.setWindowTitle("请稍等,正在进行更新检查") - proc.setRange(0, 0) + dlg.setFixedWidth(500) + proc.setRange(0, 0) # 设置进度条忙 def close(b): if b: diff --git a/configuration/config.ini b/configuration/config.ini index 207edccc..9d3f49d8 100644 --- a/configuration/config.ini +++ b/configuration/config.ini @@ -6,3 +6,13 @@ PATH_WORKDIR = INTERPRETER = d:/pyminer/python.exe SHOW_START_PAGE = True CHECK_UPDATE = True + +[RUN] +EXTERNAL_INTERPRETERS = "{}" +CURRENT_INTERPRETER = + +[INFO] +VERSION = v2.1.4 Beta +WEBSITE = http://www.pyminer.com +AUTHOR = PyMiner Development Team +MAIL = team@py2cn.com diff --git a/features/feedback.py b/features/feedback.py index 1fe390dc..f4a8a035 100644 --- a/features/feedback.py +++ b/features/feedback.py @@ -4,41 +4,45 @@ # @Email : 2195932461@qq.com # @File : feedback.py # @Software: PyCharm -from PySide2.QtWidgets import QDialog,QTextEdit,QLabel,QVBoxLayout,QApplication,QPushButton,QMessageBox +import requests +from PySide2.QtWidgets import QDialog, QTextEdit, QLabel, QVBoxLayout, QApplication, QPushButton, QMessageBox + from features.settings import Setting -import requests,json + class FeedbackClient(QDialog): def __init__(self): super().__init__() - self.vbox=QVBoxLayout() + self.vbox = QVBoxLayout() self.setLayout(self.vbox) - self.text_edit=QTextEdit() + self.text_edit = QTextEdit() self.setWindowTitle(self.tr('Feedback')) - self.label=QLabel(self.tr('You can give feedback through issue on suggestions or problems encountered in use! (<200 words)')) - self.confirm_button=QPushButton(self.tr('confirm')) + self.label = QLabel( + self.tr('You can give feedback through issue on suggestions or problems encountered in use! (<200 words)')) + self.confirm_button = QPushButton(self.tr('confirm')) self.confirm_button.setFixedWidth(75) self.confirm_button.clicked.connect(self.post) self.vbox.addWidget(self.label) self.vbox.addWidget(self.text_edit) self.vbox.addWidget(self.confirm_button) setting = Setting() - self.version=setting.get_system_version() + self.version = setting.get_system_version() self.exec_() def post(self): - text=self.text_edit.toPlainText() - version=self.version + text = self.text_edit.toPlainText() + version = self.version url = 'http://www.pyminer.com/api/v1/feedback/' data = {'core': version, 'feedback': text} r = requests.post(url, data) - if r.status_code==201: - QMessageBox.about(self,self.tr('result'),self.tr('Submitted successfully!')) + if r.status_code == 201: + QMessageBox.about(self, self.tr('result'), self.tr('Submitted successfully!')) else: QMessageBox.warning(self, self.tr('result'), r.text, QMessageBox.Yes) if __name__ == '__main__': import sys - app=QApplication(sys.argv) - FeedbackClient() \ No newline at end of file + + app = QApplication(sys.argv) + FeedbackClient() diff --git a/features/main_window/base.py b/features/main_window/base.py index 1a48a628..602ef9f0 100644 --- a/features/main_window/base.py +++ b/features/main_window/base.py @@ -133,7 +133,6 @@ class OptionForm(QDialog, Option_Ui_Form): self.check_box_check_upd_on_startup.setChecked(check_update) self.checkbox_show_startpage.setChecked(show_start_page) - def refresh_settings(self): """ 窗口关闭时,调用此方法,刷新主界面设置项。 @@ -142,8 +141,10 @@ class OptionForm(QDialog, Option_Ui_Form): utils.write_settings_item_to_file("config.ini", "MAIN/THEME", self.comboBox_theme.currentText()) utils.write_settings_item_to_file("config.ini", "MAIN/PATH_WORKDIR", self.lineEdit_worksapce.text()) utils.write_settings_item_to_file("config.ini", "MAIN/PATH_OUTPUT", self.lineEdit_output.text()) - utils.write_settings_item_to_file("config.ini", "MAIN/CHECK_UPDATE", self.check_box_check_upd_on_startup.isChecked()) - utils.write_settings_item_to_file("config.ini", "MAIN/SHOW_START_PAGE", self.checkbox_show_startpage.isChecked()) + utils.write_settings_item_to_file("config.ini", "MAIN/CHECK_UPDATE", + self.check_box_check_upd_on_startup.isChecked()) + utils.write_settings_item_to_file("config.ini", "MAIN/SHOW_START_PAGE", + self.checkbox_show_startpage.isChecked()) get_main_window().on_settings_changed() self.signal_settings_changed.emit() @@ -206,10 +207,28 @@ class AppstoreForm(QWidget, appStore_Ui_Form): class AboutForm(QWidget, About_Ui_Form): + """ + 关于 弹出框 + + """ + def __init__(self): super(AboutForm, self).__init__() self.setupUi(self) self.center() + AUTHOR = utils.get_settings_item_from_file("config.ini", "INFO/AUTHOR", "default") + MAIL = utils.get_settings_item_from_file("config.ini", "INFO/MAIL", "default") + self.textedit_about.setMarkdown("""# PyMiner +PyMiner 是一款基于Python的开源、跨平台数据分析环境。它以方便Python初学者为己任,在Python的知识理论和工作实践之间搭建桥梁,竭诚为初学者服务。 +- PyMiner开箱即用,大大减少配置解释器环境的繁琐性。不仅提供了编程运行的功能,还能够以交互式的形式进行常见的数据分析操作,减少代码编写和文档查阅的时间。 +- PyMiner通过加载各种插件实现不同的需求,开发者可以通过编写插件,将PyMiner扩展的更强大、更趁手,甚至创建一番自己的商用程序。 +- PyMiner提供面向新手的快速入门教程,教程正由开发团队编写中。 +- 我们诚挚希望与Python培训或教育机构/个人合作,让我们的产品帮助到更多学习Python的人。 + +作者:{AUTHOR} + +邮箱:{MAIL} +""".format(AUTHOR=AUTHOR, MAIL=MAIL)) self.main_about_display() @@ -236,6 +255,7 @@ class AboutForm(QWidget, About_Ui_Form): system_info = '系统信息: ' + platform.platform() + ' ' + platform.architecture()[0] cpu_info = 'CPU信息: ' + platform.processor() self.feedback.setPlainText(python_info + '\n' + system_info + '\n' + cpu_info) + self.label_version_show.setText(utils.get_settings_item_from_file("config.ini", "INFO/VERSION", "default")) class ProjectWizardForm(QWizard, Project_Ui_Form): diff --git a/features/ui/ui_aboutme.py b/features/ui/ui_aboutme.py index df648fe9..878455db 100644 --- a/features/ui/ui_aboutme.py +++ b/features/ui/ui_aboutme.py @@ -47,6 +47,7 @@ class Ui_Form(object): font1.setFamily(u"Microsoft YaHei UI") font1.setPointSize(24) font1.setBold(True) + font1.setWeight(75) self.label.setFont(font1) self.label.setScaledContents(True) self.label.setAlignment(Qt.AlignCenter) @@ -62,12 +63,12 @@ class Ui_Form(object): self.horizontalLayout.addWidget(self.label_2) - self.label_6 = QLabel(Form) - self.label_6.setObjectName(u"label_6") - self.label_6.setFont(font2) - self.label_6.setAlignment(Qt.AlignBottom|Qt.AlignHCenter) + self.label_version_show = QLabel(Form) + self.label_version_show.setObjectName(u"label_version_show") + self.label_version_show.setFont(font2) + self.label_version_show.setAlignment(Qt.AlignBottom|Qt.AlignHCenter) - self.horizontalLayout.addWidget(self.label_6) + self.horizontalLayout.addWidget(self.label_version_show) self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) @@ -88,12 +89,12 @@ class Ui_Form(object): self.verticalLayout_2.setSpacing(0) self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) - self.plainTextEdit = QPlainTextEdit(self.tab) - self.plainTextEdit.setObjectName(u"plainTextEdit") - self.plainTextEdit.setFont(font3) - self.plainTextEdit.setFrameShape(QFrame.NoFrame) + self.textedit_about = QTextEdit(self.tab) + self.textedit_about.setObjectName(u"textedit_about") + self.textedit_about.setFont(font3) + self.textedit_about.setFrameShape(QFrame.NoFrame) - self.verticalLayout_2.addWidget(self.plainTextEdit) + self.verticalLayout_2.addWidget(self.textedit_about) self.tabWidget.addTab(self.tab, "") self.tab_2 = QWidget() @@ -163,11 +164,7 @@ class Ui_Form(object): self.label_3.setText("") self.label.setText(QCoreApplication.translate("Form", u"PyMiner", None)) self.label_2.setText(QCoreApplication.translate("Form", u"Version:", None)) - self.label_6.setText(QCoreApplication.translate("Form", u"v2.0 Beta", None)) - self.plainTextEdit.setPlainText(QCoreApplication.translate("Form", u"PyMiner is a mathematical tool based on Python. It provides solutions to various of problems by loading different plugins. \n" -"\n" -"Author\uff1aPyMiner Development Team\n" -"E-Mail\uff1ateam@py2cn.com", None)) + self.label_version_show.setText(QCoreApplication.translate("Form", u"v2.0 Beta", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QCoreApplication.translate("Form", u"About", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), QCoreApplication.translate("Form", u"System", None)) self.plainTextEdit_2.setPlainText(QCoreApplication.translate("Form", u"\u4faf\u5c55\u610f\n" diff --git a/features/ui/ui_aboutme.ui b/features/ui/ui_aboutme.ui index d5ff0507..747bd4a4 100644 --- a/features/ui/ui_aboutme.ui +++ b/features/ui/ui_aboutme.ui @@ -64,7 +64,7 @@ - :/logo/icons/logo.png + :/logo/icons/logo.png true @@ -77,6 +77,7 @@ Microsoft YaHei UI 24 + 75 true @@ -107,7 +108,7 @@ - + 黑体 @@ -168,7 +169,7 @@ 0 - + 黑体 @@ -178,12 +179,6 @@ QFrame::NoFrame - - PyMiner is a mathematical tool based on Python. It provides solutions to various of problems by loading different plugins. - -Author:PyMiner Development Team -E-Mail:team@py2cn.com - @@ -282,7 +277,7 @@ houxinluo - :/images/images/weixin.png + :/images/images/weixin.png true @@ -295,7 +290,7 @@ houxinluo - :/images/images/zhifubao.png + :/images/images/zhifubao.png true diff --git a/packages/pmagg/ui/linestyles.py b/packages/pmagg/ui/linestyles.py index 9689a82f..f59b5dc3 100644 --- a/packages/pmagg/ui/linestyles.py +++ b/packages/pmagg/ui/linestyles.py @@ -3,7 +3,7 @@ # @Author : 别着急慢慢来 # @FileName: linestyles.py # matplotlib中的常见颜色 -from matplotlib.colors import LogNorm, NoNorm, BoundaryNorm, DivergingNorm, PowerNorm, SymLogNorm, TwoSlopeNorm, \ +from matplotlib.colors import LogNorm, NoNorm, BoundaryNorm, PowerNorm, SymLogNorm, TwoSlopeNorm, \ Normalize languages = ['en', 'zh_CN'] diff --git a/requirements.txt b/requirements.txt index 6f0eae7e..cf5d9a0d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ jdcal>=1.4.1 joblib>=0.16.0 kiwisolver>=1.2.0 numpy==1.19.3 -matplotlib>=3.3.1 +matplotlib>=3.4.1 openpyxl>=3.0.4 xlrd>=1.2.0 pandas>=1.1.1 diff --git a/requirements_linux.txt b/requirements_linux.txt index 0ebaca10..aa3b7350 100644 --- a/requirements_linux.txt +++ b/requirements_linux.txt @@ -6,7 +6,7 @@ helpdev>=0.7.1 jdcal>=1.4.1 joblib>=0.16.0 kiwisolver>=1.2.0 -matplotlib>=3.3.1 +matplotlib>=3.4.1 numpy==1.19.1 openpyxl>=3.0.4 pandas>=1.1.1 diff --git a/requirements_mac.txt b/requirements_mac.txt index fa5b0d70..9c625abe 100644 --- a/requirements_mac.txt +++ b/requirements_mac.txt @@ -5,7 +5,7 @@ helpdev>=0.7.1 jdcal>=1.4.1 joblib>=0.16.0 kiwisolver>=1.2.0 -matplotlib>=3.3.1 +matplotlib>=3.4.1 numpy==1.19.1 openpyxl>=3.0.4 pandas>=1.1.1 diff --git a/run_before_commit.py b/run_before_commit.py index 16b7e903..855bf193 100644 --- a/run_before_commit.py +++ b/run_before_commit.py @@ -9,4 +9,4 @@ import sys from utils import get_root_dir os.system(f"{sys.executable} {os.path.join(get_root_dir(), 'features', 'util', 'make_update.py')}") -print("已经运行完成,现在可以提交了。") +print("已经运行完成。现在还需要进行一次更新测试,确认已是最新版本,便可以提交到主分支了。") diff --git a/utils/__init__.py b/utils/__init__.py index e03a1832..47fefc0f 100644 --- a/utils/__init__.py +++ b/utils/__init__.py @@ -4,7 +4,6 @@ # 通用工具,可以在全局进行调用。 import webbrowser -from typing import TYPE_CHECKING from .debug import * from .environ import ( @@ -37,7 +36,7 @@ from .ui import * if TYPE_CHECKING: import pmgui -version = 'v2.1.0 Beta' +# version = 'v2.1.0 Beta' 这里原有version ,但是考虑到这些信息写在静态文件中较好,所以就写在了文件中。 _application = None _root_dir = None @@ -80,7 +79,6 @@ def open_url(url): except Exception as e: webbrowser.open_new_tab(url) - # def unzip_file(zip_src: str, dst_dir: str): # """ # 解压文件 diff --git a/utils/settings/settings.py b/utils/settings/settings.py index 6a56a907..ceb1a2a1 100644 --- a/utils/settings/settings.py +++ b/utils/settings/settings.py @@ -1,13 +1,9 @@ import ast -import json import os import shutil -import sys from typing import Any -from PySide2.QtCore import QSettings, QTranslator -from PySide2.QtGui import QFont -from PySide2.QtWidgets import QWidget, QMessageBox, QApplication, QFileDialog, QStyleFactory +from PySide2.QtCore import QSettings # from features.ui.base.Preferences import Ui_Form @@ -29,28 +25,31 @@ def get_settings_from_file(file_name: str) -> QSettings: return QSettings(get_config_file_dir(file_name), QSettings.IniFormat) -def get_settings_item_from_file(file_name: str, item: str) -> Any: +def get_settings_item_from_file(file_name: str, item: str, mode="user") -> Any: """ 从文件中获取设置。如果用户目录下没有,就去默认目录下面寻找。 这样可以解决软件更新时引入的问题。 - 对于true、false型变量,都会认为是字符串型。 - 0,1,2,3等,会被认为是数值型。 - 对于 + 在此时会调用ast.literal_eval函数进行数据类型转换。 Args: file_name: item: + mode: 两种选项,有user和default。 Returns: """ + assert mode in {"user", "default"} assert file_name in SETTINGS_FILES - from ..path import get_user_config_dir, get_default_config_dir + from utils.path import get_user_config_dir, get_default_config_dir user_cfg_file_path = os.path.join(get_user_config_dir(), file_name) default_cfg_file_path = os.path.join(get_default_config_dir(), file_name) - if not os.path.exists(user_cfg_file_path): - shutil.copy(default_cfg_file_path, user_cfg_file_path) - val = QSettings(user_cfg_file_path, QSettings.IniFormat).value(item) - if val is None: + if mode == "user": + if not os.path.exists(user_cfg_file_path): + shutil.copy(default_cfg_file_path, user_cfg_file_path) + val = QSettings(user_cfg_file_path, QSettings.IniFormat).value(item) + if val is None: + val = QSettings(default_cfg_file_path, QSettings.IniFormat).value(item) + else: val = QSettings(default_cfg_file_path, QSettings.IniFormat).value(item) assert val is not None, (default_cfg_file_path, item) try: @@ -62,7 +61,9 @@ def get_settings_item_from_file(file_name: str, item: str) -> Any: def write_settings_item_to_file(file_name: str, item: str, value: Any): """ - 带有类型转换地写入 + 带有类型转换地写入。 + 一般的,设置类型只能是 + int,float,str以及由他们repr之后组成的结果。 Args: file_name: @@ -73,145 +74,15 @@ def write_settings_item_to_file(file_name: str, item: str, value: Any): """ assert file_name in SETTINGS_FILES - from ..path import get_config_file_dir + from utils.path import get_config_file_dir value_str = "" - if isinstance(value,str): + if isinstance(value, str): value_str = value - elif isinstance(value, (list, dict, set)): - value_str = json.dumps(value) else: - value_str = str(value) + value_str = repr(value) QSettings(os.path.join(get_config_file_dir(file_name)), QSettings.IniFormat).setValue(item, value_str) -class Preferences(QWidget, Ui_Form): - def __init__(self): - super(Preferences, self).__init__() - self.setupUi(self) - - self.pushButton_ok.clicked.connect(self.save_settings) - self.toolButton_workspace.clicked.connect(self.change_workspace_path) - self.toolButton_output.clicked.connect(self.change_output_path) - self.comboBox_language.currentIndexChanged.connect(self.change_lang) - self.comboBox_theme.currentIndexChanged.connect(self.change_theme) - - # load settings - self.settings = QSettings("config.ini", QSettings.IniFormat) - self.theme = self.settings.value("MAIN/THEME") - self.language = self.settings.value("MAIN/LANGUAGE") - self.path_workspace = self.settings.value("MAIN/PATH_WORKDIR") - self.path_output = self.settings.value("MAIN/PATH_OUTPUT") - self.path_interpreter = self.settings.value("MAIN/INTERPRETER") - self.if_display_startpage = self.settings.value("MAIN/STARTPAGE") - - self.comboBox_theme.setCurrentText(self.theme) - self.lineEdit_worksapce.setText(self.path_workspace) - self.lineEdit_output.setText(self.path_output) - - # 设置语言 - if self.language == "zh_CN": - self.comboBox_language.setCurrentText("简体中文") - elif self.language == "en": - self.comboBox_language.setCurrentText("English") - - # 设置显示快速启动页 - if self.if_display_startpage == "True": - self.checkBox_startpage.setChecked(True) - else: - self.checkBox_startpage.setChecked(False) - - # 设置解释器路径 - if self.path_interpreter: - print(self.path_interpreter) - else: - self.path_interpreter = sys.executable - print(self.path_interpreter) - - # 设置工作目录 - if self.path_workspace: - self.lineEdit_worksapce.setText(self.path_workspace) - else: - self.path_workspace = os.path.join(get_documents_dir(), 'PyMiner Workspace') - self.lineEdit_worksapce.setText(self.path_workspace) - - # 设置输出目录 - if self.path_output: - self.lineEdit_output.setText(self.path_workspace) - else: - self.path_output = os.path.join(get_documents_dir(), 'PyMiner Workspace', 'output') - self.lineEdit_output.setText(self.path_output) - - def change_fontsize(self): - font = QFont() - font.setPointSize(int(self.spinBox.value())) - self.plainTextEdit.setFont(font) - - def save_settings(self): - - self.theme = self.comboBox_theme.currentText() - self.path_workspace = self.lineEdit_worksapce.text() - self.path_output = self.lineEdit_output.text() - self.interpreter = "d:/pyminer/python.exe" - - # 保存 语言设置 - - if self.comboBox_language.currentText() == "简体中文": - self.language = "zh_CN" - else: - self.language = "en" - - # 保存 是否显示‘快速启动页’ - if self.checkBox_startpage.isChecked(): - self.if_display_startpage = "True" - else: - self.if_display_startpage = "False" - - self.settings.setValue("MAIN/THEME", self.theme) - self.settings.setValue("MAIN/LANGUAGE", self.language) - self.settings.setValue("MAIN/PATH_WORKSPACE", self.path_workspace) - self.settings.setValue("MAIN/PATH_OUTPUT", self.path_output) - self.settings.setValue("MAIN/INTERPRETER", self.interpreter) - self.settings.setValue("MAIN/STARTPAGE", self.if_display_startpage) - - # if self.comboBox.currentText()=='简体中文': - # self.language ='zh_CN' - # else: - # self.language = 'English' - # self.settings.setValue("General/Language", self.language) - QMessageBox.information(self, "提示", "设置内容已保存,重启后生效!") - - def change_workspace_path(self): - dir_path = QFileDialog.getExistingDirectory(self, "Select a directory as workspace", os.path.expanduser('~')) - self.lineEdit_worksapce.setText(dir_path) - - def change_output_path(self): - dir_path = QFileDialog.getExistingDirectory(self, "Select a directory as output location", - os.path.expanduser('~')) - self.lineEdit_output.setText(dir_path) - - def change_lang(self): - if self.comboBox.currentText() == 'English': - trans = QTranslator() - trans.load('English.qm') - app.installTranslator(trans) - self.retranslateUi(self) - - else: - trans = QTranslator() - trans.load('zh_CN.qm') - app.installTranslator(trans) - self.retranslateUi(self) - - def change_theme(self): - if self.comboBox_theme.currentText() == "Fusion": - QApplication.setStyle(QStyleFactory.create("Fusion")) - else: - QApplication.setStyle(QStyleFactory.create("windowsvista")) - - if __name__ == '__main__': - app = QApplication(sys.argv) - form = Preferences() - form.show() - sys.exit(app.exec_()) + print(get_settings_item_from_file("config.ini", "RUN/EXTERNAL_INTERPRETERS")) -- Gitee From 43df2db9e779949e8b9f86379bbd7553e800e6cf Mon Sep 17 00:00:00 2001 From: hzy15610046011 <1295752786@qq.com> Date: Tue, 20 Apr 2021 21:36:23 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=E9=A2=84=E7=95=99=E4=BA=86=E8=A7=A3?= =?UTF-8?q?=E9=87=8A=E5=99=A8=E6=9B=B4=E6=8D=A2=E5=85=B6=E4=BB=96=E8=A7=A3?= =?UTF-8?q?=E9=87=8A=E5=99=A8=E7=9A=84=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pmgwidgets/widgets/basic/others/console.py | 28 +++++++++++++++++++--- run_before_commit.py | 10 ++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/pmgwidgets/widgets/basic/others/console.py b/pmgwidgets/widgets/basic/others/console.py index 8cb374e4..90f96258 100644 --- a/pmgwidgets/widgets/basic/others/console.py +++ b/pmgwidgets/widgets/basic/others/console.py @@ -40,8 +40,30 @@ class ConsoleInitThread(QObject): def run(self): self.mutex.lock() - kernel_manager = QtKernelManager(kernel_name='python3') - kernel_manager.start_kernel() + + class NewKernelManager(QtKernelManager): + def start_kernel(self, path: str, **kw): + """Starts a kernel on this host in a separate process. + + If random ports (port=0) are being used, this method must be called + before the channels are created. + + Parameters + ---------- + `**kw` : optional + keyword arguments that are passed down to build the kernel_cmd + and launching the kernel (e.g. Popen kwargs). + """ + kernel_cmd, kw = self.pre_start_kernel(**kw) + kernel_cmd[0] = path + print("kernel_cmd", kernel_cmd) + # launch the kernel subprocess + self.log.debug("Starting kernel: %s", kernel_cmd) + self.kernel = self._launch_kernel(kernel_cmd, **kw) + self.post_start_kernel(**kw) + + kernel_manager = NewKernelManager(kernel_name='python3') + kernel_manager.start_kernel(path=sys.executable) # 指定使用哪一个Python的解释器。 kernel_client = kernel_manager.client() kernel_client.start_channels() @@ -311,7 +333,7 @@ if __name__ == '__main__': cgitb.enable(format='text') app = QApplication([]) - os.environ['IPYTHON_AS_PYMINER_NODE'] = '1' + # os.environ['IPYTHON_AS_PYMINER_NODE'] = '1' PMGIpythonConsole.install_translator() w = PMGIpythonConsole() w.show() diff --git a/run_before_commit.py b/run_before_commit.py index 855bf193..7440b2e1 100644 --- a/run_before_commit.py +++ b/run_before_commit.py @@ -1,6 +1,16 @@ """ 这个文件需要在提交之前运行,从而正确的生成更新包。 +在更新之后,需要检查: +1、最新的版本启动后,是否还会提示要更新。如果是,那么说明可能文件存在错误,或者并未正确执行此文件。 +2、最新打包的版本,其中是否因为某些包的更新而发生错误。典型例子就是Matplotlib升级成3.4.1版本之后,废止了旧的某个类,导致PMAgg不能运行。 + +还有一些问题: +是否需要发布大版本更新的提示?比如,当版本更新中包含pip包版本升级的时候,是否需要提示用户? +如何处理用户升级解释器中包的问题?是否要提示,默认解释器不得安装requirements.txt中已有的包? + +是否需要支持切换解释器的工作空间? + """ import os -- Gitee From e6fbed6dc8875b447e0f87831ffe829c8c7ed6c0 Mon Sep 17 00:00:00 2001 From: hzy15610046011 <1295752786@qq.com> Date: Wed, 21 Apr 2021 09:24:23 +0800 Subject: [PATCH 04/14] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A7=A3=E9=87=8A?= =?UTF-8?q?=E5=99=A8=E6=97=A0=E6=B3=95=E8=BF=9E=E6=8E=A5=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/ipython_console/README.md | 0 packages/ipython_console/initialize.py | 65 ++++++++++++------- packages/ipython_console/ipythonqtconsole.py | 4 +- .../requirements_ipython_node.txt | 4 ++ pmgwidgets/widgets/basic/others/console.py | 37 ++++------- pyminer_comm/base/datadesc.py | 26 +++++--- 6 files changed, 79 insertions(+), 57 deletions(-) create mode 100644 packages/ipython_console/README.md create mode 100644 packages/ipython_console/requirements_ipython_node.txt diff --git a/packages/ipython_console/README.md b/packages/ipython_console/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/ipython_console/initialize.py b/packages/ipython_console/initialize.py index fd1f9dd3..700d646b 100644 --- a/packages/ipython_console/initialize.py +++ b/packages/ipython_console/initialize.py @@ -7,23 +7,30 @@ import types import typing -import matplotlib.pyplot as plt -import numpy as np -import pandas as pd -import scipy.integrate -import scipy.stats - -__packages = [np, plt, pd, scipy.integrate, scipy.stats] -from IPython.core.magic import register_line_cell_magic -from core import * from pyminer_comm import modify_settings, set_data_desc_dic from pyminer_comm.base import dict_to_b64, b64_to_dict, dict_to_pickle, pickle_to_dict, DataDesc, is_big_variable, \ NoPreviewError +try: + import matplotlib.pyplot as plt + import numpy as np + import pandas as pd + import scipy.integrate + import scipy.stats + from core import * + + __packages = [np, plt, pd, scipy.integrate, scipy.stats] +except Exception as e: + import traceback + + traceback.print_exc() + if typing.TYPE_CHECKING: from IPython.core.interactiveshell import InteractiveShell from IPython.core.getipython import get_ipython +from IPython.core.magic import register_line_cell_magic + __ip: 'InteractiveShell' = get_ipython() __ip.builtin_vars = [__k for __k in globals().keys()] # 内置保留变量,不可删除或者清空。 @@ -51,31 +58,43 @@ def __init_server(): server = Flask('ipython_data_server') __ip = get_ipython() __ip.shms = {} + log.debug("started server!") def get_preview(var: typing.Any): if is_big_variable(var): - if isinstance(var, pd.DataFrame): - if var.shape[0] > DataDesc.max_pandas_rows: - return var.iloc[:DataDesc.max_pandas_rows, :] - else: - return var + if isinstance(var, (int, float, complex)): + return var + if isinstance(var, (list, tuple)): + return var[:DataDesc.max_len] elif isinstance(var, str): if len(var) > DataDesc.max_str_len: return var[:DataDesc.max_str_len] else: return var - elif isinstance(var, (list, tuple)): - return var[:DataDesc.max_len] - elif isinstance(var, np.ndarray): - if is_big_variable(var): - return NoPreviewError( - 'Big numpy.ndarray with shape: %s, dtype:%s, memory usage: %s MB, cannot be viewed.' - % (repr(var.shape), repr(var.dtype), repr(var.nbytes / 1024 / 1024))) - else: - return var + try: + if isinstance(var, pd.DataFrame): + if var.shape[0] > DataDesc.max_pandas_rows: + return var.iloc[:DataDesc.max_pandas_rows, :] + else: + return var + + if isinstance(var, np.ndarray): + if is_big_variable(var): + return NoPreviewError( + 'Big numpy.ndarray with shape: %s, dtype:%s, memory usage: %s MB, cannot be viewed.' + % (repr(var.shape), repr(var.dtype), repr(var.nbytes / 1024 / 1024))) + else: + return var + + except Exception as e: + return e + + else: return NoPreviewError('Big Variable typed %s cannot be viewed.' % (type(var))) # 无法产生预览视图。 + else: + return repr(var) def write_log(arg): if os.path.exists(r'c:\users\hzy\Desktop\log.txt'): diff --git a/packages/ipython_console/ipythonqtconsole.py b/packages/ipython_console/ipythonqtconsole.py index 3ea9eec9..bc453f68 100644 --- a/packages/ipython_console/ipythonqtconsole.py +++ b/packages/ipython_console/ipythonqtconsole.py @@ -12,8 +12,9 @@ import os from typing import Tuple import time from pmgwidgets import PMDockObject, get_ipython_console_class, in_unit_test +from pmgwidgets.widgets.basic.others.console import PMGIpythonConsole from PySide2.QtWidgets import QApplication -PMGIpythonConsole = get_ipython_console_class() +# PMGIpythonConsole = get_ipython_console_class() if QApplication.instance() is not None: PMGIpythonConsole.install_translator() @@ -61,7 +62,6 @@ class ConsoleWidget(PMGIpythonConsole, PMDockObject): pwd = pwd.replace('\\', '\\\\') from utils import get_root_dir cmd = 'import sys;sys.path.append(r\'%s\')' % get_root_dir() - print(cmd) self.execute_command(cmd, True, '') cdcmd = 'import os;os.chdir(\'%s\')' % pwd # 启动时切换到当前工作路径。 self.execute_command(cdcmd, True, '') diff --git a/packages/ipython_console/requirements_ipython_node.txt b/packages/ipython_console/requirements_ipython_node.txt new file mode 100644 index 00000000..92f07469 --- /dev/null +++ b/packages/ipython_console/requirements_ipython_node.txt @@ -0,0 +1,4 @@ +cloudpickle +Flask +ipykernel +ipython diff --git a/pmgwidgets/widgets/basic/others/console.py b/pmgwidgets/widgets/basic/others/console.py index 90f96258..831ea38e 100644 --- a/pmgwidgets/widgets/basic/others/console.py +++ b/pmgwidgets/widgets/basic/others/console.py @@ -8,8 +8,9 @@ Created on 2020/8/24 @file: console.py @description: Console Widget """ - +import logging import os +import sys from typing import Tuple, Dict, Callable from PySide2.QtCore import QObject, Signal, QThread, QWaitCondition, QMutex, QPoint, QCoreApplication, QTranslator, \ @@ -29,6 +30,10 @@ default_dark_style_sheet = default_dark_style_template % dict( bgcolor='#19232d', fgcolor='white', select="#ccc") default_dark_syntax_style = 'monokai' # 'default' +logging.basicConfig(stream=sys.stderr) +logger = logging.getLogger(__name__) +logger.setLevel(logging.DEBUG) + class ConsoleInitThread(QObject): initialized = Signal(object, object) @@ -40,30 +45,13 @@ class ConsoleInitThread(QObject): def run(self): self.mutex.lock() + kernel_manager = QtKernelManager(kernel_name="python3") + logger.debug("installed kernel start method") - class NewKernelManager(QtKernelManager): - def start_kernel(self, path: str, **kw): - """Starts a kernel on this host in a separate process. - - If random ports (port=0) are being used, this method must be called - before the channels are created. - - Parameters - ---------- - `**kw` : optional - keyword arguments that are passed down to build the kernel_cmd - and launching the kernel (e.g. Popen kwargs). - """ - kernel_cmd, kw = self.pre_start_kernel(**kw) - kernel_cmd[0] = path - print("kernel_cmd", kernel_cmd) - # launch the kernel subprocess - self.log.debug("Starting kernel: %s", kernel_cmd) - self.kernel = self._launch_kernel(kernel_cmd, **kw) - self.post_start_kernel(**kw) - - kernel_manager = NewKernelManager(kernel_name='python3') - kernel_manager.start_kernel(path=sys.executable) # 指定使用哪一个Python的解释器。 + # kernel_manager.kernel_spec.argv[0] = r"C:\Users\12957\AppData\Local\Programs\Python\Python38\python.exe" + kernel_manager.kernel_spec.argv[0] = sys.executable + # 这一步的目的是,指明要连接到的解释器。 + kernel_manager.start_kernel() kernel_client = kernel_manager.client() kernel_client.start_channels() @@ -138,6 +126,7 @@ class PMGIpythonConsole(RichJupyterWidget): self.init_thread.finished.connect(self.init_thread.deleteLater) self.init_thread.started.connect(self.console_object.run) self.init_thread.start() + logger.debug("setup--ui") cursor: QTextCursor = self._prompt_cursor cursor.movePosition(QTextCursor.End) diff --git a/pyminer_comm/base/datadesc.py b/pyminer_comm/base/datadesc.py index 19cdf996..7faa7753 100644 --- a/pyminer_comm/base/datadesc.py +++ b/pyminer_comm/base/datadesc.py @@ -33,24 +33,34 @@ class NoPreviewError(Exception): def is_big_variable(var): - import pandas as pd - import numpy as np + """ + 判断是否为大型变量。 + 对于较大的变量,需要采用预览模式。 + Args: + var: + + Returns: + """ if isinstance(var, (int, bool, float)): return sys.getsizeof(var) > DataDesc.threshold_pandas - if isinstance(var, str): + elif isinstance(var, str): return len(var) > DataDesc.max_str_len - elif isinstance(var, (pd.DataFrame, pd.Series)): + elif isinstance(var, dict): + return len(list(var.keys())) > DataDesc.max_len + elif isinstance(var, (list, tuple)): + return len(var) > DataDesc.max_len + + import pandas as pd + import numpy as np + if isinstance(var, (pd.DataFrame, pd.Series)): if isinstance(var, pd.DataFrame): return int(var.memory_usage().sum()) - DataDesc.threshold_pandas > 0 else: return var.memory_usage() - DataDesc.threshold_pandas > 0 elif isinstance(var, np.ndarray): return var.nbytes > DataDesc.threshold_numpy - elif isinstance(var, dict): - return len(list(var.keys())) > DataDesc.max_len - elif isinstance(var, (list, tuple)): - return len(var) > DataDesc.max_len + else: return False -- Gitee From ff0e19bb3e48942826293fbda318728fafba86c3 Mon Sep 17 00:00:00 2001 From: hzy15610046011 <1295752786@qq.com> Date: Wed, 21 Apr 2021 11:06:37 +0800 Subject: [PATCH 05/14] =?UTF-8?q?=E5=BC=BA=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=B7=A5=E5=85=B7=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=8C=E7=A7=AF=E5=88=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/ipython_console/README.md | 4 + packages/ipython_console/ipythonqtconsole.py | 4 +- packages/ipython_console/lexersplit.py | 69 ------ packages/pm_calc/fastui/dblquad.py | 210 ++++++++++++++++++ pmgwidgets/widgets/composited/fastui.py | 5 +- .../widgets/extended/entries/funcctrl.py | 101 +++++++++ .../extended/others/multitypeparaminput.py | 2 +- requirements.txt | 1 + 8 files changed, 321 insertions(+), 75 deletions(-) delete mode 100644 packages/ipython_console/lexersplit.py create mode 100644 packages/pm_calc/fastui/dblquad.py create mode 100644 pmgwidgets/widgets/extended/entries/funcctrl.py diff --git a/packages/ipython_console/README.md b/packages/ipython_console/README.md index e69de29b..561b0588 100644 --- a/packages/ipython_console/README.md +++ b/packages/ipython_console/README.md @@ -0,0 +1,4 @@ +- requirements_ipython_node.txt:一个IPython作为连接到外部的IPython节点,至少需要装的包。 +这些包看起来不少,但是每个都比较小,即使用国外镜像源也很快。 + +- \ No newline at end of file diff --git a/packages/ipython_console/ipythonqtconsole.py b/packages/ipython_console/ipythonqtconsole.py index bc453f68..46e3302d 100644 --- a/packages/ipython_console/ipythonqtconsole.py +++ b/packages/ipython_console/ipythonqtconsole.py @@ -10,11 +10,9 @@ Created on 2020/8/24 """ import os from typing import Tuple -import time -from pmgwidgets import PMDockObject, get_ipython_console_class, in_unit_test +from pmgwidgets import PMDockObject, in_unit_test from pmgwidgets.widgets.basic.others.console import PMGIpythonConsole from PySide2.QtWidgets import QApplication -# PMGIpythonConsole = get_ipython_console_class() if QApplication.instance() is not None: PMGIpythonConsole.install_translator() diff --git a/packages/ipython_console/lexersplit.py b/packages/ipython_console/lexersplit.py deleted file mode 100644 index 7ee30f30..00000000 --- a/packages/ipython_console/lexersplit.py +++ /dev/null @@ -1,69 +0,0 @@ -import ast -import typing - - -class NodeVisitor(ast.NodeVisitor): - def visit_Name(self, node: ast.Name) -> typing.Any: - print(node) - - -class NodeTransformer(ast.NodeTransformer): - # def visit_Str(self, tree_node): - # return ast.Str('String: ' + tree_node.s) - def __init__(self): - super(NodeTransformer, self).__init__() - self.identifier_list = [] - self.str_list = [] - - def visit_Name(self, node: ast.Name): - """ - - Args: - node: - - Returns: - - """ - self.identifier_list.append(node.id) - - def visit_Str(self, node: ast.Str) -> typing.Any: - """ - - Args: - node: - - Returns: - - """ - self.str_list.append(node.s) - - def show_identifiers_might_changed(self, code) -> list: - """ - - Args: - code: - - Returns: - - """ - self.identifier_list = [] - self.str_list = [] - self.visit(ast.parse(code)) - return [s for s in list(set(self.identifier_list + self.str_list)) if s.isidentifier()] - - -if __name__ == '__main__': - s = ''' - class A: - def aaa(): - b=123 - print(b) - fruits = ['grapes', 'mango'] - name = 'peter' - for fruit in fruits: - print('{} likes {}'.format(name, fruit)) - ''' - - # NodeTransformer().visit(tree_node) - print(NodeTransformer().show_identifiers_might_changed(s)) - # NodeVisitor().visit(tree_node) diff --git a/packages/pm_calc/fastui/dblquad.py b/packages/pm_calc/fastui/dblquad.py new file mode 100644 index 00000000..853c7391 --- /dev/null +++ b/packages/pm_calc/fastui/dblquad.py @@ -0,0 +1,210 @@ +import ast +from typing import Any, List, Tuple + +from PySide2.QtWidgets import QApplication + +from pmgwidgets import FunctionGUIDialog + + +class CodeVisitor(ast.NodeVisitor): + def __init__(self): + super(CodeVisitor, self).__init__() + self.preserved = {"pi", "e"} + self.called = set() + self.func_args = set() + self._names = set() + + def visit_Name(self, node: ast.Name) -> Any: + self._names.add(node.id) + + def visit_Call(self, node: ast.Call) -> Any: + self.generic_visit(node) + self.called.add(node.func.id) + + def get_result(self) -> Tuple[List[str], List[str]]: + """ + + Returns: 定义的名称,以及调用的ID名称。 + + """ + names = self._names.copy() + names.difference_update(self.preserved) + names.difference_update(self.called) + return list(names), list(self.called) + + +class Function(): + def __init__(self, s): + self.name = s + + def __repr__(self): + return self.name + + +def convert_to_lambda(code): + print(code) + original_code = code + code = code.replace("np.", "") + cv = CodeVisitor() + cv.visit(ast.parse(code)) + args_list, funcs = cv.get_result() + args = '' + for a in args_list: + args += a + "," + args = args.strip(", ") + + ret = "lambda {ARGS}: {FCN}".format(ARGS=args, FCN=original_code) + return Function(ret) + + +dic = { + "title": "数据透视", + "func_name": "scipy.integrate.dblquad", + "with_object": False, + "args": [ + { + "name": "func", + "title": "被积函数", + "optional": False, + "ctrl": { + "type": "multitype_ctrl", + "title": "选择被积函数", + "init": "x*y", + "types": + [{ + "type_title": "输入表达式", + "ctrls": [ + ("line_ctrl", "", '输入表达式并自动转换为函数', "np.sin(2*np.pi*x)"), + ], + "on_ok": lambda data: convert_to_lambda(data[""]) + }, { + "type_title": "输入函数", + "ctrls": [ + ("line_ctrl", "", '输入函数代码', "lambda x: np.sin(2*np.pi*x)"), + ], + "on_ok": lambda data: Function(data[""]) + }, { + "type_title": "选择变量", + "ctrls": [ + ("vars_combo_ctrl", "variable", "选择变量", ""), + ], + }] + } + }, + { + "name": "hfun", + "title": "内层函数上界", + "optional": False, + "ctrl": { + "type": "multitype_ctrl", + "title": "内层函数上界", + "init": "np.sin(2*np.pi*x)", + "types": + [{ + "type_title": "输入表达式", + "ctrls": [ + ("line_ctrl", "", '输入表达式并自动转换为函数', "np.sin(2*np.pi*x)"), + ], + "on_ok": lambda data: convert_to_lambda(data[""]) + }, { + "type_title": "输入函数", + "ctrls": [ + ("line_ctrl", "", '输入函数代码', "lambda x: np.sin(2*np.pi*x)"), + ], + "on_ok": lambda data: Function(data[""]) + }, { + "type_title": "选择变量", + "ctrls": [ + ("vars_combo_ctrl", "variable", "选择变量", ""), + ], + }] + } + }, + { + "name": "gfun", + "title": "内层函数下界", + "optional": False, + "ctrl": { + "type": "multitype_ctrl", + "title": "内层函数下界", + "init": "lambda x:0", + "types": + [{ + "type_title": "输入表达式", + "ctrls": [ + ("line_ctrl", "", '输入表达式并自动转换为函数', "np.sin(2*np.pi*x)"), + ], + "on_ok": lambda data: convert_to_lambda(data[""]) + }, { + "type_title": "输入函数", + "ctrls": [ + ("line_ctrl", "", '输入函数代码', "lambda x:0"), + ], + "on_ok": lambda data: Function(data[""]) + }, { + "type_title": "选择变量", + "ctrls": [ + ("vars_combo_ctrl", "variable", "选择变量", ""), + ], + }] + } + }, + { + "name": "a", + "title": "积分下限", + "optional": False, + "ctrl": { + "type": "multitype_ctrl", + "title": "积分下限", + "init": 0, + "types": + [{ + "type_title": "输入下界", + "ctrls": [ + ("number_ctrl", "", '输入下界', 0), + ], + }, { + "type_title": "选择变量", + "ctrls": [ + ("vars_combo_ctrl", "variable", "选择变量", ""), + ], + }] + } + }, + { + "name": "b", + "title": "积分上限", + "optional": False, + "ctrl": { + "type": "multitype_ctrl", + "title": "积分上限", + "init": 1, + "types": + [{ + "type_title": "输入数值", + "ctrls": [ + ("number_ctrl", "", '输入数值', 1), + ] + }, { + "type_title": "选择变量", + "ctrls": [ + ("vars_combo_ctrl", "variable", "选择变量", ""), + ], + }] + } + }, + ] + +} + + +class PivotDialog(FunctionGUIDialog): + def __init__(self): + FunctionGUIDialog.__init__(self, dic) + + +if __name__ == '__main__': + app = QApplication([]) + md = PivotDialog() + md.show() + app.exec_() diff --git a/pmgwidgets/widgets/composited/fastui.py b/pmgwidgets/widgets/composited/fastui.py index 6d2df6b0..6f3a80a7 100644 --- a/pmgwidgets/widgets/composited/fastui.py +++ b/pmgwidgets/widgets/composited/fastui.py @@ -241,15 +241,16 @@ class FunctionGUIDialog(DFOperationDialog): if arg["optional"]: optional_names.append(arg["name"]) views.append(("check_ctrl", arg["name"] + "#enable", "", True)) + arg["ctrl"]["name"] = arg["name"] views.append(arg["ctrl"]) self.panel.set_items(views) - for op_name in optional_names: self.panel.set_as_controller(op_name + "#enable", [op_name], True, ) def get_value_code(self) -> str: values = self.panel.get_value_with_filter() # 只获取使能并且可见的控件的值 + print(values,self.panel.widgets_dic) values = {k: v for k, v in values.items() if k.isidentifier()} varname = self.combo_box.currentText() args_str = '' @@ -261,7 +262,7 @@ class FunctionGUIDialog(DFOperationDialog): code = '{var_name}.{method_name}({args})'.format(var_name=varname, method_name=self.func_name, args=args_str) - + print(code,values) return code diff --git a/pmgwidgets/widgets/extended/entries/funcctrl.py b/pmgwidgets/widgets/extended/entries/funcctrl.py new file mode 100644 index 00000000..a3820c22 --- /dev/null +++ b/pmgwidgets/widgets/extended/entries/funcctrl.py @@ -0,0 +1,101 @@ +import ast +import astunparse +from typing import Any, Tuple, List + +from PySide2.QtWidgets import QLineEdit, QLabel, QHBoxLayout, QPushButton, QMessageBox + +from pmgwidgets.widgets.extended.base.baseextendedwidget import BaseExtendedWidget + + +class CodeVisitor(ast.NodeVisitor): + def __init__(self): + super(CodeVisitor, self).__init__() + self.preserved = {"pi", "e"} + self.called = set() + self.func_args = set() + self._names = set() + + def visit_Name(self, node: ast.Name) -> Any: + self._names.add(node.id) + + + def visit_Call(self, node: ast.Call) -> Any: + self.generic_visit(node) + self.called.add(node.func.id) + + def get_result(self) -> Tuple[List[str], List[str]]: + """ + + Returns: 定义的名称,以及调用的ID名称。 + + """ + names = self._names.copy() + names.difference_update(self.preserved) + names.difference_update(self.called) + return list(names), list(self.called) + + +# n = ast.parse("x*cos(v,sin(2*pi*x))") +# print(CodeVisitor().visit(n)) +# print(cv := CodeVisitor()) +# cv.visit(n) +# print(cv.get_result()) +# # # print(ast.get_source_segment("x*cos(v,sin(2*pi*x))",n)) +# # print(ast.dump(n)) +# # print(astunparse.unparse(n)) + + +class PMGFuncCtrl(BaseExtendedWidget): + """ + + 输入:一个有效的函数表达式。 + 其中,里面的变量名会自动进行检测。 + + """ + + def __init__(self, layout_dir: str, title: str, initial_value: str): + super().__init__(layout_dir) + self.allowed_chars = set(' ,[](){}:1234567890.+-*/') + self.on_check_callback = None + self.prefix = QLabel(text=title) + self.type = type + entryLayout = QHBoxLayout() + self.ctrl = QLineEdit() + self.central_layout.addWidget(self.prefix) + self.central_layout.addLayout(entryLayout) + entryLayout.addWidget(self.ctrl) + self.set_value(initial_value) + + def get_code(self) -> str: + text = self.ctrl.text() + if self.type == 'safe': + for char in text: + if char not in self.allowed_chars: + return None + return text + + def set_value(self, obj: Any): + try: + self.ctrl.setText(repr(obj)) + except: + import traceback + traceback.print_exc() + + def get_value(self) -> object: + if self.get_code() is not None: + try: + return eval(self.ctrl.text()) + except: + import traceback + traceback.print_exc() + return None + else: + return None + + def on_eval_test(self): + """ + 点击计算按钮,弹出对话框显示计算结果。 + :return: + """ + val = self.get_value() + QMessageBox.information(self, self.tr('Result'), repr(val), QMessageBox.Ok) diff --git a/pmgwidgets/widgets/extended/others/multitypeparaminput.py b/pmgwidgets/widgets/extended/others/multitypeparaminput.py index fb60d0cf..65f20666 100644 --- a/pmgwidgets/widgets/extended/others/multitypeparaminput.py +++ b/pmgwidgets/widgets/extended/others/multitypeparaminput.py @@ -35,7 +35,7 @@ class PMGMultiTypeCtrl(BaseExtendedWidget): index = self.get_type_index() self.sub_panel.set_items([self.ctrls[index]["ctrls"]]) - print(self.get_value()) + # print(self.get_value()) # self.setFixedSize(0) def on_param_changed(self, event): diff --git a/requirements.txt b/requirements.txt index cf5d9a0d..45dd7f37 100644 --- a/requirements.txt +++ b/requirements.txt @@ -57,5 +57,6 @@ cx_Oracle>=8.1.0 pyminer_comm>=0.7.1 ipyparams pathspec +codegen -- Gitee From 3d5c97b516662a0a213b4b3a5b3b60af361aa3a4 Mon Sep 17 00:00:00 2001 From: hzy15610046011 <1295752786@qq.com> Date: Sun, 25 Apr 2021 13:22:37 +0800 Subject: [PATCH 06/14] =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=90=8E=E6=95=B4?= =?UTF-8?q?=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/main_window/base.py | 31 +++++++++++-------------------- features/ui/ui_option.py | 2 +- features/ui/ui_option.ui | 2 +- 3 files changed, 13 insertions(+), 22 deletions(-) diff --git a/features/main_window/base.py b/features/main_window/base.py index c4383a23..a4fc2207 100644 --- a/features/main_window/base.py +++ b/features/main_window/base.py @@ -1,12 +1,12 @@ +import base64 +import json +import logging import os import sys import time import webbrowser - -import base64 -import json -from typing import Tuple, List - +from multiprocessing import shared_memory +from typing import List from PySide2.QtCore import QPoint from PySide2.QtCore import Signal, Qt, QUrl, QPropertyAnimation @@ -16,27 +16,20 @@ from PySide2.QtWebEngineWidgets import * from PySide2.QtWidgets import QListWidgetItem, QWizard, QMessageBox from PySide2.QtWidgets import QWidget, QDesktopWidget, QFileDialog, QApplication, QDialog -from pmgwidgets import PMGPanel - import utils from features.extensions.extensionlib.extension_lib import extension_lib from features.io.settings import Settings from features.ui.ui_aboutme import Ui_Form as About_Ui_Form from features.ui.ui_appstore import Ui_Form as appStore_Ui_Form from features.ui.ui_first_form import Ui_Form as first_Ui_Form +from features.ui.ui_login import Ui_Form as login_Ui_Form +from features.ui.ui_logined import Ui_Form as logined_Ui_Form from features.ui.ui_option import Ui_Form as Option_Ui_Form from features.ui.ui_project_wizard import Ui_Wizard as Project_Ui_Form from pmgwidgets import PMGPanel -from utils import get_main_window - -from features.ui.ui_login import Ui_Form as login_Ui_Form -from features.ui.ui_logined import Ui_Form as logined_Ui_Form -import utils from utils import get_main_window, http_client -from features.io.settings import Settings -from features.extensions.extensionlib.extension_lib import extension_lib -from multiprocessing import shared_memory +logger = logging.getLogger(__name__) class OptionForm(QDialog, Option_Ui_Form): @@ -115,10 +108,7 @@ class OptionForm(QDialog, Option_Ui_Form): load_theme(style) Settings.get_instance()['theme'] = self.comboBox_theme.currentText() - # print(Settings.get_instance()['theme']) get_main_window().settings_changed_signal.emit() - # get_main_window().on_settings_changed() - # self.signal_settings_changed.emit() def slot_change_workspace(self): directory = QFileDialog.getExistingDirectory(self, "选择工作路径位置", directory=Settings.get_instance()['work_dir']) @@ -136,7 +126,7 @@ class OptionForm(QDialog, Option_Ui_Form): :return: """ settings = utils.get_settings_from_file("config.ini") - print(settings.value('MAIN/PATH_WORKDIR')) + logger.debug("PATH/WORKDIR", settings.value('MAIN/PATH_WORKDIR')) if settings.value('MAIN/THEME') is not None: for i in range(self.comboBox_theme.count()): if self.comboBox_theme.itemText(i) == settings.value('MAIN/THEME'): @@ -629,6 +619,7 @@ class LoginForm(QDialog, login_Ui_Form): """ 登录窗口 """ + def __init__(self, parent=None): super(LoginForm, self).__init__(parent) self.setupUi(self) @@ -706,7 +697,7 @@ class LoginedForm(QDialog, logined_Ui_Form): shared_memo = shared_memory.SharedMemory(name="sharedMemory") # 通过name找到共享内存token buff = shared_memo.buf for i in range(0, len(buff)): - buff[i:i+1] = "\x00".encode() + buff[i:i + 1] = "\x00".encode() time.sleep(0.5) self.close() diff --git a/features/ui/ui_option.py b/features/ui/ui_option.py index 13fc3958..7340b217 100644 --- a/features/ui/ui_option.py +++ b/features/ui/ui_option.py @@ -435,7 +435,7 @@ class Ui_Form(object): self.label_8.setText(QCoreApplication.translate("Form", u"\u8d27\u5e01\u7b26\u53f7\u4f4d\u4e8e:", None)) self.pushButton_help.setText(QCoreApplication.translate("Form", u"Help", None)) - self.pushButton_ok.setText(QCoreApplication.translate("Form", u"Ok", None)) + self.pushButton_ok.setText(QCoreApplication.translate("Form", u"OK", None)) self.pushButton_cancel.setText(QCoreApplication.translate("Form", u"Cancel", None)) # retranslateUi diff --git a/features/ui/ui_option.ui b/features/ui/ui_option.ui index 645ab651..f9394124 100644 --- a/features/ui/ui_option.ui +++ b/features/ui/ui_option.ui @@ -562,7 +562,7 @@ p, li { white-space: pre-wrap; } - Ok + OK -- Gitee From ae478f2d06638fe5d8b968c0b80d73897bf13f17 Mon Sep 17 00:00:00 2001 From: hzy15610046011 <1295752786@qq.com> Date: Sun, 25 Apr 2021 14:42:38 +0800 Subject: [PATCH 07/14] =?UTF-8?q?=E4=BD=BF=E7=94=A8QSettings=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=EF=BC=8C=E4=BD=86=E6=98=AF=E7=9B=AE=E5=89=8D=E8=BF=98?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=81=9A=E5=92=8C=E4=B9=8B=E5=89=8D=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=9A=84=E9=80=82=E9=85=8D=E5=B7=A5=E4=BD=9C=EF=BC=8C?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E5=88=87=E6=8D=A2=E5=8A=9F=E8=83=BD=E6=9A=82?= =?UTF-8?q?=E6=97=B6=E6=B2=A1=E6=9C=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app2.py | 9 +- configuration/config.ini | 3 +- .../extensions/extensionlib/extension_lib.py | 61 +- .../extensions/extensionlib/extensionlib.md | 1 - .../interpretermanager/interpretermanager.py | 57 +- features/io/encoding.py | 12 +- features/io/settings.py | 134 +-- features/main_window/base.py | 12 +- features/ui/pmwidgets/pmmainwindow.py | 27 +- .../applications_toolbar.py | 4 +- packages/applications_toolbar/dev_tools.py | 10 +- packages/code_editor/codeeditor/tabwidget.py | 28 +- packages/code_editor/main.py | 12 +- packages/dataio/export.py | 2 +- packages/dataio/sample.py | 2 +- packages/file_tree/main.py | 12 +- packages/ipython_console/ipythonqtconsole.py | 4 +- packages/ipython_console/main.py | 8 +- packages/socket_server/server_by_socket.py | 10 +- pmgui.py | 761 +++++++++--------- resources/qss/Fusion.qss | 20 +- resources/qss/standard.qss | 36 +- resources/qss/windowsvista.qss | 2 +- utils/__init__.py | 14 +- utils/settings/settings.py | 2 +- 25 files changed, 644 insertions(+), 599 deletions(-) diff --git a/app2.py b/app2.py index 593dc93c..902f4197 100644 --- a/app2.py +++ b/app2.py @@ -39,10 +39,6 @@ def exception_handler(i: 'Tuple[ClassVar[BaseException], BaseException]'): reinstall_requirements_with_gui() - # dlg = ExceptionHandlerDialog(i[1]) - # - # dlg.exec_() - def on_exception(e): from check_dependency import ExceptionHandlerDialog @@ -74,7 +70,6 @@ from pmgwidgets import PMGToolBar from features.extensions.extensions_manager.manager import extensions_manager from features.main_window import base -from features.io.settings import Settings from features.io.settings import load_theme from features.interpretermanager.interpretermanager import InterpreterManagerWidget from features.util.update import UpdateTipClient @@ -141,7 +136,7 @@ class MainWindow(BaseMainWindow): def __init__(self, parent=None): super().__init__(parent) - settings = Settings() + # settings = Settings() t00 = time.time() self.main_option_form = base.OptionForm() self.project_wizard: base.ProjectWizardForm = None @@ -333,7 +328,7 @@ class MainWindow(BaseMainWindow): self.widgets_ready_signal.emit() t1 = time.time() logging.info('Layout ready time elapsed:%f' % (t1 - t0)) - self.set_dock_titlebar_visible(Settings.get_instance()['dock_titlebar_visible']) + self.set_dock_titlebar_visible(utils.get_settings_item_from_file("config.ini", "MAIN/DOCK_TITLEBAR_VISIBLE")) self.bind_events() self.events_ready_signal.emit() t2 = time.time() diff --git a/configuration/config.ini b/configuration/config.ini index 9d3f49d8..22e5135e 100644 --- a/configuration/config.ini +++ b/configuration/config.ini @@ -6,9 +6,10 @@ PATH_WORKDIR = INTERPRETER = d:/pyminer/python.exe SHOW_START_PAGE = True CHECK_UPDATE = True +DOCK_TITLEBAR_VISIBLE = False [RUN] -EXTERNAL_INTERPRETERS = "{}" +EXTERNAL_INTERPRETERS = "[]" CURRENT_INTERPRETER = [INFO] diff --git a/features/extensions/extensionlib/extension_lib.py b/features/extensions/extensionlib/extension_lib.py index ef22b7f6..60b96ed6 100644 --- a/features/extensions/extensionlib/extension_lib.py +++ b/features/extensions/extensionlib/extension_lib.py @@ -1,10 +1,12 @@ import inspect import os -from typing import TYPE_CHECKING, Callable, Dict, List, Tuple, Union, Optional, Any -from PySide2.QtCore import QRect, Signal, QTranslator, QLocale -from PySide2.QtWidgets import QWidget, QApplication, QDialog -from features.workspace.data_adapter import UniversalAdapter +from typing import TYPE_CHECKING, Callable, Dict, List, Tuple, Optional, Any + +from PySide2.QtCore import QRect, Signal +from PySide2.QtWidgets import QWidget, QDialog + import utils +from features.workspace.data_adapter import UniversalAdapter if TYPE_CHECKING: from pmgwidgets import PMGToolBar @@ -18,8 +20,6 @@ def wrapper(): from utils import get_main_window from features.ui import pmwidgets from features.extensions.extensionlib import baseext - from features.ui.common.pmlocale import pmlocale - from features.io.settings import Settings from features.io.exceptions import PMExceptions from pyminer_comm.base import DataDesc @@ -260,42 +260,32 @@ def wrapper(): return utils.get_root_dir() @staticmethod - def _(text): + def get_settings_item_from_file(file: str, item: str, mode: str = "user"): """ - + 从设置文件中获取设置项 Args: - text: - - Returns: - - """ - return pmlocale.translate(text) - - @staticmethod - def get_settings() -> Dict[str, str]: - """ + file: + item: + mode: Returns: """ - return Settings.get_instance() + return utils.get_settings_item_from_file(file, item, mode) @staticmethod - def update_settings(settings_to_modify: Dict[str, str]) -> None: + def write_settings_item_to_file(file: str, item: str, value: Any): """ - 修改设置 + 将配置项写入设置文件中 Args: - settings_to_modify: + file: + item: + value: Returns: """ - settings = Settings.get_instance() - for k, v in settings_to_modify.items(): - if k in settings.keys(): - Settings.get_instance()[k] = v - else: - raise ValueError('Key {0} not in Settings!' % k) + utils.write_settings_item_to_file(file, item, value) get_main_window().settings_changed_signal.emit() @staticmethod @@ -309,7 +299,7 @@ def wrapper(): Returns: """ - Settings.get_instance()['work_dir'] = work_dir + utils.write_settings_item_to_file("config.ini", "MAIN/PATH_WORKDIR", work_dir) get_main_window().settings_changed_signal.emit() @staticmethod @@ -321,7 +311,18 @@ def wrapper(): """ - return Settings.get_instance()['work_dir'] + dir = utils.get_settings_item_from_file("config.ini", "MAIN/PATH_WORKDIR") + if (not isinstance(dir, str)) or (not os.path.exists(dir)): + dir = os.path.join(os.path.expanduser("~"), "Desktop") + return dir + @staticmethod + def get_theme() -> str: + """ + 获取主题 + Returns: + + """ + return utils.get_settings_item_from_file("config.ini", "MAIN/THEME") @staticmethod def run_python_file(file_path: str, interpreter_path: str): diff --git a/features/extensions/extensionlib/extensionlib.md b/features/extensions/extensionlib/extensionlib.md index 093cc62a..5e5bf1e8 100644 --- a/features/extensions/extensionlib/extensionlib.md +++ b/features/extensions/extensionlib/extensionlib.md @@ -210,7 +210,6 @@ def get_settings() -> Dict[str, str]: Returns: """ -return Settings.get_instance() ### 设置当前工作路径 @staticmethod diff --git a/features/interpretermanager/interpretermanager.py b/features/interpretermanager/interpretermanager.py index 73d1d4f6..3861306d 100644 --- a/features/interpretermanager/interpretermanager.py +++ b/features/interpretermanager/interpretermanager.py @@ -7,13 +7,14 @@ settings['interpreters'] = """ import os import sys -from typing import Dict +from typing import Dict, List -from PySide2.QtWidgets import QTableWidget, QPushButton, QHBoxLayout, QVBoxLayout, QApplication, QWidget, QDialog, \ +from PySide2.QtWidgets import QPushButton, QHBoxLayout, QVBoxLayout, QWidget, QDialog, \ QListWidget, QMessageBox, QSpacerItem, QSizePolicy -from features.io.settings import Settings +import utils from pmgwidgets import PMGPanelDialog +from utils import get_settings_item_from_file class Interpreter(): @@ -35,6 +36,38 @@ def get_interpreter_version(interpreter_path: str) -> str: return version +def get_all_external_interpreters() -> List[Dict]: + """ + 获取所有的外部解释器 + Returns: + + """ + return utils.get_settings_item_from_file("config.ini", "RUN/EXTERNAL_INTERPRETERS") + + +def modify_interpreter_config(mode, info: Dict = None, index: int = -1): + """ + + Args: + info: 一个存储解释器信息的字典 + mode: "add","delete","modify" + + Returns: + + """ + + external_interpreters = utils.get_settings_item_from_file("config.ini", "RUN/EXTERNAL_INTERPRETERS") + if mode == "add": + external_interpreters.append(info) + elif mode == "modify": + external_interpreters[index] = info + elif mode == "delete": + external_interpreters.pop(index) + else: + raise NotImplementedError(mode) + utils.write_settings_item_to_file("config.ini", "RUN/EXTERNAL_INTERPRETERS", external_interpreters) + + class InterpreterManagerWidget(QWidget): def __init__(self, parent=None): super(InterpreterManagerWidget, self).__init__(parent) @@ -83,13 +116,15 @@ class InterpreterManagerWidget(QWidget): if ret == QDialog.Accepted: res = dlg.get_value() d = {'name': res['name'], 'path': res['path'], 'version': get_interpreter_version(res['path'])} - Settings.get_instance()['external_interpreters'].append(d) + modify_interpreter_config("add", d) self.show_interpreters() def edit(self): current_index = self.interpreters_list_show.currentRow() list_index = current_index - 1 # 第一个是默认解释器,所以要减去1 - current_interpreter = Settings.get_instance()['external_interpreters'][list_index] + + external_interpreters = get_all_external_interpreters() + current_interpreter = external_interpreters[list_index] views = [ ('line_ctrl', 'name', self.tr('Name'), current_interpreter['name']), @@ -103,7 +138,7 @@ class InterpreterManagerWidget(QWidget): if ret == QDialog.Accepted: res = dlg.get_value() d = {'name': res['name'], 'path': res['path'], 'version': get_interpreter_version(res['path'])} - Settings.get_instance()['external_interpreters'][list_index] = d + modify_interpreter_config("modify", d, list_index) self.show_interpreters() def manage_packages(self): @@ -126,19 +161,18 @@ class InterpreterManagerWidget(QWidget): return True def remove(self): - Settings.get_instance()['external_interpreters'].pop( - self.interpreters_list_show.currentRow() - 1) # 第一个是默认解释器,所以要减去1 + modify_interpreter_config("delete", index=self.interpreters_list_show.currentRow() - 1) self.show_interpreters() def show_interpreters(self): self.interpreters_list_show.clear() self.interpreters_list_show.addItem(self.tr('BuiltIn (3.8.5)')) - for interpreter in Settings.get_instance()['external_interpreters']: + ext_interpreters = get_all_external_interpreters() + for interpreter in ext_interpreters: name = interpreter['name'] version = interpreter['version'] text = name + ' (%s)' % version self.interpreters_list_show.addItem(text) - pass def on_list_current_item_changed(self): """ @@ -158,11 +192,10 @@ class InterpreterManagerWidget(QWidget): return else: list_index = current_index - 1 - return Settings.get_instance()['external_interpreters'][list_index] + return get_all_external_interpreters()[list_index] if __name__ == '__main__': - s = Settings() from PySide2.QtWidgets import QApplication app = QApplication([]) diff --git a/features/io/encoding.py b/features/io/encoding.py index f36c01dc..caac3288 100644 --- a/features/io/encoding.py +++ b/features/io/encoding.py @@ -1,16 +1,20 @@ import os + from PySide2.QtWidgets import QDialog, QPushButton, QVBoxLayout, QHBoxLayout, QTextBrowser, QMessageBox + from pmgwidgets import PMGPanel +import utils from utils import file_encoding_convert -from features.io.settings import Settings class EncodingConversionWidget(QDialog): def __init__(self, parent=None): super(EncodingConversionWidget, self).__init__(parent=parent) views = [ - ('file_ctrl', 'input_file', '读取文件名', '', '', Settings.get_instance()['work_dir']), - ('file_ctrl', 'output_file', '输出为文件', '', '', Settings.get_instance()['work_dir'],'save'), + ('file_ctrl', 'input_file', '读取文件名', '', '', + utils.get_settings_item_from_file("config.ini", "MAIN/PATH_WORKDIR")), + ('file_ctrl', 'output_file', '输出为文件', '', '', + utils.get_settings_item_from_file("config.ini", "MAIN/PATH_WORKDIR"), 'save'), [ ('combo_ctrl', 'input_encoding', '读取编码方式', 'UTF8', ['UTF8', 'GBK', 'ASCII']), ('combo_ctrl', 'output_encoding', '输出编码方式', 'UTF8', ['UTF8', 'GBK', 'ASCII']) @@ -32,7 +36,6 @@ class EncodingConversionWidget(QDialog): self.button_preview.clicked.connect(self.preview) self.button_convert.clicked.connect(self.convert) - # self.button_preview.clicked.connect(self.preview) def preview(self): info = self.panel.get_value() @@ -55,7 +58,6 @@ class EncodingConversionWidget(QDialog): if __name__ == '__main__': - s = Settings() from PySide2.QtWidgets import QApplication app = QApplication([]) diff --git a/features/io/settings.py b/features/io/settings.py index 58eaf48b..60556216 100644 --- a/features/io/settings.py +++ b/features/io/settings.py @@ -98,73 +98,73 @@ def load_theme(style: str): # app.setStyle("Windows") -class Settings(dict): - """ - 单例! - """ - - @classmethod - def __new__(cls, *args): - if not hasattr(cls, 'instance'): - instance = super().__new__(cls) - cls.instance = instance - return cls.instance - - def __init__(self): - super(Settings, self).__init__() - self.check_pyminer_settings_dir() - self.update(self.load()) - - def check_pyminer_settings_dir(self): - self.data_path = get_pyminer_data_path() - path = os.path.join(self.data_path, 'pyminer_config') - self.settings_path = path - if not os.path.exists(path): - os.mkdir(path) - - @staticmethod - def get_instance() -> 'Settings': - return Settings.instance - - def load(self) -> Dict[str, str]: - """ - 加载设置项。 - default_settings是默认设置项 - :return: - """ - with open(os.path.join(utils.get_root_dir(), 'configuration', 'default_settings.json'), 'r') as f: - default_settings = json.load(f) - if platform.system().lower() == 'windows': - default_settings['work_dir'] = os.path.expanduser('~') - else: - default_settings['work_dir'] = os.environ['HOME'] - if not os.path.exists(default_settings['work_dir']): - os.mkdir(default_settings['work_dir']) - - try: - with open(os.path.join(self.settings_path, 'pyminer_settings.json'), 'r') as f: - settings = json.load(f) - except BaseException: - settings = {} - - pmsettings = default_settings - pmsettings.update(settings) - if not os.path.exists(pmsettings['work_dir']): - pmsettings['work_dir'] = os.path.expanduser('~') - return pmsettings - - def save(self): - """ - 保存 - :return: - """ - import json - try: - config_file = os.path.join(self.settings_path, 'pyminer_settings.json') - with open(config_file, 'w') as f: - json.dump(self, f, indent=4) - except FileNotFoundError as e: - logging.warning(e) +# class Settings(dict): +# """ +# 单例! +# """ +# +# @classmethod +# def __new__(cls, *args): +# if not hasattr(cls, 'instance'): +# instance = super().__new__(cls) +# cls.instance = instance +# return cls.instance +# +# def __init__(self): +# super(Settings, self).__init__() +# self.check_pyminer_settings_dir() +# self.update(self.load()) +# +# def check_pyminer_settings_dir(self): +# self.data_path = get_pyminer_data_path() +# path = os.path.join(self.data_path, 'pyminer_config') +# self.settings_path = path +# if not os.path.exists(path): +# os.mkdir(path) +# +# @staticmethod +# def get_instance() -> 'Settings': +# return Settings.instance +# +# def load(self) -> Dict[str, str]: +# """ +# 加载设置项。 +# default_settings是默认设置项 +# :return: +# """ +# with open(os.path.join(utils.get_root_dir(), 'configuration', 'default_settings.json'), 'r') as f: +# default_settings = json.load(f) +# if platform.system().lower() == 'windows': +# default_settings['work_dir'] = os.path.expanduser('~') +# else: +# default_settings['work_dir'] = os.environ['HOME'] +# if not os.path.exists(default_settings['work_dir']): +# os.mkdir(default_settings['work_dir']) +# +# try: +# with open(os.path.join(self.settings_path, 'pyminer_settings.json'), 'r') as f: +# settings = json.load(f) +# except BaseException: +# settings = {} +# +# pmsettings = default_settings +# pmsettings.update(settings) +# if not os.path.exists(pmsettings['work_dir']): +# pmsettings['work_dir'] = os.path.expanduser('~') +# return pmsettings +# +# def save(self): +# """ +# 保存 +# :return: +# """ +# import json +# try: +# config_file = os.path.join(self.settings_path, 'pyminer_settings.json') +# with open(config_file, 'w') as f: +# json.dump(self, f, indent=4) +# except FileNotFoundError as e: +# logging.warning(e) if __name__ == '__main__': diff --git a/features/main_window/base.py b/features/main_window/base.py index a4fc2207..6c276d01 100644 --- a/features/main_window/base.py +++ b/features/main_window/base.py @@ -18,7 +18,6 @@ from PySide2.QtWidgets import QWidget, QDesktopWidget, QFileDialog, QApplication import utils from features.extensions.extensionlib.extension_lib import extension_lib -from features.io.settings import Settings from features.ui.ui_aboutme import Ui_Form as About_Ui_Form from features.ui.ui_appstore import Ui_Form as appStore_Ui_Form from features.ui.ui_first_form import Ui_Form as first_Ui_Form @@ -106,12 +105,17 @@ class OptionForm(QDialog, Option_Ui_Form): """ from features.io.settings import load_theme load_theme(style) - - Settings.get_instance()['theme'] = self.comboBox_theme.currentText() + utils.write_settings_item_to_file("config.ini", "MAIN/THEME", self.comboBox_theme.currentText()) get_main_window().settings_changed_signal.emit() def slot_change_workspace(self): - directory = QFileDialog.getExistingDirectory(self, "选择工作路径位置", directory=Settings.get_instance()['work_dir']) + """ + 改变工作路径时的回调 + Returns: + + """ + work_dir = utils.get_settings_item_from_file("config.ini", "MAIN/THEME", self.comboBox_theme.currentText()) + directory = QFileDialog.getExistingDirectory(self, "选择工作路径位置", directory=work_dir) if not directory == '': self.lineEdit_worksapce.setText(directory) diff --git a/features/ui/pmwidgets/pmmainwindow.py b/features/ui/pmwidgets/pmmainwindow.py index 0c2060b1..f7438501 100644 --- a/features/ui/pmwidgets/pmmainwindow.py +++ b/features/ui/pmwidgets/pmmainwindow.py @@ -20,15 +20,15 @@ import chardet from PySide2.QtCore import Qt from PySide2.QtWidgets import QMainWindow, QToolBar, QPushButton, QWidget, QMenu, QDialog -from pmgwidgets import TopToolBarRight -from features.io.settings import Settings -from features.ui.common.pmlocale import pmlocale import utils +from features.ui.common.pmlocale import pmlocale +from pmgwidgets import TopToolBarRight if TYPE_CHECKING: from app2 import PMToolBarHome from features.ui.pmwidgets.dockwidget import PMDockWidget from pmgwidgets import ActionWithMessage +logger = logging.getLogger(__name__) class BaseMainWindow(QMainWindow): @@ -63,7 +63,7 @@ class BaseMainWindow(QMainWindow): else: for k, w in self.dock_widgets.items(): w.setTitleBarWidget(QWidget()) - Settings.get_instance()['dock_titlebar_visible'] = show + utils.write_settings_item_to_file("config.ini", "MAIN/PATH_WORKDIR", show) @staticmethod def get_stylesheet(style_sheet_name: str = 'standard'): @@ -82,9 +82,9 @@ class BaseMainWindow(QMainWindow): enc = chardet.detect(b) if enc.get('encoding') is not None: s = b.decode(enc['encoding']) - style_sheet = s.replace( - 'MAIN_THEME', Settings.get_instance()['main_theme']).replace( - 'MARGIN_THEME', Settings.get_instance()['margin_theme']) + style_sheet = s + else: + logger.fatal("加载样式表%s失败!" % style_sheet_name) return style_sheet def init_toolbar_tab(self): @@ -175,7 +175,13 @@ class BaseMainWindow(QMainWindow): self.refresh_toolbar_hide_button_status() def save_layout(self): - layout_path = os.path.join(Settings.get_instance().settings_path, 'layout.ini') + """ + 当关闭程序时保存布局 + Returns: + + """ + cfg_dir = utils.get_user_config_dir() + layout_path = os.path.join(cfg_dir, 'layout.ini') try: with open(layout_path, 'wb') as f: s = b'' # self.saveState() @@ -184,7 +190,7 @@ class BaseMainWindow(QMainWindow): logging.warning("file not found:" + layout_path) def load_layout(self): - p = os.path.join(Settings.get_instance().settings_path, 'layout.ini') + # p = os.path.join(Settings.get_instance().settings_path, 'layout.ini') # if os.path.exists(p): # with open(p, 'rb') as f: @@ -310,7 +316,8 @@ class BaseMainWindow(QMainWindow): parent=home_toolbar, message='lock_layout') a.setCheckable(True) - a.setChecked(not Settings.get_instance()['dock_titlebar_visible']) + dock_title_visible = utils.get_settings_item_from_file("config.ini", "MAIN/DOCK_TITLEBAR_VISIBLE") + a.setChecked(not dock_title_visible) menu.addAction(a) home_toolbar.get_control_widget('view_config').setMenu(menu) self._view_config_menu = menu diff --git a/packages/applications_toolbar/applications_toolbar.py b/packages/applications_toolbar/applications_toolbar.py index 76cafa0a..2ef583f5 100644 --- a/packages/applications_toolbar/applications_toolbar.py +++ b/packages/applications_toolbar/applications_toolbar.py @@ -269,7 +269,7 @@ class PMApplicationsToolBar(PMGToolBar): Returns: """ - work_dir = self.extension_lib.Program.get_settings()['work_dir'] + work_dir = self.extension_lib.Program.get_work_dir() app_paths = APPManager.get_instance().get_app_paths() path_index = 1 if len(app_paths) > 1 else 0 dlg = PMGPanelDialog(parent=self, views=[]) @@ -299,7 +299,7 @@ class PMApplicationsToolBar(PMGToolBar): Returns: """ - work_dir = self.extension_lib.Program.get_settings()['work_dir'] + work_dir = self.extension_lib.Program.get_work_dir() dev_path = QFileDialog.getExistingDirectory(self, self.tr('Select Packup App Developing Folder'), directory=work_dir) diff --git a/packages/applications_toolbar/dev_tools.py b/packages/applications_toolbar/dev_tools.py index 77023881..c4f82c85 100644 --- a/packages/applications_toolbar/dev_tools.py +++ b/packages/applications_toolbar/dev_tools.py @@ -53,7 +53,7 @@ class DevelopTools(QObject): def open_designer(self): import subprocess - self.workdir = self.extension_lib.Program.get_settings()['work_dir'] + self.workdir = self.extension_lib.Program.get_work_dir() if self.check_installed(self.designer_path): subprocess.Popen(self.designer_path, cwd=self.workdir) @@ -136,7 +136,7 @@ class DevelopTools(QObject): """ ret = self.show_covered_message('.ui', '.py') if ret == QMessageBox.Ok: - work_dir = self.extension_lib.Program.get_settings()['work_dir'] + work_dir = self.extension_lib.Program.get_work_dir() ui_files = self.list_files(work_dir, '.ui') for ui_file_path in ui_files: try: @@ -156,7 +156,7 @@ class DevelopTools(QObject): Returns: """ - work_dir = self.extension_lib.Program.get_settings()['work_dir'] + work_dir = self.extension_lib.Program.get_work_dir() pro_path = '' for name in os.listdir(work_dir): if name.endswith('.pro'): @@ -211,7 +211,7 @@ class DevelopTools(QObject): Returns: """ - work_dir = self.extension_lib.Program.get_settings()['work_dir'] + work_dir = self.extension_lib.Program.get_work_dir() ret = self.show_covered_message(self.tr('.py files in working directory with tr() or translate() functions'), '.ts') if ret == QMessageBox.Ok: @@ -257,7 +257,7 @@ class DevelopTools(QObject): """ ret = self.show_covered_message('.qrc', '*_rc.py') if ret == QMessageBox.Ok: - work_dir = self.extension_lib.Program.get_settings()['work_dir'] + work_dir = self.extension_lib.Program.get_work_dir() qrcs = self.list_files(work_dir, '.qrc') for qrc_path in qrcs: try: diff --git a/packages/code_editor/codeeditor/tabwidget.py b/packages/code_editor/codeeditor/tabwidget.py index afe5f295..fa0bbcc7 100644 --- a/packages/code_editor/codeeditor/tabwidget.py +++ b/packages/code_editor/codeeditor/tabwidget.py @@ -21,26 +21,26 @@ translated into English by those websites. __version__ = '0.1' +import sys +import cgitb import logging import os -import sys import re import time from contextlib import redirect_stdout from io import StringIO from queue import Queue -from typing import TYPE_CHECKING, List -import pmgwidgets -from PySide2.QtCore import QDir, QLocale, QObject, Signal, QThread, QTemporaryFile, QTimer +from typing import List +from typing import TYPE_CHECKING, Dict, Union, Tuple, Optional, Any + +from PySide2.QtCore import QDir, QObject, Signal, QThread, QTemporaryFile, QTimer from PySide2.QtGui import QCloseEvent from PySide2.QtWidgets import QTabWidget, QFileDialog, QMessageBox, QApplication, QSizePolicy, QWidget, QComboBox - -from packages.code_editor.codeeditor.qtpyeditor import PythonHighlighter - # TODO to remove (use extensionlib) from flake8.main.application import Application -from typing import TYPE_CHECKING, Dict, Union, Tuple, Optional, Any +import pmgwidgets +from packages.code_editor.codeeditor.qtpyeditor import PythonHighlighter from pmgwidgets import PMDockObject, in_unit_test, PMGFileSystemWatchdog, UndoManager if TYPE_CHECKING or in_unit_test(): @@ -742,7 +742,8 @@ class PMCodeEditTabWidget(QTabWidget, PMDockObject): # 打开文件 self.extension_lib.UI.get_toolbar_widget('code_editor_toolbar', 'button_open_script').clicked.connect( self.slot_open_script) - interpreters = self.extension_lib.Program.get_settings()['external_interpreters'] + interpreters = self.extension_lib.Program.get_settings_item_from_file("config.ini", + "RUN/EXTERNAL_INTERPRETERS") interpreter_names = [self.tr('Builtin (3.8.5)')] + [d['name'] for d in interpreters] combo_box: QComboBox = self.extension_lib.UI.get_toolbar_widget('code_editor_toolbar', 'combobox_interpreter') @@ -821,7 +822,7 @@ class PMCodeEditTabWidget(QTabWidget, PMDockObject): Returns: """ - interpreters = self.extension_lib.Program.get_settings()['external_interpreters'] + interpreters = self.extension_lib.Program.get_settings_item_from_file("config.ini", 'RUN/EXTERNAL_INTERPRETERS') combo.clear() combo.addItem(self.tr('Builtin (%s)' % sys.version.split()[0])) for interpreter in interpreters: @@ -838,9 +839,8 @@ class PMCodeEditTabWidget(QTabWidget, PMDockObject): elif interpreter_index == 0: self._current_executable = sys.executable else: - print(self.extension_lib.Program.get_settings()['external_interpreters'], interpreter_index) self._current_executable = \ - self.extension_lib.Program.get_settings()['external_interpreters'][interpreter_index - 1]['path'] + self.extension_lib.Program.get_settings_item_from_file("config.ini", 'RUN/EXTERNAL_INTERPRETERS')[interpreter_index - 1]['path'] def on_tab_switched(self, index: int) -> None: for i in range(self.count()): @@ -955,9 +955,7 @@ class PMCodeEditTabWidget(QTabWidget, PMDockObject): if __name__ == '__main__': - import sys - import cgitb - import logging + cgitb.enable(format='text') logging.basicConfig(level=logging.INFO) diff --git a/packages/code_editor/main.py b/packages/code_editor/main.py index 7c1bd8fd..d5e1fb5f 100644 --- a/packages/code_editor/main.py +++ b/packages/code_editor/main.py @@ -1,7 +1,6 @@ -import sys import os -import time -from typing import Dict, Union, Any +import sys +from typing import Dict, Union from PySide2.QtCore import QLocale, QTranslator from PySide2.QtWidgets import QApplication @@ -71,15 +70,14 @@ class Extension(BaseExtension): Deal with events that settings changed. :return: """ - theme = self.extension_lib.Program.get_settings()['theme'] - work_dir = self.extension_lib.Program.get_settings()['work_dir'] + theme = self.extension_lib.Program.get_theme() + work_dir = self.extension_lib.Program.get_work_dir() if theme != self.editor_widget._color_scheme: if theme.lower() in ('fusion', 'windows', 'windowsvista'): self.editor_widget.set_color_scheme('light') else: self.editor_widget.set_color_scheme('dark') - - work_dir = self.extension_lib.Program.get_settings()['work_dir'] + print(work_dir) self.editor_widget.on_work_dir_changed(work_dir) def bind_event(self): diff --git a/packages/dataio/export.py b/packages/dataio/export.py index c8c2c0d0..568e2669 100644 --- a/packages/dataio/export.py +++ b/packages/dataio/export.py @@ -16,7 +16,7 @@ class ExportDialog(QDialog): super(ExportDialog, self).__init__(parent=None) self.normal = False if initial_path == '' and not in_unit_test(): - initial_path = self.extension_lib.Program.get_settings()['work_dir'] + initial_path = self.extension_lib.Program.get_work_dir() self.setLayout(QVBoxLayout()) self.initial_var_name = initial_var_name self.initial_path = initial_path diff --git a/packages/dataio/sample.py b/packages/dataio/sample.py index 30f0c790..4f207de6 100644 --- a/packages/dataio/sample.py +++ b/packages/dataio/sample.py @@ -237,7 +237,7 @@ class ImportDialog(QDialog): def get_work_dir(self) -> str: """获取工作路径""" - return self.extension_lib.Program.get_settings()['work_dir'] + return self.extension_lib.Program.get_work_dir() def center(self): """将窗口置于中心""" diff --git a/packages/file_tree/main.py b/packages/file_tree/main.py index d86e7bdc..697259db 100644 --- a/packages/file_tree/main.py +++ b/packages/file_tree/main.py @@ -1,11 +1,11 @@ import os from typing import Callable -from PySide2.QtWidgets import QApplication from PySide2.QtCore import QLocale, QTranslator +from PySide2.QtWidgets import QApplication -from .file_tree import PMFilesTree from features.extensions.extensionlib import BaseExtension, BaseInterface +from .file_tree import PMFilesTree file_name = os.path.join(os.path.dirname(__file__), 'translations', 'qt_%s.qm' % QLocale.system().name()) app = QApplication.instance() @@ -23,9 +23,11 @@ class Extension(BaseExtension): files_tree: 'PMFilesTree' = self.widgets['PMFilesTree'] files_tree.extension_lib = self.extension_lib self.interface.file_widget = files_tree - settings = self.extension_lib.Program.get_settings() - self.extension_lib.Signal.get_settings_changed_signal().connect( # 当主界面设置改变信号发出时,改变工作路径。 - lambda: files_tree.change_current_path(settings['work_dir'])) + def on_settings_changed(): + work_dir = self.extension_lib.Program.get_settings_item_from_file("config.ini", "MAIN/PATH_WORKDIR") + files_tree.change_current_path(work_dir) + + self.extension_lib.Signal.get_settings_changed_signal().connect(on_settings_changed) # 当主界面设置改变信号发出时,改变工作路径。 class Interface(BaseInterface): diff --git a/packages/ipython_console/ipythonqtconsole.py b/packages/ipython_console/ipythonqtconsole.py index 46e3302d..e10b1683 100644 --- a/packages/ipython_console/ipythonqtconsole.py +++ b/packages/ipython_console/ipythonqtconsole.py @@ -37,7 +37,7 @@ class ConsoleWidget(PMGIpythonConsole, PMDockObject): def setup_ui(self): super().setup_ui() if not in_unit_test(): - style = self.lib.Program.get_settings()['theme'] + style = self.lib.Program.get_theme() self.change_ui_theme(style) def connect_to_datamanager(self, data_manager): @@ -56,7 +56,7 @@ class ConsoleWidget(PMGIpythonConsole, PMDockObject): if in_unit_test(): pwd = os.path.dirname(__file__) else: - pwd = self.extension_lib.Program.get_settings()['work_dir'] + pwd = self.extension_lib.Program.get_work_dir() pwd = pwd.replace('\\', '\\\\') from utils import get_root_dir cmd = 'import sys;sys.path.append(r\'%s\')' % get_root_dir() diff --git a/packages/ipython_console/main.py b/packages/ipython_console/main.py index c730eaae..1492208d 100644 --- a/packages/ipython_console/main.py +++ b/packages/ipython_console/main.py @@ -37,16 +37,16 @@ class Extension(BaseExtension): self.interface.widget = self.console self.extension_lib.Signal.get_settings_changed_signal().connect(self.on_settings_changed) self.extension_lib.Signal.get_events_ready_signal().connect(self.on_settings_changed) - self._work_dir = self.extension_lib.Program.get_settings()['work_dir'] + self._work_dir = self.extension_lib.Program.get_settings_item_from_file("config.ini", "MAIN/PATH_WORKDIR") def on_settings_changed(self): """ 如果设置项发生改变,重新加载主题文件。 TODO:倘若ipython发生改变之后,工作路径如何跟着改变? """ - settings = self.extension_lib.Program.get_settings() - self.console.change_ui_theme(settings['theme']) - work_dir = settings['work_dir'] + theme = self.extension_lib.Program.get_theme() + self.console.change_ui_theme(theme) + work_dir = self.extension_lib.Program.get_work_dir() if not os.path.samefile(work_dir, self._work_dir): # samefile函数:既可判断是否为同一文件,也可判断是否为同一文件夹 self.command = self.interface.run_command("get_ipython().chdir(\'%s\')" % work_dir.replace('\\', '\\\\'), hidden=False) diff --git a/packages/socket_server/server_by_socket.py b/packages/socket_server/server_by_socket.py index 03895aa8..65e801b1 100644 --- a/packages/socket_server/server_by_socket.py +++ b/packages/socket_server/server_by_socket.py @@ -56,7 +56,8 @@ def get_settings(): :return: """ global message_queue - return json.dumps(extension_lib.Program.get_settings()) + return "['Warning this method was deprecated']" + # return json.dumps(extension_lib.Program.get_settings()) @app.route('/get_stylesheet') @@ -196,10 +197,9 @@ class PMGServer(QObject): :param settings :return: """ - for param_name, param_val in settings.items(): - if param_name not in self.extension_lib.Program.get_settings().keys(): - raise ValueError('Parameter name \'%s\' not in settings!' % param_name) - self.extension_lib.Program.update_settings(settings) + logger.warning("目前服务器on_settings_changed方法无效!") + raise DeprecationWarning + # self.extension_lib.Program.update_settings(settings) def on_interface_called(self, interface_name: str, method_name: str, kwargs: Dict, res_queue: queue.Queue): interface = self.extension_lib.get_interface(interface_name) diff --git a/pmgui.py b/pmgui.py index 52f2bddc..f83fc3bd 100644 --- a/pmgui.py +++ b/pmgui.py @@ -1,33 +1,26 @@ import datetime import getpass +import logging import os import time +from multiprocessing import shared_memory +from typing import List, Callable -from PySide2.QtWidgets import QTextEdit -from pmgwidgets import PMGToolBar, ActionWithMessage, PMDockObject, create_icon - -from typing import List, Callable, Tuple, ClassVar - -from PySide2.QtCore import Signal, QTimer, Qt, QTranslator, QLocale, QSize, QCoreApplication -from PySide2.QtGui import QCloseEvent, QTextCursor, QResizeEvent, QFontDatabase, QMoveEvent, QFont, QIcon, QPixmap -from PySide2.QtWidgets import QApplication, QTextEdit, QMessageBox, QToolBar, QSplashScreen, QStatusBar, QTextBrowser, \ - QDialog, QVBoxLayout, QLabel, QHBoxLayout, QPushButton -from utils import get_main_window, get_application +from PySide2.QtCore import Signal, QTimer, Qt, QSize +from PySide2.QtGui import QCloseEvent, QTextCursor, QResizeEvent, QMoveEvent +from PySide2.QtWidgets import QTextEdit, QMessageBox, QStatusBar -from pmgwidgets import PMGToolBar, ActionWithMessage, PMDockObject, create_icon +import utils from features.extensions.extensions_manager.manager import extensions_manager -from features.main_window import base -from features.io.settings import Settings -from features.io.settings import load_theme -from features.interpretermanager.interpretermanager import InterpreterManagerWidget -from features.util.update import perform_update, UpdateTipClient from features.feedback import FeedbackClient -from features.ui.widgets.controlpanel import PMPageExt +from features.interpretermanager.interpretermanager import InterpreterManagerWidget +from features.io.settings import load_theme +from features.main_window import base from features.ui.pmwidgets import BaseMainWindow -from multiprocessing import shared_memory -import utils -import logging - +from features.ui.widgets.controlpanel import PMPageExt +from features.util.update import perform_update, UpdateTipClient +from pmgwidgets import PMGToolBar, ActionWithMessage, PMDockObject, create_icon +from utils import get_main_window, get_application def updateSplashMsg(ext_load_status: dict): @@ -40,6 +33,7 @@ def updateSplashMsg(ext_load_status: dict): except TypeError: return + class PMToolBarHome(PMGToolBar): """ 定义菜单工具栏按钮。 @@ -175,361 +169,372 @@ class PMToolBarHome(PMGToolBar): class LogOutputConsole(QTextEdit, PMDockObject): pass -class MainWindow(BaseMainWindow): - setupui_tasks: List[Callable] = [] - boot_timer: QTimer = None - close_signal = Signal() - window_geometry_changed_signal = Signal() - - layouts_ready_signal = Signal() - widgets_ready_signal = Signal() - events_ready_signal = Signal() - - settings_changed_signal = Signal() - - @classmethod - def __new__(cls, *args): - if not hasattr(cls, 'instance'): - instance = super().__new__(cls) - cls.instance = instance - return cls.instance - - def __init__(self, parent=None): - super().__init__(parent) - - t00 = time.time() - settings = Settings() - self.main_option_form = base.OptionForm() - self.project_wizard: base.ProjectWizardForm = None - self.settings_changed_signal.connect(self.on_settings_changed) - self.main_option_form.add_page(self.tr('Interpreter'), InterpreterManagerWidget()) - - utils._main_window = self - - # 主窗体默认大小 - self.resize(1920, 1080) - self.setIconSize(QSize(40, 40)) - # 设置状态栏 - self.statusBar = QStatusBar() - version = utils.get_python_version() - self.statusBar.showMessage(version, 0) - self.setStatusBar(self.statusBar) - - root_dir = os.path.dirname(__file__) - utils._root_dir = root_dir - - self.init_toolbar_tab() - tb_home = PMToolBarHome() - self.add_toolbar('toolbar_home', tb_home, text=tb_home.get_toolbar_text()) - self.setDockNestingEnabled(True) - self.setWindowTitle('PyMiner') - - self.log_output_console = LogOutputConsole(self) - - self.add_widget_on_dock( - 'log_output_console', - self.log_output_console, - text=self.tr('Logs'), - side='right') - - # 初始化日志 - self.slot_flush_console('info', 'system', self.tr('Welcome to PyMiner')) - - self.extensions_manager = extensions_manager - self.extensions_manager.load_from_extension_folder(updateSplashMsg) - - self.ext_manager_widget = PMPageExt(self) - dw = self.add_widget_on_dock( - 'extension_panel', - self.ext_manager_widget, - text=self.tr('Plugs'), - side='left') - dw.setMaximumWidth(400) - - load_theme(settings['theme']) # 组件都加载后再设置主题,否则可能有些组件不生效 - self.show() - self.load_layout() - self.switch_toolbar('toolbar_home') # 启动完成时,将工具栏切换到‘主页’ - - self.on_main_window_shown() - # self.first_form_display() - - self.start_pmlocalserver() # 只要在插件加载完成之后启动就行,目前放在最后 - self.update_tip_client = UpdateTipClient() # 启动程序,检查更新,弹窗提醒 - - t01 = time.time() - logging.debug('Time Elapsed for loading main window contents: %f' % (t01 - t00)) - - def start_pmlocalserver(self): - """ - 启动本地flask服务器pmlocalserver - Returns:None - - """ - server.server_thread.start() - - def clear_workspace(self): - from features.extensions.extensionlib.extension_lib import extension_lib - extension_lib.get_interface('ipython_console').run_command('Clearing_Variables_ =\'Clear All\'', - hint_text=self.tr('Start Clear...'), hidden=False) - extension_lib.get_interface('ipython_console').run_command('get_ipython().clear_all()', - hint_text=self.tr('Clear all variables'), - hidden=False) - - def add_toolbar(self, name: str, toolbar: PMGToolBar, - text: str = 'untitled toolbar'): - """ - 添加一个工具栏。 - """ - if toolbar.insert_after() == '': - b = self.top_toolbar_tab.add_button(name, text) - else: - b = self.top_toolbar_tab.insert_button(name, text, toolbar.insert_after()) - toolbar.tab_button = b - b.clicked.connect(lambda: self.on_toolbar_switch_button_clicked(name)) - - if hasattr(self, 'toolbar_path'): - self.insertToolBar(self.toolbar_path, toolbar) - self.insertToolBarBreak(self.toolbar_path) - else: - self.addToolBarBreak(Qt.TopToolBarArea) - self.addToolBar(toolbar) - toolbar.setObjectName(name) - self.toolbars[name] = toolbar - toolbar.setMovable(False) - toolbar.setFloatable(False) - - if self._current_toolbar_name != '': - self.refresh_toolbar_appearance() - - # def insert_toolbar(self, name: str, toolbar: QToolBar, text: str, insert_after: str): - # """ - # 插入一个工具栏。 - # """ - # b = self.top_toolbar_tab.add_button(text) - # toolbar.tab_button = b - # b.clicked.connect(lambda: self.on_toolbar_switch_button_clicked(name)) - # - # if hasattr(self, 'toolbar_path'): - # self.insertToolBar(self.toolbar_path, toolbar) - # self.insertToolBarBreak(self.toolbar_path) - # else: - # self.addToolBarBreak(Qt.TopToolBarArea) - # self.addToolBar(toolbar) - # toolbar.setObjectName(name) - # self.toolbars[name] = toolbar - # toolbar.setMovable(False) - # toolbar.setFloatable(False) - # - # if self._current_toolbar_name != '': - # self.refresh_toolbar_appearance() - - def moveEvent(self, a0: 'QMoveEvent') -> None: - self.window_geometry_changed_signal.emit() - - def resizeEvent(self, a0: QResizeEvent) -> None: - """ - 窗口大小调节,或者位置改变的信号。 - Window size adjustment, or a signal of a change in position. - """ - self.size_restriction_acquire() - super().resizeEvent(a0) - self.delayed_call(500, self.size_restriction_release) - self.window_geometry_changed_signal.emit() - - def on_settings_changed(self): - load_theme(Settings.get_instance()['theme']) - - def delayed_call(self, time_ms: int, callback: Callable) -> None: - """ - 封装了QTimer.SingleShot - :param time_ms: - :param callback: - :return: - """ - timer = QTimer() - timer.singleShot(time_ms, callback) - - def size_restriction_acquire(self) -> None: - """ - 设置插件尺寸的最大值。 - 控件需要指定get_split_portion_hint才可以。 - :return: - """ - for k in self.dock_widgets.keys(): - dw = self.dock_widgets[k] - horizontal_portion_hint = dw.widget().get_split_portion_hint()[0] - if horizontal_portion_hint is not None: - dw.setMaximumWidth(int(self.width() * horizontal_portion_hint)) - dw.setMinimumWidth(int(self.width() * horizontal_portion_hint)) - - def size_restriction_release(self): - for w_name in self.dock_widgets.keys(): - self.dock_widgets[w_name].setMaximumWidth(100000) - self.dock_widgets[w_name].setMaximumHeight(100000) - self.dock_widgets[w_name].setMinimumHeight(0) - self.dock_widgets[w_name].setMinimumWidth(0) - - def on_main_window_shown(self): - """ - 在界面显示后触发的事件。 - Returns: None - """ - t0 = time.time() - super().on_main_window_shown() - - self.layouts_ready_signal.emit() - for task in self.setupui_tasks: - task() - self.widgets_ready_signal.emit() - t1 = time.time() - logging.info('Layout ready time elapsed:%f' % (t1 - t0)) - self.set_dock_titlebar_visible(Settings.get_instance()['dock_titlebar_visible']) - self.bind_events() - self.events_ready_signal.emit() - t2 = time.time() - logging.info('Events ready, time elapsed:%f' % (t2 - t1)) - - def first_form_display(self): - """ - 显示"快速操作"窗口 - Displays the "Quick Action" window - """ - self.main_first_form = base.FirstForm(parent=self) - self.main_first_form.show() - - def login_form_display(self): - """ - 显示"登录"窗口 - Displays the "Quick Action" window - """ - shared_memo = shared_memory.SharedMemory(name="sharedMemory") # 通过name找到共享内存token - buff = shared_memo.buf - token = bytes(buff[:199]).decode().replace("\x00", "") - if token != "": - self.main_login_form = base.LoginedForm(parent=self) - self.main_login_form.exec_() - else: - self.main_login_form = base.LoginForm(parent=self) - self.main_login_form.exec_() - - def main_appstore_dispaly(self): - """ - 显示"应用商店"窗口 - Displays the "App Store" window - """ - self.appstore = MarketplaceForm() - self.appstore.show() - - def main_option_display(self): - """ - 显示"选项"窗口 - """ - if self.main_option_form is None: - self.main_option_form = base.OptionForm() - self.main_option_form.exec_() - - def main_help_display(self): - """ - 打开帮助页面 - """ - utils.open_url("https://gitee.com/py2cn/pyminer/wikis") - - def main_check_update_display(self): - """ - 打开'检查更新'页面 - """ - perform_update() - - def main_install_update(self): - closed = self.close() - if closed: - from pmgwidgets import run_python_file_in_terminal - path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'update', 'update.py') - run_python_file_in_terminal(path + ' -i') - - def main_feedback_display(self): - """ - 打开'反馈'页面 - """ - FeedbackClient() - # reply = QMessageBox.information(self, self.tr('Feedback'), self.tr( - # 'You can give feedback through issue on suggestions or problems encountered in use'), - # QMessageBox.Yes | QMessageBox.No, - # QMessageBox.Yes) - # if reply == QMessageBox.Yes: - # utils.open_url("https://gitee.com/py2cn/pyminer/issues") - - def main_homesite_display(self): - """ - 打开官方网站页面 - """ - utils.open_url("http://www.pyminer.com") - - def main_markdown_display(self): - print("TODO 添加markdown编辑器代码") - - def main_new_script_display(self): - from features.extensions.extensionlib.extension_lib import extension_lib - extension_lib.get_interface('code_editor').open_script('') - - def main_community_display(self): - """ - 打开帮助页面 - """ - utils.open_url("https://www.kuxai.com/") - - def main_project_wizard_display(self): - """ - 打开新建项目向导 - """ - self.wizard = project_wizard = base.ProjectWizardForm(parent=self) - project_wizard.exec_() - - def main_about_display(self): - """ - 打开关于页面,并将当前操作系统信息写入页面 - """ - self.about_me = base.AboutForm() - self.about_me.show() - - def closeEvent(self, a0: QCloseEvent) -> None: - """ - 主窗体退出时的事件,包括弹框提示等。Mac 上测试点击无法退出,修改为QMessageBox.Warning - """ - reply = QMessageBox(QMessageBox.Warning, self.tr('Close'), self.tr('Are you sure close?')) - reply.addButton(self.tr('OK'), QMessageBox.ActionRole) - reply.addButton(self.tr('Cancel'), QMessageBox.RejectRole) - if reply.exec_() == QMessageBox.RejectRole: - a0.ignore() - return - else: - a0.accept() - self.delete_temporary_dock_windows() - self.save_layout() # TODO:PySide2上存储布局有问题。 - Settings.get_instance().save() - self.close_signal.emit() - self.extensions_manager.stop() - for k in self.dock_widgets.keys(): - self.dock_widgets[k].widget().closeEvent(a0) - super().closeEvent(a0) - - def slot_flush_console(self, level: str, module, content): - """刷新主窗体执行情况日志 - - Args: - level: 报错级别,包括 ``info`` , ``warnning`` , ``error`` 。 - module: 业务模块名称,例如 数据获取,数据处理,数据探索,统计,模型,可视化,评估 - content: 具体显示的内容 - """ - create_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') # 日志记录时间 - user = getpass.getuser() - msg = create_time + ' ' + user + ' ' + level.upper() + ' [' + module + ']' + ':' + content - if level == "error": - html = "" + msg + "" - else: - html = "" + msg + "" - console = self.log_output_console # 由于代码重构,这里出现了不同。 - console.moveCursor(QTextCursor.End) - console.append(html) +# class MainWindow(BaseMainWindow): +# setupui_tasks: List[Callable] = [] +# boot_timer: QTimer = None +# close_signal = Signal() +# window_geometry_changed_signal = Signal() +# +# layouts_ready_signal = Signal() +# widgets_ready_signal = Signal() +# events_ready_signal = Signal() +# +# settings_changed_signal = Signal() +# +# @classmethod +# def __new__(cls, *args): +# if not hasattr(cls, 'instance'): +# instance = super().__new__(cls) +# cls.instance = instance +# return cls.instance +# +# def __init__(self, parent=None): +# super().__init__(parent) +# +# t00 = time.time() +# settings = Settings() +# self.main_option_form = base.OptionForm() +# self.project_wizard: base.ProjectWizardForm = None +# self.settings_changed_signal.connect(self.on_settings_changed) +# self.main_option_form.add_page(self.tr('Interpreter'), InterpreterManagerWidget()) +# +# utils._main_window = self +# +# # 主窗体默认大小 +# self.resize(1920, 1080) +# self.setIconSize(QSize(40, 40)) +# # 设置状态栏 +# self.statusBar = QStatusBar() +# version = utils.get_python_version() +# self.statusBar.showMessage(version, 0) +# self.setStatusBar(self.statusBar) +# +# root_dir = os.path.dirname(__file__) +# utils._root_dir = root_dir +# +# self.init_toolbar_tab() +# tb_home = PMToolBarHome() +# self.add_toolbar('toolbar_home', tb_home, text=tb_home.get_toolbar_text()) +# self.setDockNestingEnabled(True) +# self.setWindowTitle('PyMiner') +# +# self.log_output_console = LogOutputConsole(self) +# +# self.add_widget_on_dock( +# 'log_output_console', +# self.log_output_console, +# text=self.tr('Logs'), +# side='right') +# +# # 初始化日志 +# self.slot_flush_console('info', 'system', self.tr('Welcome to PyMiner')) +# +# self.extensions_manager = extensions_manager +# self.extensions_manager.load_from_extension_folder(updateSplashMsg) +# +# self.ext_manager_widget = PMPageExt(self) +# dw = self.add_widget_on_dock( +# 'extension_panel', +# self.ext_manager_widget, +# text=self.tr('Plugs'), +# side='left') +# dw.setMaximumWidth(400) +# +# load_theme(settings['theme']) # 组件都加载后再设置主题,否则可能有些组件不生效 +# self.show() +# self.load_layout() +# self.switch_toolbar('toolbar_home') # 启动完成时,将工具栏切换到‘主页’ +# +# self.on_main_window_shown() +# # self.first_form_display() +# +# self.start_pmlocalserver() # 只要在插件加载完成之后启动就行,目前放在最后 +# self.update_tip_client = UpdateTipClient() # 启动程序,检查更新,弹窗提醒 +# +# t01 = time.time() +# logging.debug('Time Elapsed for loading main window contents: %f' % (t01 - t00)) +# +# def start_pmlocalserver(self): +# """ +# 启动本地flask服务器pmlocalserver +# Returns:None +# +# """ +# server.server_thread.start() +# +# def clear_workspace(self): +# from features.extensions.extensionlib.extension_lib import extension_lib +# extension_lib.get_interface('ipython_console').run_command('Clearing_Variables_ =\'Clear All\'', +# hint_text=self.tr('Start Clear...'), hidden=False) +# extension_lib.get_interface('ipython_console').run_command('get_ipython().clear_all()', +# hint_text=self.tr('Clear all variables'), +# hidden=False) +# +# def add_toolbar(self, name: str, toolbar: PMGToolBar, +# text: str = 'untitled toolbar'): +# """ +# 添加一个工具栏。 +# """ +# if toolbar.insert_after() == '': +# b = self.top_toolbar_tab.add_button(name, text) +# else: +# b = self.top_toolbar_tab.insert_button(name, text, toolbar.insert_after()) +# toolbar.tab_button = b +# b.clicked.connect(lambda: self.on_toolbar_switch_button_clicked(name)) +# +# if hasattr(self, 'toolbar_path'): +# self.insertToolBar(self.toolbar_path, toolbar) +# self.insertToolBarBreak(self.toolbar_path) +# else: +# self.addToolBarBreak(Qt.TopToolBarArea) +# self.addToolBar(toolbar) +# toolbar.setObjectName(name) +# self.toolbars[name] = toolbar +# toolbar.setMovable(False) +# toolbar.setFloatable(False) +# +# if self._current_toolbar_name != '': +# self.refresh_toolbar_appearance() +# +# # def insert_toolbar(self, name: str, toolbar: QToolBar, text: str, insert_after: str): +# # """ +# # 插入一个工具栏。 +# # """ +# # b = self.top_toolbar_tab.add_button(text) +# # toolbar.tab_button = b +# # b.clicked.connect(lambda: self.on_toolbar_switch_button_clicked(name)) +# # +# # if hasattr(self, 'toolbar_path'): +# # self.insertToolBar(self.toolbar_path, toolbar) +# # self.insertToolBarBreak(self.toolbar_path) +# # else: +# # self.addToolBarBreak(Qt.TopToolBarArea) +# # self.addToolBar(toolbar) +# # toolbar.setObjectName(name) +# # self.toolbars[name] = toolbar +# # toolbar.setMovable(False) +# # toolbar.setFloatable(False) +# # +# # if self._current_toolbar_name != '': +# # self.refresh_toolbar_appearance() +# +# def moveEvent(self, a0: 'QMoveEvent') -> None: +# self.window_geometry_changed_signal.emit() +# +# def resizeEvent(self, a0: QResizeEvent) -> None: +# """ +# 窗口大小调节,或者位置改变的信号。 +# Window size adjustment, or a signal of a change in position. +# """ +# self.size_restriction_acquire() +# super().resizeEvent(a0) +# self.delayed_call(500, self.size_restriction_release) +# self.window_geometry_changed_signal.emit() +# +# def on_settings_changed(self): +# """ +# 当设置项发生改变时调用 +# Returns: +# +# """ +# load_theme(utils.get_settings_item_from_file("config.ini", "MAIN/THEME")) +# +# def delayed_call(self, time_ms: int, callback: Callable) -> None: +# """ +# 封装了QTimer.SingleShot +# +# Args: +# time_ms: +# callback: +# +# Returns: +# +# """ +# timer = QTimer() +# timer.singleShot(time_ms, callback) +# +# def size_restriction_acquire(self) -> None: +# """ +# 设置插件尺寸的最大值。 +# 控件需要指定get_split_portion_hint才可以。 +# :return: +# """ +# for k in self.dock_widgets.keys(): +# dw = self.dock_widgets[k] +# horizontal_portion_hint = dw.widget().get_split_portion_hint()[0] +# if horizontal_portion_hint is not None: +# dw.setMaximumWidth(int(self.width() * horizontal_portion_hint)) +# dw.setMinimumWidth(int(self.width() * horizontal_portion_hint)) +# +# def size_restriction_release(self): +# for w_name in self.dock_widgets.keys(): +# self.dock_widgets[w_name].setMaximumWidth(100000) +# self.dock_widgets[w_name].setMaximumHeight(100000) +# self.dock_widgets[w_name].setMinimumHeight(0) +# self.dock_widgets[w_name].setMinimumWidth(0) +# +# def on_main_window_shown(self): +# """ +# 在界面显示后触发的事件。 +# Returns: None +# """ +# t0 = time.time() +# super().on_main_window_shown() +# +# self.layouts_ready_signal.emit() +# for task in self.setupui_tasks: +# task() +# self.widgets_ready_signal.emit() +# t1 = time.time() +# logging.info('Layout ready time elapsed:%f' % (t1 - t0)) +# +# self.set_dock_titlebar_visible(Settings.get_instance()['dock_titlebar_visible']) +# self.bind_events() +# self.events_ready_signal.emit() +# t2 = time.time() +# logging.info('Events ready, time elapsed:%f' % (t2 - t1)) +# +# def first_form_display(self): +# """ +# 显示"快速操作"窗口 +# Displays the "Quick Action" window +# """ +# self.main_first_form = base.FirstForm(parent=self) +# self.main_first_form.show() +# +# def login_form_display(self): +# """ +# 显示"登录"窗口 +# Displays the "Quick Action" window +# """ +# shared_memo = shared_memory.SharedMemory(name="sharedMemory") # 通过name找到共享内存token +# buff = shared_memo.buf +# token = bytes(buff[:199]).decode().replace("\x00", "") +# if token != "": +# self.main_login_form = base.LoginedForm(parent=self) +# self.main_login_form.exec_() +# else: +# self.main_login_form = base.LoginForm(parent=self) +# self.main_login_form.exec_() +# +# def main_appstore_dispaly(self): +# """ +# 显示"应用商店"窗口 +# Displays the "App Store" window +# """ +# self.appstore = MarketplaceForm() +# self.appstore.show() +# +# def main_option_display(self): +# """ +# 显示"选项"窗口 +# """ +# if self.main_option_form is None: +# self.main_option_form = base.OptionForm() +# self.main_option_form.exec_() +# +# def main_help_display(self): +# """ +# 打开帮助页面 +# """ +# utils.open_url("https://gitee.com/py2cn/pyminer/wikis") +# +# def main_check_update_display(self): +# """ +# 打开'检查更新'页面 +# """ +# perform_update() +# +# def main_install_update(self): +# closed = self.close() +# if closed: +# from pmgwidgets import run_python_file_in_terminal +# path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'update', 'update.py') +# run_python_file_in_terminal(path + ' -i') +# +# def main_feedback_display(self): +# """ +# 打开'反馈'页面 +# """ +# FeedbackClient() +# # reply = QMessageBox.information(self, self.tr('Feedback'), self.tr( +# # 'You can give feedback through issue on suggestions or problems encountered in use'), +# # QMessageBox.Yes | QMessageBox.No, +# # QMessageBox.Yes) +# # if reply == QMessageBox.Yes: +# # utils.open_url("https://gitee.com/py2cn/pyminer/issues") +# +# def main_homesite_display(self): +# """ +# 打开官方网站页面 +# """ +# utils.open_url("http://www.pyminer.com") +# +# def main_markdown_display(self): +# print("TODO 添加markdown编辑器代码") +# +# def main_new_script_display(self): +# from features.extensions.extensionlib.extension_lib import extension_lib +# extension_lib.get_interface('code_editor').open_script('') +# +# def main_community_display(self): +# """ +# 打开帮助页面 +# """ +# utils.open_url("https://www.kuxai.com/") +# +# def main_project_wizard_display(self): +# """ +# 打开新建项目向导 +# """ +# self.wizard = project_wizard = base.ProjectWizardForm(parent=self) +# project_wizard.exec_() +# +# def main_about_display(self): +# """ +# 打开关于页面,并将当前操作系统信息写入页面 +# """ +# self.about_me = base.AboutForm() +# self.about_me.show() +# +# def closeEvent(self, a0: QCloseEvent) -> None: +# """ +# 主窗体退出时的事件,包括弹框提示等。Mac 上测试点击无法退出,修改为QMessageBox.Warning +# """ +# reply = QMessageBox(QMessageBox.Warning, self.tr('Close'), self.tr('Are you sure close?')) +# reply.addButton(self.tr('OK'), QMessageBox.ActionRole) +# reply.addButton(self.tr('Cancel'), QMessageBox.RejectRole) +# if reply.exec_() == QMessageBox.RejectRole: +# a0.ignore() +# return +# else: +# a0.accept() +# self.delete_temporary_dock_windows() +# self.save_layout() # TODO:PySide2上存储布局有问题。 +# Settings.get_instance().save() +# self.close_signal.emit() +# self.extensions_manager.stop() +# for k in self.dock_widgets.keys(): +# self.dock_widgets[k].widget().closeEvent(a0) +# super().closeEvent(a0) +# +# def slot_flush_console(self, level: str, module, content): +# """刷新主窗体执行情况日志 +# +# Args: +# level: 报错级别,包括 ``info`` , ``warnning`` , ``error`` 。 +# module: 业务模块名称,例如 数据获取,数据处理,数据探索,统计,模型,可视化,评估 +# content: 具体显示的内容 +# """ +# create_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') # 日志记录时间 +# user = getpass.getuser() +# msg = create_time + ' ' + user + ' ' + level.upper() + ' [' + module + ']' + ':' + content +# if level == "error": +# html = "" + msg + "" +# else: +# html = "" + msg + "" +# +# console = self.log_output_console # 由于代码重构,这里出现了不同。 +# console.moveCursor(QTextCursor.End) +# console.append(html) diff --git a/resources/qss/Fusion.qss b/resources/qss/Fusion.qss index f4d798d8..9b4ebb6c 100644 --- a/resources/qss/Fusion.qss +++ b/resources/qss/Fusion.qss @@ -15,10 +15,10 @@ QDockWidget::title{ } QPushButton{ - background-color: MAIN_THEME; + background-color: #F7F7F7; } QPushButton:hover{ - background-color:MARGIN_THEME; + background-color:#DADADA; } QPushButton#pmtopToolbarButton[stat="unselected"]:hover{ @@ -29,7 +29,7 @@ QPushButton#pmtopToolbarButton[stat="selected"]{ margin: 5px 5px -5px 5px; min-width: 120px; border-radius:5px; - background-color: MAIN_THEME; + background-color: #F7F7F7; } QPushButton#pmtopToolbarButton[stat="unselected"]{ padding: 5px 0px 10px 0px; @@ -66,10 +66,10 @@ QToolButton{ border-radius:5px; } QToolButton:hover{ - background-color:MARGIN_THEME; + background-color:#DADADA; } QToolButton::checked{ - background-color:MARGIN_THEME; + background-color:#DADADA; } QToolButton#hidebutton { max-width: 15px; @@ -110,14 +110,14 @@ QToolButton#stacked_tool_button::menu-indicator:image{ /*以下几行设定的是滚动条的横竖向功能*/ QScrollBar::vertical { - background: MARGIN_THEME; + background: #DADADA; border: -0px solid grey; margin: 0px 0px 0px 0px; width: 10px; border-radius:5px; } QScrollBar::horizontal { - background: MARGIN_THEME; + background: #DADADA; border: -0px solid grey; margin: 0px 0px 0px 0px; height:10px; @@ -127,17 +127,17 @@ QScrollBar::horizontal { QScrollBar::handle:vertical{ border-radius:3px; min-height:30px; -background:MARGIN_THEME; +background:#DADADA; } QScrollBar::handle:horizontal{ border-radius:3px; min-width:30px; -background:MARGIN_THEME; +background:#DADADA; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: MAIN_THEME; + background: #F7F7F7; border:0px; } diff --git a/resources/qss/standard.qss b/resources/qss/standard.qss index b2e7ad2a..cb948716 100644 --- a/resources/qss/standard.qss +++ b/resources/qss/standard.qss @@ -5,20 +5,20 @@ github链接: https://github.com/PyQt5/PyQt/blob/master/QScrollArea/Data/style.qss 文件加载时,将会自动替换MAIN_THEME和MARGIN_THEME为相应的颜色。 */ -QMainWindow{background-color:MAIN_THEME;} -QDialog{background-color:MAIN_THEME;} +QMainWindow{background-color:#F7F7F7;} +QDialog{background-color:#F7F7F7;} QAbstractScrollArea{ - border:1px solid MARGIN_THEME; + border:1px solid #DADADA; } TopToolBar { - border-bottom: 1px solid MARGIN_THEME; - border-top: 1px solid MARGIN_THEME; + border-bottom: 1px solid #DADADA; + border-top: 1px solid #DADADA; } TopToolBarRight { - border-bottom: 1px solid MARGIN_THEME; - border-top: 1px solid MARGIN_THEME; + border-bottom: 1px solid #DADADA; + border-top: 1px solid #DADADA; } QDockWidget { @@ -49,12 +49,12 @@ QDockWidget::close-button:pressed, QDockWidget::float-button:pressed { } QPushButton{ - border:1px solid MARGIN_THEME; + border:1px solid #DADADA; border-radius:5px; height:20px; width:80px; } -QPushButton:hover{background-color:MARGIN_THEME;} +QPushButton:hover{background-color:#DADADA;} /*按钮停留态*/ QPushButton#pmtopToolbarButton[stat="selected"]{ /*背景颜色*/ @@ -62,7 +62,7 @@ QPushButton#pmtopToolbarButton[stat="selected"]{ padding:0px 0px 0px 0px; border:1px; border-radius:8px; - background-color:MARGIN_THEME; + background-color:#DADADA; } QPushButton#pmtopToolbarButton[stat="unselected"]{ @@ -71,7 +71,7 @@ QPushButton#pmtopToolbarButton[stat="unselected"]{ padding:0px 0px 0px 0px; border:1px; border-radius:8px; - background-color:MAIN_THEME; + background-color:#F7F7F7; } QPushButton#pmtopToolbarButton:hover{ @@ -86,7 +86,7 @@ QPushButton#pmtopToolbarButton:hover{ QPushButton:hover { /*背景颜色*/ - background-color:MARGIN_THEME; + background-color:#DADADA; } QToolBar{ height:100px; @@ -104,7 +104,7 @@ QToolButton{ QToolButton:hover { /*背景颜色*/ - background-color:MARGIN_THEME; + background-color:#DADADA; } /*toolbutton下三角居中靠下显示*/ QToolButton::menu-indicator:image{ @@ -115,14 +115,14 @@ QToolButton::menu-indicator:image{ QScrollBar::vertical { - background: MARGIN_THEME; + background: #DADADA; border: -0px solid grey; margin: 0px 0px 0px 0px; width: 10px; border-radius:5px; } QScrollBar::horizontal { - background: MARGIN_THEME; + background: #DADADA; margin: 0px 0px 0px 0px; height:10px; @@ -130,16 +130,16 @@ QScrollBar::horizontal { QScrollBar::handle:vertical{ border-radius:3px; -background:MARGIN_THEME; +background:#DADADA; } QScrollBar::handle:horizontal{ border-radius:3px; -background:MARGIN_THEME; +background:#DADADA; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: MAIN_THEME; + background: #F7F7F7; border:0px; } QMessageBox QPushButton[text="OK"] { diff --git a/resources/qss/windowsvista.qss b/resources/qss/windowsvista.qss index 5c87512e..dc95f29a 100644 --- a/resources/qss/windowsvista.qss +++ b/resources/qss/windowsvista.qss @@ -53,7 +53,7 @@ QToolButton{ border-radius:5px; } QToolButton:hover{ - background-color:MARGIN_THEME; + background-color: #DADADA; } QToolButton#hidebutton { max-width: 15px; diff --git a/utils/__init__.py b/utils/__init__.py index 47fefc0f..e70f3f75 100644 --- a/utils/__init__.py +++ b/utils/__init__.py @@ -35,15 +35,16 @@ from .settings import * from .ui import * if TYPE_CHECKING: - import pmgui + import app2 + from PySide2.QtWidgets import QApplication # version = 'v2.1.0 Beta' 这里原有version ,但是考虑到这些信息写在静态文件中较好,所以就写在了文件中。 -_application = None +_application = Optional["QApplication"] _root_dir = None -_main_window: Optional["pmgui.MainWindow"] = None +_main_window: Optional["app2.MainWindow"] = None -def get_application() -> None: +def get_application() -> "QApplication": """ 获取QApplication Returns: @@ -53,7 +54,7 @@ def get_application() -> None: return _application -def get_main_window() -> Optional["pmgui.MainWindow"]: +def get_main_window() -> Optional["app2.MainWindow"]: """ 获取主窗口或者主控件。 Returns: @@ -66,8 +67,7 @@ def get_work_dir() -> 'str': 获取主窗口或者主控件。 Returns: """ - from features.io.settings import Settings - return Settings.get_instance()['work_dir'] + return get_settings_item_from_file("config.ini", "MAIN/PATH_WORKDIR") def open_url(url): diff --git a/utils/settings/settings.py b/utils/settings/settings.py index ceb1a2a1..6ededd52 100644 --- a/utils/settings/settings.py +++ b/utils/settings/settings.py @@ -51,7 +51,7 @@ def get_settings_item_from_file(file_name: str, item: str, mode="user") -> Any: val = QSettings(default_cfg_file_path, QSettings.IniFormat).value(item) else: val = QSettings(default_cfg_file_path, QSettings.IniFormat).value(item) - assert val is not None, (default_cfg_file_path, item) + assert val is not None, (default_cfg_file_path, item, mode) try: val = ast.literal_eval(val) except: -- Gitee From d30b0ec9f5a08f61cc59e5d57e6998e3afe6cb97 Mon Sep 17 00:00:00 2001 From: hzy15610046011 <1295752786@qq.com> Date: Sun, 25 Apr 2021 14:43:09 +0800 Subject: [PATCH 08/14] =?UTF-8?q?=E4=BD=BF=E7=94=A8QSettings=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=EF=BC=8C=E4=BD=86=E6=98=AF=E7=9B=AE=E5=89=8D=E8=BF=98?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=81=9A=E5=92=8C=E4=B9=8B=E5=89=8D=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=9A=84=E9=80=82=E9=85=8D=E5=B7=A5=E4=BD=9C=EF=BC=8C?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E5=88=87=E6=8D=A2=E5=8A=9F=E8=83=BD=E6=9A=82?= =?UTF-8?q?=E6=97=B6=E6=B2=A1=E6=9C=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pmgui.py | 392 +------------------------------------------------------ 1 file changed, 2 insertions(+), 390 deletions(-) diff --git a/pmgui.py b/pmgui.py index f83fc3bd..7e425da5 100644 --- a/pmgui.py +++ b/pmgui.py @@ -1,24 +1,6 @@ -import datetime -import getpass -import logging -import os -import time -from multiprocessing import shared_memory -from typing import List, Callable +from PySide2.QtCore import Qt +from PySide2.QtWidgets import QTextEdit -from PySide2.QtCore import Signal, QTimer, Qt, QSize -from PySide2.QtGui import QCloseEvent, QTextCursor, QResizeEvent, QMoveEvent -from PySide2.QtWidgets import QTextEdit, QMessageBox, QStatusBar - -import utils -from features.extensions.extensions_manager.manager import extensions_manager -from features.feedback import FeedbackClient -from features.interpretermanager.interpretermanager import InterpreterManagerWidget -from features.io.settings import load_theme -from features.main_window import base -from features.ui.pmwidgets import BaseMainWindow -from features.ui.widgets.controlpanel import PMPageExt -from features.util.update import perform_update, UpdateTipClient from pmgwidgets import PMGToolBar, ActionWithMessage, PMDockObject, create_icon from utils import get_main_window, get_application @@ -168,373 +150,3 @@ class PMToolBarHome(PMGToolBar): class LogOutputConsole(QTextEdit, PMDockObject): pass - - -# class MainWindow(BaseMainWindow): -# setupui_tasks: List[Callable] = [] -# boot_timer: QTimer = None -# close_signal = Signal() -# window_geometry_changed_signal = Signal() -# -# layouts_ready_signal = Signal() -# widgets_ready_signal = Signal() -# events_ready_signal = Signal() -# -# settings_changed_signal = Signal() -# -# @classmethod -# def __new__(cls, *args): -# if not hasattr(cls, 'instance'): -# instance = super().__new__(cls) -# cls.instance = instance -# return cls.instance -# -# def __init__(self, parent=None): -# super().__init__(parent) -# -# t00 = time.time() -# settings = Settings() -# self.main_option_form = base.OptionForm() -# self.project_wizard: base.ProjectWizardForm = None -# self.settings_changed_signal.connect(self.on_settings_changed) -# self.main_option_form.add_page(self.tr('Interpreter'), InterpreterManagerWidget()) -# -# utils._main_window = self -# -# # 主窗体默认大小 -# self.resize(1920, 1080) -# self.setIconSize(QSize(40, 40)) -# # 设置状态栏 -# self.statusBar = QStatusBar() -# version = utils.get_python_version() -# self.statusBar.showMessage(version, 0) -# self.setStatusBar(self.statusBar) -# -# root_dir = os.path.dirname(__file__) -# utils._root_dir = root_dir -# -# self.init_toolbar_tab() -# tb_home = PMToolBarHome() -# self.add_toolbar('toolbar_home', tb_home, text=tb_home.get_toolbar_text()) -# self.setDockNestingEnabled(True) -# self.setWindowTitle('PyMiner') -# -# self.log_output_console = LogOutputConsole(self) -# -# self.add_widget_on_dock( -# 'log_output_console', -# self.log_output_console, -# text=self.tr('Logs'), -# side='right') -# -# # 初始化日志 -# self.slot_flush_console('info', 'system', self.tr('Welcome to PyMiner')) -# -# self.extensions_manager = extensions_manager -# self.extensions_manager.load_from_extension_folder(updateSplashMsg) -# -# self.ext_manager_widget = PMPageExt(self) -# dw = self.add_widget_on_dock( -# 'extension_panel', -# self.ext_manager_widget, -# text=self.tr('Plugs'), -# side='left') -# dw.setMaximumWidth(400) -# -# load_theme(settings['theme']) # 组件都加载后再设置主题,否则可能有些组件不生效 -# self.show() -# self.load_layout() -# self.switch_toolbar('toolbar_home') # 启动完成时,将工具栏切换到‘主页’ -# -# self.on_main_window_shown() -# # self.first_form_display() -# -# self.start_pmlocalserver() # 只要在插件加载完成之后启动就行,目前放在最后 -# self.update_tip_client = UpdateTipClient() # 启动程序,检查更新,弹窗提醒 -# -# t01 = time.time() -# logging.debug('Time Elapsed for loading main window contents: %f' % (t01 - t00)) -# -# def start_pmlocalserver(self): -# """ -# 启动本地flask服务器pmlocalserver -# Returns:None -# -# """ -# server.server_thread.start() -# -# def clear_workspace(self): -# from features.extensions.extensionlib.extension_lib import extension_lib -# extension_lib.get_interface('ipython_console').run_command('Clearing_Variables_ =\'Clear All\'', -# hint_text=self.tr('Start Clear...'), hidden=False) -# extension_lib.get_interface('ipython_console').run_command('get_ipython().clear_all()', -# hint_text=self.tr('Clear all variables'), -# hidden=False) -# -# def add_toolbar(self, name: str, toolbar: PMGToolBar, -# text: str = 'untitled toolbar'): -# """ -# 添加一个工具栏。 -# """ -# if toolbar.insert_after() == '': -# b = self.top_toolbar_tab.add_button(name, text) -# else: -# b = self.top_toolbar_tab.insert_button(name, text, toolbar.insert_after()) -# toolbar.tab_button = b -# b.clicked.connect(lambda: self.on_toolbar_switch_button_clicked(name)) -# -# if hasattr(self, 'toolbar_path'): -# self.insertToolBar(self.toolbar_path, toolbar) -# self.insertToolBarBreak(self.toolbar_path) -# else: -# self.addToolBarBreak(Qt.TopToolBarArea) -# self.addToolBar(toolbar) -# toolbar.setObjectName(name) -# self.toolbars[name] = toolbar -# toolbar.setMovable(False) -# toolbar.setFloatable(False) -# -# if self._current_toolbar_name != '': -# self.refresh_toolbar_appearance() -# -# # def insert_toolbar(self, name: str, toolbar: QToolBar, text: str, insert_after: str): -# # """ -# # 插入一个工具栏。 -# # """ -# # b = self.top_toolbar_tab.add_button(text) -# # toolbar.tab_button = b -# # b.clicked.connect(lambda: self.on_toolbar_switch_button_clicked(name)) -# # -# # if hasattr(self, 'toolbar_path'): -# # self.insertToolBar(self.toolbar_path, toolbar) -# # self.insertToolBarBreak(self.toolbar_path) -# # else: -# # self.addToolBarBreak(Qt.TopToolBarArea) -# # self.addToolBar(toolbar) -# # toolbar.setObjectName(name) -# # self.toolbars[name] = toolbar -# # toolbar.setMovable(False) -# # toolbar.setFloatable(False) -# # -# # if self._current_toolbar_name != '': -# # self.refresh_toolbar_appearance() -# -# def moveEvent(self, a0: 'QMoveEvent') -> None: -# self.window_geometry_changed_signal.emit() -# -# def resizeEvent(self, a0: QResizeEvent) -> None: -# """ -# 窗口大小调节,或者位置改变的信号。 -# Window size adjustment, or a signal of a change in position. -# """ -# self.size_restriction_acquire() -# super().resizeEvent(a0) -# self.delayed_call(500, self.size_restriction_release) -# self.window_geometry_changed_signal.emit() -# -# def on_settings_changed(self): -# """ -# 当设置项发生改变时调用 -# Returns: -# -# """ -# load_theme(utils.get_settings_item_from_file("config.ini", "MAIN/THEME")) -# -# def delayed_call(self, time_ms: int, callback: Callable) -> None: -# """ -# 封装了QTimer.SingleShot -# -# Args: -# time_ms: -# callback: -# -# Returns: -# -# """ -# timer = QTimer() -# timer.singleShot(time_ms, callback) -# -# def size_restriction_acquire(self) -> None: -# """ -# 设置插件尺寸的最大值。 -# 控件需要指定get_split_portion_hint才可以。 -# :return: -# """ -# for k in self.dock_widgets.keys(): -# dw = self.dock_widgets[k] -# horizontal_portion_hint = dw.widget().get_split_portion_hint()[0] -# if horizontal_portion_hint is not None: -# dw.setMaximumWidth(int(self.width() * horizontal_portion_hint)) -# dw.setMinimumWidth(int(self.width() * horizontal_portion_hint)) -# -# def size_restriction_release(self): -# for w_name in self.dock_widgets.keys(): -# self.dock_widgets[w_name].setMaximumWidth(100000) -# self.dock_widgets[w_name].setMaximumHeight(100000) -# self.dock_widgets[w_name].setMinimumHeight(0) -# self.dock_widgets[w_name].setMinimumWidth(0) -# -# def on_main_window_shown(self): -# """ -# 在界面显示后触发的事件。 -# Returns: None -# """ -# t0 = time.time() -# super().on_main_window_shown() -# -# self.layouts_ready_signal.emit() -# for task in self.setupui_tasks: -# task() -# self.widgets_ready_signal.emit() -# t1 = time.time() -# logging.info('Layout ready time elapsed:%f' % (t1 - t0)) -# -# self.set_dock_titlebar_visible(Settings.get_instance()['dock_titlebar_visible']) -# self.bind_events() -# self.events_ready_signal.emit() -# t2 = time.time() -# logging.info('Events ready, time elapsed:%f' % (t2 - t1)) -# -# def first_form_display(self): -# """ -# 显示"快速操作"窗口 -# Displays the "Quick Action" window -# """ -# self.main_first_form = base.FirstForm(parent=self) -# self.main_first_form.show() -# -# def login_form_display(self): -# """ -# 显示"登录"窗口 -# Displays the "Quick Action" window -# """ -# shared_memo = shared_memory.SharedMemory(name="sharedMemory") # 通过name找到共享内存token -# buff = shared_memo.buf -# token = bytes(buff[:199]).decode().replace("\x00", "") -# if token != "": -# self.main_login_form = base.LoginedForm(parent=self) -# self.main_login_form.exec_() -# else: -# self.main_login_form = base.LoginForm(parent=self) -# self.main_login_form.exec_() -# -# def main_appstore_dispaly(self): -# """ -# 显示"应用商店"窗口 -# Displays the "App Store" window -# """ -# self.appstore = MarketplaceForm() -# self.appstore.show() -# -# def main_option_display(self): -# """ -# 显示"选项"窗口 -# """ -# if self.main_option_form is None: -# self.main_option_form = base.OptionForm() -# self.main_option_form.exec_() -# -# def main_help_display(self): -# """ -# 打开帮助页面 -# """ -# utils.open_url("https://gitee.com/py2cn/pyminer/wikis") -# -# def main_check_update_display(self): -# """ -# 打开'检查更新'页面 -# """ -# perform_update() -# -# def main_install_update(self): -# closed = self.close() -# if closed: -# from pmgwidgets import run_python_file_in_terminal -# path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'update', 'update.py') -# run_python_file_in_terminal(path + ' -i') -# -# def main_feedback_display(self): -# """ -# 打开'反馈'页面 -# """ -# FeedbackClient() -# # reply = QMessageBox.information(self, self.tr('Feedback'), self.tr( -# # 'You can give feedback through issue on suggestions or problems encountered in use'), -# # QMessageBox.Yes | QMessageBox.No, -# # QMessageBox.Yes) -# # if reply == QMessageBox.Yes: -# # utils.open_url("https://gitee.com/py2cn/pyminer/issues") -# -# def main_homesite_display(self): -# """ -# 打开官方网站页面 -# """ -# utils.open_url("http://www.pyminer.com") -# -# def main_markdown_display(self): -# print("TODO 添加markdown编辑器代码") -# -# def main_new_script_display(self): -# from features.extensions.extensionlib.extension_lib import extension_lib -# extension_lib.get_interface('code_editor').open_script('') -# -# def main_community_display(self): -# """ -# 打开帮助页面 -# """ -# utils.open_url("https://www.kuxai.com/") -# -# def main_project_wizard_display(self): -# """ -# 打开新建项目向导 -# """ -# self.wizard = project_wizard = base.ProjectWizardForm(parent=self) -# project_wizard.exec_() -# -# def main_about_display(self): -# """ -# 打开关于页面,并将当前操作系统信息写入页面 -# """ -# self.about_me = base.AboutForm() -# self.about_me.show() -# -# def closeEvent(self, a0: QCloseEvent) -> None: -# """ -# 主窗体退出时的事件,包括弹框提示等。Mac 上测试点击无法退出,修改为QMessageBox.Warning -# """ -# reply = QMessageBox(QMessageBox.Warning, self.tr('Close'), self.tr('Are you sure close?')) -# reply.addButton(self.tr('OK'), QMessageBox.ActionRole) -# reply.addButton(self.tr('Cancel'), QMessageBox.RejectRole) -# if reply.exec_() == QMessageBox.RejectRole: -# a0.ignore() -# return -# else: -# a0.accept() -# self.delete_temporary_dock_windows() -# self.save_layout() # TODO:PySide2上存储布局有问题。 -# Settings.get_instance().save() -# self.close_signal.emit() -# self.extensions_manager.stop() -# for k in self.dock_widgets.keys(): -# self.dock_widgets[k].widget().closeEvent(a0) -# super().closeEvent(a0) -# -# def slot_flush_console(self, level: str, module, content): -# """刷新主窗体执行情况日志 -# -# Args: -# level: 报错级别,包括 ``info`` , ``warnning`` , ``error`` 。 -# module: 业务模块名称,例如 数据获取,数据处理,数据探索,统计,模型,可视化,评估 -# content: 具体显示的内容 -# """ -# create_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') # 日志记录时间 -# user = getpass.getuser() -# msg = create_time + ' ' + user + ' ' + level.upper() + ' [' + module + ']' + ':' + content -# if level == "error": -# html = "" + msg + "" -# else: -# html = "" + msg + "" -# -# console = self.log_output_console # 由于代码重构,这里出现了不同。 -# console.moveCursor(QTextCursor.End) -# console.append(html) -- Gitee From e5b4a8b9a37dd6aa976dc5df560262e967e30128 Mon Sep 17 00:00:00 2001 From: hzy15610046011 <1295752786@qq.com> Date: Sun, 25 Apr 2021 15:42:00 +0800 Subject: [PATCH 09/14] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extensions/extensionlib/extension_lib.py | 2 + packages/ipython_console/initialize.py | 51 +----------- packages/socket_server/server_by_socket.py | 81 +++++++++++-------- pyminer_comm/pyminer_client/pm_client.py | 2 +- 4 files changed, 53 insertions(+), 83 deletions(-) diff --git a/features/extensions/extensionlib/extension_lib.py b/features/extensions/extensionlib/extension_lib.py index 60b96ed6..90126d73 100644 --- a/features/extensions/extensionlib/extension_lib.py +++ b/features/extensions/extensionlib/extension_lib.py @@ -314,7 +314,9 @@ def wrapper(): dir = utils.get_settings_item_from_file("config.ini", "MAIN/PATH_WORKDIR") if (not isinstance(dir, str)) or (not os.path.exists(dir)): dir = os.path.join(os.path.expanduser("~"), "Desktop") + utils.write_settings_item_to_file("config.ini", "MAIN/PATH_WORKDIR", dir) return dir + @staticmethod def get_theme() -> str: """ diff --git a/packages/ipython_console/initialize.py b/packages/ipython_console/initialize.py index 700d646b..433382e4 100644 --- a/packages/ipython_console/initialize.py +++ b/packages/ipython_console/initialize.py @@ -380,59 +380,16 @@ def __cell_exec_func(raw_cell, store_history=False, silent=False, shell_futures= Returns: """ - import ast __ip = get_ipython() __cwd = os.getcwd() - class PyMinerIPyConsoleNodeTransformer(ast.NodeTransformer): - def __init__(self): - super(PyMinerIPyConsoleNodeTransformer, self).__init__() - self.identifier_list = [] - self.str_list = [] - - def visit_Name(self, node: ast.Name): - """ - - Args: - node: - - Returns: - - """ - self.identifier_list.append(node.id) - - def visit_Str(self, node: ast.Str): - """ - - Args: - node: - - Returns: - - """ - self.str_list.append(node.s) - - def show_identifiers_might_changed(self, code): - """ - - Args: - code: - - Returns: - - """ - self.identifier_list = [] - self.str_list = [] - self.visit(ast.parse(code)) - return [s for s in list(set(self.identifier_list + self.str_list)) if s.isidentifier()] - - s = get_ipython().original_run_cell_func(raw_cell, store_history=store_history, silent=silent, - shell_futures=shell_futures) + __ret = get_ipython().original_run_cell_func(raw_cell, store_history=store_history, silent=silent, + shell_futures=shell_futures) __ip.var_name_list = list(__ip.filter_vars(globals()).keys()) __ip.update_workspace() if __cwd != os.getcwd(): - modify_settings({'work_dir': os.getcwd()}) - return s + modify_settings({'MAIN/PATH_WORKDIR': os.getcwd()}) + return __ret def __chdir(path: str): diff --git a/packages/socket_server/server_by_socket.py b/packages/socket_server/server_by_socket.py index 65e801b1..9975e4f2 100644 --- a/packages/socket_server/server_by_socket.py +++ b/packages/socket_server/server_by_socket.py @@ -1,14 +1,13 @@ import json import logging +import queue import sys -import time -from typing import Dict, Any, List, Tuple +import threading +from typing import Dict, Any -import cloudpickle +from PySide2.QtCore import Signal, QObject, QThread from PySide2.QtWidgets import QApplication -from PySide2.QtCore import Signal, QTimer, QObject, QThread -import threading -import queue + from pyminer_comm.base import b64_to_dict, dict_to_b64, DataDesc, get_protocol logger = logging.getLogger(__name__) @@ -18,17 +17,10 @@ INTERFACE_CALLED = 3 from flask import Flask, request app = Flask(__name__) -worker: 'LoopWork' = None message_queue: queue.Queue = queue.Queue() extension_lib = None -@app.route('/get_data_desc') -def hello_world(): - global message_queue - return 'Hello World!' - - @app.route('/modify_settings') def modify_settings(): global message_queue @@ -57,17 +49,26 @@ def get_settings(): """ global message_queue return "['Warning this method was deprecated']" - # return json.dumps(extension_lib.Program.get_settings()) @app.route('/get_stylesheet') def get_stylesheet(): + """ + 获取QApplication的样式表 + Returns: + + """ assert QApplication.instance() is not None return QApplication.instance().styleSheet() @app.route('/set_data') def modify_data_descs(): + """ + 将工作空间中设置为data_desc型变量 + Returns: + + """ global message_queue try: datadesc_dict = b64_to_dict(request.args.get('msg')) @@ -84,6 +85,11 @@ def modify_data_descs(): @app.route('/interface_call') def run_command(): + """ + 运行命令,调用接口函数。 + Returns: + + """ global message_queue try: settings = request.args.get('msg') @@ -103,16 +109,6 @@ def run_command(): return "Failed!" -class LoopWork(QObject): - def __init__(self, server_obj: 'Flask'): - super().__init__() - self.server_obj = server_obj - self.threads = [] - - def work(self): - app.run(port=12306) - - class QueueWork(QObject): signal_queue_recv = Signal(object) @@ -150,10 +146,9 @@ class PMGServer(QObject): def __init__(self, parent=None): super().__init__(parent) - global worker self.queue_loop_thread = QThread() - self.queue_worker = QueueWork() + self.queue_worker = QueueWork() # 队列处理 self.queue_worker.moveToThread(self.queue_loop_thread) @@ -173,8 +168,11 @@ class PMGServer(QObject): def on_recv(self, msg: object): """ - :param msg: - :return: + Args: + msg: 收到的信息 + + Returns: + """ if msg[0] == DATA_CHANGED: self.signal_data_set.emit(msg[1]) @@ -182,8 +180,18 @@ class PMGServer(QObject): self.signal_settings_changed.emit(msg[1]) elif msg[0] == INTERFACE_CALLED: self.signal_interface_called.emit(msg[1]['interface'], msg[1]['method'], msg[1]['kwargs'], msg[2]) + else: + logger.error("received error:" + repr(object)) def on_data_set(self, data: Dict[str, Any]): + """ + 当数据设置时的回调 + Args: + data: + + Returns: + + """ names = self.extension_lib.Data.get_all_variable_names() for name in names: if name not in data.keys(): @@ -193,13 +201,16 @@ class PMGServer(QObject): def on_settings_changed(self, settings: Dict[str, Any]): """ - 改变设置 - :param settings - :return: + 改变设置时的回调 + Args: + settings: + + Returns: + """ - logger.warning("目前服务器on_settings_changed方法无效!") - raise DeprecationWarning - # self.extension_lib.Program.update_settings(settings) + for k, v in settings.items(): + self.extension_lib.Program.write_settings_item_to_file("config.ini", k, v) + self.extension_lib.Signal.get_settings_changed_signal().emit() def on_interface_called(self, interface_name: str, method_name: str, kwargs: Dict, res_queue: queue.Queue): interface = self.extension_lib.get_interface(interface_name) @@ -221,7 +232,7 @@ def run_server(port: int = None, ext_lib=None): extension_lib = ext_lib server = PMGServer() - server_thread = threading.Thread(target=app.run, kwargs={'port': 12306}) + server_thread = threading.Thread(target=app.run, kwargs={'port': port}) server_thread.setDaemon(True) server_thread.start() diff --git a/pyminer_comm/pyminer_client/pm_client.py b/pyminer_comm/pyminer_client/pm_client.py index 12c259dc..a16f941b 100644 --- a/pyminer_comm/pyminer_client/pm_client.py +++ b/pyminer_comm/pyminer_client/pm_client.py @@ -21,7 +21,7 @@ def modify_settings(items: Dict[str, Any]): """ assert isinstance(items, dict), items res = get('modify_settings', dict_to_b64(items, protocol=get_protocol()), 12306, ) - + return res def set_data_desc_dic(data: Dict[str, Any]) -> None: for k, v in data.items(): -- Gitee From 6c3733e98079e1f7031bdd284c327ae6ab86fdc7 Mon Sep 17 00:00:00 2001 From: siogian Date: Sun, 23 May 2021 19:17:42 +0800 Subject: [PATCH 10/14] =?UTF-8?q?=E4=B8=BA=E6=8E=A7=E5=88=B6=E5=8F=B0?= =?UTF-8?q?=E6=96=B0=E5=A2=9E"=E6=9F=A5=E7=9C=8B=E5=8E=86=E5=8F=B2"?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=20https://gitee.com/py2cn/pyminer/issues/I27?= =?UTF-8?q?AQJ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/others/ConsoleHistoryDialog.py | 98 +++++++++++++++ .../basic/others/Ui_ConsoleHistoryDialog.py | 115 ++++++++++++++++++ pmgwidgets/widgets/basic/others/console.py | 51 +++++++- 3 files changed, 258 insertions(+), 6 deletions(-) create mode 100644 pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py create mode 100644 pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py diff --git a/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py b/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py new file mode 100644 index 00000000..e2cd5596 --- /dev/null +++ b/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py @@ -0,0 +1,98 @@ +import os + +from PySide2 import QtCore +from PySide2.QtCore import QItemSelectionModel +from PySide2.QtWidgets import QApplication, QDialog +from qtconsole.frontend_widget import FrontendWidget +from .Ui_ConsoleHistoryDialog import Ui_ConsoleHistoryDialog + + +class ConsoleHistoryDialog(QDialog, Ui_ConsoleHistoryDialog): + """ + Class implementing the shell history dialog. + """ + + def __init__(self, console): + super().__init__() + self.setupUi(self) + self.__console = console + + self.deleteButton.clicked.connect(self.on_deleteButton_clicked) + self.copyButton.clicked.connect(self.on_copyButton_clicked) + self.reloadButton.clicked.connect(self.on_reloadButton_clicked) + self.historyList.itemSelectionChanged.connect( + self.on_historyList_itemSelectionChanged) + + self.reloadButton.click() + + @QtCore.Slot(QtCore.QModelIndex) + def select(self, item): + print(item.data()) + + @QtCore.Slot() + def on_historyList_itemSelectionChanged(self): + """ + Private slot to handle a change of the selection. + """ + selected = len(self.historyList.selectedItems()) > 0 + self.deleteButton.setEnabled(selected) + self.copyButton.setEnabled(selected) + self.executeButton.setEnabled(selected) + + @QtCore.Slot() + def on_deleteButton_clicked(self): + """ + Private slot to delete the selected entries from the history. + """ + for itm in self.historyList.selectedItems(): + ditm = self.historyList.takeItem(self.historyList.row(itm)) + del ditm + self.historyList.scrollToItem(self.historyList.currentItem()) + self.historyList.setFocus() + + @QtCore.Slot() + def on_copyButton_clicked(self): + cmds = self.selected_cmds() + QApplication.clipboard().setText(cmds) + + @QtCore.Slot() + def on_executeButton_clicked(self): + cmds = self.selected_cmds() + self.__console.hint_command(cmds) + self.__console.do_execute(cmds, True, '') + # reload the list because shell modified it + self.on_reloadButton_clicked() + + @QtCore.Slot() + def on_reloadButton_clicked(self): + """ + Private slot to reload the history. + """ + history = self.__console.history_tail(0) + + self.historyList.clear() + self.historyList.addItems(history) + self.historyList.setCurrentRow( + self.historyList.count() - 1, + QItemSelectionModel.SelectionFlag.Select) + + self.historyList.scrollToItem(self.historyList.currentItem()) + + @QtCore.Slot(QtCore.QModelIndex) + def on_historyList_doubleClicked(self, item): + self.on_executeButton_clicked() + + def get_history(self): + history = [] + for index in range(self.historyList.count()): + history.append(self.historyList.item(index).text()) + return history + + def selected_cmds(self): + lines = [] + for index in range(self.historyList.count()): + # selectedItems() doesn't seem to preserve the order + itm = self.historyList.item(index) + if itm.isSelected(): + lines.append(itm.text()) + return (os.linesep.join(lines) + os.linesep).rstrip(os.linesep) diff --git a/pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py b/pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py new file mode 100644 index 00000000..e555d7ae --- /dev/null +++ b/pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- + +################################################################################ +# Form generated from reading UI file 'ConsoleHistoryDialog.ui' +## +# Created by: Qt User Interface Compiler version 6.1.0 +## +# WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide2.QtCore import * +from PySide2.QtGui import * +from PySide2.QtWidgets import * + + +class Ui_ConsoleHistoryDialog(object): + def setupUi(self, ConsoleHistoryDialog): + if not ConsoleHistoryDialog.objectName(): + ConsoleHistoryDialog.setObjectName(u"ConsoleHistoryDialog") + ConsoleHistoryDialog.resize(540, 506) + ConsoleHistoryDialog.setSizeGripEnabled(True) + self.gridLayout = QGridLayout(ConsoleHistoryDialog) + self.gridLayout.setObjectName(u"gridLayout") + self.historyList = QListWidget(ConsoleHistoryDialog) + self.historyList.setObjectName(u"historyList") + font = QFont() + font.setFamilies([u"Monospace"]) + self.historyList.setFont(font) + self.historyList.setEditTriggers(QAbstractItemView.NoEditTriggers) + self.historyList.setAlternatingRowColors(True) + self.historyList.setSelectionMode(QAbstractItemView.ExtendedSelection) + self.historyList.setWordWrap(True) + + self.gridLayout.addWidget(self.historyList, 0, 0, 1, 1) + + self.verticalLayout = QVBoxLayout() + self.verticalLayout.setObjectName(u"verticalLayout") + self.deleteButton = QPushButton(ConsoleHistoryDialog) + self.deleteButton.setObjectName(u"deleteButton") + self.deleteButton.setEnabled(False) + + self.verticalLayout.addWidget(self.deleteButton) + + self.copyButton = QPushButton(ConsoleHistoryDialog) + self.copyButton.setObjectName(u"copyButton") + self.copyButton.setEnabled(False) + + self.verticalLayout.addWidget(self.copyButton) + + self.executeButton = QPushButton(ConsoleHistoryDialog) + self.executeButton.setObjectName(u"executeButton") + self.executeButton.setEnabled(False) + + self.verticalLayout.addWidget(self.executeButton) + + self.reloadButton = QPushButton(ConsoleHistoryDialog) + self.reloadButton.setObjectName(u"reloadButton") + + self.verticalLayout.addWidget(self.reloadButton) + + self.verticalSpacer = QSpacerItem( + 72, 208, QSizePolicy.Minimum, QSizePolicy.Expanding) + + self.verticalLayout.addItem(self.verticalSpacer) + + self.gridLayout.addLayout(self.verticalLayout, 0, 1, 1, 1) + + self.buttonBox = QDialogButtonBox(ConsoleHistoryDialog) + self.buttonBox.setObjectName(u"buttonBox") + self.buttonBox.setStandardButtons( + QDialogButtonBox.Cancel | QDialogButtonBox.Ok) + + self.gridLayout.addWidget(self.buttonBox, 1, 0, 1, 2) + + QWidget.setTabOrder(self.historyList, self.deleteButton) + QWidget.setTabOrder(self.deleteButton, self.copyButton) + QWidget.setTabOrder(self.copyButton, self.executeButton) + QWidget.setTabOrder(self.executeButton, self.reloadButton) + QWidget.setTabOrder(self.reloadButton, self.buttonBox) + + self.retranslateUi(ConsoleHistoryDialog) + self.buttonBox.accepted.connect(ConsoleHistoryDialog.accept) + self.buttonBox.rejected.connect(ConsoleHistoryDialog.reject) + + QMetaObject.connectSlotsByName(ConsoleHistoryDialog) + # setupUi + + def retranslateUi(self, ConsoleHistoryDialog): + ConsoleHistoryDialog.setWindowTitle(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Shell History", None)) +# if QT_CONFIG(tooltip) + self.deleteButton.setToolTip(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Delete the selected entries", None)) +#endif // QT_CONFIG(tooltip) + self.deleteButton.setText(QCoreApplication.translate( + "ConsoleHistoryDialog", u"&Delete", None)) +# if QT_CONFIG(tooltip) + self.copyButton.setToolTip(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Copy the selected entries to the current editor", None)) +#endif // QT_CONFIG(tooltip) + self.copyButton.setText(QCoreApplication.translate( + "ConsoleHistoryDialog", u"C&opy", None)) +# if QT_CONFIG(tooltip) + self.executeButton.setToolTip(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Execute the selected entries", None)) +#endif // QT_CONFIG(tooltip) + self.executeButton.setText(QCoreApplication.translate( + "ConsoleHistoryDialog", u"&Execute", None)) +# if QT_CONFIG(tooltip) + self.reloadButton.setToolTip(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Reload the history", None)) +#endif // QT_CONFIG(tooltip) + self.reloadButton.setText(QCoreApplication.translate( + "ConsoleHistoryDialog", u"&Reload", None)) + # retranslateUi diff --git a/pmgwidgets/widgets/basic/others/console.py b/pmgwidgets/widgets/basic/others/console.py index 8cb374e4..e5ca9412 100644 --- a/pmgwidgets/widgets/basic/others/console.py +++ b/pmgwidgets/widgets/basic/others/console.py @@ -9,13 +9,15 @@ Created on 2020/8/24 @description: Console Widget """ +import json +from features.io import settings import os from typing import Tuple, Dict, Callable from PySide2.QtCore import QObject, Signal, QThread, QWaitCondition, QMutex, QPoint, QCoreApplication, QTranslator, \ QLocale from PySide2.QtGui import QTextCursor -from PySide2.QtWidgets import QMessageBox, QMenu, QApplication +from PySide2.QtWidgets import QMessageBox, QMenu, QApplication, QDialog from qtconsole import styles from qtconsole.manager import QtKernelManager from qtconsole.rich_jupyter_widget import RichJupyterWidget @@ -68,6 +70,8 @@ class PMGIpythonConsole(RichJupyterWidget): self.is_first_execution = True self.confirm_restart = False + self.history_path = os.path.join(settings.get_pyminer_data_path(), 'console_history.json') + self.history = [] self.commands_pool = [] self.command_callback_pool: Dict[str, Callable] = {} @@ -133,6 +137,9 @@ class PMGIpythonConsole(RichJupyterWidget): trans = trans_dic.get(action.text()) trans = trans if trans is not None else action.text() action.setText(trans) + history_action = menu.addAction(_translate("PMGIpythonConsole", 'History')) + history_action.triggered.connect(self.show_history) + restart_action = menu.addAction(_translate("PMGIpythonConsole", 'Restart')) restart_action.triggered.connect(self.slot_restart_kernel) @@ -143,6 +150,17 @@ class PMGIpythonConsole(RichJupyterWidget): return menu + def show_history(self): + """ + Public slot to show the shell history dialog. + """ + from .ConsoleHistoryDialog import ConsoleHistoryDialog + # import readline + dlg = ConsoleHistoryDialog(self) + if dlg.exec() == QDialog.DialogCode.Accepted: + self.history = dlg.get_history() + super()._set_history(self.history) + def on_interrupt_kernel(self): """ 当点击中断执行时。 @@ -200,6 +218,8 @@ class PMGIpythonConsole(RichJupyterWidget): return 'Welcome To PMGWidgets Ipython Console!\n' def closeEvent(self, event): + self.history = self.history_tail(0) + self.save_history() if self.init_thread.isRunning(): self.console_object.stop() self.init_thread.quit() @@ -224,6 +244,14 @@ class PMGIpythonConsole(RichJupyterWidget): :param hint_text: 运行代码前显示的提示 :return: str 执行命令的 msgid """ + self.hint_command(hint_text) + if self.kernel_client is None: + self.commands_pool.append((source, hidden, hint_text)) + return '' + else: + return self.pmexecute(source, hidden) + + def hint_command(self, hint_text: str = '') -> str: cursor: QTextCursor = self._prompt_cursor cursor.movePosition(QTextCursor.End) # 运行文件时,显示文件名,无换行符,执行选中内容时,包含换行符 @@ -239,11 +267,6 @@ class PMGIpythonConsole(RichJupyterWidget): self._finalize_input_request() # display input string buffer in console. cursor.movePosition(QTextCursor.End) - if self.kernel_client is None: - self.commands_pool.append((source, hidden, hint_text)) - return '' - else: - return self.pmexecute(source, hidden) def _handle_stream(self, msg): parent_header = msg.get('parent_header') @@ -304,6 +327,22 @@ class PMGIpythonConsole(RichJupyterWidget): directory=os.path.join(os.path.dirname(__file__), 'translations')) app.installTranslator(_trans) + def _set_history(self, history): + """ 重写的方法。重新管理历史记录。 + """ + self.load_history() + super()._set_history(self.history) + + def load_history(self): + if os.path.exists(self.history_path): + with open(self.history_path) as f: + history = json.load(f) + self.history = history['history'] + + def save_history(self): + history = { 'history': self.history } + with open(self.history_path, 'w') as f: + json.dump(history, f) if __name__ == '__main__': import sys -- Gitee From f69ae7b6a0ea396ac0791aad67e0b09acebf998e Mon Sep 17 00:00:00 2001 From: siogian Date: Sun, 23 May 2021 19:17:42 +0800 Subject: [PATCH 11/14] =?UTF-8?q?=E4=B8=BA=E6=8E=A7=E5=88=B6=E5=8F=B0?= =?UTF-8?q?=E6=96=B0=E5=A2=9E"=E6=9F=A5=E7=9C=8B=E5=8E=86=E5=8F=B2"?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=20https://gitee.com/py2cn/pyminer/issues/I27?= =?UTF-8?q?AQJ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/others/ConsoleHistoryDialog.py | 98 +++++++++++ .../basic/others/ConsoleHistoryDialog.ui | 158 ++++++++++++++++++ .../basic/others/Ui_ConsoleHistoryDialog.py | 115 +++++++++++++ pmgwidgets/widgets/basic/others/console.py | 51 +++++- 4 files changed, 416 insertions(+), 6 deletions(-) create mode 100644 pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py create mode 100644 pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.ui create mode 100644 pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py diff --git a/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py b/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py new file mode 100644 index 00000000..e2cd5596 --- /dev/null +++ b/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py @@ -0,0 +1,98 @@ +import os + +from PySide2 import QtCore +from PySide2.QtCore import QItemSelectionModel +from PySide2.QtWidgets import QApplication, QDialog +from qtconsole.frontend_widget import FrontendWidget +from .Ui_ConsoleHistoryDialog import Ui_ConsoleHistoryDialog + + +class ConsoleHistoryDialog(QDialog, Ui_ConsoleHistoryDialog): + """ + Class implementing the shell history dialog. + """ + + def __init__(self, console): + super().__init__() + self.setupUi(self) + self.__console = console + + self.deleteButton.clicked.connect(self.on_deleteButton_clicked) + self.copyButton.clicked.connect(self.on_copyButton_clicked) + self.reloadButton.clicked.connect(self.on_reloadButton_clicked) + self.historyList.itemSelectionChanged.connect( + self.on_historyList_itemSelectionChanged) + + self.reloadButton.click() + + @QtCore.Slot(QtCore.QModelIndex) + def select(self, item): + print(item.data()) + + @QtCore.Slot() + def on_historyList_itemSelectionChanged(self): + """ + Private slot to handle a change of the selection. + """ + selected = len(self.historyList.selectedItems()) > 0 + self.deleteButton.setEnabled(selected) + self.copyButton.setEnabled(selected) + self.executeButton.setEnabled(selected) + + @QtCore.Slot() + def on_deleteButton_clicked(self): + """ + Private slot to delete the selected entries from the history. + """ + for itm in self.historyList.selectedItems(): + ditm = self.historyList.takeItem(self.historyList.row(itm)) + del ditm + self.historyList.scrollToItem(self.historyList.currentItem()) + self.historyList.setFocus() + + @QtCore.Slot() + def on_copyButton_clicked(self): + cmds = self.selected_cmds() + QApplication.clipboard().setText(cmds) + + @QtCore.Slot() + def on_executeButton_clicked(self): + cmds = self.selected_cmds() + self.__console.hint_command(cmds) + self.__console.do_execute(cmds, True, '') + # reload the list because shell modified it + self.on_reloadButton_clicked() + + @QtCore.Slot() + def on_reloadButton_clicked(self): + """ + Private slot to reload the history. + """ + history = self.__console.history_tail(0) + + self.historyList.clear() + self.historyList.addItems(history) + self.historyList.setCurrentRow( + self.historyList.count() - 1, + QItemSelectionModel.SelectionFlag.Select) + + self.historyList.scrollToItem(self.historyList.currentItem()) + + @QtCore.Slot(QtCore.QModelIndex) + def on_historyList_doubleClicked(self, item): + self.on_executeButton_clicked() + + def get_history(self): + history = [] + for index in range(self.historyList.count()): + history.append(self.historyList.item(index).text()) + return history + + def selected_cmds(self): + lines = [] + for index in range(self.historyList.count()): + # selectedItems() doesn't seem to preserve the order + itm = self.historyList.item(index) + if itm.isSelected(): + lines.append(itm.text()) + return (os.linesep.join(lines) + os.linesep).rstrip(os.linesep) diff --git a/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.ui b/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.ui new file mode 100644 index 00000000..59fb2507 --- /dev/null +++ b/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.ui @@ -0,0 +1,158 @@ + + ShellHistoryDialog + + + + 0 + 0 + 540 + 506 + + + + Shell History + + + true + + + + + + + Monospace + + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::ExtendedSelection + + + true + + + + + + + + + false + + + Delete the selected entries + + + &Delete + + + + + + + false + + + Copy the selected entries to the current editor + + + C&opy + + + + + + + false + + + Execute the selected entries + + + &Execute + + + + + + + Reload the history + + + &Reload + + + + + + + Qt::Vertical + + + + 72 + 208 + + + + + + + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + historyList + deleteButton + copyButton + executeButton + reloadButton + buttonBox + + + + + buttonBox + accepted() + ShellHistoryDialog + accept() + + + 333 + 487 + + + 323 + 505 + + + + + buttonBox + rejected() + ShellHistoryDialog + reject() + + + 167 + 490 + + + 169 + 504 + + + + + diff --git a/pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py b/pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py new file mode 100644 index 00000000..e555d7ae --- /dev/null +++ b/pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- + +################################################################################ +# Form generated from reading UI file 'ConsoleHistoryDialog.ui' +## +# Created by: Qt User Interface Compiler version 6.1.0 +## +# WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide2.QtCore import * +from PySide2.QtGui import * +from PySide2.QtWidgets import * + + +class Ui_ConsoleHistoryDialog(object): + def setupUi(self, ConsoleHistoryDialog): + if not ConsoleHistoryDialog.objectName(): + ConsoleHistoryDialog.setObjectName(u"ConsoleHistoryDialog") + ConsoleHistoryDialog.resize(540, 506) + ConsoleHistoryDialog.setSizeGripEnabled(True) + self.gridLayout = QGridLayout(ConsoleHistoryDialog) + self.gridLayout.setObjectName(u"gridLayout") + self.historyList = QListWidget(ConsoleHistoryDialog) + self.historyList.setObjectName(u"historyList") + font = QFont() + font.setFamilies([u"Monospace"]) + self.historyList.setFont(font) + self.historyList.setEditTriggers(QAbstractItemView.NoEditTriggers) + self.historyList.setAlternatingRowColors(True) + self.historyList.setSelectionMode(QAbstractItemView.ExtendedSelection) + self.historyList.setWordWrap(True) + + self.gridLayout.addWidget(self.historyList, 0, 0, 1, 1) + + self.verticalLayout = QVBoxLayout() + self.verticalLayout.setObjectName(u"verticalLayout") + self.deleteButton = QPushButton(ConsoleHistoryDialog) + self.deleteButton.setObjectName(u"deleteButton") + self.deleteButton.setEnabled(False) + + self.verticalLayout.addWidget(self.deleteButton) + + self.copyButton = QPushButton(ConsoleHistoryDialog) + self.copyButton.setObjectName(u"copyButton") + self.copyButton.setEnabled(False) + + self.verticalLayout.addWidget(self.copyButton) + + self.executeButton = QPushButton(ConsoleHistoryDialog) + self.executeButton.setObjectName(u"executeButton") + self.executeButton.setEnabled(False) + + self.verticalLayout.addWidget(self.executeButton) + + self.reloadButton = QPushButton(ConsoleHistoryDialog) + self.reloadButton.setObjectName(u"reloadButton") + + self.verticalLayout.addWidget(self.reloadButton) + + self.verticalSpacer = QSpacerItem( + 72, 208, QSizePolicy.Minimum, QSizePolicy.Expanding) + + self.verticalLayout.addItem(self.verticalSpacer) + + self.gridLayout.addLayout(self.verticalLayout, 0, 1, 1, 1) + + self.buttonBox = QDialogButtonBox(ConsoleHistoryDialog) + self.buttonBox.setObjectName(u"buttonBox") + self.buttonBox.setStandardButtons( + QDialogButtonBox.Cancel | QDialogButtonBox.Ok) + + self.gridLayout.addWidget(self.buttonBox, 1, 0, 1, 2) + + QWidget.setTabOrder(self.historyList, self.deleteButton) + QWidget.setTabOrder(self.deleteButton, self.copyButton) + QWidget.setTabOrder(self.copyButton, self.executeButton) + QWidget.setTabOrder(self.executeButton, self.reloadButton) + QWidget.setTabOrder(self.reloadButton, self.buttonBox) + + self.retranslateUi(ConsoleHistoryDialog) + self.buttonBox.accepted.connect(ConsoleHistoryDialog.accept) + self.buttonBox.rejected.connect(ConsoleHistoryDialog.reject) + + QMetaObject.connectSlotsByName(ConsoleHistoryDialog) + # setupUi + + def retranslateUi(self, ConsoleHistoryDialog): + ConsoleHistoryDialog.setWindowTitle(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Shell History", None)) +# if QT_CONFIG(tooltip) + self.deleteButton.setToolTip(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Delete the selected entries", None)) +#endif // QT_CONFIG(tooltip) + self.deleteButton.setText(QCoreApplication.translate( + "ConsoleHistoryDialog", u"&Delete", None)) +# if QT_CONFIG(tooltip) + self.copyButton.setToolTip(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Copy the selected entries to the current editor", None)) +#endif // QT_CONFIG(tooltip) + self.copyButton.setText(QCoreApplication.translate( + "ConsoleHistoryDialog", u"C&opy", None)) +# if QT_CONFIG(tooltip) + self.executeButton.setToolTip(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Execute the selected entries", None)) +#endif // QT_CONFIG(tooltip) + self.executeButton.setText(QCoreApplication.translate( + "ConsoleHistoryDialog", u"&Execute", None)) +# if QT_CONFIG(tooltip) + self.reloadButton.setToolTip(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Reload the history", None)) +#endif // QT_CONFIG(tooltip) + self.reloadButton.setText(QCoreApplication.translate( + "ConsoleHistoryDialog", u"&Reload", None)) + # retranslateUi diff --git a/pmgwidgets/widgets/basic/others/console.py b/pmgwidgets/widgets/basic/others/console.py index 8cb374e4..e5ca9412 100644 --- a/pmgwidgets/widgets/basic/others/console.py +++ b/pmgwidgets/widgets/basic/others/console.py @@ -9,13 +9,15 @@ Created on 2020/8/24 @description: Console Widget """ +import json +from features.io import settings import os from typing import Tuple, Dict, Callable from PySide2.QtCore import QObject, Signal, QThread, QWaitCondition, QMutex, QPoint, QCoreApplication, QTranslator, \ QLocale from PySide2.QtGui import QTextCursor -from PySide2.QtWidgets import QMessageBox, QMenu, QApplication +from PySide2.QtWidgets import QMessageBox, QMenu, QApplication, QDialog from qtconsole import styles from qtconsole.manager import QtKernelManager from qtconsole.rich_jupyter_widget import RichJupyterWidget @@ -68,6 +70,8 @@ class PMGIpythonConsole(RichJupyterWidget): self.is_first_execution = True self.confirm_restart = False + self.history_path = os.path.join(settings.get_pyminer_data_path(), 'console_history.json') + self.history = [] self.commands_pool = [] self.command_callback_pool: Dict[str, Callable] = {} @@ -133,6 +137,9 @@ class PMGIpythonConsole(RichJupyterWidget): trans = trans_dic.get(action.text()) trans = trans if trans is not None else action.text() action.setText(trans) + history_action = menu.addAction(_translate("PMGIpythonConsole", 'History')) + history_action.triggered.connect(self.show_history) + restart_action = menu.addAction(_translate("PMGIpythonConsole", 'Restart')) restart_action.triggered.connect(self.slot_restart_kernel) @@ -143,6 +150,17 @@ class PMGIpythonConsole(RichJupyterWidget): return menu + def show_history(self): + """ + Public slot to show the shell history dialog. + """ + from .ConsoleHistoryDialog import ConsoleHistoryDialog + # import readline + dlg = ConsoleHistoryDialog(self) + if dlg.exec() == QDialog.DialogCode.Accepted: + self.history = dlg.get_history() + super()._set_history(self.history) + def on_interrupt_kernel(self): """ 当点击中断执行时。 @@ -200,6 +218,8 @@ class PMGIpythonConsole(RichJupyterWidget): return 'Welcome To PMGWidgets Ipython Console!\n' def closeEvent(self, event): + self.history = self.history_tail(0) + self.save_history() if self.init_thread.isRunning(): self.console_object.stop() self.init_thread.quit() @@ -224,6 +244,14 @@ class PMGIpythonConsole(RichJupyterWidget): :param hint_text: 运行代码前显示的提示 :return: str 执行命令的 msgid """ + self.hint_command(hint_text) + if self.kernel_client is None: + self.commands_pool.append((source, hidden, hint_text)) + return '' + else: + return self.pmexecute(source, hidden) + + def hint_command(self, hint_text: str = '') -> str: cursor: QTextCursor = self._prompt_cursor cursor.movePosition(QTextCursor.End) # 运行文件时,显示文件名,无换行符,执行选中内容时,包含换行符 @@ -239,11 +267,6 @@ class PMGIpythonConsole(RichJupyterWidget): self._finalize_input_request() # display input string buffer in console. cursor.movePosition(QTextCursor.End) - if self.kernel_client is None: - self.commands_pool.append((source, hidden, hint_text)) - return '' - else: - return self.pmexecute(source, hidden) def _handle_stream(self, msg): parent_header = msg.get('parent_header') @@ -304,6 +327,22 @@ class PMGIpythonConsole(RichJupyterWidget): directory=os.path.join(os.path.dirname(__file__), 'translations')) app.installTranslator(_trans) + def _set_history(self, history): + """ 重写的方法。重新管理历史记录。 + """ + self.load_history() + super()._set_history(self.history) + + def load_history(self): + if os.path.exists(self.history_path): + with open(self.history_path) as f: + history = json.load(f) + self.history = history['history'] + + def save_history(self): + history = { 'history': self.history } + with open(self.history_path, 'w') as f: + json.dump(history, f) if __name__ == '__main__': import sys -- Gitee From 34ddb2209c8a1e1c923fc9946074b352538bc1a1 Mon Sep 17 00:00:00 2001 From: siogian Date: Sun, 23 May 2021 19:17:42 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E4=B8=BA=E6=8E=A7=E5=88=B6=E5=8F=B0?= =?UTF-8?q?=E6=96=B0=E5=A2=9E"=E6=9F=A5=E7=9C=8B=E5=8E=86=E5=8F=B2"?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=20https://gitee.com/py2cn/pyminer/issues/I27?= =?UTF-8?q?AQJ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/others/ConsoleHistoryDialog.py | 97 +++++++++++ .../basic/others/ConsoleHistoryDialog.ui | 158 ++++++++++++++++++ .../basic/others/Ui_ConsoleHistoryDialog.py | 115 +++++++++++++ pmgwidgets/widgets/basic/others/console.py | 73 ++++++-- 4 files changed, 431 insertions(+), 12 deletions(-) create mode 100644 pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py create mode 100644 pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.ui create mode 100644 pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py diff --git a/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py b/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py new file mode 100644 index 00000000..f29581fd --- /dev/null +++ b/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py @@ -0,0 +1,97 @@ +import os + +from PySide2 import QtCore +from PySide2.QtCore import QItemSelectionModel +from PySide2.QtWidgets import QApplication, QDialog +from .Ui_ConsoleHistoryDialog import Ui_ConsoleHistoryDialog + + +class ConsoleHistoryDialog(QDialog, Ui_ConsoleHistoryDialog): + """ + Class implementing the shell history dialog. + """ + + def __init__(self, console): + super().__init__() + self.setupUi(self) + self.__console = console + + self.deleteButton.clicked.connect(self.on_deleteButton_clicked) + self.copyButton.clicked.connect(self.on_copyButton_clicked) + self.reloadButton.clicked.connect(self.on_reloadButton_clicked) + self.historyList.itemSelectionChanged.connect( + self.on_historyList_itemSelectionChanged) + + self.reloadButton.click() + + @QtCore.Slot(QtCore.QModelIndex) + def select(self, item): + print(item.data()) + + @QtCore.Slot() + def on_historyList_itemSelectionChanged(self): + """ + Private slot to handle a change of the selection. + """ + selected = len(self.historyList.selectedItems()) > 0 + self.deleteButton.setEnabled(selected) + self.copyButton.setEnabled(selected) + self.executeButton.setEnabled(selected) + + @QtCore.Slot() + def on_deleteButton_clicked(self): + """ + Private slot to delete the selected entries from the history. + """ + for itm in self.historyList.selectedItems(): + ditm = self.historyList.takeItem(self.historyList.row(itm)) + del ditm + self.historyList.scrollToItem(self.historyList.currentItem()) + self.historyList.setFocus() + + @QtCore.Slot() + def on_copyButton_clicked(self): + cmds = self.selected_cmds() + QApplication.clipboard().setText(cmds) + + @QtCore.Slot() + def on_executeButton_clicked(self): + cmds = self.selected_cmds() + self.__console.hint_command(cmds) + self.__console.do_execute(cmds, True, '') + # reload the list because shell modified it + self.on_reloadButton_clicked() + + @QtCore.Slot() + def on_reloadButton_clicked(self): + """ + Private slot to reload the history. + """ + history = self.__console.history_tail(0) + + self.historyList.clear() + self.historyList.addItems(history) + self.historyList.setCurrentRow( + self.historyList.count() - 1, + QItemSelectionModel.SelectionFlag.Select) + + self.historyList.scrollToItem(self.historyList.currentItem()) + + @QtCore.Slot(QtCore.QModelIndex) + def on_historyList_doubleClicked(self, item): + self.on_executeButton_clicked() + + def get_history(self): + history = [] + for index in range(self.historyList.count()): + history.append(self.historyList.item(index).text()) + return history + + def selected_cmds(self): + lines = [] + for index in range(self.historyList.count()): + # selectedItems() doesn't seem to preserve the order + itm = self.historyList.item(index) + if itm.isSelected(): + lines.append(itm.text()) + return (os.linesep.join(lines) + os.linesep).rstrip(os.linesep) diff --git a/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.ui b/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.ui new file mode 100644 index 00000000..59fb2507 --- /dev/null +++ b/pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.ui @@ -0,0 +1,158 @@ + + ShellHistoryDialog + + + + 0 + 0 + 540 + 506 + + + + Shell History + + + true + + + + + + + Monospace + + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::ExtendedSelection + + + true + + + + + + + + + false + + + Delete the selected entries + + + &Delete + + + + + + + false + + + Copy the selected entries to the current editor + + + C&opy + + + + + + + false + + + Execute the selected entries + + + &Execute + + + + + + + Reload the history + + + &Reload + + + + + + + Qt::Vertical + + + + 72 + 208 + + + + + + + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + historyList + deleteButton + copyButton + executeButton + reloadButton + buttonBox + + + + + buttonBox + accepted() + ShellHistoryDialog + accept() + + + 333 + 487 + + + 323 + 505 + + + + + buttonBox + rejected() + ShellHistoryDialog + reject() + + + 167 + 490 + + + 169 + 504 + + + + + diff --git a/pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py b/pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py new file mode 100644 index 00000000..e555d7ae --- /dev/null +++ b/pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- + +################################################################################ +# Form generated from reading UI file 'ConsoleHistoryDialog.ui' +## +# Created by: Qt User Interface Compiler version 6.1.0 +## +# WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide2.QtCore import * +from PySide2.QtGui import * +from PySide2.QtWidgets import * + + +class Ui_ConsoleHistoryDialog(object): + def setupUi(self, ConsoleHistoryDialog): + if not ConsoleHistoryDialog.objectName(): + ConsoleHistoryDialog.setObjectName(u"ConsoleHistoryDialog") + ConsoleHistoryDialog.resize(540, 506) + ConsoleHistoryDialog.setSizeGripEnabled(True) + self.gridLayout = QGridLayout(ConsoleHistoryDialog) + self.gridLayout.setObjectName(u"gridLayout") + self.historyList = QListWidget(ConsoleHistoryDialog) + self.historyList.setObjectName(u"historyList") + font = QFont() + font.setFamilies([u"Monospace"]) + self.historyList.setFont(font) + self.historyList.setEditTriggers(QAbstractItemView.NoEditTriggers) + self.historyList.setAlternatingRowColors(True) + self.historyList.setSelectionMode(QAbstractItemView.ExtendedSelection) + self.historyList.setWordWrap(True) + + self.gridLayout.addWidget(self.historyList, 0, 0, 1, 1) + + self.verticalLayout = QVBoxLayout() + self.verticalLayout.setObjectName(u"verticalLayout") + self.deleteButton = QPushButton(ConsoleHistoryDialog) + self.deleteButton.setObjectName(u"deleteButton") + self.deleteButton.setEnabled(False) + + self.verticalLayout.addWidget(self.deleteButton) + + self.copyButton = QPushButton(ConsoleHistoryDialog) + self.copyButton.setObjectName(u"copyButton") + self.copyButton.setEnabled(False) + + self.verticalLayout.addWidget(self.copyButton) + + self.executeButton = QPushButton(ConsoleHistoryDialog) + self.executeButton.setObjectName(u"executeButton") + self.executeButton.setEnabled(False) + + self.verticalLayout.addWidget(self.executeButton) + + self.reloadButton = QPushButton(ConsoleHistoryDialog) + self.reloadButton.setObjectName(u"reloadButton") + + self.verticalLayout.addWidget(self.reloadButton) + + self.verticalSpacer = QSpacerItem( + 72, 208, QSizePolicy.Minimum, QSizePolicy.Expanding) + + self.verticalLayout.addItem(self.verticalSpacer) + + self.gridLayout.addLayout(self.verticalLayout, 0, 1, 1, 1) + + self.buttonBox = QDialogButtonBox(ConsoleHistoryDialog) + self.buttonBox.setObjectName(u"buttonBox") + self.buttonBox.setStandardButtons( + QDialogButtonBox.Cancel | QDialogButtonBox.Ok) + + self.gridLayout.addWidget(self.buttonBox, 1, 0, 1, 2) + + QWidget.setTabOrder(self.historyList, self.deleteButton) + QWidget.setTabOrder(self.deleteButton, self.copyButton) + QWidget.setTabOrder(self.copyButton, self.executeButton) + QWidget.setTabOrder(self.executeButton, self.reloadButton) + QWidget.setTabOrder(self.reloadButton, self.buttonBox) + + self.retranslateUi(ConsoleHistoryDialog) + self.buttonBox.accepted.connect(ConsoleHistoryDialog.accept) + self.buttonBox.rejected.connect(ConsoleHistoryDialog.reject) + + QMetaObject.connectSlotsByName(ConsoleHistoryDialog) + # setupUi + + def retranslateUi(self, ConsoleHistoryDialog): + ConsoleHistoryDialog.setWindowTitle(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Shell History", None)) +# if QT_CONFIG(tooltip) + self.deleteButton.setToolTip(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Delete the selected entries", None)) +#endif // QT_CONFIG(tooltip) + self.deleteButton.setText(QCoreApplication.translate( + "ConsoleHistoryDialog", u"&Delete", None)) +# if QT_CONFIG(tooltip) + self.copyButton.setToolTip(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Copy the selected entries to the current editor", None)) +#endif // QT_CONFIG(tooltip) + self.copyButton.setText(QCoreApplication.translate( + "ConsoleHistoryDialog", u"C&opy", None)) +# if QT_CONFIG(tooltip) + self.executeButton.setToolTip(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Execute the selected entries", None)) +#endif // QT_CONFIG(tooltip) + self.executeButton.setText(QCoreApplication.translate( + "ConsoleHistoryDialog", u"&Execute", None)) +# if QT_CONFIG(tooltip) + self.reloadButton.setToolTip(QCoreApplication.translate( + "ConsoleHistoryDialog", u"Reload the history", None)) +#endif // QT_CONFIG(tooltip) + self.reloadButton.setText(QCoreApplication.translate( + "ConsoleHistoryDialog", u"&Reload", None)) + # retranslateUi diff --git a/pmgwidgets/widgets/basic/others/console.py b/pmgwidgets/widgets/basic/others/console.py index 8cb374e4..6dcb1e9d 100644 --- a/pmgwidgets/widgets/basic/others/console.py +++ b/pmgwidgets/widgets/basic/others/console.py @@ -10,16 +10,19 @@ Created on 2020/8/24 """ import os +import json from typing import Tuple, Dict, Callable from PySide2.QtCore import QObject, Signal, QThread, QWaitCondition, QMutex, QPoint, QCoreApplication, QTranslator, \ QLocale from PySide2.QtGui import QTextCursor -from PySide2.QtWidgets import QMessageBox, QMenu, QApplication +from PySide2.QtWidgets import QMessageBox, QMenu, QApplication, QDialog from qtconsole import styles from qtconsole.manager import QtKernelManager from qtconsole.rich_jupyter_widget import RichJupyterWidget from qtconsole.styles import default_light_syntax_style, default_light_style_sheet +from features.io import settings + default_dark_style_template = styles.default_template + """\ .in-prompt { color: #ff00ff; } @@ -55,7 +58,8 @@ class ConsoleInitThread(QObject): # stop channels and kernel kernel_client.stop_channels() - kernel_manager.shutdown_kernel(now=True) # add now=True; Fix exit error; 200924 liugang + # add now=True; Fix exit error; 200924 liugang + kernel_manager.shutdown_kernel(now=True) def stop(self): self.wait_condition.wakeAll() @@ -68,6 +72,9 @@ class PMGIpythonConsole(RichJupyterWidget): self.is_first_execution = True self.confirm_restart = False + self.history_path = os.path.join( + settings.get_pyminer_data_path(), 'console_history.json') + self.history = [] self.commands_pool = [] self.command_callback_pool: Dict[str, Callable] = {} @@ -133,16 +140,33 @@ class PMGIpythonConsole(RichJupyterWidget): trans = trans_dic.get(action.text()) trans = trans if trans is not None else action.text() action.setText(trans) - restart_action = menu.addAction(_translate("PMGIpythonConsole", 'Restart')) + history_action = menu.addAction( + _translate("PMGIpythonConsole", 'History')) + history_action.triggered.connect(self.show_history) + + restart_action = menu.addAction( + _translate("PMGIpythonConsole", 'Restart')) restart_action.triggered.connect(self.slot_restart_kernel) - stop_action = menu.addAction(_translate("PMGIpythonConsole", 'Interrupt')) + stop_action = menu.addAction( + _translate("PMGIpythonConsole", 'Interrupt')) # stop_action.triggered.connect(self.request_interrupt_kernel) stop_action.triggered.connect(self.on_interrupt_kernel) # stop_action.setEnabled(self._executing) return menu + def show_history(self): + """ + Public slot to show the shell history dialog. + """ + from .ConsoleHistoryDialog import ConsoleHistoryDialog + # import readline + dlg = ConsoleHistoryDialog(self) + if dlg.exec() == QDialog.DialogCode.Accepted: + self.history = dlg.get_history() + super()._set_history(self.history) + def on_interrupt_kernel(self): """ 当点击中断执行时。 @@ -200,6 +224,8 @@ class PMGIpythonConsole(RichJupyterWidget): return 'Welcome To PMGWidgets Ipython Console!\n' def closeEvent(self, event): + self.history = self.history_tail(0) + self.save_history() if self.init_thread.isRunning(): self.console_object.stop() self.init_thread.quit() @@ -224,6 +250,14 @@ class PMGIpythonConsole(RichJupyterWidget): :param hint_text: 运行代码前显示的提示 :return: str 执行命令的 msgid """ + self.hint_command(hint_text) + if self.kernel_client is None: + self.commands_pool.append((source, hidden, hint_text)) + return '' + else: + return self.pmexecute(source, hidden) + + def hint_command(self, hint_text: str = '') -> str: cursor: QTextCursor = self._prompt_cursor cursor.movePosition(QTextCursor.End) # 运行文件时,显示文件名,无换行符,执行选中内容时,包含换行符 @@ -237,18 +271,15 @@ class PMGIpythonConsole(RichJupyterWidget): # 删除多余的continuation_prompt self.undo() - self._finalize_input_request() # display input string buffer in console. + # display input string buffer in console. + self._finalize_input_request() cursor.movePosition(QTextCursor.End) - if self.kernel_client is None: - self.commands_pool.append((source, hidden, hint_text)) - return '' - else: - return self.pmexecute(source, hidden) def _handle_stream(self, msg): parent_header = msg.get('parent_header') if parent_header is not None: - msg_id = parent_header.get('msg_id') # 'fee0bee5-074c00d093b1455be6d166b1_10''] + # 'fee0bee5-074c00d093b1455be6d166b1_10''] + msg_id = parent_header.get('msg_id') if msg_id in self.command_callback_pool.keys(): callback = self.command_callback_pool.pop(msg_id) assert callable(callback) @@ -273,7 +304,8 @@ class PMGIpythonConsole(RichJupyterWidget): QMessageBox.warning(self, '警告', msg) source = '' msg_id = self.kernel_client.execute(source, hidden) - self._request_info['execute'][msg_id] = self._ExecutionRequest(msg_id, 'user') + self._request_info['execute'][msg_id] = self._ExecutionRequest( + msg_id, 'user') self._hidden = hidden if not hidden: self.executing.emit(source) @@ -304,6 +336,23 @@ class PMGIpythonConsole(RichJupyterWidget): directory=os.path.join(os.path.dirname(__file__), 'translations')) app.installTranslator(_trans) + def _set_history(self, history): + """ 重写的方法。重新管理历史记录。 + """ + self.load_history() + super()._set_history(self.history) + + def load_history(self): + if os.path.exists(self.history_path): + with open(self.history_path) as f: + history = json.load(f) + self.history = history['history'] + + def save_history(self): + history = {'history': self.history} + with open(self.history_path, 'w') as f: + json.dump(history, f) + if __name__ == '__main__': import sys -- Gitee From 969ace8f0866f4784642f8c47124f875d0d1bdeb Mon Sep 17 00:00:00 2001 From: siogian Date: Mon, 24 May 2021 07:40:20 +0800 Subject: [PATCH 13/14] autopep8 format --- pmgwidgets/widgets/basic/others/console.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pmgwidgets/widgets/basic/others/console.py b/pmgwidgets/widgets/basic/others/console.py index e5ca9412..d533453d 100644 --- a/pmgwidgets/widgets/basic/others/console.py +++ b/pmgwidgets/widgets/basic/others/console.py @@ -9,9 +9,8 @@ Created on 2020/8/24 @description: Console Widget """ -import json -from features.io import settings import os +import json from typing import Tuple, Dict, Callable from PySide2.QtCore import QObject, Signal, QThread, QWaitCondition, QMutex, QPoint, QCoreApplication, QTranslator, \ @@ -22,6 +21,7 @@ from qtconsole import styles from qtconsole.manager import QtKernelManager from qtconsole.rich_jupyter_widget import RichJupyterWidget from qtconsole.styles import default_light_syntax_style, default_light_style_sheet +from features.io import settings default_dark_style_template = styles.default_template + """\ .in-prompt { color: #ff00ff; } @@ -137,13 +137,16 @@ class PMGIpythonConsole(RichJupyterWidget): trans = trans_dic.get(action.text()) trans = trans if trans is not None else action.text() action.setText(trans) - history_action = menu.addAction(_translate("PMGIpythonConsole", 'History')) + history_action = menu.addAction( + _translate("PMGIpythonConsole", 'History')) history_action.triggered.connect(self.show_history) - restart_action = menu.addAction(_translate("PMGIpythonConsole", 'Restart')) + restart_action = menu.addAction( + _translate("PMGIpythonConsole", 'Restart')) restart_action.triggered.connect(self.slot_restart_kernel) - stop_action = menu.addAction(_translate("PMGIpythonConsole", 'Interrupt')) + stop_action = menu.addAction( + _translate("PMGIpythonConsole", 'Interrupt')) # stop_action.triggered.connect(self.request_interrupt_kernel) stop_action.triggered.connect(self.on_interrupt_kernel) # stop_action.setEnabled(self._executing) @@ -265,7 +268,8 @@ class PMGIpythonConsole(RichJupyterWidget): # 删除多余的continuation_prompt self.undo() - self._finalize_input_request() # display input string buffer in console. + # display input string buffer in console. + self._finalize_input_request() cursor.movePosition(QTextCursor.End) def _handle_stream(self, msg): @@ -340,7 +344,7 @@ class PMGIpythonConsole(RichJupyterWidget): self.history = history['history'] def save_history(self): - history = { 'history': self.history } + history = {'history': self.history} with open(self.history_path, 'w') as f: json.dump(history, f) -- Gitee From 5800fe40ad224a22e7d08ef151fb50ba4d30ed61 Mon Sep 17 00:00:00 2001 From: hzy15610046011 <1295752786@qq.com> Date: Thu, 24 Jun 2021 14:38:57 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E4=BF=AE=E5=BE=A9=E4=BA=86=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __latest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/__latest.json b/__latest.json index ea3da526..cddd011d 100644 --- a/__latest.json +++ b/__latest.json @@ -1 +1 @@ -{"files": {"app2.py": "d9529008bd5439196168ffac9c439c45", "check_dependency.py": "35b3112cf9cb50d31be5f45c8ae3d179", "config.ini": "7f83e4b78df1a293343baeaaf5881203", "dist.py": "e3b17ce9bea81da8f9b4582ee78fe6cd", "LICENSE": "b5b6bed06dd8ed68f00c26d0b4cede89", "load_modules.py": "ac8f5b5bf06353d50d8acf4c9b6c2aee", "pmgui.py": "ec9be7625493a0b6fec19277a1532d8b", "pyminer.pro": "148c684e721b44a4a29ec4c700e95c49", "pyminer.py": "8676961ecd2c4d293db44b2e8e962315", "pytest.ini": "7e1ac696b90974c21fcaed50d881ebf1", "README.md": "618338896f514c4f446bd0142edce65a", "requirements.txt": "46335ef2141487a81ec851cd0912ba53", "requirements_dev.txt": "6e23539b6bc3cd698e6f9713e598e2a9", "requirements_linux.txt": "9aa417fb3e4ee45e0196636731555e83", "requirements_mac.txt": "9e52f81f3ac26964b25929d44d7eb9c2", "run_before_commit.py": "497d2bb66a8352312a2b070e58c9f0dd", "update_translation.py": "afcbf3f7c930b65e44c1bed2430d4284", "\u5f00\u53d1\u6307\u5357.md": "791025c5ef81f9b6a334e4f6d39e9cb6", "\u5f00\u53d1\u8fdb\u5ea6.url": "e47baa8f175a5766ae709b9e8d951b53", "configuration/default_settings.json": "7bdc7e60ac0fe14d849afb297fb9db2f", "configuration/extensions.json": "cb8f6f2bf8cdccae988f3cb589282f7c", "configuration/settings.json": "81f0b5a2f4f719f23e247b92ee72fff7", "core/__init__.py": "f0d32e8fca7a2398789eb9b0537057ce", "core/algorithms/index.rst": "493e85a5e6744431a7755a7d33f9979d", "core/algorithms/__init__.py": "489b6a395b7e79f2cab1f8c46eec73e1", "core/algorithms/calculation/digits.py": "b14e19d1913de492b116201b5f5c6c27", "core/algorithms/calculation/__init__.py": "6fb7087712399aff01a8a820cd77a474", "core/algorithms/linear_algebra/array.py": "f1e96ef9af8aaf15aaef29c863b3663c", "core/algorithms/linear_algebra/exceptions.py": "cc1a682728cd86a67aaf4b03a27c3e8a", "core/algorithms/linear_algebra/linear_space.py": "0d12ac5250106fc5fd0270b502ceb6e1", "core/algorithms/linear_algebra/matrix_cross.py": "ba1e06a57db80bcaa9509d6e733c1df9", "core/algorithms/linear_algebra/matrix_determinant.py": "23a47100204fd2f73f43cc201113f5e5", "core/algorithms/linear_algebra/matrix_diagonal.py": "ab7c7e101f46ebe7ed4bc73f542f111a", "core/algorithms/linear_algebra/matrix_divide.py": "01ec01fbb97bca37f22f719f3dc3d089", "core/algorithms/linear_algebra/matrix_dot.py": "67d721785420cd3f3344ac69bdb6ac32", "core/algorithms/linear_algebra/matrix_eigenvalue.py": "43b83077241aa32acdff04c8489363f5", "core/algorithms/linear_algebra/matrix_inverse.py": "f4c6ec6129a07ea821aff5b6b84f2aa6", "core/algorithms/linear_algebra/matrix_multiply.py": "067a30b30ff9be6d9b9123a75a30abc9", "core/algorithms/linear_algebra/matrix_transpose.py": "d63b39c00f437fab1540f331876444ab", "core/algorithms/linear_algebra/ones.py": "f7c3f42cde513ec5e91bc24dbc068d62", "core/algorithms/linear_algebra/reshape.py": "54f0d073af724f1c3c474e59940c6f72", "core/algorithms/linear_algebra/shape.py": "863cf7a043ab1d82f02a3a1279632b57", "core/algorithms/linear_algebra/zeros.py": "161e8f970d39d7bb2135852051a18005", "core/algorithms/linear_algebra/_utils.py": "8864ac424626bc7804d31b3e0ef3905f", "core/algorithms/linear_algebra/__init__.py": "a1ff4909241d1462727c33e5a8038cbd", "core/algorithms/linear_algebra/\u5f00\u53d1\u6d41\u7a0b.md": "54daed08712378a9ad4208884b65088b", "core/algorithms/linear_algebra/assets/code_hint.png": "013aecfff792430d0d3fac227bfcaaf4", "core/algorithms/linear_algebra/assets/configure_test_utils.png": "952e07a65e50b2fbd9666f8544ac20fa", "core/algorithms/linear_algebra/assets/define_function_framework.png": "4c921fffe0c7b10e5fb01e02d8f7a353", "core/algorithms/linear_algebra/assets/demand_change_file_change.png": "537d6591e1833d43c9fd6fc30cd1b2f6", "core/algorithms/linear_algebra/assets/finish.png": "d4c5fb995d723b15072691707b0ed72e", "core/algorithms/linear_algebra/assets/fix_testcase.png": "b1f4c682efcfb3f23e32ab085cc85b50", "core/algorithms/linear_algebra/assets/function_explanation.png": "c7bc75487b2abe6a536fc91a880d5f44", "core/algorithms/linear_algebra/assets/function_explanation_file_change": "15ade2607376365bb31c38a79d46ea89", "core/algorithms/linear_algebra/assets/function_file_change.png": "5b961672e09adba22805a5098e1bbbd1", "core/algorithms/linear_algebra/assets/function_workspace.png": "2bf5321cda6e0e1ac939895233e7a833", "core/algorithms/linear_algebra/assets/help_doc.png": "0e2f87b116e1fcb517cc63d5aa8e3d21", "core/algorithms/linear_algebra/assets/import_in_global.png": "259b30531b0ab509d4b93acec5cf3db1", "core/algorithms/linear_algebra/assets/import_in_sub_pkg.png": "622f44c6ec4738254d8585ae341b945e", "core/algorithms/linear_algebra/assets/run_in_pm.png": "4a64482cdd2125276501a4190848352c", "core/algorithms/linear_algebra/assets/run_test.png": "0d9abff3ca8a85fa0c3f58aef6ffd2d3", "core/algorithms/linear_algebra/assets/testcase_file_change.png": "caeda394883222a82b6dabd224fe0f0c", "core/algorithms/linear_algebra/assets/test_error.png": "a6b5a1a95cdc1fc21ce522f35da111aa", "core/algorithms/linear_algebra/assets/test_pass.png": "7792d7ee583bdb629ea41cec3a5cbf07", "core/algorithms/linear_algebra/assets/write_doc.png": "5349a5f4df8ed7a982ac5c86298ce715", "core/algorithms/linear_algebra/assets/write_doc_file_change.png": "34753c6a77cc470710669f518cfb3055", "core/algorithms/linear_algebra/assets/write_function_file_change.png": "2f5d964072df62b5a915fc14a41597b9", "core/algorithms/plotting/graph.py": "1728aea4907b92b67fe91ad742a3083f", "core/algorithms/plotting/graph_configs.py": "614cbeae8b696da2e8fe983e3c87a5f9", "core/algorithms/plotting/__init__.py": "9f90fe07592b24c4a09ed9230b6c093d", "core/algorithms/pyminer_util/communication.py": "216e0f4b1c8b00d535f0585c7fa1add3", "core/algorithms/pyminer_util/__init__.py": "de143e26c42af15d96c77f52383561a0", "core/algorithms/statistics/__init__.py": "4bba02c1df562ce45ccf5dfc988ab576", "core/evaluation/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "core/evaluation/woe/config.py": "9ac12638758e61c547224a0b4cc5e5f8", "core/evaluation/woe/eval.py": "62ab9836e64b475b07e0ea5cccf3aeb0", "core/evaluation/woe/feature_process.py": "e12d77b446b6a75746499d909ca22ae8", "core/evaluation/woe/ftrl.py": "1e6dad2dfc172413104ef5b3fb25e88d", "core/evaluation/woe/GridSearch.py": "8b92ecf1226fa81972510b17aa4cc2c4", "core/evaluation/woe/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "core/evaluation/woe/tests/config.csv": "66f330fdc285911a52c4a65166eab04f", "core/evaluation/woe/tests/HereWeGo.py": "94d48377d8292b80d8f4929cf9162004", "core/evaluation/woe/tests/README.rst": "8f72b661abc5eaf059d05e603b1c705c", "core/evaluation/woe/tests/UCI_Credit_Card.csv": "afd3af2602d66d6ceb36cb04216f0ed2", "core/io/postgresql/psycopg2/compat.py": "7abef6e4534c7b625057e37289bc8c27", "core/io/postgresql/psycopg2/errorcodes.py": "b2346a81ec49de54caa4e32a5360076e", "core/io/postgresql/psycopg2/errors.py": "316dfc64e89c95715e974a31f96e18fe", "core/io/postgresql/psycopg2/extensions.py": "d7fc21cf847f2d12a60f56097e3eca2f", "core/io/postgresql/psycopg2/extras.py": "4d79c51ba46dc3285d9faf8789a37369", "core/io/postgresql/psycopg2/pool.py": "1b0403b2597557108c4c35a9bc568834", "core/io/postgresql/psycopg2/sql.py": "1b8ad7b5746ad2f514cbdd678954fee2", "core/io/postgresql/psycopg2/tz.py": "b70b2abdc56dc05e9c28993934bed8f4", "core/io/postgresql/psycopg2/_ipaddress.py": "e0ff64e2ae604224c8cd11d1bdb27003", "core/io/postgresql/psycopg2/_json.py": "38e03cf8ae626f8fa028ceb48dcdb960", "core/io/postgresql/psycopg2/_lru_cache.py": "5e2bc12517950812ccac51af1d61d8a5", "core/io/postgresql/psycopg2/_range.py": "46ff7ab96f96d7db81eee160f666cfa4", "core/io/postgresql/psycopg2/__init__.py": "36fa5f3355c7d7ea36b87d1cdda6afe4", "core/modelling/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "core/modelling/regression/base_regression.py": "461cde16f7769d88c386f6f142ec233a", "core/modelling/regression/knn.py": "9f0c137ed701a2d11325ae1c9da23caa", "core/modelling/regression/linear.py": "a7936db33b1faa26cdbdc53a4bb81dfc", "core/modelling/regression/linear_bfgs.py": "031491ee5d158dcc8d506458fd10dbdf", "core/modelling/regression/mean.py": "c494d914a7be950f81b073dcad1e8bdf", "core/modelling/regression/neural_network.py": "571fa4e8bdc730c503cda08b0afd1d41", "core/modelling/regression/random_forest.py": "33c3aa9f1300b805ef13dd96866ea114", "core/modelling/regression/simple_random_forest.py": "e8c180090ce051d2f57e94b98e30b3c3", "core/modelling/regression/svm.py": "f5547c9da4c71d06a1df162be1e51885", "core/modelling/regression/tree.py": "0bd5b05a252b233597b6ff7453881ebd", "core/modelling/regression/__init__.py": "5b1908d95bc0ac027b22c337ea12f21b", "core/preprocess/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "docs/make.bat": "0d5c4de56de1ea8fa10468d561de4d77", "docs/Makefile": "45ecc4dd568420521f285e291939ecf1", "docs/make_doc.py": "3710c825012f1dc2e8d4f5854622e186", "docs/PyMiner\u4ecb\u7ecd.md": "56012d9e37961de92ea165d227e8707b", "docs/THANKS": "ad97f1302bcf00e26a219a0801a0b34d", "docs/upload.py": "10534ab4011a82607ef2b0c2f6c1b599", "docs/source/conf.py": "86928f87e5b0a03cbdd58f6f8a87f55b", "docs/source/contents.rst": "cd9756a400d0aa68ef85e92394c58b25", "docs/source/contribute/index.md": "260363f4717c8db812dc5d9c2c5723f8", "docs/source/_static/css/pyminer.css": "4a98b74c6e7893114cabc72ef5c6b81d", "docs/source/_static/css/pyminer.css.map": "e82da77c9ca623f0acbf4cbc62d78cbd", "docs/source/_static/css/pyminer.sass": "e5940574b2a7af7e3b7c01c2fc600354", "docs/source/_static/css/README.txt": "6e9ef1827e9eaea7ca3831685d830c7d", "docs/source/_static/index_files/all.css": "242611f34a440c48c2e6405e91e01a71", "docs/source/_static/index_files/all.js(1).download": "d7b3138b22aac6df42d86c92e36763ba", "docs/source/_static/index_files/all.js(2).download": "83006561af55b7a96dd7e17d34ebfe8a", "docs/source/_static/index_files/all.js.download": "39bebcf34d45ccab4d08bfb31b684294", "docs/source/_static/index_files/check_data.png": "e44471c2514f8a048df2a89a9df2e795", "docs/source/_static/index_files/code.png": "814df667bb94b7d2ae844d938ec916b7", "docs/source/_static/index_files/font-awesome.min.css": "ea6cc550de5339fc787f1e041363e544", "docs/source/_static/index_files/ico_mailme_01.png": "c40acf63e04064714b98a30a92984868", "docs/source/_static/index_files/main.png": "1b6f8a5331f0c5954a86b9024f070568", "docs/source/_static/index_files/modernizr.js.download": "4fae2a90728c528aa148c31466b7ed39", "docs/source/_static/index_files/normalize.css": "ed3146b9b1ec5eecb132a21916d0afe5", "docs/source/_static/index_files/robot.svg": "ba2b8a892fc5457a02829ba0b2caf3da", "docs/source/_templates/index.html": "66315ce66e29f04ce356a9b8b0d41ac8", "examples/HereWeGo.py": "d94883e4b2545ccfec29c1e76aebb982", "examples/README.md": "d49b56a1fe9a7ef2530943a5848fac88", "examples/README_ZH.md": "ac49a6e35c2518cac510ee6920c840da", "examples/UCI_Credit_Card.csv": "afd3af2602d66d6ceb36cb04216f0ed2", "examples/woe_rule.pkl": "cc2695e5f41ac2679a2040e15ff9463e", "examples/datasets/air_quality_no2.csv": "c27e6437bf25787c881d0d5f57e10233", "examples/datasets/bankloan.sav": "b5e78f9be79d7ba44c4fe5ac69cddc02", "examples/datasets/boston_house_prices.csv": "6454dba73c425c66b50d5206ed45f1a0", "examples/datasets/brown-selected.tab": "9e43112b53c6f6c78fa0b2645ace506d", "examples/datasets/brown-selected.tab.metadata": "337569fc2132e37108b428b9b082cfe9", "examples/datasets/cars.sas7bdat": "073898a0487cde27abd7155461c564be", "examples/datasets/car_sales.sav": "7b2487624eb4ffb893812706d30b0542", "examples/datasets/ccpp.csv": "20372480cb1e06f4cb99e46a0bd759a4", "examples/datasets/class.sas7bdat": "6e69aeb1f12de8d3fc46a64cbd4dc786", "examples/datasets/conferences.dst": "78dc681ceec57ee82dbf1951f11fa758", "examples/datasets/datasets.info": "19934e0d167a3128a09c493b9aeb031e", "examples/datasets/diabetes.csv": "8523f75b2f041c08542910b7ea3a8e84", "examples/datasets/heart_disease.tab": "859a303f42efd8b2a1bd0f2e33fedf71", "examples/datasets/heart_disease.tab.metadata": "ed45f5da717ba279094a29f33a4b263d", "examples/datasets/housing.tab": "e0eda02af8c85dd28b21620ee5c74552", "examples/datasets/housing.tab.metadata": "9d88fcbc612a9928d951ceb5f22b04c9", "examples/datasets/iris.csv": "ffd137d9c66a717d061b9fa5831000b1", "examples/datasets/iris.tab": "bbf17c5ae7e81aeb2ad7694648a6b2e1", "examples/datasets/iris.tab.metadata": "e1d89c7e7561bcc716dafd546058196e", "examples/datasets/list_update.py": "737978a6df832d796431df3b048b051a", "examples/datasets/mushrooms.csv": "2007f683881ecd4febc1b7674c5751a8", "examples/datasets/slovenian-towns.dst": "e6c7acf1cb81c6d71523d0e7b3ea6f41", "examples/datasets/titanic.tab": "4291853e1bf953ef2c0c1e39653a0f80", "examples/datasets/titanic.tab.metadata": "5074c723c0342fa64396739eb0480d33", "examples/datasets/TitanicData.xls": "7afb9b02b50c902fd364364f7d2e49be", "examples/datasets/UCI_Credit_Card.csv": "afd3af2602d66d6ceb36cb04216f0ed2", "examples/datasets/zoo.tab": "90a455135a6a8822f1200630270bdcb0", "examples/datasets/zoo.tab.metadata": "1b824e81f9e8969228e01e460d6b05e6", "features/feedback.py": "e932d6167c5b5ec1ee852050e42eb4ad", "features/index.rst": "caf9be56f3fc9b08f569abee024f6cf2", "features/openprocess.py": "539c43bc37743144d9216715b8fad57f", "features/README.md": "eed382b7fe1775f4b6b875d4b564ae50", "features/settings.py": "a7c36fc21234c3a23c7663e1b248e60b", "features/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/auth/authlocalserver.py": "1a7bd0455dc04627bdb5367c7ebc9c2a", "features/auth/authmanager.py": "06a45267063200c67104786db5cff4e1", "features/auth/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/auth/templates/login.html": "446aac7443cc70f43e46753092445aef", "features/auth/templates/register.html": "3a424e8c3bdf1eb6043e0ab9ca34acff", "features/extensions/index.rst": "01d20711a991f116e372db6fb72c96df", "features/extensions/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/extensions/extensionlib/baseext.py": "677942d6d94defa454ec27b173d582db", "features/extensions/extensionlib/extensionlib.md": "94a4baa33bc1d528521ef8c0655fe06d", "features/extensions/extensionlib/extension_lib.py": "aa9a41f7e240b9d8c1222c454e0e5b6a", "features/extensions/extensionlib/readme.md": "00629cf6b22e95200c530ea6d512057f", "features/extensions/extensionlib/__init__.py": "2dc050a0d3da896f4b39681a6e057f63", "features/extensions/extensions_manager/ExtensionLoader.py": "aee9c0b155f0bade604e41d3a38efa36", "features/extensions/extensions_manager/log.py": "6e8bd61219f2ff606b58c1399d322ddf", "features/extensions/extensions_manager/manager.py": "a7fa22dd5ba1fc531f31b0741f12c61e", "features/extensions/extensions_manager/readme.drawio": "4bafe50e30ca4be5cdef34e1e657f7a6", "features/extensions/extensions_manager/README.md": "97b9464ed10af4ad3015ac7f38e6cf99", "features/extensions/extensions_manager/UIInserter.py": "e66518eebc812a4f5b94997351fe1b0b", "features/extensions/extensions_manager/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/extensions/extensions_manager/vermanager/vermanager.py": "01c76efe94e29a53138a670f909f2d52", "features/extensions/extensions_manager/vermanager/__init__.py": "03f044152b579a37841af43eae7f2389", "features/interpretermanager/interpretermanager.py": "8f6eb0c65aecdc23433886ee621ca8ae", "features/interpretermanager/packagemanager.py": "573cf34280aff9d22775f692e63cbb8c", "features/interpretermanager/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/io/database.py": "567325cf72a6f4564a4a0f27326f1b25", "features/io/dbConn.py": "50780c5805a79cb1934b2d7e0d8c0ab6", "features/io/dbConnectAccount.pkl": "5d9291410939747f2c8c07dd81222283", "features/io/encoding.py": "8732c5b2dd5f7c4e01352d4f7da32beb", "features/io/exceptions.py": "72dcca0f3371e119d43e9827e73528b0", "features/io/settings.py": "5736539aac71f498273283f3ac4b8e77", "features/io/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/main_window/base.py": "a75c541e9a1edce2b00ca28afa9c30cb", "features/pluginsmanager/pluginsmanager.py": "f7dc55bb96470571a9a6558cb3962591", "features/pluginsmanager/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/project/template/Basic-Template.py": "4204e7ce0f6309fd93535659c3c466c8", "features/project/template/Empty-Template.py": "18dc747535104b7c6ef67b21c97069f1", "features/project/template/Plot-Template.py": "b688a56819d86c6eb44ff9e72b809091", "features/project/template/PyQt-Template.py": "8a64552bb7be154721ceeaf50f4e8673", "features/project/template/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/project/template/PySide2Template/main.py": "ed912fbf0fc0c20fcacb81bd19800c14", "features/project/template/PySide2Template/PySide2_Template.py": "ac93a3b7fc512f9c0afa7f00a2643674", "features/project/template/PySide2Template/PySide2_Template.ui": "c8cd27a3e0b5cb1c9936603328d7b732", "features/project/template/PySide2Template/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/ui/main.py": "2d7d5d9496b9208ddb27e60f708a1a4d", "features/ui/ui_aboutme.py": "f4851904d5347641eb1342ed0a3f50da", "features/ui/ui_aboutme.ui": "d6907e63c7a719cb8a7665729bb99bef", "features/ui/ui_appstore.py": "256f2fd75ad7ffdf667c13bf7a3b5128", "features/ui/ui_appstore.ui": "a7e7317eca4ee6311e41968445e1fa81", "features/ui/ui_check_update.py": "8226a48eb517b9da8cf425b809ff3c8a", "features/ui/ui_check_update.ui": "0766a087aa5b8e4a5e46f4211055aa9b", "features/ui/ui_data_normal.py": "d9971d97184ade3f9c405f061dd22231", "features/ui/ui_data_normal.ui": "c8a3e10c4487ce5a2774ca8ea5a5905a", "features/ui/ui_first_form.py": "cbbf26db8887e60df0dd7ce0713a5a54", "features/ui/ui_first_form.ui": "1b5d9231837a421c9b77382b3f6f1719", "features/ui/ui_option.py": "503fa66e0ae8631197f32a1597749c10", "features/ui/ui_option.ui": "12bc7bd87d0877c55b9cc0d17c1890e6", "features/ui/ui_preferences.py": "d925283bad5dc99d85a90798cb86c6ce", "features/ui/ui_preferences.ui": "4336a5c78eef921b047e1c86c49650f5", "features/ui/ui_project_wizard.py": "65f0c2afe19b349e8b63b57a941c4db1", "features/ui/ui_project_wizard.ui": "9d21051c8df87eb832bdf8a5470f1c8c", "features/ui/ui_workspace_launcher.py": "594f60adb389355ef83a5bca20eafb5a", "features/ui/ui_workspace_launcher.ui": "fd4e48c43a6d35a209c2696942f0927f", "features/ui/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/ui/common/debug_process_with_pyqt.py": "2971e07b890f1872c7f7009c4d2b44fe", "features/ui/common/openprocess.py": "3d1aeb10bde66329d7126840466ba6df", "features/ui/common/open_process_with_pyqt.py": "851480f8440b2f81033a319b5f32f465", "features/ui/common/platformutil.py": "070ffc4eaea4cb0c4b6dcca39fe4035f", "features/ui/common/pmlocale.py": "f7ca747cc3dedc2b6cf03c7b5f9ec121", "features/ui/common/test_open_app.py": "5f56a2266c07dd652659c949b297f498", "features/ui/common/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/ui/pmwidgets/dockwidget.py": "cb0c4fe5642dda21f5692ecce49eed95", "features/ui/pmwidgets/pmmainwindow.py": "ea78023b087566104250cdf11d1c1857", "features/ui/pmwidgets/toplevel.py": "8700605abc51c422a5a1588dc80a8bfd", "features/ui/pmwidgets/__init__.py": "dbd5c209ff332a55a7e483fcb686421f", "features/ui/pm_marketplace/install.py": "54117accb9d426c89b751355b7e73f0b", "features/ui/pm_marketplace/install.ui": "22c1cb1d2e58f0e6e63d3c199af96edd", "features/ui/pm_marketplace/main.py": "1fea599f650efa60951f3029d940d73e", "features/ui/pm_marketplace/main.ui": "76b3d012f1742eeb8cb85a0ee9ec5680", "features/ui/pm_marketplace/package_manager_main.py": "0ab9760f90d31f8f0eb3287bdf530891", "features/ui/pm_marketplace/package_manager_main.ui": "8dba9def55b1ea06d6c953f33e875cb9", "features/ui/pm_marketplace/uninstall.py": "292fa58f6d05fc584029fb0650702aa3", "features/ui/pm_marketplace/uninstall.ui": "c1160fc571c23573e4bfb4ada3807edc", "features/ui/pm_marketplace/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/ui/widgets/controlpanel.py": "d5fceeb26a8878ff80d6339895dbb5cd", "features/ui/widgets/notificationwidget.py": "3c6d71d757c8a0e3a11b9e48ca7108eb", "features/ui/widgets/README.md": "9f7d88859d291d2f64cba1b6ba49a59e", "features/ui/widgets/reportwidget.py": "1f00f377fe6cfc610cf58e68462307e6", "features/ui/widgets/resources.py": "14a758e941b459f8b23704065f1e8639", "features/ui/widgets/__init__.py": "77b4a6a8852c7103e7525d3955c40358", "features/util/check_update_ui.py": "5bfc0584c45856ace75efedafd677436", "features/util/check_update_ui.ui": "0766a087aa5b8e4a5e46f4211055aa9b", "features/util/make_update.py": "17f81b28bdc7a353dac1d7b45ed762cf", "features/util/openprocess.py": "539c43bc37743144d9216715b8fad57f", "features/util/update.py": "c355f67a9fbf9d4e2a7dc6b53d5c453c", "features/util/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/workspace/data_manager.py": "d7b5e29419b744fad86e6245018de1e8", "features/workspace/index.rst": "3ce5d474607ba614ba9f6afc772e7bc2", "features/workspace/signals.py": "d950f3f33fd821323d95ece2b8d90e84", "features/workspace/signals.rst": "3618e25aa7f77f05142dc84a96eaf45c", "features/workspace/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/workspace/blinker/base.py": "83733f47cb03be3713ce7a5860612e96", "features/workspace/blinker/_saferef.py": "ced62e1fda983045da2076064a7db34d", "features/workspace/blinker/_utilities.py": "1aeb68e85d8ad0aa80295e5f29f42d18", "features/workspace/blinker/__init__.py": "464a73bb96572aaf6c2ed191676d40a4", "features/workspace/data/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/workspace/data_adapter/array.py": "2891617cd8d0eb1cd3780258212ce847", "features/workspace/data_adapter/base.py": "8d176a5909da92fbbfdade7ecd040127", "features/workspace/data_adapter/data_frame.py": "d71dc9d36194663b154bbb13eb1bf8a9", "features/workspace/data_adapter/detector.py": "af748d211285fe07fa56bf2b21e4d60e", "features/workspace/data_adapter/index.rst": "1d16f21a65dadb51dc1ecc68d9cad119", "features/workspace/data_adapter/universal.py": "49603cc94bc554bdb8456a1cdbdd39b1", "features/workspace/data_adapter/__init__.py": "b9da2c81695eae92f9748a4a59cd0c29", "features/workspace_old/history.md": "ab52fc7f26dff2cecf2f2f704844db56", "features/workspace_old/index.rst": "961579c17854f0d0d7b9f4e0bb6b1621", "features/workspace_old/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/workspace_old/datamanager/converter.py": "0cddb9d818f283a125bf534c3633f2b7", "features/workspace_old/datamanager/datamanager.py": "a2025c72d71aaf79728c54bfaf9dc3d3", "features/workspace_old/datamanager/dataset.py": "5d0b8678f8a53db8d8c9a483b90c79aa", "features/workspace_old/datamanager/exceptions.py": "6ed4da7a9003f12c756366cf67d87027", "features/workspace_old/datamanager/historyset.py": "85f91eac3f692ce44ed011647d319bac", "features/workspace_old/datamanager/metadataset.py": "9047c690af46c4db5b0501fdc25f975b", "features/workspace_old/datamanager/recyclebin.py": "c9effef9419e3be130a027f116761881", "features/workspace_old/datamanager/variable.py": "d35eb9e5fea49eaf5899d7315caa582a", "features/workspace_old/datamanager/varset.py": "54e77b59c43212ef22b4e271b8893953", "features/workspace_old/datamanager/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "languages/en.ts": "64307a7a6a8a2bc627ecbfaf2fc0e805", "languages/en/en.ts": "a426bc922ab99d1920e790b890d1b386", "languages/zh_CN/pmgwidgets_qt_zh_CN.qm": "cbaaec13dd22418095f6c7a9122926cc", "languages/zh_CN/pmgwidgets_qt_zh_CN.ts": "d81ecd8ec48ae725c76eba4f09ee9ecb", "languages/zh_CN/pmtoolbox_qt_zh_CN.ts": "95510ea97a650faeba03d155b1c81cbf", "languages/zh_CN/qt_zh_CN.ts": "bf9e10698c9cef267c344f73e30789e6", "languages/zh_CN/zh_CN.qm": "941aa53373af233466a16d682d7e625a", "languages/zh_CN/zh_CN.ts": "1be0a3147fea71527d4e17065a66d482", "languages/zh_CN/zh_CN.ts.bak": "c916a039d8a676ad891150786e9b1185", "languages/zh_TW/zh_TW.ts": "a426bc922ab99d1920e790b890d1b386", "packages/index.rst": "60e962032576844618f7a1448880b8fd", "packages/__init__.py": "a248423783ba8e03c638b996a91de109", "packages/advanced_drawings_toolbar/group_chart.py": "846a72c9e0303f8ef4b5c6b809f07db7", "packages/advanced_drawings_toolbar/ipython_console.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/advanced_drawings_toolbar/main.py": "78b220f88ba07d759c9f0722f6fc0306", "packages/advanced_drawings_toolbar/map_var.json": "91324fe1e6b292ebc2d548f3ae7d49b7", "packages/advanced_drawings_toolbar/map_var.py": "46e4e76e96cb5691754e4b63a38b67d9", "packages/advanced_drawings_toolbar/package.json": "3483b83687dfaf5bb4410107b04fdfd0", "packages/advanced_drawings_toolbar/radar_chart.py": "67ea13759ea77d67006df488c9fde4e0", "packages/advanced_drawings_toolbar/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/advanced_drawings_toolbar/pmmap/china/all/01-beijing.npy": "05fc6e35605340ef6e4d62af9770ef7a", "packages/advanced_drawings_toolbar/pmmap/china/all/02-shanghai.npy": "dbd37714da88edf44df7a2642ce2c14f", "packages/advanced_drawings_toolbar/pmmap/china/all/03-tianjin.npy": "e767b1d0810acfd174d4b52586441de1", "packages/advanced_drawings_toolbar/pmmap/china/all/04-chongqing.npy": "1980444de2496af7ae7b11cae9372d2c", "packages/advanced_drawings_toolbar/pmmap/china/all/05-heilongjiang.npy": "f369a349db31ac0636e625737802922e", "packages/advanced_drawings_toolbar/pmmap/china/all/06-neimeng.npy": "0366d9f95bfe2e0768a6491f8f5e27cc", "packages/advanced_drawings_toolbar/pmmap/china/all/07-xinjiang.npy": "201b3ff97375ae9ba6e9fc9c7b0eed1e", "packages/advanced_drawings_toolbar/pmmap/china/all/08-jilin.npy": "0ed85b6d84b877cf07154e1b54db0bdd", "packages/advanced_drawings_toolbar/pmmap/china/all/09-gansu.npy": "08c6e4437a0fc5d19d6c655a14a7df2e", "packages/advanced_drawings_toolbar/pmmap/china/all/10-liaoning.npy": "542d598f5c39b363738b0b753d8318d1", "packages/advanced_drawings_toolbar/pmmap/china/all/11-hebei.npy": "5a7ce525859caabaffad0fe1c11cb26f", "packages/advanced_drawings_toolbar/pmmap/china/all/12-shanxi.npy": "5ebb5347431393d599f5f0d36a31dd07", "packages/advanced_drawings_toolbar/pmmap/china/all/13-shan3xi.npy": "71944b8eea6caa0b7e4138063d6e8945", "packages/advanced_drawings_toolbar/pmmap/china/all/14-ningxia.npy": "dc0660ac4216cb4e928fb08dba5e36fb", "packages/advanced_drawings_toolbar/pmmap/china/all/15-qinghai.npy": "46f4e9bf9a47734d0cfbef0916e6cec1", "packages/advanced_drawings_toolbar/pmmap/china/all/16-shandong.npy": "b3eee97751e252f1c729b20cde81220c", "packages/advanced_drawings_toolbar/pmmap/china/all/17-henan.npy": "530d73e54901bf816e61c86bafb97219", "packages/advanced_drawings_toolbar/pmmap/china/all/18-xizang.npy": "83c873032100d735d2a3c1becb4e4ee5", "packages/advanced_drawings_toolbar/pmmap/china/all/19-jiangsu.npy": "33051765300de0a9d003ea91c3846cc6", "packages/advanced_drawings_toolbar/pmmap/china/all/20-anhui.npy": "d80f40e27c3a60188547d058c827eae0", "packages/advanced_drawings_toolbar/pmmap/china/all/21-sichuan.npy": "115e4b1abbc6df1f862095e94cacb8b5", "packages/advanced_drawings_toolbar/pmmap/china/all/22-hubei.npy": "065b61ce8a2728be70d0e726990e42c2", "packages/advanced_drawings_toolbar/pmmap/china/all/23-zhejiang.npy": "6910df476893b4e5a84689094203b724", "packages/advanced_drawings_toolbar/pmmap/china/all/24-jiangxi.npy": "2d4e166cd8d9371a1c6d01848ece3301", "packages/advanced_drawings_toolbar/pmmap/china/all/25-hunan.npy": "ddbce0334a1f79bd77f7b0ae582dd28e", "packages/advanced_drawings_toolbar/pmmap/china/all/26-guizhou.npy": "4d23f4f330203b61c6f8cca0ac764819", "packages/advanced_drawings_toolbar/pmmap/china/all/27-yunnan.npy": "1d1c9378c8427667dbf0b8948c36b484", "packages/advanced_drawings_toolbar/pmmap/china/all/28-fujian.npy": "77270ff92f0d67f0123672527b70772a", "packages/advanced_drawings_toolbar/pmmap/china/all/29-guangxi.npy": "3862d0becc054fe754ae71c111c583ad", "packages/advanced_drawings_toolbar/pmmap/china/all/30-guangdong.npy": "7d7f1392cc01a22d4503354ce7c729b1", "packages/advanced_drawings_toolbar/pmmap/china/all/31-taiwan.npy": "2f398da02605db2be30751dedb92ea90", "packages/advanced_drawings_toolbar/pmmap/china/all/32-xianggang.npy": "b3cf9d637c7d87e82a86174f99be74da", "packages/advanced_drawings_toolbar/pmmap/china/all/33-aomen.npy": "68e3c682aef3e25cf873878a19df5361", "packages/advanced_drawings_toolbar/pmmap/china/all/34-hainan.npy": "a67e27cc4f68d566f6977580d95b006c", "packages/advanced_drawings_toolbar/pmmap/china/all/39-jiuduan.npy": "35fbdcbb72d2c22caab9b1bfd2eba401", "packages/advanced_drawings_toolbar/pmmap/china/small/30-guangdong.npy": "7d7f1392cc01a22d4503354ce7c729b1", "packages/advanced_drawings_toolbar/pmmap/china/small/31-taiwan.npy": "2f398da02605db2be30751dedb92ea90", "packages/advanced_drawings_toolbar/pmmap/china/small/32-xianggang.npy": "b3cf9d637c7d87e82a86174f99be74da", "packages/advanced_drawings_toolbar/pmmap/china/small/33-aomen.npy": "68e3c682aef3e25cf873878a19df5361", "packages/advanced_drawings_toolbar/pmmap/china/small/34-hainan.npy": "a67e27cc4f68d566f6977580d95b006c", "packages/advanced_drawings_toolbar/pmmap/china/small/39-jiuduan.npy": "35fbdcbb72d2c22caab9b1bfd2eba401", "packages/advanced_drawings_toolbar/source/down.svg": "fe6b296aa4020dda5c5a870bb7596235", "packages/advanced_drawings_toolbar/source/plot.svg": "05fd271af6c134f6872c80c489064d60", "packages/advanced_drawings_toolbar/source/\u5730\u56fe.png": "eca50b3207a973738145d1cf12ca0c34", "packages/advanced_drawings_toolbar/source/\u6298\u7ebf\u56fe.png": "1bde0eca8cfa880452accf56ca925866", "packages/advanced_drawings_toolbar/source/\u6563\u70b9\u56fe.png": "78c432bb278d8ea5c9587f23ffdd5f82", "packages/advanced_drawings_toolbar/source/\u6761\u5f62\u56fe.png": "b07f4db5b1785376f97636fc6963234e", "packages/advanced_drawings_toolbar/source/\u67f1\u5f62\u56fe.png": "d6cba37e00bf9bbeb65235897a7b90b9", "packages/advanced_drawings_toolbar/source/\u6c14\u6ce1\u56fe.png": "d6784d4c53145cce1fde17f673b76984", "packages/advanced_drawings_toolbar/source/\u70ed\u529b\u56fe.png": "566d7c6ad396084ca6b7d490868fdc2c", "packages/advanced_drawings_toolbar/source/\u76f4\u65b9\u56fe.png": "a9b01bca53610b2c03f7ea2331c91cc3", "packages/advanced_drawings_toolbar/source/\u7bb1\u7ebf\u56fe.png": "ba733c4c1a0979ab5bc838149490e915", "packages/advanced_drawings_toolbar/source/\u7ec4\u5408\u56fe.png": "c5bea73cff095ad47bd07e1e81921ab2", "packages/advanced_drawings_toolbar/source/\u96f7\u8fbe\u56fe.png": "5aa1a48424b30a157a2bca181c9be2d0", "packages/advanced_drawings_toolbar/source/\u9762\u79ef\u56fe.png": "69682cc944d7afdd5c1f2019bf6ca21c", "packages/advanced_drawings_toolbar/source/\u997c\u56fe.png": "862b6c81a5752ee7d53500ce9064c10d", "packages/advanced_drawings_toolbar/translations/qt_zh_CN.qm": "cd23a7e488d169790b204929188d78e7", "packages/advanced_drawings_toolbar/translations/qt_zh_CN.ts": "ce76ad850f047e2cea0440e4dab7c7d4", "packages/applications_toolbar/applications_toolbar.py": "4b21a4e0c1ca522d2ccb8dd5d2a7294c", "packages/applications_toolbar/dev_tools.py": "22e8cf34a7047b8bed550e99a6e43f3a", "packages/applications_toolbar/ipyinterface.py": "b52686fd36bd819d65916f6c70a135e9", "packages/applications_toolbar/ipython_console.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/applications_toolbar/main.py": "1d6fa534839be7a73ed71881a9fb166e", "packages/applications_toolbar/manage_apps.py": "88d58bae208874c4973e22165f112675", "packages/applications_toolbar/package.json": "b6e6fae7a7650f3a94327d27f4fd4f9c", "packages/applications_toolbar/process_monitor.py": "86f69fb10c7ef7ba19504b418e8851f5", "packages/applications_toolbar/README.md": "500119ec92d71af8ac97e7246e30342e", "packages/applications_toolbar/settings_apps.json": "4182a1dc3f6489bca92a7eb123a85b6c", "packages/applications_toolbar/apps/cftool/algorithm.py": "253d3d8c4d7fcebe0018d65511e03ae9", "packages/applications_toolbar/apps/cftool/GUI_QT.py": "81a8a4dbbb41799c196129cb7b98247c", "packages/applications_toolbar/apps/cftool/main.py": "386bb5ebf2b5d8ad609ecd2be95bb607", "packages/applications_toolbar/apps/cftool/package.json": "ef90cc084c17151e6db5f1a4bb170897", "packages/applications_toolbar/apps/cftool/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/applications_toolbar/apps/cftool/README.md": "82a32691c1f8296f6fe73faebc1ddf89", "packages/applications_toolbar/apps/cftool/regexvalidifyer.py": "f7b28de6b75b89f19078a3e2e10d9818", "packages/applications_toolbar/apps/cftool/test1.py": "d8b7b73613a84a9044721403a1e8042a", "packages/applications_toolbar/apps/cftool/test_file.py": "dc6b5c9b40404d62209e36daf7b4819e", "packages/applications_toolbar/apps/cftool/src/cftool.png": "04975fa7979a56ac4dabea313cc7c004", "packages/applications_toolbar/apps/cftool/src/\u66f2\u7ebf\u62df\u5408.png": "d7ccf65e6d59dfd63507f1432454a943", "packages/applications_toolbar/apps/demo_app/default.png": "b58b2daf9a2a44726b678f235aed41e6", "packages/applications_toolbar/apps/demo_app/demo_app.py": "931bb2658ec5554a4f1cbb7424736f5a", "packages/applications_toolbar/apps/demo_app/main.py": "63ffc303fd56ba7d882fe108cd44efeb", "packages/applications_toolbar/apps/demo_app/package.json": "24bd9031b9afde16470332c19333c0bb", "packages/applications_toolbar/apps/demo_app/README.md": "ddb8b30770b3972dee69051c99026d1f", "packages/applications_toolbar/apps/demo_app/settings.json": "e4385e0a6554dfe40b3696f328f5edd1", "packages/applications_toolbar/apps/flowchart/flowchart.png": "e419f05974065c85c4c7b56604ce920a", "packages/applications_toolbar/apps/flowchart/main.py": "3288fef7caa83b16745351634f1c5e13", "packages/applications_toolbar/apps/flowchart/package.json": "bfe315ff8f31d2c4699a560608a5b973", "packages/applications_toolbar/apps/flowchart/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/applications_toolbar/apps/flowchart/README.md": "9b53d15d3e33ddba31de6b5f4e684c1b", "packages/applications_toolbar/apps/flowchart/examples/drop_duplicated.pmfc": "be5c44289f838b15d93c1b227b657091", "packages/applications_toolbar/apps/flowchart/examples/read_all_csv_files.pmfc": "4b1e9884b118c9dfa1e855f55178fad5", "packages/applications_toolbar/apps/flowchart/plugin_nodes/nodes.py": "92702a3afc444e8ce17b53314722eff6", "packages/applications_toolbar/apps/flowchart/plugin_nodes/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/applications_toolbar/apps/flowchart/resources/flowchartwindow.jpg": "d91093a77c5746982f7575081674e05b", "packages/applications_toolbar/apps/flowchart/resources/nodeports.jpg": "fddd899d2618662bb2b61d7e09680ad2", "packages/applications_toolbar/apps/flowchart/test_files/test_drop_duplicated.csv": "0574869eff0b86a260260b72cf53bb4a", "packages/applications_toolbar/apps/ligralpy/chart_server.py": "b3dc9a23925b30a73ac974f7a8123689", "packages/applications_toolbar/apps/ligralpy/Data.csv": "5fdba74629c5a0b1a5a6be20a3a19688", "packages/applications_toolbar/apps/ligralpy/flowchart.png": "e419f05974065c85c4c7b56604ce920a", "packages/applications_toolbar/apps/ligralpy/img.png": "8408ad879fe242ed82c30adbc3694d46", "packages/applications_toolbar/apps/ligralpy/main.py": "59a370745781b14b673f52ef392a5108", "packages/applications_toolbar/apps/ligralpy/package.json": "9e7eeab6e86f652142ae125bec65e71d", "packages/applications_toolbar/apps/ligralpy/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/applications_toolbar/apps/ligralpy/README.md": "9b53d15d3e33ddba31de6b5f4e684c1b", "packages/applications_toolbar/apps/ligralpy/examples/flowchart_stat_demo.json": "2d91e5c4fff5494f14dbb88a8b5f5031", "packages/applications_toolbar/apps/ligralpy/examples/second_ordered.lig.json": "86a67bc8b6402059ff6f15ef83722705", "packages/applications_toolbar/apps/ligralpy/nodes/nodes.py": "a08108573e2ace0e04dc0551da7653a6", "packages/applications_toolbar/apps/ligralpy/nodes/simulation.py": "043e5c86cf3c147d23cda2a2cf589395", "packages/applications_toolbar/apps/ligralpy/nodes/__init__.py": "06133052eded73b0d4be7b4719d5a3fc", "packages/applications_toolbar/apps/ligralpy/nodes/tools/gen_classes.py": "976b6416996c3bd2ce0c811b68175d60", "packages/applications_toolbar/apps/ligralpy/resources/flowchartwindow.jpg": "d91093a77c5746982f7575081674e05b", "packages/applications_toolbar/apps/ligralpy/resources/nodeports.jpg": "fddd899d2618662bb2b61d7e09680ad2", "packages/applications_toolbar/source/appstore.svg": "e2a48d1643f244e957ce9dba9e55a72f", "packages/applications_toolbar/source/app_main.py": "d8797ef1c2c1506b14b24a3602d4f929", "packages/applications_toolbar/source/background.png": "2a3f6737ddbb2a0314cdf2f640b0e929", "packages/applications_toolbar/source/default.png": "b58b2daf9a2a44726b678f235aed41e6", "packages/applications_toolbar/source/down.svg": "fe6b296aa4020dda5c5a870bb7596235", "packages/applications_toolbar/source/install.svg": "699200cfd59967ff740f1e3076795f0f", "packages/applications_toolbar/source/lightening.png": "844cc073cae34c193f3f39335146c955", "packages/applications_toolbar/source/main.py": "f7c06af5e03add541ee260a6224af05a", "packages/applications_toolbar/source/package.svg": "db8542fb863117d5d74f7a6676ab419e", "packages/applications_toolbar/source/qt-logo.png": "9a2446007bbc869ee1ef00479fc73872", "packages/applications_toolbar/source/run.png": "fcf7e23f264801b79df841dabdab9417", "packages/applications_toolbar/source/run.py": "931bb2658ec5554a4f1cbb7424736f5a", "packages/applications_toolbar/source/settings.png": "b9f8edfca0a36df8f3d445f61683511d", "packages/applications_toolbar/translations/qt_zh_CN.qm": "e613b5296764ff24e04450243de3e383", "packages/applications_toolbar/translations/qt_zh_CN.ts": "242fdca10f7405da10eae48f2244e13f", "packages/applications_toolbar/ui/app_designer.py": "b90e5fb6a0430ceb7bb74533ca4d198a", "packages/applications_toolbar/ui/app_designer.ui": "363e995f6861e7817a27e577d236233c", "packages/code_editor/debugger.py": "a19f564dddb9df36cfd14779dfea943c", "packages/code_editor/main.py": "762d355317655d641811bff81339b661", "packages/code_editor/package.json": "f529dee72a413f5d0d92b62ffeaad59b", "packages/code_editor/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/code_editor/README.md": "2918b5e59be436e278047961adb8afeb", "packages/code_editor/toolbar.py": "26ea5eb990d08893ee848dd86768aaba", "packages/code_editor/codeeditor/abstracteditor.py": "b1556e7c0b64c122e8dc6b295b9d9cc9", "packages/code_editor/codeeditor/autocomplete.py": "85443f0a05636004d73019442ca2d628", "packages/code_editor/codeeditor/flake8_trans.json": "745c056024e394cd874a60a0569de1b3", "packages/code_editor/codeeditor/infer.py": "7a9c311fd78ce3afe093bced75ff8fb0", "packages/code_editor/codeeditor/markdowneditor.py": "710b73d04dbf40dbda4c8a9516f1cdb9", "packages/code_editor/codeeditor/pythoneditor.py": "6eb09191f31b0d9a3752e13e3cef6098", "packages/code_editor/codeeditor/syntaxana.py": "b41485288a49c5e9dff3babfdbaa3a3b", "packages/code_editor/codeeditor/tabwidget.py": "781daaa69a0456d857f7c11e03c93834", "packages/code_editor/codeeditor/__init__.py": "de948222f3aba39724a6583a7c1d818f", "packages/code_editor/codeeditor/config/.flake8": "5706c8ed878411a63a6dd9827224e010", "packages/code_editor/codeeditor/config/.style.yapf": "0d898fa79efa8db79c72c151658d26aa", "packages/code_editor/codeeditor/config/.style.yapf.zh": "3f98dd47e54c916665839ab5fe9c5b8c", "packages/code_editor/codeeditor/errors_translation/translate.py": "750d35adf1c925d4e54c5afc6bd4471b", "packages/code_editor/codeeditor/errors_translation/translations.txt": "ec6b11469cf13cc49f53f144a3048952", "packages/code_editor/codeeditor/qtpyeditor/find_gotoline.py": "98a1a7fd1e0b447a55ce0941984ef809", "packages/code_editor/codeeditor/qtpyeditor/linenumber.py": "0dbc3249db663a0d338ec4630a8b857a", "packages/code_editor/codeeditor/qtpyeditor/syntaxana.py": "ccfed05306fc8e31513e4138fc6cb197", "packages/code_editor/codeeditor/qtpyeditor/__init__.py": "750c4f8fd3d0708b965ba5b6349201df", "packages/code_editor/codeeditor/qtpyeditor/codeedit/basecodeedit.py": "1f47f04069d87c1e49eadcac64e0c546", "packages/code_editor/codeeditor/qtpyeditor/codeedit/pythonedit.py": "1bd34b84907bd2cb9602b28ff87aae23", "packages/code_editor/codeeditor/qtpyeditor/codeedit/__init__.py": "49be4addcaeff7654aa0d9770649c359", "packages/code_editor/codeeditor/qtpyeditor/codeeditor/abstracteditor.py": "ae34418002a69d7872496eb5007842c0", "packages/code_editor/codeeditor/qtpyeditor/codeeditor/baseeditor.py": "81adc6aff2de98db56eb88c22fbea69f", "packages/code_editor/codeeditor/qtpyeditor/codeeditor/pythoneditor.py": "5458fc8ab2d05929fa3a9b6790125554", "packages/code_editor/codeeditor/qtpyeditor/codeeditor/__init__.py": "2d1f567a03ae3b14864c5807c2ecfd90", "packages/code_editor/codeeditor/qtpyeditor/highlighters/python.py": "30f29dea3c0261d114038d049dcb8b9b", "packages/code_editor/codeeditor/qtpyeditor/highlighters/__init__.py": "274aab5f8155ea49df8cc33689fe427a", "packages/code_editor/codeeditor/qtpyeditor/icons/breakpoint.svg": "5225dadbedc9f7bda4bb94fecc75ad53", "packages/code_editor/codeeditor/qtpyeditor/icons/copy.svg": "1c800d6346207003b4d7dc70a11e433f", "packages/code_editor/codeeditor/qtpyeditor/icons/debug.svg": "b931caeb19e4cc175cec44fd8af719f5", "packages/code_editor/codeeditor/qtpyeditor/icons/format.svg": "dccd4600d9450bfe4deb9b244c41e85f", "packages/code_editor/codeeditor/qtpyeditor/icons/help.svg": "edfdb212fdcae3ece7e7c58950a35645", "packages/code_editor/codeeditor/qtpyeditor/icons/python.svg": "d17b75c2256afc9b2beb64afeafbc3e0", "packages/code_editor/codeeditor/qtpyeditor/icons/run.svg": "e00087c6bd323d47d4f70a32a25b5667", "packages/code_editor/codeeditor/qtpyeditor/icons/save.svg": "750627b83e976365fb2d80529cb84a2d", "packages/code_editor/codeeditor/qtpyeditor/icons/spate.svg": "13ab9e2e9d07edf5f7c9cd73560141a7", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/class.png": "c64837c614c385630f360831492d8eb9", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/function.png": "7ee29ba9761700d9c9312f95ab6c799e", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/instance.png": "7ccdeda9723de6cbf234c333abe1d244", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/keyword.png": "babe443bc1400af18df2d5a6cc11cec4", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/module.png": "86eaece57974e3d10eb6e175d650abf6", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/param.png": "74e736a865157eb31e015effb34df17b", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/path.png": "7e01e98822f89b5e7bb64c2ead585aa0", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/property.png": "3f6aebb5a4862a8adca6d82dc724ab5e", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/statement.png": "d16ab05b46ff0f6ed3b6421a2a66dab0", "packages/code_editor/codeeditor/qtpyeditor/translations/qt_zh_CN.qm": "2c896338c3b1b75508a842cf534d7cbf", "packages/code_editor/codeeditor/qtpyeditor/translations/qt_zh_CN.ts": "5382de30cc1e09a23252d66ca93b27db", "packages/code_editor/codeeditor/qtpyeditor/ui/findinpath.py": "14fa54fbcf8cb34804f6ef075c4267e6", "packages/code_editor/codeeditor/qtpyeditor/ui/formeditor.py": "1da95795442e26ab7bb522dc811aae50", "packages/code_editor/codeeditor/qtpyeditor/ui/gotoline.py": "609b6fb7d45a04b898878cab26938277", "packages/code_editor/codeeditor/qtpyeditor/ui/ui_formeditor.py": "2d559bafc1b0d8819e62eea2f875de8d", "packages/code_editor/codeeditor/qtpyeditor/ui/ui_gotoline.py": "1827eee50b32b313d397027c46dc020b", "packages/code_editor/codeeditor/qtpyeditor/ui/__init__.py": "de948222f3aba39724a6583a7c1d818f", "packages/code_editor/codeeditor/qtpyeditor/Utilities/autocomp.py": "7adde398458535177d586db7da6eb151", "packages/code_editor/codeeditor/qtpyeditor/Utilities/__init__.py": "d7a23951afba6034e252ea600119c242", "packages/code_editor/codeeditor/simpleeditor/lexer": "d41d8cd98f00b204e9800998ecf8427e", "packages/code_editor/codeeditor/simpleeditor/__init__.py": "fbc8e0505acbb7662554aa0ebf010dd8", "packages/code_editor/codeeditor/tests/get_flake8_output.py": "d6a5545ac0b49483aed41b5059276d1e", "packages/code_editor/codeeditor/tests/get_yapf_output.py": "f6a13da53a21f87d7f5d9fbd0e9a22fa", "packages/code_editor/codeeditor/tests/test_file.py": "4ed78c29dfa08ff34bff564bd39545c4", "packages/code_editor/codeeditor/tests/theme_xml_json.py": "86f8b53c91b4d974acafc78c7a9e399c", "packages/code_editor/codeeditor/themes/Material-Dark.xml": "32f09404512dea8a892ef0095e659ae3", "packages/code_editor/codeeditor/themes/Obsidian PyCs.xml": "934cfd0236acebfaa37bc76516e4cc12", "packages/code_editor/codeeditor/themes/tomorrow.xml": "4f226a7b073ea417d6eca69bdf0e999a", "packages/code_editor/codeeditor/themes/tomorrow_night.xml": "5b7770abad7ab117727e91351140724f", "packages/code_editor/codeeditor/themes/tomorrow_night_bright.xml": "ba3f13a083f3b0aa8f8332e90b4fbb86", "packages/code_editor/codeeditor/tools/eric6_api.py": "72d2e6ee453be1f17e6c0382eb99d344", "packages/code_editor/codeeditor/tools/__init__.py": "9aa13d467aa7ca6ca94b283dea7e5c22", "packages/code_editor/codeeditor/tools/DocumentationTools/APIGenerator.py": "a725a1b2ffcbc8fc98f9e69b252f73ae", "packages/code_editor/codeeditor/tools/DocumentationTools/__init__.py": "f5dba5378fa551d11f098318de65a4a1", "packages/code_editor/codeeditor/tools/QScintilla/Editor.py": "3e5f9b7d8c00734ed27c85bd1de63906", "packages/code_editor/codeeditor/tools/QScintilla/__init__.py": "e58d1155053d6b3763c2ed9f92ca9e57", "packages/code_editor/codeeditor/tools/Utilities/ModuleParser.py": "be326e07e15841196ec7d752417cc6e2", "packages/code_editor/codeeditor/tools/Utilities/__init__.py": "65ffafe4bc9cd6a17832f441036cdb63", "packages/code_editor/codeeditor/ui/formeditor.py": "1da95795442e26ab7bb522dc811aae50", "packages/code_editor/codeeditor/ui/gotoline.py": "2ea843566488cd151da2f6cab335625f", "packages/code_editor/icons/breakpoint.svg": "5225dadbedc9f7bda4bb94fecc75ad53", "packages/code_editor/icons/copy.svg": "1c800d6346207003b4d7dc70a11e433f", "packages/code_editor/icons/debug.svg": "b931caeb19e4cc175cec44fd8af719f5", "packages/code_editor/icons/format.svg": "dccd4600d9450bfe4deb9b244c41e85f", "packages/code_editor/icons/help.svg": "edfdb212fdcae3ece7e7c58950a35645", "packages/code_editor/icons/python.svg": "d17b75c2256afc9b2beb64afeafbc3e0", "packages/code_editor/icons/run.svg": "e00087c6bd323d47d4f70a32a25b5667", "packages/code_editor/icons/save.svg": "750627b83e976365fb2d80529cb84a2d", "packages/code_editor/icons/spate.svg": "13ab9e2e9d07edf5f7c9cd73560141a7", "packages/code_editor/source/lightening.png": "844cc073cae34c193f3f39335146c955", "packages/code_editor/translations/qt_zh_CN.qm": "8e43fef9f53d43e8b693fc52984742d6", "packages/code_editor/translations/qt_zh_CN.ts": "20d10e3f79c729e1c90cbc88858cfd36", "packages/dataio/accountutil.py": "98a4758a6a1b11f7ee17f08e8b6c03d8", "packages/dataio/database_sample.py": "40b1c25397f6ddea9fb38029ee97eaea", "packages/dataio/dataImportModel.py": "88792dc540a80f0a5b22a7de6f3f1b12", "packages/dataio/dbimport.py": "6e4e64e8277a17c0fd21748ee7612b9a", "packages/dataio/dbindexing.py": "8d8d88e3a62cd935519aa4716218fac9", "packages/dataio/export.py": "ce4342d9d704973fe913a5123be41b48", "packages/dataio/exportutils.py": "71a15223db0b6f6ef4bbe7e5ad31a4b6", "packages/dataio/importutils.py": "138d86b798b92d45639791ef57285981", "packages/dataio/main.py": "194549d322dbcea58329cff2cd5d7104", "packages/dataio/package.json": "a857dcfa80f7bbe16b29d447684fede6", "packages/dataio/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/dataio/README.md": "2918b5e59be436e278047961adb8afeb", "packages/dataio/sample.py": "6f183e43f8109877721c9177b3cb11b2", "packages/dataio/settings.json": "d41d8cd98f00b204e9800998ecf8427e", "packages/dataio/dataUI/data_import_csv.py": "6b0ffb99fdb1d3bc68a61ca6a9169063", "packages/dataio/dataUI/data_import_csv.ui": "47c21370141a61960861b65836e7287b", "packages/dataio/dataUI/data_import_excel.py": "17b37971c44f89cdc5cef09c4ae742ef", "packages/dataio/dataUI/data_import_excel.ui": "2038dabc9e1caea8e1328b64fb10dc89", "packages/dataio/dataUI/data_import_matlab.py": "eccad7dc8726499702e75adcb6eb64d4", "packages/dataio/dataUI/data_import_matlab.ui": "4ae19c223a9d60139a73f2b1c553c64a", "packages/dataio/dataUI/data_import_model.py": "6732462f2b28d1228e6b6429d8f820cb", "packages/dataio/dataUI/data_import_model.ui": "6c61ace6854928adfb4c6ea8eff19fb5", "packages/dataio/dataUI/data_import_mysql.py": "10024040b895e1f7a0761cf41ed569aa", "packages/dataio/dataUI/data_import_mysql.ui": "bab2eaf2057d9175638198f14fb5f599", "packages/dataio/dataUI/data_import_oracle.py": "8068996f5d6395e95e878c341273ceb2", "packages/dataio/dataUI/data_import_oracle.ui": "c7d90bb98b8d4c0d5401eca7bcabe7ec", "packages/dataio/dataUI/data_import_postgresql.py": "c5404dc63e987cd2ed07d2b2424d5dac", "packages/dataio/dataUI/data_import_postgresql.ui": "b9a515989b036b7466bc2edd325b6eb1", "packages/dataio/dataUI/data_import_sas.py": "428fd62424d9e21c3d5bdc67ad2474a2", "packages/dataio/dataUI/data_import_sas.ui": "1f8667b3667d2baba53533b938b1a6a9", "packages/dataio/dataUI/data_import_spss.py": "8a1154c9315758ad9fa8bc96bfa1a367", "packages/dataio/dataUI/data_import_spss.ui": "35e2eb820c7e69bef4f06bbce6344c19", "packages/dataio/dataUI/data_import_stata.py": "102a879258cfbb70afc5815684e53b93", "packages/dataio/dataUI/data_import_stata.ui": "fd01ec0806b50f0dbbe7df3ae5578bcb", "packages/dataio/dataUI/data_import_text.py": "347f0183bb4055c43993f5ed84ae3d6c", "packages/dataio/dataUI/data_import_text.ui": "c8cc49a3ee1b2c4209c5c9ffe92fcfd8", "packages/dataio/dataUI/display.png": "38a696b77d8e89b1f24e3077184f3588", "packages/dataio/dataUI/hide.png": "80009586668a32b1a0bcdc5fb1854ac4", "packages/dataio/dataUI/password.py": "c174715c922460e682382cc1a4c9076f", "packages/dataio/dataUI/__init__.py": "cddad8a43ae85331e7fc60b6c4783a14", "packages/document_server/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/document_server/index.rst": "de08e1d943a610a1d4b61de487fc9606", "packages/document_server/main.py": "8e52c195bd0de7649b208fe9431fac90", "packages/document_server/package.json": "d552267ae466f74d360aa2dde9707999", "packages/document_server/settings.json": "ac084b924952c4c88e397f5c1f64c893", "packages/document_server/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/document_server/docserver/renderer.py": "0d2b8fa90287c98d2b2ea47893d902fd", "packages/document_server/docserver/server.py": "b525026a556b339079d30c4294e7fd60", "packages/document_server/docserver/__init__.py": "f64b6b6963038b02a0fafec97cb826da", "packages/document_server/docserver/static/css/main.css": "514ba05b769e4a20a328f77267aeb3a0", "packages/document_server/docserver/static/css/main.css.map": "db360aa1e642da89de3240fed50e4432", "packages/document_server/docserver/static/css/main.sass": "7b0d06ed553c19887a7dcad5bb97e954", "packages/document_server/docserver/static/js/main.js": "52a8a678ac589478f5b97e88066109c6", "packages/document_server/docserver/static/mathjax/tex-mml-svg.js": "2ac6956d3f16edb119f3b5686ef933d5", "packages/document_server/docserver/templates/content.html": "7420679eb81eea0ca7b9e98972b49160", "packages/document_server/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/document_server/translations/zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/drawings_toolbar/group_chart.py": "846a72c9e0303f8ef4b5c6b809f07db7", "packages/drawings_toolbar/ipython_console.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/drawings_toolbar/main.py": "6d8e3f8e511fa3ec1186e59c68487b69", "packages/drawings_toolbar/map_var.json": "91324fe1e6b292ebc2d548f3ae7d49b7", "packages/drawings_toolbar/map_var.py": "46e4e76e96cb5691754e4b63a38b67d9", "packages/drawings_toolbar/package.json": "95e01099cdd1f73595c179112383e45a", "packages/drawings_toolbar/radar_chart.py": "67ea13759ea77d67006df488c9fde4e0", "packages/drawings_toolbar/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/drawings_toolbar/fastui/base.py": "5aabafefad5433391c67bf5f5749141f", "packages/drawings_toolbar/fastui/draw_boxplot.py": "54cc901679b29dc27fbaa8c12a458daf", "packages/drawings_toolbar/fastui/draw_hist.py": "97f5fd773217c53c26c9d44c6905f8cf", "packages/drawings_toolbar/fastui/functions.py": "2756f0633851f7605644c78de2f9e7b6", "packages/drawings_toolbar/fastui/plot.py": "c52ba2a8e3dc27b6397480b316f3f745", "packages/drawings_toolbar/fastui/__init__.py": "b3f689f89235e0fd970023fb1910ebaa", "packages/drawings_toolbar/fastui/helps/boxplot.md": "c28b070128b33660fd657c82d7bd2d54", "packages/drawings_toolbar/fastui/helps/markers.md": "35a158b4cb160219a0d5f4c89025f50c", "packages/drawings_toolbar/fastui/helps/plot.md": "9a819ab6bdf462d779ff742d77e49526", "packages/drawings_toolbar/pmmap/china/all/01-beijing.npy": "05fc6e35605340ef6e4d62af9770ef7a", "packages/drawings_toolbar/pmmap/china/all/02-shanghai.npy": "dbd37714da88edf44df7a2642ce2c14f", "packages/drawings_toolbar/pmmap/china/all/03-tianjin.npy": "e767b1d0810acfd174d4b52586441de1", "packages/drawings_toolbar/pmmap/china/all/04-chongqing.npy": "1980444de2496af7ae7b11cae9372d2c", "packages/drawings_toolbar/pmmap/china/all/05-heilongjiang.npy": "f369a349db31ac0636e625737802922e", "packages/drawings_toolbar/pmmap/china/all/06-neimeng.npy": "0366d9f95bfe2e0768a6491f8f5e27cc", "packages/drawings_toolbar/pmmap/china/all/07-xinjiang.npy": "201b3ff97375ae9ba6e9fc9c7b0eed1e", "packages/drawings_toolbar/pmmap/china/all/08-jilin.npy": "0ed85b6d84b877cf07154e1b54db0bdd", "packages/drawings_toolbar/pmmap/china/all/09-gansu.npy": "08c6e4437a0fc5d19d6c655a14a7df2e", "packages/drawings_toolbar/pmmap/china/all/10-liaoning.npy": "542d598f5c39b363738b0b753d8318d1", "packages/drawings_toolbar/pmmap/china/all/11-hebei.npy": "5a7ce525859caabaffad0fe1c11cb26f", "packages/drawings_toolbar/pmmap/china/all/12-shanxi.npy": "5ebb5347431393d599f5f0d36a31dd07", "packages/drawings_toolbar/pmmap/china/all/13-shan3xi.npy": "71944b8eea6caa0b7e4138063d6e8945", "packages/drawings_toolbar/pmmap/china/all/14-ningxia.npy": "dc0660ac4216cb4e928fb08dba5e36fb", "packages/drawings_toolbar/pmmap/china/all/15-qinghai.npy": "46f4e9bf9a47734d0cfbef0916e6cec1", "packages/drawings_toolbar/pmmap/china/all/16-shandong.npy": "b3eee97751e252f1c729b20cde81220c", "packages/drawings_toolbar/pmmap/china/all/17-henan.npy": "530d73e54901bf816e61c86bafb97219", "packages/drawings_toolbar/pmmap/china/all/18-xizang.npy": "83c873032100d735d2a3c1becb4e4ee5", "packages/drawings_toolbar/pmmap/china/all/19-jiangsu.npy": "33051765300de0a9d003ea91c3846cc6", "packages/drawings_toolbar/pmmap/china/all/20-anhui.npy": "d80f40e27c3a60188547d058c827eae0", "packages/drawings_toolbar/pmmap/china/all/21-sichuan.npy": "115e4b1abbc6df1f862095e94cacb8b5", "packages/drawings_toolbar/pmmap/china/all/22-hubei.npy": "065b61ce8a2728be70d0e726990e42c2", "packages/drawings_toolbar/pmmap/china/all/23-zhejiang.npy": "6910df476893b4e5a84689094203b724", "packages/drawings_toolbar/pmmap/china/all/24-jiangxi.npy": "2d4e166cd8d9371a1c6d01848ece3301", "packages/drawings_toolbar/pmmap/china/all/25-hunan.npy": "ddbce0334a1f79bd77f7b0ae582dd28e", "packages/drawings_toolbar/pmmap/china/all/26-guizhou.npy": "4d23f4f330203b61c6f8cca0ac764819", "packages/drawings_toolbar/pmmap/china/all/27-yunnan.npy": "1d1c9378c8427667dbf0b8948c36b484", "packages/drawings_toolbar/pmmap/china/all/28-fujian.npy": "77270ff92f0d67f0123672527b70772a", "packages/drawings_toolbar/pmmap/china/all/29-guangxi.npy": "3862d0becc054fe754ae71c111c583ad", "packages/drawings_toolbar/pmmap/china/all/30-guangdong.npy": "7d7f1392cc01a22d4503354ce7c729b1", "packages/drawings_toolbar/pmmap/china/all/31-taiwan.npy": "2f398da02605db2be30751dedb92ea90", "packages/drawings_toolbar/pmmap/china/all/32-xianggang.npy": "b3cf9d637c7d87e82a86174f99be74da", "packages/drawings_toolbar/pmmap/china/all/33-aomen.npy": "68e3c682aef3e25cf873878a19df5361", "packages/drawings_toolbar/pmmap/china/all/34-hainan.npy": "a67e27cc4f68d566f6977580d95b006c", "packages/drawings_toolbar/pmmap/china/all/39-jiuduan.npy": "35fbdcbb72d2c22caab9b1bfd2eba401", "packages/drawings_toolbar/pmmap/china/small/30-guangdong.npy": "7d7f1392cc01a22d4503354ce7c729b1", "packages/drawings_toolbar/pmmap/china/small/31-taiwan.npy": "2f398da02605db2be30751dedb92ea90", "packages/drawings_toolbar/pmmap/china/small/32-xianggang.npy": "b3cf9d637c7d87e82a86174f99be74da", "packages/drawings_toolbar/pmmap/china/small/33-aomen.npy": "68e3c682aef3e25cf873878a19df5361", "packages/drawings_toolbar/pmmap/china/small/34-hainan.npy": "a67e27cc4f68d566f6977580d95b006c", "packages/drawings_toolbar/pmmap/china/small/39-jiuduan.npy": "35fbdcbb72d2c22caab9b1bfd2eba401", "packages/drawings_toolbar/source/down.svg": "fe6b296aa4020dda5c5a870bb7596235", "packages/drawings_toolbar/source/erase.png": "68beac11764738b4fd52d367e5ad8223", "packages/drawings_toolbar/source/grid.png": "a39688f7d385bf86ba28eaf9d63a286d", "packages/drawings_toolbar/source/label.png": "2289b06fad4b39ea868450cdfbdc5eea", "packages/drawings_toolbar/source/monitor.png": "7272e1f62681d4200a2d778ec3df27e5", "packages/drawings_toolbar/source/plot.svg": "05fd271af6c134f6872c80c489064d60", "packages/drawings_toolbar/source/split.png": "d3cdd812358fd82f19500d8ac1bbc3be", "packages/drawings_toolbar/source/ticks.png": "2165ab858f8de60f5132e861740f7699", "packages/drawings_toolbar/source/\u5730\u56fe.png": "eca50b3207a973738145d1cf12ca0c34", "packages/drawings_toolbar/source/\u6298\u7ebf\u56fe.png": "1bde0eca8cfa880452accf56ca925866", "packages/drawings_toolbar/source/\u6563\u70b9\u56fe.png": "78c432bb278d8ea5c9587f23ffdd5f82", "packages/drawings_toolbar/source/\u6761\u5f62\u56fe.png": "b07f4db5b1785376f97636fc6963234e", "packages/drawings_toolbar/source/\u67f1\u5f62\u56fe.png": "d6cba37e00bf9bbeb65235897a7b90b9", "packages/drawings_toolbar/source/\u6c14\u6ce1\u56fe.png": "d6784d4c53145cce1fde17f673b76984", "packages/drawings_toolbar/source/\u70ed\u529b\u56fe.png": "566d7c6ad396084ca6b7d490868fdc2c", "packages/drawings_toolbar/source/\u76f4\u65b9\u56fe.png": "87113fa7353e0342248a7c953949079e", "packages/drawings_toolbar/source/\u7bb1\u7ebf\u56fe.png": "ba733c4c1a0979ab5bc838149490e915", "packages/drawings_toolbar/source/\u7ec4\u5408\u56fe.png": "c5bea73cff095ad47bd07e1e81921ab2", "packages/drawings_toolbar/source/\u96f7\u8fbe\u56fe.png": "5aa1a48424b30a157a2bca181c9be2d0", "packages/drawings_toolbar/source/\u9762\u79ef\u56fe.png": "69682cc944d7afdd5c1f2019bf6ca21c", "packages/drawings_toolbar/source/\u997c\u56fe.png": "862b6c81a5752ee7d53500ce9064c10d", "packages/drawings_toolbar/translations/qt_zh_CN.qm": "cd23a7e488d169790b204929188d78e7", "packages/drawings_toolbar/translations/qt_zh_CN.ts": "ce76ad850f047e2cea0440e4dab7c7d4", "packages/embedded_browser/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/embedded_browser/index.rst": "f1825ba1705fc05e593342e0eb4d2800", "packages/embedded_browser/main.py": "23ad2b340856b4ee181f560c6234655c", "packages/embedded_browser/package.json": "662baeb4c74d3c20f8a4604a7a9922df", "packages/embedded_browser/settings.json": "ac084b924952c4c88e397f5c1f64c893", "packages/embedded_browser/webbrowser.py": "d9038ba9457b984e37a4ae1e19ab636a", "packages/embedded_browser/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/embedded_browser/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/embedded_browser/translations/zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/extension_demo/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/extension_demo/main.py": "b776c52a5c366b88629c1c12a0c4da57", "packages/extension_demo/package.json": "fe0c68ec838785d4f8ae971ce415f6db", "packages/extension_demo/settings.json": "ac084b924952c4c88e397f5c1f64c893", "packages/extension_demo/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/extension_demo/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/extension_demo/translations/zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/file_tree/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/file_tree/file_tree.py": "b65b3a68d28d55db5bfc3bfb1adecee2", "packages/file_tree/main.py": "b1b29da06e4116ce883eef764bf22f8c", "packages/file_tree/package.json": "0e08e253fce09755a4d9758cb55b3900", "packages/file_tree/settings.json": "5502d6d53ce7276a7cdaa1ef54315efb", "packages/file_tree/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/file_tree/src/up.svg": "cef12db3d43301347f3d556eb9499a6c", "packages/file_tree/translations/qt_zh_CN.qm": "76f4ace00b4ef9e66503cb39d5c9ab5d", "packages/file_tree/translations/qt_zh_CN.ts": "eefaa8ed0d5717aab5253c74ea7d6a3a", "packages/graph_agg/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/graph_agg/graph_agg.py": "7ebd645f566d7412c3af7de2865d2896", "packages/graph_agg/graph_agg_ui.py": "61edf67aebb1d89f92d604a8d22c1200", "packages/graph_agg/graph_agg_ui.ui": "45c54e740ed679ebcdc66594709eaf9f", "packages/graph_agg/main.py": "3399d8c6899a36a92b1910d55d05ea96", "packages/graph_agg/package.json": "b2bfcc74063422e491d0c3df279bbc38", "packages/graph_agg/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/ipython_console/commandparser.py": "8df507247c3112a5a164a961f8b154b5", "packages/ipython_console/index.rst": "de4df58d8cb7a27038ea01f08d3e74c9", "packages/ipython_console/initialize.py": "4439c07a5529c9027290e1464c6a48f5", "packages/ipython_console/ipythonqtconsole.py": "9e95d7a185a9dab27ccf8a84d7b6e818", "packages/ipython_console/ipython_console.jpg": "e2c98aceacdcf9370be0234c1ae56660", "packages/ipython_console/lexersplit.py": "7f8f9acdd8d99bc47d89463a63361ba2", "packages/ipython_console/main.py": "a9fc35e24cf7de73b51d35350ccdb2b4", "packages/ipython_console/package.json": "330d1b64fd0fa236f68e4e9148d7f2ff", "packages/ipython_console/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/ipython_console/translations/qt_zh_CN.qm": "d32941bf701e20d30c70b509e3421f26", "packages/ipython_console/translations/qt_zh_CN.ts": "ae95465c0df4254a53d4144fd5a90148", "packages/jupyter_notebook_support/client.py": "64707c4c5af928668dfe5624020ab381", "packages/jupyter_notebook_support/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/jupyter_notebook_support/ipython_data_show.py": "ba5fafcca30e9db07a1330fb143b539d", "packages/jupyter_notebook_support/main.py": "1961046decf8e842648695f64f4a951a", "packages/jupyter_notebook_support/package.json": "8f1bbf103ab237adf5e932d77304bab6", "packages/jupyter_notebook_support/route.py": "d63fb2946b16cecd4c03b63b96b417fa", "packages/jupyter_notebook_support/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/jupyter_notebook_support/scripts/pyminer_ipython_node.py": "5afb85f04995a313be86875d55896b8f", "packages/jupyter_notebook_support/tests/exec_api_test.py": "db3498a3620bc730a093106024c3d895", "packages/jupyter_notebook_support/tests/find_free_port.py": "7519a17439dd072a5f5609dccf71acff", "packages/jupyter_notebook_support/tests/find_kernel_spec.py": "5e494c2592bc747a166f3e5eb1fdb0d2", "packages/jupyter_notebook_support/tests/jupyter_client_test.py": "cd2193f167111e6f74a51ce27671b6e0", "packages/jupyter_notebook_support/tests/list_running_jupyter_servers.py": "decfc524233da897d5ae4e0896ad42bf", "packages/jupyter_notebook_support/tests/test.json": "fd0693bed89aa001426c855cf60719da", "packages/jupyter_notebook_support/tests/Untitled.ipynb": "0eca040919ec50b82d4197e13564f3f8", "packages/jupyter_notebook_support/tests/.ipynb_checkpoints/Untitled-checkpoint.ipynb": "2f6cceae1d861df553a6ebb64b6862ef", "packages/jupyter_notebook_support/translations/qt_zh_CN.qm": "910b1a4eece778fe19eb8c37d856219b", "packages/jupyter_notebook_support/translations/qt_zh_CN.ts": "a52f5f65e0ebc5ef1c4c205d8b977e5b", "packages/pmagg/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/pmagg/LICENSE": "e49f4652534af377a713df3d9dec60cb", "packages/pmagg/main.py": "26f2abd09259651ad17e35b24de5a097", "packages/pmagg/package.json": "3f5b1d4110de43c171ec51876448d516", "packages/pmagg/PMAgg.py": "51be8eab2ca29167621904193a7d94e0", "packages/pmagg/Readme_CN.md": "b120eff0eec50462b099a5afc44e8135", "packages/pmagg/setup.py": "c819982245570068aeff72f2c4925d3c", "packages/pmagg/unit_test.py": "6cc0c2b57eebac72cb159bdb73dae6dd", "packages/pmagg/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pmagg/icons/annotation.png": "41abc31827d980673cb4b774d9cfc589", "packages/pmagg/icons/arrow.png": "faea79dbbe13b73b2b6b2d381d3f0b04", "packages/pmagg/icons/axis.png": "8aad7c4a25caea1eab5e00416383fe87", "packages/pmagg/icons/back.png": "7e3a69ff1b93c0d922903ca9753d9413", "packages/pmagg/icons/colorbar.png": "51edcf418f2920bcc55e703956345d22", "packages/pmagg/icons/figure.png": "6c84c49ce26f638a352654df89ee3d35", "packages/pmagg/icons/front.png": "b3675ce85ff0c87602fcee821606b376", "packages/pmagg/icons/grid.png": "f495112a5ee666819bccc792ac9ab480", "packages/pmagg/icons/home.png": "e4a7f4019b4ea9cb1f375da78a2e5adf", "packages/pmagg/icons/Icon.ico": "3fe019a16833a4b89743e829706a22a6", "packages/pmagg/icons/image.png": "9a685d94a08e6dab95ab996ac36c3019", "packages/pmagg/icons/layout.png": "113fcb65d470b3c44eca07a69883b067", "packages/pmagg/icons/legend.png": "4554646775b8caab3af239051e231530", "packages/pmagg/icons/line.png": "0ad86f368735816bb25dae9a6037d042", "packages/pmagg/icons/oval.png": "bf5e995685d6bd1758ddc56db9a706c1", "packages/pmagg/icons/pan.png": "d31d48619f6187a992f8bc51f4bbbf31", "packages/pmagg/icons/point.png": "6ea950ae1d8f16fc9d364dea468e1bf6", "packages/pmagg/icons/polygon.png": "a7d892e0a3ca8e00aefc73211cc211aa", "packages/pmagg/icons/rect.png": "9088ab4129c08c3370675a27c5af7f76", "packages/pmagg/icons/rotate.png": "b058a0e469a679d752ea393eb8b94204", "packages/pmagg/icons/save.png": "1f019d1efc880a99aa0d6c413d4b1672", "packages/pmagg/icons/setting.png": "2ca8a4d585232a124bc8f8bbaf913eec", "packages/pmagg/icons/space.png": "a63438f63e5c9a61ae377f92e4638427", "packages/pmagg/icons/style.png": "5479b633bfd95b75aca566d283f90f2d", "packages/pmagg/icons/text.png": "2d058b7289a520eb1087ea7957e85a18", "packages/pmagg/icons/X_axis.png": "81b2fbfd328ea56e03bbac9d98f54bd0", "packages/pmagg/icons/Y_axis.png": "dec07bca2db81b7a13d05cf63147042c", "packages/pmagg/icons/zoom.png": "624d6036e5af3901a672926eed0cfd74", "packages/pmagg/icons/Z_axis.png": "4ef63246be7447c74de3fc6352f56782", "packages/pmagg/langs/en_axes_control.qm": "3e31bb846d2075752f2083796bbab081", "packages/pmagg/langs/en_axes_control.ts": "e3f2a95ffc1ee822600420487fc64497", "packages/pmagg/langs/en_pmagg_ui.qm": "0d72b1e6a3868f6a9d7f4353dc49da57", "packages/pmagg/langs/en_pmagg_ui.ts": "c40ed0942c1fc822cbfdac7d51728e15", "packages/pmagg/langs/zh_CN_axes_control.qm": "43c4b723bf698383102abf57ae7ff375", "packages/pmagg/langs/zh_CN_axes_control.ts": "b69e3a2583aab4d47e9042151ddd4431", "packages/pmagg/langs/zh_CN_pmagg_ui.qm": "bcebcf42735c6849bdecbb77451021dd", "packages/pmagg/langs/zh_CN_pmagg_ui.ts": "a924984618a9687fe9bed9cd1ab3e8bd", "packages/pmagg/pictures/pmagg_api.mmd": "3c46f4d87fb3706b4b1bd70b7e442a5d", "packages/pmagg/pictures/pmagg_api.png": "822f49430932514591eda54acfc10a1f", "packages/pmagg/pictures/pmagg_show.png": "5dc944f02aa22177c5c24ab1f71a391d", "packages/pmagg/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/pmagg/translations/zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/pmagg/ui/arrow_setting.py": "d8e8f2f7101729c6ced2cd4f4dd0ee6d", "packages/pmagg/ui/axes_control.py": "b232825bef4aa017e9bbf92b57640f49", "packages/pmagg/ui/axis_edit.py": "4875d36d29871c4d87c05108117d9f9f", "packages/pmagg/ui/axis_edit.ui": "f7b92a8a5d9b4ca769bf42ebdb34577a", "packages/pmagg/ui/axis_edit_manager.py": "e2245787fc389cb116ca56c37131addd", "packages/pmagg/ui/colorbar_setting.py": "46a557021eeeefe8c56bf5f9e26629cd", "packages/pmagg/ui/color_table.py": "e209c8c3d24f582978ca33100de623a5", "packages/pmagg/ui/default_setting.py": "5846b7322727ee4b19dc7b6c336d1947", "packages/pmagg/ui/default_setting.ui": "b93e791244d7912a51bbaf75a2deff38", "packages/pmagg/ui/default_setting_manager.py": "c06f05023a1bbd6eb754b0e68209fca6", "packages/pmagg/ui/ellipse_setting.py": "4d24440e44796ada3a73a387600899fc", "packages/pmagg/ui/image_setting.py": "6e909b7852eb02a52455a9aa36da7bed", "packages/pmagg/ui/legend_setting.py": "6e3a19772353cdf39944df1e4faa17dd", "packages/pmagg/ui/line2d_setting.py": "470ef26ff8d454e8247f37277d5a785a", "packages/pmagg/ui/linestyles.py": "53c4831d34bb7184456ecc0c983b7b19", "packages/pmagg/ui/pmagg_ui.py": "0ac0c186e7177a3a9c6aee2d9d409177", "packages/pmagg/ui/pmagg_ui.ui": "f1a0f6ff01e632a4994f00258356911f", "packages/pmagg/ui/rectangle_setting.py": "3080ff255cfe2378777f68025e61f2c4", "packages/pmagg/ui/save_image_setting.py": "16036a37904ffa3f20fecc7d004b009f", "packages/pmagg/ui/text_setting.py": "34de8bed7cf453d59fe938be0fbfe92c", "packages/pmagg/ui/title_setting.py": "ebdf8cbd5684278ec81c9cdde176b684", "packages/pmagg/ui/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pm_calc/ipython_console.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/pm_calc/main.py": "83b0f01515be0f4f76da807e9cb61125", "packages/pm_calc/package.json": "9fdd3a4c9b4a20d39944e5f390642e1e", "packages/pm_calc/preprocess.py": "a8c8d1cb131393e4bf0a6e43503f5c7b", "packages/pm_calc/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pm_calc/fastui/base.py": "76ac4b617688dfeb97d75c73803dcd44", "packages/pm_calc/fastui/create_random_variable.py": "fa6d77ce65a13e4974da9f5a33516d2a", "packages/pm_calc/fastui/create_tensor.py": "bde0d9952e2ab26e9fb5f47cf8fff98a", "packages/pm_calc/fastui/create_vector.py": "cb707dcfefc1f308d25c17d6a034cdfc", "packages/pm_calc/fastui/equation_solve.py": "6fdb3b720ad9547553938a3b735bf970", "packages/pm_calc/fastui/matrix_calc.py": "fc4dbc1ce3af2ae26125d1adb7f8f690", "packages/pm_calc/fastui/matrix_inv.py": "bd826082ba2b3c8775563da8c3ee6321", "packages/pm_calc/fastui/matrix_numbers.py": "b9bc2f888b2c98743072fc686e07751f", "packages/pm_calc/fastui/numerical_integration.py": "57edb1443625bdc5d990aa4d99f6272e", "packages/pm_calc/fastui/reshape_tensor.py": "0647e734b05f39cef659c82c315fb023", "packages/pm_calc/fastui/__init__.py": "b3f689f89235e0fd970023fb1910ebaa", "packages/pm_calc/fastui/helps/numerical_integration.md": "df25b4e7795b58e927c62368d814f0ab", "packages/pm_calc/fastui/helps/reshape_tensor.md": "96a600a163541231dc71d43438de0ab4", "packages/pm_calc/icons/create.png": "d94320bc7e7a4dded74f4eda5b6d1c3e", "packages/pm_calc/icons/eigen.png": "97048cae872a927137f5b7295828c5c2", "packages/pm_calc/icons/equation_solve.png": "af3de472d63ef0e8e6005c153d29ad0b", "packages/pm_calc/icons/flip.png": "e769eeaa1f423de72f34dda86f088540", "packages/pm_calc/icons/integrate.png": "0d3a7f301fa771ee8ef56b10541551d9", "packages/pm_calc/icons/matrix.png": "5b97eee2dae1233c831daae04c5dd98f", "packages/pm_calc/icons/matrix_calc.png": "151e56c9e82870f7cf9783971ee37782", "packages/pm_calc/icons/reshape.png": "3ee90fbdcf09e1bcf3f24e13be041530", "packages/pm_calc/icons/rvs.png": "da077db4d3d834bb311f445e6a9a07c7", "packages/pm_calc/translations/qt_zh_CN.qm": "38862557de320f2ff74455ab1c059a5a", "packages/pm_calc/translations/qt_zh_CN.ts": "c17e3ce1dd88a0cfc45d42cd1f706361", "packages/pm_helpLinkEngine/helpLinkEngine.py": "8e712a1e13bd4d0dd0a5f3cbb59212e0", "packages/pm_helpLinkEngine/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pm_marketplace/env_manager.py": "b3d1a95732a2b9c9af7ebb3f2d919f08", "packages/pm_marketplace/env_manager.ui": "c910e7c1fdb7d4931ae6395f32fdb06f", "packages/pm_marketplace/Icon.ico": "3fe019a16833a4b89743e829706a22a6", "packages/pm_marketplace/package_install.py": "3b2122f43e471ed12022254a633e93ea", "packages/pm_marketplace/package_install.ui": "58c036d918d493749750442a6dd6e56c", "packages/pm_marketplace/package_manager.py": "9bc3ebc8d0896b8c90661b5e3e0bab5b", "packages/pm_marketplace/package_remove.py": "2882477a6acf357e401983e64a9e5b3d", "packages/pm_marketplace/package_remove.ui": "cd82652c1c18ce309b7b39f64eb1eb93", "packages/pm_marketplace/package_setting.py": "0900c75df4d09edb2df07df0d40b3893", "packages/pm_marketplace/package_setting.ui": "7294066d39daafe32bfb6e14dc9bd4b2", "packages/pm_marketplace/package_update.py": "7bb12094c0e57a557e2e1d104300e910", "packages/pm_marketplace/package_update.ui": "73dd8b7e55bd1dc9730991b5b9a06fd4", "packages/pm_marketplace/pm_marketplace.py": "c00744c2f27e852e4ad0d2d37df043f7", "packages/pm_marketplace/pm_marketplace.ui": "72b055181d7bd41dbfdd06feac750245", "packages/pm_marketplace/pth_modifier.py": "330f9dce62a058e767c9654020ff2012", "packages/pm_marketplace/__init__.py": "e4e5f41117ada3d729f55649c34a3932", "packages/pm_modelling/default.png": "b58b2daf9a2a44726b678f235aed41e6", "packages/pm_modelling/main.py": "936de10bd651db7f14815477894bed86", "packages/pm_modelling/package.json": "ce1142cf81e5d40919fcce5ebe2ae4f9", "packages/pm_modelling/settings.json": "e4385e0a6554dfe40b3696f328f5edd1", "packages/pm_modelling/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pm_modelling/source/down.svg": "fe6b296aa4020dda5c5a870bb7596235", "packages/pm_modelling/source/plot.svg": "05fd271af6c134f6872c80c489064d60", "packages/pm_modelling/source/\u5730\u56fe.png": "eca50b3207a973738145d1cf12ca0c34", "packages/pm_modelling/source/\u6298\u7ebf\u56fe.png": "1bde0eca8cfa880452accf56ca925866", "packages/pm_modelling/source/\u6563\u70b9\u56fe.png": "78c432bb278d8ea5c9587f23ffdd5f82", "packages/pm_modelling/source/\u6761\u5f62\u56fe.png": "b07f4db5b1785376f97636fc6963234e", "packages/pm_modelling/source/\u67f1\u5f62\u56fe.png": "d6cba37e00bf9bbeb65235897a7b90b9", "packages/pm_modelling/source/\u6c14\u6ce1\u56fe.png": "d6784d4c53145cce1fde17f673b76984", "packages/pm_modelling/source/\u70ed\u529b\u56fe.png": "566d7c6ad396084ca6b7d490868fdc2c", "packages/pm_modelling/source/\u76f4\u65b9\u56fe.png": "a9b01bca53610b2c03f7ea2331c91cc3", "packages/pm_modelling/source/\u7bb1\u7ebf\u56fe.png": "ba733c4c1a0979ab5bc838149490e915", "packages/pm_modelling/source/\u7ec4\u5408\u56fe.png": "c5bea73cff095ad47bd07e1e81921ab2", "packages/pm_modelling/source/\u96f7\u8fbe\u56fe.png": "5aa1a48424b30a157a2bca181c9be2d0", "packages/pm_modelling/source/\u9762\u79ef\u56fe.png": "69682cc944d7afdd5c1f2019bf6ca21c", "packages/pm_modelling/source/\u997c\u56fe.png": "862b6c81a5752ee7d53500ce9064c10d", "packages/pm_modelling/translations/qt_zh_CN.qm": "8a5de3a24facfac59b9b7a95ab7937d7", "packages/pm_modelling/translations/qt_zh_CN.ts": "611800964b03dfef8c1cbc1dc4a0bd9c", "packages/pm_preprocess/base.py": "731a2f17cc570b8b92e5da9e323e07f9", "packages/pm_preprocess/datafilter.py": "ac09562b0e7a6b9094225e01bc70e08c", "packages/pm_preprocess/datamissingvalue.py": "51a2e07966da2b720141bd8cb4721678", "packages/pm_preprocess/datareplace.py": "3cce7391493a104a2fc59a7f792a1883", "packages/pm_preprocess/data_filter.py": "102b1b8071747d6d8ed25530e206c5e7", "packages/pm_preprocess/ipython_console.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/pm_preprocess/main.py": "dd006452670a44799031989f21730175", "packages/pm_preprocess/package.json": "c27f88add11891797e8564867f94abfe", "packages/pm_preprocess/preprocess.py": "a8c8d1cb131393e4bf0a6e43503f5c7b", "packages/pm_preprocess/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pm_preprocess/fastui/base.py": "97be57a24cb88f7de7aee11e768364ab", "packages/pm_preprocess/fastui/datamerge.py": "c11ecb39655996d441747c93d3a82a0a", "packages/pm_preprocess/fastui/dropna.py": "44a433355c6732b5c9a2ceebd2fed587", "packages/pm_preprocess/fastui/fillna.py": "fe5d6a6f14f21db63116e5ece2dcb9c6", "packages/pm_preprocess/fastui/pivot.py": "dc302f4e2a9a0a03f035cb04452dc978", "packages/pm_preprocess/fastui/transpose.py": "b9873caa7d3d698221fcd590eb848e27", "packages/pm_preprocess/fastui/__init__.py": "5774d567a5ade4656321f056692ecf7c", "packages/pm_preprocess/fastui/templates/dropna.json": "2135651085e530edc3555862c807e8a2", "packages/pm_preprocess/fastui/templates/dropna.py": "818d27872b51cabc824f36545e848dc2", "packages/pm_preprocess/fastui/templates/template.py": "ab8ca29cb2d8a0116de63f411ad08729", "packages/pm_preprocess/translations/qt_zh_CN.qm": "38862557de320f2ff74455ab1c059a5a", "packages/pm_preprocess/translations/qt_zh_CN.ts": "c17e3ce1dd88a0cfc45d42cd1f706361", "packages/pm_preprocess/ui/data_column_desc.py": "50e1de93cb2b5af92ef9f70ec61b28ae", "packages/pm_preprocess/ui/data_column_desc.ui": "2e4ff14a2934d2e461967f4adf57d096", "packages/pm_preprocess/ui/data_column_encode.py": "addb53a419ba7aad0c822918bd164584", "packages/pm_preprocess/ui/data_column_encode.ui": "83585c68a1b5f10c8cb5c8f979fc069a", "packages/pm_preprocess/ui/data_column_name.py": "ab1343d7eb25ba61ff00653dc727dcd2", "packages/pm_preprocess/ui/data_column_name.ui": "290d0f3b71254001a41ed5419cfc2aa7", "packages/pm_preprocess/ui/data_delete_column.py": "96cc3bb3a839bf327be48c5b8bcf7b4f", "packages/pm_preprocess/ui/data_delete_column.ui": "eb9f4daa76ea45a80897c7d699f0223a", "packages/pm_preprocess/ui/data_delete_row.py": "302569fa225a51a1f63cc8fd740532f2", "packages/pm_preprocess/ui/data_delete_row.ui": "a2bef2e740f12897748cb3ab8942c994", "packages/pm_preprocess/ui/data_filter.py": "18e9c3b6ec4a59ee18b9304234354fee", "packages/pm_preprocess/ui/data_filter.ui": "6b68ea20099eb2657a83277c2b35c5e2", "packages/pm_preprocess/ui/data_import_database.py": "aa8f2c175707416490b15c5b8a5f91b1", "packages/pm_preprocess/ui/data_import_database.ui": "70081a8159869c52d03f42ff96198bcd", "packages/pm_preprocess/ui/data_import_excel.py": "50eab4e5f295ac1e36b415bc1fc4ce17", "packages/pm_preprocess/ui/data_import_excel.ui": "8e4fad97836b5ade1bcf623df4019354", "packages/pm_preprocess/ui/data_import_sas.py": "b46b3a739487b88044585b81d8e1e6c3", "packages/pm_preprocess/ui/data_import_sas.ui": "3a238589200dae2ca6d95b9f76658bd4", "packages/pm_preprocess/ui/data_import_spss.py": "f2429d58b23aca160b2652423d57c491", "packages/pm_preprocess/ui/data_import_spss.ui": "02e6076ba3dba639a81488f57a779acd", "packages/pm_preprocess/ui/data_import_text.py": "72839d8f4905a64c72e3e1ef25f0e084", "packages/pm_preprocess/ui/data_import_text.ui": "42ff2c69c472636f51e11b1d26162306", "packages/pm_preprocess/ui/data_info.py": "9be5f4ff591e53d622773a0323d00195", "packages/pm_preprocess/ui/data_info.ui": "d4fcd989ceba0f39012093152207d598", "packages/pm_preprocess/ui/data_merge.py": "22e207fe8f408b7c558e4f9231c2812b", "packages/pm_preprocess/ui/data_merge.ui": "9cacfe18fc7720477acc7a53b46dd35f", "packages/pm_preprocess/ui/data_merge_horizontal.py": "af3de8607ed351d77daa6213fb2828bc", "packages/pm_preprocess/ui/data_merge_horizontal.ui": "d61611fdb4e9cde0fbc2e2c332f48bf5", "packages/pm_preprocess/ui/data_merge_vertical.py": "ef03b6681fd55cf8eb42138024ad1a4e", "packages/pm_preprocess/ui/data_merge_vertical.ui": "59f79c7fa7b08e5ae1e1aeb83eb05987", "packages/pm_preprocess/ui/data_missing_value.py": "81f362bf96738d9138b85a3d1a2dd9e2", "packages/pm_preprocess/ui/data_missing_value.ui": "14e0e959934e191ca4ecc2b65342864f", "packages/pm_preprocess/ui/data_new_column.py": "e079cabae617aeb3ba5fab8656bc79d6", "packages/pm_preprocess/ui/data_new_column.ui": "8d83bde6b1701635d9266ff9fe8047d6", "packages/pm_preprocess/ui/data_partition.py": "6f723fbf5b83bc18194b0e9242d08177", "packages/pm_preprocess/ui/data_partition.ui": "bb426c3df5bd8e2300a6fce26f0acb45", "packages/pm_preprocess/ui/data_repace.py": "76d5e5f3168158c6527adbc1c1b1d309", "packages/pm_preprocess/ui/data_repace.ui": "853b6f43d364faaae3d6f2ed484681ea", "packages/pm_preprocess/ui/data_role.py": "698c50eb2a907f5e517454a28d610daf", "packages/pm_preprocess/ui/data_role.ui": "9b659e8e2accf1bf76fe39efa74152ff", "packages/pm_preprocess/ui/data_role_edit.py": "f93e00c6adfd65e436630e4c5c097d3c", "packages/pm_preprocess/ui/data_role_edit.ui": "18a531771deee0c25777880c0f0894e6", "packages/pm_preprocess/ui/data_row_filter.py": "32baeee9b80430448f0e1f8af96a60e2", "packages/pm_preprocess/ui/data_row_filter.ui": "7a9b909a49af56c8f2916bf4c3f186f5", "packages/pm_preprocess/ui/data_sample.py": "a4919fe81ffbd64838ed0b84b924d36b", "packages/pm_preprocess/ui/data_sample.ui": "f43301f891fd0450fe7800cb81ff4af0", "packages/pm_preprocess/ui/data_sort.py": "fc051898a3fd9a70ff38fe8ff1d3106c", "packages/pm_preprocess/ui/data_sort.ui": "674a1b2eb62111b5c5134b01ed6d684e", "packages/pm_preprocess/ui/data_standard.py": "822ec20008baf2b82b8ee00ea1711933", "packages/pm_preprocess/ui/data_standard.ui": "65a2eca4b0f6ea65a6edf0c9b6f1628f", "packages/pm_preprocess/ui/data_transpose.py": "97b688d1ca7fb74f5bd72a615eac397e", "packages/pm_preprocess/ui/data_transpose.ui": "d5b50013e984a0f56af8b45aa213fd20", "packages/pm_statistics/default.png": "b58b2daf9a2a44726b678f235aed41e6", "packages/pm_statistics/describe.py": "d48a7e2d4573eec5ea2d6b78f6d518cf", "packages/pm_statistics/main.py": "35a51268c3d516d91f75fd155981327e", "packages/pm_statistics/package.json": "b0cfa0a43b9b4ceffef50955bc142708", "packages/pm_statistics/settings.json": "e4385e0a6554dfe40b3696f328f5edd1", "packages/pm_statistics/stat_desc.py": "1d1af20f21d51a2c4c937b583fa1c1e0", "packages/pm_statistics/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pm_statistics/source/add.svg": "abddfead93cdf1feeff13e0fb361b2bc", "packages/pm_statistics/source/collect.svg": "df376dc82733ce771785e80417b5730c", "packages/pm_statistics/source/comment.svg": "17b32e5429d0af97cb4b0cb0b878301a", "packages/pm_statistics/source/descending.svg": "4c0294dcdbb972f6f7e7daae9ca3695e", "packages/pm_statistics/source/down.svg": "cf38a40a26932f5d960da15d8bbcb9f5", "packages/pm_statistics/source/history.svg": "f5e2890d446cc530e8505c2a8bcbeb4c", "packages/pm_statistics/source/left(1).svg": "195de59f0ae8946bbdad79b1e6211c13", "packages/pm_statistics/source/left.svg": "5e2fab4fbb3002791406ffb7d4f24552", "packages/pm_statistics/source/like(1).svg": "be280f55711fe37711710d66cc6de07f", "packages/pm_statistics/source/like.svg": "cd5a555d5aeb29ea51c2d4c411a8e2f7", "packages/pm_statistics/source/offline.svg": "864ab749688d77a17dd418ddd12f613f", "packages/pm_statistics/source/print.svg": "58e74f093ab0f76d7a5f4827139d8202", "packages/pm_statistics/source/reduce.svg": "d3a4d2cb5e65462b6e488f9008101095", "packages/pm_statistics/source/replace.svg": "2c9371c33c45026339f8f0a0fad242bb", "packages/pm_statistics/source/right(1).svg": "6ab0334feba1ebc9fe424a408dbeb053", "packages/pm_statistics/source/right.svg": "0d34209038963d8520605c2945a4aea5", "packages/pm_statistics/source/up.svg": "bfc6c9a4e8afe014a9ef2a3a2eaac829", "packages/pm_statistics/source/user.svg": "03789a31cc8d77164ee5e38758be9fed", "packages/pm_statistics/source/view.svg": "404b787576ea5ee3fb77e219a4020739", "packages/pm_statistics/translations/qt_zh_CN.qm": "27c309c51dd6a9b4453805a9d57314d8", "packages/pm_statistics/translations/qt_zh_CN.ts": "6f69f9df98fc80ba305d1ce1bc850e9a", "packages/pm_statistics/ui/stats.qrc": "9e88108821db568452feff5c52cd51bf", "packages/pm_statistics/ui/stats_rc.py": "aed3f3d5bd2699a234c5b87a8c90c27a", "packages/pm_statistics/ui/stat_base.py": "16ff0fac4ad347a51cb36503ddabc76b", "packages/pm_statistics/ui/stat_base.ui": "5b3601a91453d85b8ba247fac1772a85", "packages/qt_vditor/client.py": "64707c4c5af928668dfe5624020ab381", "packages/qt_vditor/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/qt_vditor/main.py": "43f5ca83b9b8de08a4b08f98c8d5b12c", "packages/qt_vditor/package.json": "a6ea48177df90bd33e6d9ef571715434", "packages/qt_vditor/route.py": "81e4d783b1ee5662a42175044860ac97", "packages/qt_vditor/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/qt_vditor/templates/index.html": "ed4bff205de492bd9a445b878941ab98", "packages/setting_manager/main.py": "5e25055f2748fd8f2e16ef6cd438cbfe", "packages/setting_manager/package.json": "7b1091e765c316eb4602acbff21a7b5b", "packages/setting_manager/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/setting_manager/settings.json": "d41d8cd98f00b204e9800998ecf8427e", "packages/setting_manager/settings.py": "f60620c0bbfe1bc061bfc00759107674", "packages/setting_manager/ui_inputs.py": "16c170ac829957e8bd4f3b02f4375472", "packages/setting_manager/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/setting_manager/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/setting_manager/translations/zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/socket_server/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/socket_server/index.rst": "e1840535bf3051014eab7bb2c76fbc10", "packages/socket_server/main.py": "a032c7a064b344e47dd998c545feb38f", "packages/socket_server/package.json": "12d6c14b45eb86427e311e31d005fa20", "packages/socket_server/server_by_socket.py": "44f9cd4351e7a9eb9e535da132926e8e", "packages/socket_server/settings.json": "ac084b924952c4c88e397f5c1f64c893", "packages/socket_server/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/socket_server/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/socket_server/translations/zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/workspace_inspector/data_viewer.py": "96d8e120289b60f4fe6a4877c807a12e", "packages/workspace_inspector/inspectortable.py": "7e88412960946a64afcdaee6b3bf1902", "packages/workspace_inspector/main.py": "4d6088b006fe4b09815eb34cfad86dcb", "packages/workspace_inspector/package.json": "9ed3843023e8b054420bd126866d6962", "packages/workspace_inspector/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/workspace_inspector/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/workspace_inspector/translations/qt_zh_CN.qm": "4c1aa1fdb602f504983cfc1f303fdb4b", "packages/workspace_inspector/translations/qt_zh_CN.ts": "0176607ae0f96037d5b756be88615f76", "pmgwidgets/get_time_consuming_classes.py": "b1cc4fe83988288288bb4d46a55297e8", "pmgwidgets/__init__.py": "d4a51fe0c972d4f917c7c2029f6d83f5", "pmgwidgets/display/examples.py": "ed6581d11a7624a45e76a0c214abb6e4", "pmgwidgets/display/__init__.py": "de9a0f70e421564574c3c849d8c9cbcd", "pmgwidgets/display/browser/browser.py": "6471eef6706c84e33e915d2539d7ad74", "pmgwidgets/display/browser/get_ipy.py": "fdcef50d9c3d562c0c1a01a07fffac29", "pmgwidgets/display/browser/handler.py": "8360907d55237220c8409d02896e1630", "pmgwidgets/display/browser/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/dynamicgraph/pgexample.py": "3fd8ccf52c92ebeb164ca3b048b657bc", "pmgwidgets/display/dynamicgraph/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/dynamicgraph/base/basetimeseries.py": "5c6cef4a05d653d276681d9281ea7eb3", "pmgwidgets/display/dynamicgraph/base/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/dynamicgraph/mplplots/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/dynamicgraph/pgplots/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/matplotlib/pmagg.py": "bbee7bf2140f5b9e7d0f2bd3f9f1dd53", "pmgwidgets/display/matplotlib/qt5agg.py": "33f10a259f5fa8973c6cb863ef117285", "pmgwidgets/display/matplotlib/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/matplotlib/pyqtgraph/pyqtgraphwidget.py": "c260badf3dd0ad2f2e3bcd0ae107dcd3", "pmgwidgets/display/matplotlib/pyqtgraph/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/vtk/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/docs/threading_and_tasking.md": "803fb7aad9cbd712229fa089727d2aae", "pmgwidgets/docs/doc_figures/pmflowarea_2.png": "4c5b6d091ae5fdc685e94c64a3561218", "pmgwidgets/doc_figures/nested_lists_to_place_widgets.png": "3b3dfe1437591299762a3307ba9880a0", "pmgwidgets/doc_figures/pmflowarea_1.png": "aeef39398e583540e55a87c04fcb19fc", "pmgwidgets/doc_figures/pmflowarea_2.png": "4c5b6d091ae5fdc685e94c64a3561218", "pmgwidgets/doc_figures/settings_panel.png": "d1e20e63c914275463ed75740228e7b6", "pmgwidgets/elements/dockobject.py": "bbad65e7b1f0304112a70c28917c4fe4", "pmgwidgets/elements/toolbar.py": "adb36bf834bbb12c5baabfb323dc5297", "pmgwidgets/elements/__init__.py": "5d3ff4be23732caafec3725aacfd2bb1", "pmgwidgets/examples/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/examples/utilities/examples.py": "4b738678a2cec6ca81f038d2aad1ebc4", "pmgwidgets/examples/utilities/long_conn.py": "a7fb1b9aac35414235ef80dbd1715812", "pmgwidgets/examples/utilities/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/flowchart/create_node_content_class.md": "e15251c3574ee6f3472cb32984007f1c", "pmgwidgets/flowchart/dataprocesswidget.py": "5830d35615c1b8e05555d4005089f1dd", "pmgwidgets/flowchart/readme.md": "13c783b72c01bbef6fd2462deb54d1e1", "pmgwidgets/flowchart/readme_arch.md": "15760931b08a70d8257b8e3695f06105", "pmgwidgets/flowchart/simulationwidget.py": "17b7dadaf18e84f2d359f2e24571cbe4", "pmgwidgets/flowchart/__init__.py": "1ec9907600bd333efbac93fb205ba8d7", "pmgwidgets/flowchart/\u521b\u5efa\u65b0\u8282\u70b9(deprecated).md": "c9a0c64e31e69a6c2b226590bf174049", "pmgwidgets/flowchart/core/flowchart_scene.py": "8e6b923663fb49519f6555d181c6bc2b", "pmgwidgets/flowchart/core/flowchart_widget.py": "6e61a893445b0c08e6bb4fc04f5c9663", "pmgwidgets/flowchart/core/flow_content.py": "9f7f15c45ea181fa9390cac06823cca6", "pmgwidgets/flowchart/core/flow_items.py": "45810b572b64dfb46b1dbafc4c8391bb", "pmgwidgets/flowchart/core/flow_node.py": "426bd423a15ea028aae608489bf27c2f", "pmgwidgets/flowchart/core/nodemanager.py": "22f10c693caabc1a588658af292a8238", "pmgwidgets/flowchart/core/utils.py": "5e2a38303e8fd30ed7ce3131d99ee4ae", "pmgwidgets/flowchart/core/__init__.py": "33d597a87ce723d432ee101bfea5933c", "pmgwidgets/flowchart/doc_figures/before_run.png": "56d3c6e2d043d5be501d27a016bf2eb0", "pmgwidgets/flowchart/doc_figures/check_json.png": "98dcb1514c6a63b37820704c3ff76ce3", "pmgwidgets/flowchart/doc_figures/click_edit_button.png": "1a6625861a3fbd71cf14aa948b16eced", "pmgwidgets/flowchart/doc_figures/click_right_top_add_button.png": "116cc66ea7f7a01621afa2bceeefde15", "pmgwidgets/flowchart/doc_figures/composition_structure.png": "8a898076c0aa77e7cfe627a933d29c73", "pmgwidgets/flowchart/doc_figures/configure_panel.png": "6fc3b5d60c9df7dc4b7ae1ca73162e0a", "pmgwidgets/flowchart/doc_figures/create.png": "77d2839be9232d6923e99ac372f1bdd5", "pmgwidgets/flowchart/doc_figures/create_new_content_Mul.png": "7d8073ceafe5de7b52cc99b7b0f83b70", "pmgwidgets/flowchart/doc_figures/create_node.png": "5defabfa57656965e0ce99fe418d9559", "pmgwidgets/flowchart/doc_figures/custom_node.png": "98076ecba04484ffb0f68bc1d3ebe506", "pmgwidgets/flowchart/doc_figures/edit_node.png": "5bab19f7eb2b5794e85edaaac6ac8f9f", "pmgwidgets/flowchart/doc_figures/edit_panel_meaning.png": "fc03b61991304dbc4b9757420d4853d3", "pmgwidgets/flowchart/doc_figures/popup_edit_panel.png": "a069ec207a2060649079a5876ef785e1", "pmgwidgets/flowchart/doc_figures/sketch_after_edit.png": "562a4f15b3d808e34ed205ba4859c66d", "pmgwidgets/flowchart/icons/down.png": "fe8105e197d1a8dbb7c3f4d04605cc94", "pmgwidgets/flowchart/icons/logo.png": "3ba1fce2f5b57a2ab16287e9d0784702", "pmgwidgets/flowchart/nodes/dfoperation.py": "3ea5a1b70fc51b363cd8d6ea029aa64f", "pmgwidgets/flowchart/nodes/docparser.py": "97e1297436001fc6d447a957799d56d6", "pmgwidgets/flowchart/nodes/plots.py": "1423de8473b088b0cf15fada6cebffdc", "pmgwidgets/flowchart/nodes/random.py": "bbab2dc862413421cfec6c250f5f04cf", "pmgwidgets/flowchart/nodes/reliabilities.py": "834359f014c3618af22987679829df79", "pmgwidgets/flowchart/nodes/simplecalc.py": "75c69d36c3813ee5e6b7f98c8c1893e2", "pmgwidgets/flowchart/nodes/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/flowchart/nodes/dataframeoperation/dropduplicated.py": "5db7eb9383b7e18a6e6b185b657c2f4e", "pmgwidgets/flowchart/nodes/dataframeoperation/randomrowsample.py": "594931f937571051aaa08115303f9b9d", "pmgwidgets/flowchart/nodes/dataframeoperation/__init__.py": "590a3c48436d17b168ab491e3d5ef71d", "pmgwidgets/flowchart/nodes/io/iterator.py": "d41401063ca9a942416f0f057de62c29", "pmgwidgets/flowchart/nodes/io/listdir.py": "8c5903f20f49659f9af2a7ec201d96b3", "pmgwidgets/flowchart/nodes/io/pdimport.py": "c32294f54f65a3f25ba6fd1cdabef0ea", "pmgwidgets/flowchart/nodes/io/__init__.py": "e6a014f94141e383286a37068a446b4d", "pmgwidgets/flowchart/tests/continously_data_process.py": "8f7cbef680438882a373a1a98b6f763c", "pmgwidgets/flowchart/tests/database_import.py": "ac1bb7f644465845aac15203b459813a", "pmgwidgets/flowchart/tests/fault_tree.py": "4e7a094f1bf83835627c17ecf51eec0a", "pmgwidgets/flowchart/tests/node_test.py": "49436316b4bcffa573c07cf714f61d29", "pmgwidgets/flowchart/tests/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/utilities/__init__.py": "846122683610ac9a3a02228d40c893d8", "pmgwidgets/utilities/network/baseclient.py": "025302351202482cdb67961418a21dda", "pmgwidgets/utilities/network/generalclient.py": "57523e2dfe953db9e48e0b2e887f9aea", "pmgwidgets/utilities/network/qtclient.py": "c136486e5d7ce14a760e68b5cef5eac9", "pmgwidgets/utilities/network/server.py": "36c357391ae6077674c686159e9adc0d", "pmgwidgets/utilities/network/util.py": "6d82debc837372e82a42af901dbd8d18", "pmgwidgets/utilities/network/__init__.py": "8dd261a5fd464d78930e554a3c71ca0e", "pmgwidgets/utilities/platform/commandutils.py": "c534c45682925de3a9ef097bc5e9738f", "pmgwidgets/utilities/platform/filemanager.py": "a7ed6bb8a48dc0a631c676b70618b727", "pmgwidgets/utilities/platform/filesyswatchdog.py": "c0a2bf1c91a21a5dcf23e31bfeecb70a", "pmgwidgets/utilities/platform/fileutils.py": "2d57678647203cd47faef20d02cdd114", "pmgwidgets/utilities/platform/openprocess.py": "1d61b9d4e3ad65e71005b378f25c556c", "pmgwidgets/utilities/platform/pmdebug.py": "d0ec593f50f535adc1d9c48c79ea00d7", "pmgwidgets/utilities/platform/translation.py": "c4309549c4c11558fdbc3b7491ed64f6", "pmgwidgets/utilities/platform/__init__.py": "7fd20799d245559b3722b2688b40aada", "pmgwidgets/utilities/platform/test/python_file_test.py": "0c4bff9ef948dbcc88ea0532ae0beb44", "pmgwidgets/utilities/platform/test/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/utilities/source/colorutils.py": "fde6914451c075a3e0428f2cce1d0882", "pmgwidgets/utilities/source/graphicsitemutils.py": "30395a5a9829eee910c69eca95aa649b", "pmgwidgets/utilities/source/iconutils.py": "e83075c233b7ce3290f0e37ded6fba94", "pmgwidgets/utilities/source/translation.py": "bb3c8fbd3051b640ed77d30ab718dc32", "pmgwidgets/utilities/source/__init__.py": "5b8008b3309c862942604991569b19f0", "pmgwidgets/utilities/uilogics/codechecking.py": "48560fbdbd7cf04f3461587b90a12872", "pmgwidgets/utilities/uilogics/drags.py": "857f251d9e621005afd8be2c3bf62708", "pmgwidgets/utilities/uilogics/uidisplay.py": "f4ee6b2b8695f77551bb4d7e5ff7ad39", "pmgwidgets/utilities/uilogics/undomanager.py": "df9dc910b24d09c49e9726420fdeee10", "pmgwidgets/utilities/uilogics/windowutils.py": "8372420c42f626d39d9eb193296cb900", "pmgwidgets/utilities/uilogics/__init__.py": "645e7a6c9bf8432d1c1ba5e333c362c2", "pmgwidgets/utilities/uilogics/tasks/loop_background.py": "4a363d514a49b3d142dd111f957b4a0a", "pmgwidgets/utilities/uilogics/tasks/minimal_thread.py": "94f8326dbba36d11f6e45fb79bb2697c", "pmgwidgets/utilities/uilogics/tasks/one_shot_background.py": "0075eafe0b95ef10ec9e382917867f7b", "pmgwidgets/utilities/uilogics/tasks/threads.py": "380066964983e4398279b18f1cb4c2a5", "pmgwidgets/utilities/uilogics/tasks/__init__.py": "2a83611ec96538dd91f878617b4cc882", "pmgwidgets/widgets/__init__.py": "dace0c2123dda2b5cf61bfbe954f76e4", "pmgwidgets/widgets/basic/__init__.py": "fd2926ad171e35c84c8e34ddc341a15a", "pmgwidgets/widgets/basic/browsers/browser.py": "db4472da3e421edae53084e2f60f8531", "pmgwidgets/widgets/basic/browsers/__init__.py": "f2ca69c55dd6dd321eb50715d281d85f", "pmgwidgets/widgets/basic/browsers/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "pmgwidgets/widgets/basic/buttons/__init__.py": "900cfebb524cf4f7d2a311ba7376744c", "pmgwidgets/widgets/basic/buttons/button/toolbutton.py": "078234cbde02a9528c683296768c716a", "pmgwidgets/widgets/basic/buttons/button/__init__.py": "0c609746f7319525ec3b9a95478be7e1", "pmgwidgets/widgets/basic/buttons/buttonpane/pushbuttonpane.py": "b4b83976fd0b594799dc95bc3c577433", "pmgwidgets/widgets/basic/buttons/buttonpane/__init__.py": "1e6ab09b63582d591d9c9fbb95d77d25", "pmgwidgets/widgets/basic/buttons/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "pmgwidgets/widgets/basic/containers/flowarea.py": "3465e9353838239b7a85503bdb348eb6", "pmgwidgets/widgets/basic/containers/flowlayout.py": "e7722b3b344fb1966513920657c3ab9e", "pmgwidgets/widgets/basic/containers/pmdockwidget.py": "264fd97a9b774531ee722a2c561c9eb1", "pmgwidgets/widgets/basic/containers/pmscrollarea.py": "d4474ecaf4ebe7ef1bc33646f9776c74", "pmgwidgets/widgets/basic/containers/PMTab.py": "69bc55a23c66f5aeefd57c00c54daf9f", "pmgwidgets/widgets/basic/containers/pmtoolbox.py": "aaa8b73936ef32a4c48d3c6dbb4a1edc", "pmgwidgets/widgets/basic/containers/__init__.py": "edcf475260eaebb0aababd31515f66a6", "pmgwidgets/widgets/basic/containers/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "pmgwidgets/widgets/basic/dialogs/textdialog.py": "02c8803b009663537eadcf6d1a1708c0", "pmgwidgets/widgets/basic/dialogs/__init__.py": "b05f556cffa689fce8ecf11590d5073d", "pmgwidgets/widgets/basic/images/imageview.py": "677c40cd96057c84dbb37592daef0af2", "pmgwidgets/widgets/basic/images/imageviewitem.py": "7f4c1d86ca85188970310d26c26d30a8", "pmgwidgets/widgets/basic/images/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/basic/labels/scrolllabel.py": "f6bd03763bb1f04990b20b3a1a9b1c90", "pmgwidgets/widgets/basic/labels/__init__.py": "37e333e93bd172534e76cd5e850f58f1", "pmgwidgets/widgets/basic/labels/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "pmgwidgets/widgets/basic/lists/combobasic.py": "0e7fbf8724164af3e7b8b9933df4729c", "pmgwidgets/widgets/basic/lists/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/basic/lists/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "pmgwidgets/widgets/basic/others/console.py": "18d94581e3073068da3a713551215c56", "pmgwidgets/widgets/basic/others/gauge.py": "16159230eebfc9f1be3ff0c4c5d555e1", "pmgwidgets/widgets/basic/others/instantbootconsole.py": "5633bce9595e8b8e509431e3d3ce5f09", "pmgwidgets/widgets/basic/others/processconsole.py": "adf620b42500885f8252657aefcc701e", "pmgwidgets/widgets/basic/others/__init__.py": "fbcfcf98fbfcfb8625281748544e5194", "pmgwidgets/widgets/basic/others/source/clear.png": "d00b30caeba4e133a503c28d29484cd6", "pmgwidgets/widgets/basic/others/source/run.png": "a7ad927c1b15a7fd5a3a228991d6b778", "pmgwidgets/widgets/basic/others/source/stop.png": "db32ac51e103396c0758faa7ca39df7d", "pmgwidgets/widgets/basic/others/translations/qt_zh_CN.ts": "efbc0c2de628506b1cd2528e85110912", "pmgwidgets/widgets/basic/plots/__init__.py": "29b430ab74236a99e749c91f4a7a4d8d", "pmgwidgets/widgets/basic/plots/bars/histogram.py": "57fe8015a7abe33f76965ffb405a1ba1", "pmgwidgets/widgets/basic/plots/bars/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/basic/plots/lines/timeseries.py": "7a1877123a6d38adb06b3b9f43a6bb73", "pmgwidgets/widgets/basic/plots/lines/__init__.py": "d8f241f084bf5d4a8f4efd5b51d7e94f", "pmgwidgets/widgets/basic/plots/matplotlib/__init__.py": "2ac44857cafb53b120d44169c3c34f04", "pmgwidgets/widgets/basic/plots/matplotlib/base/pmaggplot.py": "c1882247f0027b2b962ba7a5ea3ca7c7", "pmgwidgets/widgets/basic/plots/matplotlib/base/qt5aggplot.py": "33f10a259f5fa8973c6cb863ef117285", "pmgwidgets/widgets/basic/plots/matplotlib/base/__init__.py": "f0e054fea02ba6ad51bf06d2a311e39b", "pmgwidgets/widgets/basic/plots/pyqtgraph/__init__.py": "2be8e98cb7ca94374b5168f14d00b359", "pmgwidgets/widgets/basic/plots/pyqtgraph/base/pgplot.py": "8c38a37cb08c0b54300704a0d1b0f10b", "pmgwidgets/widgets/basic/plots/pyqtgraph/base/__init__.py": "81087fce1382395cd3c04360a691bd99", "pmgwidgets/widgets/basic/plots/scatters/scatters.py": "450136b97d71bbca2ac809b4b7541a7c", "pmgwidgets/widgets/basic/plots/scatters/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/basic/plots/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "pmgwidgets/widgets/basic/quick/demo1.py": "353264297eedb94ef52af4c181c79e4e", "pmgwidgets/widgets/basic/quick/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/basic/tables/tableviews.py": "a2111346680c2af8ab00f8588191e07a", "pmgwidgets/widgets/basic/tables/tablewidgets.py": "890007b4bf1e6e2a38673614f324168d", "pmgwidgets/widgets/basic/tables/__init__.py": "84da0cb7f378bbf1ea095d6b8ccaf66d", "pmgwidgets/widgets/basic/tables/help/help.md": "803db01c2a1acf0f80d479042ecaff99", "pmgwidgets/widgets/basic/tables/translations/qt_zh_CN.ts": "147dcbf56740cccf27dc99dcec3b5b6a", "pmgwidgets/widgets/basic/texts/__init__.py": "e1c06d85ae7b8b032bef47e42e4c08f9", "pmgwidgets/widgets/basic/texts/statusreport/errroreport.py": "a7f14a40ca0be66bd12ac1084f1976f1", "pmgwidgets/widgets/basic/texts/statusreport/__init__.py": "b2b898748d695f952a3838cd8289bfbe", "pmgwidgets/widgets/basic/texts/webeditors/editor.py": "34336ae67d3efda5060edffa2982d941", "pmgwidgets/widgets/basic/texts/webeditors/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/basic/trees/filetree.py": "f2f05c9657978a587295f5a4f09ed1fb", "pmgwidgets/widgets/basic/trees/jsontree.py": "b91dc6b98e5561f0f9988051371101c6", "pmgwidgets/widgets/basic/trees/treecheck.py": "f29b4c69b3f30b99da28eb79bcf1c068", "pmgwidgets/widgets/basic/trees/varattrtree.py": "3f6d8812f23ab42247ee5185e8c8c57c", "pmgwidgets/widgets/basic/trees/__init__.py": "2dc6f31ca28c563654578e8b821f06bd", "pmgwidgets/widgets/basic/trees/translations/qt_zh_CN.ts": "14da9ce6253397bf6c0fcc1c4c004a01", "pmgwidgets/widgets/composited/buttonpanel.py": "a7323ff16ef179e89c39c3253667aafc", "pmgwidgets/widgets/composited/fastui.py": "7bab38b546ec716f0b32842279e04453", "pmgwidgets/widgets/composited/generalpanel.py": "b6be00c44a6e382aae0453e133e84d01", "pmgwidgets/widgets/composited/__init__.py": "d13563610fa6f243f2d973dd42a6f6df", "pmgwidgets/widgets/extended/__init__.py": "cc16561fe162128cca4c778f11263487", "pmgwidgets/widgets/extended/base/baseextendedwidget.py": "378fdef54ba10e68ed5cb276a5624c31", "pmgwidgets/widgets/extended/base/__init__.py": "d7d1b8939cf2c630235925abcb5a2ee2", "pmgwidgets/widgets/extended/checkbuttons/check.py": "d8b6cbe579ad2161bce135f2925313c4", "pmgwidgets/widgets/extended/checkbuttons/__init__.py": "a5c9c5ecdc69c4139ecd15de439b2e0b", "pmgwidgets/widgets/extended/comboboxes/combo.py": "ebf75f80630cac67f9642f5372097df4", "pmgwidgets/widgets/extended/comboboxes/variables_combo.py": "371fd0d84768be8a624dac87979e1f1b", "pmgwidgets/widgets/extended/comboboxes/__init__.py": "58edc6def91691d42263e0d79deec2c0", "pmgwidgets/widgets/extended/entries/baseentryctrl.py": "e752e2c6a708b1a435a84473bba154d8", "pmgwidgets/widgets/extended/entries/colorctrl.py": "16f70e0d829af6c89fcab387dd6f1442", "pmgwidgets/widgets/extended/entries/evalctrl.py": "de708611514272173a02f047b7e5fc68", "pmgwidgets/widgets/extended/entries/filectrl.py": "d11a9711cb319e2131464baa2a6a8d84", "pmgwidgets/widgets/extended/entries/folderctrl.py": "ff904108b13cddf3b6c7837cb60aa847", "pmgwidgets/widgets/extended/entries/keymappingctrl.py": "2a50527522468cd00f3d7ccb99a02a7d", "pmgwidgets/widgets/extended/entries/linectrl.py": "626be1e4169342de4027f902779d9e19", "pmgwidgets/widgets/extended/entries/numctrl.py": "3739731735cc0520c4f45d1b0429297a", "pmgwidgets/widgets/extended/entries/passwordctrl.py": "85a3604a10ba51e5aaddfd269a8f1317", "pmgwidgets/widgets/extended/entries/__init__.py": "a87b64affd6a8b87f14caa030b1d7196", "pmgwidgets/widgets/extended/labels/label.py": "e12d3eaafac1b29d87b6b83cb5ca46c9", "pmgwidgets/widgets/extended/labels/__init__.py": "5d5fadd87777a0ecdf64ec91c7af5fb1", "pmgwidgets/widgets/extended/lists/listwgt.py": "52cf01737cab419a302a61a2fc22dd7d", "pmgwidgets/widgets/extended/lists/__init__.py": "fe79c30d2106faff8c630bec7e79ce37", "pmgwidgets/widgets/extended/others/multitypeparaminput.py": "f987f68f06ba60cd3b371a89a1b6c676", "pmgwidgets/widgets/extended/others/__init__.py": "372dfdcc25b8f846d64b77bea41535b8", "pmgwidgets/widgets/extended/others/monitors/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/extended/plots/__init__.py": "56a6f2c973e69ed27c3021de7b28e035", "pmgwidgets/widgets/extended/plots/lines/timeseries.py": "d0b20cb0ea7e4a6ccafc47d9b16e6fc9", "pmgwidgets/widgets/extended/plots/lines/__init__.py": "bc396f8083302203baaf5d23065c33ca", "pmgwidgets/widgets/extended/radiobuttons/radiobuttonctrl.py": "113268756d9f5bb930230e4f8824ec67", "pmgwidgets/widgets/extended/radiobuttons/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/extended/spins/datetime.py": "e6a555a3bf8d0a57b98d8926ec6684c7", "pmgwidgets/widgets/extended/spins/numberspin.py": "74160a8031c42d2f5ea87cc4a5be3272", "pmgwidgets/widgets/extended/spins/__init__.py": "cfa6752de3dc824468eaaec6166fb3d4", "pmgwidgets/widgets/extended/tables/rulesctrl.py": "6d2fda81132490482c0fdc5263cb5190", "pmgwidgets/widgets/extended/tables/tableshow.py": "100223049815e42adb4fd3c74753dda7", "pmgwidgets/widgets/extended/tables/__init__.py": "2945023ce1794015105e1aba6213136d", "pmgwidgets/widgets/extended/texts/htmlshow.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/extended/texts/markdownshow.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/extended/texts/__init__.py": "4ab23c644c97003b968443d8a2f4a584", "pmgwidgets/widgets/extended/trees/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmlocalserver/readme.md": "6e10586e731f6fdc871441974934b006", "pmlocalserver/server.py": "eb918f25eea0dc91f5235d890a092271", "pyminer_comm/readme.md": "d41d8cd98f00b204e9800998ecf8427e", "pyminer_comm/__init__.py": "f6b46f7aedc9dd22d9cdaf15d1be08c2", "pyminer_comm/base/datadesc.py": "6777b409875d4085835f71230f2146b0", "pyminer_comm/base/encode_decode.py": "42188f6322e17da29d8d1cfb54ebc75a", "pyminer_comm/base/network.py": "1b0fbd15a289297b65698b2139724741", "pyminer_comm/base/sys_utils.py": "4b9c387c0926aa2bec713ba5560c68f1", "pyminer_comm/base/__init__.py": "036632e2718a53fdcd02a87492de0963", "pyminer_comm/data_client/data_client.py": "4d0b76ecba1d51348f3910cc83bc8074", "pyminer_comm/data_client/unittest_data_client.py": "cd4366d90aeca0639432273292da8efe", "pyminer_comm/data_client/__init__.py": "8159a5a2b762aa7581a92517146bd002", "pyminer_comm/pyminer_client/pm_client.py": "e1a5b8b1b974c8b6502561f4e1bab010", "pyminer_comm/pyminer_client/__init__.py": "fa7dd1f47a04d6515681315870a12899", "pyminer_comm/tests/test_communication.py": "95fa83a3686c8ea7bfc4736220e3bbdb", "resources/pyqtsource.qrc": "8a3a6b55a64fa60f8c58f49d2d7eb949", "resources/pyqtsource_rc.py": "1cdc5870d3e5107926e57d15c7fa63ea", "resources/fonts/Cascadia.ttf": "717e365c4a4c1478f8208a5ab33ee26b", "resources/fonts/CascadiaMono.ttf": "66c917f89d707ba0b41d5a1619c1e03e", "resources/fonts/Deng.ttf": "15c8b490227909f31d456ee9d11521e5", "resources/fonts/Dengb.ttf": "2d690e1656db754bc4ce63531223d007", "resources/fonts/Dengl.ttf": "1ddcd772ff1d04a2d545434b47ae4782", "resources/fonts/SourceCodePro-Bold.ttf": "458f0d7c492182d4c1b08621518689c0", "resources/fonts/SourceCodePro-BoldIt.ttf": "0cddef66936155d98aaa0d2a71d609c1", "resources/fonts/SourceCodePro-It.ttf": "df1343e44ce0fd5eb8c09ce8995966c8", "resources/fonts/SourceCodePro-Regular.ttf": "fedb9984186419a66cf725a38b6703ca", "resources/icons/logo.ico": "f1eb0f12aa600bd5638cd6fbca4b978f", "resources/icons/logo.png": "30e040dea91eb5edc95a2ab16c895324", "resources/images/bg.png": "931fe255dbcec81b94c2cd692fa1ff01", "resources/images/left.bmp": "d9daee9f12d8d45832a5f85fb79733cd", "resources/images/PyMiner\u6846\u67b6\u8bf4\u660e.jpg": "02eecc71bfee918d5a559501aa8b1334", "resources/images/splash.jpg": "d093033402635cffde8ae0d4840e46c4", "resources/images/splash_v2.png": "8de3454d0a7ea72b2ddbe2b242ebc535", "resources/images/weixin.png": "9fd2526c405766beb714515a07571c44", "resources/images/xmind.png": "9f0ef2b1b83dee369f38600bbdbf44bb", "resources/images/zhifubao.png": "2b957fd623e55d473c9c1eb81ce7ecd8", "resources/qss/Fusion.qss": "ca11cd3a673931afd7ca83683c500322", "resources/qss/index.rst": "6000f5eae1ed6f0e434e0001675bf8a2", "resources/qss/Qdarkstyle.qss": "1d5438b0c29ab46529c7d38a976dbf62", "resources/qss/standard.ini": "ee661fb8f5a4a0852389e31a11c71001", "resources/qss/standard.qss": "642c153fe3ed02ba9304ed536d8574f1", "resources/qss/Windows.qss": "70481f2ea4c380995271f4b338da0968", "resources/qss/windowsvista.qss": "a4acd31498f588bb1745ef019b746894", "resources/screenshot/check_data.png": "e44471c2514f8a048df2a89a9df2e795", "resources/screenshot/code.png": "814df667bb94b7d2ae844d938ec916b7", "resources/screenshot/group.jpg": "0b3959e958742a35baeaec5044a95584", "resources/screenshot/main.png": "1b6f8a5331f0c5954a86b9024f070568", "resources/theme/default/icons/3d.svg": "61157c75fbfde955215c93e2daf93551", "resources/theme/default/icons/action.svg": "61ef2e8adb0b2bfe5928aa14b376fec3", "resources/theme/default/icons/addannotation.svg": "503b6bffffae70dfe67068cd24f5d88e", "resources/theme/default/icons/added.png": "2acf12376249833027eadb29c9e8a58f", "resources/theme/default/icons/addFeature.svg": "bcc4056d0d52f3cb44acbc81858b6099", "resources/theme/default/icons/addnode.svg": "763e098d49dec789969c25b7e69ab629", "resources/theme/default/icons/addpath.svg": "e700804c812dfe2bdc54798b11814924", "resources/theme/default/icons/add_col.svg": "eee7249c440e048cb1796d3e8d1c949b", "resources/theme/default/icons/add_row.svg": "620b902ccebc31be4d270e7124fb2e48", "resources/theme/default/icons/align_bottom.svg": "f4fb3a0c1bb022440e3489f75e69c390", "resources/theme/default/icons/align_horCenter.svg": "cef02a64b8f66064fc237ea34b41536f", "resources/theme/default/icons/align_left.svg": "2275c71a5bd808f0379098e0663c1aee", "resources/theme/default/icons/align_right.svg": "aeb304bf474f3402804c6c113d197101", "resources/theme/default/icons/align_top.svg": "621e60f54d5dcd50a28aa7aa3be3ffe4", "resources/theme/default/icons/align_verCenter.svg": "a8ea8b762c89efcbeeb78f3c3f72b4dc", "resources/theme/default/icons/allowedit.svg": "3c2b136910b2403dc0da5cd1a54fba0c", "resources/theme/default/icons/allowedit_layer.svg": "fe3079b3a271ac07bea92c298fe75452", "resources/theme/default/icons/allowsearch.svg": "1504eb4f1da9532cbb86754b39c0f410", "resources/theme/default/icons/allowsearch_layer.svg": "e126ff953c35229e30444c8d6e4ae2e8", "resources/theme/default/icons/allowselect.svg": "5b3dbfe62ddbf003af7efb4f429cb0fe", "resources/theme/default/icons/allowselect_layer.svg": "62cbf0796e8e284f4df30d1575d4c16c", "resources/theme/default/icons/allrecords.svg": "75b5c30ce3932f21ae7b16013ffc4c8c", "resources/theme/default/icons/annotation.svg": "1ae382f88b44847332e9826ba46c5397", "resources/theme/default/icons/annotation_no.svg": "c3e5a2d3179e075c49b13015eb5b7e52", "resources/theme/default/icons/anova.svg": "14b71522f19c12ffde5e46202fcf6bc3", "resources/theme/default/icons/appstore.svg": "e2a48d1643f244e957ce9dba9e55a72f", "resources/theme/default/icons/app_down.svg": "5af2c894a37156084df6218bf562c626", "resources/theme/default/icons/attributerender.svg": "216c03c70731a3d0936649486d1ac943", "resources/theme/default/icons/attributes.png": "5a9ddb1cb0d0b3e35bb8f5bec3c7c511", "resources/theme/default/icons/basicStatistic.svg": "e84a179215a06d27e8547e52620a4859", "resources/theme/default/icons/beginfly.svg": "260f78da60b0d46b64fdd9b942167066", "resources/theme/default/icons/bottom.svg": "6fbc8f02bc979600df8a6a8d24bd3ae8", "resources/theme/default/icons/camera.svg": "27ae116857da0dc4bc1bf2a45a899dd9", "resources/theme/default/icons/canshu.svg": "3dd688f4c48e9c5e32ea9ef81ac8ac86", "resources/theme/default/icons/catalogAttributeTablePageFirst.svg": "0872ecfef2107aeaafbcdf0959d1a21f", "resources/theme/default/icons/catalogAttributeTablePageLast.svg": "18d9cf57a8fa52b6fabb08565ba0177f", "resources/theme/default/icons/catalogAttributeTablePageNext.svg": "ceeedf9b8523a724ea5cd524fa733211", "resources/theme/default/icons/catalogAttributeTablePagePrevious.svg": "164f4dc04bc3e9e8c508505027d408fd", "resources/theme/default/icons/catchline.svg": "6b4ee518bf6ba27bdd6cf44188ca864c", "resources/theme/default/icons/catchpoint.svg": "8191852167c41f1408891d74f233110c", "resources/theme/default/icons/centerpointlinkage.svg": "8fe7f934cfdca995811c3170017607d1", "resources/theme/default/icons/changeAttribute.svg": "a1b9c1ff1e2f6d7dad0a3873a52ce13f", "resources/theme/default/icons/changeFeature.svg": "556de2ee6e10e39b6e369c6c7a271be3", "resources/theme/default/icons/changeGeometry.svg": "1628a5992db6891c26741e3356817473", "resources/theme/default/icons/chartStatistic.svg": "30047525eb626a274f074399334f4b30", "resources/theme/default/icons/check_update.svg": "d6e33e022ada06b9b3abf33de637a573", "resources/theme/default/icons/Classification.svg": "658e28143d9a717f0e2b951cc67111ae", "resources/theme/default/icons/clear.svg": "1d841dcc502211799d9055a87cf3c55d", "resources/theme/default/icons/close.png": "20780f1ae86a0f942f448f69e16dbd3c", "resources/theme/default/icons/close_white.png": "7b567f8cd3293ae156df417e5a21dc6b", "resources/theme/default/icons/Clustering.svg": "012392d9351d8983b29e99b42145c77b", "resources/theme/default/icons/cmd.svg": "0ea2aa79bb81ae297c97d356072745bc", "resources/theme/default/icons/column.svg": "006f3f2cbba5c9fc0fcc223883b00fc7", "resources/theme/default/icons/column_2.svg": "4a2981704a879a016c4a8dc88710b5f2", "resources/theme/default/icons/community.svg": "3cdd0bf3826dfc1ad073d7ad449bc93e", "resources/theme/default/icons/compare.svg": "ddc98ac27fe119cb0d4acbf6a04affdc", "resources/theme/default/icons/conflict.svg": "ffe7f2d515ba91b5920547c0193b6474", "resources/theme/default/icons/conflicted.png": "1f83c2acd291df5d1d10ea67930145fe", "resources/theme/default/icons/continuefly.svg": "4346811bddecadf1ff6db3d87c1447d6", "resources/theme/default/icons/copy.svg": "9ad66acb6dcb55bf923628b188ff5f64", "resources/theme/default/icons/copyElement.svg": "cbe746ec2f6abd3a4b5a020943acf0a1", "resources/theme/default/icons/csv.svg": "9867d63fe22cc88b9c47159b0fd04791", "resources/theme/default/icons/csv_gray.svg": "16c6562ded6d0f6e0ee26005b9bc4c7f", "resources/theme/default/icons/currentindex.png": "dc987f99c44a68ca57c15dd784babc24", "resources/theme/default/icons/database_config.svg": "fa799903a0c570e3a09fe7efa6d3a276", "resources/theme/default/icons/dataSourceConfig.svg": "6a3bd375f33fe348498e053f3bcae8f5", "resources/theme/default/icons/dataspecification.svg": "1e6d1fcac3f8dc14a0daffc947c4d14a", "resources/theme/default/icons/data_desc.svg": "5913822d76a61455714c15e6132eb3e6", "resources/theme/default/icons/data_desc_2.svg": "1f51941660ac732dda207d022c26ee04", "resources/theme/default/icons/data_info.svg": "9ead14ad7a1cdf63b5702c48e05e78d3", "resources/theme/default/icons/data_join.svg": "406e169ebb9b8af93d286581f59f0245", "resources/theme/default/icons/data_missing.svg": "c7f2e5a1dc938edae131a30c6b56b711", "resources/theme/default/icons/data_partition.svg": "d8cbc4400259d84850ec97154dacd688", "resources/theme/default/icons/data_role.svg": "5002bd4ed773126cf2d4c34c4bb4541d", "resources/theme/default/icons/debug.svg": "e2ca8b334c69f413637945ebe871d696", "resources/theme/default/icons/debug_red.svg": "ab77c95b9f382e8f6fdb09da83795dfc", "resources/theme/default/icons/deleted.png": "99073a344eb6184343073b14eb3b4338", "resources/theme/default/icons/deletedata.svg": "0809bd41dd7489df3a1dc2a8e976f888", "resources/theme/default/icons/deleteFeature.svg": "5acc1452971d56857d219e9906341904", "resources/theme/default/icons/delete_col.svg": "c64463979c0dabb232a424810a41fad0", "resources/theme/default/icons/delete_row.svg": "28c35f8dae78bb25a1d8b4981996ec5d", "resources/theme/default/icons/dependencies.svg": "150af39be2e05f96916e16c20f7eacbc", "resources/theme/default/icons/diagram.svg": "93a8d692b994662c68e9374ca42fbfe0", "resources/theme/default/icons/disallowedit.svg": "1d2ea40eb876a1b57edfab5937150a23", "resources/theme/default/icons/disallowsearch.svg": "48d814b63bb64b53e1bbe5a745ad2efa", "resources/theme/default/icons/disallowselect.svg": "780b169700eec6b08dc575e3a0d01275", "resources/theme/default/icons/display.svg": "a370d879c046105fa360f2bee6809a10", "resources/theme/default/icons/distribution.svg": "53e6bcf151c4cb9f89f80093c256ea62", "resources/theme/default/icons/donate.svg": "f72f24a7e8db14c7c98394d6c8dfc860", "resources/theme/default/icons/down.png": "303cd2548ab3be7109c7fbab16730725", "resources/theme/default/icons/downWard.svg": "0bf14903bcbdef20890f936ac7855c61", "resources/theme/default/icons/drawline3d.svg": "64fc6cdf5c361bb7a6f2b5c7dadc3934", "resources/theme/default/icons/drawpoint3d.svg": "452946e331372a97bdd09df9f5f86a71", "resources/theme/default/icons/drawpolygon.svg": "e54865783b8e639d6b8aef7f0eb0597f", "resources/theme/default/icons/drawpolygon3d.svg": "4dd900f92c31b8254c18371b72532011", "resources/theme/default/icons/duoyuan.svg": "5d84f2bcfc84ae85a6fb1a7a5ee08b28", "resources/theme/default/icons/E-matlab.svg": "11fb165a87912c326ba2a5f27d4971b8", "resources/theme/default/icons/earth3d.svg": "2bbc786eaadf43a74a592ec82b14ba03", "resources/theme/default/icons/editannotation.svg": "e73609dbea16a474b62e07344a34264d", "resources/theme/default/icons/editConfig.svg": "2e65b8ba1573593af29ee2fcf1a54288", "resources/theme/default/icons/editmetadata.svg": "c89258a047ac04855464e0a2cb883f8e", "resources/theme/default/icons/endadding.svg": "ba25cd175a3a98a0d2c7b81f125975df", "resources/theme/default/icons/endfly.svg": "8aa793c8cc77046cdfd7d70307c83731", "resources/theme/default/icons/errorInfo.svg": "b8d8db18986b89bf3b1b980fa613462b", "resources/theme/default/icons/excel(1).svg": "9eb4ba787a3e62e477772f0c4a93f366", "resources/theme/default/icons/excel.svg": "ea00b0b78bb93119c7eafe98a79a8988", "resources/theme/default/icons/ExcelFile.png": "c488f98763fb577be56bc955c928c947", "resources/theme/default/icons/excel_gray.svg": "a1135950f1896aa177e00eb10f44f910", "resources/theme/default/icons/expendDown.svg": "fe6b296aa4020dda5c5a870bb7596235", "resources/theme/default/icons/expire.svg": "b7055d451d7bf23ddffcd974ceb39225", "resources/theme/default/icons/fastCollect.svg": "b929bc85fd17ba612275008238d70e53", "resources/theme/default/icons/favorites.svg": "589f0e80dde61b86c2470b3799f8f860", "resources/theme/default/icons/feedback.svg": "f695df9b7313ab60be2c3c46b4fc7468", "resources/theme/default/icons/field.svg": "d168f3a212323820267956d6de9ca9d7", "resources/theme/default/icons/file.svg": "58f428cb524544f4f3993bb37f2ef1ba", "resources/theme/default/icons/file_gray.svg": "fe90e95c15020d95c8f5690f3cb5fae3", "resources/theme/default/icons/filter.svg": "e87a00609c494f030812f3c00a2e6e35", "resources/theme/default/icons/final.png": "87457d3035ab89d82a6b57976e9b0245", "resources/theme/default/icons/find_replace.svg": "665177ccc10ce22b469a118beec97dd6", "resources/theme/default/icons/first.png": "f0edce38b01be51e2dfea42df74d8f23", "resources/theme/default/icons/flight.svg": "8857e62ab11e2cd3ae039db12d61b0d4", "resources/theme/default/icons/float.png": "5f31043d787d15eab504b59bef221e6d", "resources/theme/default/icons/float_white.png": "89609a354d4d717f4e578528dfd5547c", "resources/theme/default/icons/fly.svg": "9761c5cef3b2a4a59ef4ed762c62ad7a", "resources/theme/default/icons/flyaround.svg": "c8a2ba65a3a3ea28c710727327b062b6", "resources/theme/default/icons/folder.svg": "b7e11fde0a4f073c8255d911214aecd3", "resources/theme/default/icons/folder_yellow.svg": "9d3d6d38fa617dfeedec734a5c5c13e1", "resources/theme/default/icons/foundrecords.svg": "aeb3afe2862d00fdeaf810cc479a9704", "resources/theme/default/icons/general.svg": "8d0ffe48967c6985486949410f399c74", "resources/theme/default/icons/generalConfig.svg": "ce54c065114cc47016cd6a382457c1b8", "resources/theme/default/icons/GeneratingAdministrativeRegion.svg": "444cf5e4f7daa640706014ae3f55e307", "resources/theme/default/icons/geodbms.ico": "fef8bfe0713f757762dd9ce837b48c1c", "resources/theme/default/icons/geomap.ico": "dd4b17c0ec69f51b039c51b6e0887c31", "resources/theme/default/icons/gotoview.svg": "da5e78b70c58d112189832fd5cdad9d9", "resources/theme/default/icons/help.svg": "6c9e88b86a30ea8df99ecb75891990d2", "resources/theme/default/icons/help_doc.svg": "1491066f6ba737fb319d4b3aeec96402", "resources/theme/default/icons/histogram.png": "334c464f233edaf5d54c0e1a78289559", "resources/theme/default/icons/home_site.svg": "a9fdb97167551132fe16dd05e7668643", "resources/theme/default/icons/html.ico": "ef2d86df09c9fc6d671e12b5deaf49e6", "resources/theme/default/icons/html.svg": "8158b710d8854547cfe6e2ece1ab3e22", "resources/theme/default/icons/import.svg": "e38ca75a6ffcf334ea461b245f523444", "resources/theme/default/icons/importConfig.svg": "f60db217ccfce27088257eeb9b39d236", "resources/theme/default/icons/import_database.svg": "42ae4560410eb3b900a99360d0019fba", "resources/theme/default/icons/indent_left.svg": "13d4c1ee641fc364bf20be31e9c277a7", "resources/theme/default/icons/indent_right.svg": "a9bc26d41494a2760b186614cc5a177d", "resources/theme/default/icons/index.svg": "63797de724460b5527354bcc9df5d79d", "resources/theme/default/icons/info.svg": "59366b0c10bbce5c3dd9dfec1860d32c", "resources/theme/default/icons/install.svg": "699200cfd59967ff740f1e3076795f0f", "resources/theme/default/icons/invisibleMap.svg": "f5e5e045de80b10006eca992d6f156c1", "resources/theme/default/icons/javascript.ico": "237b59ab21d39cbf9d56481abd6ea724", "resources/theme/default/icons/jiashe.svg": "6195487f581d0b17bf8bd5e440ac3152", "resources/theme/default/icons/join.png": "ae8569cf1fc1762af272861ffbf1a16f", "resources/theme/default/icons/JoinMapTable.svg": "c7277790649b9dafcba2531c8ec43630", "resources/theme/default/icons/jump_line.svg": "36d10e5f905da4134c668d1baa7b0eff", "resources/theme/default/icons/jupyter.ico": "fcd12a895e826c9bf68ec69a3801a6b5", "resources/theme/default/icons/Jupyter.svg": "5e31f82bc08dff94a0f7a19492ae3e57", "resources/theme/default/icons/lab.svg": "bb81cefd8b4592063bf604536517bbe4", "resources/theme/default/icons/labelingMultiple.svg": "60b47ac95c42db86f0a1996619aa5710", "resources/theme/default/icons/labelingNone.svg": "aec873e7c3a156d25d90ba14332250fe", "resources/theme/default/icons/labelingSingle.svg": "4eb6031628115e94af14c75ed7743277", "resources/theme/default/icons/labels.svg": "2f07179dee5125cdc7720364cc83fa4d", "resources/theme/default/icons/LandSurveyAutoNumber.svg": "d4fa015fe319301146a20d569319d197", "resources/theme/default/icons/layerBrush.svg": "30f0e853f0588bb65f58b6e407f26e73", "resources/theme/default/icons/layerConfig.svg": "ca61ff1339a5aab82167c3b3834f6fc8", "resources/theme/default/icons/legend.svg": "d34ddf6094becbbd0c65321a1f154bfd", "resources/theme/default/icons/lockorthoview.svg": "39417a4ce7986b55c908a36268185ca3", "resources/theme/default/icons/lockview.svg": "89f5b906db5c12867af42e06ccb1d18e", "resources/theme/default/icons/lost.png": "e5f28a07326ba62314e4964833d853c8", "resources/theme/default/icons/mActionAbout.png": "1b50df16c376e6e78454236403627aeb", "resources/theme/default/icons/mActionAbout.svg": "1e1360e32f95eee26b8f41e69339cab8", "resources/theme/default/icons/mActionActiveStyle.svg": "302386637bb5cd7bf856ad1ce6ea42fe", "resources/theme/default/icons/mActionAdd.svg": "340f3bb6a7682527aae76150aabff11b", "resources/theme/default/icons/mActionAddArrow.png": "95e75cb331f8ff2ae412b474db6f55bb", "resources/theme/default/icons/mActionAddArrow.svg": "06246d25e27308ad26aac55af7eb9713", "resources/theme/default/icons/mActionAddBasicCircle.svg": "f8a5e280035bbfaa025028e4eed1c703", "resources/theme/default/icons/mActionAddBasicRectangle.svg": "85605dbd86923fbed31379f828d995bc", "resources/theme/default/icons/mActionAddClassification.svg": "5d91e7c199fdfc94b71882b743e084f8", "resources/theme/default/icons/mActionAddClassificationCode.svg": "71811be70f15711a0890b9f6a407dab5", "resources/theme/default/icons/mActionAddCustom.svg": "cc118673a1e3b2e74fc57da54a9aa35e", "resources/theme/default/icons/mActionAddDataSet.svg": "e15df2fe98dfcddd91f6edc44b17f719", "resources/theme/default/icons/mActionAddDataTable.svg": "3944027676b922267a24159091390090", "resources/theme/default/icons/mActionAddDicItem.svg": "d71bb80327c14ba5e06e965b15864b48", "resources/theme/default/icons/mActionAddDirectory.svg": "f4a64c10d63eb102b6088281748dedf5", "resources/theme/default/icons/mActionAddEnumRange.svg": "9969caf289186d9cd546400aa5f16079", "resources/theme/default/icons/mActionAddGroup.svg": "f308932c912ab0483324f89d5ecce6c0", "resources/theme/default/icons/mActionAddImage.png": "94e43a1d6b956c2b35625a5ea760261e", "resources/theme/default/icons/mActionAddImage.svg": "28bb04fd672efe9f1a52f2901f54de6f", "resources/theme/default/icons/mActionAddLayer.svg": "840395598b646deb2c747f78d305e324", "resources/theme/default/icons/mActionAddLegend.png": "8349d32174a82160f1c812641855fbb9", "resources/theme/default/icons/mActionAddLegend.svg": "d756c3c84d9a1e613341676f8c3e8965", "resources/theme/default/icons/mActionAddMultiPoint.svg": "f9ade46e1458d5942ae557420592f836", "resources/theme/default/icons/mactionaddordergroup.svg": "a7e40299ca8607fd8ec9573f66cb95a5", "resources/theme/default/icons/mActionAddPoint.svg": "c85722428ece40150082f3d81bf170f3", "resources/theme/default/icons/mActionAddPolygon.svg": "83662dc01e024450dce5ecfaf1514edc", "resources/theme/default/icons/mActionAddPolyline.svg": "5d61a265d4c1e899cd171721d3b006ce", "resources/theme/default/icons/mActionAddRangeRange.svg": "99b93618e2906303244bc6a2ed20d3e0", "resources/theme/default/icons/mActionAddResourceWizard.svg": "9318a164ee340e04da837175aeea8820", "resources/theme/default/icons/mActionAddScaleBar.svg": "43afed23afb8200c15a543df1a450f3c", "resources/theme/default/icons/mActionAddSchemeData.svg": "c86e2f3e2356fd1ad82cdda941a9ad7b", "resources/theme/default/icons/mActionAddStyle.svg": "c60df25cbed4067a5ac0bc320463b816", "resources/theme/default/icons/mActionAddText.svg": "b6e185e764c5da36528cd7a83654d17d", "resources/theme/default/icons/mActionAddToCanvas.svg": "4f222a6648efa565f051aa2617caca5e", "resources/theme/default/icons/mActionAddVertexTool.svg": "73d0e0aa645810d8737db7604fb48d98", "resources/theme/default/icons/mActionAdjustLayers.svg": "42d197117a2af9818fcbefc935e03fa2", "resources/theme/default/icons/mActionAggregateNode.svg": "0e8e850ce17baa5e7c7aa3b238279790", "resources/theme/default/icons/mActionAligningToLine.svg": "6844c8fc2e7d023ebd31bfb23c907a9e", "resources/theme/default/icons/mActionAllEdits.svg": "1a13a6fe0c38adcdbbc315b963805233", "resources/theme/default/icons/mActionAnnotationImport.svg": "ed08c23f1bb2ea1dc03aee1496693ec6", "resources/theme/default/icons/mActionAnyDLAnalyze.svg": "cbcf45db82108f1e0ec97691d2b021ed", "resources/theme/default/icons/mActionAttributeBatchTool.svg": "f8853792345634f2ccbf3d5b3cc2ae9f", "resources/theme/default/icons/mActionAttributeBrush.svg": "bc8e8e7de8a8b5c4d75891072f58a9c9", "resources/theme/default/icons/mActionAttributeIndexManager.svg": "de8c1f6a81ef7a0dc047131f2b3bccca", "resources/theme/default/icons/mActionAttributeSelect.svg": "0a0e325e465cfcd8eb9a502e4fc9aac2", "resources/theme/default/icons/mActionAutoChange.svg": "2add0a98ec45eb1f992348a61b77107c", "resources/theme/default/icons/mActionAutoCutPolygon.svg": "5142adcd7b3d1702cc05eb4732bda7a5", "resources/theme/default/icons/mActionAutomaticClosure.svg": "100464d989b5520597726da001d2e6b7", "resources/theme/default/icons/mActionAutoParallelPolygon.svg": "d301512aec2983ee3fa88426f2c0583d", "resources/theme/default/icons/mActionAutoParallelPolyline.svg": "419b2e6153752735a075f87b2c6976af", "resources/theme/default/icons/mActionAutoProjection.svg": "1cfe66813280c607e1afc8715fa98983", "resources/theme/default/icons/mActionBackLastLevel.png": "0e06243d91122f7a759af354689e786c", "resources/theme/default/icons/mActionBackupDatabase.svg": "ab331f009a206badb5b6eb214ad0e555", "resources/theme/default/icons/mActionbatcgSetUniqueCode.svg": "3d5f12cd66429d20dc6b16d2e4af6a27", "resources/theme/default/icons/mActionBorderPolygon.svg": "70dd6b1cafe2eb371c897c2509ec0406", "resources/theme/default/icons/mActionBreakBySinglePoint.svg": "a4f86b74ab5d94b4bf90c8678155c8de", "resources/theme/default/icons/mActionBreakByTwoPoints.svg": "9faa1aeaf46c1a8a5f1a39a8f077293d", "resources/theme/default/icons/mActionBreakIntersectantPolyline.svg": "5891ffbba64c08cf4db8760d782465b1", "resources/theme/default/icons/mActionBreakWeld.svg": "f7f43dad61d9c4e3322eca488da3ab92", "resources/theme/default/icons/mActionBrush.svg": "e66b98adb06f1d8d702edb7f9ec5546f", "resources/theme/default/icons/mActionBufferAnalysis.svg": "d80ab987bd4a1fc371e2776e66425406", "resources/theme/default/icons/mActionCalculateField.svg": "f32837750c5840f154a2a749c8aade44", "resources/theme/default/icons/mActionCatalogManager.svg": "99e161a7b7367a9fa2929009134a653a", "resources/theme/default/icons/mActionChangePolylineByExitline.svg": "e08d8787b31f2c90f7378b382311f23a", "resources/theme/default/icons/mActionCheckAll.svg": "438f359d854c7ebedf6be6b88f7d0f6c", "resources/theme/default/icons/mActionCheckAndMaintain.svg": "a7e9601b46669c45f9096f011ab41bd1", "resources/theme/default/icons/mActionCheckNode.svg": "b14495714a6c980374bb8482d3211444", "resources/theme/default/icons/mActionCheckResult.svg": "2cf1b01c206622535c1e1825eb2b69cf", "resources/theme/default/icons/mActionCircularStringCurvePoint.svg": "310cea9398a663a4d4b13e528fa7ce5d", "resources/theme/default/icons/mActionClassification.svg": "995a538a5a6002821d6c50dc9a81fe63", "resources/theme/default/icons/mActionClearEdit.svg": "1c5a1c68aac83d68129868577ea30f7e", "resources/theme/default/icons/mActionClearLayer.svg": "32eba1e6735860eb142fff43a48eed54", "resources/theme/default/icons/mActionClearSelect.svg": "acc58e9be78e0153b7d7d1ed921b6230", "resources/theme/default/icons/mActionClose.svg": "e85dae4f037b08290dd34d668bcf06b3", "resources/theme/default/icons/mActionCollapse.svg": "3d2eba0c9ca35b25ec706a3e970a8b44", "resources/theme/default/icons/mActionCollapseTree.svg": "b39d593ea4774c1238ed6cd69f12b11f", "resources/theme/default/icons/mActionCommit.svg": "f354d7a233e4a5923580acbe25264d1f", "resources/theme/default/icons/mActionCommonNode.svg": "f2ab046d5257ee17f76363de01472e36", "resources/theme/default/icons/mActionComposeExport.svg": "53d0f2eaa80a97421ea812d32f5d9670", "resources/theme/default/icons/mActionConfigProperties.svg": "aa6aa2c381d8636a19e815a347831ed2", "resources/theme/default/icons/mActionConnectToFolder.png": "84a044edac968fdf06ecc30455f9b57d", "resources/theme/default/icons/mActionCopyMapImage.svg": "18260fca2fda975633899e07772ec225", "resources/theme/default/icons/mActionCreateDbConnection.png": "1194f60c3604a75a234b7c5829a9f623", "resources/theme/default/icons/mActionCreateInterNode.svg": "7d8cbee95202587a4593044f752438d2", "resources/theme/default/icons/mActionCreatePolygonBySnap.svg": "afd2ee4841eb4162f6d40825768359ee", "resources/theme/default/icons/mActionCreatePolylineBySnap.svg": "e80bb5083740e9bbf248b9ba3b28c988", "resources/theme/default/icons/mActionCreateProject.svg": "0d1f6ed64f39f7f3e3cacaeb376ac952", "resources/theme/default/icons/mActionCreateSpatialIndex.svg": "19063ef92e585e6b89139b95d8bc4ebc", "resources/theme/default/icons/mActionCurrentTask.svg": "37591573decfe551c7cb7418e2e8acad", "resources/theme/default/icons/mActionCustom.svg": "4f20d0450747420cbd2e9c9269193bee", "resources/theme/default/icons/mActionDatabase.svg": "5356e364576af2c38e4216283342db4f", "resources/theme/default/icons/mActionDataComparisons.svg": "05fd271af6c134f6872c80c489064d60", "resources/theme/default/icons/mActionDataExport.svg": "a4adf859430ab231122e24d6d6140459", "resources/theme/default/icons/mActionDataset.svg": "a06eea07e31055fe638120092fd03fed", "resources/theme/default/icons/mActionDataSource.svg": "899c06c28703ea8b15798c799a97cb02", "resources/theme/default/icons/mActionDataSourceManager.svg": "e265e51dc79a614afbba2d9a03eca71c", "resources/theme/default/icons/mActionDeleteAttribute.svg": "f487f09dcfad1b19da3cd46ff020c8aa", "resources/theme/default/icons/mActionDeleteBookmark.svg": "63a5159656718a85300368e95a87c965", "resources/theme/default/icons/mActionDeleteClassification.svg": "328e502956af43b1506928b8e03fc496", "resources/theme/default/icons/mActionDeleteClassificationCode.svg": "7cb7a62ac5e8be4028316c1c3e8836bc", "resources/theme/default/icons/mActionDeleteCustom.svg": "2c3e544e2be400c9f1fc224eb19baa6c", "resources/theme/default/icons/mActionDeleteDataSet.svg": "cf05da90c76989fe5796f0bfa9c69fd6", "resources/theme/default/icons/mActionDeleteDataSpecification.svg": "f4e03936c7564d14d752c7b9570726df", "resources/theme/default/icons/mActionDeleteDataTable.svg": "79ff705674f36ee519327ae6c51ae3d8", "resources/theme/default/icons/mActionDeleteDicItem.svg": "40f4b24ebc5ee91d2a05b715dc5ef94e", "resources/theme/default/icons/mActionDeleteLayer.svg": "10c565c23727bc79f0a3b3653c539e27", "resources/theme/default/icons/mActionDeleteLink.svg": "2d21c91ca791aed38b8135cf405fada5", "resources/theme/default/icons/mActionDeleteRange.svg": "f26af8d0a9917bb3d33bdbdd7665f2b9", "resources/theme/default/icons/mActionDeleteRevision.svg": "7f32ea7fb09ffa5851f57a64b548cf76", "resources/theme/default/icons/mActionDeleteSelected.svg": "27cc93f001805b310dd17a6cd761417f", "resources/theme/default/icons/mActionDeleteStyle.svg": "e8529586cd6c6c35725ae9ddf42678f8", "resources/theme/default/icons/mActionDeselectAll.svg": "acc58e9be78e0153b7d7d1ed921b6230", "resources/theme/default/icons/mActionDiagramStatistic.svg": "ba795b1a3c88b9ecc48bf3533793084b", "resources/theme/default/icons/mActionDicManage.svg": "5711827d34bf8c7f45bb9473339c9d5d", "resources/theme/default/icons/mActionDictionary.svg": "9f3227fd9fd4856b21ed0203f57d462e", "resources/theme/default/icons/mActionDictionaryManager.svg": "31af9da87c0ef66edf88279dc0979691", "resources/theme/default/icons/mActionDirectImport.svg": "2705f7d2b595f44bf7d41ba5469f8ecf", "resources/theme/default/icons/mActionDirectory.svg": "543010d3f4891a87337ea4a0553b6cc4", "resources/theme/default/icons/mActionDisperseLegends.svg": "44e0028546a1d892193bf85c1fc9ee68", "resources/theme/default/icons/mActionDownloadData.svg": "73cf487f43c6c67708755c77d1031b16", "resources/theme/default/icons/mActionDraw.svg": "79d6fde375c1d3a7c8be1e8ec5fc02d2", "resources/theme/default/icons/mActionDrawAnnotation.svg": "1ead0a1082e9fbae833bcfdd520f1f6f", "resources/theme/default/icons/mActionDropSpatialIndex.svg": "b22f1baf81a17fdc104b1bf05fd5c5ca", "resources/theme/default/icons/mActionEdgeTool.svg": "e51484e30111c77e3f34a0e367340041", "resources/theme/default/icons/mActionEditConnection.svg": "b0f644dd694a0c6554d1e1dcac139845", "resources/theme/default/icons/mActionEditCopy.svg": "83c8c2506e3d53b1b0b7865d1873a633", "resources/theme/default/icons/mActionEditCut.svg": "23ce1b2d297515aefe2dea9533184fab", "resources/theme/default/icons/mActionEditPaste.svg": "e59391b2630274e267ad10bb0a40a30d", "resources/theme/default/icons/mActionEditPolyline.svg": "4a3413a2c400b402733577b00c4e4a57", "resources/theme/default/icons/mActionEditSelect.svg": "20ed9f0380e99e271ccc04bf8590d084", "resources/theme/default/icons/mActionElementAlignment.svg": "da6e0b52d636403003a8bf06d81426bd", "resources/theme/default/icons/mActionElementOrder.svg": "9a4846b8d8c64c5a6b839fb5f5f2acab", "resources/theme/default/icons/mActionEmpty.svg": "7d03c7a62ba3b69a498063a52e7a0480", "resources/theme/default/icons/mActionExpandAll.svg": "5ce3b9872728fe1ab2db08881b6696e0", "resources/theme/default/icons/mActionExpandTree.svg": "8df56726928510b542d479f9d65bf2a4", "resources/theme/default/icons/mActionExport.svg": "9262fbccd6dce910b05542130d5b5d3d", "resources/theme/default/icons/mActionExportFont.svg": "fc19d534b16e7e87d74304dc9206913d", "resources/theme/default/icons/mActionExportGeometry.svg": "490f60da490788568dfcc1fb3ab8d57a", "resources/theme/default/icons/mActionExportPDF.svg": "7079bf9f8c4d4ef7ebf3fc26895c651a", "resources/theme/default/icons/mActionExportStyle.svg": "c3ebc4b4d9eef274c460e40db01734e1", "resources/theme/default/icons/mActionExtensionIntersect.svg": "b2b45155b3775a6082f0432db8667476", "resources/theme/default/icons/mActionExtensionPolyline.svg": "e5fdd4473d3a496bd3a0e67dfafc9902", "resources/theme/default/icons/mActionExtractFeatures.svg": "d756e45f408817a284947e1dc2015564", "resources/theme/default/icons/mActionFastScan.svg": "4a055d8089b712ba73b61939c3248f14", "resources/theme/default/icons/mActionFeatureClass.svg": "12960e7e5a7abafae89f6c75fe250172", "resources/theme/default/icons/mActionFeatureImport.svg": "bc1bf048cb86d53ee263523e8d49a33e", "resources/theme/default/icons/mActionFieldAssignment.svg": "55face7af26423b494df7490d9c9a1ef", "resources/theme/default/icons/mActionFileExit.svg": "014da3686c1d21b0df59f2b6d70e5a69", "resources/theme/default/icons/mActionFileNew.svg": "359e36e8c6e7793d550a4050765a169d", "resources/theme/default/icons/mActionFileOpen.svg": "d80181aaa8aa890cb0b7e48319a8d085", "resources/theme/default/icons/mActionFileOpen_small.svg": "e2471acb5d431a1203fe3c3956a4db79", "resources/theme/default/icons/mActionFileSave.svg": "68f08f30bdd326df72b092be223a0d70", "resources/theme/default/icons/mActionFileSaveAs.svg": "9836c3f4771b653b1ee967cae793b742", "resources/theme/default/icons/mActionFillHoll.svg": "7ef3bcc1919ef6f9f132ece12e007827", "resources/theme/default/icons/mActionFilter2.svg": "3ec913bd01c74a188cb4c055fbc03c14", "resources/theme/default/icons/mActionFlash.svg": "9bfe496e74b6e9a43be5908d499af2be", "resources/theme/default/icons/mActionFoldAll.svg": "740369ae0104d790e9d5fd18edd3f159", "resources/theme/default/icons/mActionFolder.svg": "1d4ea7410800af4f5b979135c4d14529", "resources/theme/default/icons/mActionFormView.svg": "f7e61b110fffd58a3803cba75c95aa40", "resources/theme/default/icons/mActionFull.svg": "de410eb887d59537eb5a97991fc1eebd", "resources/theme/default/icons/mActionGJB50000FFT.svg": "26fd67a57ea8dbbf034212047cd73c2e", "resources/theme/default/icons/mActionGoto.svg": "4cc2023f7b3f7813af02c1bcaf11ef9d", "resources/theme/default/icons/mActionGrid.svg": "305cb21216f9e8638e5521ba83f54ff2", "resources/theme/default/icons/mActionGridCheck.svg": "5cd471cd29ff479f87c6aac170c2c117", "resources/theme/default/icons/mActionGroup.svg": "30e60e1533289e2052cf4928583757c8", "resources/theme/default/icons/mActionGroupLayer.svg": "71a8905d793790d9303f2d32815c9079", "resources/theme/default/icons/mActionGroupLine.svg": "a3f83d7e3afba41c961550d99ef97136", "resources/theme/default/icons/mActionHelpContents.svg": "dfcc6f3e7a95c9fa377a24306877dda6", "resources/theme/default/icons/mActionHideAllLayers.svg": "16f373cad1b7b644477951a7ed66351b", "resources/theme/default/icons/mActionHidenFromBrowser.svg": "d38d6063e070d2d61dd6f55713896ab9", "resources/theme/default/icons/mActionHideResults.svg": "3eaa5c01dc7b1bacd0a6e5db58d1fdeb", "resources/theme/default/icons/mActionHideSelectedLayers.svg": "9d5f022d1375227b18a4fe01c6bcdb30", "resources/theme/default/icons/mActionIdentify.svg": "752e8589c7c43e261247a04eebfd130d", "resources/theme/default/icons/mActionImport.svg": "eccb61c61f90c7dd5be6f82059c499c1", "resources/theme/default/icons/mActionImportGeometry.svg": "18642deca79e43f652442d195b59fca3", "resources/theme/default/icons/mActionInspect.svg": "4f20d0450747420cbd2e9c9269193bee", "resources/theme/default/icons/mActionInverseCheck.svg": "9115eb0e5c06d728cf83af898f4a3f79", "resources/theme/default/icons/mActionInvertSelect.svg": "8f2be589133713a5d3ff36e50c1f01c0", "resources/theme/default/icons/mActionInvertSelectedLayers.svg": "9752a3091fe12e8fa6c6c07a53eb96b4", "resources/theme/default/icons/mActionInvertSelection.svg": "6149896f7ea1dbdade1677b31fcf5016", "resources/theme/default/icons/mActionLabelManager.svg": "d5d5d38222a6f64eca412317a25f962f", "resources/theme/default/icons/mActionLayer.svg": "f156bfe69e1e2508e5f0bf15db9ba44e", "resources/theme/default/icons/mActionLayerClassification.svg": "6aec85cd21332ccce4de83dcbc78a0c0", "resources/theme/default/icons/mActionLayerManager.svg": "add1fed077998d1e15ea21b0476024a9", "resources/theme/default/icons/mActionLayerSaveAs.svg": "baf726688146979e6d52548de7214a3d", "resources/theme/default/icons/mActionLayerSaveAsFile.svg": "b17ac7d94a0994f542a783cf8fb0d33b", "resources/theme/default/icons/mActionLayersOverview.svg": "4813c1d18f037f63dae432d4ef253cfe", "resources/theme/default/icons/mActionLayerTreeView.svg": "be643367e7ffd5de10d0dcb108e4c3a1", "resources/theme/default/icons/mActionLayout.svg": "28f9190ac68a00b0d7f6e04170d31cee", "resources/theme/default/icons/mActionLayoutManager.svg": "31be4d584dfc1ccafd8d01cdcd164fc8", "resources/theme/default/icons/mActionlinkage.svg": "b3ce4171038f9d82c8d04ea9cb3ad2d0", "resources/theme/default/icons/mActionLoadData.svg": "684e514f1cff1d2c9e95dd55a858df9f", "resources/theme/default/icons/mActionLoadLayerFile.svg": "f305a0ff3392689c805ce7984044289c", "resources/theme/default/icons/mActionLoadProjects.svg": "65d677b31784876d2af6e7c1fbf57b8a", "resources/theme/default/icons/mActionLoadRevision.svg": "874fed75579a074e530d87b91ad2ff07", "resources/theme/default/icons/mActionLocate.svg": "52f9968f5e0a6392c5f0a58db02b0825", "resources/theme/default/icons/mActionLock.svg": "26131931765f2aec7cc4bd0443f8f2ac", "resources/theme/default/icons/mActionLog.svg": "155acdfdf0f50cc1488483bb2eb844c1", "resources/theme/default/icons/mActionMaintain.svg": "ba47b24e4af73b927909cc5348f7bec8", "resources/theme/default/icons/mActionMaintainBSM.svg": "7acf0cf2e793fb29050771698c22b2e3", "resources/theme/default/icons/mActionMapsheetManage.svg": "1fd72e8c7b4d1b68cdfc45b6a1587ffc", "resources/theme/default/icons/mActionMapsheetNode.svg": "45219d3849e361f574ca86fcda80b3a1", "resources/theme/default/icons/mActionMapStyleManage.svg": "cf9354021a4a5b26ad660525ece1edff", "resources/theme/default/icons/mActionMeasure.svg": "a62f37b1ec481f1c2bab829f83849396", "resources/theme/default/icons/mActionMeasureAngle.svg": "5edcf784a0e8807d14944cce68a1a014", "resources/theme/default/icons/mActionMeasureArea.svg": "3ccde2a2802aac9ed7677d5c92bb3a0c", "resources/theme/default/icons/mActionMergeFeatures.svg": "58fca120fbe1d8ed6fd3a2dee1f90422", "resources/theme/default/icons/mActionMiddleLine.svg": "30f0034bc7c043e397e3f2ddc0ffc345", "resources/theme/default/icons/mActionMirrorTool.svg": "786dda30a600b3326b3ae42402dc443e", "resources/theme/default/icons/mActionModifyElements.svg": "59d8bbab970228ddbf2537c23da41ed3", "resources/theme/default/icons/mActionMosaic.svg": "34c034a1e13abe0d007225fbded76d7a", "resources/theme/default/icons/mActionMoveDown.svg": "e69d25c8b849110e43023f18f68c0bcd", "resources/theme/default/icons/mActionMoveElementBottom.svg": "5c963ec211036b7012aaab490bcb3741", "resources/theme/default/icons/mActionMoveElementDown.svg": "ed84988b86b920d732c1cc2c922e52a8", "resources/theme/default/icons/mActionMoveElementTop.svg": "8d5251c95c7b8b51c06719aed5991511", "resources/theme/default/icons/mActionMoveElementUp.svg": "0f2bae29c5c6a245ef7a1ef79d01d970", "resources/theme/default/icons/mActionMoveFeature.svg": "46a3b71b7e3282a07bcc8fe11a20916f", "resources/theme/default/icons/mActionMoveUp.svg": "c09793cc8b982dfc7160ca61174aa3af", "resources/theme/default/icons/mActionMoveVertexTool.svg": "fd8cdb5ff4b54efded668628786520da", "resources/theme/default/icons/mActionMultiEdit.svg": "1b4e305d58dbf3793eab33d6b474c28a", "resources/theme/default/icons/mActionNetworkStorage.svg": "e62bba269bce3c8ea8c4cf96e11bdd7c", "resources/theme/default/icons/mActionNew.svg": "c04a77f3fadc8f682577a4a1ffa31ea6", "resources/theme/default/icons/mActionNewAttribute.svg": "286fff33a3eb371889d740ae643cf9c4", "resources/theme/default/icons/mActionNewBookmark.svg": "5b5885cbdcefd11ac0e9d54461cfd914", "resources/theme/default/icons/mActionNewConn.svg": "4113d50441e7461c420e93a0b59d9bbf", "resources/theme/default/icons/mActionNewDataSpecification.svg": "c9c120156d64453162f017b2a4abbee7", "resources/theme/default/icons/mActionNewFileGdb.svg": "f5721d9a6558d415f3a67c63b78a95cc", "resources/theme/default/icons/mActionNewFolder.svg": "d7afc17f864be5b81aae706f5bb9141e", "resources/theme/default/icons/mActionNewMapElement.svg": "6566f4e1671d310ab3ed30117c44e5ef", "resources/theme/default/icons/mActionNewPKG.svg": "4156b6fbf9e9a09e8889e1ae0b0330e4", "resources/theme/default/icons/mActionNewSchemeData.svg": "7807bb77c398afb16afd46463672f893", "resources/theme/default/icons/mActionNewTableRow.svg": "f2fd0ead19625b325f33359e6f12a55f", "resources/theme/default/icons/mActionNewTask.svg": "7618baf3704550ed1ae0505eb74d1037", "resources/theme/default/icons/mActionNewTileClass.svg": "0166b686d417d0a81b5ae5b1791b4169", "resources/theme/default/icons/mActionNodeDiluting.svg": "6a864c4a9ce1fdd07ba68f132c980643", "resources/theme/default/icons/mActionOpenData.svg": "8cdca77f195e267228b878d1d7d82fe4", "resources/theme/default/icons/mActionOpenDirectory.svg": "d37744c14f87326d779ce634086a4a9b", "resources/theme/default/icons/mActionOpenJS.svg": "de439993a9ab1770b8e2fb17f5a8d0e1", "resources/theme/default/icons/mActionOpenLayout.svg": "da607b272ab28493f7b354a684388bae", "resources/theme/default/icons/mActionOpenScheme.svg": "781accf4794f648dcf2f8c4097ff8fa7", "resources/theme/default/icons/mActionOpenTable.svg": "b1bdd4c59286ff406b8262f1b61d54e2", "resources/theme/default/icons/mActionOptions.svg": "50f9ee8b59e5e364ba52222d2c55a8fb", "resources/theme/default/icons/mActionOraganizationManager.svg": "d386d4dc75ac892a620c5f726295214e", "resources/theme/default/icons/mActionOverView.svg": "c8df9418bb2d3606aa53e30ab4daa93f", "resources/theme/default/icons/mActionPan.svg": "98a5dbf4184531ba2a2c68db92806456", "resources/theme/default/icons/mActionPanToSelected.svg": "974a9cf2f5750b418b474942b5dcb2a1", "resources/theme/default/icons/mActionParamSetting.svg": "10cb60a011e7788aac961c212e1c8608", "resources/theme/default/icons/mActionPolygonIncise.svg": "2d82c0b0f5739c6bf787c4eab8064a6a", "resources/theme/default/icons/mActionPolygonInterattraction.svg": "622f8a50bc5ceb068e484420b9241020", "resources/theme/default/icons/mActionPolygonOverlay.svg": "95411d192cad3e679a01556a44ba29d5", "resources/theme/default/icons/mActionPolygonToPolyline.svg": "22b2360fe102a0c1d93c7c387aa86026", "resources/theme/default/icons/mActionPolylineToPolygon.svg": "c08885aa366dc2ec78104616d564ec31", "resources/theme/default/icons/mActionPreprocessingScheme.svg": "2cce25bc39ad3c0e64e4ede8a7dbf790", "resources/theme/default/icons/mActionPreprovessingTB.svg": "f8c7613e852b0c9af5f8e3038fd4b73f", "resources/theme/default/icons/mActionPrint.svg": "31c995fa5d814d9746b94d0e3780260b", "resources/theme/default/icons/mActionPrivilegeManager.svg": "d406a3ea8e70ac6188f7ff6cda412fdf", "resources/theme/default/icons/mActionProperties.svg": "643c2dbf159641c13a90dd282c750b66", "resources/theme/default/icons/mActionPropertiesWidget.svg": "7b8bdc3ad81fe89c339754370467ef05", "resources/theme/default/icons/mActionProperty.svg": "0f5fd9de9f38273462de2ef945b9a3ca", "resources/theme/default/icons/mActionQgsAddView.svg": "77154a2bd7a278ec5417f54bea869039", "resources/theme/default/icons/mActionQueryByLine.svg": "100a77b190342c4f4d612d2f4db8964c", "resources/theme/default/icons/mActionQueryByPoint.svg": "15630a334591356d90a90216319a3d48", "resources/theme/default/icons/mActionQueryByPolygon.svg": "6a70cc390d0f99105123a68aac36ee17", "resources/theme/default/icons/mActionQueryRoot.svg": "f442d02fb5ef3741fdf1624a3f02f5d7", "resources/theme/default/icons/mActionRasterImport.svg": "2417938f794ce78543633dc544bca4d0", "resources/theme/default/icons/mActionRedo.svg": "8c028f9ef70e474d7387f9b460a65eb6", "resources/theme/default/icons/mActionRefresh.svg": "52fa4b4278264c367eda284c53d15f89", "resources/theme/default/icons/mActionRegionExport.svg": "845dd15fd40ad4f743623469b5b3fdb4", "resources/theme/default/icons/mActionRegionImport.svg": "8dbd184a3b428ce6e102f7056e116f8b", "resources/theme/default/icons/mActionReload.svg": "43784ed0de3112c14d5921b6303d63a3", "resources/theme/default/icons/mActionRemove.svg": "e6754b6e1d730a5c882c2db92eea2950", "resources/theme/default/icons/mActionRemoveAllLayer.svg": "a6da6d6063b7329140356336a91090cf", "resources/theme/default/icons/mActionRemoveLayer.svg": "1c49ecbc2147eba97ec8aad9633f7ccd", "resources/theme/default/icons/mActionRemoveRepeatData.svg": "95b636aa514362fb03154a017f8eadc9", "resources/theme/default/icons/mActionRemoveRepeatedPoints.svg": "f3559b1f0ead7a72c40d87131c92acd8", "resources/theme/default/icons/mActionRemoveSchemeData.svg": "9194bf7bea36f62dc7dc2f3b30b90cbc", "resources/theme/default/icons/mActionRemoveVertexTool.svg": "8ae82b51d34a411968de1a9d97307367", "resources/theme/default/icons/mActionReName.svg": "2f4f8cbcf71196f22f219881f3e971d4", "resources/theme/default/icons/mActionReset.svg": "741f7fb42d42849d612fc20b12b7cd35", "resources/theme/default/icons/mActionResetDirPath.svg": "c344596ea4ddfc767152bdeb7c02ed27", "resources/theme/default/icons/mActionResolveSharePointError.svg": "f59d218ed27b3d3e93b66853590a8e94", "resources/theme/default/icons/mActionResultExport.svg": "e05fe9e6f120fff6f9fe567427d73eae", "resources/theme/default/icons/mActionResultPreprocessing.svg": "d915ed03dcd61c0d516c76a4b87d0aa4", "resources/theme/default/icons/mActionReversePolyline.svg": "d55a0018bb397763cc96e462198fdbe2", "resources/theme/default/icons/mActionRevertToRevision.svg": "0392f2d180aee9d9365959f9245e265b", "resources/theme/default/icons/mActionRightAngle.svg": "4c55097541c57f3764ca125d0920ef85", "resources/theme/default/icons/mActionRotateFeature.svg": "3e22ce01e2c0c965d96fc17ccf57f686", "resources/theme/default/icons/mActionRuleManage.svg": "15482f473e3fe2874ab18f9f2e8fbadb", "resources/theme/default/icons/mActionSaveAllEdits.svg": "94a89bc9b11cb90a59fc8f044c0a5936", "resources/theme/default/icons/mActionSaveAsScheme.svg": "13d249919c23815a608a9ff5d28846d6", "resources/theme/default/icons/mActionSaveEdits.svg": "777486ea8c29a2a365dfe80977fa17c1", "resources/theme/default/icons/mActionSaveLayout.svg": "8b3789e6e0dd8223130b84000d3ed79f", "resources/theme/default/icons/mActionSaveScheme.svg": "4f281e045c96432fd1cd7a82ca6f606b", "resources/theme/default/icons/mActionScaleBar.svg": "537d6a364f6c093e6b585b7e049b29af", "resources/theme/default/icons/mActionScaleNode.svg": "50f99f8accdc8751b270032cb556b39f", "resources/theme/default/icons/mActionSchemeBatch.svg": "dc5b9b397f9281a476733882693b6c47", "resources/theme/default/icons/mActionSchemeFilter.svg": "717cb0048b15305a8cadd452718d340c", "resources/theme/default/icons/mActionSchemeFit.svg": "43ce16a7914f0ed136fb52182040b068", "resources/theme/default/icons/mActionSchemeManage.svg": "c3514670076c47f378bf24f59d007e43", "resources/theme/default/icons/mActionSchemeNoFit.svg": "ddb52d6845b46bb2da8f44d6515c48ad", "resources/theme/default/icons/mActionSchemeShow.svg": "bd93bfc5885d5307f38203892ee44ef2", "resources/theme/default/icons/mActionSchemeSourceManage.svg": "49f8d190098edf63f5afa2a4fcb1b343", "resources/theme/default/icons/mActionSchemeTargetRoot.svg": "4c51b15a288a6857cb595ca87badc50d", "resources/theme/default/icons/mActionSearch.svg": "c53fee0f34c42a7a9d8e898532a3b86d", "resources/theme/default/icons/mActionSelect.svg": "af097cfbf7068555e0316d56705f153a", "resources/theme/default/icons/mActionSelectAll.svg": "05fe2f51d3089764d072f9ace468d8b4", "resources/theme/default/icons/mActionSelectAllLayers.svg": "fc3274b291accf2f3c94e7b6d21b496d", "resources/theme/default/icons/mActionSelectPolygon.svg": "de8682bdb5e3b611224a6ee8b52515ab", "resources/theme/default/icons/mActionSelectRadius.svg": "06c743aeea2546796c169625cdbfeb0c", "resources/theme/default/icons/mActionSeparateFeatures.svg": "47a255fe5cc8c8cd23a512e458ccf01a", "resources/theme/default/icons/mActionSeparateLayer.svg": "dca40eff33ddc48a7c0a1221c0aae739", "resources/theme/default/icons/mActionServer.svg": "1ab2380a5b5e7915e80d6b7f232d3bd2", "resources/theme/default/icons/mActionSetBottom.svg": "efce405a42a008cf74a9663e46362ab0", "resources/theme/default/icons/mActionSetClipEnv.svg": "cfc446c1a8ce1801fb3682f4caf2185b", "resources/theme/default/icons/mActionSetClipPolygon.svg": "0fc055217ef4255c7e588f08e3edf780", "resources/theme/default/icons/mActionSetDataSource.svg": "92fea7f7b80c74bb4f22cbedbd160e81", "resources/theme/default/icons/mActionSetNoClip.svg": "729fd670d5e947741b64c6ed7ee385b7", "resources/theme/default/icons/mActionSetNull.svg": "33deea05fa20968c10a0c3123e47c0d6", "resources/theme/default/icons/mActionSetSpatialReference.svg": "64f9c175f0e21d1128c10aa08dbcad85", "resources/theme/default/icons/mActionSetting.svg": "2c6d37e1466939c8e16f1cd04ff48d24", "resources/theme/default/icons/mActionSettings.svg": "98160adbf1b7bc7dfa0064d5da680278", "resources/theme/default/icons/mActionSetTop.svg": "57517e5161ba671327848c4c2495ce56", "resources/theme/default/icons/mActionSharing.svg": "8f5e6dffd6231a6858fc5f56ce1a60b2", "resources/theme/default/icons/mActionSharingExport.svg": "10de78f4fe80a0cef1a3609dd40a67f0", "resources/theme/default/icons/mActionSharingImport.svg": "9bed0a42714abdd71b65742d1ca1b26b", "resources/theme/default/icons/mActionShowAllHide.svg": "f6dea326e1c06484a7dbaa3a1c2313fe", "resources/theme/default/icons/mActionShowAllLayers.svg": "1069904cfba0dbc27c02e6659bacbc49", "resources/theme/default/icons/mActionShowBookmarks.svg": "18aa642ffd432316af2e4410f4b29d7d", "resources/theme/default/icons/mActionShowFilter.svg": "ace4d7974edfb60aca730fd5095c3259", "resources/theme/default/icons/mActionShowGridTool.svg": "682e24e73864e87cfdb33e9bd3e9809f", "resources/theme/default/icons/mActionShowLayersSet.svg": "2ac82d593bce15962b546a4aebe8fe48", "resources/theme/default/icons/mActionShowPluginManager.svg": "99436035696bb2cb8f10f5c098c4b44f", "resources/theme/default/icons/mActionShowResults.svg": "f56c5cd78219b41cd930774bb121024b", "resources/theme/default/icons/mActionShowSelectedLayers.svg": "a838ae1987783d19767e54228de05aa1", "resources/theme/default/icons/mActionSimplify.svg": "9c03c4c49fcd354e04832dd253c880a1", "resources/theme/default/icons/mActionSmoothTool.svg": "707f96d7e602170da613f80b679c8905", "resources/theme/default/icons/mActionSpatial.svg": "bef0b6a230ff89396636be69e8b40ef7", "resources/theme/default/icons/mActionSpecialAttributeBrush.svg": "24fc0d1c64c25fe84b8b2cfe896141cd", "resources/theme/default/icons/mActionSplitByPolygon.svg": "538583d5099e9abc25d5b1a9268e10e7", "resources/theme/default/icons/mActionSplitByPolyLine.svg": "8701b4efde0bae3ed46376ef173e4787", "resources/theme/default/icons/mActionSplitBySelect.svg": "26580003f206a37877bd8d4fb7c7e83a", "resources/theme/default/icons/mActionSplitFeatures.svg": "58f0d4717c6590d5116d6c4e3cf6661a", "resources/theme/default/icons/mActionSql.svg": "19852025b86712876a6f8722151414af", "resources/theme/default/icons/mActionStartCheck.svg": "36f7176cf331fccd0b34d63d0ea1330a", "resources/theme/default/icons/mActionStartImport.svg": "c6016f45b0af8a4852c51b94390c8226", "resources/theme/default/icons/mActionStreamline.svg": "e5cbf8db4c102b2afb6c8231f59b5c17", "resources/theme/default/icons/mActionStyleView.svg": "730e0af4ddac5a0fb1f5f539fd30622b", "resources/theme/default/icons/mActionSum.svg": "d017046d48ce90ed5bceab7d3e6d6f1f", "resources/theme/default/icons/mActionSwipe.svg": "12847b35a09965af255f83f9b227e3f0", "resources/theme/default/icons/mActionSysSwitch.svg": "34367f856ddc6239e12d778c5a19b816", "resources/theme/default/icons/mActionTableImport.svg": "8deaa47f6625c021e0fe3236c1d7b94d", "resources/theme/default/icons/mActionTaskManage.svg": "970769a0f3cd8be7dd294a765ab2187e", "resources/theme/default/icons/mActionTeamConfig.svg": "e84b0043b2cb13f560f94a0d6721e07c", "resources/theme/default/icons/mActionTeamEdit.svg": "b0114a6fc46120440e19c53730a0581c", "resources/theme/default/icons/mActionTeamProjectInfoStatistic.svg": "3129a2940c9803c5ca6ba12bef78cb00", "resources/theme/default/icons/mActionTeamRevisionSlider.svg": "5f1ab9a8ba1f48f0fcb3cfd5984862cc", "resources/theme/default/icons/mActionTeamServer.svg": "fecca577325287d69541a40ded17fadb", "resources/theme/default/icons/mActionTeamTimingAcquireLog.svg": "48487ce93bfd8cd3d0aa77a2c26ce9cd", "resources/theme/default/icons/mActionTeamTool.svg": "fc55777995fd4de917463da7c9f5424b", "resources/theme/default/icons/mActionTemplate.svg": "01927217e00be004e12f16b651440359", "resources/theme/default/icons/mActionTemplateCompose.svg": "af1adc1a48861d24dc688b9778d3d80e", "resources/theme/default/icons/mActionTemporaryLayer.svg": "68e4b5c61088a15f89d939c81ff86b87", "resources/theme/default/icons/mActionThematicAttributes.svg": "6b6ee135eedc395c6eb8e04b92a5cab0", "resources/theme/default/icons/mActionTileImport.svg": "903e13e6c35e1ee083a61b23918688de", "resources/theme/default/icons/mActionTiling.svg": "c8e25a3eda0bc19b9778168ecf753375", "resources/theme/default/icons/mActionTimeSlider.svg": "30df8efe796c12114471323077bca30c", "resources/theme/default/icons/mActionTimingAcquire.svg": "489dd9a97dffb720b3162dc14bc86a9e", "resources/theme/default/icons/mActionTimingAcquireSetting.svg": "7ecabd8416d95df2f92da8ff60d44da9", "resources/theme/default/icons/mActionToggleEditing.svg": "29723b6d47441f7bb494714ea429edde", "resources/theme/default/icons/mActionToolBox.svg": "2c9169fc1c7e50f15b84f71bafd17a6d", "resources/theme/default/icons/mActionTrim.svg": "225c5b9cc91e4f5e8ca4aaf8787780c6", "resources/theme/default/icons/mActionUndo.svg": "ec0a88d3076c323ae59118eca56b8163", "resources/theme/default/icons/mActionUngroup.svg": "7bc078804d80699dc8cc91e2082f84d4", "resources/theme/default/icons/mActionUp.svg": "7999c9a02eda90ac2f42b6c3641e904b", "resources/theme/default/icons/mActionUpdate.svg": "40ba9725c8cdd5e1fe69108bb6f8525d", "resources/theme/default/icons/mActionUpdateRecords.svg": "5a46d098c69fbf39923ffe3178018278", "resources/theme/default/icons/mActionUpdateToRevision.svg": "80e6f808eeb64d71829e44a827b9b51f", "resources/theme/default/icons/mActionUploadData.svg": "4817a531daa8606bc9531d50957971c6", "resources/theme/default/icons/mActionUserRoleManager.svg": "e3e59465ff0ccfc907414df8628b5723", "resources/theme/default/icons/mActionVertexTool.svg": "daa8e981408b835ddbe36af3bed62e19", "resources/theme/default/icons/mActionVTSPreview.svg": "f9c9643fd1b174e56abae7e8a5ffe7ba", "resources/theme/default/icons/mActionWeldPolyline.svg": "35c012816b7f000837e465109dcb1f95", "resources/theme/default/icons/mActionYearChangeNavigation.svg": "943edf66d680b0ee7fc4a2d68504b6ab", "resources/theme/default/icons/mActionYearChangeRegression.svg": "b4f5be92104d693da3a88a817166c20e", "resources/theme/default/icons/mActionZoomFullExtent.svg": "6f21d610891d2924bcfe88c73fb764f5", "resources/theme/default/icons/mActionZoomIn.svg": "1042c451e38bbbdea2736329514618a0", "resources/theme/default/icons/mActionZoomInCenter.svg": "f02ed86aaccae6e9a97ecbb852a0b224", "resources/theme/default/icons/mActionZoomLast.svg": "5c42ac5098f8e0f648dbe3de9bb4bad8", "resources/theme/default/icons/mActionZoomNext.svg": "a9fa6a5c006dd0c0840aa4e1774de19d", "resources/theme/default/icons/mActionZoomOut.svg": "7a84e09a885a48b381d69d0b5d3ff69a", "resources/theme/default/icons/mActionZoomOutCenter.svg": "c84df5bb54c1fc4da3656025dd3bd6bd", "resources/theme/default/icons/mActionZoomToBookmark.svg": "9073facd9ee913217bed1c2093a4e098", "resources/theme/default/icons/mActionZoomToLayer.svg": "82c760fa362ccf923603a9ab657d737f", "resources/theme/default/icons/mActionZoomToSelected.svg": "e934636f2b504da8ab0e4e6d3e859bac", "resources/theme/default/icons/MaintainRegionDic.svg": "e220cc3e4c97e63296684f3d9e38d5f8", "resources/theme/default/icons/mapConfig.png": "f7b863779cc89c8be7605bc56a65703c", "resources/theme/default/icons/mapConfig.svg": "c7a0b74014cc0599c1e82c0c8b8be1f1", "resources/theme/default/icons/markdown.svg": "b1318f7383ab486afa82e4568aa58185", "resources/theme/default/icons/matlab.svg": "8d5f10b9fb25f9df14e71d6e4eda19a7", "resources/theme/default/icons/mAutoChangePolygon.svg": "4aed8b896926a1d832f64933d1257f52", "resources/theme/default/icons/mAutoCompletePolygon.svg": "3c11c43f10997872241c257e9987d46c", "resources/theme/default/icons/mComposeSchemeManage.svg": "d352afeceb179d2d645026aa873c5b92", "resources/theme/default/icons/mDataExportSchemeManage.svg": "a7e3c9f7ad828fb76c0cf4cfb13c097b", "resources/theme/default/icons/mDataImportSchemeManage.svg": "fc35fcdf359f9f81fa2ae510ab87c4c1", "resources/theme/default/icons/mDataTransSchemeManage.svg": "c9bf6fa291e4976bf0983bd5288934ab", "resources/theme/default/icons/measureConfig.svg": "903161e927f84e5613a6dd4c9922a1bd", "resources/theme/default/icons/merge_h.svg": "e18a2b6bbdb4a1e6d8a95644122e60d9", "resources/theme/default/icons/merge_v.svg": "a8527f6026fe7118c129f5cba6fb1016", "resources/theme/default/icons/metadata.svg": "b2e273799dbfa6dbc52e8228f5bdbdd9", "resources/theme/default/icons/mGeneratingDLJX.svg": "4c69197baf2338313faf3993d6b115e8", "resources/theme/default/icons/mGeoPackage.svg": "7c73ffb090a38af7feab29aa12152423", "resources/theme/default/icons/mIconAddDBServer.svg": "8c825e00c2816ab43183b541733d71f8", "resources/theme/default/icons/mIconAddServer.svg": "7112be64f8be6720026bc2a8bf9c625d", "resources/theme/default/icons/mIconAfs.svg": "26bc632ff2d7c289e202f6c8f61e1c03", "resources/theme/default/icons/mIconAms.svg": "630bac3c1a415087351fe6492e4bb83d", "resources/theme/default/icons/mIconAnalyseFlow.svg": "ea21512744b1a11c266e5b9d1520389a", "resources/theme/default/icons/mIconAnnotationLayer.svg": "fbe179641e24ec8c54a302265cca4f2f", "resources/theme/default/icons/mIconAnnotationMLayer.svg": "68d1aa7332c4c52ba3e969a14417ae19", "resources/theme/default/icons/mIconApplication.svg": "94bea3681edb4be10e23727c67923918", "resources/theme/default/icons/mIconApply.svg": "51876eb236913705ce2756c72b7fb49a", "resources/theme/default/icons/mIconAttirbuteAssign.svg": "b93e85f9184b920d402f862abf94357b", "resources/theme/default/icons/mIconAttributeTable.svg": "e7db893217b5b1baac3961b549108479", "resources/theme/default/icons/mIconAuxiliaryStorage.svg": "424505094deccde793bb07080494a9b1", "resources/theme/default/icons/mIconCad.svg": "fef13370469b1722e4dcc26d46a89f57", "resources/theme/default/icons/mIconCalEllipsoid.svg": "823474172c2ccec64f5adaee114fd82a", "resources/theme/default/icons/mIconCatalogResource.svg": "6c8e7c6dfd9c958328f27092fb00c3c3", "resources/theme/default/icons/mIconCatalogRoot.svg": "01afcfbe57ea1a4a90b6daf78af9a2a9", "resources/theme/default/icons/mIconChange.svg": "7cc1b16efb9fcf0c8144b9c1e86d258e", "resources/theme/default/icons/mIconCheckLayer.svg": "841eb956c21eb7f7557937b56648eea2", "resources/theme/default/icons/mIconClearText.svg": "f20b46fc4f835d7d636f97f1d7770c63", "resources/theme/default/icons/mIconClearTextHover.svg": "6bf93a9f31af24cc804503c71aadbfa7", "resources/theme/default/icons/mIconClose.svg": "7787829dfdddf0c0ff3306e96b5998fe", "resources/theme/default/icons/mIconCode.svg": "e6351f72e8d1f68207c574af6f6557ad", "resources/theme/default/icons/mIconCodeSpecifiation.svg": "e0a81b82fa77022b5850eb16a0382690", "resources/theme/default/icons/mIconCodingScheme.svg": "654f59de125796f54e270e6278e60d34", "resources/theme/default/icons/mIconCodingSchemeRoot.svg": "06c8ad7cf27e496674ed6bdc31db1ba7", "resources/theme/default/icons/mIconCompoundLayer.svg": "d1026c32abaa5a0591f7a5c7b693eac8", "resources/theme/default/icons/mIconConnect.png": "c4d29a2a304cc265c34def6e2a1cc7ed", "resources/theme/default/icons/mIconCritical.svg": "479fc5b611396c2c535a2bc18a808ef6", "resources/theme/default/icons/mIconDaMeng.svg": "74e85fd3c915ccc760b40a05f961bae5", "resources/theme/default/icons/mIconDataSet.svg": "cb718d909534dadd72d4b72dbddb1a4a", "resources/theme/default/icons/mIconDataStructure.svg": "fd89f1f6fae2b928a841aea919995f34", "resources/theme/default/icons/mIconDbSchema.png": "1b79c7357dd1f0e5eb1f4d47f759b4f6", "resources/theme/default/icons/mIconDelete.svg": "b7645486da851a6b3272d304f2a6dd86", "resources/theme/default/icons/mIconDeselected.svg": "75733116db9e219b0f4382385342b511", "resources/theme/default/icons/mIconDicItem.svg": "68e57fc565b36ae2e1d060ce6dc8c964", "resources/theme/default/icons/mIconEditableEdits.svg": "455990cd70b279a43e6fe1483ef47b3b", "resources/theme/default/icons/mIconError.svg": "affb8053194df39dda4f105433c209d7", "resources/theme/default/icons/mIconExportCatalogDataNode.svg": "66c846fd3b5f7a771e834b12555d546e", "resources/theme/default/icons/mIconExportCatalogFileNode.svg": "719a5a83513ddb084966a21c3909092a", "resources/theme/default/icons/mIconExportCatalogRootNode.svg": "51d5c34391a171eed24ebfc860fc710b", "resources/theme/default/icons/mIconExportSchemeNode.svg": "810c27933bac0c415bba59ad0e28619a", "resources/theme/default/icons/mIconExportSchemeRootNode.svg": "cd1a0f9d1adc73d30ad78f03e26e3125", "resources/theme/default/icons/mIconExpression.svg": "4a7c9010d4faef5cb7dd50d4b063bf1d", "resources/theme/default/icons/mIconExpressionSelect.svg": "d5a11b917f78b8963933e25463ed3f13", "resources/theme/default/icons/mIconExternApplication.svg": "76860ff954accd3d41779f1b13614a03", "resources/theme/default/icons/mIconFcs.svg": "842114c237df2e6488115f32bf6179a0", "resources/theme/default/icons/mIconFifthLevel.svg": "64fd05b7bc8fcc3d5613bff14477230b", "resources/theme/default/icons/mIconFile.svg": "3047ab35641e5516a3eb281bada2613a", "resources/theme/default/icons/mIconFirstLevel.svg": "411ddf0a99c68e8adf1c08389bd2ea10", "resources/theme/default/icons/mIconFolder.svg": "cf1ca6b8396b31dcca5b8f33eb43ceb4", "resources/theme/default/icons/mIconFolderCatalog.svg": "4eb1ba9a379ada6a5d6bdb205259bb04", "resources/theme/default/icons/mIconFourthLevel.svg": "638de27d6466f21ec317cb203840ae5d", "resources/theme/default/icons/mIconFtp.svg": "a199167e87d48e535a28a0f1bba7b62b", "resources/theme/default/icons/mIconFtpConnection.svg": "8a392e40f69a0f418fdbdd881165da08", "resources/theme/default/icons/mIconFtpFile.svg": "dd9f4404c69b29266260a9a9d8df269b", "resources/theme/default/icons/mIconGBase.svg": "fb1586a853c2904b60aaae867f76c85a", "resources/theme/default/icons/mIconGdb.svg": "faf3ba5fe031bfdce3aed9a3f46f078f", "resources/theme/default/icons/mIconGeoMap.svg": "5fddaa3bf5d340522608d62df060290f", "resources/theme/default/icons/mIconGeoModel.svg": "1062170310062340d8e756bf956bc804", "resources/theme/default/icons/mIconImage.svg": "d7d21b7fb0e283fcf8411c03f3e31845", "resources/theme/default/icons/mIconInfo.svg": "3c0cf72d3f29ee6108e7d408a9103694", "resources/theme/default/icons/mIconInnerLayer.svg": "8191e0d1b9834eec58a8ee696da1ceeb", "resources/theme/default/icons/mIconKingBase.svg": "8ad55c2113ceee058166bdd7da6fd468", "resources/theme/default/icons/mIconLayer.png": "21cf151b551b35eed6e034ed7112dbc0", "resources/theme/default/icons/mIconLayer.svg": "9540c68b59d83e5f407a81cb364fe39e", "resources/theme/default/icons/mIconLayoutTemplate.svg": "215df0affb2b3b0d8895161fcc9bdafa", "resources/theme/default/icons/mIconLayoutTemplateRoot.svg": "99d5dce6929dd587527835636b774346", "resources/theme/default/icons/mIconLineLayer.svg": "4c69197baf2338313faf3993d6b115e8", "resources/theme/default/icons/mIconLineMLayer.svg": "fe6b4178b48f8999d83c10155c1a0b0e", "resources/theme/default/icons/mIconLoading.gif": "8fa9058348a86d759eb315dd66de2714", "resources/theme/default/icons/mIconLocalServer.svg": "f890500950ee4e3e5468082e57eabcf9", "resources/theme/default/icons/mIconMapFile.svg": "627ca8d2c2c1796f646e9216d9349bea", "resources/theme/default/icons/mIconMapStyle.svg": "b6356008ed553c02b7a31e7be2b3289f", "resources/theme/default/icons/mIconMixCatalog.svg": "4eb1ba9a379ada6a5d6bdb205259bb04", "resources/theme/default/icons/mIconModelLayer.svg": "72f4b78bf3b06435aef0e06e5ca151e2", "resources/theme/default/icons/mIconModifyServer.svg": "c7d9ee62d4aa9720f2f15a3f22e86b3e", "resources/theme/default/icons/mIconMySQL.svg": "a99effe63b8a0afe08ca87c291451c6e", "resources/theme/default/icons/mIconNewGroup.svg": "e27402c3f3b6866ea996eff280c1329d", "resources/theme/default/icons/mIconNow.svg": "6a8ae624d3a553b4db8d03e60170fee0", "resources/theme/default/icons/mIconOffice.png": "6303c5abbdcdd3a24281007c3f75910e", "resources/theme/default/icons/mIconOracleSpatial.svg": "96b27c5bb382407c8fbb3f1d5cdfbb45", "resources/theme/default/icons/mIconOutsideLayer.svg": "2e84bf82fd9ba6d6d3b170ff227e43b7", "resources/theme/default/icons/mIconOws.svg": "861d35b91c66a25907dd731a522795fd", "resources/theme/default/icons/mIconPg.svg": "870e241bd22d89b83aa26e69b79e44d9", "resources/theme/default/icons/mIconPhysicalTable.svg": "62556fe79abc5c1aa1b139a4caab4f97", "resources/theme/default/icons/mIconPhysicalTenseTable.svg": "8495bd64272f9519ba3639bb108ce6a1", "resources/theme/default/icons/mIconPointLayer.svg": "95251fc052d089796b41a46072661ad2", "resources/theme/default/icons/mIconPointMLayer.svg": "3ace9ed797c1cd91848f6e75df4ce5cf", "resources/theme/default/icons/mIconPolygonLayer.svg": "da646fa3fef5ce81f9f0e9ace1d0be1e", "resources/theme/default/icons/mIconPolygonMLayer.svg": "b76b1c64744e78f711a6ed163b6fbf29", "resources/theme/default/icons/mIconPostgis.svg": "d95101a8f8b9eaa80083d646e5383659", "resources/theme/default/icons/mIconProjectionEnabled.svg": "820493124a75fe953400f9f2ceba9d34", "resources/theme/default/icons/mIconProperties.svg": "b57f75b3eccce67243c8143fc010f052", "resources/theme/default/icons/mIconRaster.svg": "a65c7579f3849569b88caa69d46d6d1c", "resources/theme/default/icons/mIconRasterGroup.svg": "b22c2b30b5b48777566a041b02ca20d7", "resources/theme/default/icons/mIconRasterLayer.svg": "37358bd2779dd20a7580a1b4b354913b", "resources/theme/default/icons/mIconRegionItemNode.svg": "0c892403655a142a739da4a445f10d69", "resources/theme/default/icons/mIconRegionNode.svg": "2b8d8fcdb3054ca0b50d165d76a0e529", "resources/theme/default/icons/mIconRegionRoot.svg": "a05b73abd59d65752a387c0887afeaa1", "resources/theme/default/icons/mIconRegionRootNode.svg": "b7b0001fe203a7c6e9bfaf88d2f2db4c", "resources/theme/default/icons/mIconRegionTree.svg": "981c3314204c6c2ddb53e50da0181732", "resources/theme/default/icons/mIconReload.svg": "4ee18f3e56c0a3ce09a1cc261ca9d12d", "resources/theme/default/icons/mIconRemoveServer.svg": "1644b9d1c6aa137862d1ae8788374b3e", "resources/theme/default/icons/mIconReportWizard.svg": "fc1234e9224f00f23323c50723568edb", "resources/theme/default/icons/mIconReserveSelection.svg": "8ab255dc5906d1cf88675446c3e09240", "resources/theme/default/icons/mIconResourceCatalog.svg": "4eb1ba9a379ada6a5d6bdb205259bb04", "resources/theme/default/icons/mIconRule.svg": "5115e07bbedf98741550b7db9dae61a4", "resources/theme/default/icons/mIconRuleGroup.svg": "99610d48d732d9f76ad9dd28fba1bb1d", "resources/theme/default/icons/mIconRuleRoot.svg": "013cdba55f00d20c4d9d1429a33d3981", "resources/theme/default/icons/mIconSave.svg": "5e0bcceceac29567885531806f0df5eb", "resources/theme/default/icons/mIconSaveAs.svg": "92eae31b2324f5a7b3fc959de7858a54", "resources/theme/default/icons/mIconSecondLevel.svg": "f830a82f170fdc417e8243e99f6463ef", "resources/theme/default/icons/mIconSelectAll.svg": "2c19a865fc8951dc6b0d76e03192fa57", "resources/theme/default/icons/mIconSelectNone.svg": "728e2fbb4f50cd340e739df3efa98505", "resources/theme/default/icons/mIconSelectServer.svg": "7a40c874356f04dfcf9dc16631b01e36", "resources/theme/default/icons/mIconServer.svg": "b037d88ce726e5e2e9022bcfccf1ab1d", "resources/theme/default/icons/mIconServerManager.svg": "db323ee83983521b1fe55d718137118b", "resources/theme/default/icons/mIconSetColor.svg": "04cd244f3efa35e3e49c3d15a41dfd8b", "resources/theme/default/icons/mIconShowStyle.svg": "82e6f287175dfa2492b04316a1001113", "resources/theme/default/icons/mIconShp.svg": "d4b18ad9e5808b63b022799c9b9ad7fe", "resources/theme/default/icons/mIconSixthLevel.svg": "e7553e75a3071065b15b6bcf2bdc8e96", "resources/theme/default/icons/mIconSnapping.svg": "63f355964cf029d5dcaf7181384b8762", "resources/theme/default/icons/mIconSqlite.svg": "aaa168559302aad794f38c3eba3bddd4", "resources/theme/default/icons/mIconSuccess.svg": "2d9a7e0389e29ef07f2f881f478acc57", "resources/theme/default/icons/mIconSystem.svg": "fa75b6702dfc9a38d955c4db45bce8de", "resources/theme/default/icons/mIconTable.svg": "21615bcc2dab3f7d81b36b7267d5c003", "resources/theme/default/icons/mIconTableLayer.svg": "f097c9a2709c4bb46a5c69edcaeb877d", "resources/theme/default/icons/mIconTableMLayer.svg": "3777b46cbf789491572e2ab6c3841384", "resources/theme/default/icons/mIconTense.svg": "a9506e8a7e783d03a27c777d50f639c5", "resources/theme/default/icons/mIconThirdLevel.svg": "1b82d2a307fc30d45b11ea616c7b5c10", "resources/theme/default/icons/mIconTile.svg": "b73d838ec69991e754f3cb8eb1f47366", "resources/theme/default/icons/mIconTileLayer.svg": "e65e45cc49d05e235d10096ad817fc82", "resources/theme/default/icons/mIconTimerContinue.svg": "cfd5c0fdbd6fdcd6a414dac9c092a633", "resources/theme/default/icons/mIconTimerPause.svg": "56f9fb6e1a8b29efb238c60c7abb2682", "resources/theme/default/icons/mIconTxt.svg": "2a5d39dfd28028ea033bbe28e5e5bfad", "resources/theme/default/icons/mIconType.svg": "652794ba38eacdf6364786d77e138b92", "resources/theme/default/icons/mIconValueRangDic.svg": "b5fbdf278321d22243dcc2a0dfa25e72", "resources/theme/default/icons/mIconValueRange.svg": "3656fff54e067f46659582350822c3bd", "resources/theme/default/icons/mIconValueRangeRange.svg": "2b8d8fcdb3054ca0b50d165d76a0e529", "resources/theme/default/icons/mIconVCT.svg": "9de1e1bdb8620f90226157e87ff08f35", "resources/theme/default/icons/mIconWarning.svg": "469d5f397cb89f1768473b9fc065cb1f", "resources/theme/default/icons/mIconWcs.svg": "d50746b54aaf55fe0f070cd61f42b589", "resources/theme/default/icons/mIconWfs.svg": "4bb63bff96c7076f1372a1a21fc746a3", "resources/theme/default/icons/mIconWms.svg": "ff83723069a766205aaeedbd335906dc", "resources/theme/default/icons/mIconWmts.svg": "ad3fe79ff517b26bf49f6ee5d6a31b17", "resources/theme/default/icons/mIconXYZTile.svg": "d0c0b73adfc969f20bf96165e9581276", "resources/theme/default/icons/mIconYearChangeDataInittail.svg": "53d895ee3af75bc504e52de69b648768", "resources/theme/default/icons/missing_value.svg": "864863c0054f6b72766d2f8a3e030f30", "resources/theme/default/icons/mLayerSaveAs.svg": "42e4a4ffc0342a7cc626cc2df0f4748e", "resources/theme/default/icons/model_selection.svg": "222c717feb5de2c675cfb7c85c41b9b4", "resources/theme/default/icons/modified.png": "430719999ef1aad4e546d47662f64a82", "resources/theme/default/icons/Mouse.svg": "87a75d7d8243dad6fd65d9815db3e7c0", "resources/theme/default/icons/mPolygonDifference.svg": "c7fcfd8353e8661aade6824f2f946878", "resources/theme/default/icons/mPolygonIntersection.svg": "8a8cef3083c30309df6946d6ccd660b7", "resources/theme/default/icons/mPubLayerRoot.svg": "5073514803a9dc01c5c70c3c18305ffc", "resources/theme/default/icons/mPubLayerSet.svg": "a64220d6ecb203571ef6f1d8b0bbe5c2", "resources/theme/default/icons/mPubLayerSimple.svg": "40a8f32e0ec29323c176effbab6a1199", "resources/theme/default/icons/mPyramidManage.svg": "f50928a886510ab2489f3875930c252a", "resources/theme/default/icons/mRefreshErrorStatus.svg": "07bf753129c84e7d476e939ee906c4cd", "resources/theme/default/icons/mReportExport.svg": "e4c0687252e51c27e8967b033352b09e", "resources/theme/default/icons/mReportSetting.svg": "9f12bcd4a448ceeed1ddfa07a289d712", "resources/theme/default/icons/mSourceFields.svg": "c29a122376138fa67964299e1cd554dc", "resources/theme/default/icons/mStartCheckProcess.svg": "1a43b916dc8effdee18fbc2126c77714", "resources/theme/default/icons/multieditChangedValues.svg": "fa2114de837cf105940390a270ca0fbb", "resources/theme/default/icons/multieditMixedValues.svg": "41e09b3a0af251bf17d9283b8f81a577", "resources/theme/default/icons/multieditSameValues.svg": "f280c0cd500fd7679b7bc4cc7abec436", "resources/theme/default/icons/mvectorlayercache.svg": "52656796a777dcd29c43e584de7e40ca", "resources/theme/default/icons/MySQL.svg": "b4b89c2f14fe912b9acc90c32f1b3dc8", "resources/theme/default/icons/nActionBasicStatistic.svg": "f58a64edfbcc2a499d017d021caa854f", "resources/theme/default/icons/net.svg": "01609ed2d769c8d7ad4c97460cac8f69", "resources/theme/default/icons/New post.svg": "0faf63c8a6a31411cfedca48447870cd", "resources/theme/default/icons/new.svg": "f39a9d36090c7cad6757b3621aea0dbf", "resources/theme/default/icons/newvectorfile.svg": "56abc8aa55c3e2143c78b52af8a364d9", "resources/theme/default/icons/new_project.svg": "3cd72c019015b461870f3ad6e871aca1", "resources/theme/default/icons/next.png": "ff36945b6427eb8226bec7fe2743af70", "resources/theme/default/icons/nextConflict.svg": "a086d4b6331680eeb568a4df98937305", "resources/theme/default/icons/non_versioned.png": "25ba46f98f7aee7477ffb7d7fc1a7d62", "resources/theme/default/icons/normal.png": "795d679579e414fd37489f552b604b94", "resources/theme/default/icons/numpy.svg": "f36ed6c85013eb6f6bb3e49a8a9ee713", "resources/theme/default/icons/open.svg": "200a281b71b9104332781e9eb2fcc6de", "resources/theme/default/icons/open_folder.svg": "4aac2ccabd5e0ee6afe3286e61b8c85a", "resources/theme/default/icons/oracle.svg": "62030f9604e445ac5ef6b9edc94da181", "resources/theme/default/icons/orderlayergroup.svg": "2dd8c13c7243f17d69087176d29ddbb3", "resources/theme/default/icons/overlay.png": "17f28aabcf682bbf6a22d0a80070b1ce", "resources/theme/default/icons/package.svg": "db8542fb863117d5d74f7a6676ab419e", "resources/theme/default/icons/pagesetup.svg": "b25656114dc0af77191a6d7b206c7e91", "resources/theme/default/icons/paste.svg": "02b0ecdb9e40d6e9a3a589be40ea0790", "resources/theme/default/icons/pasteElement.svg": "deede2c394febaf7818a5a74220adb58", "resources/theme/default/icons/pausefly.svg": "aec4d2aee5c1a96174b7d0efbb654d35", "resources/theme/default/icons/plugin-installed.svg": "715e5c20df916d7d0a959ef6a6efbc40", "resources/theme/default/icons/plugin.svg": "c5c2d3092b1c2958aae669b0ce891492", "resources/theme/default/icons/plugins.svg": "e04bad7db3b8435bff70fd5ebbebc369", "resources/theme/default/icons/postgresql.svg": "5c2c9989c1a23c934678119d55c088b8", "resources/theme/default/icons/previous.png": "af4d639c2ccefd5b57d4772e3cc3bb62", "resources/theme/default/icons/previousConflict.svg": "099b009a440d54790c0cda1d60842134", "resources/theme/default/icons/print.svg": "3ba6cb43288c30503450361636fae5aa", "resources/theme/default/icons/processingAlgorithm.svg": "5acd3a3ea3ac4302ebed7d35fc1f16ae", "resources/theme/default/icons/project.svg": "72a57d9485a1a0a78e977a2f472e2213", "resources/theme/default/icons/projectDataTree.svg": "23c638ad38fe4f0dc6a4661730f24081", "resources/theme/default/icons/providerQGeomap.svg": "2c9169fc1c7e50f15b84f71bafd17a6d", "resources/theme/default/icons/pypi.svg": "6b9ea3945cf090b33076ea91ce2e9612", "resources/theme/default/icons/pypi_color.svg": "aefe42c944201ae3a898d71d5ec62075", "resources/theme/default/icons/pyramids.png": "051b61faa344c78af9a059e9cfc78dae", "resources/theme/default/icons/python.svg": "cdf88def02be5b2ce0e4c40b89d2c6ce", "resources/theme/default/icons/python_gray.svg": "b0b260fbbaa0b24915e46e80a5d7af9d", "resources/theme/default/icons/qgeodataspecificationmanagertool.ico": "c86f314e1777d0e7541709d50f9d726c", "resources/theme/default/icons/R.svg": "c27cc0791576e0ca3616b76731907b9e", "resources/theme/default/icons/reduce.svg": "1e88d456b31261ed99c18414a5c47671", "resources/theme/default/icons/regression.svg": "ea2efc714a40dfba39ecbd5218268fa6", "resources/theme/default/icons/remove.svg": "a6328dbd354bd5965aae818d26b273da", "resources/theme/default/icons/removeElement.svg": "7f477ed033b711e6e3b96f9bf22c79e1", "resources/theme/default/icons/rendering.svg": "55bdf00e277bc65c5639e48f8d9f42d2", "resources/theme/default/icons/replace.svg": "fbba9c3ecb7acb6dc76d5fc36cb03302", "resources/theme/default/icons/resolved.svg": "4a3f747ccc1459e54666994682080e38", "resources/theme/default/icons/ribbonMaximize.png": "e5dc4278826e32c25a4723fc87b943b2", "resources/theme/default/icons/ribbonMinimize.png": "42094d61d30e8a72a1a2cbff7a0df598", "resources/theme/default/icons/right.svg": "5dca8df9c3b66d4d1449494b34f936fe", "resources/theme/default/icons/roaming.svg": "4db76c4b080e95322cde6b52d36cfcfb", "resources/theme/default/icons/rubberBandConfig.svg": "9dd7c66dd566eaabd42ab2edd443654c", "resources/theme/default/icons/run.svg": "ec156027329d2c13877625ff3fcbee01", "resources/theme/default/icons/sample.svg": "59c88431eeb5015338430a9b7d1be8c5", "resources/theme/default/icons/sas.ico": "c4c83c2060701e0389262d9d07362896", "resources/theme/default/icons/save.svg": "89eafd6a566e859840d717e73872df13", "resources/theme/default/icons/save_layout.svg": "de4fd322d23ce467c2d30c2f2cb4fec0", "resources/theme/default/icons/scale.svg": "6b074bd9946d667c2f3e6502e634ecd2", "resources/theme/default/icons/scaleAdd.svg": "1724ab174f6709f9485d555a2d372639", "resources/theme/default/icons/scalebartext.svg": "1c6d5b3e2d85f1cbfb7305ebc7c2ee94", "resources/theme/default/icons/scaleClear.svg": "c62dd67d91bfb849c20eb5a1bd37e215", "resources/theme/default/icons/scaleRemove.svg": "0fb15d6df30ef9a5248804f9d082ad04", "resources/theme/default/icons/scaleReset.svg": "c69773f8695e60c85c82f65bfb44a29e", "resources/theme/default/icons/scorecard.svg": "9919e029f7566ce49fbe7338493e0473", "resources/theme/default/icons/script.svg": "cb1493bb56cd8d924de2516d7dbb5187", "resources/theme/default/icons/search.svg": "b116a8aa818d1cd7ec41752a0c29816b", "resources/theme/default/icons/section.svg": "aea2b044eb14c55452bc8172df030f92", "resources/theme/default/icons/selectedrecords.svg": "171b3d8de98149a3675b853745105c22", "resources/theme/default/icons/setExtent.svg": "7080d56468833b423897465aeca93138", "resources/theme/default/icons/setting.svg": "41cf928d70d4e8ed012cc2d15d224ed2", "resources/theme/default/icons/shengcunfenxi.svg": "5ae32cbb038032ed1443b8005baff03c", "resources/theme/default/icons/shortcutsConfig.svg": "4cb9c5a2687e14ba17d7ad9f4dcbfea9", "resources/theme/default/icons/simplearrow.svg": "157c76b4552215d148febb98baf92b1d", "resources/theme/default/icons/situationpoint.svg": "af69811bf86271d54800957689c28aec", "resources/theme/default/icons/skip_line.svg": "eedc935dd2773c44ff7e54a50811030a", "resources/theme/default/icons/slider_close.svg": "3402865a23ff073e953448e3d2480c24", "resources/theme/default/icons/slider_lasttime.svg": "da6ead6853a3db08a482f28ceaf933e3", "resources/theme/default/icons/slider_lastversion.svg": "3d10f7b5692a9ea4b8929e5a65528bfb", "resources/theme/default/icons/slider_nexttime.svg": "b54ce11ec64888d09640861fcc2ed0a5", "resources/theme/default/icons/slider_nextversion.svg": "54213dc4e51bccdd8348bcbdc0102d7b", "resources/theme/default/icons/slider_zoomin.svg": "abeda64aa9f3fa4e6d3bb2eefe65a89e", "resources/theme/default/icons/slider_zoomout.svg": "b9a24b973053cf1d836872b788180f00", "resources/theme/default/icons/sloperuler.svg": "16d462cb766b85c0ec907ce5c529bb02", "resources/theme/default/icons/spss.svg": "4d8cb6044137301a4101755e43b83fc1", "resources/theme/default/icons/sql.svg": "a0997f68ee9c263ffecd0efbaa524236", "resources/theme/default/icons/stata.svg": "a62e991cde9e8389dea6bf46b0bccb43", "resources/theme/default/icons/sun.svg": "e98cbd692ec62d35d27c78c31d91f86f", "resources/theme/default/icons/symbology.svg": "062e0ba664ee2320d21cda33ddaf3525", "resources/theme/default/icons/symbolreorder.svg": "062e0ba664ee2320d21cda33ddaf3525", "resources/theme/default/icons/system.svg": "c76354112390bc2f9151b4baf729ccfc", "resources/theme/default/icons/table.svg": "21615bcc2dab3f7d81b36b7267d5c003", "resources/theme/default/icons/tablegroup.svg": "b9a57bb1b7a98b1ea2220552ae77f576", "resources/theme/default/icons/task.svg": "1223b13e13ffccea138013fd33b71775", "resources/theme/default/icons/teamEditProject.svg": "35828465cb83319c8579c9cb9a904481", "resources/theme/default/icons/terrain.svg": "5e2ccfec44e7d6a40320912b4137615e", "resources/theme/default/icons/threenorth.svg": "96eada7b3eeebdca632533988e617717", "resources/theme/default/icons/time_series.svg": "94fd406769655b721b17f4cb17bc673f", "resources/theme/default/icons/top.svg": "22d2fefe180a699944a6a5ab545ab5a9", "resources/theme/default/icons/topologyConfig.svg": "2af77dff1d80bcccdefd9079ed4d68b6", "resources/theme/default/icons/transformed.svg": "5b98c431c64bf1f5697a2c63cab6ca11", "resources/theme/default/icons/transparency.png": "17c24a4daf81d8d7f8b9c7642e2fa7e7", "resources/theme/default/icons/transposition.svg": "07d926b580577fcc30c3a709cbde68bc", "resources/theme/default/icons/tree.svg": "14ae56a092c0268672520520ffc4443a", "resources/theme/default/icons/txt.svg": "867501b0b384f46cf6d4f225605995c1", "resources/theme/default/icons/undo.svg": "5484c93bf4a89654d20a2ba6bb66d912", "resources/theme/default/icons/uploaddata.svg": "e2a9a1ccdb820364d99b96d1a3ab39b6", "resources/theme/default/icons/upWard.svg": "b1c72b33367343316cc888d977ebb43d", "resources/theme/default/icons/useLeftAll.svg": "fddc9b7c0d601a881ab55af95659d3cd", "resources/theme/default/icons/useLeftSelected.svg": "1764c036105882a4743fc4e34e384404", "resources/theme/default/icons/useRightAll.svg": "c7020f993a82c847054dadf2b5709a5a", "resources/theme/default/icons/useRightSelected.svg": "18d35ec89cbb795bb88449c8859b3d81", "resources/theme/default/icons/var.svg": "c3d9e7461e40e74c17f3ce5873905f51", "resources/theme/default/icons/var_open.svg": "b023934e733448d74563926e0d5f9a1f", "resources/theme/default/icons/vectorTileStyle.svg": "670fc3779ea1e4b103aa75efd3832baf", "resources/theme/default/icons/view_var.svg": "a495e2e336064e1549622b87c69dd649", "resources/theme/default/icons/visibleMap.svg": "7ec32396ae7a2da699cf55929aed4f98", "resources/theme/default/icons/walking.svg": "790a25d6b2f642d0e2c04e5f5e5efd01", "resources/theme/default/icons/website.svg": "c789f48d1f500ad317ef3cde4818b240", "resources/theme/default/icons/windowicon.ico": "dd4b17c0ec69f51b039c51b6e0887c31", "resources/theme/default/images/addNode.svg": "d11d5a3ce54b3a864281b2f5f3311e36", "resources/theme/default/images/attributeBrush.svg": "ddeee5f9e2e1e63792eff8cbbb840164", "resources/theme/default/images/background.png": "ddf7168c491dac078b9b0c7c6771d602", "resources/theme/default/images/breakByOnePoint.svg": "ed5c5d11f74011fcb4c8a027eeb31599", "resources/theme/default/images/breakByTwoPoints.svg": "ce13a12a1afde966f284661dfdb1471f", "resources/theme/default/images/copyFeature.svg": "0293921cdf1de395e600349621565051", "resources/theme/default/images/cursor_leftbottom.svg": "3e9b60706a3f0bf7d729c48bd440cdc7", "resources/theme/default/images/cursor_leftright.svg": "418f31c70c594b53922604cdddb036e5", "resources/theme/default/images/cursor_lefttop.svg": "c364223abf37f51dd7def7162d9be9af", "resources/theme/default/images/cursor_move.svg": "8a82e82a355f18c8f410bd9bbf0c5f8e", "resources/theme/default/images/cursor_topbottom.svg": "ec0ad72e180c458e3155a88a2db6c023", "resources/theme/default/images/deleteNode.svg": "2aae237e59216f92c6b87dd7757c1a95", "resources/theme/default/images/editDraw.svg": "23e810e15d33b68a03427f8a40a408a1", "resources/theme/default/images/editSelect.svg": "8859783cdb6f54f380faadc8ad60c3c0", "resources/theme/default/images/error.png": "450eb59729737d72ceb03818c43ffcc9", "resources/theme/default/images/extensionPolyline.svg": "91c86deac1a658ed6b928487fb076723", "resources/theme/default/images/identify.svg": "ac8cb0d555021521270e9e6cc0d8ce59", "resources/theme/default/images/information.png": "423578ade54524e34a95580788d7729d", "resources/theme/default/images/mCapturePoint.svg": "5caf3405335284af6d880495b01d5776", "resources/theme/default/images/measure.svg": "23e810e15d33b68a03427f8a40a408a1", "resources/theme/default/images/mIconDeselected.svg": "75733116db9e219b0f4382385342b511", "resources/theme/default/images/mIconSelected.svg": "cc341d78f94f446e0e6ca672482edd15", "resources/theme/default/images/move.svg": "8a82e82a355f18c8f410bd9bbf0c5f8e", "resources/theme/default/images/moveFeature.svg": "8a82e82a355f18c8f410bd9bbf0c5f8e", "resources/theme/default/images/moveNode.svg": "84a9570e8f6d04cd64c450c1523aad4f", "resources/theme/default/images/mPageLayoutPan.svg": "67a143805264211f1031ebb79eb356a4", "resources/theme/default/images/mPageLayoutZoomIn.svg": "0d4e308d01775da24950c7c7869cadc2", "resources/theme/default/images/mPageLayoutZoomOut.svg": "ffa286230cff03f5bf4003a7f2e77a94", "resources/theme/default/images/mPanClose.svg": "a0603e76de7727c6a3a524adec772f49", "resources/theme/default/images/overlayUpdates.png": "75a5188a1a36b3e55a0c26bf0692ec3c", "resources/theme/default/images/pan.svg": "8fa8827e723ea97094655ce0ab60bcbb", "resources/theme/default/images/pyramidfirst.png": "6336d1c87d3a53c59f42ab682a7ef68d", "resources/theme/default/images/pyramidfourth.png": "3ca3b9cdbb6b88a50f6a270c24504df2", "resources/theme/default/images/pyramidsecond.png": "d8eb0fae632533ce16178629a61e77d6", "resources/theme/default/images/pyramidthird.png": "2dba3fd37994c231b6fe468f5922144a", "resources/theme/default/images/rotateFeature.svg": "d47a6e3f34dd3d3484440c7e4a96b58c", "resources/theme/default/images/select.svg": "128d8d763c91a71599ad86fcc069ad63", "resources/theme/default/images/selectbypolygon.svg": "5efdd8dc872ba52a262b939cfcd70515", "resources/theme/default/images/selectbyradius.svg": "c2d9e4efd0649941dfee9a843284ccca", "resources/theme/default/images/splitBySelect.svg": "021d0ae70cb8157d9d6f18feef0db270", "resources/theme/default/images/SwipeDown.svg": "21f3775a767d4cfb81d748276baf522a", "resources/theme/default/images/SwipeLeft.svg": "457aac45411c29aa4d6f1b63e6d999ba", "resources/theme/default/images/SwipeLeftRight.svg": "21193a1f1446c5c392d7a3807427e25a", "resources/theme/default/images/SwipeRight.svg": "cc700b8a09d58417f17496738db67404", "resources/theme/default/images/SwipeUp.svg": "b440961cee34d1649815aa594a896318", "resources/theme/default/images/SwipeUpDown.svg": "e21665a6f5d712ab4b25022ddb738ca5", "resources/theme/default/images/systemabout.png": "067610e0d804b16c75496b4ed77005dd", "resources/theme/default/images/thematicAttributes.svg": "ac8cb0d555021521270e9e6cc0d8ce59", "resources/theme/default/images/warning.png": "9323d69c25b6f79fc974023fee921af0", "resources/theme/default/images/zoomin.svg": "6bf9cf3ff08b719f4f872977e7ee201f", "resources/theme/default/images/zoomout.svg": "debcf4106754577838008ca423288371", "static/README.md": "2b883d8ed7e177b421e29625caf11a10", "static/tutorials_page.html": "7e6350719caf6a92de7a495441cd65ed", "static/css/iview.min.css": "b56ab90b84c3ac9f460f50906cbf5ae8", "static/js/echarts.min.js": "40874546a400f6e1b358c0495998a43f", "static/js/form-create.min.js": "5b2e899b103ec5bade920ac909268db4", "static/js/iview.min.js": "cb94a058fc714808d440d2b9835fed0d", "static/js/jquery-3.5.1.min.js": "dc5e7f18c8d36ac1d3d4753a87c98d0a", "static/js/vue.min.js": "b0473a59bd7e655c4da3d26f50dbba1e", "static/js/element-ui/CHANGELOG.en-US.md": "f90a50248e8a935d4bf94939b2b83bc1", "static/js/element-ui/CHANGELOG.es.md": "cd352a41d428cfe359e2dd25b3e69216", "static/js/element-ui/CHANGELOG.fr-FR.md": "2a5cb94c1cc391f95705a822c50906d2", "static/js/element-ui/CHANGELOG.zh-CN.md": "fae21798d847ea9bd4827f78766d634e", "static/js/element-ui/package.json": "ed15655a88db7bf4e42f2879000f0241", "static/js/element-ui/README.md": "29e235e7c8cba854610d2faa0424c5a0", "static/js/element-ui/lib/alert.js": "44bd2ce7e47fc65112066ebe354ceaca", "static/js/element-ui/lib/aside.js": "6af3243f56f6c0bda3eba64e2cd8078a", "static/js/element-ui/lib/autocomplete.js": "8cfc24a3a0f63f57b0bbefd1d43150b1", "static/js/element-ui/lib/avatar.js": "0c3f24bdffc3f4c3016149e5b589bf58", "static/js/element-ui/lib/backtop.js": "4ba1079d79f186a4b73395ab8048ce30", "static/js/element-ui/lib/badge.js": "d124ddea127b3b87fb7fc0e3d28f976e", "static/js/element-ui/lib/breadcrumb-item.js": "3ee84610ae6e927194916dc1850be078", "static/js/element-ui/lib/breadcrumb.js": "3b696a8b4d753bce1c9a42f1f2f2e559", "static/js/element-ui/lib/button-group.js": "c13e97a9b747982a6fe3475ce0963202", "static/js/element-ui/lib/button.js": "db479a095696d3b41e4e8e5ca573b2d9", "static/js/element-ui/lib/calendar.js": "78b60123511490a4957bb7ecc90ca562", "static/js/element-ui/lib/card.js": "a63bc5d2a60ecffc3fe581d2b9a86b19", "static/js/element-ui/lib/carousel-item.js": "24398b44ec0a885f9f7dcf7b4511b140", "static/js/element-ui/lib/carousel.js": "dc86769400de82ac847dfe71d278331a", "static/js/element-ui/lib/cascader-panel.js": "400c0c6ad5bb41a6d0aa489f027a849c", "static/js/element-ui/lib/cascader.js": "a97cc547f182cb959ff0af6d31f0769c", "static/js/element-ui/lib/checkbox-button.js": "e867a0fcfa56c197d8cbbcd8000ae723", "static/js/element-ui/lib/checkbox-group.js": "81593c2eeeee70e69fff71af4dfe212c", "static/js/element-ui/lib/checkbox.js": "09780b33e4add1d32b2b870c8ccc5a4b", "static/js/element-ui/lib/col.js": "227c1189111f2dfbada9a8f26e1433ed", "static/js/element-ui/lib/collapse-item.js": "0ef8b7bea75fa2d185730fa809d86148", "static/js/element-ui/lib/collapse.js": "8cc69b5cbaefb354e3fa19e748a54118", "static/js/element-ui/lib/color-picker.js": "25752f575ad81607f8b3b4652e1e1790", "static/js/element-ui/lib/container.js": "f2118022ef7e900503a8028e72a47bf2", "static/js/element-ui/lib/date-picker.js": "160c4f0f12cc50d77eeff03eb3e2abce", "static/js/element-ui/lib/dialog.js": "3446278e381ae6162bfc309cd883b84a", "static/js/element-ui/lib/divider.js": "ce49dbf8658355e06eb9ca852acd98e0", "static/js/element-ui/lib/drawer.js": "2a4f53c5e574a8fbe04eb528ccdb4e6b", "static/js/element-ui/lib/dropdown-item.js": "1c440ab125200ed27bb4402f26ae6edf", "static/js/element-ui/lib/dropdown-menu.js": "51e13aaf4f6dea2a6ec4eb6a06f49c1a", "static/js/element-ui/lib/dropdown.js": "02786a92e4ed20d950ad7d09e6dd03e7", "static/js/element-ui/lib/element-ui.common.js": "b6b435a52f5cdc204fb8a023bc856a16", "static/js/element-ui/lib/footer.js": "4d392ecf90fa43ebf25caa31e1783354", "static/js/element-ui/lib/form-item.js": "98d4dd1fa2c81e68ff40dc3344620df9", "static/js/element-ui/lib/form.js": "88eeb8b813539099fec26e9993789af8", "static/js/element-ui/lib/header.js": "9c9ab6bc2af99e67eee8367ab3ed855b", "static/js/element-ui/lib/icon.js": "658fcece90b39788b763c25f17d60207", "static/js/element-ui/lib/image.js": "650a56522f7a590b8fca25fdfb09690a", "static/js/element-ui/lib/index.js": "28fb829b428bc14fe9d26f852dbc11a9", "static/js/element-ui/lib/infinite-scroll.js": "3c09c5248512b2f0281e8e8bf4ecee8c", "static/js/element-ui/lib/input-number.js": "3dd23cc075c49822fe68366cef6f09a3", "static/js/element-ui/lib/input.js": "bb52be1067cfd9b1dd8ded0b664f5605", "static/js/element-ui/lib/link.js": "312480ee5f2292f314346434faa3518f", "static/js/element-ui/lib/loading.js": "9bb5753b57ee274668c5748d38eac2ab", "static/js/element-ui/lib/main.js": "92a26937eaac62367d2b81ebec36d9f0", "static/js/element-ui/lib/menu-item-group.js": "2098666a7bbd0c271cc084c3924d4ec3", "static/js/element-ui/lib/menu-item.js": "bf8db518c9b73c9cd3771dabf91bcaca", "static/js/element-ui/lib/menu.js": "0188cd906e1159936cbee28980fbec39", "static/js/element-ui/lib/message-box.js": "e275b026ca058dff799673d5740b6e22", "static/js/element-ui/lib/message.js": "0f64248045730556999011fa779d1dfa", "static/js/element-ui/lib/notification.js": "6190c53c839faa5b01a815de6769c899", "static/js/element-ui/lib/option-group.js": "f2759330e59d0518f60a6c5547d3c827", "static/js/element-ui/lib/option.js": "1c418a74feafdc73cfa5360764f1b90a", "static/js/element-ui/lib/page-header.js": "6a9f088700adf20d389cc542e6a0deaf", "static/js/element-ui/lib/pagination.js": "17b696cc294ca8bbc37af7b1c5968f7a", "static/js/element-ui/lib/popconfirm.js": "6bcceddbd44e456d716b66a018beaf7c", "static/js/element-ui/lib/popover.js": "a5cf39911205f08d5e5691a158bd81c6", "static/js/element-ui/lib/progress.js": "6f206f6d72b0622ea6a6c2fccd062bb5", "static/js/element-ui/lib/radio-button.js": "efdf34b9f8c565b99aeae587e11eb87a", "static/js/element-ui/lib/radio-group.js": "93003dbff84a768dbb1a12e7d6e7796a", "static/js/element-ui/lib/radio.js": "66201ad4319bcf5330d5711537cb85c6", "static/js/element-ui/lib/rate.js": "d57f0eede17b4ff2c80fbc3a5899d030", "static/js/element-ui/lib/row.js": "4d92917609e4db63a0acc64bca5d9ab4", "static/js/element-ui/lib/scrollbar.js": "76120f65f535b535d19fc1e820e959d5", "static/js/element-ui/lib/select.js": "5e900a932de2f3be38ef8f436fa201e4", "static/js/element-ui/lib/slider.js": "faf0a48d331a5c869c7bf7c8a07abe58", "static/js/element-ui/lib/spinner.js": "83f0cb9cc66bba831681c58c230890fd", "static/js/element-ui/lib/step.js": "cd744e288e5eeb55dde52cbe0909016d", "static/js/element-ui/lib/steps.js": "7cb3835a98f56194a2ca85cbeb197bf2", "static/js/element-ui/lib/submenu.js": "07584a153decdad6f82fe2de4e565f15", "static/js/element-ui/lib/switch.js": "aa60bca689f5db14f3bad0fcd8cb3ece", "static/js/element-ui/lib/tab-pane.js": "9cba2ce5089e06c7a6f9560687e0e150", "static/js/element-ui/lib/table-column.js": "bcf79a6f1de840db943cdee7c4e41921", "static/js/element-ui/lib/table.js": "f017fc250b36fbfebeef1b462b6984f8", "static/js/element-ui/lib/tabs.js": "f19f934d0ee0cb9b4234c9d81301f0b7", "static/js/element-ui/lib/tag.js": "66492bd336c57f37bbd9da3cac97b51c", "static/js/element-ui/lib/time-picker.js": "d2561b513c3dfdbb57f34f3f6855bd5b", "static/js/element-ui/lib/time-select.js": "c562bd018cb94d0a5f993a23bdb2e687", "static/js/element-ui/lib/timeline-item.js": "84ce5c070a064909355b56610bd8ff2f", "static/js/element-ui/lib/timeline.js": "e66393cdd8e7a22413acad9ab1f6f8af", "static/js/element-ui/lib/tooltip.js": "7f6a6999519c70a0485d2ae7d03ea6ab", "static/js/element-ui/lib/transfer.js": "b5825b45e447c403e3b0833e7975fa96", "static/js/element-ui/lib/tree.js": "16346c71a54ffbaddc37b635296704ed", "static/js/element-ui/lib/upload.js": "1682818d886774e15dd8267e40d81ecb", "static/js/element-ui/lib/directives/mousewheel.js": "d57acb00ba5ec4322dd7b4e37dedbb69", "static/js/element-ui/lib/directives/repeat-click.js": "ee7cb0bb5822588e21af009528f04490", "static/js/element-ui/lib/locale/format.js": "471399a5f5d8d53d46cb7e2fcad68d0d", "static/js/element-ui/lib/locale/index.js": "7f48cd4280e7b5be536b37a33af7a441", "static/js/element-ui/lib/locale/lang/af-ZA.js": "1cab2e3d954eaf982bff6464654f162a", "static/js/element-ui/lib/locale/lang/ar.js": "a973ecdc856fa1ea02fc3a1f1d436ddb", "static/js/element-ui/lib/locale/lang/bg.js": "100d5a70d89307668e0a512d953bbbd3", "static/js/element-ui/lib/locale/lang/ca.js": "f85b7ef8722b22ab636c540dc90c9aae", "static/js/element-ui/lib/locale/lang/cs-CZ.js": "5b0aeb0ab3f5177a7d2ae975db11ff20", "static/js/element-ui/lib/locale/lang/da.js": "7b04b9b382da5785b105084c0b1895fc", "static/js/element-ui/lib/locale/lang/de.js": "165678f7ff2d5c05c1b196c1fe36919f", "static/js/element-ui/lib/locale/lang/ee.js": "77cab864f3b5c0d02700606da528e0c9", "static/js/element-ui/lib/locale/lang/el.js": "1ab144c6f49d289c320e8672fdd78d05", "static/js/element-ui/lib/locale/lang/en.js": "fbea06cf549fdf1bc8107e258676825d", "static/js/element-ui/lib/locale/lang/eo.js": "91b4bd398fd27e80d331675e0567eae8", "static/js/element-ui/lib/locale/lang/es.js": "e1845d63e50ee4f117aa16c8b7756cc7", "static/js/element-ui/lib/locale/lang/eu.js": "6851cf67a17a2988f1e905557ebba981", "static/js/element-ui/lib/locale/lang/fa.js": "67763039da687c77702e59237ce66e04", "static/js/element-ui/lib/locale/lang/fi.js": "0b35a1d0fb672b74e243a5f41defdd70", "static/js/element-ui/lib/locale/lang/fr.js": "64c0cbb50596da4841223e8c85c34c1b", "static/js/element-ui/lib/locale/lang/he.js": "2a3719ffb84a33ed3dd1e9799c03a3dd", "static/js/element-ui/lib/locale/lang/hr.js": "81661a420afc076d1792c21f0432a50e", "static/js/element-ui/lib/locale/lang/hu.js": "0fa9fc603c3f5ad1bbbab426db5fa3cf", "static/js/element-ui/lib/locale/lang/hy-AM.js": "a6d88e26e14fd663a5aebe98623b1e5d", "static/js/element-ui/lib/locale/lang/id.js": "ace3933e6fba75bf17787c34580d1430", "static/js/element-ui/lib/locale/lang/it.js": "ddbaa0c9de79f04c13510abf9e9fe347", "static/js/element-ui/lib/locale/lang/ja.js": "927e2dbb268276b854f4ab58486c029d", "static/js/element-ui/lib/locale/lang/kg.js": "321e5d0e5cd78eb71baeea679f9866ad", "static/js/element-ui/lib/locale/lang/km.js": "712afcf5ce5bd04235c9da5cabd3211c", "static/js/element-ui/lib/locale/lang/ko.js": "a1462b4c5f54be3312a11745525baf79", "static/js/element-ui/lib/locale/lang/ku.js": "0843793ace9f2be0d749f90ae499fd25", "static/js/element-ui/lib/locale/lang/kz.js": "7da2b07e5b87618e3a7176ddfe04887a", "static/js/element-ui/lib/locale/lang/lt.js": "9525aa7bd194094651d15525bd32d060", "static/js/element-ui/lib/locale/lang/lv.js": "6a911e229e2501001d303a8fdf425d32", "static/js/element-ui/lib/locale/lang/mn.js": "2b91da6fd41d16584339b227082dd47f", "static/js/element-ui/lib/locale/lang/nb-NO.js": "91463e2c92f200c50e1dccd73e03695f", "static/js/element-ui/lib/locale/lang/nl.js": "feab63aa44ae350f99f1d484a91d942c", "static/js/element-ui/lib/locale/lang/pl.js": "a27556391421cdbf5d2424d38955b645", "static/js/element-ui/lib/locale/lang/pt-br.js": "1a7d47d3cca171739de21a0cc99387f1", "static/js/element-ui/lib/locale/lang/pt.js": "87ef9e7ed1f27c582e7faabc406cf483", "static/js/element-ui/lib/locale/lang/ro.js": "b608c43b34a6975d98e4b7b2b7295402", "static/js/element-ui/lib/locale/lang/ru-RU.js": "0504c7d75043cb31bcb692a689743cef", "static/js/element-ui/lib/locale/lang/sk.js": "3dd18f7fd8a017f994feba8b6d9a0890", "static/js/element-ui/lib/locale/lang/sl.js": "9ce57a4806c0740551d7dc51e786c86e", "static/js/element-ui/lib/locale/lang/sr.js": "d2ff6141f3ecd471a8cf846a24d7a8ed", "static/js/element-ui/lib/locale/lang/sv-SE.js": "3ca29384088f1f47398278654fa3011c", "static/js/element-ui/lib/locale/lang/ta.js": "b4de5e6d6863d34dfa6e98ccf495d504", "static/js/element-ui/lib/locale/lang/th.js": "cf6e83d1c133279705c8296ef90e775b", "static/js/element-ui/lib/locale/lang/tk.js": "7c799830a4ba20120bc2e7bccf3419d8", "static/js/element-ui/lib/locale/lang/tr-TR.js": "061e2668858c3654f3bf6750276546be", "static/js/element-ui/lib/locale/lang/ua.js": "399ff5fe5470ec3e4a57f88d1ae6fe6b", "static/js/element-ui/lib/locale/lang/ug-CN.js": "fa8d94b219647056165f1baaa843b5e6", "static/js/element-ui/lib/locale/lang/uz-UZ.js": "3607e6bf57b1d37e917736c460d7dd63", "static/js/element-ui/lib/locale/lang/vi.js": "3c54c8dec1d0c8afccd03efb53a0b53c", "static/js/element-ui/lib/locale/lang/zh-CN.js": "0b60542152156fa18a045d408bed61ea", "static/js/element-ui/lib/locale/lang/zh-TW.js": "d886891267165c838c345606c972856e", "static/js/element-ui/lib/mixins/emitter.js": "f38340cf5d69582efda171286efafa65", "static/js/element-ui/lib/mixins/focus.js": "b113513900bcf212968edd814c163760", "static/js/element-ui/lib/mixins/locale.js": "9b538e9a7f8d56c2c1f85984a9d4b2d2", "static/js/element-ui/lib/mixins/migrating.js": "7774a8a036683cd8b2b3340e0a63b132", "static/js/element-ui/lib/theme-chalk/alert.css": "4a233d163ac6641263075f6e7c4821db", "static/js/element-ui/lib/theme-chalk/aside.css": "edcc490fb0053f1cce4a71a5c047bdf9", "static/js/element-ui/lib/theme-chalk/autocomplete.css": "47ce2bcdfb1b1b08f5c623f9387391ff", "static/js/element-ui/lib/theme-chalk/avatar.css": "58a5fedd9b307c75a19c3b0533d813b8", "static/js/element-ui/lib/theme-chalk/backtop.css": "8b2ca61408dad479b881960763d3db98", "static/js/element-ui/lib/theme-chalk/badge.css": "ea8bfd89345e13ad428bdfb5574237b4", "static/js/element-ui/lib/theme-chalk/base.css": "f25cc484087487b1e1ef6ce8bf62ca44", "static/js/element-ui/lib/theme-chalk/breadcrumb-item.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/breadcrumb.css": "16d9a27c1cd682756f3173c95a83d0ed", "static/js/element-ui/lib/theme-chalk/button-group.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/button.css": "41b0f4e08fdd9eedc5a38b9713ddd904", "static/js/element-ui/lib/theme-chalk/calendar.css": "982528766ad2393b8617dbbf05dfaa7f", "static/js/element-ui/lib/theme-chalk/card.css": "48a5b07b8b0a6fb0c5eb6eafacdd0cd5", "static/js/element-ui/lib/theme-chalk/carousel-item.css": "6c97d1a467ad4b215ee69ed21754a728", "static/js/element-ui/lib/theme-chalk/carousel.css": "53761931f0070d80e77e2073f18b1d23", "static/js/element-ui/lib/theme-chalk/cascader-panel.css": "d897ade7fa060cfb4a7fc14503e61a44", "static/js/element-ui/lib/theme-chalk/cascader.css": "bdded6ec78f1471b771f1c4e4e07b596", "static/js/element-ui/lib/theme-chalk/checkbox-button.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/checkbox-group.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/checkbox.css": "515b3e4a1c684ea0538292380b38ca5f", "static/js/element-ui/lib/theme-chalk/col.css": "cd14b27ef81a2fc60079ecf869bca3cd", "static/js/element-ui/lib/theme-chalk/collapse-item.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/collapse.css": "9b8b3424302f453728fe80719c97de40", "static/js/element-ui/lib/theme-chalk/color-picker.css": "083fba820bd7440f18cf93af1d6a31dd", "static/js/element-ui/lib/theme-chalk/container.css": "e79009df433ab4403029e519ddc3340d", "static/js/element-ui/lib/theme-chalk/date-picker.css": "bd299472f79e6132d0dc6845176cadbe", "static/js/element-ui/lib/theme-chalk/dialog.css": "d30bf0818a97168906dc243c0e04a1bf", "static/js/element-ui/lib/theme-chalk/display.css": "c110a2385504d5ee6adb4377365270d7", "static/js/element-ui/lib/theme-chalk/divider.css": "6e52365004d46117ecfb085bc38479b0", "static/js/element-ui/lib/theme-chalk/drawer.css": "6ba86d8fe04df4d3549e4b3fc950bcb4", "static/js/element-ui/lib/theme-chalk/dropdown-item.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/dropdown-menu.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/dropdown.css": "246cd4c0d0f8d4493c5e987d0e330925", "static/js/element-ui/lib/theme-chalk/footer.css": "0a75eee620a1eec96cf1718047bde916", "static/js/element-ui/lib/theme-chalk/form-item.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/form.css": "8521897ad3a147046fd049b37f6775c8", "static/js/element-ui/lib/theme-chalk/header.css": "4bf1a1be0a4af7778c092b276458787a", "static/js/element-ui/lib/theme-chalk/icon.css": "83dc46b9fc11c99b5c0511d0a9a9987e", "static/js/element-ui/lib/theme-chalk/image.css": "32f4b078377ca3c364767e55bba62ede", "static/js/element-ui/lib/theme-chalk/index.css": "2414fd307c22e07b681e50e0720cbc23", "static/js/element-ui/lib/theme-chalk/infinite-scroll.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/infiniteScroll.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/input-number.css": "a30d3d47860db05882de8597cbb35a3f", "static/js/element-ui/lib/theme-chalk/input.css": "88d9749aad3cfd64720e1090474a8573", "static/js/element-ui/lib/theme-chalk/link.css": "b29ddaa7be960e0dabeee5b23fed982c", "static/js/element-ui/lib/theme-chalk/loading.css": "ee99b8ad8874ed9e7df64b7dab4159a6", "static/js/element-ui/lib/theme-chalk/main.css": "9923eb608c01cf001501708e1c8df0bc", "static/js/element-ui/lib/theme-chalk/menu-item-group.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/menu-item.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/menu.css": "30fa354841214de1919e49d8e831a5bf", "static/js/element-ui/lib/theme-chalk/message-box.css": "6fe773d1292f0acbc9ddad9153548c58", "static/js/element-ui/lib/theme-chalk/message.css": "6ab057c82772aa70e8ecc9902d4284ec", "static/js/element-ui/lib/theme-chalk/notification.css": "875a37cf12d647c1dee9e7e467ea01fb", "static/js/element-ui/lib/theme-chalk/option-group.css": "b3a13247682f590bb17b55517326ec39", "static/js/element-ui/lib/theme-chalk/option.css": "1698a68c50ff2618face813daa89982e", "static/js/element-ui/lib/theme-chalk/page-header.css": "3508c570c80476d68b49a13d4c14e27c", "static/js/element-ui/lib/theme-chalk/pagination.css": "93a1866f64772a9d877796cc27f59e2b", "static/js/element-ui/lib/theme-chalk/popconfirm.css": "24183a243d4c79db8c383f296300a5be", "static/js/element-ui/lib/theme-chalk/popover.css": "4d19d78df7b0a3157772b86018648ee9", "static/js/element-ui/lib/theme-chalk/popper.css": "36fcdf5712174c8177fe2fcb73977ed5", "static/js/element-ui/lib/theme-chalk/progress.css": "a3d92e7241d275e11982945ad7c7e284", "static/js/element-ui/lib/theme-chalk/radio-button.css": "d126d35d880b72736a6d24b94170b9eb", "static/js/element-ui/lib/theme-chalk/radio-group.css": "86af00fe6b72f9005bf39e3481691586", "static/js/element-ui/lib/theme-chalk/radio.css": "a3110894bf315e7eedf9111a951840f6", "static/js/element-ui/lib/theme-chalk/rate.css": "0f33a694a0e389f05cd24aeec4b1765e", "static/js/element-ui/lib/theme-chalk/reset.css": "3db1afd65a0400d0d643f705d44250f5", "static/js/element-ui/lib/theme-chalk/row.css": "b1ac86fc178549496bb90eec4ba5da5e", "static/js/element-ui/lib/theme-chalk/scrollbar.css": "23449b1c81727518ce5d914579ee6174", "static/js/element-ui/lib/theme-chalk/select-dropdown.css": "f95dc3aef5e200e495d51f00a81b4e20", "static/js/element-ui/lib/theme-chalk/select.css": "d16e8c09f8fa26ec7d03b5652cdbb797", "static/js/element-ui/lib/theme-chalk/slider.css": "c7db7b54589f0ba57dd2b3a1057bfb90", "static/js/element-ui/lib/theme-chalk/spinner.css": "5b5d1e5f3e4422c063adc569a8346fca", "static/js/element-ui/lib/theme-chalk/step.css": "cf252484e262941d6d6c081042e38074", "static/js/element-ui/lib/theme-chalk/steps.css": "ac6f8637955a659b97ea3548a20fcfba", "static/js/element-ui/lib/theme-chalk/submenu.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/switch.css": "dbe3a9344c8c3594fce88715c118edf9", "static/js/element-ui/lib/theme-chalk/tab-pane.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/table-column.css": "e11267cebea4826211fbfbc1f88c6ec8", "static/js/element-ui/lib/theme-chalk/table.css": "facf1d994f3fda680e22163b2e4148c2", "static/js/element-ui/lib/theme-chalk/tabs.css": "ec342796738d9d1a87137c0451c6b784", "static/js/element-ui/lib/theme-chalk/tag.css": "52178a68247a9fe015ccb5e965ce3fd3", "static/js/element-ui/lib/theme-chalk/time-picker.css": "7a25549a612c52a82dcc265f20566f0c", "static/js/element-ui/lib/theme-chalk/time-select.css": "a230a27e1eae140dc38e608de2651ba6", "static/js/element-ui/lib/theme-chalk/timeline-item.css": "743e68350200b578c75506697a7f5789", "static/js/element-ui/lib/theme-chalk/timeline.css": "b5d2b9a92b38005cff9a5752246992e1", "static/js/element-ui/lib/theme-chalk/tooltip.css": "4722109edb63d5c732ca61ecb3d47175", "static/js/element-ui/lib/theme-chalk/transfer.css": "14928e12a3985c3d0e516e6799601d65", "static/js/element-ui/lib/theme-chalk/tree.css": "5f5d85942e52967f08d4f1698cee2683", "static/js/element-ui/lib/theme-chalk/upload.css": "077d8dc834e6d88194879db89ff54bc5", "static/js/element-ui/lib/theme-chalk/fonts/element-icons.ttf": "4b1a4d348209ad29243b0a042de1b557", "static/js/element-ui/lib/theme-chalk/fonts/element-icons.woff": "f717deee44e7fcc757c6c1ade5cce443", "static/js/element-ui/lib/transitions/collapse-transition.js": "354e780b8a86771cd737928485f7d798", "static/js/element-ui/lib/umd/locale/af-ZA.js": "0fc2ac6b8936f2cd76256d2672b8b426", "static/js/element-ui/lib/umd/locale/ar.js": "18bbfc189ca1a3da137e560c112e0aba", "static/js/element-ui/lib/umd/locale/bg.js": "2c6245f699c62437fa7ee0d163cdd65c", "static/js/element-ui/lib/umd/locale/ca.js": "f494da9c984efa37bb7aff8be66d026e", "static/js/element-ui/lib/umd/locale/cs-CZ.js": "6554aa484f5ec7b4d1e3ad176cc69b71", "static/js/element-ui/lib/umd/locale/da.js": "0fb807a6d9d65b4d438c1e8563e369c4", "static/js/element-ui/lib/umd/locale/de.js": "835ff2b17f107ff50be524805b201f3c", "static/js/element-ui/lib/umd/locale/ee.js": "a363d6f90a0acfea8f31f1a6be49aeee", "static/js/element-ui/lib/umd/locale/el.js": "e9b50aee66128071682125d1e9d98c23", "static/js/element-ui/lib/umd/locale/en.js": "eccc9db8251b0ef6f69337f39234d423", "static/js/element-ui/lib/umd/locale/eo.js": "373c79e4396edec41165343f5a889f99", "static/js/element-ui/lib/umd/locale/es.js": "f33d213c3974b2acdc167886b61f2e47", "static/js/element-ui/lib/umd/locale/eu.js": "62bcc16524b72c7094a20162832b36b5", "static/js/element-ui/lib/umd/locale/fa.js": "273a1e35316564355fed5eb3bfeb2ab8", "static/js/element-ui/lib/umd/locale/fi.js": "9f9889caf4adcffc6cc78c229c457a7a", "static/js/element-ui/lib/umd/locale/fr.js": "ecd5286ed9b8faf83a56bbe449df9e00", "static/js/element-ui/lib/umd/locale/he.js": "db9119fe9dc05c872421bf4758de2eca", "static/js/element-ui/lib/umd/locale/hr.js": "9396ffd6cc82eeb3a09ce0d8ed1dd483", "static/js/element-ui/lib/umd/locale/hu.js": "1e6962cb413392e68dae16680bcd6370", "static/js/element-ui/lib/umd/locale/hy-AM.js": "85701cecfaf21f5813aeebe91b2b7560", "static/js/element-ui/lib/umd/locale/id.js": "1b99f644e81cf63fc7cecd34746dc66e", "static/js/element-ui/lib/umd/locale/it.js": "4fd6e8ba9c2d5fe7c9e74f753b95379c", "static/js/element-ui/lib/umd/locale/ja.js": "567701dd5feb9804153acefabfaa44b9", "static/js/element-ui/lib/umd/locale/kg.js": "4b4067ad2fb93f84a6c9e8c35de483e9", "static/js/element-ui/lib/umd/locale/km.js": "c69fc83984c03a7a4f04cdc6967cca58", "static/js/element-ui/lib/umd/locale/ko.js": "9bdf5bf54251017cb60636c8b4fe0ecf", "static/js/element-ui/lib/umd/locale/ku.js": "581e50d5471c9ec4c535ebcdb5ba68c8", "static/js/element-ui/lib/umd/locale/kz.js": "3113fafaec1e5f4ae75275df004a438f", "static/js/element-ui/lib/umd/locale/lt.js": "1f9ab75d239d73dd6450d20719d14e4c", "static/js/element-ui/lib/umd/locale/lv.js": "06ed0fdc7d15aaaa254ddafd5cc2d984", "static/js/element-ui/lib/umd/locale/mn.js": "a30050261567e96fcae3eb8184077738", "static/js/element-ui/lib/umd/locale/nb-NO.js": "8f696776c06ee3e12e43a4cdd6cce736", "static/js/element-ui/lib/umd/locale/nl.js": "99258a51fa6d3bb2eaf24687b08681b6", "static/js/element-ui/lib/umd/locale/pl.js": "727bf2dd0d8c2917c7d7b67651fa4e2c", "static/js/element-ui/lib/umd/locale/pt-br.js": "9b175360cb8d7199055506a7f57e7d4b", "static/js/element-ui/lib/umd/locale/pt.js": "1626947603ba9812628e5388526e02e7", "static/js/element-ui/lib/umd/locale/ro.js": "fb9eef3d28ce9ecc7ad83b41caf17864", "static/js/element-ui/lib/umd/locale/ru-RU.js": "02776c80fbb8f65298ef9156d79d11ee", "static/js/element-ui/lib/umd/locale/sk.js": "34457b2d2b6c75a8025a0eba36931523", "static/js/element-ui/lib/umd/locale/sl.js": "2d186805c45ce5292f9dfa2f2255677f", "static/js/element-ui/lib/umd/locale/sr.js": "57009e2dc4bc4de61794b29c659a132d", "static/js/element-ui/lib/umd/locale/sv-SE.js": "315c4a945b2b89e206ade38990a7e9f9", "static/js/element-ui/lib/umd/locale/ta.js": "da94b97bf773e49867bdd4c91b738cdf", "static/js/element-ui/lib/umd/locale/th.js": "76dde843e7f874f2e45cc1ea1dadc638", "static/js/element-ui/lib/umd/locale/tk.js": "710dfdc6ba97ebc5b6ed5e5c6ba40c79", "static/js/element-ui/lib/umd/locale/tr-TR.js": "2af8060b6746a342827a94ee1d45972c", "static/js/element-ui/lib/umd/locale/ua.js": "c2240b43e3d70e4b2c25db2580d5b9ad", "static/js/element-ui/lib/umd/locale/ug-CN.js": "6ddaea800aed2638e2d02b06322ceb07", "static/js/element-ui/lib/umd/locale/uz-UZ.js": "ddb5d919cc3756722a2980f995086225", "static/js/element-ui/lib/umd/locale/vi.js": "764578d2497752bec40d8cf3982501d5", "static/js/element-ui/lib/umd/locale/zh-CN.js": "af0b3424682dedebc3064a17c8c8f047", "static/js/element-ui/lib/umd/locale/zh-TW.js": "ee9c9d202116bd367a54b6542b41e9ac", "static/js/element-ui/lib/utils/after-leave.js": "5b6eab2e19137f22b7f155c64c127b5a", "static/js/element-ui/lib/utils/aria-dialog.js": "584e07ba3bcd14fe02d84d456461a381", "static/js/element-ui/lib/utils/aria-utils.js": "bccd0c0998fa688607a28aef5d3954be", "static/js/element-ui/lib/utils/clickoutside.js": "1d2c86f338286924e65ba0beb1e9275b", "static/js/element-ui/lib/utils/date-util.js": "f7bc86e6068c4c4f23c86f7d6fafce77", "static/js/element-ui/lib/utils/date.js": "63bca9e7033fcf66fa9b93ccaf4dad0f", "static/js/element-ui/lib/utils/dom.js": "7a5bf584e8d01360f759c1a78305219c", "static/js/element-ui/lib/utils/merge.js": "48d430909e3583f3010bf4e844bd1163", "static/js/element-ui/lib/utils/popper.js": "f90f278e90fdff8f4afd382145b2db9b", "static/js/element-ui/lib/utils/resize-event.js": "96628f5f98b18fee3c4972e8f39b6481", "static/js/element-ui/lib/utils/scroll-into-view.js": "a2847b7f5d7ae6860f66669f645ce861", "static/js/element-ui/lib/utils/scrollbar-width.js": "6dd9aafa50bf2028e1fa542feb995f89", "static/js/element-ui/lib/utils/shared.js": "e9becb8ca1ad71a5d64d989e28778b11", "static/js/element-ui/lib/utils/types.js": "b76cda09d6b97c9598681b372f3efd6e", "static/js/element-ui/lib/utils/util.js": "c4013004a996dd7d030f779c721c7c2d", "static/js/element-ui/lib/utils/vdom.js": "a72f60b0134bd47f49c537ad28982bad", "static/js/element-ui/lib/utils/vue-popper.js": "ea42e858259fa582acfadc15265b1d30", "static/js/element-ui/lib/utils/menu/aria-menubar.js": "172afd68add2537d32f299e5369c8ad8", "static/js/element-ui/lib/utils/menu/aria-menuitem.js": "2c51a053252827845cce692634443771", "static/js/element-ui/lib/utils/menu/aria-submenu.js": "2d5f39c9bc644388bc57563ee8ecae87", "static/js/element-ui/lib/utils/popup/index.js": "8df7b5c153e9187359c20ab602ad6740", "static/js/element-ui/lib/utils/popup/popup-manager.js": "68856d04bb10de1e999fc10693a73999", "tests/README.md": "bad9b5c1d18429a006532bb7faebd117", "tests/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/assets/\u5168\u90e8\u6d4b\u8bd5.png": "dbed30a78bcec42c7523471fcf514700", "tests/assets/\u6253\u5f00pycharm\u7684pytest\u529f\u80fd.png": "b849c96411e8d82fc8a50f0ff816c1f7", "tests/assets/\u6267\u884c\u6d4b\u8bd5\u7528\u4f8b.png": "39116cca185c73ae3d4517ee0f84133a", "tests/assets/\u6d4b\u8bd5\u5931\u8d25.png": "d04228741f3da0b6e977211fe41c6438", "tests/assets/\u6d4b\u8bd5\u6210\u529f.png": "6669c0c45442db35ab92b06bf9993c06", "tests/test_algorithms/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_algorithms/test_linear_algebra/test_linear_space.py": "6df796d85cb787fd7f045a0ab5c63a1c", "tests/test_algorithms/test_linear_algebra/test_matrix_cross.py": "4b574f0a6131847d802761bd83a6d6ae", "tests/test_algorithms/test_linear_algebra/test_matrix_determinant.py": "041bf9f620c2dcb093bf20cf4ed20c72", "tests/test_algorithms/test_linear_algebra/test_matrix_diagonal.py": "b8afb32ca59752683d9c605a9885e2f5", "tests/test_algorithms/test_linear_algebra/test_matrix_divide.py": "2b63a05c372c145b05920fe5c8e7ee1d", "tests/test_algorithms/test_linear_algebra/test_matrix_dot.py": "3f80ff34c4b639fc33344ce8c23ab153", "tests/test_algorithms/test_linear_algebra/test_matrix_eigenvalue.py": "0edcf7066a5e3143d089a0222d8659be", "tests/test_algorithms/test_linear_algebra/test_matrix_inverse.py": "8f502aabb41e4faaae06663c45fe52a9", "tests/test_algorithms/test_linear_algebra/test_matrix_multiply.py": "45423c811a4db180b269945908595383", "tests/test_algorithms/test_linear_algebra/test_matrix_transpose.py": "d92dc7600a77f090f5f897dff9d099e4", "tests/test_algorithms/test_linear_algebra/test_ones.py": "faa005c5fce0def31dcc4aa83861f4de", "tests/test_algorithms/test_linear_algebra/test_reshape.py": "ff0f15e2ba03d7bd3ee086deab31f9d0", "tests/test_algorithms/test_linear_algebra/test_shape.py": "29a411d526e34d9070155e1a198195db", "tests/test_algorithms/test_linear_algebra/test_zeros.py": "5c8802a5d2bd87dc00e67e7f2f892c9e", "tests/test_algorithms/test_linear_algebra/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_algorithms/test_statistics/run_distribution.py": "fd81a148edd8cb40ed4390dde9c9af9d", "tests/test_algorithms/test_statistics/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_data_adapter/run_dump_load.py": "4b7572b7ce9b3c6ce0ed6d6811b64e6b", "tests/test_data_adapter/test_array.py": "717162f0f2da526e3a18456b12dfbd10", "tests/test_data_adapter/test_data_frame.py": "e56b02672c2d979b495c24fdc113eafc", "tests/test_data_adapter/test_detector.py": "92495e21a9b05068d73833d4d6a8f3f9", "tests/test_data_adapter/test_universal.py": "f69c1055e69f2e844596a3b80ab20c88", "tests/test_data_adapter/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/__init__.py": "4277383d96a0b390d7299069af45c987", "tests/test_dev/test_doc/test_file_tree_node.py": "362ef3dedb9be7eca57248be44f93e3f", "tests/test_dev/test_doc/__init__.py": "d2b42ea8d4d60b51c772335633e18078", "tests/test_dev/test_doc/test_case_for_file_tree_node/main.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/README.md": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/_exclude.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir/core1.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir/test1.txt": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir2/test2.txt": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir2/__init__.pyw": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir3/core3.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir3/test3.txt": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_pmgwidgets/test_maccabe/mccaberun.py": "17cdb5bf5d1157aeba779172c294ad95", "tests/test_pmgwidgets/test_maccabe/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_pmgwidgets/test_normal/test_display.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_pmgwidgets/test_util/test_util.py": "8db14adf951ddecf73952d6841b2aa93", "tests/test_pmtoolbox/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_ui/test_ipython_support.py": "4e109800eedb8113b7da674b05e08bac", "tests/test_ui/test_pmgpanel.py": "a8d7ede78b58ae7be4f738f322f9be98", "tests/test_workspace2/test_data_manager.py": "bcf209b27357532443d75b3c368e68c7", "tests/test_workspace2/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "utils/environ.py": "b8bfeb3f35922c0337c197abea87829f", "utils/path.py": "85aaec262d53f26eb142756401fee783", "utils/platform.py": "2da872dbe9abece68ed95e204c2ff655", "utils/__init__.py": "2c2b18b68f16043c20bc46c5a764dbe9", "utils/debug/debuggerprocess.py": "0fe81aa6f61d81df42ef9afcc2d25bd5", "utils/debug/pdbtest.py": "b79fc6b32634f06788247e8d58402d41", "utils/debug/pmdebug.py": "d384421931a8e48e26cab0fba3c4241c", "utils/debug/test2.py": "b53f37a4994356be41f962afcb0a0b10", "utils/debug/__init__.py": "350446184463764465845852bd3ef50e", "utils/doc/file_tree.py": "36bd540c3b4c32b184dee9f2182f0819", "utils/doc/index.rst": "2488cd21dbd21544665f802ab3f0045e", "utils/doc/rst_generator.py": "fca7802a37b44b4a62924aa7521d6a2a", "utils/doc/__init__.py": "892fd1aca5b1cae0f580cd809094dad2", "utils/doc/doc_guide/choose_position.md": "482843264c94f2bd50c448fec43a3cc3", "utils/doc/doc_guide/compile.md": "eeee41c8eefce5234f176c76a0b15ee9", "utils/doc/doc_guide/index.rst": "0f1e7af0e52ee3073edf77f0eb9b0de6", "utils/doc/doc_guide/md_guide.rst": "809611fdb43d6b05edfadf5cc3a8c7c7", "utils/doc/doc_guide/rst_guide.rst": "8fa7462d9a5b56d6c5a67646e2ba4acc", "utils/doc/doc_guide/use_chevereto.rst": "3cb77997069a4c98b34360c9490f5733", "utils/doc/template/module.rst_t": "3af408a56d3d4adb3acfe09f653128ac", "utils/doc/template/package.rst_t": "801c621e304bc973e95f2e2519de04f8", "utils/doc/template/toc.rst_t": "a7cf368655e8fd91249cee24406aaff8", "utils/doc_figures/\u5e15\u7d2f\u6258\u56fe.jpg": "17c5690d782d1554a0eee747b496dcac", "utils/doc_figures/\u5e94\u7528\u5de5\u5177\u680f.png": "52d6b3bbabc43c2d368ce7748e8a9c7d", "utils/doc_figures/\u5f02\u5e38\u503c\u68c0\u6d4b": "49f442e7d72e05764e8353e36a824637", "utils/doc_figures/\u6807\u51c6\u79d1\u5b66\u8ba1\u7b97app\u754c\u9762\u539f\u578b.png": "5a6aa5719ae6d2ab0a3e2deeb4d9f841", "utils/doc_figures/\u9879\u76ee\u7ec4\u6210\u7ed3\u6784.png": "7d7896300a5e62d2fad7062bcba88aee", "utils/io/file_import.py": "d41d8cd98f00b204e9800998ecf8427e", "utils/io/piputil.py": "d45b0ab10e658c8bd1a260e7a7b0daca", "utils/io/__init__.py": "e9846ca05e2cf2393e2d36e130f7e84f", "utils/io/dbconnect/dbBaseTool.py": "964e1d0151fac429242dfdd163d6693b", "utils/io/dbconnect/dbConnectAccount.pkl": "410722595449e489f364425f6cd8c240", "utils/io/dbconnect/dbutils.py": "a83eac2b48d43e4bbb144b6ee30ac5a6", "utils/io/dbconnect/test_dbBaseTool_add_connection.py": "9777701d02960adae45e4ebc5afdabbc", "utils/io/dbconnect/test_dbBaseTool_query.py": "637037577573d38544ed3a801e4a8238", "utils/io/dbconnect/__init__.py": "5111d7ba85f86397e7318a88362fd502", "utils/io/fileutil/compressutils.py": "d79d280d2f6ddc66de6687a7b8201338", "utils/io/fileutil/encoding.py": "f70ddeb46e587c343134428e3a1d9b6c", "utils/io/fileutil/search_in_path.py": "3a369957683bec55df7e6e63cb3ce499", "utils/io/fileutil/variableutils.py": "e980e969d1f33da86e71e1207f282fe5", "utils/io/fileutil/__init__.py": "86e37c6a62dd940b6add84e2f3464697", "utils/io/fileutil/source/encoding/test_ascii.csv": "930b9d198c8fe4cf62cb40bf86deb059", "utils/io/fileutil/source/encoding/test_gb2312.csv": "b78fff031a5e71e40eaa348a628dd45e", "utils/io/fileutil/source/encoding/test_gbk.csv": "b78fff031a5e71e40eaa348a628dd45e", "utils/io/fileutil/source/encoding/test_utf8.csv": "b3c2e6ec634b81b2ebd348a3983fc165", "utils/io/fileutil/test/test_word_in_line.py": "0e2699f99428b73b86fdeb3fca2ee3b3", "utils/io/pmserial/pmqtreadserial.py": "7f31cf4aa590690a8c9e53b4d3599ce8", "utils/io/pmserial/readserial.py": "5cafed26a707eecdac54883dca6d2c33", "utils/io/pmserial/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "utils/ui/translation.py": "a75ca908fa328d348adc9106554e35d7", "utils/ui/variableselect.py": "6623e3057f2291f6ad61ee1e55ac58c4", "utils/ui/__init__.py": "05099d0c6cd09966cb7621c9e57c2f13", "utils/ui/app/pmbasicapp.py": "a8cf494179389639ee3a68e39167cdc1", "utils/ui/app/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "utils/ui/app/test/basicapp_abnormal.py": "74d0fab0335ac9847dd589275e304c64", "utils/ui/app/test/basicapp_pareto.py": "522a51d208d3d32c68e9de0267a9f1fb", "utils/ui/src/balance.png": "0e13e9c8fd6853eedef19ac2ca0d9f01", "utils/ui/src/chemestry.png": "be3234787dcd5ad6b8c03cce7d142dfd", "utils/ui/src/electricity.png": "390b497d0687540630694599edc71dac", "utils/ui/src/engineering machinery.png": "099cdd52b97926617032ff66487cc311", "utils/ui/src/fracture.png": "e2dcccc7d7751d10b0e439a9a8b8f7d3", "utils/ui/src/function.png": "0a6dd73740c6800c913a5dc8556539cb", "utils/ui/src/gauge.png": "167e1ea4af8c9e504c30e734e7761488", "utils/ui/src/histogram.png": "231deddcfe9222512173e3d0b7829728", "utils/ui/src/ic_common_\u751f\u7269&\u81ea\u7136.png": "351343f4046d6d2c7a3405065d3a66a2", "utils/ui/src/loadwave.png": "95280a0b2dbc61a6c817d40e705f0379", "utils/ui/src/log.png": "117ef9da5ed765f2cc31f65bd2a49db9", "utils/ui/src/math_1.png": "a62c3b980b0f9332c56452c2dfac5a8c", "utils/ui/src/math_2.png": "d98240ad143bbc7cc739cac16b18e60a", "utils/ui/src/math_3.png": "0dbbea9ccc5e7cfa409a65e7ab0d16c4", "utils/ui/src/mechanics.png": "e730af4dc4083d52675826590d05dfa8", "utils/ui/src/money.png": "078a6fec99543566f7abd7f9d235cfc1", "utils/ui/src/motor.png": "cb1071e863f9d4108d509a1f0a29ce8e", "utils/ui/src/motor_2.png": "b71bdb729289a54a9330af929f477b39", "utils/ui/src/normal_distribution.png": "18785959972c6076e3201e41ba68d971", "utils/ui/src/physics.png": "67a6b64cee517d8678e2001ebd2af37d", "utils/ui/src/physics_2.png": "75796555027a4edc1bf441a69800de78", "utils/ui/src/plot_1.png": "484e1553dbd4d3b51dc986af7da9126d", "utils/ui/src/plot_2.png": "fa13d212836a556060df8fbee4dd8593", "utils/ui/src/plot_3.png": "bf548bcb5eba63b655fcaafa9af1e50e", "utils/ui/src/plot_4.png": "63658bb0aa5e10850d4cbcefb31bc5ec", "utils/ui/src/roboarm.png": "adc612a5fbe26cbc1ef9964078be30d0", "utils/ui/src/run.png": "fcf7e23f264801b79df841dabdab9417", "utils/ui/src/run_cell.png": "e40eb239205653b61fa2ba5a57f8d378", "utils/ui/src/settings_1.png": "4dc1f5c80740868b1cf0a4f50909dc20", "utils/ui/src/settings_2.png": "e8cd30a0264a6ee00fbe461e72a9fb6e", "utils/ui/src/settings_3.png": "2917d7c1b222d2e235a85f7e677935ca", "utils/ui/src/sinsidual.png": "371e0fdb35b52764d7d9c17774c36a07", "utils/ui/src/statistics.png": "3e1dd67456f93098bc0276c3b37e1b45", "utils/ui/src/statistics_2.png": "524756b6420d9a60cec2212e23112dbc", "utils/ui/src/statistics_3.png": "737c1756516487220aafa992210374bb", "utils/ui/src/viberation.png": "49ccb24861c08a92834e814bf8ea4767", "utils/ui/src/wave.png": "402b0e16aaf792596c734ee454ba25dd", "utils/ui/src/wave_2.png": "ce59ead6a036cca68b02950c9bdcb91a", "utils/ui/src/wave_history.png": "566e2a0ac92bf12f6291e0dd4d272091", "utils/ui/src/\u5206\u5b50\u751f\u7269\u5b66\u5e73\u53f0-\u7070.png": "6a5127ef0f94e54506455e0dd5d8d712", "utils/ui/src/\u751f\u547d\u5065\u5eb7\u4ea7\u4e1a_2\u751f\u7269\u533b\u836f.png": "c6f652bcc942e7c3c244d06726fcf063", "utils/ui/src/\u751f\u7269 (1).png": "9f4b502be694761d44c106a09a61be19", "utils/ui/src/\u751f\u7269 (2).png": "58da036ee4e5ead077590ebb65b80460", "utils/ui/src/\u751f\u7269 (3).png": "9cf816bfb76439a5f366e9beca9bea92", "utils/ui/src/\u751f\u7269 (4).png": "3b699f6ca234d635a8bc3274a7b44020", "utils/ui/src/\u751f\u7269.png": "4bcc3068ba68359848f293c23ac0b670", "utils/ui/src/\u751f\u7269\u8bc6\u522b (1).png": "021f770979cb264bc827ac041bab972b", "utils/ui/src/\u751f\u7269\u8bc6\u522b.png": "d73c19821dbdc9b46facd404afda33f4", "utils/ui/uiutil/datashowutil.py": "a88e7ef43145082c8278f6273e1bfb05", "utils/ui/uiutil/workspaceutil.py": "4a74ba5a7a176257d0e659d4be892301", "utils/ui/uiutil/__init__.py": "d611c6031ffff2a4570872c525a95660", "utils/ui/uiutil/formatting/textformat.py": "dee7f3523b301ceb8bdb0b35da44e456", "utils/ui/uiutil/formatting/__init__.py": "73a717186f47f07e16e0dcb8ed4ed76d", "widgets/frame_less_window.py": "e2a0208d327013c21bd75c71535d05af"}} \ No newline at end of file +{"files": {"app2.py": "c7e061a1c028e828cb2bd76c46a7a858", "check_dependency.py": "35b3112cf9cb50d31be5f45c8ae3d179", "config.ini": "7f83e4b78df1a293343baeaaf5881203", "dist.py": "e3b17ce9bea81da8f9b4582ee78fe6cd", "LICENSE": "b5b6bed06dd8ed68f00c26d0b4cede89", "load_modules.py": "6bfcd0281e7ab654b27851cc25c2a31f", "pmgui.py": "54472e38004442ee8209f732e013e09a", "pyminer.pro": "148c684e721b44a4a29ec4c700e95c49", "pyminer.py": "8676961ecd2c4d293db44b2e8e962315", "pytest.ini": "7e1ac696b90974c21fcaed50d881ebf1", "README.md": "618338896f514c4f446bd0142edce65a", "requirements.txt": "bdc7ed15fe5b96b65882b02a3ce91877", "requirements_dev.txt": "6e23539b6bc3cd698e6f9713e598e2a9", "requirements_linux.txt": "32193efcf05f692095c24da7263ea8de", "requirements_mac.txt": "a1fdae24ed40656c9879626a8130c59c", "run_before_commit.py": "067f08926721cb4679e63604fa3528c4", "update_translation.py": "afcbf3f7c930b65e44c1bed2430d4284", "\u5f00\u53d1\u6307\u5357.md": "791025c5ef81f9b6a334e4f6d39e9cb6", "\u5f00\u53d1\u8fdb\u5ea6.url": "e47baa8f175a5766ae709b9e8d951b53", "configuration/config.ini": "56859fc0e799ae26d49fd7a41cfe0532", "configuration/default_settings.json": "7bdc7e60ac0fe14d849afb297fb9db2f", "configuration/extensions.json": "cb8f6f2bf8cdccae988f3cb589282f7c", "configuration/settings.json": "81f0b5a2f4f719f23e247b92ee72fff7", "core/__init__.py": "f0d32e8fca7a2398789eb9b0537057ce", "core/algorithms/index.rst": "493e85a5e6744431a7755a7d33f9979d", "core/algorithms/__init__.py": "489b6a395b7e79f2cab1f8c46eec73e1", "core/algorithms/calculation/digits.py": "b14e19d1913de492b116201b5f5c6c27", "core/algorithms/calculation/__init__.py": "6fb7087712399aff01a8a820cd77a474", "core/algorithms/linear_algebra/array.py": "f1e96ef9af8aaf15aaef29c863b3663c", "core/algorithms/linear_algebra/exceptions.py": "cc1a682728cd86a67aaf4b03a27c3e8a", "core/algorithms/linear_algebra/linear_space.py": "0d12ac5250106fc5fd0270b502ceb6e1", "core/algorithms/linear_algebra/matrix_cross.py": "ba1e06a57db80bcaa9509d6e733c1df9", "core/algorithms/linear_algebra/matrix_determinant.py": "23a47100204fd2f73f43cc201113f5e5", "core/algorithms/linear_algebra/matrix_diagonal.py": "ab7c7e101f46ebe7ed4bc73f542f111a", "core/algorithms/linear_algebra/matrix_divide.py": "01ec01fbb97bca37f22f719f3dc3d089", "core/algorithms/linear_algebra/matrix_dot.py": "67d721785420cd3f3344ac69bdb6ac32", "core/algorithms/linear_algebra/matrix_eigenvalue.py": "43b83077241aa32acdff04c8489363f5", "core/algorithms/linear_algebra/matrix_inverse.py": "f4c6ec6129a07ea821aff5b6b84f2aa6", "core/algorithms/linear_algebra/matrix_multiply.py": "067a30b30ff9be6d9b9123a75a30abc9", "core/algorithms/linear_algebra/matrix_transpose.py": "d63b39c00f437fab1540f331876444ab", "core/algorithms/linear_algebra/ones.py": "f7c3f42cde513ec5e91bc24dbc068d62", "core/algorithms/linear_algebra/reshape.py": "54f0d073af724f1c3c474e59940c6f72", "core/algorithms/linear_algebra/shape.py": "863cf7a043ab1d82f02a3a1279632b57", "core/algorithms/linear_algebra/zeros.py": "161e8f970d39d7bb2135852051a18005", "core/algorithms/linear_algebra/_utils.py": "8864ac424626bc7804d31b3e0ef3905f", "core/algorithms/linear_algebra/__init__.py": "a1ff4909241d1462727c33e5a8038cbd", "core/algorithms/linear_algebra/\u5f00\u53d1\u6d41\u7a0b.md": "54daed08712378a9ad4208884b65088b", "core/algorithms/linear_algebra/assets/code_hint.png": "013aecfff792430d0d3fac227bfcaaf4", "core/algorithms/linear_algebra/assets/configure_test_utils.png": "952e07a65e50b2fbd9666f8544ac20fa", "core/algorithms/linear_algebra/assets/define_function_framework.png": "4c921fffe0c7b10e5fb01e02d8f7a353", "core/algorithms/linear_algebra/assets/demand_change_file_change.png": "537d6591e1833d43c9fd6fc30cd1b2f6", "core/algorithms/linear_algebra/assets/finish.png": "d4c5fb995d723b15072691707b0ed72e", "core/algorithms/linear_algebra/assets/fix_testcase.png": "b1f4c682efcfb3f23e32ab085cc85b50", "core/algorithms/linear_algebra/assets/function_explanation.png": "c7bc75487b2abe6a536fc91a880d5f44", "core/algorithms/linear_algebra/assets/function_explanation_file_change": "15ade2607376365bb31c38a79d46ea89", "core/algorithms/linear_algebra/assets/function_file_change.png": "5b961672e09adba22805a5098e1bbbd1", "core/algorithms/linear_algebra/assets/function_workspace.png": "2bf5321cda6e0e1ac939895233e7a833", "core/algorithms/linear_algebra/assets/help_doc.png": "0e2f87b116e1fcb517cc63d5aa8e3d21", "core/algorithms/linear_algebra/assets/import_in_global.png": "259b30531b0ab509d4b93acec5cf3db1", "core/algorithms/linear_algebra/assets/import_in_sub_pkg.png": "622f44c6ec4738254d8585ae341b945e", "core/algorithms/linear_algebra/assets/run_in_pm.png": "4a64482cdd2125276501a4190848352c", "core/algorithms/linear_algebra/assets/run_test.png": "0d9abff3ca8a85fa0c3f58aef6ffd2d3", "core/algorithms/linear_algebra/assets/testcase_file_change.png": "caeda394883222a82b6dabd224fe0f0c", "core/algorithms/linear_algebra/assets/test_error.png": "a6b5a1a95cdc1fc21ce522f35da111aa", "core/algorithms/linear_algebra/assets/test_pass.png": "7792d7ee583bdb629ea41cec3a5cbf07", "core/algorithms/linear_algebra/assets/write_doc.png": "5349a5f4df8ed7a982ac5c86298ce715", "core/algorithms/linear_algebra/assets/write_doc_file_change.png": "34753c6a77cc470710669f518cfb3055", "core/algorithms/linear_algebra/assets/write_function_file_change.png": "2f5d964072df62b5a915fc14a41597b9", "core/algorithms/plotting/graph.py": "1728aea4907b92b67fe91ad742a3083f", "core/algorithms/plotting/graph_configs.py": "614cbeae8b696da2e8fe983e3c87a5f9", "core/algorithms/plotting/__init__.py": "9f90fe07592b24c4a09ed9230b6c093d", "core/algorithms/pyminer_util/communication.py": "216e0f4b1c8b00d535f0585c7fa1add3", "core/algorithms/pyminer_util/__init__.py": "de143e26c42af15d96c77f52383561a0", "core/algorithms/statistics/__init__.py": "4bba02c1df562ce45ccf5dfc988ab576", "core/evaluation/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "core/evaluation/woe/config.py": "9ac12638758e61c547224a0b4cc5e5f8", "core/evaluation/woe/eval.py": "62ab9836e64b475b07e0ea5cccf3aeb0", "core/evaluation/woe/feature_process.py": "e12d77b446b6a75746499d909ca22ae8", "core/evaluation/woe/ftrl.py": "1e6dad2dfc172413104ef5b3fb25e88d", "core/evaluation/woe/GridSearch.py": "8b92ecf1226fa81972510b17aa4cc2c4", "core/evaluation/woe/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "core/evaluation/woe/tests/config.csv": "66f330fdc285911a52c4a65166eab04f", "core/evaluation/woe/tests/HereWeGo.py": "94d48377d8292b80d8f4929cf9162004", "core/evaluation/woe/tests/README.rst": "8f72b661abc5eaf059d05e603b1c705c", "core/evaluation/woe/tests/UCI_Credit_Card.csv": "afd3af2602d66d6ceb36cb04216f0ed2", "core/io/postgresql/psycopg2/compat.py": "7abef6e4534c7b625057e37289bc8c27", "core/io/postgresql/psycopg2/errorcodes.py": "b2346a81ec49de54caa4e32a5360076e", "core/io/postgresql/psycopg2/errors.py": "316dfc64e89c95715e974a31f96e18fe", "core/io/postgresql/psycopg2/extensions.py": "d7fc21cf847f2d12a60f56097e3eca2f", "core/io/postgresql/psycopg2/extras.py": "4d79c51ba46dc3285d9faf8789a37369", "core/io/postgresql/psycopg2/pool.py": "1b0403b2597557108c4c35a9bc568834", "core/io/postgresql/psycopg2/sql.py": "1b8ad7b5746ad2f514cbdd678954fee2", "core/io/postgresql/psycopg2/tz.py": "b70b2abdc56dc05e9c28993934bed8f4", "core/io/postgresql/psycopg2/_ipaddress.py": "e0ff64e2ae604224c8cd11d1bdb27003", "core/io/postgresql/psycopg2/_json.py": "38e03cf8ae626f8fa028ceb48dcdb960", "core/io/postgresql/psycopg2/_lru_cache.py": "5e2bc12517950812ccac51af1d61d8a5", "core/io/postgresql/psycopg2/_range.py": "46ff7ab96f96d7db81eee160f666cfa4", "core/io/postgresql/psycopg2/__init__.py": "36fa5f3355c7d7ea36b87d1cdda6afe4", "core/modelling/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "core/modelling/regression/base_regression.py": "461cde16f7769d88c386f6f142ec233a", "core/modelling/regression/knn.py": "9f0c137ed701a2d11325ae1c9da23caa", "core/modelling/regression/linear.py": "a7936db33b1faa26cdbdc53a4bb81dfc", "core/modelling/regression/linear_bfgs.py": "031491ee5d158dcc8d506458fd10dbdf", "core/modelling/regression/mean.py": "c494d914a7be950f81b073dcad1e8bdf", "core/modelling/regression/neural_network.py": "571fa4e8bdc730c503cda08b0afd1d41", "core/modelling/regression/random_forest.py": "33c3aa9f1300b805ef13dd96866ea114", "core/modelling/regression/simple_random_forest.py": "e8c180090ce051d2f57e94b98e30b3c3", "core/modelling/regression/svm.py": "f5547c9da4c71d06a1df162be1e51885", "core/modelling/regression/tree.py": "0bd5b05a252b233597b6ff7453881ebd", "core/modelling/regression/__init__.py": "5b1908d95bc0ac027b22c337ea12f21b", "core/preprocess/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "docs/make.bat": "0d5c4de56de1ea8fa10468d561de4d77", "docs/Makefile": "45ecc4dd568420521f285e291939ecf1", "docs/make_doc.py": "3710c825012f1dc2e8d4f5854622e186", "docs/PyMiner\u4ecb\u7ecd.md": "56012d9e37961de92ea165d227e8707b", "docs/THANKS": "ad97f1302bcf00e26a219a0801a0b34d", "docs/upload.py": "10534ab4011a82607ef2b0c2f6c1b599", "docs/source/conf.py": "86928f87e5b0a03cbdd58f6f8a87f55b", "docs/source/contents.rst": "cd9756a400d0aa68ef85e92394c58b25", "docs/source/contribute/index.md": "260363f4717c8db812dc5d9c2c5723f8", "docs/source/_static/css/pyminer.css": "4a98b74c6e7893114cabc72ef5c6b81d", "docs/source/_static/css/pyminer.css.map": "e82da77c9ca623f0acbf4cbc62d78cbd", "docs/source/_static/css/pyminer.sass": "e5940574b2a7af7e3b7c01c2fc600354", "docs/source/_static/css/README.txt": "6e9ef1827e9eaea7ca3831685d830c7d", "docs/source/_static/index_files/all.css": "242611f34a440c48c2e6405e91e01a71", "docs/source/_static/index_files/all.js(1).download": "d7b3138b22aac6df42d86c92e36763ba", "docs/source/_static/index_files/all.js(2).download": "83006561af55b7a96dd7e17d34ebfe8a", "docs/source/_static/index_files/all.js.download": "39bebcf34d45ccab4d08bfb31b684294", "docs/source/_static/index_files/check_data.png": "e44471c2514f8a048df2a89a9df2e795", "docs/source/_static/index_files/code.png": "814df667bb94b7d2ae844d938ec916b7", "docs/source/_static/index_files/font-awesome.min.css": "ea6cc550de5339fc787f1e041363e544", "docs/source/_static/index_files/ico_mailme_01.png": "c40acf63e04064714b98a30a92984868", "docs/source/_static/index_files/main.png": "1b6f8a5331f0c5954a86b9024f070568", "docs/source/_static/index_files/modernizr.js.download": "4fae2a90728c528aa148c31466b7ed39", "docs/source/_static/index_files/normalize.css": "ed3146b9b1ec5eecb132a21916d0afe5", "docs/source/_static/index_files/robot.svg": "ba2b8a892fc5457a02829ba0b2caf3da", "docs/source/_templates/index.html": "66315ce66e29f04ce356a9b8b0d41ac8", "examples/HereWeGo.py": "d94883e4b2545ccfec29c1e76aebb982", "examples/README.md": "d49b56a1fe9a7ef2530943a5848fac88", "examples/README_ZH.md": "ac49a6e35c2518cac510ee6920c840da", "examples/UCI_Credit_Card.csv": "afd3af2602d66d6ceb36cb04216f0ed2", "examples/woe_rule.pkl": "cc2695e5f41ac2679a2040e15ff9463e", "examples/datasets/air_quality_no2.csv": "c27e6437bf25787c881d0d5f57e10233", "examples/datasets/bankloan.sav": "b5e78f9be79d7ba44c4fe5ac69cddc02", "examples/datasets/boston_house_prices.csv": "6454dba73c425c66b50d5206ed45f1a0", "examples/datasets/brown-selected.tab": "9e43112b53c6f6c78fa0b2645ace506d", "examples/datasets/brown-selected.tab.metadata": "337569fc2132e37108b428b9b082cfe9", "examples/datasets/cars.sas7bdat": "073898a0487cde27abd7155461c564be", "examples/datasets/car_sales.sav": "7b2487624eb4ffb893812706d30b0542", "examples/datasets/ccpp.csv": "20372480cb1e06f4cb99e46a0bd759a4", "examples/datasets/class.sas7bdat": "6e69aeb1f12de8d3fc46a64cbd4dc786", "examples/datasets/conferences.dst": "78dc681ceec57ee82dbf1951f11fa758", "examples/datasets/datasets.info": "19934e0d167a3128a09c493b9aeb031e", "examples/datasets/diabetes.csv": "8523f75b2f041c08542910b7ea3a8e84", "examples/datasets/heart_disease.tab": "859a303f42efd8b2a1bd0f2e33fedf71", "examples/datasets/heart_disease.tab.metadata": "ed45f5da717ba279094a29f33a4b263d", "examples/datasets/housing.tab": "e0eda02af8c85dd28b21620ee5c74552", "examples/datasets/housing.tab.metadata": "9d88fcbc612a9928d951ceb5f22b04c9", "examples/datasets/iris.csv": "ffd137d9c66a717d061b9fa5831000b1", "examples/datasets/iris.tab": "bbf17c5ae7e81aeb2ad7694648a6b2e1", "examples/datasets/iris.tab.metadata": "e1d89c7e7561bcc716dafd546058196e", "examples/datasets/list_update.py": "737978a6df832d796431df3b048b051a", "examples/datasets/mushrooms.csv": "2007f683881ecd4febc1b7674c5751a8", "examples/datasets/slovenian-towns.dst": "e6c7acf1cb81c6d71523d0e7b3ea6f41", "examples/datasets/titanic.tab": "4291853e1bf953ef2c0c1e39653a0f80", "examples/datasets/titanic.tab.metadata": "5074c723c0342fa64396739eb0480d33", "examples/datasets/TitanicData.xls": "7afb9b02b50c902fd364364f7d2e49be", "examples/datasets/UCI_Credit_Card.csv": "afd3af2602d66d6ceb36cb04216f0ed2", "examples/datasets/zoo.tab": "90a455135a6a8822f1200630270bdcb0", "examples/datasets/zoo.tab.metadata": "1b824e81f9e8969228e01e460d6b05e6", "features/feedback.py": "2fed1192b08f982e19b6cb75f40c7f10", "features/index.rst": "caf9be56f3fc9b08f569abee024f6cf2", "features/openprocess.py": "539c43bc37743144d9216715b8fad57f", "features/README.md": "eed382b7fe1775f4b6b875d4b564ae50", "features/settings.py": "a7c36fc21234c3a23c7663e1b248e60b", "features/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/auth/authlocalserver.py": "1a7bd0455dc04627bdb5367c7ebc9c2a", "features/auth/authmanager.py": "06a45267063200c67104786db5cff4e1", "features/auth/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/auth/templates/login.html": "446aac7443cc70f43e46753092445aef", "features/auth/templates/register.html": "3a424e8c3bdf1eb6043e0ab9ca34acff", "features/extensions/index.rst": "01d20711a991f116e372db6fb72c96df", "features/extensions/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/extensions/extensionlib/baseext.py": "677942d6d94defa454ec27b173d582db", "features/extensions/extensionlib/extensionlib.md": "aacae615d8f781c275ac79c22fae5678", "features/extensions/extensionlib/extension_lib.py": "e48b16cc626c5001355438e28f00d219", "features/extensions/extensionlib/readme.md": "00629cf6b22e95200c530ea6d512057f", "features/extensions/extensionlib/__init__.py": "2dc050a0d3da896f4b39681a6e057f63", "features/extensions/extensions_manager/ExtensionLoader.py": "aee9c0b155f0bade604e41d3a38efa36", "features/extensions/extensions_manager/log.py": "6e8bd61219f2ff606b58c1399d322ddf", "features/extensions/extensions_manager/manager.py": "a7fa22dd5ba1fc531f31b0741f12c61e", "features/extensions/extensions_manager/readme.drawio": "4bafe50e30ca4be5cdef34e1e657f7a6", "features/extensions/extensions_manager/README.md": "97b9464ed10af4ad3015ac7f38e6cf99", "features/extensions/extensions_manager/UIInserter.py": "e66518eebc812a4f5b94997351fe1b0b", "features/extensions/extensions_manager/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/extensions/extensions_manager/vermanager/vermanager.py": "01c76efe94e29a53138a670f909f2d52", "features/extensions/extensions_manager/vermanager/__init__.py": "03f044152b579a37841af43eae7f2389", "features/interpretermanager/interpretermanager.py": "f444a2a4cebc7ae225cf46f61ae7950b", "features/interpretermanager/packagemanager.py": "573cf34280aff9d22775f692e63cbb8c", "features/interpretermanager/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/io/database.py": "567325cf72a6f4564a4a0f27326f1b25", "features/io/dbConn.py": "50780c5805a79cb1934b2d7e0d8c0ab6", "features/io/dbConnectAccount.pkl": "5d9291410939747f2c8c07dd81222283", "features/io/encoding.py": "3d17abe6b8042115f6e15b869aff7c44", "features/io/exceptions.py": "72dcca0f3371e119d43e9827e73528b0", "features/io/settings.py": "a3234ca4ddc2f8b0e0e62450756c1e56", "features/io/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/main_window/base.py": "aab682344cfc58317a1413203ebd6261", "features/pluginsmanager/pluginsmanager.py": "f7dc55bb96470571a9a6558cb3962591", "features/pluginsmanager/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/project/template/Basic-Template.py": "4204e7ce0f6309fd93535659c3c466c8", "features/project/template/Empty-Template.py": "18dc747535104b7c6ef67b21c97069f1", "features/project/template/Plot-Template.py": "b688a56819d86c6eb44ff9e72b809091", "features/project/template/PyQt-Template.py": "8a64552bb7be154721ceeaf50f4e8673", "features/project/template/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/project/template/PySide2Template/main.py": "ed912fbf0fc0c20fcacb81bd19800c14", "features/project/template/PySide2Template/PySide2_Template.py": "ac93a3b7fc512f9c0afa7f00a2643674", "features/project/template/PySide2Template/PySide2_Template.ui": "c8cd27a3e0b5cb1c9936603328d7b732", "features/project/template/PySide2Template/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/ui/main.py": "2d7d5d9496b9208ddb27e60f708a1a4d", "features/ui/ui_aboutme.py": "c79955815de4013a7a64d690f94febbc", "features/ui/ui_aboutme.ui": "160718ccbd19dc35a00aaeee6faffaa2", "features/ui/ui_appstore.py": "256f2fd75ad7ffdf667c13bf7a3b5128", "features/ui/ui_appstore.ui": "a7e7317eca4ee6311e41968445e1fa81", "features/ui/ui_check_update.py": "8226a48eb517b9da8cf425b809ff3c8a", "features/ui/ui_check_update.ui": "0766a087aa5b8e4a5e46f4211055aa9b", "features/ui/ui_data_normal.py": "d9971d97184ade3f9c405f061dd22231", "features/ui/ui_data_normal.ui": "c8a3e10c4487ce5a2774ca8ea5a5905a", "features/ui/ui_first_form.py": "cbbf26db8887e60df0dd7ce0713a5a54", "features/ui/ui_first_form.ui": "1b5d9231837a421c9b77382b3f6f1719", "features/ui/ui_login.py": "2fe8d95e4257473abea1549e127f7ede", "features/ui/ui_login.ui": "58916dfb5dd1dfab103fa4f15882a282", "features/ui/ui_logined.py": "668bf0e57ec258d1ee0b7bfac2abe1b5", "features/ui/ui_logined.ui": "e6d6f9d467a6b8a24336713481e9a6f6", "features/ui/ui_option.py": "12491a3f32f99d3bb7833291c5402cfa", "features/ui/ui_option.ui": "9cf7b928ccf449e096586e949cd7dd95", "features/ui/ui_preferences.py": "d925283bad5dc99d85a90798cb86c6ce", "features/ui/ui_preferences.ui": "4336a5c78eef921b047e1c86c49650f5", "features/ui/ui_project_wizard.py": "65f0c2afe19b349e8b63b57a941c4db1", "features/ui/ui_project_wizard.ui": "9d21051c8df87eb832bdf8a5470f1c8c", "features/ui/ui_workspace_launcher.py": "594f60adb389355ef83a5bca20eafb5a", "features/ui/ui_workspace_launcher.ui": "fd4e48c43a6d35a209c2696942f0927f", "features/ui/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/ui/common/debug_process_with_pyqt.py": "2971e07b890f1872c7f7009c4d2b44fe", "features/ui/common/openprocess.py": "3d1aeb10bde66329d7126840466ba6df", "features/ui/common/open_process_with_pyqt.py": "851480f8440b2f81033a319b5f32f465", "features/ui/common/platformutil.py": "070ffc4eaea4cb0c4b6dcca39fe4035f", "features/ui/common/pmlocale.py": "f7ca747cc3dedc2b6cf03c7b5f9ec121", "features/ui/common/test_open_app.py": "5f56a2266c07dd652659c949b297f498", "features/ui/common/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/ui/pmwidgets/dockwidget.py": "cb0c4fe5642dda21f5692ecce49eed95", "features/ui/pmwidgets/pmmainwindow.py": "5f3887a06e377de92251c6b49853cddb", "features/ui/pmwidgets/toplevel.py": "8700605abc51c422a5a1588dc80a8bfd", "features/ui/pmwidgets/__init__.py": "dbd5c209ff332a55a7e483fcb686421f", "features/ui/pm_marketplace/install.py": "54117accb9d426c89b751355b7e73f0b", "features/ui/pm_marketplace/install.ui": "22c1cb1d2e58f0e6e63d3c199af96edd", "features/ui/pm_marketplace/main.py": "1fea599f650efa60951f3029d940d73e", "features/ui/pm_marketplace/main.ui": "76b3d012f1742eeb8cb85a0ee9ec5680", "features/ui/pm_marketplace/package_manager_main.py": "0ab9760f90d31f8f0eb3287bdf530891", "features/ui/pm_marketplace/package_manager_main.ui": "8dba9def55b1ea06d6c953f33e875cb9", "features/ui/pm_marketplace/uninstall.py": "292fa58f6d05fc584029fb0650702aa3", "features/ui/pm_marketplace/uninstall.ui": "c1160fc571c23573e4bfb4ada3807edc", "features/ui/pm_marketplace/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/ui/widgets/controlpanel.py": "d5fceeb26a8878ff80d6339895dbb5cd", "features/ui/widgets/notificationwidget.py": "3c6d71d757c8a0e3a11b9e48ca7108eb", "features/ui/widgets/README.md": "9f7d88859d291d2f64cba1b6ba49a59e", "features/ui/widgets/reportwidget.py": "1f00f377fe6cfc610cf58e68462307e6", "features/ui/widgets/resources.py": "14a758e941b459f8b23704065f1e8639", "features/ui/widgets/__init__.py": "77b4a6a8852c7103e7525d3955c40358", "features/util/check_update_ui.py": "5bfc0584c45856ace75efedafd677436", "features/util/check_update_ui.ui": "0766a087aa5b8e4a5e46f4211055aa9b", "features/util/make_update.py": "17f81b28bdc7a353dac1d7b45ed762cf", "features/util/openprocess.py": "539c43bc37743144d9216715b8fad57f", "features/util/update.py": "896e76ccbae9ae36c17d14515b6fafa5", "features/util/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/workspace/data_manager.py": "d7b5e29419b744fad86e6245018de1e8", "features/workspace/index.rst": "3ce5d474607ba614ba9f6afc772e7bc2", "features/workspace/signals.py": "d950f3f33fd821323d95ece2b8d90e84", "features/workspace/signals.rst": "3618e25aa7f77f05142dc84a96eaf45c", "features/workspace/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/workspace/blinker/base.py": "83733f47cb03be3713ce7a5860612e96", "features/workspace/blinker/_saferef.py": "ced62e1fda983045da2076064a7db34d", "features/workspace/blinker/_utilities.py": "1aeb68e85d8ad0aa80295e5f29f42d18", "features/workspace/blinker/__init__.py": "464a73bb96572aaf6c2ed191676d40a4", "features/workspace/data/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/workspace/data_adapter/array.py": "2891617cd8d0eb1cd3780258212ce847", "features/workspace/data_adapter/base.py": "8d176a5909da92fbbfdade7ecd040127", "features/workspace/data_adapter/data_frame.py": "d71dc9d36194663b154bbb13eb1bf8a9", "features/workspace/data_adapter/detector.py": "af748d211285fe07fa56bf2b21e4d60e", "features/workspace/data_adapter/index.rst": "1d16f21a65dadb51dc1ecc68d9cad119", "features/workspace/data_adapter/universal.py": "49603cc94bc554bdb8456a1cdbdd39b1", "features/workspace/data_adapter/__init__.py": "b9da2c81695eae92f9748a4a59cd0c29", "features/workspace_old/history.md": "ab52fc7f26dff2cecf2f2f704844db56", "features/workspace_old/index.rst": "961579c17854f0d0d7b9f4e0bb6b1621", "features/workspace_old/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "features/workspace_old/datamanager/converter.py": "0cddb9d818f283a125bf534c3633f2b7", "features/workspace_old/datamanager/datamanager.py": "a2025c72d71aaf79728c54bfaf9dc3d3", "features/workspace_old/datamanager/dataset.py": "5d0b8678f8a53db8d8c9a483b90c79aa", "features/workspace_old/datamanager/exceptions.py": "6ed4da7a9003f12c756366cf67d87027", "features/workspace_old/datamanager/historyset.py": "85f91eac3f692ce44ed011647d319bac", "features/workspace_old/datamanager/metadataset.py": "9047c690af46c4db5b0501fdc25f975b", "features/workspace_old/datamanager/recyclebin.py": "c9effef9419e3be130a027f116761881", "features/workspace_old/datamanager/variable.py": "d35eb9e5fea49eaf5899d7315caa582a", "features/workspace_old/datamanager/varset.py": "54e77b59c43212ef22b4e271b8893953", "features/workspace_old/datamanager/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "languages/en.ts": "64307a7a6a8a2bc627ecbfaf2fc0e805", "languages/en/en.ts": "a426bc922ab99d1920e790b890d1b386", "languages/zh_CN/pmgwidgets_qt_zh_CN.qm": "cbaaec13dd22418095f6c7a9122926cc", "languages/zh_CN/pmgwidgets_qt_zh_CN.ts": "d81ecd8ec48ae725c76eba4f09ee9ecb", "languages/zh_CN/pmtoolbox_qt_zh_CN.ts": "95510ea97a650faeba03d155b1c81cbf", "languages/zh_CN/qt_zh_CN.ts": "bf9e10698c9cef267c344f73e30789e6", "languages/zh_CN/zh_CN.qm": "941aa53373af233466a16d682d7e625a", "languages/zh_CN/zh_CN.ts": "1be0a3147fea71527d4e17065a66d482", "languages/zh_CN/zh_CN.ts.bak": "c916a039d8a676ad891150786e9b1185", "languages/zh_TW/zh_TW.ts": "a426bc922ab99d1920e790b890d1b386", "packages/index.rst": "60e962032576844618f7a1448880b8fd", "packages/__init__.py": "a248423783ba8e03c638b996a91de109", "packages/advanced_drawings_toolbar/group_chart.py": "846a72c9e0303f8ef4b5c6b809f07db7", "packages/advanced_drawings_toolbar/ipython_console.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/advanced_drawings_toolbar/main.py": "78b220f88ba07d759c9f0722f6fc0306", "packages/advanced_drawings_toolbar/map_var.json": "91324fe1e6b292ebc2d548f3ae7d49b7", "packages/advanced_drawings_toolbar/map_var.py": "46e4e76e96cb5691754e4b63a38b67d9", "packages/advanced_drawings_toolbar/package.json": "3483b83687dfaf5bb4410107b04fdfd0", "packages/advanced_drawings_toolbar/radar_chart.py": "67ea13759ea77d67006df488c9fde4e0", "packages/advanced_drawings_toolbar/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/advanced_drawings_toolbar/pmmap/china/all/01-beijing.npy": "05fc6e35605340ef6e4d62af9770ef7a", "packages/advanced_drawings_toolbar/pmmap/china/all/02-shanghai.npy": "dbd37714da88edf44df7a2642ce2c14f", "packages/advanced_drawings_toolbar/pmmap/china/all/03-tianjin.npy": "e767b1d0810acfd174d4b52586441de1", "packages/advanced_drawings_toolbar/pmmap/china/all/04-chongqing.npy": "1980444de2496af7ae7b11cae9372d2c", "packages/advanced_drawings_toolbar/pmmap/china/all/05-heilongjiang.npy": "f369a349db31ac0636e625737802922e", "packages/advanced_drawings_toolbar/pmmap/china/all/06-neimeng.npy": "0366d9f95bfe2e0768a6491f8f5e27cc", "packages/advanced_drawings_toolbar/pmmap/china/all/07-xinjiang.npy": "201b3ff97375ae9ba6e9fc9c7b0eed1e", "packages/advanced_drawings_toolbar/pmmap/china/all/08-jilin.npy": "0ed85b6d84b877cf07154e1b54db0bdd", "packages/advanced_drawings_toolbar/pmmap/china/all/09-gansu.npy": "08c6e4437a0fc5d19d6c655a14a7df2e", "packages/advanced_drawings_toolbar/pmmap/china/all/10-liaoning.npy": "542d598f5c39b363738b0b753d8318d1", "packages/advanced_drawings_toolbar/pmmap/china/all/11-hebei.npy": "5a7ce525859caabaffad0fe1c11cb26f", "packages/advanced_drawings_toolbar/pmmap/china/all/12-shanxi.npy": "5ebb5347431393d599f5f0d36a31dd07", "packages/advanced_drawings_toolbar/pmmap/china/all/13-shan3xi.npy": "71944b8eea6caa0b7e4138063d6e8945", "packages/advanced_drawings_toolbar/pmmap/china/all/14-ningxia.npy": "dc0660ac4216cb4e928fb08dba5e36fb", "packages/advanced_drawings_toolbar/pmmap/china/all/15-qinghai.npy": "46f4e9bf9a47734d0cfbef0916e6cec1", "packages/advanced_drawings_toolbar/pmmap/china/all/16-shandong.npy": "b3eee97751e252f1c729b20cde81220c", "packages/advanced_drawings_toolbar/pmmap/china/all/17-henan.npy": "530d73e54901bf816e61c86bafb97219", "packages/advanced_drawings_toolbar/pmmap/china/all/18-xizang.npy": "83c873032100d735d2a3c1becb4e4ee5", "packages/advanced_drawings_toolbar/pmmap/china/all/19-jiangsu.npy": "33051765300de0a9d003ea91c3846cc6", "packages/advanced_drawings_toolbar/pmmap/china/all/20-anhui.npy": "d80f40e27c3a60188547d058c827eae0", "packages/advanced_drawings_toolbar/pmmap/china/all/21-sichuan.npy": "115e4b1abbc6df1f862095e94cacb8b5", "packages/advanced_drawings_toolbar/pmmap/china/all/22-hubei.npy": "065b61ce8a2728be70d0e726990e42c2", "packages/advanced_drawings_toolbar/pmmap/china/all/23-zhejiang.npy": "6910df476893b4e5a84689094203b724", "packages/advanced_drawings_toolbar/pmmap/china/all/24-jiangxi.npy": "2d4e166cd8d9371a1c6d01848ece3301", "packages/advanced_drawings_toolbar/pmmap/china/all/25-hunan.npy": "ddbce0334a1f79bd77f7b0ae582dd28e", "packages/advanced_drawings_toolbar/pmmap/china/all/26-guizhou.npy": "4d23f4f330203b61c6f8cca0ac764819", "packages/advanced_drawings_toolbar/pmmap/china/all/27-yunnan.npy": "1d1c9378c8427667dbf0b8948c36b484", "packages/advanced_drawings_toolbar/pmmap/china/all/28-fujian.npy": "77270ff92f0d67f0123672527b70772a", "packages/advanced_drawings_toolbar/pmmap/china/all/29-guangxi.npy": "3862d0becc054fe754ae71c111c583ad", "packages/advanced_drawings_toolbar/pmmap/china/all/30-guangdong.npy": "7d7f1392cc01a22d4503354ce7c729b1", "packages/advanced_drawings_toolbar/pmmap/china/all/31-taiwan.npy": "2f398da02605db2be30751dedb92ea90", "packages/advanced_drawings_toolbar/pmmap/china/all/32-xianggang.npy": "b3cf9d637c7d87e82a86174f99be74da", "packages/advanced_drawings_toolbar/pmmap/china/all/33-aomen.npy": "68e3c682aef3e25cf873878a19df5361", "packages/advanced_drawings_toolbar/pmmap/china/all/34-hainan.npy": "a67e27cc4f68d566f6977580d95b006c", "packages/advanced_drawings_toolbar/pmmap/china/all/39-jiuduan.npy": "35fbdcbb72d2c22caab9b1bfd2eba401", "packages/advanced_drawings_toolbar/pmmap/china/small/30-guangdong.npy": "7d7f1392cc01a22d4503354ce7c729b1", "packages/advanced_drawings_toolbar/pmmap/china/small/31-taiwan.npy": "2f398da02605db2be30751dedb92ea90", "packages/advanced_drawings_toolbar/pmmap/china/small/32-xianggang.npy": "b3cf9d637c7d87e82a86174f99be74da", "packages/advanced_drawings_toolbar/pmmap/china/small/33-aomen.npy": "68e3c682aef3e25cf873878a19df5361", "packages/advanced_drawings_toolbar/pmmap/china/small/34-hainan.npy": "a67e27cc4f68d566f6977580d95b006c", "packages/advanced_drawings_toolbar/pmmap/china/small/39-jiuduan.npy": "35fbdcbb72d2c22caab9b1bfd2eba401", "packages/advanced_drawings_toolbar/source/down.svg": "fe6b296aa4020dda5c5a870bb7596235", "packages/advanced_drawings_toolbar/source/plot.svg": "05fd271af6c134f6872c80c489064d60", "packages/advanced_drawings_toolbar/source/\u5730\u56fe.png": "eca50b3207a973738145d1cf12ca0c34", "packages/advanced_drawings_toolbar/source/\u6298\u7ebf\u56fe.png": "1bde0eca8cfa880452accf56ca925866", "packages/advanced_drawings_toolbar/source/\u6563\u70b9\u56fe.png": "78c432bb278d8ea5c9587f23ffdd5f82", "packages/advanced_drawings_toolbar/source/\u6761\u5f62\u56fe.png": "b07f4db5b1785376f97636fc6963234e", "packages/advanced_drawings_toolbar/source/\u67f1\u5f62\u56fe.png": "d6cba37e00bf9bbeb65235897a7b90b9", "packages/advanced_drawings_toolbar/source/\u6c14\u6ce1\u56fe.png": "d6784d4c53145cce1fde17f673b76984", "packages/advanced_drawings_toolbar/source/\u70ed\u529b\u56fe.png": "566d7c6ad396084ca6b7d490868fdc2c", "packages/advanced_drawings_toolbar/source/\u76f4\u65b9\u56fe.png": "a9b01bca53610b2c03f7ea2331c91cc3", "packages/advanced_drawings_toolbar/source/\u7bb1\u7ebf\u56fe.png": "ba733c4c1a0979ab5bc838149490e915", "packages/advanced_drawings_toolbar/source/\u7ec4\u5408\u56fe.png": "c5bea73cff095ad47bd07e1e81921ab2", "packages/advanced_drawings_toolbar/source/\u96f7\u8fbe\u56fe.png": "5aa1a48424b30a157a2bca181c9be2d0", "packages/advanced_drawings_toolbar/source/\u9762\u79ef\u56fe.png": "69682cc944d7afdd5c1f2019bf6ca21c", "packages/advanced_drawings_toolbar/source/\u997c\u56fe.png": "862b6c81a5752ee7d53500ce9064c10d", "packages/advanced_drawings_toolbar/translations/qt_zh_CN.qm": "cd23a7e488d169790b204929188d78e7", "packages/advanced_drawings_toolbar/translations/qt_zh_CN.ts": "ce76ad850f047e2cea0440e4dab7c7d4", "packages/applications_toolbar/applications_toolbar.py": "1c7db3beb99333a43fcbc29f2b628117", "packages/applications_toolbar/dev_tools.py": "32396eb367e2f40a2ca41bbf1c122380", "packages/applications_toolbar/ipyinterface.py": "b52686fd36bd819d65916f6c70a135e9", "packages/applications_toolbar/ipython_console.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/applications_toolbar/main.py": "1d6fa534839be7a73ed71881a9fb166e", "packages/applications_toolbar/manage_apps.py": "88d58bae208874c4973e22165f112675", "packages/applications_toolbar/package.json": "b6e6fae7a7650f3a94327d27f4fd4f9c", "packages/applications_toolbar/process_monitor.py": "86f69fb10c7ef7ba19504b418e8851f5", "packages/applications_toolbar/README.md": "500119ec92d71af8ac97e7246e30342e", "packages/applications_toolbar/settings_apps.json": "4182a1dc3f6489bca92a7eb123a85b6c", "packages/applications_toolbar/apps/cftool/algorithm.py": "253d3d8c4d7fcebe0018d65511e03ae9", "packages/applications_toolbar/apps/cftool/GUI_QT.py": "81a8a4dbbb41799c196129cb7b98247c", "packages/applications_toolbar/apps/cftool/main.py": "386bb5ebf2b5d8ad609ecd2be95bb607", "packages/applications_toolbar/apps/cftool/package.json": "ef90cc084c17151e6db5f1a4bb170897", "packages/applications_toolbar/apps/cftool/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/applications_toolbar/apps/cftool/README.md": "82a32691c1f8296f6fe73faebc1ddf89", "packages/applications_toolbar/apps/cftool/regexvalidifyer.py": "f7b28de6b75b89f19078a3e2e10d9818", "packages/applications_toolbar/apps/cftool/test1.py": "d8b7b73613a84a9044721403a1e8042a", "packages/applications_toolbar/apps/cftool/test_file.py": "dc6b5c9b40404d62209e36daf7b4819e", "packages/applications_toolbar/apps/cftool/src/cftool.png": "04975fa7979a56ac4dabea313cc7c004", "packages/applications_toolbar/apps/cftool/src/\u66f2\u7ebf\u62df\u5408.png": "d7ccf65e6d59dfd63507f1432454a943", "packages/applications_toolbar/apps/demo_app/default.png": "b58b2daf9a2a44726b678f235aed41e6", "packages/applications_toolbar/apps/demo_app/demo_app.py": "931bb2658ec5554a4f1cbb7424736f5a", "packages/applications_toolbar/apps/demo_app/main.py": "63ffc303fd56ba7d882fe108cd44efeb", "packages/applications_toolbar/apps/demo_app/package.json": "24bd9031b9afde16470332c19333c0bb", "packages/applications_toolbar/apps/demo_app/README.md": "ddb8b30770b3972dee69051c99026d1f", "packages/applications_toolbar/apps/demo_app/settings.json": "e4385e0a6554dfe40b3696f328f5edd1", "packages/applications_toolbar/apps/flowchart/flowchart.png": "e419f05974065c85c4c7b56604ce920a", "packages/applications_toolbar/apps/flowchart/main.py": "3288fef7caa83b16745351634f1c5e13", "packages/applications_toolbar/apps/flowchart/package.json": "bfe315ff8f31d2c4699a560608a5b973", "packages/applications_toolbar/apps/flowchart/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/applications_toolbar/apps/flowchart/README.md": "9b53d15d3e33ddba31de6b5f4e684c1b", "packages/applications_toolbar/apps/flowchart/examples/drop_duplicated.pmfc": "be5c44289f838b15d93c1b227b657091", "packages/applications_toolbar/apps/flowchart/examples/read_all_csv_files.pmfc": "4b1e9884b118c9dfa1e855f55178fad5", "packages/applications_toolbar/apps/flowchart/plugin_nodes/nodes.py": "92702a3afc444e8ce17b53314722eff6", "packages/applications_toolbar/apps/flowchart/plugin_nodes/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/applications_toolbar/apps/flowchart/resources/flowchartwindow.jpg": "d91093a77c5746982f7575081674e05b", "packages/applications_toolbar/apps/flowchart/resources/nodeports.jpg": "fddd899d2618662bb2b61d7e09680ad2", "packages/applications_toolbar/apps/flowchart/test_files/test_drop_duplicated.csv": "0574869eff0b86a260260b72cf53bb4a", "packages/applications_toolbar/apps/ligralpy/chart_server.py": "b3dc9a23925b30a73ac974f7a8123689", "packages/applications_toolbar/apps/ligralpy/Data.csv": "5fdba74629c5a0b1a5a6be20a3a19688", "packages/applications_toolbar/apps/ligralpy/flowchart.png": "e419f05974065c85c4c7b56604ce920a", "packages/applications_toolbar/apps/ligralpy/img.png": "8408ad879fe242ed82c30adbc3694d46", "packages/applications_toolbar/apps/ligralpy/main.py": "59a370745781b14b673f52ef392a5108", "packages/applications_toolbar/apps/ligralpy/package.json": "9e7eeab6e86f652142ae125bec65e71d", "packages/applications_toolbar/apps/ligralpy/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/applications_toolbar/apps/ligralpy/README.md": "9b53d15d3e33ddba31de6b5f4e684c1b", "packages/applications_toolbar/apps/ligralpy/examples/flowchart_stat_demo.json": "2d91e5c4fff5494f14dbb88a8b5f5031", "packages/applications_toolbar/apps/ligralpy/examples/second_ordered.lig.json": "86a67bc8b6402059ff6f15ef83722705", "packages/applications_toolbar/apps/ligralpy/nodes/nodes.py": "a08108573e2ace0e04dc0551da7653a6", "packages/applications_toolbar/apps/ligralpy/nodes/simulation.py": "043e5c86cf3c147d23cda2a2cf589395", "packages/applications_toolbar/apps/ligralpy/nodes/__init__.py": "06133052eded73b0d4be7b4719d5a3fc", "packages/applications_toolbar/apps/ligralpy/nodes/tools/gen_classes.py": "976b6416996c3bd2ce0c811b68175d60", "packages/applications_toolbar/apps/ligralpy/resources/flowchartwindow.jpg": "d91093a77c5746982f7575081674e05b", "packages/applications_toolbar/apps/ligralpy/resources/nodeports.jpg": "fddd899d2618662bb2b61d7e09680ad2", "packages/applications_toolbar/source/appstore.svg": "e2a48d1643f244e957ce9dba9e55a72f", "packages/applications_toolbar/source/app_main.py": "d8797ef1c2c1506b14b24a3602d4f929", "packages/applications_toolbar/source/background.png": "2a3f6737ddbb2a0314cdf2f640b0e929", "packages/applications_toolbar/source/default.png": "b58b2daf9a2a44726b678f235aed41e6", "packages/applications_toolbar/source/down.svg": "fe6b296aa4020dda5c5a870bb7596235", "packages/applications_toolbar/source/install.svg": "699200cfd59967ff740f1e3076795f0f", "packages/applications_toolbar/source/lightening.png": "844cc073cae34c193f3f39335146c955", "packages/applications_toolbar/source/main.py": "f7c06af5e03add541ee260a6224af05a", "packages/applications_toolbar/source/package.svg": "db8542fb863117d5d74f7a6676ab419e", "packages/applications_toolbar/source/qt-logo.png": "9a2446007bbc869ee1ef00479fc73872", "packages/applications_toolbar/source/run.png": "fcf7e23f264801b79df841dabdab9417", "packages/applications_toolbar/source/run.py": "931bb2658ec5554a4f1cbb7424736f5a", "packages/applications_toolbar/source/settings.png": "b9f8edfca0a36df8f3d445f61683511d", "packages/applications_toolbar/translations/qt_zh_CN.qm": "e613b5296764ff24e04450243de3e383", "packages/applications_toolbar/translations/qt_zh_CN.ts": "242fdca10f7405da10eae48f2244e13f", "packages/applications_toolbar/ui/app_designer.py": "b90e5fb6a0430ceb7bb74533ca4d198a", "packages/applications_toolbar/ui/app_designer.ui": "363e995f6861e7817a27e577d236233c", "packages/code_editor/debugger.py": "a19f564dddb9df36cfd14779dfea943c", "packages/code_editor/main.py": "0b3fc0dfb3c49a9dbe74a02f881b36a7", "packages/code_editor/package.json": "f529dee72a413f5d0d92b62ffeaad59b", "packages/code_editor/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/code_editor/README.md": "2918b5e59be436e278047961adb8afeb", "packages/code_editor/toolbar.py": "26ea5eb990d08893ee848dd86768aaba", "packages/code_editor/codeeditor/abstracteditor.py": "b1556e7c0b64c122e8dc6b295b9d9cc9", "packages/code_editor/codeeditor/autocomplete.py": "85443f0a05636004d73019442ca2d628", "packages/code_editor/codeeditor/flake8_trans.json": "745c056024e394cd874a60a0569de1b3", "packages/code_editor/codeeditor/infer.py": "7a9c311fd78ce3afe093bced75ff8fb0", "packages/code_editor/codeeditor/markdowneditor.py": "710b73d04dbf40dbda4c8a9516f1cdb9", "packages/code_editor/codeeditor/pythoneditor.py": "6eb09191f31b0d9a3752e13e3cef6098", "packages/code_editor/codeeditor/syntaxana.py": "b41485288a49c5e9dff3babfdbaa3a3b", "packages/code_editor/codeeditor/tabwidget.py": "e8c6177923b12a377116f65e2045fac3", "packages/code_editor/codeeditor/__init__.py": "de948222f3aba39724a6583a7c1d818f", "packages/code_editor/codeeditor/config/.flake8": "5706c8ed878411a63a6dd9827224e010", "packages/code_editor/codeeditor/config/.style.yapf": "0d898fa79efa8db79c72c151658d26aa", "packages/code_editor/codeeditor/config/.style.yapf.zh": "3f98dd47e54c916665839ab5fe9c5b8c", "packages/code_editor/codeeditor/errors_translation/translate.py": "750d35adf1c925d4e54c5afc6bd4471b", "packages/code_editor/codeeditor/errors_translation/translations.txt": "ec6b11469cf13cc49f53f144a3048952", "packages/code_editor/codeeditor/qtpyeditor/find_gotoline.py": "98a1a7fd1e0b447a55ce0941984ef809", "packages/code_editor/codeeditor/qtpyeditor/linenumber.py": "0dbc3249db663a0d338ec4630a8b857a", "packages/code_editor/codeeditor/qtpyeditor/syntaxana.py": "ccfed05306fc8e31513e4138fc6cb197", "packages/code_editor/codeeditor/qtpyeditor/__init__.py": "750c4f8fd3d0708b965ba5b6349201df", "packages/code_editor/codeeditor/qtpyeditor/codeedit/basecodeedit.py": "1f47f04069d87c1e49eadcac64e0c546", "packages/code_editor/codeeditor/qtpyeditor/codeedit/pythonedit.py": "1bd34b84907bd2cb9602b28ff87aae23", "packages/code_editor/codeeditor/qtpyeditor/codeedit/__init__.py": "49be4addcaeff7654aa0d9770649c359", "packages/code_editor/codeeditor/qtpyeditor/codeeditor/abstracteditor.py": "ae34418002a69d7872496eb5007842c0", "packages/code_editor/codeeditor/qtpyeditor/codeeditor/baseeditor.py": "81adc6aff2de98db56eb88c22fbea69f", "packages/code_editor/codeeditor/qtpyeditor/codeeditor/pythoneditor.py": "5458fc8ab2d05929fa3a9b6790125554", "packages/code_editor/codeeditor/qtpyeditor/codeeditor/__init__.py": "2d1f567a03ae3b14864c5807c2ecfd90", "packages/code_editor/codeeditor/qtpyeditor/highlighters/python.py": "30f29dea3c0261d114038d049dcb8b9b", "packages/code_editor/codeeditor/qtpyeditor/highlighters/__init__.py": "274aab5f8155ea49df8cc33689fe427a", "packages/code_editor/codeeditor/qtpyeditor/icons/breakpoint.svg": "5225dadbedc9f7bda4bb94fecc75ad53", "packages/code_editor/codeeditor/qtpyeditor/icons/copy.svg": "1c800d6346207003b4d7dc70a11e433f", "packages/code_editor/codeeditor/qtpyeditor/icons/debug.svg": "b931caeb19e4cc175cec44fd8af719f5", "packages/code_editor/codeeditor/qtpyeditor/icons/format.svg": "dccd4600d9450bfe4deb9b244c41e85f", "packages/code_editor/codeeditor/qtpyeditor/icons/help.svg": "edfdb212fdcae3ece7e7c58950a35645", "packages/code_editor/codeeditor/qtpyeditor/icons/python.svg": "d17b75c2256afc9b2beb64afeafbc3e0", "packages/code_editor/codeeditor/qtpyeditor/icons/run.svg": "e00087c6bd323d47d4f70a32a25b5667", "packages/code_editor/codeeditor/qtpyeditor/icons/save.svg": "750627b83e976365fb2d80529cb84a2d", "packages/code_editor/codeeditor/qtpyeditor/icons/spate.svg": "13ab9e2e9d07edf5f7c9cd73560141a7", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/class.png": "c64837c614c385630f360831492d8eb9", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/function.png": "7ee29ba9761700d9c9312f95ab6c799e", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/instance.png": "7ccdeda9723de6cbf234c333abe1d244", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/keyword.png": "babe443bc1400af18df2d5a6cc11cec4", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/module.png": "86eaece57974e3d10eb6e175d650abf6", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/param.png": "74e736a865157eb31e015effb34df17b", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/path.png": "7e01e98822f89b5e7bb64c2ead585aa0", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/property.png": "3f6aebb5a4862a8adca6d82dc724ab5e", "packages/code_editor/codeeditor/qtpyeditor/icons/autocomp/statement.png": "d16ab05b46ff0f6ed3b6421a2a66dab0", "packages/code_editor/codeeditor/qtpyeditor/translations/qt_zh_CN.qm": "2c896338c3b1b75508a842cf534d7cbf", "packages/code_editor/codeeditor/qtpyeditor/translations/qt_zh_CN.ts": "5382de30cc1e09a23252d66ca93b27db", "packages/code_editor/codeeditor/qtpyeditor/ui/findinpath.py": "14fa54fbcf8cb34804f6ef075c4267e6", "packages/code_editor/codeeditor/qtpyeditor/ui/formeditor.py": "1da95795442e26ab7bb522dc811aae50", "packages/code_editor/codeeditor/qtpyeditor/ui/gotoline.py": "609b6fb7d45a04b898878cab26938277", "packages/code_editor/codeeditor/qtpyeditor/ui/ui_formeditor.py": "2d559bafc1b0d8819e62eea2f875de8d", "packages/code_editor/codeeditor/qtpyeditor/ui/ui_gotoline.py": "1827eee50b32b313d397027c46dc020b", "packages/code_editor/codeeditor/qtpyeditor/ui/__init__.py": "de948222f3aba39724a6583a7c1d818f", "packages/code_editor/codeeditor/qtpyeditor/Utilities/autocomp.py": "7adde398458535177d586db7da6eb151", "packages/code_editor/codeeditor/qtpyeditor/Utilities/__init__.py": "d7a23951afba6034e252ea600119c242", "packages/code_editor/codeeditor/simpleeditor/lexer": "d41d8cd98f00b204e9800998ecf8427e", "packages/code_editor/codeeditor/simpleeditor/__init__.py": "fbc8e0505acbb7662554aa0ebf010dd8", "packages/code_editor/codeeditor/tests/get_flake8_output.py": "d6a5545ac0b49483aed41b5059276d1e", "packages/code_editor/codeeditor/tests/get_yapf_output.py": "f6a13da53a21f87d7f5d9fbd0e9a22fa", "packages/code_editor/codeeditor/tests/test_file.py": "4ed78c29dfa08ff34bff564bd39545c4", "packages/code_editor/codeeditor/tests/theme_xml_json.py": "86f8b53c91b4d974acafc78c7a9e399c", "packages/code_editor/codeeditor/themes/Material-Dark.xml": "32f09404512dea8a892ef0095e659ae3", "packages/code_editor/codeeditor/themes/Obsidian PyCs.xml": "934cfd0236acebfaa37bc76516e4cc12", "packages/code_editor/codeeditor/themes/tomorrow.xml": "4f226a7b073ea417d6eca69bdf0e999a", "packages/code_editor/codeeditor/themes/tomorrow_night.xml": "5b7770abad7ab117727e91351140724f", "packages/code_editor/codeeditor/themes/tomorrow_night_bright.xml": "ba3f13a083f3b0aa8f8332e90b4fbb86", "packages/code_editor/codeeditor/tools/eric6_api.py": "72d2e6ee453be1f17e6c0382eb99d344", "packages/code_editor/codeeditor/tools/__init__.py": "9aa13d467aa7ca6ca94b283dea7e5c22", "packages/code_editor/codeeditor/tools/DocumentationTools/APIGenerator.py": "a725a1b2ffcbc8fc98f9e69b252f73ae", "packages/code_editor/codeeditor/tools/DocumentationTools/__init__.py": "f5dba5378fa551d11f098318de65a4a1", "packages/code_editor/codeeditor/tools/QScintilla/Editor.py": "3e5f9b7d8c00734ed27c85bd1de63906", "packages/code_editor/codeeditor/tools/QScintilla/__init__.py": "e58d1155053d6b3763c2ed9f92ca9e57", "packages/code_editor/codeeditor/tools/Utilities/ModuleParser.py": "be326e07e15841196ec7d752417cc6e2", "packages/code_editor/codeeditor/tools/Utilities/__init__.py": "65ffafe4bc9cd6a17832f441036cdb63", "packages/code_editor/codeeditor/ui/formeditor.py": "1da95795442e26ab7bb522dc811aae50", "packages/code_editor/codeeditor/ui/gotoline.py": "2ea843566488cd151da2f6cab335625f", "packages/code_editor/icons/breakpoint.svg": "5225dadbedc9f7bda4bb94fecc75ad53", "packages/code_editor/icons/copy.svg": "1c800d6346207003b4d7dc70a11e433f", "packages/code_editor/icons/debug.svg": "b931caeb19e4cc175cec44fd8af719f5", "packages/code_editor/icons/format.svg": "dccd4600d9450bfe4deb9b244c41e85f", "packages/code_editor/icons/help.svg": "edfdb212fdcae3ece7e7c58950a35645", "packages/code_editor/icons/python.svg": "d17b75c2256afc9b2beb64afeafbc3e0", "packages/code_editor/icons/run.svg": "e00087c6bd323d47d4f70a32a25b5667", "packages/code_editor/icons/save.svg": "750627b83e976365fb2d80529cb84a2d", "packages/code_editor/icons/spate.svg": "13ab9e2e9d07edf5f7c9cd73560141a7", "packages/code_editor/source/lightening.png": "844cc073cae34c193f3f39335146c955", "packages/code_editor/translations/qt_zh_CN.qm": "8e43fef9f53d43e8b693fc52984742d6", "packages/code_editor/translations/qt_zh_CN.ts": "20d10e3f79c729e1c90cbc88858cfd36", "packages/dataio/accountutil.py": "98a4758a6a1b11f7ee17f08e8b6c03d8", "packages/dataio/database_sample.py": "40b1c25397f6ddea9fb38029ee97eaea", "packages/dataio/dataImportModel.py": "88792dc540a80f0a5b22a7de6f3f1b12", "packages/dataio/dbimport.py": "6e4e64e8277a17c0fd21748ee7612b9a", "packages/dataio/dbindexing.py": "8d8d88e3a62cd935519aa4716218fac9", "packages/dataio/export.py": "ba01392157f6058a0d3a2a6f65a82b46", "packages/dataio/exportutils.py": "71a15223db0b6f6ef4bbe7e5ad31a4b6", "packages/dataio/importutils.py": "138d86b798b92d45639791ef57285981", "packages/dataio/main.py": "194549d322dbcea58329cff2cd5d7104", "packages/dataio/package.json": "a857dcfa80f7bbe16b29d447684fede6", "packages/dataio/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/dataio/README.md": "2918b5e59be436e278047961adb8afeb", "packages/dataio/sample.py": "346de2707ffbf2cd036b19b6911be5ff", "packages/dataio/settings.json": "d41d8cd98f00b204e9800998ecf8427e", "packages/dataio/dataUI/data_import_csv.py": "6b0ffb99fdb1d3bc68a61ca6a9169063", "packages/dataio/dataUI/data_import_csv.ui": "47c21370141a61960861b65836e7287b", "packages/dataio/dataUI/data_import_excel.py": "17b37971c44f89cdc5cef09c4ae742ef", "packages/dataio/dataUI/data_import_excel.ui": "2038dabc9e1caea8e1328b64fb10dc89", "packages/dataio/dataUI/data_import_matlab.py": "eccad7dc8726499702e75adcb6eb64d4", "packages/dataio/dataUI/data_import_matlab.ui": "4ae19c223a9d60139a73f2b1c553c64a", "packages/dataio/dataUI/data_import_model.py": "6732462f2b28d1228e6b6429d8f820cb", "packages/dataio/dataUI/data_import_model.ui": "6c61ace6854928adfb4c6ea8eff19fb5", "packages/dataio/dataUI/data_import_mysql.py": "10024040b895e1f7a0761cf41ed569aa", "packages/dataio/dataUI/data_import_mysql.ui": "bab2eaf2057d9175638198f14fb5f599", "packages/dataio/dataUI/data_import_oracle.py": "8068996f5d6395e95e878c341273ceb2", "packages/dataio/dataUI/data_import_oracle.ui": "c7d90bb98b8d4c0d5401eca7bcabe7ec", "packages/dataio/dataUI/data_import_postgresql.py": "c5404dc63e987cd2ed07d2b2424d5dac", "packages/dataio/dataUI/data_import_postgresql.ui": "b9a515989b036b7466bc2edd325b6eb1", "packages/dataio/dataUI/data_import_sas.py": "428fd62424d9e21c3d5bdc67ad2474a2", "packages/dataio/dataUI/data_import_sas.ui": "1f8667b3667d2baba53533b938b1a6a9", "packages/dataio/dataUI/data_import_spss.py": "8a1154c9315758ad9fa8bc96bfa1a367", "packages/dataio/dataUI/data_import_spss.ui": "35e2eb820c7e69bef4f06bbce6344c19", "packages/dataio/dataUI/data_import_stata.py": "102a879258cfbb70afc5815684e53b93", "packages/dataio/dataUI/data_import_stata.ui": "fd01ec0806b50f0dbbe7df3ae5578bcb", "packages/dataio/dataUI/data_import_text.py": "347f0183bb4055c43993f5ed84ae3d6c", "packages/dataio/dataUI/data_import_text.ui": "c8cc49a3ee1b2c4209c5c9ffe92fcfd8", "packages/dataio/dataUI/display.png": "38a696b77d8e89b1f24e3077184f3588", "packages/dataio/dataUI/hide.png": "80009586668a32b1a0bcdc5fb1854ac4", "packages/dataio/dataUI/password.py": "c174715c922460e682382cc1a4c9076f", "packages/dataio/dataUI/__init__.py": "cddad8a43ae85331e7fc60b6c4783a14", "packages/document_server/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/document_server/index.rst": "de08e1d943a610a1d4b61de487fc9606", "packages/document_server/main.py": "8e52c195bd0de7649b208fe9431fac90", "packages/document_server/package.json": "d552267ae466f74d360aa2dde9707999", "packages/document_server/settings.json": "ac084b924952c4c88e397f5c1f64c893", "packages/document_server/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/document_server/docserver/renderer.py": "0d2b8fa90287c98d2b2ea47893d902fd", "packages/document_server/docserver/server.py": "b525026a556b339079d30c4294e7fd60", "packages/document_server/docserver/__init__.py": "f64b6b6963038b02a0fafec97cb826da", "packages/document_server/docserver/static/css/main.css": "514ba05b769e4a20a328f77267aeb3a0", "packages/document_server/docserver/static/css/main.css.map": "db360aa1e642da89de3240fed50e4432", "packages/document_server/docserver/static/css/main.sass": "7b0d06ed553c19887a7dcad5bb97e954", "packages/document_server/docserver/static/js/main.js": "52a8a678ac589478f5b97e88066109c6", "packages/document_server/docserver/static/mathjax/tex-mml-svg.js": "2ac6956d3f16edb119f3b5686ef933d5", "packages/document_server/docserver/templates/content.html": "7420679eb81eea0ca7b9e98972b49160", "packages/document_server/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/document_server/translations/zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/drawings_toolbar/group_chart.py": "846a72c9e0303f8ef4b5c6b809f07db7", "packages/drawings_toolbar/ipython_console.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/drawings_toolbar/main.py": "6d8e3f8e511fa3ec1186e59c68487b69", "packages/drawings_toolbar/map_var.json": "91324fe1e6b292ebc2d548f3ae7d49b7", "packages/drawings_toolbar/map_var.py": "46e4e76e96cb5691754e4b63a38b67d9", "packages/drawings_toolbar/package.json": "95e01099cdd1f73595c179112383e45a", "packages/drawings_toolbar/radar_chart.py": "67ea13759ea77d67006df488c9fde4e0", "packages/drawings_toolbar/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/drawings_toolbar/fastui/base.py": "5aabafefad5433391c67bf5f5749141f", "packages/drawings_toolbar/fastui/draw_boxplot.py": "54cc901679b29dc27fbaa8c12a458daf", "packages/drawings_toolbar/fastui/draw_hist.py": "97f5fd773217c53c26c9d44c6905f8cf", "packages/drawings_toolbar/fastui/functions.py": "2756f0633851f7605644c78de2f9e7b6", "packages/drawings_toolbar/fastui/plot.py": "c52ba2a8e3dc27b6397480b316f3f745", "packages/drawings_toolbar/fastui/__init__.py": "b3f689f89235e0fd970023fb1910ebaa", "packages/drawings_toolbar/fastui/helps/boxplot.md": "c28b070128b33660fd657c82d7bd2d54", "packages/drawings_toolbar/fastui/helps/markers.md": "35a158b4cb160219a0d5f4c89025f50c", "packages/drawings_toolbar/fastui/helps/plot.md": "9a819ab6bdf462d779ff742d77e49526", "packages/drawings_toolbar/pmmap/china/all/01-beijing.npy": "05fc6e35605340ef6e4d62af9770ef7a", "packages/drawings_toolbar/pmmap/china/all/02-shanghai.npy": "dbd37714da88edf44df7a2642ce2c14f", "packages/drawings_toolbar/pmmap/china/all/03-tianjin.npy": "e767b1d0810acfd174d4b52586441de1", "packages/drawings_toolbar/pmmap/china/all/04-chongqing.npy": "1980444de2496af7ae7b11cae9372d2c", "packages/drawings_toolbar/pmmap/china/all/05-heilongjiang.npy": "f369a349db31ac0636e625737802922e", "packages/drawings_toolbar/pmmap/china/all/06-neimeng.npy": "0366d9f95bfe2e0768a6491f8f5e27cc", "packages/drawings_toolbar/pmmap/china/all/07-xinjiang.npy": "201b3ff97375ae9ba6e9fc9c7b0eed1e", "packages/drawings_toolbar/pmmap/china/all/08-jilin.npy": "0ed85b6d84b877cf07154e1b54db0bdd", "packages/drawings_toolbar/pmmap/china/all/09-gansu.npy": "08c6e4437a0fc5d19d6c655a14a7df2e", "packages/drawings_toolbar/pmmap/china/all/10-liaoning.npy": "542d598f5c39b363738b0b753d8318d1", "packages/drawings_toolbar/pmmap/china/all/11-hebei.npy": "5a7ce525859caabaffad0fe1c11cb26f", "packages/drawings_toolbar/pmmap/china/all/12-shanxi.npy": "5ebb5347431393d599f5f0d36a31dd07", "packages/drawings_toolbar/pmmap/china/all/13-shan3xi.npy": "71944b8eea6caa0b7e4138063d6e8945", "packages/drawings_toolbar/pmmap/china/all/14-ningxia.npy": "dc0660ac4216cb4e928fb08dba5e36fb", "packages/drawings_toolbar/pmmap/china/all/15-qinghai.npy": "46f4e9bf9a47734d0cfbef0916e6cec1", "packages/drawings_toolbar/pmmap/china/all/16-shandong.npy": "b3eee97751e252f1c729b20cde81220c", "packages/drawings_toolbar/pmmap/china/all/17-henan.npy": "530d73e54901bf816e61c86bafb97219", "packages/drawings_toolbar/pmmap/china/all/18-xizang.npy": "83c873032100d735d2a3c1becb4e4ee5", "packages/drawings_toolbar/pmmap/china/all/19-jiangsu.npy": "33051765300de0a9d003ea91c3846cc6", "packages/drawings_toolbar/pmmap/china/all/20-anhui.npy": "d80f40e27c3a60188547d058c827eae0", "packages/drawings_toolbar/pmmap/china/all/21-sichuan.npy": "115e4b1abbc6df1f862095e94cacb8b5", "packages/drawings_toolbar/pmmap/china/all/22-hubei.npy": "065b61ce8a2728be70d0e726990e42c2", "packages/drawings_toolbar/pmmap/china/all/23-zhejiang.npy": "6910df476893b4e5a84689094203b724", "packages/drawings_toolbar/pmmap/china/all/24-jiangxi.npy": "2d4e166cd8d9371a1c6d01848ece3301", "packages/drawings_toolbar/pmmap/china/all/25-hunan.npy": "ddbce0334a1f79bd77f7b0ae582dd28e", "packages/drawings_toolbar/pmmap/china/all/26-guizhou.npy": "4d23f4f330203b61c6f8cca0ac764819", "packages/drawings_toolbar/pmmap/china/all/27-yunnan.npy": "1d1c9378c8427667dbf0b8948c36b484", "packages/drawings_toolbar/pmmap/china/all/28-fujian.npy": "77270ff92f0d67f0123672527b70772a", "packages/drawings_toolbar/pmmap/china/all/29-guangxi.npy": "3862d0becc054fe754ae71c111c583ad", "packages/drawings_toolbar/pmmap/china/all/30-guangdong.npy": "7d7f1392cc01a22d4503354ce7c729b1", "packages/drawings_toolbar/pmmap/china/all/31-taiwan.npy": "2f398da02605db2be30751dedb92ea90", "packages/drawings_toolbar/pmmap/china/all/32-xianggang.npy": "b3cf9d637c7d87e82a86174f99be74da", "packages/drawings_toolbar/pmmap/china/all/33-aomen.npy": "68e3c682aef3e25cf873878a19df5361", "packages/drawings_toolbar/pmmap/china/all/34-hainan.npy": "a67e27cc4f68d566f6977580d95b006c", "packages/drawings_toolbar/pmmap/china/all/39-jiuduan.npy": "35fbdcbb72d2c22caab9b1bfd2eba401", "packages/drawings_toolbar/pmmap/china/small/30-guangdong.npy": "7d7f1392cc01a22d4503354ce7c729b1", "packages/drawings_toolbar/pmmap/china/small/31-taiwan.npy": "2f398da02605db2be30751dedb92ea90", "packages/drawings_toolbar/pmmap/china/small/32-xianggang.npy": "b3cf9d637c7d87e82a86174f99be74da", "packages/drawings_toolbar/pmmap/china/small/33-aomen.npy": "68e3c682aef3e25cf873878a19df5361", "packages/drawings_toolbar/pmmap/china/small/34-hainan.npy": "a67e27cc4f68d566f6977580d95b006c", "packages/drawings_toolbar/pmmap/china/small/39-jiuduan.npy": "35fbdcbb72d2c22caab9b1bfd2eba401", "packages/drawings_toolbar/source/down.svg": "fe6b296aa4020dda5c5a870bb7596235", "packages/drawings_toolbar/source/erase.png": "68beac11764738b4fd52d367e5ad8223", "packages/drawings_toolbar/source/grid.png": "a39688f7d385bf86ba28eaf9d63a286d", "packages/drawings_toolbar/source/label.png": "2289b06fad4b39ea868450cdfbdc5eea", "packages/drawings_toolbar/source/monitor.png": "7272e1f62681d4200a2d778ec3df27e5", "packages/drawings_toolbar/source/plot.svg": "05fd271af6c134f6872c80c489064d60", "packages/drawings_toolbar/source/split.png": "d3cdd812358fd82f19500d8ac1bbc3be", "packages/drawings_toolbar/source/ticks.png": "2165ab858f8de60f5132e861740f7699", "packages/drawings_toolbar/source/\u5730\u56fe.png": "eca50b3207a973738145d1cf12ca0c34", "packages/drawings_toolbar/source/\u6298\u7ebf\u56fe.png": "1bde0eca8cfa880452accf56ca925866", "packages/drawings_toolbar/source/\u6563\u70b9\u56fe.png": "78c432bb278d8ea5c9587f23ffdd5f82", "packages/drawings_toolbar/source/\u6761\u5f62\u56fe.png": "b07f4db5b1785376f97636fc6963234e", "packages/drawings_toolbar/source/\u67f1\u5f62\u56fe.png": "d6cba37e00bf9bbeb65235897a7b90b9", "packages/drawings_toolbar/source/\u6c14\u6ce1\u56fe.png": "d6784d4c53145cce1fde17f673b76984", "packages/drawings_toolbar/source/\u70ed\u529b\u56fe.png": "566d7c6ad396084ca6b7d490868fdc2c", "packages/drawings_toolbar/source/\u76f4\u65b9\u56fe.png": "87113fa7353e0342248a7c953949079e", "packages/drawings_toolbar/source/\u7bb1\u7ebf\u56fe.png": "ba733c4c1a0979ab5bc838149490e915", "packages/drawings_toolbar/source/\u7ec4\u5408\u56fe.png": "c5bea73cff095ad47bd07e1e81921ab2", "packages/drawings_toolbar/source/\u96f7\u8fbe\u56fe.png": "5aa1a48424b30a157a2bca181c9be2d0", "packages/drawings_toolbar/source/\u9762\u79ef\u56fe.png": "69682cc944d7afdd5c1f2019bf6ca21c", "packages/drawings_toolbar/source/\u997c\u56fe.png": "862b6c81a5752ee7d53500ce9064c10d", "packages/drawings_toolbar/translations/qt_zh_CN.qm": "cd23a7e488d169790b204929188d78e7", "packages/drawings_toolbar/translations/qt_zh_CN.ts": "ce76ad850f047e2cea0440e4dab7c7d4", "packages/embedded_browser/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/embedded_browser/index.rst": "f1825ba1705fc05e593342e0eb4d2800", "packages/embedded_browser/main.py": "23ad2b340856b4ee181f560c6234655c", "packages/embedded_browser/package.json": "662baeb4c74d3c20f8a4604a7a9922df", "packages/embedded_browser/settings.json": "ac084b924952c4c88e397f5c1f64c893", "packages/embedded_browser/webbrowser.py": "d9038ba9457b984e37a4ae1e19ab636a", "packages/embedded_browser/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/embedded_browser/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/embedded_browser/translations/zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/extension_demo/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/extension_demo/main.py": "b776c52a5c366b88629c1c12a0c4da57", "packages/extension_demo/package.json": "fe0c68ec838785d4f8ae971ce415f6db", "packages/extension_demo/settings.json": "ac084b924952c4c88e397f5c1f64c893", "packages/extension_demo/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/extension_demo/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/extension_demo/translations/zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/file_tree/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/file_tree/file_tree.py": "b65b3a68d28d55db5bfc3bfb1adecee2", "packages/file_tree/main.py": "210493015e96aecac98bba55bd57674b", "packages/file_tree/package.json": "0e08e253fce09755a4d9758cb55b3900", "packages/file_tree/settings.json": "5502d6d53ce7276a7cdaa1ef54315efb", "packages/file_tree/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/file_tree/src/up.svg": "cef12db3d43301347f3d556eb9499a6c", "packages/file_tree/translations/qt_zh_CN.qm": "76f4ace00b4ef9e66503cb39d5c9ab5d", "packages/file_tree/translations/qt_zh_CN.ts": "eefaa8ed0d5717aab5253c74ea7d6a3a", "packages/graph_agg/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/graph_agg/graph_agg.py": "7ebd645f566d7412c3af7de2865d2896", "packages/graph_agg/graph_agg_ui.py": "61edf67aebb1d89f92d604a8d22c1200", "packages/graph_agg/graph_agg_ui.ui": "45c54e740ed679ebcdc66594709eaf9f", "packages/graph_agg/main.py": "3399d8c6899a36a92b1910d55d05ea96", "packages/graph_agg/package.json": "b2bfcc74063422e491d0c3df279bbc38", "packages/graph_agg/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/ipython_console/commandparser.py": "8df507247c3112a5a164a961f8b154b5", "packages/ipython_console/index.rst": "de4df58d8cb7a27038ea01f08d3e74c9", "packages/ipython_console/initialize.py": "f75a73ebb2b6af4e198d47cb326ac8c6", "packages/ipython_console/ipythonqtconsole.py": "715c9c195c300400bd24375a2c0f2cac", "packages/ipython_console/ipython_console.jpg": "e2c98aceacdcf9370be0234c1ae56660", "packages/ipython_console/main.py": "764879652c234804c28091c167e8506f", "packages/ipython_console/package.json": "330d1b64fd0fa236f68e4e9148d7f2ff", "packages/ipython_console/README.md": "d91f325d8113d754239f36ebf6211e2d", "packages/ipython_console/requirements_ipython_node.txt": "7e2992fb7c705a5cc8a817af37b0b890", "packages/ipython_console/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/ipython_console/translations/qt_zh_CN.qm": "d32941bf701e20d30c70b509e3421f26", "packages/ipython_console/translations/qt_zh_CN.ts": "ae95465c0df4254a53d4144fd5a90148", "packages/jupyter_notebook_support/client.py": "64707c4c5af928668dfe5624020ab381", "packages/jupyter_notebook_support/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/jupyter_notebook_support/ipython_data_show.py": "ba5fafcca30e9db07a1330fb143b539d", "packages/jupyter_notebook_support/main.py": "1961046decf8e842648695f64f4a951a", "packages/jupyter_notebook_support/package.json": "8f1bbf103ab237adf5e932d77304bab6", "packages/jupyter_notebook_support/route.py": "d63fb2946b16cecd4c03b63b96b417fa", "packages/jupyter_notebook_support/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/jupyter_notebook_support/scripts/pyminer_ipython_node.py": "5afb85f04995a313be86875d55896b8f", "packages/jupyter_notebook_support/tests/exec_api_test.py": "db3498a3620bc730a093106024c3d895", "packages/jupyter_notebook_support/tests/find_free_port.py": "7519a17439dd072a5f5609dccf71acff", "packages/jupyter_notebook_support/tests/find_kernel_spec.py": "5e494c2592bc747a166f3e5eb1fdb0d2", "packages/jupyter_notebook_support/tests/jupyter_client_test.py": "cd2193f167111e6f74a51ce27671b6e0", "packages/jupyter_notebook_support/tests/list_running_jupyter_servers.py": "decfc524233da897d5ae4e0896ad42bf", "packages/jupyter_notebook_support/tests/test.json": "fd0693bed89aa001426c855cf60719da", "packages/jupyter_notebook_support/tests/Untitled.ipynb": "0eca040919ec50b82d4197e13564f3f8", "packages/jupyter_notebook_support/tests/.ipynb_checkpoints/Untitled-checkpoint.ipynb": "2f6cceae1d861df553a6ebb64b6862ef", "packages/jupyter_notebook_support/translations/qt_zh_CN.qm": "910b1a4eece778fe19eb8c37d856219b", "packages/jupyter_notebook_support/translations/qt_zh_CN.ts": "a52f5f65e0ebc5ef1c4c205d8b977e5b", "packages/pmagg/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/pmagg/LICENSE": "e49f4652534af377a713df3d9dec60cb", "packages/pmagg/main.py": "26f2abd09259651ad17e35b24de5a097", "packages/pmagg/package.json": "3f5b1d4110de43c171ec51876448d516", "packages/pmagg/PMAgg.py": "51be8eab2ca29167621904193a7d94e0", "packages/pmagg/Readme_CN.md": "b120eff0eec50462b099a5afc44e8135", "packages/pmagg/setup.py": "c819982245570068aeff72f2c4925d3c", "packages/pmagg/unit_test.py": "6cc0c2b57eebac72cb159bdb73dae6dd", "packages/pmagg/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pmagg/icons/annotation.png": "41abc31827d980673cb4b774d9cfc589", "packages/pmagg/icons/arrow.png": "faea79dbbe13b73b2b6b2d381d3f0b04", "packages/pmagg/icons/axis.png": "8aad7c4a25caea1eab5e00416383fe87", "packages/pmagg/icons/back.png": "7e3a69ff1b93c0d922903ca9753d9413", "packages/pmagg/icons/colorbar.png": "51edcf418f2920bcc55e703956345d22", "packages/pmagg/icons/figure.png": "6c84c49ce26f638a352654df89ee3d35", "packages/pmagg/icons/front.png": "b3675ce85ff0c87602fcee821606b376", "packages/pmagg/icons/grid.png": "f495112a5ee666819bccc792ac9ab480", "packages/pmagg/icons/home.png": "e4a7f4019b4ea9cb1f375da78a2e5adf", "packages/pmagg/icons/Icon.ico": "3fe019a16833a4b89743e829706a22a6", "packages/pmagg/icons/image.png": "9a685d94a08e6dab95ab996ac36c3019", "packages/pmagg/icons/layout.png": "113fcb65d470b3c44eca07a69883b067", "packages/pmagg/icons/legend.png": "4554646775b8caab3af239051e231530", "packages/pmagg/icons/line.png": "0ad86f368735816bb25dae9a6037d042", "packages/pmagg/icons/oval.png": "bf5e995685d6bd1758ddc56db9a706c1", "packages/pmagg/icons/pan.png": "d31d48619f6187a992f8bc51f4bbbf31", "packages/pmagg/icons/point.png": "6ea950ae1d8f16fc9d364dea468e1bf6", "packages/pmagg/icons/polygon.png": "a7d892e0a3ca8e00aefc73211cc211aa", "packages/pmagg/icons/rect.png": "9088ab4129c08c3370675a27c5af7f76", "packages/pmagg/icons/rotate.png": "b058a0e469a679d752ea393eb8b94204", "packages/pmagg/icons/save.png": "1f019d1efc880a99aa0d6c413d4b1672", "packages/pmagg/icons/setting.png": "2ca8a4d585232a124bc8f8bbaf913eec", "packages/pmagg/icons/space.png": "a63438f63e5c9a61ae377f92e4638427", "packages/pmagg/icons/style.png": "5479b633bfd95b75aca566d283f90f2d", "packages/pmagg/icons/text.png": "2d058b7289a520eb1087ea7957e85a18", "packages/pmagg/icons/X_axis.png": "81b2fbfd328ea56e03bbac9d98f54bd0", "packages/pmagg/icons/Y_axis.png": "dec07bca2db81b7a13d05cf63147042c", "packages/pmagg/icons/zoom.png": "624d6036e5af3901a672926eed0cfd74", "packages/pmagg/icons/Z_axis.png": "4ef63246be7447c74de3fc6352f56782", "packages/pmagg/langs/en_axes_control.qm": "3e31bb846d2075752f2083796bbab081", "packages/pmagg/langs/en_axes_control.ts": "e3f2a95ffc1ee822600420487fc64497", "packages/pmagg/langs/en_pmagg_ui.qm": "0d72b1e6a3868f6a9d7f4353dc49da57", "packages/pmagg/langs/en_pmagg_ui.ts": "c40ed0942c1fc822cbfdac7d51728e15", "packages/pmagg/langs/zh_CN_axes_control.qm": "43c4b723bf698383102abf57ae7ff375", "packages/pmagg/langs/zh_CN_axes_control.ts": "b69e3a2583aab4d47e9042151ddd4431", "packages/pmagg/langs/zh_CN_pmagg_ui.qm": "bcebcf42735c6849bdecbb77451021dd", "packages/pmagg/langs/zh_CN_pmagg_ui.ts": "a924984618a9687fe9bed9cd1ab3e8bd", "packages/pmagg/pictures/pmagg_api.mmd": "3c46f4d87fb3706b4b1bd70b7e442a5d", "packages/pmagg/pictures/pmagg_api.png": "822f49430932514591eda54acfc10a1f", "packages/pmagg/pictures/pmagg_show.png": "5dc944f02aa22177c5c24ab1f71a391d", "packages/pmagg/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/pmagg/translations/zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/pmagg/ui/arrow_setting.py": "d8e8f2f7101729c6ced2cd4f4dd0ee6d", "packages/pmagg/ui/axes_control.py": "b232825bef4aa017e9bbf92b57640f49", "packages/pmagg/ui/axis_edit.py": "4875d36d29871c4d87c05108117d9f9f", "packages/pmagg/ui/axis_edit.ui": "f7b92a8a5d9b4ca769bf42ebdb34577a", "packages/pmagg/ui/axis_edit_manager.py": "e2245787fc389cb116ca56c37131addd", "packages/pmagg/ui/colorbar_setting.py": "46a557021eeeefe8c56bf5f9e26629cd", "packages/pmagg/ui/color_table.py": "e209c8c3d24f582978ca33100de623a5", "packages/pmagg/ui/default_setting.py": "5846b7322727ee4b19dc7b6c336d1947", "packages/pmagg/ui/default_setting.ui": "b93e791244d7912a51bbaf75a2deff38", "packages/pmagg/ui/default_setting_manager.py": "c06f05023a1bbd6eb754b0e68209fca6", "packages/pmagg/ui/ellipse_setting.py": "4d24440e44796ada3a73a387600899fc", "packages/pmagg/ui/image_setting.py": "6e909b7852eb02a52455a9aa36da7bed", "packages/pmagg/ui/legend_setting.py": "6e3a19772353cdf39944df1e4faa17dd", "packages/pmagg/ui/line2d_setting.py": "470ef26ff8d454e8247f37277d5a785a", "packages/pmagg/ui/linestyles.py": "648f0a673e71e4d08c98e0cc6864202e", "packages/pmagg/ui/pmagg_ui.py": "0ac0c186e7177a3a9c6aee2d9d409177", "packages/pmagg/ui/pmagg_ui.ui": "f1a0f6ff01e632a4994f00258356911f", "packages/pmagg/ui/rectangle_setting.py": "3080ff255cfe2378777f68025e61f2c4", "packages/pmagg/ui/save_image_setting.py": "16036a37904ffa3f20fecc7d004b009f", "packages/pmagg/ui/text_setting.py": "34de8bed7cf453d59fe938be0fbfe92c", "packages/pmagg/ui/title_setting.py": "ebdf8cbd5684278ec81c9cdde176b684", "packages/pmagg/ui/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pm_calc/ipython_console.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/pm_calc/main.py": "83b0f01515be0f4f76da807e9cb61125", "packages/pm_calc/package.json": "9fdd3a4c9b4a20d39944e5f390642e1e", "packages/pm_calc/preprocess.py": "a8c8d1cb131393e4bf0a6e43503f5c7b", "packages/pm_calc/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pm_calc/fastui/base.py": "76ac4b617688dfeb97d75c73803dcd44", "packages/pm_calc/fastui/create_random_variable.py": "fa6d77ce65a13e4974da9f5a33516d2a", "packages/pm_calc/fastui/create_tensor.py": "bde0d9952e2ab26e9fb5f47cf8fff98a", "packages/pm_calc/fastui/create_vector.py": "cb707dcfefc1f308d25c17d6a034cdfc", "packages/pm_calc/fastui/dblquad.py": "5e4c5b60231b67cbe5233de0b555f308", "packages/pm_calc/fastui/equation_solve.py": "6fdb3b720ad9547553938a3b735bf970", "packages/pm_calc/fastui/matrix_calc.py": "fc4dbc1ce3af2ae26125d1adb7f8f690", "packages/pm_calc/fastui/matrix_inv.py": "bd826082ba2b3c8775563da8c3ee6321", "packages/pm_calc/fastui/matrix_numbers.py": "b9bc2f888b2c98743072fc686e07751f", "packages/pm_calc/fastui/numerical_integration.py": "57edb1443625bdc5d990aa4d99f6272e", "packages/pm_calc/fastui/reshape_tensor.py": "0647e734b05f39cef659c82c315fb023", "packages/pm_calc/fastui/__init__.py": "b3f689f89235e0fd970023fb1910ebaa", "packages/pm_calc/fastui/helps/numerical_integration.md": "df25b4e7795b58e927c62368d814f0ab", "packages/pm_calc/fastui/helps/reshape_tensor.md": "96a600a163541231dc71d43438de0ab4", "packages/pm_calc/icons/create.png": "d94320bc7e7a4dded74f4eda5b6d1c3e", "packages/pm_calc/icons/eigen.png": "97048cae872a927137f5b7295828c5c2", "packages/pm_calc/icons/equation_solve.png": "af3de472d63ef0e8e6005c153d29ad0b", "packages/pm_calc/icons/flip.png": "e769eeaa1f423de72f34dda86f088540", "packages/pm_calc/icons/integrate.png": "0d3a7f301fa771ee8ef56b10541551d9", "packages/pm_calc/icons/matrix.png": "5b97eee2dae1233c831daae04c5dd98f", "packages/pm_calc/icons/matrix_calc.png": "151e56c9e82870f7cf9783971ee37782", "packages/pm_calc/icons/reshape.png": "3ee90fbdcf09e1bcf3f24e13be041530", "packages/pm_calc/icons/rvs.png": "da077db4d3d834bb311f445e6a9a07c7", "packages/pm_calc/translations/qt_zh_CN.qm": "38862557de320f2ff74455ab1c059a5a", "packages/pm_calc/translations/qt_zh_CN.ts": "c17e3ce1dd88a0cfc45d42cd1f706361", "packages/pm_helpLinkEngine/helpLinkEngine.py": "8e712a1e13bd4d0dd0a5f3cbb59212e0", "packages/pm_helpLinkEngine/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pm_marketplace/env_manager.py": "b3d1a95732a2b9c9af7ebb3f2d919f08", "packages/pm_marketplace/env_manager.ui": "c910e7c1fdb7d4931ae6395f32fdb06f", "packages/pm_marketplace/Icon.ico": "3fe019a16833a4b89743e829706a22a6", "packages/pm_marketplace/package_install.py": "3b2122f43e471ed12022254a633e93ea", "packages/pm_marketplace/package_install.ui": "58c036d918d493749750442a6dd6e56c", "packages/pm_marketplace/package_manager.py": "9bc3ebc8d0896b8c90661b5e3e0bab5b", "packages/pm_marketplace/package_remove.py": "2882477a6acf357e401983e64a9e5b3d", "packages/pm_marketplace/package_remove.ui": "cd82652c1c18ce309b7b39f64eb1eb93", "packages/pm_marketplace/package_setting.py": "0900c75df4d09edb2df07df0d40b3893", "packages/pm_marketplace/package_setting.ui": "7294066d39daafe32bfb6e14dc9bd4b2", "packages/pm_marketplace/package_update.py": "7bb12094c0e57a557e2e1d104300e910", "packages/pm_marketplace/package_update.ui": "73dd8b7e55bd1dc9730991b5b9a06fd4", "packages/pm_marketplace/pm_marketplace.py": "c00744c2f27e852e4ad0d2d37df043f7", "packages/pm_marketplace/pm_marketplace.ui": "72b055181d7bd41dbfdd06feac750245", "packages/pm_marketplace/pth_modifier.py": "330f9dce62a058e767c9654020ff2012", "packages/pm_marketplace/__init__.py": "e4e5f41117ada3d729f55649c34a3932", "packages/pm_modelling/default.png": "b58b2daf9a2a44726b678f235aed41e6", "packages/pm_modelling/main.py": "936de10bd651db7f14815477894bed86", "packages/pm_modelling/package.json": "ce1142cf81e5d40919fcce5ebe2ae4f9", "packages/pm_modelling/settings.json": "e4385e0a6554dfe40b3696f328f5edd1", "packages/pm_modelling/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pm_modelling/source/down.svg": "fe6b296aa4020dda5c5a870bb7596235", "packages/pm_modelling/source/plot.svg": "05fd271af6c134f6872c80c489064d60", "packages/pm_modelling/source/\u5730\u56fe.png": "eca50b3207a973738145d1cf12ca0c34", "packages/pm_modelling/source/\u6298\u7ebf\u56fe.png": "1bde0eca8cfa880452accf56ca925866", "packages/pm_modelling/source/\u6563\u70b9\u56fe.png": "78c432bb278d8ea5c9587f23ffdd5f82", "packages/pm_modelling/source/\u6761\u5f62\u56fe.png": "b07f4db5b1785376f97636fc6963234e", "packages/pm_modelling/source/\u67f1\u5f62\u56fe.png": "d6cba37e00bf9bbeb65235897a7b90b9", "packages/pm_modelling/source/\u6c14\u6ce1\u56fe.png": "d6784d4c53145cce1fde17f673b76984", "packages/pm_modelling/source/\u70ed\u529b\u56fe.png": "566d7c6ad396084ca6b7d490868fdc2c", "packages/pm_modelling/source/\u76f4\u65b9\u56fe.png": "a9b01bca53610b2c03f7ea2331c91cc3", "packages/pm_modelling/source/\u7bb1\u7ebf\u56fe.png": "ba733c4c1a0979ab5bc838149490e915", "packages/pm_modelling/source/\u7ec4\u5408\u56fe.png": "c5bea73cff095ad47bd07e1e81921ab2", "packages/pm_modelling/source/\u96f7\u8fbe\u56fe.png": "5aa1a48424b30a157a2bca181c9be2d0", "packages/pm_modelling/source/\u9762\u79ef\u56fe.png": "69682cc944d7afdd5c1f2019bf6ca21c", "packages/pm_modelling/source/\u997c\u56fe.png": "862b6c81a5752ee7d53500ce9064c10d", "packages/pm_modelling/translations/qt_zh_CN.qm": "8a5de3a24facfac59b9b7a95ab7937d7", "packages/pm_modelling/translations/qt_zh_CN.ts": "611800964b03dfef8c1cbc1dc4a0bd9c", "packages/pm_preprocess/base.py": "731a2f17cc570b8b92e5da9e323e07f9", "packages/pm_preprocess/datafilter.py": "ac09562b0e7a6b9094225e01bc70e08c", "packages/pm_preprocess/datamissingvalue.py": "51a2e07966da2b720141bd8cb4721678", "packages/pm_preprocess/datareplace.py": "3cce7391493a104a2fc59a7f792a1883", "packages/pm_preprocess/data_filter.py": "102b1b8071747d6d8ed25530e206c5e7", "packages/pm_preprocess/ipython_console.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/pm_preprocess/main.py": "dd006452670a44799031989f21730175", "packages/pm_preprocess/package.json": "c27f88add11891797e8564867f94abfe", "packages/pm_preprocess/preprocess.py": "a8c8d1cb131393e4bf0a6e43503f5c7b", "packages/pm_preprocess/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pm_preprocess/fastui/base.py": "97be57a24cb88f7de7aee11e768364ab", "packages/pm_preprocess/fastui/datamerge.py": "c11ecb39655996d441747c93d3a82a0a", "packages/pm_preprocess/fastui/dropna.py": "44a433355c6732b5c9a2ceebd2fed587", "packages/pm_preprocess/fastui/fillna.py": "fe5d6a6f14f21db63116e5ece2dcb9c6", "packages/pm_preprocess/fastui/pivot.py": "dc302f4e2a9a0a03f035cb04452dc978", "packages/pm_preprocess/fastui/transpose.py": "b9873caa7d3d698221fcd590eb848e27", "packages/pm_preprocess/fastui/__init__.py": "5774d567a5ade4656321f056692ecf7c", "packages/pm_preprocess/fastui/templates/dropna.json": "2135651085e530edc3555862c807e8a2", "packages/pm_preprocess/fastui/templates/dropna.py": "818d27872b51cabc824f36545e848dc2", "packages/pm_preprocess/fastui/templates/template.py": "ab8ca29cb2d8a0116de63f411ad08729", "packages/pm_preprocess/translations/qt_zh_CN.qm": "38862557de320f2ff74455ab1c059a5a", "packages/pm_preprocess/translations/qt_zh_CN.ts": "c17e3ce1dd88a0cfc45d42cd1f706361", "packages/pm_preprocess/ui/data_column_desc.py": "50e1de93cb2b5af92ef9f70ec61b28ae", "packages/pm_preprocess/ui/data_column_desc.ui": "2e4ff14a2934d2e461967f4adf57d096", "packages/pm_preprocess/ui/data_column_encode.py": "addb53a419ba7aad0c822918bd164584", "packages/pm_preprocess/ui/data_column_encode.ui": "83585c68a1b5f10c8cb5c8f979fc069a", "packages/pm_preprocess/ui/data_column_name.py": "ab1343d7eb25ba61ff00653dc727dcd2", "packages/pm_preprocess/ui/data_column_name.ui": "290d0f3b71254001a41ed5419cfc2aa7", "packages/pm_preprocess/ui/data_delete_column.py": "96cc3bb3a839bf327be48c5b8bcf7b4f", "packages/pm_preprocess/ui/data_delete_column.ui": "eb9f4daa76ea45a80897c7d699f0223a", "packages/pm_preprocess/ui/data_delete_row.py": "302569fa225a51a1f63cc8fd740532f2", "packages/pm_preprocess/ui/data_delete_row.ui": "a2bef2e740f12897748cb3ab8942c994", "packages/pm_preprocess/ui/data_filter.py": "18e9c3b6ec4a59ee18b9304234354fee", "packages/pm_preprocess/ui/data_filter.ui": "6b68ea20099eb2657a83277c2b35c5e2", "packages/pm_preprocess/ui/data_import_database.py": "aa8f2c175707416490b15c5b8a5f91b1", "packages/pm_preprocess/ui/data_import_database.ui": "70081a8159869c52d03f42ff96198bcd", "packages/pm_preprocess/ui/data_import_excel.py": "50eab4e5f295ac1e36b415bc1fc4ce17", "packages/pm_preprocess/ui/data_import_excel.ui": "8e4fad97836b5ade1bcf623df4019354", "packages/pm_preprocess/ui/data_import_sas.py": "b46b3a739487b88044585b81d8e1e6c3", "packages/pm_preprocess/ui/data_import_sas.ui": "3a238589200dae2ca6d95b9f76658bd4", "packages/pm_preprocess/ui/data_import_spss.py": "f2429d58b23aca160b2652423d57c491", "packages/pm_preprocess/ui/data_import_spss.ui": "02e6076ba3dba639a81488f57a779acd", "packages/pm_preprocess/ui/data_import_text.py": "72839d8f4905a64c72e3e1ef25f0e084", "packages/pm_preprocess/ui/data_import_text.ui": "42ff2c69c472636f51e11b1d26162306", "packages/pm_preprocess/ui/data_info.py": "9be5f4ff591e53d622773a0323d00195", "packages/pm_preprocess/ui/data_info.ui": "d4fcd989ceba0f39012093152207d598", "packages/pm_preprocess/ui/data_merge.py": "22e207fe8f408b7c558e4f9231c2812b", "packages/pm_preprocess/ui/data_merge.ui": "9cacfe18fc7720477acc7a53b46dd35f", "packages/pm_preprocess/ui/data_merge_horizontal.py": "af3de8607ed351d77daa6213fb2828bc", "packages/pm_preprocess/ui/data_merge_horizontal.ui": "d61611fdb4e9cde0fbc2e2c332f48bf5", "packages/pm_preprocess/ui/data_merge_vertical.py": "ef03b6681fd55cf8eb42138024ad1a4e", "packages/pm_preprocess/ui/data_merge_vertical.ui": "59f79c7fa7b08e5ae1e1aeb83eb05987", "packages/pm_preprocess/ui/data_missing_value.py": "81f362bf96738d9138b85a3d1a2dd9e2", "packages/pm_preprocess/ui/data_missing_value.ui": "14e0e959934e191ca4ecc2b65342864f", "packages/pm_preprocess/ui/data_new_column.py": "e079cabae617aeb3ba5fab8656bc79d6", "packages/pm_preprocess/ui/data_new_column.ui": "8d83bde6b1701635d9266ff9fe8047d6", "packages/pm_preprocess/ui/data_partition.py": "6f723fbf5b83bc18194b0e9242d08177", "packages/pm_preprocess/ui/data_partition.ui": "bb426c3df5bd8e2300a6fce26f0acb45", "packages/pm_preprocess/ui/data_repace.py": "76d5e5f3168158c6527adbc1c1b1d309", "packages/pm_preprocess/ui/data_repace.ui": "853b6f43d364faaae3d6f2ed484681ea", "packages/pm_preprocess/ui/data_role.py": "698c50eb2a907f5e517454a28d610daf", "packages/pm_preprocess/ui/data_role.ui": "9b659e8e2accf1bf76fe39efa74152ff", "packages/pm_preprocess/ui/data_role_edit.py": "f93e00c6adfd65e436630e4c5c097d3c", "packages/pm_preprocess/ui/data_role_edit.ui": "18a531771deee0c25777880c0f0894e6", "packages/pm_preprocess/ui/data_row_filter.py": "32baeee9b80430448f0e1f8af96a60e2", "packages/pm_preprocess/ui/data_row_filter.ui": "7a9b909a49af56c8f2916bf4c3f186f5", "packages/pm_preprocess/ui/data_sample.py": "a4919fe81ffbd64838ed0b84b924d36b", "packages/pm_preprocess/ui/data_sample.ui": "f43301f891fd0450fe7800cb81ff4af0", "packages/pm_preprocess/ui/data_sort.py": "fc051898a3fd9a70ff38fe8ff1d3106c", "packages/pm_preprocess/ui/data_sort.ui": "674a1b2eb62111b5c5134b01ed6d684e", "packages/pm_preprocess/ui/data_standard.py": "822ec20008baf2b82b8ee00ea1711933", "packages/pm_preprocess/ui/data_standard.ui": "65a2eca4b0f6ea65a6edf0c9b6f1628f", "packages/pm_preprocess/ui/data_transpose.py": "97b688d1ca7fb74f5bd72a615eac397e", "packages/pm_preprocess/ui/data_transpose.ui": "d5b50013e984a0f56af8b45aa213fd20", "packages/pm_statistics/default.png": "b58b2daf9a2a44726b678f235aed41e6", "packages/pm_statistics/describe.py": "d48a7e2d4573eec5ea2d6b78f6d518cf", "packages/pm_statistics/main.py": "35a51268c3d516d91f75fd155981327e", "packages/pm_statistics/package.json": "b0cfa0a43b9b4ceffef50955bc142708", "packages/pm_statistics/settings.json": "e4385e0a6554dfe40b3696f328f5edd1", "packages/pm_statistics/stat_desc.py": "1d1af20f21d51a2c4c937b583fa1c1e0", "packages/pm_statistics/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/pm_statistics/source/add.svg": "abddfead93cdf1feeff13e0fb361b2bc", "packages/pm_statistics/source/collect.svg": "df376dc82733ce771785e80417b5730c", "packages/pm_statistics/source/comment.svg": "17b32e5429d0af97cb4b0cb0b878301a", "packages/pm_statistics/source/descending.svg": "4c0294dcdbb972f6f7e7daae9ca3695e", "packages/pm_statistics/source/down.svg": "cf38a40a26932f5d960da15d8bbcb9f5", "packages/pm_statistics/source/history.svg": "f5e2890d446cc530e8505c2a8bcbeb4c", "packages/pm_statistics/source/left(1).svg": "195de59f0ae8946bbdad79b1e6211c13", "packages/pm_statistics/source/left.svg": "5e2fab4fbb3002791406ffb7d4f24552", "packages/pm_statistics/source/like(1).svg": "be280f55711fe37711710d66cc6de07f", "packages/pm_statistics/source/like.svg": "cd5a555d5aeb29ea51c2d4c411a8e2f7", "packages/pm_statistics/source/offline.svg": "864ab749688d77a17dd418ddd12f613f", "packages/pm_statistics/source/print.svg": "58e74f093ab0f76d7a5f4827139d8202", "packages/pm_statistics/source/reduce.svg": "d3a4d2cb5e65462b6e488f9008101095", "packages/pm_statistics/source/replace.svg": "2c9371c33c45026339f8f0a0fad242bb", "packages/pm_statistics/source/right(1).svg": "6ab0334feba1ebc9fe424a408dbeb053", "packages/pm_statistics/source/right.svg": "0d34209038963d8520605c2945a4aea5", "packages/pm_statistics/source/up.svg": "bfc6c9a4e8afe014a9ef2a3a2eaac829", "packages/pm_statistics/source/user.svg": "03789a31cc8d77164ee5e38758be9fed", "packages/pm_statistics/source/view.svg": "404b787576ea5ee3fb77e219a4020739", "packages/pm_statistics/translations/qt_zh_CN.qm": "27c309c51dd6a9b4453805a9d57314d8", "packages/pm_statistics/translations/qt_zh_CN.ts": "6f69f9df98fc80ba305d1ce1bc850e9a", "packages/pm_statistics/ui/stats.qrc": "9e88108821db568452feff5c52cd51bf", "packages/pm_statistics/ui/stats_rc.py": "aed3f3d5bd2699a234c5b87a8c90c27a", "packages/pm_statistics/ui/stat_base.py": "16ff0fac4ad347a51cb36503ddabc76b", "packages/pm_statistics/ui/stat_base.ui": "5b3601a91453d85b8ba247fac1772a85", "packages/qt_vditor/client.py": "b5f987d7265282647636753bb1992169", "packages/qt_vditor/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/qt_vditor/main.py": "43f5ca83b9b8de08a4b08f98c8d5b12c", "packages/qt_vditor/package.json": "a6ea48177df90bd33e6d9ef571715434", "packages/qt_vditor/route.py": "81e4d783b1ee5662a42175044860ac97", "packages/qt_vditor/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/qt_vditor/examples/sample.md": "6d463f26da3f758e8f8cd73d2f07a013", "packages/qt_vditor/templates/index.html": "ed4bff205de492bd9a445b878941ab98", "packages/setting_manager/main.py": "5e25055f2748fd8f2e16ef6cd438cbfe", "packages/setting_manager/package.json": "7b1091e765c316eb4602acbff21a7b5b", "packages/setting_manager/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/setting_manager/settings.json": "d41d8cd98f00b204e9800998ecf8427e", "packages/setting_manager/settings.py": "f60620c0bbfe1bc061bfc00759107674", "packages/setting_manager/ui_inputs.py": "16c170ac829957e8bd4f3b02f4375472", "packages/setting_manager/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/setting_manager/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/setting_manager/translations/zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/socket_server/extension_demo.jpg": "d138a0042696fac046fa3b8a05d5d674", "packages/socket_server/index.rst": "e1840535bf3051014eab7bb2c76fbc10", "packages/socket_server/main.py": "a032c7a064b344e47dd998c545feb38f", "packages/socket_server/package.json": "12d6c14b45eb86427e311e31d005fa20", "packages/socket_server/server_by_socket.py": "77e46bf007fd51f41471b7901bc4b7e1", "packages/socket_server/settings.json": "ac084b924952c4c88e397f5c1f64c893", "packages/socket_server/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/socket_server/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/socket_server/translations/zh_CN.ts": "023045a080a9a26547219f054c272d80", "packages/workspace_inspector/data_viewer.py": "96d8e120289b60f4fe6a4877c807a12e", "packages/workspace_inspector/inspectortable.py": "7e88412960946a64afcdaee6b3bf1902", "packages/workspace_inspector/main.py": "4d6088b006fe4b09815eb34cfad86dcb", "packages/workspace_inspector/package.json": "9ed3843023e8b054420bd126866d6962", "packages/workspace_inspector/python.jpg": "81740ef62fda1acb2905ad8dedb96385", "packages/workspace_inspector/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "packages/workspace_inspector/translations/qt_zh_CN.qm": "4c1aa1fdb602f504983cfc1f303fdb4b", "packages/workspace_inspector/translations/qt_zh_CN.ts": "0176607ae0f96037d5b756be88615f76", "pmgwidgets/get_time_consuming_classes.py": "b1cc4fe83988288288bb4d46a55297e8", "pmgwidgets/__init__.py": "d4a51fe0c972d4f917c7c2029f6d83f5", "pmgwidgets/display/examples.py": "ed6581d11a7624a45e76a0c214abb6e4", "pmgwidgets/display/__init__.py": "de9a0f70e421564574c3c849d8c9cbcd", "pmgwidgets/display/browser/browser.py": "6471eef6706c84e33e915d2539d7ad74", "pmgwidgets/display/browser/get_ipy.py": "fdcef50d9c3d562c0c1a01a07fffac29", "pmgwidgets/display/browser/handler.py": "8360907d55237220c8409d02896e1630", "pmgwidgets/display/browser/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/dynamicgraph/pgexample.py": "3fd8ccf52c92ebeb164ca3b048b657bc", "pmgwidgets/display/dynamicgraph/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/dynamicgraph/base/basetimeseries.py": "5c6cef4a05d653d276681d9281ea7eb3", "pmgwidgets/display/dynamicgraph/base/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/dynamicgraph/mplplots/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/dynamicgraph/pgplots/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/matplotlib/pmagg.py": "bbee7bf2140f5b9e7d0f2bd3f9f1dd53", "pmgwidgets/display/matplotlib/qt5agg.py": "33f10a259f5fa8973c6cb863ef117285", "pmgwidgets/display/matplotlib/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/matplotlib/pyqtgraph/pyqtgraphwidget.py": "c260badf3dd0ad2f2e3bcd0ae107dcd3", "pmgwidgets/display/matplotlib/pyqtgraph/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/display/vtk/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/docs/threading_and_tasking.md": "803fb7aad9cbd712229fa089727d2aae", "pmgwidgets/docs/doc_figures/pmflowarea_2.png": "4c5b6d091ae5fdc685e94c64a3561218", "pmgwidgets/doc_figures/nested_lists_to_place_widgets.png": "3b3dfe1437591299762a3307ba9880a0", "pmgwidgets/doc_figures/pmflowarea_1.png": "aeef39398e583540e55a87c04fcb19fc", "pmgwidgets/doc_figures/pmflowarea_2.png": "4c5b6d091ae5fdc685e94c64a3561218", "pmgwidgets/doc_figures/settings_panel.png": "d1e20e63c914275463ed75740228e7b6", "pmgwidgets/elements/dockobject.py": "bbad65e7b1f0304112a70c28917c4fe4", "pmgwidgets/elements/toolbar.py": "adb36bf834bbb12c5baabfb323dc5297", "pmgwidgets/elements/__init__.py": "5d3ff4be23732caafec3725aacfd2bb1", "pmgwidgets/examples/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/examples/utilities/examples.py": "4b738678a2cec6ca81f038d2aad1ebc4", "pmgwidgets/examples/utilities/long_conn.py": "a7fb1b9aac35414235ef80dbd1715812", "pmgwidgets/examples/utilities/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/flowchart/create_node_content_class.md": "e15251c3574ee6f3472cb32984007f1c", "pmgwidgets/flowchart/dataprocesswidget.py": "5830d35615c1b8e05555d4005089f1dd", "pmgwidgets/flowchart/readme.md": "13c783b72c01bbef6fd2462deb54d1e1", "pmgwidgets/flowchart/readme_arch.md": "15760931b08a70d8257b8e3695f06105", "pmgwidgets/flowchart/simulationwidget.py": "17b7dadaf18e84f2d359f2e24571cbe4", "pmgwidgets/flowchart/__init__.py": "1ec9907600bd333efbac93fb205ba8d7", "pmgwidgets/flowchart/\u521b\u5efa\u65b0\u8282\u70b9(deprecated).md": "c9a0c64e31e69a6c2b226590bf174049", "pmgwidgets/flowchart/core/flowchart_scene.py": "8e6b923663fb49519f6555d181c6bc2b", "pmgwidgets/flowchart/core/flowchart_widget.py": "6e61a893445b0c08e6bb4fc04f5c9663", "pmgwidgets/flowchart/core/flow_content.py": "9f7f15c45ea181fa9390cac06823cca6", "pmgwidgets/flowchart/core/flow_items.py": "45810b572b64dfb46b1dbafc4c8391bb", "pmgwidgets/flowchart/core/flow_node.py": "426bd423a15ea028aae608489bf27c2f", "pmgwidgets/flowchart/core/nodemanager.py": "22f10c693caabc1a588658af292a8238", "pmgwidgets/flowchart/core/utils.py": "5e2a38303e8fd30ed7ce3131d99ee4ae", "pmgwidgets/flowchart/core/__init__.py": "33d597a87ce723d432ee101bfea5933c", "pmgwidgets/flowchart/doc_figures/before_run.png": "56d3c6e2d043d5be501d27a016bf2eb0", "pmgwidgets/flowchart/doc_figures/check_json.png": "98dcb1514c6a63b37820704c3ff76ce3", "pmgwidgets/flowchart/doc_figures/click_edit_button.png": "1a6625861a3fbd71cf14aa948b16eced", "pmgwidgets/flowchart/doc_figures/click_right_top_add_button.png": "116cc66ea7f7a01621afa2bceeefde15", "pmgwidgets/flowchart/doc_figures/composition_structure.png": "8a898076c0aa77e7cfe627a933d29c73", "pmgwidgets/flowchart/doc_figures/configure_panel.png": "6fc3b5d60c9df7dc4b7ae1ca73162e0a", "pmgwidgets/flowchart/doc_figures/create.png": "77d2839be9232d6923e99ac372f1bdd5", "pmgwidgets/flowchart/doc_figures/create_new_content_Mul.png": "7d8073ceafe5de7b52cc99b7b0f83b70", "pmgwidgets/flowchart/doc_figures/create_node.png": "5defabfa57656965e0ce99fe418d9559", "pmgwidgets/flowchart/doc_figures/custom_node.png": "98076ecba04484ffb0f68bc1d3ebe506", "pmgwidgets/flowchart/doc_figures/edit_node.png": "5bab19f7eb2b5794e85edaaac6ac8f9f", "pmgwidgets/flowchart/doc_figures/edit_panel_meaning.png": "fc03b61991304dbc4b9757420d4853d3", "pmgwidgets/flowchart/doc_figures/popup_edit_panel.png": "a069ec207a2060649079a5876ef785e1", "pmgwidgets/flowchart/doc_figures/sketch_after_edit.png": "562a4f15b3d808e34ed205ba4859c66d", "pmgwidgets/flowchart/icons/down.png": "fe8105e197d1a8dbb7c3f4d04605cc94", "pmgwidgets/flowchart/icons/logo.png": "3ba1fce2f5b57a2ab16287e9d0784702", "pmgwidgets/flowchart/nodes/dfoperation.py": "3ea5a1b70fc51b363cd8d6ea029aa64f", "pmgwidgets/flowchart/nodes/docparser.py": "97e1297436001fc6d447a957799d56d6", "pmgwidgets/flowchart/nodes/plots.py": "1423de8473b088b0cf15fada6cebffdc", "pmgwidgets/flowchart/nodes/random.py": "bbab2dc862413421cfec6c250f5f04cf", "pmgwidgets/flowchart/nodes/reliabilities.py": "834359f014c3618af22987679829df79", "pmgwidgets/flowchart/nodes/simplecalc.py": "75c69d36c3813ee5e6b7f98c8c1893e2", "pmgwidgets/flowchart/nodes/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/flowchart/nodes/dataframeoperation/dropduplicated.py": "5db7eb9383b7e18a6e6b185b657c2f4e", "pmgwidgets/flowchart/nodes/dataframeoperation/randomrowsample.py": "594931f937571051aaa08115303f9b9d", "pmgwidgets/flowchart/nodes/dataframeoperation/__init__.py": "590a3c48436d17b168ab491e3d5ef71d", "pmgwidgets/flowchart/nodes/io/iterator.py": "d41401063ca9a942416f0f057de62c29", "pmgwidgets/flowchart/nodes/io/listdir.py": "8c5903f20f49659f9af2a7ec201d96b3", "pmgwidgets/flowchart/nodes/io/pdimport.py": "c32294f54f65a3f25ba6fd1cdabef0ea", "pmgwidgets/flowchart/nodes/io/__init__.py": "e6a014f94141e383286a37068a446b4d", "pmgwidgets/flowchart/tests/continously_data_process.py": "8f7cbef680438882a373a1a98b6f763c", "pmgwidgets/flowchart/tests/database_import.py": "ac1bb7f644465845aac15203b459813a", "pmgwidgets/flowchart/tests/fault_tree.py": "4e7a094f1bf83835627c17ecf51eec0a", "pmgwidgets/flowchart/tests/node_test.py": "49436316b4bcffa573c07cf714f61d29", "pmgwidgets/flowchart/tests/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/utilities/__init__.py": "846122683610ac9a3a02228d40c893d8", "pmgwidgets/utilities/network/baseclient.py": "025302351202482cdb67961418a21dda", "pmgwidgets/utilities/network/generalclient.py": "57523e2dfe953db9e48e0b2e887f9aea", "pmgwidgets/utilities/network/qtclient.py": "c136486e5d7ce14a760e68b5cef5eac9", "pmgwidgets/utilities/network/server.py": "36c357391ae6077674c686159e9adc0d", "pmgwidgets/utilities/network/util.py": "6d82debc837372e82a42af901dbd8d18", "pmgwidgets/utilities/network/__init__.py": "8dd261a5fd464d78930e554a3c71ca0e", "pmgwidgets/utilities/platform/commandutils.py": "c534c45682925de3a9ef097bc5e9738f", "pmgwidgets/utilities/platform/filemanager.py": "a7ed6bb8a48dc0a631c676b70618b727", "pmgwidgets/utilities/platform/filesyswatchdog.py": "c0a2bf1c91a21a5dcf23e31bfeecb70a", "pmgwidgets/utilities/platform/fileutils.py": "3ca5537cb60e43a1357e9681b7ac7792", "pmgwidgets/utilities/platform/openprocess.py": "1d61b9d4e3ad65e71005b378f25c556c", "pmgwidgets/utilities/platform/pmdebug.py": "d0ec593f50f535adc1d9c48c79ea00d7", "pmgwidgets/utilities/platform/translation.py": "c4309549c4c11558fdbc3b7491ed64f6", "pmgwidgets/utilities/platform/__init__.py": "7fd20799d245559b3722b2688b40aada", "pmgwidgets/utilities/platform/test/python_file_test.py": "0c4bff9ef948dbcc88ea0532ae0beb44", "pmgwidgets/utilities/platform/test/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/utilities/source/colorutils.py": "fde6914451c075a3e0428f2cce1d0882", "pmgwidgets/utilities/source/graphicsitemutils.py": "30395a5a9829eee910c69eca95aa649b", "pmgwidgets/utilities/source/iconutils.py": "e83075c233b7ce3290f0e37ded6fba94", "pmgwidgets/utilities/source/translation.py": "bb3c8fbd3051b640ed77d30ab718dc32", "pmgwidgets/utilities/source/__init__.py": "5b8008b3309c862942604991569b19f0", "pmgwidgets/utilities/uilogics/codechecking.py": "48560fbdbd7cf04f3461587b90a12872", "pmgwidgets/utilities/uilogics/drags.py": "857f251d9e621005afd8be2c3bf62708", "pmgwidgets/utilities/uilogics/uidisplay.py": "f4ee6b2b8695f77551bb4d7e5ff7ad39", "pmgwidgets/utilities/uilogics/undomanager.py": "df9dc910b24d09c49e9726420fdeee10", "pmgwidgets/utilities/uilogics/windowutils.py": "8372420c42f626d39d9eb193296cb900", "pmgwidgets/utilities/uilogics/__init__.py": "645e7a6c9bf8432d1c1ba5e333c362c2", "pmgwidgets/utilities/uilogics/tasks/loop_background.py": "4a363d514a49b3d142dd111f957b4a0a", "pmgwidgets/utilities/uilogics/tasks/minimal_thread.py": "94f8326dbba36d11f6e45fb79bb2697c", "pmgwidgets/utilities/uilogics/tasks/one_shot_background.py": "0075eafe0b95ef10ec9e382917867f7b", "pmgwidgets/utilities/uilogics/tasks/threads.py": "380066964983e4398279b18f1cb4c2a5", "pmgwidgets/utilities/uilogics/tasks/__init__.py": "2a83611ec96538dd91f878617b4cc882", "pmgwidgets/widgets/__init__.py": "dace0c2123dda2b5cf61bfbe954f76e4", "pmgwidgets/widgets/basic/__init__.py": "fd2926ad171e35c84c8e34ddc341a15a", "pmgwidgets/widgets/basic/browsers/browser.py": "db4472da3e421edae53084e2f60f8531", "pmgwidgets/widgets/basic/browsers/__init__.py": "f2ca69c55dd6dd321eb50715d281d85f", "pmgwidgets/widgets/basic/browsers/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "pmgwidgets/widgets/basic/buttons/__init__.py": "900cfebb524cf4f7d2a311ba7376744c", "pmgwidgets/widgets/basic/buttons/button/toolbutton.py": "078234cbde02a9528c683296768c716a", "pmgwidgets/widgets/basic/buttons/button/__init__.py": "0c609746f7319525ec3b9a95478be7e1", "pmgwidgets/widgets/basic/buttons/buttonpane/pushbuttonpane.py": "b4b83976fd0b594799dc95bc3c577433", "pmgwidgets/widgets/basic/buttons/buttonpane/__init__.py": "1e6ab09b63582d591d9c9fbb95d77d25", "pmgwidgets/widgets/basic/buttons/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "pmgwidgets/widgets/basic/containers/flowarea.py": "3465e9353838239b7a85503bdb348eb6", "pmgwidgets/widgets/basic/containers/flowlayout.py": "e7722b3b344fb1966513920657c3ab9e", "pmgwidgets/widgets/basic/containers/pmdockwidget.py": "264fd97a9b774531ee722a2c561c9eb1", "pmgwidgets/widgets/basic/containers/pmscrollarea.py": "d4474ecaf4ebe7ef1bc33646f9776c74", "pmgwidgets/widgets/basic/containers/PMTab.py": "69bc55a23c66f5aeefd57c00c54daf9f", "pmgwidgets/widgets/basic/containers/pmtoolbox.py": "aaa8b73936ef32a4c48d3c6dbb4a1edc", "pmgwidgets/widgets/basic/containers/__init__.py": "edcf475260eaebb0aababd31515f66a6", "pmgwidgets/widgets/basic/containers/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "pmgwidgets/widgets/basic/dialogs/textdialog.py": "02c8803b009663537eadcf6d1a1708c0", "pmgwidgets/widgets/basic/dialogs/__init__.py": "b05f556cffa689fce8ecf11590d5073d", "pmgwidgets/widgets/basic/images/imageview.py": "677c40cd96057c84dbb37592daef0af2", "pmgwidgets/widgets/basic/images/imageviewitem.py": "7f4c1d86ca85188970310d26c26d30a8", "pmgwidgets/widgets/basic/images/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/basic/labels/scrolllabel.py": "f6bd03763bb1f04990b20b3a1a9b1c90", "pmgwidgets/widgets/basic/labels/__init__.py": "37e333e93bd172534e76cd5e850f58f1", "pmgwidgets/widgets/basic/labels/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "pmgwidgets/widgets/basic/lists/combobasic.py": "0e7fbf8724164af3e7b8b9933df4729c", "pmgwidgets/widgets/basic/lists/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/basic/lists/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "pmgwidgets/widgets/basic/others/console.py": "5905c89de68775fd568577969e593f3a", "pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.py": "2d4f0c82d296813c5a578cc906ae9424", "pmgwidgets/widgets/basic/others/ConsoleHistoryDialog.ui": "3ae43f1f52ed4f7dc414a4e522c76122", "pmgwidgets/widgets/basic/others/gauge.py": "16159230eebfc9f1be3ff0c4c5d555e1", "pmgwidgets/widgets/basic/others/instantbootconsole.py": "5633bce9595e8b8e509431e3d3ce5f09", "pmgwidgets/widgets/basic/others/processconsole.py": "adf620b42500885f8252657aefcc701e", "pmgwidgets/widgets/basic/others/Ui_ConsoleHistoryDialog.py": "22769bd93d86bf8129ca0fa03b9af12b", "pmgwidgets/widgets/basic/others/__init__.py": "fbcfcf98fbfcfb8625281748544e5194", "pmgwidgets/widgets/basic/others/source/clear.png": "d00b30caeba4e133a503c28d29484cd6", "pmgwidgets/widgets/basic/others/source/run.png": "a7ad927c1b15a7fd5a3a228991d6b778", "pmgwidgets/widgets/basic/others/source/stop.png": "db32ac51e103396c0758faa7ca39df7d", "pmgwidgets/widgets/basic/others/translations/qt_zh_CN.ts": "efbc0c2de628506b1cd2528e85110912", "pmgwidgets/widgets/basic/plots/__init__.py": "29b430ab74236a99e749c91f4a7a4d8d", "pmgwidgets/widgets/basic/plots/bars/histogram.py": "57fe8015a7abe33f76965ffb405a1ba1", "pmgwidgets/widgets/basic/plots/bars/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/basic/plots/lines/timeseries.py": "7a1877123a6d38adb06b3b9f43a6bb73", "pmgwidgets/widgets/basic/plots/lines/__init__.py": "d8f241f084bf5d4a8f4efd5b51d7e94f", "pmgwidgets/widgets/basic/plots/matplotlib/__init__.py": "2ac44857cafb53b120d44169c3c34f04", "pmgwidgets/widgets/basic/plots/matplotlib/base/pmaggplot.py": "c1882247f0027b2b962ba7a5ea3ca7c7", "pmgwidgets/widgets/basic/plots/matplotlib/base/qt5aggplot.py": "33f10a259f5fa8973c6cb863ef117285", "pmgwidgets/widgets/basic/plots/matplotlib/base/__init__.py": "f0e054fea02ba6ad51bf06d2a311e39b", "pmgwidgets/widgets/basic/plots/pyqtgraph/__init__.py": "2be8e98cb7ca94374b5168f14d00b359", "pmgwidgets/widgets/basic/plots/pyqtgraph/base/pgplot.py": "8c38a37cb08c0b54300704a0d1b0f10b", "pmgwidgets/widgets/basic/plots/pyqtgraph/base/__init__.py": "81087fce1382395cd3c04360a691bd99", "pmgwidgets/widgets/basic/plots/scatters/scatters.py": "450136b97d71bbca2ac809b4b7541a7c", "pmgwidgets/widgets/basic/plots/scatters/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/basic/plots/translations/qt_zh_CN.ts": "023045a080a9a26547219f054c272d80", "pmgwidgets/widgets/basic/quick/demo1.py": "353264297eedb94ef52af4c181c79e4e", "pmgwidgets/widgets/basic/quick/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/basic/tables/tableviews.py": "a2111346680c2af8ab00f8588191e07a", "pmgwidgets/widgets/basic/tables/tablewidgets.py": "890007b4bf1e6e2a38673614f324168d", "pmgwidgets/widgets/basic/tables/__init__.py": "84da0cb7f378bbf1ea095d6b8ccaf66d", "pmgwidgets/widgets/basic/tables/help/help.md": "803db01c2a1acf0f80d479042ecaff99", "pmgwidgets/widgets/basic/tables/translations/qt_zh_CN.ts": "147dcbf56740cccf27dc99dcec3b5b6a", "pmgwidgets/widgets/basic/texts/__init__.py": "e1c06d85ae7b8b032bef47e42e4c08f9", "pmgwidgets/widgets/basic/texts/statusreport/errroreport.py": "a7f14a40ca0be66bd12ac1084f1976f1", "pmgwidgets/widgets/basic/texts/statusreport/__init__.py": "b2b898748d695f952a3838cd8289bfbe", "pmgwidgets/widgets/basic/texts/webeditors/editor.py": "34336ae67d3efda5060edffa2982d941", "pmgwidgets/widgets/basic/texts/webeditors/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/basic/trees/filetree.py": "f2f05c9657978a587295f5a4f09ed1fb", "pmgwidgets/widgets/basic/trees/jsontree.py": "b91dc6b98e5561f0f9988051371101c6", "pmgwidgets/widgets/basic/trees/treecheck.py": "f29b4c69b3f30b99da28eb79bcf1c068", "pmgwidgets/widgets/basic/trees/varattrtree.py": "3f6d8812f23ab42247ee5185e8c8c57c", "pmgwidgets/widgets/basic/trees/__init__.py": "2dc6f31ca28c563654578e8b821f06bd", "pmgwidgets/widgets/basic/trees/translations/qt_zh_CN.ts": "14da9ce6253397bf6c0fcc1c4c004a01", "pmgwidgets/widgets/composited/buttonpanel.py": "a7323ff16ef179e89c39c3253667aafc", "pmgwidgets/widgets/composited/fastui.py": "8b604fc24975c5c7ba2de067065a363f", "pmgwidgets/widgets/composited/generalpanel.py": "b6be00c44a6e382aae0453e133e84d01", "pmgwidgets/widgets/composited/__init__.py": "d13563610fa6f243f2d973dd42a6f6df", "pmgwidgets/widgets/extended/__init__.py": "cc16561fe162128cca4c778f11263487", "pmgwidgets/widgets/extended/base/baseextendedwidget.py": "378fdef54ba10e68ed5cb276a5624c31", "pmgwidgets/widgets/extended/base/__init__.py": "d7d1b8939cf2c630235925abcb5a2ee2", "pmgwidgets/widgets/extended/checkbuttons/check.py": "d8b6cbe579ad2161bce135f2925313c4", "pmgwidgets/widgets/extended/checkbuttons/__init__.py": "a5c9c5ecdc69c4139ecd15de439b2e0b", "pmgwidgets/widgets/extended/comboboxes/combo.py": "ebf75f80630cac67f9642f5372097df4", "pmgwidgets/widgets/extended/comboboxes/variables_combo.py": "371fd0d84768be8a624dac87979e1f1b", "pmgwidgets/widgets/extended/comboboxes/__init__.py": "58edc6def91691d42263e0d79deec2c0", "pmgwidgets/widgets/extended/entries/baseentryctrl.py": "e752e2c6a708b1a435a84473bba154d8", "pmgwidgets/widgets/extended/entries/colorctrl.py": "16f70e0d829af6c89fcab387dd6f1442", "pmgwidgets/widgets/extended/entries/evalctrl.py": "de708611514272173a02f047b7e5fc68", "pmgwidgets/widgets/extended/entries/filectrl.py": "d11a9711cb319e2131464baa2a6a8d84", "pmgwidgets/widgets/extended/entries/folderctrl.py": "ff904108b13cddf3b6c7837cb60aa847", "pmgwidgets/widgets/extended/entries/funcctrl.py": "f308b1b347c7d44a4efe36b4e8a73ec3", "pmgwidgets/widgets/extended/entries/keymappingctrl.py": "2a50527522468cd00f3d7ccb99a02a7d", "pmgwidgets/widgets/extended/entries/linectrl.py": "626be1e4169342de4027f902779d9e19", "pmgwidgets/widgets/extended/entries/numctrl.py": "3739731735cc0520c4f45d1b0429297a", "pmgwidgets/widgets/extended/entries/passwordctrl.py": "85a3604a10ba51e5aaddfd269a8f1317", "pmgwidgets/widgets/extended/entries/__init__.py": "a87b64affd6a8b87f14caa030b1d7196", "pmgwidgets/widgets/extended/labels/label.py": "e12d3eaafac1b29d87b6b83cb5ca46c9", "pmgwidgets/widgets/extended/labels/__init__.py": "5d5fadd87777a0ecdf64ec91c7af5fb1", "pmgwidgets/widgets/extended/lists/listwgt.py": "52cf01737cab419a302a61a2fc22dd7d", "pmgwidgets/widgets/extended/lists/__init__.py": "fe79c30d2106faff8c630bec7e79ce37", "pmgwidgets/widgets/extended/others/multitypeparaminput.py": "f22495e2e29d29843c3888a21abd43a0", "pmgwidgets/widgets/extended/others/__init__.py": "372dfdcc25b8f846d64b77bea41535b8", "pmgwidgets/widgets/extended/others/monitors/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/extended/plots/__init__.py": "56a6f2c973e69ed27c3021de7b28e035", "pmgwidgets/widgets/extended/plots/lines/timeseries.py": "d0b20cb0ea7e4a6ccafc47d9b16e6fc9", "pmgwidgets/widgets/extended/plots/lines/__init__.py": "bc396f8083302203baaf5d23065c33ca", "pmgwidgets/widgets/extended/radiobuttons/radiobuttonctrl.py": "113268756d9f5bb930230e4f8824ec67", "pmgwidgets/widgets/extended/radiobuttons/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/extended/spins/datetime.py": "e6a555a3bf8d0a57b98d8926ec6684c7", "pmgwidgets/widgets/extended/spins/numberspin.py": "74160a8031c42d2f5ea87cc4a5be3272", "pmgwidgets/widgets/extended/spins/__init__.py": "cfa6752de3dc824468eaaec6166fb3d4", "pmgwidgets/widgets/extended/tables/rulesctrl.py": "6d2fda81132490482c0fdc5263cb5190", "pmgwidgets/widgets/extended/tables/tableshow.py": "100223049815e42adb4fd3c74753dda7", "pmgwidgets/widgets/extended/tables/__init__.py": "2945023ce1794015105e1aba6213136d", "pmgwidgets/widgets/extended/texts/htmlshow.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/extended/texts/markdownshow.py": "d41d8cd98f00b204e9800998ecf8427e", "pmgwidgets/widgets/extended/texts/__init__.py": "4ab23c644c97003b968443d8a2f4a584", "pmgwidgets/widgets/extended/trees/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "pmlocalserver/readme.md": "6e10586e731f6fdc871441974934b006", "pmlocalserver/server.py": "d29fca0da053832fcbaec4788889674c", "pyminer_comm/readme.md": "d41d8cd98f00b204e9800998ecf8427e", "pyminer_comm/__init__.py": "f6b46f7aedc9dd22d9cdaf15d1be08c2", "pyminer_comm/base/datadesc.py": "1f068e02ef48771fb3499b5b27ff058b", "pyminer_comm/base/encode_decode.py": "42188f6322e17da29d8d1cfb54ebc75a", "pyminer_comm/base/network.py": "1b0fbd15a289297b65698b2139724741", "pyminer_comm/base/sys_utils.py": "4b9c387c0926aa2bec713ba5560c68f1", "pyminer_comm/base/__init__.py": "036632e2718a53fdcd02a87492de0963", "pyminer_comm/data_client/data_client.py": "613aeac2716a0ec38b3f5db2c38080b4", "pyminer_comm/data_client/unittest_data_client.py": "cd4366d90aeca0639432273292da8efe", "pyminer_comm/data_client/__init__.py": "8159a5a2b762aa7581a92517146bd002", "pyminer_comm/pyminer_client/pm_client.py": "5e7ff88e50112aac1f639a7301404218", "pyminer_comm/pyminer_client/__init__.py": "fa7dd1f47a04d6515681315870a12899", "pyminer_comm/tests/test_communication.py": "95fa83a3686c8ea7bfc4736220e3bbdb", "resources/pyqtsource.qrc": "8a3a6b55a64fa60f8c58f49d2d7eb949", "resources/pyqtsource_rc.py": "1cdc5870d3e5107926e57d15c7fa63ea", "resources/fonts/Cascadia.ttf": "717e365c4a4c1478f8208a5ab33ee26b", "resources/fonts/CascadiaMono.ttf": "66c917f89d707ba0b41d5a1619c1e03e", "resources/fonts/Deng.ttf": "15c8b490227909f31d456ee9d11521e5", "resources/fonts/Dengb.ttf": "2d690e1656db754bc4ce63531223d007", "resources/fonts/Dengl.ttf": "1ddcd772ff1d04a2d545434b47ae4782", "resources/fonts/SourceCodePro-Bold.ttf": "458f0d7c492182d4c1b08621518689c0", "resources/fonts/SourceCodePro-BoldIt.ttf": "0cddef66936155d98aaa0d2a71d609c1", "resources/fonts/SourceCodePro-It.ttf": "df1343e44ce0fd5eb8c09ce8995966c8", "resources/fonts/SourceCodePro-Regular.ttf": "fedb9984186419a66cf725a38b6703ca", "resources/icons/logo.ico": "f1eb0f12aa600bd5638cd6fbca4b978f", "resources/icons/logo.png": "30e040dea91eb5edc95a2ab16c895324", "resources/images/bg.png": "931fe255dbcec81b94c2cd692fa1ff01", "resources/images/left.bmp": "d9daee9f12d8d45832a5f85fb79733cd", "resources/images/PyMiner\u6846\u67b6\u8bf4\u660e.jpg": "02eecc71bfee918d5a559501aa8b1334", "resources/images/splash.jpg": "d093033402635cffde8ae0d4840e46c4", "resources/images/splash_v2.png": "8de3454d0a7ea72b2ddbe2b242ebc535", "resources/images/weixin.png": "9fd2526c405766beb714515a07571c44", "resources/images/xmind.png": "9f0ef2b1b83dee369f38600bbdbf44bb", "resources/images/zhifubao.png": "2b957fd623e55d473c9c1eb81ce7ecd8", "resources/qss/Fusion.qss": "e3b35eb107311192c3d6a1b6512da0a0", "resources/qss/index.rst": "6000f5eae1ed6f0e434e0001675bf8a2", "resources/qss/Qdarkstyle.qss": "1d5438b0c29ab46529c7d38a976dbf62", "resources/qss/standard.ini": "ee661fb8f5a4a0852389e31a11c71001", "resources/qss/standard.qss": "1c1672f58d85af0e6211b6c144987974", "resources/qss/Windows.qss": "70481f2ea4c380995271f4b338da0968", "resources/qss/windowsvista.qss": "80e75b0e7ec8b7dd7a23b4bf75ab8ef4", "resources/screenshot/check_data.png": "e44471c2514f8a048df2a89a9df2e795", "resources/screenshot/code.png": "814df667bb94b7d2ae844d938ec916b7", "resources/screenshot/group.jpg": "0b3959e958742a35baeaec5044a95584", "resources/screenshot/main.png": "1b6f8a5331f0c5954a86b9024f070568", "resources/theme/default/icons/3d.svg": "61157c75fbfde955215c93e2daf93551", "resources/theme/default/icons/action.svg": "61ef2e8adb0b2bfe5928aa14b376fec3", "resources/theme/default/icons/addannotation.svg": "503b6bffffae70dfe67068cd24f5d88e", "resources/theme/default/icons/added.png": "2acf12376249833027eadb29c9e8a58f", "resources/theme/default/icons/addFeature.svg": "bcc4056d0d52f3cb44acbc81858b6099", "resources/theme/default/icons/addnode.svg": "763e098d49dec789969c25b7e69ab629", "resources/theme/default/icons/addpath.svg": "e700804c812dfe2bdc54798b11814924", "resources/theme/default/icons/add_col.svg": "eee7249c440e048cb1796d3e8d1c949b", "resources/theme/default/icons/add_row.svg": "620b902ccebc31be4d270e7124fb2e48", "resources/theme/default/icons/align_bottom.svg": "f4fb3a0c1bb022440e3489f75e69c390", "resources/theme/default/icons/align_horCenter.svg": "cef02a64b8f66064fc237ea34b41536f", "resources/theme/default/icons/align_left.svg": "2275c71a5bd808f0379098e0663c1aee", "resources/theme/default/icons/align_right.svg": "aeb304bf474f3402804c6c113d197101", "resources/theme/default/icons/align_top.svg": "621e60f54d5dcd50a28aa7aa3be3ffe4", "resources/theme/default/icons/align_verCenter.svg": "a8ea8b762c89efcbeeb78f3c3f72b4dc", "resources/theme/default/icons/allowedit.svg": "3c2b136910b2403dc0da5cd1a54fba0c", "resources/theme/default/icons/allowedit_layer.svg": "fe3079b3a271ac07bea92c298fe75452", "resources/theme/default/icons/allowsearch.svg": "1504eb4f1da9532cbb86754b39c0f410", "resources/theme/default/icons/allowsearch_layer.svg": "e126ff953c35229e30444c8d6e4ae2e8", "resources/theme/default/icons/allowselect.svg": "5b3dbfe62ddbf003af7efb4f429cb0fe", "resources/theme/default/icons/allowselect_layer.svg": "62cbf0796e8e284f4df30d1575d4c16c", "resources/theme/default/icons/allrecords.svg": "75b5c30ce3932f21ae7b16013ffc4c8c", "resources/theme/default/icons/annotation.svg": "1ae382f88b44847332e9826ba46c5397", "resources/theme/default/icons/annotation_no.svg": "c3e5a2d3179e075c49b13015eb5b7e52", "resources/theme/default/icons/anova.svg": "14b71522f19c12ffde5e46202fcf6bc3", "resources/theme/default/icons/appstore.svg": "e2a48d1643f244e957ce9dba9e55a72f", "resources/theme/default/icons/app_down.svg": "5af2c894a37156084df6218bf562c626", "resources/theme/default/icons/attributerender.svg": "216c03c70731a3d0936649486d1ac943", "resources/theme/default/icons/attributes.png": "5a9ddb1cb0d0b3e35bb8f5bec3c7c511", "resources/theme/default/icons/basicStatistic.svg": "e84a179215a06d27e8547e52620a4859", "resources/theme/default/icons/beginfly.svg": "260f78da60b0d46b64fdd9b942167066", "resources/theme/default/icons/bottom.svg": "6fbc8f02bc979600df8a6a8d24bd3ae8", "resources/theme/default/icons/camera.svg": "27ae116857da0dc4bc1bf2a45a899dd9", "resources/theme/default/icons/canshu.svg": "3dd688f4c48e9c5e32ea9ef81ac8ac86", "resources/theme/default/icons/catalogAttributeTablePageFirst.svg": "0872ecfef2107aeaafbcdf0959d1a21f", "resources/theme/default/icons/catalogAttributeTablePageLast.svg": "18d9cf57a8fa52b6fabb08565ba0177f", "resources/theme/default/icons/catalogAttributeTablePageNext.svg": "ceeedf9b8523a724ea5cd524fa733211", "resources/theme/default/icons/catalogAttributeTablePagePrevious.svg": "164f4dc04bc3e9e8c508505027d408fd", "resources/theme/default/icons/catchline.svg": "6b4ee518bf6ba27bdd6cf44188ca864c", "resources/theme/default/icons/catchpoint.svg": "8191852167c41f1408891d74f233110c", "resources/theme/default/icons/centerpointlinkage.svg": "8fe7f934cfdca995811c3170017607d1", "resources/theme/default/icons/changeAttribute.svg": "a1b9c1ff1e2f6d7dad0a3873a52ce13f", "resources/theme/default/icons/changeFeature.svg": "556de2ee6e10e39b6e369c6c7a271be3", "resources/theme/default/icons/changeGeometry.svg": "1628a5992db6891c26741e3356817473", "resources/theme/default/icons/chartStatistic.svg": "30047525eb626a274f074399334f4b30", "resources/theme/default/icons/check_update.svg": "d6e33e022ada06b9b3abf33de637a573", "resources/theme/default/icons/Classification.svg": "658e28143d9a717f0e2b951cc67111ae", "resources/theme/default/icons/clear.svg": "1d841dcc502211799d9055a87cf3c55d", "resources/theme/default/icons/close.png": "20780f1ae86a0f942f448f69e16dbd3c", "resources/theme/default/icons/close_white.png": "7b567f8cd3293ae156df417e5a21dc6b", "resources/theme/default/icons/Clustering.svg": "012392d9351d8983b29e99b42145c77b", "resources/theme/default/icons/cmd.svg": "0ea2aa79bb81ae297c97d356072745bc", "resources/theme/default/icons/column.svg": "006f3f2cbba5c9fc0fcc223883b00fc7", "resources/theme/default/icons/column_2.svg": "4a2981704a879a016c4a8dc88710b5f2", "resources/theme/default/icons/community.svg": "3cdd0bf3826dfc1ad073d7ad449bc93e", "resources/theme/default/icons/compare.svg": "ddc98ac27fe119cb0d4acbf6a04affdc", "resources/theme/default/icons/conflict.svg": "ffe7f2d515ba91b5920547c0193b6474", "resources/theme/default/icons/conflicted.png": "1f83c2acd291df5d1d10ea67930145fe", "resources/theme/default/icons/continuefly.svg": "4346811bddecadf1ff6db3d87c1447d6", "resources/theme/default/icons/copy.svg": "9ad66acb6dcb55bf923628b188ff5f64", "resources/theme/default/icons/copyElement.svg": "cbe746ec2f6abd3a4b5a020943acf0a1", "resources/theme/default/icons/csv.svg": "9867d63fe22cc88b9c47159b0fd04791", "resources/theme/default/icons/csv_gray.svg": "16c6562ded6d0f6e0ee26005b9bc4c7f", "resources/theme/default/icons/currentindex.png": "dc987f99c44a68ca57c15dd784babc24", "resources/theme/default/icons/database_config.svg": "fa799903a0c570e3a09fe7efa6d3a276", "resources/theme/default/icons/dataSourceConfig.svg": "6a3bd375f33fe348498e053f3bcae8f5", "resources/theme/default/icons/dataspecification.svg": "1e6d1fcac3f8dc14a0daffc947c4d14a", "resources/theme/default/icons/data_desc.svg": "5913822d76a61455714c15e6132eb3e6", "resources/theme/default/icons/data_desc_2.svg": "1f51941660ac732dda207d022c26ee04", "resources/theme/default/icons/data_info.svg": "9ead14ad7a1cdf63b5702c48e05e78d3", "resources/theme/default/icons/data_join.svg": "406e169ebb9b8af93d286581f59f0245", "resources/theme/default/icons/data_missing.svg": "c7f2e5a1dc938edae131a30c6b56b711", "resources/theme/default/icons/data_partition.svg": "d8cbc4400259d84850ec97154dacd688", "resources/theme/default/icons/data_role.svg": "5002bd4ed773126cf2d4c34c4bb4541d", "resources/theme/default/icons/debug.svg": "e2ca8b334c69f413637945ebe871d696", "resources/theme/default/icons/debug_red.svg": "ab77c95b9f382e8f6fdb09da83795dfc", "resources/theme/default/icons/deleted.png": "99073a344eb6184343073b14eb3b4338", "resources/theme/default/icons/deletedata.svg": "0809bd41dd7489df3a1dc2a8e976f888", "resources/theme/default/icons/deleteFeature.svg": "5acc1452971d56857d219e9906341904", "resources/theme/default/icons/delete_col.svg": "c64463979c0dabb232a424810a41fad0", "resources/theme/default/icons/delete_row.svg": "28c35f8dae78bb25a1d8b4981996ec5d", "resources/theme/default/icons/dependencies.svg": "150af39be2e05f96916e16c20f7eacbc", "resources/theme/default/icons/diagram.svg": "93a8d692b994662c68e9374ca42fbfe0", "resources/theme/default/icons/disallowedit.svg": "1d2ea40eb876a1b57edfab5937150a23", "resources/theme/default/icons/disallowsearch.svg": "48d814b63bb64b53e1bbe5a745ad2efa", "resources/theme/default/icons/disallowselect.svg": "780b169700eec6b08dc575e3a0d01275", "resources/theme/default/icons/display.svg": "a370d879c046105fa360f2bee6809a10", "resources/theme/default/icons/distribution.svg": "53e6bcf151c4cb9f89f80093c256ea62", "resources/theme/default/icons/donate.svg": "f72f24a7e8db14c7c98394d6c8dfc860", "resources/theme/default/icons/down.png": "303cd2548ab3be7109c7fbab16730725", "resources/theme/default/icons/downWard.svg": "0bf14903bcbdef20890f936ac7855c61", "resources/theme/default/icons/drawline3d.svg": "64fc6cdf5c361bb7a6f2b5c7dadc3934", "resources/theme/default/icons/drawpoint3d.svg": "452946e331372a97bdd09df9f5f86a71", "resources/theme/default/icons/drawpolygon.svg": "e54865783b8e639d6b8aef7f0eb0597f", "resources/theme/default/icons/drawpolygon3d.svg": "4dd900f92c31b8254c18371b72532011", "resources/theme/default/icons/duoyuan.svg": "5d84f2bcfc84ae85a6fb1a7a5ee08b28", "resources/theme/default/icons/E-matlab.svg": "11fb165a87912c326ba2a5f27d4971b8", "resources/theme/default/icons/earth3d.svg": "2bbc786eaadf43a74a592ec82b14ba03", "resources/theme/default/icons/editannotation.svg": "e73609dbea16a474b62e07344a34264d", "resources/theme/default/icons/editConfig.svg": "2e65b8ba1573593af29ee2fcf1a54288", "resources/theme/default/icons/editmetadata.svg": "c89258a047ac04855464e0a2cb883f8e", "resources/theme/default/icons/endadding.svg": "ba25cd175a3a98a0d2c7b81f125975df", "resources/theme/default/icons/endfly.svg": "8aa793c8cc77046cdfd7d70307c83731", "resources/theme/default/icons/errorInfo.svg": "b8d8db18986b89bf3b1b980fa613462b", "resources/theme/default/icons/excel(1).svg": "9eb4ba787a3e62e477772f0c4a93f366", "resources/theme/default/icons/excel.svg": "ea00b0b78bb93119c7eafe98a79a8988", "resources/theme/default/icons/ExcelFile.png": "c488f98763fb577be56bc955c928c947", "resources/theme/default/icons/excel_gray.svg": "a1135950f1896aa177e00eb10f44f910", "resources/theme/default/icons/expendDown.svg": "fe6b296aa4020dda5c5a870bb7596235", "resources/theme/default/icons/expire.svg": "b7055d451d7bf23ddffcd974ceb39225", "resources/theme/default/icons/fastCollect.svg": "b929bc85fd17ba612275008238d70e53", "resources/theme/default/icons/favorites.svg": "589f0e80dde61b86c2470b3799f8f860", "resources/theme/default/icons/feedback.svg": "f695df9b7313ab60be2c3c46b4fc7468", "resources/theme/default/icons/field.svg": "d168f3a212323820267956d6de9ca9d7", "resources/theme/default/icons/file.svg": "58f428cb524544f4f3993bb37f2ef1ba", "resources/theme/default/icons/file_gray.svg": "fe90e95c15020d95c8f5690f3cb5fae3", "resources/theme/default/icons/filter.svg": "e87a00609c494f030812f3c00a2e6e35", "resources/theme/default/icons/final.png": "87457d3035ab89d82a6b57976e9b0245", "resources/theme/default/icons/find_replace.svg": "665177ccc10ce22b469a118beec97dd6", "resources/theme/default/icons/first.png": "f0edce38b01be51e2dfea42df74d8f23", "resources/theme/default/icons/flight.svg": "8857e62ab11e2cd3ae039db12d61b0d4", "resources/theme/default/icons/float.png": "5f31043d787d15eab504b59bef221e6d", "resources/theme/default/icons/float_white.png": "89609a354d4d717f4e578528dfd5547c", "resources/theme/default/icons/fly.svg": "9761c5cef3b2a4a59ef4ed762c62ad7a", "resources/theme/default/icons/flyaround.svg": "c8a2ba65a3a3ea28c710727327b062b6", "resources/theme/default/icons/folder.svg": "b7e11fde0a4f073c8255d911214aecd3", "resources/theme/default/icons/folder_yellow.svg": "9d3d6d38fa617dfeedec734a5c5c13e1", "resources/theme/default/icons/foundrecords.svg": "aeb3afe2862d00fdeaf810cc479a9704", "resources/theme/default/icons/general.svg": "8d0ffe48967c6985486949410f399c74", "resources/theme/default/icons/generalConfig.svg": "ce54c065114cc47016cd6a382457c1b8", "resources/theme/default/icons/GeneratingAdministrativeRegion.svg": "444cf5e4f7daa640706014ae3f55e307", "resources/theme/default/icons/geodbms.ico": "fef8bfe0713f757762dd9ce837b48c1c", "resources/theme/default/icons/geomap.ico": "dd4b17c0ec69f51b039c51b6e0887c31", "resources/theme/default/icons/gotoview.svg": "da5e78b70c58d112189832fd5cdad9d9", "resources/theme/default/icons/help.svg": "6c9e88b86a30ea8df99ecb75891990d2", "resources/theme/default/icons/help_doc.svg": "1491066f6ba737fb319d4b3aeec96402", "resources/theme/default/icons/histogram.png": "334c464f233edaf5d54c0e1a78289559", "resources/theme/default/icons/home_site.svg": "a9fdb97167551132fe16dd05e7668643", "resources/theme/default/icons/html.ico": "ef2d86df09c9fc6d671e12b5deaf49e6", "resources/theme/default/icons/html.svg": "8158b710d8854547cfe6e2ece1ab3e22", "resources/theme/default/icons/import.svg": "e38ca75a6ffcf334ea461b245f523444", "resources/theme/default/icons/importConfig.svg": "f60db217ccfce27088257eeb9b39d236", "resources/theme/default/icons/import_database.svg": "42ae4560410eb3b900a99360d0019fba", "resources/theme/default/icons/indent_left.svg": "13d4c1ee641fc364bf20be31e9c277a7", "resources/theme/default/icons/indent_right.svg": "a9bc26d41494a2760b186614cc5a177d", "resources/theme/default/icons/index.svg": "63797de724460b5527354bcc9df5d79d", "resources/theme/default/icons/info.svg": "59366b0c10bbce5c3dd9dfec1860d32c", "resources/theme/default/icons/install.svg": "699200cfd59967ff740f1e3076795f0f", "resources/theme/default/icons/invisibleMap.svg": "f5e5e045de80b10006eca992d6f156c1", "resources/theme/default/icons/javascript.ico": "237b59ab21d39cbf9d56481abd6ea724", "resources/theme/default/icons/jiashe.svg": "6195487f581d0b17bf8bd5e440ac3152", "resources/theme/default/icons/join.png": "ae8569cf1fc1762af272861ffbf1a16f", "resources/theme/default/icons/JoinMapTable.svg": "c7277790649b9dafcba2531c8ec43630", "resources/theme/default/icons/jump_line.svg": "36d10e5f905da4134c668d1baa7b0eff", "resources/theme/default/icons/jupyter.ico": "fcd12a895e826c9bf68ec69a3801a6b5", "resources/theme/default/icons/Jupyter.svg": "5e31f82bc08dff94a0f7a19492ae3e57", "resources/theme/default/icons/lab.svg": "bb81cefd8b4592063bf604536517bbe4", "resources/theme/default/icons/labelingMultiple.svg": "60b47ac95c42db86f0a1996619aa5710", "resources/theme/default/icons/labelingNone.svg": "aec873e7c3a156d25d90ba14332250fe", "resources/theme/default/icons/labelingSingle.svg": "4eb6031628115e94af14c75ed7743277", "resources/theme/default/icons/labels.svg": "2f07179dee5125cdc7720364cc83fa4d", "resources/theme/default/icons/LandSurveyAutoNumber.svg": "d4fa015fe319301146a20d569319d197", "resources/theme/default/icons/layerBrush.svg": "30f0e853f0588bb65f58b6e407f26e73", "resources/theme/default/icons/layerConfig.svg": "ca61ff1339a5aab82167c3b3834f6fc8", "resources/theme/default/icons/legend.svg": "d34ddf6094becbbd0c65321a1f154bfd", "resources/theme/default/icons/lockorthoview.svg": "39417a4ce7986b55c908a36268185ca3", "resources/theme/default/icons/lockview.svg": "89f5b906db5c12867af42e06ccb1d18e", "resources/theme/default/icons/lost.png": "e5f28a07326ba62314e4964833d853c8", "resources/theme/default/icons/mActionAbout.png": "1b50df16c376e6e78454236403627aeb", "resources/theme/default/icons/mActionAbout.svg": "1e1360e32f95eee26b8f41e69339cab8", "resources/theme/default/icons/mActionActiveStyle.svg": "302386637bb5cd7bf856ad1ce6ea42fe", "resources/theme/default/icons/mActionAdd.svg": "340f3bb6a7682527aae76150aabff11b", "resources/theme/default/icons/mActionAddArrow.png": "95e75cb331f8ff2ae412b474db6f55bb", "resources/theme/default/icons/mActionAddArrow.svg": "06246d25e27308ad26aac55af7eb9713", "resources/theme/default/icons/mActionAddBasicCircle.svg": "f8a5e280035bbfaa025028e4eed1c703", "resources/theme/default/icons/mActionAddBasicRectangle.svg": "85605dbd86923fbed31379f828d995bc", "resources/theme/default/icons/mActionAddClassification.svg": "5d91e7c199fdfc94b71882b743e084f8", "resources/theme/default/icons/mActionAddClassificationCode.svg": "71811be70f15711a0890b9f6a407dab5", "resources/theme/default/icons/mActionAddCustom.svg": "cc118673a1e3b2e74fc57da54a9aa35e", "resources/theme/default/icons/mActionAddDataSet.svg": "e15df2fe98dfcddd91f6edc44b17f719", "resources/theme/default/icons/mActionAddDataTable.svg": "3944027676b922267a24159091390090", "resources/theme/default/icons/mActionAddDicItem.svg": "d71bb80327c14ba5e06e965b15864b48", "resources/theme/default/icons/mActionAddDirectory.svg": "f4a64c10d63eb102b6088281748dedf5", "resources/theme/default/icons/mActionAddEnumRange.svg": "9969caf289186d9cd546400aa5f16079", "resources/theme/default/icons/mActionAddGroup.svg": "f308932c912ab0483324f89d5ecce6c0", "resources/theme/default/icons/mActionAddImage.png": "94e43a1d6b956c2b35625a5ea760261e", "resources/theme/default/icons/mActionAddImage.svg": "28bb04fd672efe9f1a52f2901f54de6f", "resources/theme/default/icons/mActionAddLayer.svg": "840395598b646deb2c747f78d305e324", "resources/theme/default/icons/mActionAddLegend.png": "8349d32174a82160f1c812641855fbb9", "resources/theme/default/icons/mActionAddLegend.svg": "d756c3c84d9a1e613341676f8c3e8965", "resources/theme/default/icons/mActionAddMultiPoint.svg": "f9ade46e1458d5942ae557420592f836", "resources/theme/default/icons/mactionaddordergroup.svg": "a7e40299ca8607fd8ec9573f66cb95a5", "resources/theme/default/icons/mActionAddPoint.svg": "c85722428ece40150082f3d81bf170f3", "resources/theme/default/icons/mActionAddPolygon.svg": "83662dc01e024450dce5ecfaf1514edc", "resources/theme/default/icons/mActionAddPolyline.svg": "5d61a265d4c1e899cd171721d3b006ce", "resources/theme/default/icons/mActionAddRangeRange.svg": "99b93618e2906303244bc6a2ed20d3e0", "resources/theme/default/icons/mActionAddResourceWizard.svg": "9318a164ee340e04da837175aeea8820", "resources/theme/default/icons/mActionAddScaleBar.svg": "43afed23afb8200c15a543df1a450f3c", "resources/theme/default/icons/mActionAddSchemeData.svg": "c86e2f3e2356fd1ad82cdda941a9ad7b", "resources/theme/default/icons/mActionAddStyle.svg": "c60df25cbed4067a5ac0bc320463b816", "resources/theme/default/icons/mActionAddText.svg": "b6e185e764c5da36528cd7a83654d17d", "resources/theme/default/icons/mActionAddToCanvas.svg": "4f222a6648efa565f051aa2617caca5e", "resources/theme/default/icons/mActionAddVertexTool.svg": "73d0e0aa645810d8737db7604fb48d98", "resources/theme/default/icons/mActionAdjustLayers.svg": "42d197117a2af9818fcbefc935e03fa2", "resources/theme/default/icons/mActionAggregateNode.svg": "0e8e850ce17baa5e7c7aa3b238279790", "resources/theme/default/icons/mActionAligningToLine.svg": "6844c8fc2e7d023ebd31bfb23c907a9e", "resources/theme/default/icons/mActionAllEdits.svg": "1a13a6fe0c38adcdbbc315b963805233", "resources/theme/default/icons/mActionAnnotationImport.svg": "ed08c23f1bb2ea1dc03aee1496693ec6", "resources/theme/default/icons/mActionAnyDLAnalyze.svg": "cbcf45db82108f1e0ec97691d2b021ed", "resources/theme/default/icons/mActionAttributeBatchTool.svg": "f8853792345634f2ccbf3d5b3cc2ae9f", "resources/theme/default/icons/mActionAttributeBrush.svg": "bc8e8e7de8a8b5c4d75891072f58a9c9", "resources/theme/default/icons/mActionAttributeIndexManager.svg": "de8c1f6a81ef7a0dc047131f2b3bccca", "resources/theme/default/icons/mActionAttributeSelect.svg": "0a0e325e465cfcd8eb9a502e4fc9aac2", "resources/theme/default/icons/mActionAutoChange.svg": "2add0a98ec45eb1f992348a61b77107c", "resources/theme/default/icons/mActionAutoCutPolygon.svg": "5142adcd7b3d1702cc05eb4732bda7a5", "resources/theme/default/icons/mActionAutomaticClosure.svg": "100464d989b5520597726da001d2e6b7", "resources/theme/default/icons/mActionAutoParallelPolygon.svg": "d301512aec2983ee3fa88426f2c0583d", "resources/theme/default/icons/mActionAutoParallelPolyline.svg": "419b2e6153752735a075f87b2c6976af", "resources/theme/default/icons/mActionAutoProjection.svg": "1cfe66813280c607e1afc8715fa98983", "resources/theme/default/icons/mActionBackLastLevel.png": "0e06243d91122f7a759af354689e786c", "resources/theme/default/icons/mActionBackupDatabase.svg": "ab331f009a206badb5b6eb214ad0e555", "resources/theme/default/icons/mActionbatcgSetUniqueCode.svg": "3d5f12cd66429d20dc6b16d2e4af6a27", "resources/theme/default/icons/mActionBorderPolygon.svg": "70dd6b1cafe2eb371c897c2509ec0406", "resources/theme/default/icons/mActionBreakBySinglePoint.svg": "a4f86b74ab5d94b4bf90c8678155c8de", "resources/theme/default/icons/mActionBreakByTwoPoints.svg": "9faa1aeaf46c1a8a5f1a39a8f077293d", "resources/theme/default/icons/mActionBreakIntersectantPolyline.svg": "5891ffbba64c08cf4db8760d782465b1", "resources/theme/default/icons/mActionBreakWeld.svg": "f7f43dad61d9c4e3322eca488da3ab92", "resources/theme/default/icons/mActionBrush.svg": "e66b98adb06f1d8d702edb7f9ec5546f", "resources/theme/default/icons/mActionBufferAnalysis.svg": "d80ab987bd4a1fc371e2776e66425406", "resources/theme/default/icons/mActionCalculateField.svg": "f32837750c5840f154a2a749c8aade44", "resources/theme/default/icons/mActionCatalogManager.svg": "99e161a7b7367a9fa2929009134a653a", "resources/theme/default/icons/mActionChangePolylineByExitline.svg": "e08d8787b31f2c90f7378b382311f23a", "resources/theme/default/icons/mActionCheckAll.svg": "438f359d854c7ebedf6be6b88f7d0f6c", "resources/theme/default/icons/mActionCheckAndMaintain.svg": "a7e9601b46669c45f9096f011ab41bd1", "resources/theme/default/icons/mActionCheckNode.svg": "b14495714a6c980374bb8482d3211444", "resources/theme/default/icons/mActionCheckResult.svg": "2cf1b01c206622535c1e1825eb2b69cf", "resources/theme/default/icons/mActionCircularStringCurvePoint.svg": "310cea9398a663a4d4b13e528fa7ce5d", "resources/theme/default/icons/mActionClassification.svg": "995a538a5a6002821d6c50dc9a81fe63", "resources/theme/default/icons/mActionClearEdit.svg": "1c5a1c68aac83d68129868577ea30f7e", "resources/theme/default/icons/mActionClearLayer.svg": "32eba1e6735860eb142fff43a48eed54", "resources/theme/default/icons/mActionClearSelect.svg": "acc58e9be78e0153b7d7d1ed921b6230", "resources/theme/default/icons/mActionClose.svg": "e85dae4f037b08290dd34d668bcf06b3", "resources/theme/default/icons/mActionCollapse.svg": "3d2eba0c9ca35b25ec706a3e970a8b44", "resources/theme/default/icons/mActionCollapseTree.svg": "b39d593ea4774c1238ed6cd69f12b11f", "resources/theme/default/icons/mActionCommit.svg": "f354d7a233e4a5923580acbe25264d1f", "resources/theme/default/icons/mActionCommonNode.svg": "f2ab046d5257ee17f76363de01472e36", "resources/theme/default/icons/mActionComposeExport.svg": "53d0f2eaa80a97421ea812d32f5d9670", "resources/theme/default/icons/mActionConfigProperties.svg": "aa6aa2c381d8636a19e815a347831ed2", "resources/theme/default/icons/mActionConnectToFolder.png": "84a044edac968fdf06ecc30455f9b57d", "resources/theme/default/icons/mActionCopyMapImage.svg": "18260fca2fda975633899e07772ec225", "resources/theme/default/icons/mActionCreateDbConnection.png": "1194f60c3604a75a234b7c5829a9f623", "resources/theme/default/icons/mActionCreateInterNode.svg": "7d8cbee95202587a4593044f752438d2", "resources/theme/default/icons/mActionCreatePolygonBySnap.svg": "afd2ee4841eb4162f6d40825768359ee", "resources/theme/default/icons/mActionCreatePolylineBySnap.svg": "e80bb5083740e9bbf248b9ba3b28c988", "resources/theme/default/icons/mActionCreateProject.svg": "0d1f6ed64f39f7f3e3cacaeb376ac952", "resources/theme/default/icons/mActionCreateSpatialIndex.svg": "19063ef92e585e6b89139b95d8bc4ebc", "resources/theme/default/icons/mActionCurrentTask.svg": "37591573decfe551c7cb7418e2e8acad", "resources/theme/default/icons/mActionCustom.svg": "4f20d0450747420cbd2e9c9269193bee", "resources/theme/default/icons/mActionDatabase.svg": "5356e364576af2c38e4216283342db4f", "resources/theme/default/icons/mActionDataComparisons.svg": "05fd271af6c134f6872c80c489064d60", "resources/theme/default/icons/mActionDataExport.svg": "a4adf859430ab231122e24d6d6140459", "resources/theme/default/icons/mActionDataset.svg": "a06eea07e31055fe638120092fd03fed", "resources/theme/default/icons/mActionDataSource.svg": "899c06c28703ea8b15798c799a97cb02", "resources/theme/default/icons/mActionDataSourceManager.svg": "e265e51dc79a614afbba2d9a03eca71c", "resources/theme/default/icons/mActionDeleteAttribute.svg": "f487f09dcfad1b19da3cd46ff020c8aa", "resources/theme/default/icons/mActionDeleteBookmark.svg": "63a5159656718a85300368e95a87c965", "resources/theme/default/icons/mActionDeleteClassification.svg": "328e502956af43b1506928b8e03fc496", "resources/theme/default/icons/mActionDeleteClassificationCode.svg": "7cb7a62ac5e8be4028316c1c3e8836bc", "resources/theme/default/icons/mActionDeleteCustom.svg": "2c3e544e2be400c9f1fc224eb19baa6c", "resources/theme/default/icons/mActionDeleteDataSet.svg": "cf05da90c76989fe5796f0bfa9c69fd6", "resources/theme/default/icons/mActionDeleteDataSpecification.svg": "f4e03936c7564d14d752c7b9570726df", "resources/theme/default/icons/mActionDeleteDataTable.svg": "79ff705674f36ee519327ae6c51ae3d8", "resources/theme/default/icons/mActionDeleteDicItem.svg": "40f4b24ebc5ee91d2a05b715dc5ef94e", "resources/theme/default/icons/mActionDeleteLayer.svg": "10c565c23727bc79f0a3b3653c539e27", "resources/theme/default/icons/mActionDeleteLink.svg": "2d21c91ca791aed38b8135cf405fada5", "resources/theme/default/icons/mActionDeleteRange.svg": "f26af8d0a9917bb3d33bdbdd7665f2b9", "resources/theme/default/icons/mActionDeleteRevision.svg": "7f32ea7fb09ffa5851f57a64b548cf76", "resources/theme/default/icons/mActionDeleteSelected.svg": "27cc93f001805b310dd17a6cd761417f", "resources/theme/default/icons/mActionDeleteStyle.svg": "e8529586cd6c6c35725ae9ddf42678f8", "resources/theme/default/icons/mActionDeselectAll.svg": "acc58e9be78e0153b7d7d1ed921b6230", "resources/theme/default/icons/mActionDiagramStatistic.svg": "ba795b1a3c88b9ecc48bf3533793084b", "resources/theme/default/icons/mActionDicManage.svg": "5711827d34bf8c7f45bb9473339c9d5d", "resources/theme/default/icons/mActionDictionary.svg": "9f3227fd9fd4856b21ed0203f57d462e", "resources/theme/default/icons/mActionDictionaryManager.svg": "31af9da87c0ef66edf88279dc0979691", "resources/theme/default/icons/mActionDirectImport.svg": "2705f7d2b595f44bf7d41ba5469f8ecf", "resources/theme/default/icons/mActionDirectory.svg": "543010d3f4891a87337ea4a0553b6cc4", "resources/theme/default/icons/mActionDisperseLegends.svg": "44e0028546a1d892193bf85c1fc9ee68", "resources/theme/default/icons/mActionDownloadData.svg": "73cf487f43c6c67708755c77d1031b16", "resources/theme/default/icons/mActionDraw.svg": "79d6fde375c1d3a7c8be1e8ec5fc02d2", "resources/theme/default/icons/mActionDrawAnnotation.svg": "1ead0a1082e9fbae833bcfdd520f1f6f", "resources/theme/default/icons/mActionDropSpatialIndex.svg": "b22f1baf81a17fdc104b1bf05fd5c5ca", "resources/theme/default/icons/mActionEdgeTool.svg": "e51484e30111c77e3f34a0e367340041", "resources/theme/default/icons/mActionEditConnection.svg": "b0f644dd694a0c6554d1e1dcac139845", "resources/theme/default/icons/mActionEditCopy.svg": "83c8c2506e3d53b1b0b7865d1873a633", "resources/theme/default/icons/mActionEditCut.svg": "23ce1b2d297515aefe2dea9533184fab", "resources/theme/default/icons/mActionEditPaste.svg": "e59391b2630274e267ad10bb0a40a30d", "resources/theme/default/icons/mActionEditPolyline.svg": "4a3413a2c400b402733577b00c4e4a57", "resources/theme/default/icons/mActionEditSelect.svg": "20ed9f0380e99e271ccc04bf8590d084", "resources/theme/default/icons/mActionElementAlignment.svg": "da6e0b52d636403003a8bf06d81426bd", "resources/theme/default/icons/mActionElementOrder.svg": "9a4846b8d8c64c5a6b839fb5f5f2acab", "resources/theme/default/icons/mActionEmpty.svg": "7d03c7a62ba3b69a498063a52e7a0480", "resources/theme/default/icons/mActionExpandAll.svg": "5ce3b9872728fe1ab2db08881b6696e0", "resources/theme/default/icons/mActionExpandTree.svg": "8df56726928510b542d479f9d65bf2a4", "resources/theme/default/icons/mActionExport.svg": "9262fbccd6dce910b05542130d5b5d3d", "resources/theme/default/icons/mActionExportFont.svg": "fc19d534b16e7e87d74304dc9206913d", "resources/theme/default/icons/mActionExportGeometry.svg": "490f60da490788568dfcc1fb3ab8d57a", "resources/theme/default/icons/mActionExportPDF.svg": "7079bf9f8c4d4ef7ebf3fc26895c651a", "resources/theme/default/icons/mActionExportStyle.svg": "c3ebc4b4d9eef274c460e40db01734e1", "resources/theme/default/icons/mActionExtensionIntersect.svg": "b2b45155b3775a6082f0432db8667476", "resources/theme/default/icons/mActionExtensionPolyline.svg": "e5fdd4473d3a496bd3a0e67dfafc9902", "resources/theme/default/icons/mActionExtractFeatures.svg": "d756e45f408817a284947e1dc2015564", "resources/theme/default/icons/mActionFastScan.svg": "4a055d8089b712ba73b61939c3248f14", "resources/theme/default/icons/mActionFeatureClass.svg": "12960e7e5a7abafae89f6c75fe250172", "resources/theme/default/icons/mActionFeatureImport.svg": "bc1bf048cb86d53ee263523e8d49a33e", "resources/theme/default/icons/mActionFieldAssignment.svg": "55face7af26423b494df7490d9c9a1ef", "resources/theme/default/icons/mActionFileExit.svg": "014da3686c1d21b0df59f2b6d70e5a69", "resources/theme/default/icons/mActionFileNew.svg": "359e36e8c6e7793d550a4050765a169d", "resources/theme/default/icons/mActionFileOpen.svg": "d80181aaa8aa890cb0b7e48319a8d085", "resources/theme/default/icons/mActionFileOpen_small.svg": "e2471acb5d431a1203fe3c3956a4db79", "resources/theme/default/icons/mActionFileSave.svg": "68f08f30bdd326df72b092be223a0d70", "resources/theme/default/icons/mActionFileSaveAs.svg": "9836c3f4771b653b1ee967cae793b742", "resources/theme/default/icons/mActionFillHoll.svg": "7ef3bcc1919ef6f9f132ece12e007827", "resources/theme/default/icons/mActionFilter2.svg": "3ec913bd01c74a188cb4c055fbc03c14", "resources/theme/default/icons/mActionFlash.svg": "9bfe496e74b6e9a43be5908d499af2be", "resources/theme/default/icons/mActionFoldAll.svg": "740369ae0104d790e9d5fd18edd3f159", "resources/theme/default/icons/mActionFolder.svg": "1d4ea7410800af4f5b979135c4d14529", "resources/theme/default/icons/mActionFormView.svg": "f7e61b110fffd58a3803cba75c95aa40", "resources/theme/default/icons/mActionFull.svg": "de410eb887d59537eb5a97991fc1eebd", "resources/theme/default/icons/mActionGJB50000FFT.svg": "26fd67a57ea8dbbf034212047cd73c2e", "resources/theme/default/icons/mActionGoto.svg": "4cc2023f7b3f7813af02c1bcaf11ef9d", "resources/theme/default/icons/mActionGrid.svg": "305cb21216f9e8638e5521ba83f54ff2", "resources/theme/default/icons/mActionGridCheck.svg": "5cd471cd29ff479f87c6aac170c2c117", "resources/theme/default/icons/mActionGroup.svg": "30e60e1533289e2052cf4928583757c8", "resources/theme/default/icons/mActionGroupLayer.svg": "71a8905d793790d9303f2d32815c9079", "resources/theme/default/icons/mActionGroupLine.svg": "a3f83d7e3afba41c961550d99ef97136", "resources/theme/default/icons/mActionHelpContents.svg": "dfcc6f3e7a95c9fa377a24306877dda6", "resources/theme/default/icons/mActionHideAllLayers.svg": "16f373cad1b7b644477951a7ed66351b", "resources/theme/default/icons/mActionHidenFromBrowser.svg": "d38d6063e070d2d61dd6f55713896ab9", "resources/theme/default/icons/mActionHideResults.svg": "3eaa5c01dc7b1bacd0a6e5db58d1fdeb", "resources/theme/default/icons/mActionHideSelectedLayers.svg": "9d5f022d1375227b18a4fe01c6bcdb30", "resources/theme/default/icons/mActionIdentify.svg": "752e8589c7c43e261247a04eebfd130d", "resources/theme/default/icons/mActionImport.svg": "eccb61c61f90c7dd5be6f82059c499c1", "resources/theme/default/icons/mActionImportGeometry.svg": "18642deca79e43f652442d195b59fca3", "resources/theme/default/icons/mActionInspect.svg": "4f20d0450747420cbd2e9c9269193bee", "resources/theme/default/icons/mActionInverseCheck.svg": "9115eb0e5c06d728cf83af898f4a3f79", "resources/theme/default/icons/mActionInvertSelect.svg": "8f2be589133713a5d3ff36e50c1f01c0", "resources/theme/default/icons/mActionInvertSelectedLayers.svg": "9752a3091fe12e8fa6c6c07a53eb96b4", "resources/theme/default/icons/mActionInvertSelection.svg": "6149896f7ea1dbdade1677b31fcf5016", "resources/theme/default/icons/mActionLabelManager.svg": "d5d5d38222a6f64eca412317a25f962f", "resources/theme/default/icons/mActionLayer.svg": "f156bfe69e1e2508e5f0bf15db9ba44e", "resources/theme/default/icons/mActionLayerClassification.svg": "6aec85cd21332ccce4de83dcbc78a0c0", "resources/theme/default/icons/mActionLayerManager.svg": "add1fed077998d1e15ea21b0476024a9", "resources/theme/default/icons/mActionLayerSaveAs.svg": "baf726688146979e6d52548de7214a3d", "resources/theme/default/icons/mActionLayerSaveAsFile.svg": "b17ac7d94a0994f542a783cf8fb0d33b", "resources/theme/default/icons/mActionLayersOverview.svg": "4813c1d18f037f63dae432d4ef253cfe", "resources/theme/default/icons/mActionLayerTreeView.svg": "be643367e7ffd5de10d0dcb108e4c3a1", "resources/theme/default/icons/mActionLayout.svg": "28f9190ac68a00b0d7f6e04170d31cee", "resources/theme/default/icons/mActionLayoutManager.svg": "31be4d584dfc1ccafd8d01cdcd164fc8", "resources/theme/default/icons/mActionlinkage.svg": "b3ce4171038f9d82c8d04ea9cb3ad2d0", "resources/theme/default/icons/mActionLoadData.svg": "684e514f1cff1d2c9e95dd55a858df9f", "resources/theme/default/icons/mActionLoadLayerFile.svg": "f305a0ff3392689c805ce7984044289c", "resources/theme/default/icons/mActionLoadProjects.svg": "65d677b31784876d2af6e7c1fbf57b8a", "resources/theme/default/icons/mActionLoadRevision.svg": "874fed75579a074e530d87b91ad2ff07", "resources/theme/default/icons/mActionLocate.svg": "52f9968f5e0a6392c5f0a58db02b0825", "resources/theme/default/icons/mActionLock.svg": "26131931765f2aec7cc4bd0443f8f2ac", "resources/theme/default/icons/mActionLog.svg": "155acdfdf0f50cc1488483bb2eb844c1", "resources/theme/default/icons/mActionMaintain.svg": "ba47b24e4af73b927909cc5348f7bec8", "resources/theme/default/icons/mActionMaintainBSM.svg": "7acf0cf2e793fb29050771698c22b2e3", "resources/theme/default/icons/mActionMapsheetManage.svg": "1fd72e8c7b4d1b68cdfc45b6a1587ffc", "resources/theme/default/icons/mActionMapsheetNode.svg": "45219d3849e361f574ca86fcda80b3a1", "resources/theme/default/icons/mActionMapStyleManage.svg": "cf9354021a4a5b26ad660525ece1edff", "resources/theme/default/icons/mActionMeasure.svg": "a62f37b1ec481f1c2bab829f83849396", "resources/theme/default/icons/mActionMeasureAngle.svg": "5edcf784a0e8807d14944cce68a1a014", "resources/theme/default/icons/mActionMeasureArea.svg": "3ccde2a2802aac9ed7677d5c92bb3a0c", "resources/theme/default/icons/mActionMergeFeatures.svg": "58fca120fbe1d8ed6fd3a2dee1f90422", "resources/theme/default/icons/mActionMiddleLine.svg": "30f0034bc7c043e397e3f2ddc0ffc345", "resources/theme/default/icons/mActionMirrorTool.svg": "786dda30a600b3326b3ae42402dc443e", "resources/theme/default/icons/mActionModifyElements.svg": "59d8bbab970228ddbf2537c23da41ed3", "resources/theme/default/icons/mActionMosaic.svg": "34c034a1e13abe0d007225fbded76d7a", "resources/theme/default/icons/mActionMoveDown.svg": "e69d25c8b849110e43023f18f68c0bcd", "resources/theme/default/icons/mActionMoveElementBottom.svg": "5c963ec211036b7012aaab490bcb3741", "resources/theme/default/icons/mActionMoveElementDown.svg": "ed84988b86b920d732c1cc2c922e52a8", "resources/theme/default/icons/mActionMoveElementTop.svg": "8d5251c95c7b8b51c06719aed5991511", "resources/theme/default/icons/mActionMoveElementUp.svg": "0f2bae29c5c6a245ef7a1ef79d01d970", "resources/theme/default/icons/mActionMoveFeature.svg": "46a3b71b7e3282a07bcc8fe11a20916f", "resources/theme/default/icons/mActionMoveUp.svg": "c09793cc8b982dfc7160ca61174aa3af", "resources/theme/default/icons/mActionMoveVertexTool.svg": "fd8cdb5ff4b54efded668628786520da", "resources/theme/default/icons/mActionMultiEdit.svg": "1b4e305d58dbf3793eab33d6b474c28a", "resources/theme/default/icons/mActionNetworkStorage.svg": "e62bba269bce3c8ea8c4cf96e11bdd7c", "resources/theme/default/icons/mActionNew.svg": "c04a77f3fadc8f682577a4a1ffa31ea6", "resources/theme/default/icons/mActionNewAttribute.svg": "286fff33a3eb371889d740ae643cf9c4", "resources/theme/default/icons/mActionNewBookmark.svg": "5b5885cbdcefd11ac0e9d54461cfd914", "resources/theme/default/icons/mActionNewConn.svg": "4113d50441e7461c420e93a0b59d9bbf", "resources/theme/default/icons/mActionNewDataSpecification.svg": "c9c120156d64453162f017b2a4abbee7", "resources/theme/default/icons/mActionNewFileGdb.svg": "f5721d9a6558d415f3a67c63b78a95cc", "resources/theme/default/icons/mActionNewFolder.svg": "d7afc17f864be5b81aae706f5bb9141e", "resources/theme/default/icons/mActionNewMapElement.svg": "6566f4e1671d310ab3ed30117c44e5ef", "resources/theme/default/icons/mActionNewPKG.svg": "4156b6fbf9e9a09e8889e1ae0b0330e4", "resources/theme/default/icons/mActionNewSchemeData.svg": "7807bb77c398afb16afd46463672f893", "resources/theme/default/icons/mActionNewTableRow.svg": "f2fd0ead19625b325f33359e6f12a55f", "resources/theme/default/icons/mActionNewTask.svg": "7618baf3704550ed1ae0505eb74d1037", "resources/theme/default/icons/mActionNewTileClass.svg": "0166b686d417d0a81b5ae5b1791b4169", "resources/theme/default/icons/mActionNodeDiluting.svg": "6a864c4a9ce1fdd07ba68f132c980643", "resources/theme/default/icons/mActionOpenData.svg": "8cdca77f195e267228b878d1d7d82fe4", "resources/theme/default/icons/mActionOpenDirectory.svg": "d37744c14f87326d779ce634086a4a9b", "resources/theme/default/icons/mActionOpenJS.svg": "de439993a9ab1770b8e2fb17f5a8d0e1", "resources/theme/default/icons/mActionOpenLayout.svg": "da607b272ab28493f7b354a684388bae", "resources/theme/default/icons/mActionOpenScheme.svg": "781accf4794f648dcf2f8c4097ff8fa7", "resources/theme/default/icons/mActionOpenTable.svg": "b1bdd4c59286ff406b8262f1b61d54e2", "resources/theme/default/icons/mActionOptions.svg": "50f9ee8b59e5e364ba52222d2c55a8fb", "resources/theme/default/icons/mActionOraganizationManager.svg": "d386d4dc75ac892a620c5f726295214e", "resources/theme/default/icons/mActionOverView.svg": "c8df9418bb2d3606aa53e30ab4daa93f", "resources/theme/default/icons/mActionPan.svg": "98a5dbf4184531ba2a2c68db92806456", "resources/theme/default/icons/mActionPanToSelected.svg": "974a9cf2f5750b418b474942b5dcb2a1", "resources/theme/default/icons/mActionParamSetting.svg": "10cb60a011e7788aac961c212e1c8608", "resources/theme/default/icons/mActionPolygonIncise.svg": "2d82c0b0f5739c6bf787c4eab8064a6a", "resources/theme/default/icons/mActionPolygonInterattraction.svg": "622f8a50bc5ceb068e484420b9241020", "resources/theme/default/icons/mActionPolygonOverlay.svg": "95411d192cad3e679a01556a44ba29d5", "resources/theme/default/icons/mActionPolygonToPolyline.svg": "22b2360fe102a0c1d93c7c387aa86026", "resources/theme/default/icons/mActionPolylineToPolygon.svg": "c08885aa366dc2ec78104616d564ec31", "resources/theme/default/icons/mActionPreprocessingScheme.svg": "2cce25bc39ad3c0e64e4ede8a7dbf790", "resources/theme/default/icons/mActionPreprovessingTB.svg": "f8c7613e852b0c9af5f8e3038fd4b73f", "resources/theme/default/icons/mActionPrint.svg": "31c995fa5d814d9746b94d0e3780260b", "resources/theme/default/icons/mActionPrivilegeManager.svg": "d406a3ea8e70ac6188f7ff6cda412fdf", "resources/theme/default/icons/mActionProperties.svg": "643c2dbf159641c13a90dd282c750b66", "resources/theme/default/icons/mActionPropertiesWidget.svg": "7b8bdc3ad81fe89c339754370467ef05", "resources/theme/default/icons/mActionProperty.svg": "0f5fd9de9f38273462de2ef945b9a3ca", "resources/theme/default/icons/mActionQgsAddView.svg": "77154a2bd7a278ec5417f54bea869039", "resources/theme/default/icons/mActionQueryByLine.svg": "100a77b190342c4f4d612d2f4db8964c", "resources/theme/default/icons/mActionQueryByPoint.svg": "15630a334591356d90a90216319a3d48", "resources/theme/default/icons/mActionQueryByPolygon.svg": "6a70cc390d0f99105123a68aac36ee17", "resources/theme/default/icons/mActionQueryRoot.svg": "f442d02fb5ef3741fdf1624a3f02f5d7", "resources/theme/default/icons/mActionRasterImport.svg": "2417938f794ce78543633dc544bca4d0", "resources/theme/default/icons/mActionRedo.svg": "8c028f9ef70e474d7387f9b460a65eb6", "resources/theme/default/icons/mActionRefresh.svg": "52fa4b4278264c367eda284c53d15f89", "resources/theme/default/icons/mActionRegionExport.svg": "845dd15fd40ad4f743623469b5b3fdb4", "resources/theme/default/icons/mActionRegionImport.svg": "8dbd184a3b428ce6e102f7056e116f8b", "resources/theme/default/icons/mActionReload.svg": "43784ed0de3112c14d5921b6303d63a3", "resources/theme/default/icons/mActionRemove.svg": "e6754b6e1d730a5c882c2db92eea2950", "resources/theme/default/icons/mActionRemoveAllLayer.svg": "a6da6d6063b7329140356336a91090cf", "resources/theme/default/icons/mActionRemoveLayer.svg": "1c49ecbc2147eba97ec8aad9633f7ccd", "resources/theme/default/icons/mActionRemoveRepeatData.svg": "95b636aa514362fb03154a017f8eadc9", "resources/theme/default/icons/mActionRemoveRepeatedPoints.svg": "f3559b1f0ead7a72c40d87131c92acd8", "resources/theme/default/icons/mActionRemoveSchemeData.svg": "9194bf7bea36f62dc7dc2f3b30b90cbc", "resources/theme/default/icons/mActionRemoveVertexTool.svg": "8ae82b51d34a411968de1a9d97307367", "resources/theme/default/icons/mActionReName.svg": "2f4f8cbcf71196f22f219881f3e971d4", "resources/theme/default/icons/mActionReset.svg": "741f7fb42d42849d612fc20b12b7cd35", "resources/theme/default/icons/mActionResetDirPath.svg": "c344596ea4ddfc767152bdeb7c02ed27", "resources/theme/default/icons/mActionResolveSharePointError.svg": "f59d218ed27b3d3e93b66853590a8e94", "resources/theme/default/icons/mActionResultExport.svg": "e05fe9e6f120fff6f9fe567427d73eae", "resources/theme/default/icons/mActionResultPreprocessing.svg": "d915ed03dcd61c0d516c76a4b87d0aa4", "resources/theme/default/icons/mActionReversePolyline.svg": "d55a0018bb397763cc96e462198fdbe2", "resources/theme/default/icons/mActionRevertToRevision.svg": "0392f2d180aee9d9365959f9245e265b", "resources/theme/default/icons/mActionRightAngle.svg": "4c55097541c57f3764ca125d0920ef85", "resources/theme/default/icons/mActionRotateFeature.svg": "3e22ce01e2c0c965d96fc17ccf57f686", "resources/theme/default/icons/mActionRuleManage.svg": "15482f473e3fe2874ab18f9f2e8fbadb", "resources/theme/default/icons/mActionSaveAllEdits.svg": "94a89bc9b11cb90a59fc8f044c0a5936", "resources/theme/default/icons/mActionSaveAsScheme.svg": "13d249919c23815a608a9ff5d28846d6", "resources/theme/default/icons/mActionSaveEdits.svg": "777486ea8c29a2a365dfe80977fa17c1", "resources/theme/default/icons/mActionSaveLayout.svg": "8b3789e6e0dd8223130b84000d3ed79f", "resources/theme/default/icons/mActionSaveScheme.svg": "4f281e045c96432fd1cd7a82ca6f606b", "resources/theme/default/icons/mActionScaleBar.svg": "537d6a364f6c093e6b585b7e049b29af", "resources/theme/default/icons/mActionScaleNode.svg": "50f99f8accdc8751b270032cb556b39f", "resources/theme/default/icons/mActionSchemeBatch.svg": "dc5b9b397f9281a476733882693b6c47", "resources/theme/default/icons/mActionSchemeFilter.svg": "717cb0048b15305a8cadd452718d340c", "resources/theme/default/icons/mActionSchemeFit.svg": "43ce16a7914f0ed136fb52182040b068", "resources/theme/default/icons/mActionSchemeManage.svg": "c3514670076c47f378bf24f59d007e43", "resources/theme/default/icons/mActionSchemeNoFit.svg": "ddb52d6845b46bb2da8f44d6515c48ad", "resources/theme/default/icons/mActionSchemeShow.svg": "bd93bfc5885d5307f38203892ee44ef2", "resources/theme/default/icons/mActionSchemeSourceManage.svg": "49f8d190098edf63f5afa2a4fcb1b343", "resources/theme/default/icons/mActionSchemeTargetRoot.svg": "4c51b15a288a6857cb595ca87badc50d", "resources/theme/default/icons/mActionSearch.svg": "c53fee0f34c42a7a9d8e898532a3b86d", "resources/theme/default/icons/mActionSelect.svg": "af097cfbf7068555e0316d56705f153a", "resources/theme/default/icons/mActionSelectAll.svg": "05fe2f51d3089764d072f9ace468d8b4", "resources/theme/default/icons/mActionSelectAllLayers.svg": "fc3274b291accf2f3c94e7b6d21b496d", "resources/theme/default/icons/mActionSelectPolygon.svg": "de8682bdb5e3b611224a6ee8b52515ab", "resources/theme/default/icons/mActionSelectRadius.svg": "06c743aeea2546796c169625cdbfeb0c", "resources/theme/default/icons/mActionSeparateFeatures.svg": "47a255fe5cc8c8cd23a512e458ccf01a", "resources/theme/default/icons/mActionSeparateLayer.svg": "dca40eff33ddc48a7c0a1221c0aae739", "resources/theme/default/icons/mActionServer.svg": "1ab2380a5b5e7915e80d6b7f232d3bd2", "resources/theme/default/icons/mActionSetBottom.svg": "efce405a42a008cf74a9663e46362ab0", "resources/theme/default/icons/mActionSetClipEnv.svg": "cfc446c1a8ce1801fb3682f4caf2185b", "resources/theme/default/icons/mActionSetClipPolygon.svg": "0fc055217ef4255c7e588f08e3edf780", "resources/theme/default/icons/mActionSetDataSource.svg": "92fea7f7b80c74bb4f22cbedbd160e81", "resources/theme/default/icons/mActionSetNoClip.svg": "729fd670d5e947741b64c6ed7ee385b7", "resources/theme/default/icons/mActionSetNull.svg": "33deea05fa20968c10a0c3123e47c0d6", "resources/theme/default/icons/mActionSetSpatialReference.svg": "64f9c175f0e21d1128c10aa08dbcad85", "resources/theme/default/icons/mActionSetting.svg": "2c6d37e1466939c8e16f1cd04ff48d24", "resources/theme/default/icons/mActionSettings.svg": "98160adbf1b7bc7dfa0064d5da680278", "resources/theme/default/icons/mActionSetTop.svg": "57517e5161ba671327848c4c2495ce56", "resources/theme/default/icons/mActionSharing.svg": "8f5e6dffd6231a6858fc5f56ce1a60b2", "resources/theme/default/icons/mActionSharingExport.svg": "10de78f4fe80a0cef1a3609dd40a67f0", "resources/theme/default/icons/mActionSharingImport.svg": "9bed0a42714abdd71b65742d1ca1b26b", "resources/theme/default/icons/mActionShowAllHide.svg": "f6dea326e1c06484a7dbaa3a1c2313fe", "resources/theme/default/icons/mActionShowAllLayers.svg": "1069904cfba0dbc27c02e6659bacbc49", "resources/theme/default/icons/mActionShowBookmarks.svg": "18aa642ffd432316af2e4410f4b29d7d", "resources/theme/default/icons/mActionShowFilter.svg": "ace4d7974edfb60aca730fd5095c3259", "resources/theme/default/icons/mActionShowGridTool.svg": "682e24e73864e87cfdb33e9bd3e9809f", "resources/theme/default/icons/mActionShowLayersSet.svg": "2ac82d593bce15962b546a4aebe8fe48", "resources/theme/default/icons/mActionShowPluginManager.svg": "99436035696bb2cb8f10f5c098c4b44f", "resources/theme/default/icons/mActionShowResults.svg": "f56c5cd78219b41cd930774bb121024b", "resources/theme/default/icons/mActionShowSelectedLayers.svg": "a838ae1987783d19767e54228de05aa1", "resources/theme/default/icons/mActionSimplify.svg": "9c03c4c49fcd354e04832dd253c880a1", "resources/theme/default/icons/mActionSmoothTool.svg": "707f96d7e602170da613f80b679c8905", "resources/theme/default/icons/mActionSpatial.svg": "bef0b6a230ff89396636be69e8b40ef7", "resources/theme/default/icons/mActionSpecialAttributeBrush.svg": "24fc0d1c64c25fe84b8b2cfe896141cd", "resources/theme/default/icons/mActionSplitByPolygon.svg": "538583d5099e9abc25d5b1a9268e10e7", "resources/theme/default/icons/mActionSplitByPolyLine.svg": "8701b4efde0bae3ed46376ef173e4787", "resources/theme/default/icons/mActionSplitBySelect.svg": "26580003f206a37877bd8d4fb7c7e83a", "resources/theme/default/icons/mActionSplitFeatures.svg": "58f0d4717c6590d5116d6c4e3cf6661a", "resources/theme/default/icons/mActionSql.svg": "19852025b86712876a6f8722151414af", "resources/theme/default/icons/mActionStartCheck.svg": "36f7176cf331fccd0b34d63d0ea1330a", "resources/theme/default/icons/mActionStartImport.svg": "c6016f45b0af8a4852c51b94390c8226", "resources/theme/default/icons/mActionStreamline.svg": "e5cbf8db4c102b2afb6c8231f59b5c17", "resources/theme/default/icons/mActionStyleView.svg": "730e0af4ddac5a0fb1f5f539fd30622b", "resources/theme/default/icons/mActionSum.svg": "d017046d48ce90ed5bceab7d3e6d6f1f", "resources/theme/default/icons/mActionSwipe.svg": "12847b35a09965af255f83f9b227e3f0", "resources/theme/default/icons/mActionSysSwitch.svg": "34367f856ddc6239e12d778c5a19b816", "resources/theme/default/icons/mActionTableImport.svg": "8deaa47f6625c021e0fe3236c1d7b94d", "resources/theme/default/icons/mActionTaskManage.svg": "970769a0f3cd8be7dd294a765ab2187e", "resources/theme/default/icons/mActionTeamConfig.svg": "e84b0043b2cb13f560f94a0d6721e07c", "resources/theme/default/icons/mActionTeamEdit.svg": "b0114a6fc46120440e19c53730a0581c", "resources/theme/default/icons/mActionTeamProjectInfoStatistic.svg": "3129a2940c9803c5ca6ba12bef78cb00", "resources/theme/default/icons/mActionTeamRevisionSlider.svg": "5f1ab9a8ba1f48f0fcb3cfd5984862cc", "resources/theme/default/icons/mActionTeamServer.svg": "fecca577325287d69541a40ded17fadb", "resources/theme/default/icons/mActionTeamTimingAcquireLog.svg": "48487ce93bfd8cd3d0aa77a2c26ce9cd", "resources/theme/default/icons/mActionTeamTool.svg": "fc55777995fd4de917463da7c9f5424b", "resources/theme/default/icons/mActionTemplate.svg": "01927217e00be004e12f16b651440359", "resources/theme/default/icons/mActionTemplateCompose.svg": "af1adc1a48861d24dc688b9778d3d80e", "resources/theme/default/icons/mActionTemporaryLayer.svg": "68e4b5c61088a15f89d939c81ff86b87", "resources/theme/default/icons/mActionThematicAttributes.svg": "6b6ee135eedc395c6eb8e04b92a5cab0", "resources/theme/default/icons/mActionTileImport.svg": "903e13e6c35e1ee083a61b23918688de", "resources/theme/default/icons/mActionTiling.svg": "c8e25a3eda0bc19b9778168ecf753375", "resources/theme/default/icons/mActionTimeSlider.svg": "30df8efe796c12114471323077bca30c", "resources/theme/default/icons/mActionTimingAcquire.svg": "489dd9a97dffb720b3162dc14bc86a9e", "resources/theme/default/icons/mActionTimingAcquireSetting.svg": "7ecabd8416d95df2f92da8ff60d44da9", "resources/theme/default/icons/mActionToggleEditing.svg": "29723b6d47441f7bb494714ea429edde", "resources/theme/default/icons/mActionToolBox.svg": "2c9169fc1c7e50f15b84f71bafd17a6d", "resources/theme/default/icons/mActionTrim.svg": "225c5b9cc91e4f5e8ca4aaf8787780c6", "resources/theme/default/icons/mActionUndo.svg": "ec0a88d3076c323ae59118eca56b8163", "resources/theme/default/icons/mActionUngroup.svg": "7bc078804d80699dc8cc91e2082f84d4", "resources/theme/default/icons/mActionUp.svg": "7999c9a02eda90ac2f42b6c3641e904b", "resources/theme/default/icons/mActionUpdate.svg": "40ba9725c8cdd5e1fe69108bb6f8525d", "resources/theme/default/icons/mActionUpdateRecords.svg": "5a46d098c69fbf39923ffe3178018278", "resources/theme/default/icons/mActionUpdateToRevision.svg": "80e6f808eeb64d71829e44a827b9b51f", "resources/theme/default/icons/mActionUploadData.svg": "4817a531daa8606bc9531d50957971c6", "resources/theme/default/icons/mActionUserRoleManager.svg": "e3e59465ff0ccfc907414df8628b5723", "resources/theme/default/icons/mActionVertexTool.svg": "daa8e981408b835ddbe36af3bed62e19", "resources/theme/default/icons/mActionVTSPreview.svg": "f9c9643fd1b174e56abae7e8a5ffe7ba", "resources/theme/default/icons/mActionWeldPolyline.svg": "35c012816b7f000837e465109dcb1f95", "resources/theme/default/icons/mActionYearChangeNavigation.svg": "943edf66d680b0ee7fc4a2d68504b6ab", "resources/theme/default/icons/mActionYearChangeRegression.svg": "b4f5be92104d693da3a88a817166c20e", "resources/theme/default/icons/mActionZoomFullExtent.svg": "6f21d610891d2924bcfe88c73fb764f5", "resources/theme/default/icons/mActionZoomIn.svg": "1042c451e38bbbdea2736329514618a0", "resources/theme/default/icons/mActionZoomInCenter.svg": "f02ed86aaccae6e9a97ecbb852a0b224", "resources/theme/default/icons/mActionZoomLast.svg": "5c42ac5098f8e0f648dbe3de9bb4bad8", "resources/theme/default/icons/mActionZoomNext.svg": "a9fa6a5c006dd0c0840aa4e1774de19d", "resources/theme/default/icons/mActionZoomOut.svg": "7a84e09a885a48b381d69d0b5d3ff69a", "resources/theme/default/icons/mActionZoomOutCenter.svg": "c84df5bb54c1fc4da3656025dd3bd6bd", "resources/theme/default/icons/mActionZoomToBookmark.svg": "9073facd9ee913217bed1c2093a4e098", "resources/theme/default/icons/mActionZoomToLayer.svg": "82c760fa362ccf923603a9ab657d737f", "resources/theme/default/icons/mActionZoomToSelected.svg": "e934636f2b504da8ab0e4e6d3e859bac", "resources/theme/default/icons/MaintainRegionDic.svg": "e220cc3e4c97e63296684f3d9e38d5f8", "resources/theme/default/icons/mapConfig.png": "f7b863779cc89c8be7605bc56a65703c", "resources/theme/default/icons/mapConfig.svg": "c7a0b74014cc0599c1e82c0c8b8be1f1", "resources/theme/default/icons/markdown.svg": "b1318f7383ab486afa82e4568aa58185", "resources/theme/default/icons/matlab.svg": "8d5f10b9fb25f9df14e71d6e4eda19a7", "resources/theme/default/icons/mAutoChangePolygon.svg": "4aed8b896926a1d832f64933d1257f52", "resources/theme/default/icons/mAutoCompletePolygon.svg": "3c11c43f10997872241c257e9987d46c", "resources/theme/default/icons/mComposeSchemeManage.svg": "d352afeceb179d2d645026aa873c5b92", "resources/theme/default/icons/mDataExportSchemeManage.svg": "a7e3c9f7ad828fb76c0cf4cfb13c097b", "resources/theme/default/icons/mDataImportSchemeManage.svg": "fc35fcdf359f9f81fa2ae510ab87c4c1", "resources/theme/default/icons/mDataTransSchemeManage.svg": "c9bf6fa291e4976bf0983bd5288934ab", "resources/theme/default/icons/measureConfig.svg": "903161e927f84e5613a6dd4c9922a1bd", "resources/theme/default/icons/merge_h.svg": "e18a2b6bbdb4a1e6d8a95644122e60d9", "resources/theme/default/icons/merge_v.svg": "a8527f6026fe7118c129f5cba6fb1016", "resources/theme/default/icons/metadata.svg": "b2e273799dbfa6dbc52e8228f5bdbdd9", "resources/theme/default/icons/mGeneratingDLJX.svg": "4c69197baf2338313faf3993d6b115e8", "resources/theme/default/icons/mGeoPackage.svg": "7c73ffb090a38af7feab29aa12152423", "resources/theme/default/icons/mIconAddDBServer.svg": "8c825e00c2816ab43183b541733d71f8", "resources/theme/default/icons/mIconAddServer.svg": "7112be64f8be6720026bc2a8bf9c625d", "resources/theme/default/icons/mIconAfs.svg": "26bc632ff2d7c289e202f6c8f61e1c03", "resources/theme/default/icons/mIconAms.svg": "630bac3c1a415087351fe6492e4bb83d", "resources/theme/default/icons/mIconAnalyseFlow.svg": "ea21512744b1a11c266e5b9d1520389a", "resources/theme/default/icons/mIconAnnotationLayer.svg": "fbe179641e24ec8c54a302265cca4f2f", "resources/theme/default/icons/mIconAnnotationMLayer.svg": "68d1aa7332c4c52ba3e969a14417ae19", "resources/theme/default/icons/mIconApplication.svg": "94bea3681edb4be10e23727c67923918", "resources/theme/default/icons/mIconApply.svg": "51876eb236913705ce2756c72b7fb49a", "resources/theme/default/icons/mIconAttirbuteAssign.svg": "b93e85f9184b920d402f862abf94357b", "resources/theme/default/icons/mIconAttributeTable.svg": "e7db893217b5b1baac3961b549108479", "resources/theme/default/icons/mIconAuxiliaryStorage.svg": "424505094deccde793bb07080494a9b1", "resources/theme/default/icons/mIconCad.svg": "fef13370469b1722e4dcc26d46a89f57", "resources/theme/default/icons/mIconCalEllipsoid.svg": "823474172c2ccec64f5adaee114fd82a", "resources/theme/default/icons/mIconCatalogResource.svg": "6c8e7c6dfd9c958328f27092fb00c3c3", "resources/theme/default/icons/mIconCatalogRoot.svg": "01afcfbe57ea1a4a90b6daf78af9a2a9", "resources/theme/default/icons/mIconChange.svg": "7cc1b16efb9fcf0c8144b9c1e86d258e", "resources/theme/default/icons/mIconCheckLayer.svg": "841eb956c21eb7f7557937b56648eea2", "resources/theme/default/icons/mIconClearText.svg": "f20b46fc4f835d7d636f97f1d7770c63", "resources/theme/default/icons/mIconClearTextHover.svg": "6bf93a9f31af24cc804503c71aadbfa7", "resources/theme/default/icons/mIconClose.svg": "7787829dfdddf0c0ff3306e96b5998fe", "resources/theme/default/icons/mIconCode.svg": "e6351f72e8d1f68207c574af6f6557ad", "resources/theme/default/icons/mIconCodeSpecifiation.svg": "e0a81b82fa77022b5850eb16a0382690", "resources/theme/default/icons/mIconCodingScheme.svg": "654f59de125796f54e270e6278e60d34", "resources/theme/default/icons/mIconCodingSchemeRoot.svg": "06c8ad7cf27e496674ed6bdc31db1ba7", "resources/theme/default/icons/mIconCompoundLayer.svg": "d1026c32abaa5a0591f7a5c7b693eac8", "resources/theme/default/icons/mIconConnect.png": "c4d29a2a304cc265c34def6e2a1cc7ed", "resources/theme/default/icons/mIconCritical.svg": "479fc5b611396c2c535a2bc18a808ef6", "resources/theme/default/icons/mIconDaMeng.svg": "74e85fd3c915ccc760b40a05f961bae5", "resources/theme/default/icons/mIconDataSet.svg": "cb718d909534dadd72d4b72dbddb1a4a", "resources/theme/default/icons/mIconDataStructure.svg": "fd89f1f6fae2b928a841aea919995f34", "resources/theme/default/icons/mIconDbSchema.png": "1b79c7357dd1f0e5eb1f4d47f759b4f6", "resources/theme/default/icons/mIconDelete.svg": "b7645486da851a6b3272d304f2a6dd86", "resources/theme/default/icons/mIconDeselected.svg": "75733116db9e219b0f4382385342b511", "resources/theme/default/icons/mIconDicItem.svg": "68e57fc565b36ae2e1d060ce6dc8c964", "resources/theme/default/icons/mIconEditableEdits.svg": "455990cd70b279a43e6fe1483ef47b3b", "resources/theme/default/icons/mIconError.svg": "affb8053194df39dda4f105433c209d7", "resources/theme/default/icons/mIconExportCatalogDataNode.svg": "66c846fd3b5f7a771e834b12555d546e", "resources/theme/default/icons/mIconExportCatalogFileNode.svg": "719a5a83513ddb084966a21c3909092a", "resources/theme/default/icons/mIconExportCatalogRootNode.svg": "51d5c34391a171eed24ebfc860fc710b", "resources/theme/default/icons/mIconExportSchemeNode.svg": "810c27933bac0c415bba59ad0e28619a", "resources/theme/default/icons/mIconExportSchemeRootNode.svg": "cd1a0f9d1adc73d30ad78f03e26e3125", "resources/theme/default/icons/mIconExpression.svg": "4a7c9010d4faef5cb7dd50d4b063bf1d", "resources/theme/default/icons/mIconExpressionSelect.svg": "d5a11b917f78b8963933e25463ed3f13", "resources/theme/default/icons/mIconExternApplication.svg": "76860ff954accd3d41779f1b13614a03", "resources/theme/default/icons/mIconFcs.svg": "842114c237df2e6488115f32bf6179a0", "resources/theme/default/icons/mIconFifthLevel.svg": "64fd05b7bc8fcc3d5613bff14477230b", "resources/theme/default/icons/mIconFile.svg": "3047ab35641e5516a3eb281bada2613a", "resources/theme/default/icons/mIconFirstLevel.svg": "411ddf0a99c68e8adf1c08389bd2ea10", "resources/theme/default/icons/mIconFolder.svg": "cf1ca6b8396b31dcca5b8f33eb43ceb4", "resources/theme/default/icons/mIconFolderCatalog.svg": "4eb1ba9a379ada6a5d6bdb205259bb04", "resources/theme/default/icons/mIconFourthLevel.svg": "638de27d6466f21ec317cb203840ae5d", "resources/theme/default/icons/mIconFtp.svg": "a199167e87d48e535a28a0f1bba7b62b", "resources/theme/default/icons/mIconFtpConnection.svg": "8a392e40f69a0f418fdbdd881165da08", "resources/theme/default/icons/mIconFtpFile.svg": "dd9f4404c69b29266260a9a9d8df269b", "resources/theme/default/icons/mIconGBase.svg": "fb1586a853c2904b60aaae867f76c85a", "resources/theme/default/icons/mIconGdb.svg": "faf3ba5fe031bfdce3aed9a3f46f078f", "resources/theme/default/icons/mIconGeoMap.svg": "5fddaa3bf5d340522608d62df060290f", "resources/theme/default/icons/mIconGeoModel.svg": "1062170310062340d8e756bf956bc804", "resources/theme/default/icons/mIconImage.svg": "d7d21b7fb0e283fcf8411c03f3e31845", "resources/theme/default/icons/mIconInfo.svg": "3c0cf72d3f29ee6108e7d408a9103694", "resources/theme/default/icons/mIconInnerLayer.svg": "8191e0d1b9834eec58a8ee696da1ceeb", "resources/theme/default/icons/mIconKingBase.svg": "8ad55c2113ceee058166bdd7da6fd468", "resources/theme/default/icons/mIconLayer.png": "21cf151b551b35eed6e034ed7112dbc0", "resources/theme/default/icons/mIconLayer.svg": "9540c68b59d83e5f407a81cb364fe39e", "resources/theme/default/icons/mIconLayoutTemplate.svg": "215df0affb2b3b0d8895161fcc9bdafa", "resources/theme/default/icons/mIconLayoutTemplateRoot.svg": "99d5dce6929dd587527835636b774346", "resources/theme/default/icons/mIconLineLayer.svg": "4c69197baf2338313faf3993d6b115e8", "resources/theme/default/icons/mIconLineMLayer.svg": "fe6b4178b48f8999d83c10155c1a0b0e", "resources/theme/default/icons/mIconLoading.gif": "8fa9058348a86d759eb315dd66de2714", "resources/theme/default/icons/mIconLocalServer.svg": "f890500950ee4e3e5468082e57eabcf9", "resources/theme/default/icons/mIconMapFile.svg": "627ca8d2c2c1796f646e9216d9349bea", "resources/theme/default/icons/mIconMapStyle.svg": "b6356008ed553c02b7a31e7be2b3289f", "resources/theme/default/icons/mIconMixCatalog.svg": "4eb1ba9a379ada6a5d6bdb205259bb04", "resources/theme/default/icons/mIconModelLayer.svg": "72f4b78bf3b06435aef0e06e5ca151e2", "resources/theme/default/icons/mIconModifyServer.svg": "c7d9ee62d4aa9720f2f15a3f22e86b3e", "resources/theme/default/icons/mIconMySQL.svg": "a99effe63b8a0afe08ca87c291451c6e", "resources/theme/default/icons/mIconNewGroup.svg": "e27402c3f3b6866ea996eff280c1329d", "resources/theme/default/icons/mIconNow.svg": "6a8ae624d3a553b4db8d03e60170fee0", "resources/theme/default/icons/mIconOffice.png": "6303c5abbdcdd3a24281007c3f75910e", "resources/theme/default/icons/mIconOracleSpatial.svg": "96b27c5bb382407c8fbb3f1d5cdfbb45", "resources/theme/default/icons/mIconOutsideLayer.svg": "2e84bf82fd9ba6d6d3b170ff227e43b7", "resources/theme/default/icons/mIconOws.svg": "861d35b91c66a25907dd731a522795fd", "resources/theme/default/icons/mIconPg.svg": "870e241bd22d89b83aa26e69b79e44d9", "resources/theme/default/icons/mIconPhysicalTable.svg": "62556fe79abc5c1aa1b139a4caab4f97", "resources/theme/default/icons/mIconPhysicalTenseTable.svg": "8495bd64272f9519ba3639bb108ce6a1", "resources/theme/default/icons/mIconPointLayer.svg": "95251fc052d089796b41a46072661ad2", "resources/theme/default/icons/mIconPointMLayer.svg": "3ace9ed797c1cd91848f6e75df4ce5cf", "resources/theme/default/icons/mIconPolygonLayer.svg": "da646fa3fef5ce81f9f0e9ace1d0be1e", "resources/theme/default/icons/mIconPolygonMLayer.svg": "b76b1c64744e78f711a6ed163b6fbf29", "resources/theme/default/icons/mIconPostgis.svg": "d95101a8f8b9eaa80083d646e5383659", "resources/theme/default/icons/mIconProjectionEnabled.svg": "820493124a75fe953400f9f2ceba9d34", "resources/theme/default/icons/mIconProperties.svg": "b57f75b3eccce67243c8143fc010f052", "resources/theme/default/icons/mIconRaster.svg": "a65c7579f3849569b88caa69d46d6d1c", "resources/theme/default/icons/mIconRasterGroup.svg": "b22c2b30b5b48777566a041b02ca20d7", "resources/theme/default/icons/mIconRasterLayer.svg": "37358bd2779dd20a7580a1b4b354913b", "resources/theme/default/icons/mIconRegionItemNode.svg": "0c892403655a142a739da4a445f10d69", "resources/theme/default/icons/mIconRegionNode.svg": "2b8d8fcdb3054ca0b50d165d76a0e529", "resources/theme/default/icons/mIconRegionRoot.svg": "a05b73abd59d65752a387c0887afeaa1", "resources/theme/default/icons/mIconRegionRootNode.svg": "b7b0001fe203a7c6e9bfaf88d2f2db4c", "resources/theme/default/icons/mIconRegionTree.svg": "981c3314204c6c2ddb53e50da0181732", "resources/theme/default/icons/mIconReload.svg": "4ee18f3e56c0a3ce09a1cc261ca9d12d", "resources/theme/default/icons/mIconRemoveServer.svg": "1644b9d1c6aa137862d1ae8788374b3e", "resources/theme/default/icons/mIconReportWizard.svg": "fc1234e9224f00f23323c50723568edb", "resources/theme/default/icons/mIconReserveSelection.svg": "8ab255dc5906d1cf88675446c3e09240", "resources/theme/default/icons/mIconResourceCatalog.svg": "4eb1ba9a379ada6a5d6bdb205259bb04", "resources/theme/default/icons/mIconRule.svg": "5115e07bbedf98741550b7db9dae61a4", "resources/theme/default/icons/mIconRuleGroup.svg": "99610d48d732d9f76ad9dd28fba1bb1d", "resources/theme/default/icons/mIconRuleRoot.svg": "013cdba55f00d20c4d9d1429a33d3981", "resources/theme/default/icons/mIconSave.svg": "5e0bcceceac29567885531806f0df5eb", "resources/theme/default/icons/mIconSaveAs.svg": "92eae31b2324f5a7b3fc959de7858a54", "resources/theme/default/icons/mIconSecondLevel.svg": "f830a82f170fdc417e8243e99f6463ef", "resources/theme/default/icons/mIconSelectAll.svg": "2c19a865fc8951dc6b0d76e03192fa57", "resources/theme/default/icons/mIconSelectNone.svg": "728e2fbb4f50cd340e739df3efa98505", "resources/theme/default/icons/mIconSelectServer.svg": "7a40c874356f04dfcf9dc16631b01e36", "resources/theme/default/icons/mIconServer.svg": "b037d88ce726e5e2e9022bcfccf1ab1d", "resources/theme/default/icons/mIconServerManager.svg": "db323ee83983521b1fe55d718137118b", "resources/theme/default/icons/mIconSetColor.svg": "04cd244f3efa35e3e49c3d15a41dfd8b", "resources/theme/default/icons/mIconShowStyle.svg": "82e6f287175dfa2492b04316a1001113", "resources/theme/default/icons/mIconShp.svg": "d4b18ad9e5808b63b022799c9b9ad7fe", "resources/theme/default/icons/mIconSixthLevel.svg": "e7553e75a3071065b15b6bcf2bdc8e96", "resources/theme/default/icons/mIconSnapping.svg": "63f355964cf029d5dcaf7181384b8762", "resources/theme/default/icons/mIconSqlite.svg": "aaa168559302aad794f38c3eba3bddd4", "resources/theme/default/icons/mIconSuccess.svg": "2d9a7e0389e29ef07f2f881f478acc57", "resources/theme/default/icons/mIconSystem.svg": "fa75b6702dfc9a38d955c4db45bce8de", "resources/theme/default/icons/mIconTable.svg": "21615bcc2dab3f7d81b36b7267d5c003", "resources/theme/default/icons/mIconTableLayer.svg": "f097c9a2709c4bb46a5c69edcaeb877d", "resources/theme/default/icons/mIconTableMLayer.svg": "3777b46cbf789491572e2ab6c3841384", "resources/theme/default/icons/mIconTense.svg": "a9506e8a7e783d03a27c777d50f639c5", "resources/theme/default/icons/mIconThirdLevel.svg": "1b82d2a307fc30d45b11ea616c7b5c10", "resources/theme/default/icons/mIconTile.svg": "b73d838ec69991e754f3cb8eb1f47366", "resources/theme/default/icons/mIconTileLayer.svg": "e65e45cc49d05e235d10096ad817fc82", "resources/theme/default/icons/mIconTimerContinue.svg": "cfd5c0fdbd6fdcd6a414dac9c092a633", "resources/theme/default/icons/mIconTimerPause.svg": "56f9fb6e1a8b29efb238c60c7abb2682", "resources/theme/default/icons/mIconTxt.svg": "2a5d39dfd28028ea033bbe28e5e5bfad", "resources/theme/default/icons/mIconType.svg": "652794ba38eacdf6364786d77e138b92", "resources/theme/default/icons/mIconValueRangDic.svg": "b5fbdf278321d22243dcc2a0dfa25e72", "resources/theme/default/icons/mIconValueRange.svg": "3656fff54e067f46659582350822c3bd", "resources/theme/default/icons/mIconValueRangeRange.svg": "2b8d8fcdb3054ca0b50d165d76a0e529", "resources/theme/default/icons/mIconVCT.svg": "9de1e1bdb8620f90226157e87ff08f35", "resources/theme/default/icons/mIconWarning.svg": "469d5f397cb89f1768473b9fc065cb1f", "resources/theme/default/icons/mIconWcs.svg": "d50746b54aaf55fe0f070cd61f42b589", "resources/theme/default/icons/mIconWfs.svg": "4bb63bff96c7076f1372a1a21fc746a3", "resources/theme/default/icons/mIconWms.svg": "ff83723069a766205aaeedbd335906dc", "resources/theme/default/icons/mIconWmts.svg": "ad3fe79ff517b26bf49f6ee5d6a31b17", "resources/theme/default/icons/mIconXYZTile.svg": "d0c0b73adfc969f20bf96165e9581276", "resources/theme/default/icons/mIconYearChangeDataInittail.svg": "53d895ee3af75bc504e52de69b648768", "resources/theme/default/icons/missing_value.svg": "864863c0054f6b72766d2f8a3e030f30", "resources/theme/default/icons/mLayerSaveAs.svg": "42e4a4ffc0342a7cc626cc2df0f4748e", "resources/theme/default/icons/model_selection.svg": "222c717feb5de2c675cfb7c85c41b9b4", "resources/theme/default/icons/modified.png": "430719999ef1aad4e546d47662f64a82", "resources/theme/default/icons/Mouse.svg": "87a75d7d8243dad6fd65d9815db3e7c0", "resources/theme/default/icons/mPolygonDifference.svg": "c7fcfd8353e8661aade6824f2f946878", "resources/theme/default/icons/mPolygonIntersection.svg": "8a8cef3083c30309df6946d6ccd660b7", "resources/theme/default/icons/mPubLayerRoot.svg": "5073514803a9dc01c5c70c3c18305ffc", "resources/theme/default/icons/mPubLayerSet.svg": "a64220d6ecb203571ef6f1d8b0bbe5c2", "resources/theme/default/icons/mPubLayerSimple.svg": "40a8f32e0ec29323c176effbab6a1199", "resources/theme/default/icons/mPyramidManage.svg": "f50928a886510ab2489f3875930c252a", "resources/theme/default/icons/mRefreshErrorStatus.svg": "07bf753129c84e7d476e939ee906c4cd", "resources/theme/default/icons/mReportExport.svg": "e4c0687252e51c27e8967b033352b09e", "resources/theme/default/icons/mReportSetting.svg": "9f12bcd4a448ceeed1ddfa07a289d712", "resources/theme/default/icons/mSourceFields.svg": "c29a122376138fa67964299e1cd554dc", "resources/theme/default/icons/mStartCheckProcess.svg": "1a43b916dc8effdee18fbc2126c77714", "resources/theme/default/icons/multieditChangedValues.svg": "fa2114de837cf105940390a270ca0fbb", "resources/theme/default/icons/multieditMixedValues.svg": "41e09b3a0af251bf17d9283b8f81a577", "resources/theme/default/icons/multieditSameValues.svg": "f280c0cd500fd7679b7bc4cc7abec436", "resources/theme/default/icons/mvectorlayercache.svg": "52656796a777dcd29c43e584de7e40ca", "resources/theme/default/icons/MySQL.svg": "b4b89c2f14fe912b9acc90c32f1b3dc8", "resources/theme/default/icons/nActionBasicStatistic.svg": "f58a64edfbcc2a499d017d021caa854f", "resources/theme/default/icons/net.svg": "01609ed2d769c8d7ad4c97460cac8f69", "resources/theme/default/icons/New post.svg": "0faf63c8a6a31411cfedca48447870cd", "resources/theme/default/icons/new.svg": "f39a9d36090c7cad6757b3621aea0dbf", "resources/theme/default/icons/newvectorfile.svg": "56abc8aa55c3e2143c78b52af8a364d9", "resources/theme/default/icons/new_project.svg": "3cd72c019015b461870f3ad6e871aca1", "resources/theme/default/icons/next.png": "ff36945b6427eb8226bec7fe2743af70", "resources/theme/default/icons/nextConflict.svg": "a086d4b6331680eeb568a4df98937305", "resources/theme/default/icons/non_versioned.png": "25ba46f98f7aee7477ffb7d7fc1a7d62", "resources/theme/default/icons/normal.png": "795d679579e414fd37489f552b604b94", "resources/theme/default/icons/numpy.svg": "f36ed6c85013eb6f6bb3e49a8a9ee713", "resources/theme/default/icons/open.svg": "200a281b71b9104332781e9eb2fcc6de", "resources/theme/default/icons/open_folder.svg": "4aac2ccabd5e0ee6afe3286e61b8c85a", "resources/theme/default/icons/oracle.svg": "62030f9604e445ac5ef6b9edc94da181", "resources/theme/default/icons/orderlayergroup.svg": "2dd8c13c7243f17d69087176d29ddbb3", "resources/theme/default/icons/overlay.png": "17f28aabcf682bbf6a22d0a80070b1ce", "resources/theme/default/icons/package.svg": "db8542fb863117d5d74f7a6676ab419e", "resources/theme/default/icons/pagesetup.svg": "b25656114dc0af77191a6d7b206c7e91", "resources/theme/default/icons/paste.svg": "02b0ecdb9e40d6e9a3a589be40ea0790", "resources/theme/default/icons/pasteElement.svg": "deede2c394febaf7818a5a74220adb58", "resources/theme/default/icons/pausefly.svg": "aec4d2aee5c1a96174b7d0efbb654d35", "resources/theme/default/icons/plugin-installed.svg": "715e5c20df916d7d0a959ef6a6efbc40", "resources/theme/default/icons/plugin.svg": "c5c2d3092b1c2958aae669b0ce891492", "resources/theme/default/icons/plugins.svg": "e04bad7db3b8435bff70fd5ebbebc369", "resources/theme/default/icons/postgresql.svg": "5c2c9989c1a23c934678119d55c088b8", "resources/theme/default/icons/previous.png": "af4d639c2ccefd5b57d4772e3cc3bb62", "resources/theme/default/icons/previousConflict.svg": "099b009a440d54790c0cda1d60842134", "resources/theme/default/icons/print.svg": "3ba6cb43288c30503450361636fae5aa", "resources/theme/default/icons/processingAlgorithm.svg": "5acd3a3ea3ac4302ebed7d35fc1f16ae", "resources/theme/default/icons/project.svg": "72a57d9485a1a0a78e977a2f472e2213", "resources/theme/default/icons/projectDataTree.svg": "23c638ad38fe4f0dc6a4661730f24081", "resources/theme/default/icons/providerQGeomap.svg": "2c9169fc1c7e50f15b84f71bafd17a6d", "resources/theme/default/icons/pypi.svg": "6b9ea3945cf090b33076ea91ce2e9612", "resources/theme/default/icons/pypi_color.svg": "aefe42c944201ae3a898d71d5ec62075", "resources/theme/default/icons/pyramids.png": "051b61faa344c78af9a059e9cfc78dae", "resources/theme/default/icons/python.svg": "cdf88def02be5b2ce0e4c40b89d2c6ce", "resources/theme/default/icons/python_gray.svg": "b0b260fbbaa0b24915e46e80a5d7af9d", "resources/theme/default/icons/qgeodataspecificationmanagertool.ico": "c86f314e1777d0e7541709d50f9d726c", "resources/theme/default/icons/R.svg": "c27cc0791576e0ca3616b76731907b9e", "resources/theme/default/icons/reduce.svg": "1e88d456b31261ed99c18414a5c47671", "resources/theme/default/icons/regression.svg": "ea2efc714a40dfba39ecbd5218268fa6", "resources/theme/default/icons/remove.svg": "a6328dbd354bd5965aae818d26b273da", "resources/theme/default/icons/removeElement.svg": "7f477ed033b711e6e3b96f9bf22c79e1", "resources/theme/default/icons/rendering.svg": "55bdf00e277bc65c5639e48f8d9f42d2", "resources/theme/default/icons/replace.svg": "fbba9c3ecb7acb6dc76d5fc36cb03302", "resources/theme/default/icons/resolved.svg": "4a3f747ccc1459e54666994682080e38", "resources/theme/default/icons/ribbonMaximize.png": "e5dc4278826e32c25a4723fc87b943b2", "resources/theme/default/icons/ribbonMinimize.png": "42094d61d30e8a72a1a2cbff7a0df598", "resources/theme/default/icons/right.svg": "5dca8df9c3b66d4d1449494b34f936fe", "resources/theme/default/icons/roaming.svg": "4db76c4b080e95322cde6b52d36cfcfb", "resources/theme/default/icons/rubberBandConfig.svg": "9dd7c66dd566eaabd42ab2edd443654c", "resources/theme/default/icons/run.svg": "ec156027329d2c13877625ff3fcbee01", "resources/theme/default/icons/sample.svg": "59c88431eeb5015338430a9b7d1be8c5", "resources/theme/default/icons/sas.ico": "c4c83c2060701e0389262d9d07362896", "resources/theme/default/icons/save.svg": "89eafd6a566e859840d717e73872df13", "resources/theme/default/icons/save_layout.svg": "de4fd322d23ce467c2d30c2f2cb4fec0", "resources/theme/default/icons/scale.svg": "6b074bd9946d667c2f3e6502e634ecd2", "resources/theme/default/icons/scaleAdd.svg": "1724ab174f6709f9485d555a2d372639", "resources/theme/default/icons/scalebartext.svg": "1c6d5b3e2d85f1cbfb7305ebc7c2ee94", "resources/theme/default/icons/scaleClear.svg": "c62dd67d91bfb849c20eb5a1bd37e215", "resources/theme/default/icons/scaleRemove.svg": "0fb15d6df30ef9a5248804f9d082ad04", "resources/theme/default/icons/scaleReset.svg": "c69773f8695e60c85c82f65bfb44a29e", "resources/theme/default/icons/scorecard.svg": "9919e029f7566ce49fbe7338493e0473", "resources/theme/default/icons/script.svg": "cb1493bb56cd8d924de2516d7dbb5187", "resources/theme/default/icons/search.svg": "b116a8aa818d1cd7ec41752a0c29816b", "resources/theme/default/icons/section.svg": "aea2b044eb14c55452bc8172df030f92", "resources/theme/default/icons/selectedrecords.svg": "171b3d8de98149a3675b853745105c22", "resources/theme/default/icons/setExtent.svg": "7080d56468833b423897465aeca93138", "resources/theme/default/icons/setting.svg": "41cf928d70d4e8ed012cc2d15d224ed2", "resources/theme/default/icons/shengcunfenxi.svg": "5ae32cbb038032ed1443b8005baff03c", "resources/theme/default/icons/shortcutsConfig.svg": "4cb9c5a2687e14ba17d7ad9f4dcbfea9", "resources/theme/default/icons/simplearrow.svg": "157c76b4552215d148febb98baf92b1d", "resources/theme/default/icons/situationpoint.svg": "af69811bf86271d54800957689c28aec", "resources/theme/default/icons/skip_line.svg": "eedc935dd2773c44ff7e54a50811030a", "resources/theme/default/icons/slider_close.svg": "3402865a23ff073e953448e3d2480c24", "resources/theme/default/icons/slider_lasttime.svg": "da6ead6853a3db08a482f28ceaf933e3", "resources/theme/default/icons/slider_lastversion.svg": "3d10f7b5692a9ea4b8929e5a65528bfb", "resources/theme/default/icons/slider_nexttime.svg": "b54ce11ec64888d09640861fcc2ed0a5", "resources/theme/default/icons/slider_nextversion.svg": "54213dc4e51bccdd8348bcbdc0102d7b", "resources/theme/default/icons/slider_zoomin.svg": "abeda64aa9f3fa4e6d3bb2eefe65a89e", "resources/theme/default/icons/slider_zoomout.svg": "b9a24b973053cf1d836872b788180f00", "resources/theme/default/icons/sloperuler.svg": "16d462cb766b85c0ec907ce5c529bb02", "resources/theme/default/icons/spss.svg": "4d8cb6044137301a4101755e43b83fc1", "resources/theme/default/icons/sql.svg": "a0997f68ee9c263ffecd0efbaa524236", "resources/theme/default/icons/stata.svg": "a62e991cde9e8389dea6bf46b0bccb43", "resources/theme/default/icons/sun.svg": "e98cbd692ec62d35d27c78c31d91f86f", "resources/theme/default/icons/symbology.svg": "062e0ba664ee2320d21cda33ddaf3525", "resources/theme/default/icons/symbolreorder.svg": "062e0ba664ee2320d21cda33ddaf3525", "resources/theme/default/icons/system.svg": "c76354112390bc2f9151b4baf729ccfc", "resources/theme/default/icons/table.svg": "21615bcc2dab3f7d81b36b7267d5c003", "resources/theme/default/icons/tablegroup.svg": "b9a57bb1b7a98b1ea2220552ae77f576", "resources/theme/default/icons/task.svg": "1223b13e13ffccea138013fd33b71775", "resources/theme/default/icons/teamEditProject.svg": "35828465cb83319c8579c9cb9a904481", "resources/theme/default/icons/terrain.svg": "5e2ccfec44e7d6a40320912b4137615e", "resources/theme/default/icons/threenorth.svg": "96eada7b3eeebdca632533988e617717", "resources/theme/default/icons/time_series.svg": "94fd406769655b721b17f4cb17bc673f", "resources/theme/default/icons/top.svg": "22d2fefe180a699944a6a5ab545ab5a9", "resources/theme/default/icons/topologyConfig.svg": "2af77dff1d80bcccdefd9079ed4d68b6", "resources/theme/default/icons/transformed.svg": "5b98c431c64bf1f5697a2c63cab6ca11", "resources/theme/default/icons/transparency.png": "17c24a4daf81d8d7f8b9c7642e2fa7e7", "resources/theme/default/icons/transposition.svg": "07d926b580577fcc30c3a709cbde68bc", "resources/theme/default/icons/tree.svg": "14ae56a092c0268672520520ffc4443a", "resources/theme/default/icons/txt.svg": "867501b0b384f46cf6d4f225605995c1", "resources/theme/default/icons/undo.svg": "5484c93bf4a89654d20a2ba6bb66d912", "resources/theme/default/icons/uploaddata.svg": "e2a9a1ccdb820364d99b96d1a3ab39b6", "resources/theme/default/icons/upWard.svg": "b1c72b33367343316cc888d977ebb43d", "resources/theme/default/icons/useLeftAll.svg": "fddc9b7c0d601a881ab55af95659d3cd", "resources/theme/default/icons/useLeftSelected.svg": "1764c036105882a4743fc4e34e384404", "resources/theme/default/icons/useRightAll.svg": "c7020f993a82c847054dadf2b5709a5a", "resources/theme/default/icons/useRightSelected.svg": "18d35ec89cbb795bb88449c8859b3d81", "resources/theme/default/icons/var.svg": "c3d9e7461e40e74c17f3ce5873905f51", "resources/theme/default/icons/var_open.svg": "b023934e733448d74563926e0d5f9a1f", "resources/theme/default/icons/vectorTileStyle.svg": "670fc3779ea1e4b103aa75efd3832baf", "resources/theme/default/icons/view_var.svg": "a495e2e336064e1549622b87c69dd649", "resources/theme/default/icons/visibleMap.svg": "7ec32396ae7a2da699cf55929aed4f98", "resources/theme/default/icons/walking.svg": "790a25d6b2f642d0e2c04e5f5e5efd01", "resources/theme/default/icons/website.svg": "c789f48d1f500ad317ef3cde4818b240", "resources/theme/default/icons/windowicon.ico": "dd4b17c0ec69f51b039c51b6e0887c31", "resources/theme/default/images/addNode.svg": "d11d5a3ce54b3a864281b2f5f3311e36", "resources/theme/default/images/attributeBrush.svg": "ddeee5f9e2e1e63792eff8cbbb840164", "resources/theme/default/images/background.png": "ddf7168c491dac078b9b0c7c6771d602", "resources/theme/default/images/breakByOnePoint.svg": "ed5c5d11f74011fcb4c8a027eeb31599", "resources/theme/default/images/breakByTwoPoints.svg": "ce13a12a1afde966f284661dfdb1471f", "resources/theme/default/images/copyFeature.svg": "0293921cdf1de395e600349621565051", "resources/theme/default/images/cursor_leftbottom.svg": "3e9b60706a3f0bf7d729c48bd440cdc7", "resources/theme/default/images/cursor_leftright.svg": "418f31c70c594b53922604cdddb036e5", "resources/theme/default/images/cursor_lefttop.svg": "c364223abf37f51dd7def7162d9be9af", "resources/theme/default/images/cursor_move.svg": "8a82e82a355f18c8f410bd9bbf0c5f8e", "resources/theme/default/images/cursor_topbottom.svg": "ec0ad72e180c458e3155a88a2db6c023", "resources/theme/default/images/deleteNode.svg": "2aae237e59216f92c6b87dd7757c1a95", "resources/theme/default/images/editDraw.svg": "23e810e15d33b68a03427f8a40a408a1", "resources/theme/default/images/editSelect.svg": "8859783cdb6f54f380faadc8ad60c3c0", "resources/theme/default/images/error.png": "450eb59729737d72ceb03818c43ffcc9", "resources/theme/default/images/extensionPolyline.svg": "91c86deac1a658ed6b928487fb076723", "resources/theme/default/images/identify.svg": "ac8cb0d555021521270e9e6cc0d8ce59", "resources/theme/default/images/information.png": "423578ade54524e34a95580788d7729d", "resources/theme/default/images/mCapturePoint.svg": "5caf3405335284af6d880495b01d5776", "resources/theme/default/images/measure.svg": "23e810e15d33b68a03427f8a40a408a1", "resources/theme/default/images/mIconDeselected.svg": "75733116db9e219b0f4382385342b511", "resources/theme/default/images/mIconSelected.svg": "cc341d78f94f446e0e6ca672482edd15", "resources/theme/default/images/move.svg": "8a82e82a355f18c8f410bd9bbf0c5f8e", "resources/theme/default/images/moveFeature.svg": "8a82e82a355f18c8f410bd9bbf0c5f8e", "resources/theme/default/images/moveNode.svg": "84a9570e8f6d04cd64c450c1523aad4f", "resources/theme/default/images/mPageLayoutPan.svg": "67a143805264211f1031ebb79eb356a4", "resources/theme/default/images/mPageLayoutZoomIn.svg": "0d4e308d01775da24950c7c7869cadc2", "resources/theme/default/images/mPageLayoutZoomOut.svg": "ffa286230cff03f5bf4003a7f2e77a94", "resources/theme/default/images/mPanClose.svg": "a0603e76de7727c6a3a524adec772f49", "resources/theme/default/images/overlayUpdates.png": "75a5188a1a36b3e55a0c26bf0692ec3c", "resources/theme/default/images/pan.svg": "8fa8827e723ea97094655ce0ab60bcbb", "resources/theme/default/images/pyramidfirst.png": "6336d1c87d3a53c59f42ab682a7ef68d", "resources/theme/default/images/pyramidfourth.png": "3ca3b9cdbb6b88a50f6a270c24504df2", "resources/theme/default/images/pyramidsecond.png": "d8eb0fae632533ce16178629a61e77d6", "resources/theme/default/images/pyramidthird.png": "2dba3fd37994c231b6fe468f5922144a", "resources/theme/default/images/rotateFeature.svg": "d47a6e3f34dd3d3484440c7e4a96b58c", "resources/theme/default/images/select.svg": "128d8d763c91a71599ad86fcc069ad63", "resources/theme/default/images/selectbypolygon.svg": "5efdd8dc872ba52a262b939cfcd70515", "resources/theme/default/images/selectbyradius.svg": "c2d9e4efd0649941dfee9a843284ccca", "resources/theme/default/images/splitBySelect.svg": "021d0ae70cb8157d9d6f18feef0db270", "resources/theme/default/images/SwipeDown.svg": "21f3775a767d4cfb81d748276baf522a", "resources/theme/default/images/SwipeLeft.svg": "457aac45411c29aa4d6f1b63e6d999ba", "resources/theme/default/images/SwipeLeftRight.svg": "21193a1f1446c5c392d7a3807427e25a", "resources/theme/default/images/SwipeRight.svg": "cc700b8a09d58417f17496738db67404", "resources/theme/default/images/SwipeUp.svg": "b440961cee34d1649815aa594a896318", "resources/theme/default/images/SwipeUpDown.svg": "e21665a6f5d712ab4b25022ddb738ca5", "resources/theme/default/images/systemabout.png": "067610e0d804b16c75496b4ed77005dd", "resources/theme/default/images/thematicAttributes.svg": "ac8cb0d555021521270e9e6cc0d8ce59", "resources/theme/default/images/warning.png": "9323d69c25b6f79fc974023fee921af0", "resources/theme/default/images/zoomin.svg": "6bf9cf3ff08b719f4f872977e7ee201f", "resources/theme/default/images/zoomout.svg": "debcf4106754577838008ca423288371", "static/README.md": "2b883d8ed7e177b421e29625caf11a10", "static/tutorials_page.html": "7e6350719caf6a92de7a495441cd65ed", "static/css/iview.min.css": "b56ab90b84c3ac9f460f50906cbf5ae8", "static/js/echarts.min.js": "40874546a400f6e1b358c0495998a43f", "static/js/form-create.min.js": "5b2e899b103ec5bade920ac909268db4", "static/js/iview.min.js": "cb94a058fc714808d440d2b9835fed0d", "static/js/jquery-3.5.1.min.js": "dc5e7f18c8d36ac1d3d4753a87c98d0a", "static/js/vue.min.js": "b0473a59bd7e655c4da3d26f50dbba1e", "static/js/element-ui/CHANGELOG.en-US.md": "f90a50248e8a935d4bf94939b2b83bc1", "static/js/element-ui/CHANGELOG.es.md": "cd352a41d428cfe359e2dd25b3e69216", "static/js/element-ui/CHANGELOG.fr-FR.md": "2a5cb94c1cc391f95705a822c50906d2", "static/js/element-ui/CHANGELOG.zh-CN.md": "fae21798d847ea9bd4827f78766d634e", "static/js/element-ui/package.json": "ed15655a88db7bf4e42f2879000f0241", "static/js/element-ui/README.md": "29e235e7c8cba854610d2faa0424c5a0", "static/js/element-ui/lib/alert.js": "44bd2ce7e47fc65112066ebe354ceaca", "static/js/element-ui/lib/aside.js": "6af3243f56f6c0bda3eba64e2cd8078a", "static/js/element-ui/lib/autocomplete.js": "8cfc24a3a0f63f57b0bbefd1d43150b1", "static/js/element-ui/lib/avatar.js": "0c3f24bdffc3f4c3016149e5b589bf58", "static/js/element-ui/lib/backtop.js": "4ba1079d79f186a4b73395ab8048ce30", "static/js/element-ui/lib/badge.js": "d124ddea127b3b87fb7fc0e3d28f976e", "static/js/element-ui/lib/breadcrumb-item.js": "3ee84610ae6e927194916dc1850be078", "static/js/element-ui/lib/breadcrumb.js": "3b696a8b4d753bce1c9a42f1f2f2e559", "static/js/element-ui/lib/button-group.js": "c13e97a9b747982a6fe3475ce0963202", "static/js/element-ui/lib/button.js": "db479a095696d3b41e4e8e5ca573b2d9", "static/js/element-ui/lib/calendar.js": "78b60123511490a4957bb7ecc90ca562", "static/js/element-ui/lib/card.js": "a63bc5d2a60ecffc3fe581d2b9a86b19", "static/js/element-ui/lib/carousel-item.js": "24398b44ec0a885f9f7dcf7b4511b140", "static/js/element-ui/lib/carousel.js": "dc86769400de82ac847dfe71d278331a", "static/js/element-ui/lib/cascader-panel.js": "400c0c6ad5bb41a6d0aa489f027a849c", "static/js/element-ui/lib/cascader.js": "a97cc547f182cb959ff0af6d31f0769c", "static/js/element-ui/lib/checkbox-button.js": "e867a0fcfa56c197d8cbbcd8000ae723", "static/js/element-ui/lib/checkbox-group.js": "81593c2eeeee70e69fff71af4dfe212c", "static/js/element-ui/lib/checkbox.js": "09780b33e4add1d32b2b870c8ccc5a4b", "static/js/element-ui/lib/col.js": "227c1189111f2dfbada9a8f26e1433ed", "static/js/element-ui/lib/collapse-item.js": "0ef8b7bea75fa2d185730fa809d86148", "static/js/element-ui/lib/collapse.js": "8cc69b5cbaefb354e3fa19e748a54118", "static/js/element-ui/lib/color-picker.js": "25752f575ad81607f8b3b4652e1e1790", "static/js/element-ui/lib/container.js": "f2118022ef7e900503a8028e72a47bf2", "static/js/element-ui/lib/date-picker.js": "160c4f0f12cc50d77eeff03eb3e2abce", "static/js/element-ui/lib/dialog.js": "3446278e381ae6162bfc309cd883b84a", "static/js/element-ui/lib/divider.js": "ce49dbf8658355e06eb9ca852acd98e0", "static/js/element-ui/lib/drawer.js": "2a4f53c5e574a8fbe04eb528ccdb4e6b", "static/js/element-ui/lib/dropdown-item.js": "1c440ab125200ed27bb4402f26ae6edf", "static/js/element-ui/lib/dropdown-menu.js": "51e13aaf4f6dea2a6ec4eb6a06f49c1a", "static/js/element-ui/lib/dropdown.js": "02786a92e4ed20d950ad7d09e6dd03e7", "static/js/element-ui/lib/element-ui.common.js": "b6b435a52f5cdc204fb8a023bc856a16", "static/js/element-ui/lib/footer.js": "4d392ecf90fa43ebf25caa31e1783354", "static/js/element-ui/lib/form-item.js": "98d4dd1fa2c81e68ff40dc3344620df9", "static/js/element-ui/lib/form.js": "88eeb8b813539099fec26e9993789af8", "static/js/element-ui/lib/header.js": "9c9ab6bc2af99e67eee8367ab3ed855b", "static/js/element-ui/lib/icon.js": "658fcece90b39788b763c25f17d60207", "static/js/element-ui/lib/image.js": "650a56522f7a590b8fca25fdfb09690a", "static/js/element-ui/lib/index.js": "28fb829b428bc14fe9d26f852dbc11a9", "static/js/element-ui/lib/infinite-scroll.js": "3c09c5248512b2f0281e8e8bf4ecee8c", "static/js/element-ui/lib/input-number.js": "3dd23cc075c49822fe68366cef6f09a3", "static/js/element-ui/lib/input.js": "bb52be1067cfd9b1dd8ded0b664f5605", "static/js/element-ui/lib/link.js": "312480ee5f2292f314346434faa3518f", "static/js/element-ui/lib/loading.js": "9bb5753b57ee274668c5748d38eac2ab", "static/js/element-ui/lib/main.js": "92a26937eaac62367d2b81ebec36d9f0", "static/js/element-ui/lib/menu-item-group.js": "2098666a7bbd0c271cc084c3924d4ec3", "static/js/element-ui/lib/menu-item.js": "bf8db518c9b73c9cd3771dabf91bcaca", "static/js/element-ui/lib/menu.js": "0188cd906e1159936cbee28980fbec39", "static/js/element-ui/lib/message-box.js": "e275b026ca058dff799673d5740b6e22", "static/js/element-ui/lib/message.js": "0f64248045730556999011fa779d1dfa", "static/js/element-ui/lib/notification.js": "6190c53c839faa5b01a815de6769c899", "static/js/element-ui/lib/option-group.js": "f2759330e59d0518f60a6c5547d3c827", "static/js/element-ui/lib/option.js": "1c418a74feafdc73cfa5360764f1b90a", "static/js/element-ui/lib/page-header.js": "6a9f088700adf20d389cc542e6a0deaf", "static/js/element-ui/lib/pagination.js": "17b696cc294ca8bbc37af7b1c5968f7a", "static/js/element-ui/lib/popconfirm.js": "6bcceddbd44e456d716b66a018beaf7c", "static/js/element-ui/lib/popover.js": "a5cf39911205f08d5e5691a158bd81c6", "static/js/element-ui/lib/progress.js": "6f206f6d72b0622ea6a6c2fccd062bb5", "static/js/element-ui/lib/radio-button.js": "efdf34b9f8c565b99aeae587e11eb87a", "static/js/element-ui/lib/radio-group.js": "93003dbff84a768dbb1a12e7d6e7796a", "static/js/element-ui/lib/radio.js": "66201ad4319bcf5330d5711537cb85c6", "static/js/element-ui/lib/rate.js": "d57f0eede17b4ff2c80fbc3a5899d030", "static/js/element-ui/lib/row.js": "4d92917609e4db63a0acc64bca5d9ab4", "static/js/element-ui/lib/scrollbar.js": "76120f65f535b535d19fc1e820e959d5", "static/js/element-ui/lib/select.js": "5e900a932de2f3be38ef8f436fa201e4", "static/js/element-ui/lib/slider.js": "faf0a48d331a5c869c7bf7c8a07abe58", "static/js/element-ui/lib/spinner.js": "83f0cb9cc66bba831681c58c230890fd", "static/js/element-ui/lib/step.js": "cd744e288e5eeb55dde52cbe0909016d", "static/js/element-ui/lib/steps.js": "7cb3835a98f56194a2ca85cbeb197bf2", "static/js/element-ui/lib/submenu.js": "07584a153decdad6f82fe2de4e565f15", "static/js/element-ui/lib/switch.js": "aa60bca689f5db14f3bad0fcd8cb3ece", "static/js/element-ui/lib/tab-pane.js": "9cba2ce5089e06c7a6f9560687e0e150", "static/js/element-ui/lib/table-column.js": "bcf79a6f1de840db943cdee7c4e41921", "static/js/element-ui/lib/table.js": "f017fc250b36fbfebeef1b462b6984f8", "static/js/element-ui/lib/tabs.js": "f19f934d0ee0cb9b4234c9d81301f0b7", "static/js/element-ui/lib/tag.js": "66492bd336c57f37bbd9da3cac97b51c", "static/js/element-ui/lib/time-picker.js": "d2561b513c3dfdbb57f34f3f6855bd5b", "static/js/element-ui/lib/time-select.js": "c562bd018cb94d0a5f993a23bdb2e687", "static/js/element-ui/lib/timeline-item.js": "84ce5c070a064909355b56610bd8ff2f", "static/js/element-ui/lib/timeline.js": "e66393cdd8e7a22413acad9ab1f6f8af", "static/js/element-ui/lib/tooltip.js": "7f6a6999519c70a0485d2ae7d03ea6ab", "static/js/element-ui/lib/transfer.js": "b5825b45e447c403e3b0833e7975fa96", "static/js/element-ui/lib/tree.js": "16346c71a54ffbaddc37b635296704ed", "static/js/element-ui/lib/upload.js": "1682818d886774e15dd8267e40d81ecb", "static/js/element-ui/lib/directives/mousewheel.js": "d57acb00ba5ec4322dd7b4e37dedbb69", "static/js/element-ui/lib/directives/repeat-click.js": "ee7cb0bb5822588e21af009528f04490", "static/js/element-ui/lib/locale/format.js": "471399a5f5d8d53d46cb7e2fcad68d0d", "static/js/element-ui/lib/locale/index.js": "7f48cd4280e7b5be536b37a33af7a441", "static/js/element-ui/lib/locale/lang/af-ZA.js": "1cab2e3d954eaf982bff6464654f162a", "static/js/element-ui/lib/locale/lang/ar.js": "a973ecdc856fa1ea02fc3a1f1d436ddb", "static/js/element-ui/lib/locale/lang/bg.js": "100d5a70d89307668e0a512d953bbbd3", "static/js/element-ui/lib/locale/lang/ca.js": "f85b7ef8722b22ab636c540dc90c9aae", "static/js/element-ui/lib/locale/lang/cs-CZ.js": "5b0aeb0ab3f5177a7d2ae975db11ff20", "static/js/element-ui/lib/locale/lang/da.js": "7b04b9b382da5785b105084c0b1895fc", "static/js/element-ui/lib/locale/lang/de.js": "165678f7ff2d5c05c1b196c1fe36919f", "static/js/element-ui/lib/locale/lang/ee.js": "77cab864f3b5c0d02700606da528e0c9", "static/js/element-ui/lib/locale/lang/el.js": "1ab144c6f49d289c320e8672fdd78d05", "static/js/element-ui/lib/locale/lang/en.js": "fbea06cf549fdf1bc8107e258676825d", "static/js/element-ui/lib/locale/lang/eo.js": "91b4bd398fd27e80d331675e0567eae8", "static/js/element-ui/lib/locale/lang/es.js": "e1845d63e50ee4f117aa16c8b7756cc7", "static/js/element-ui/lib/locale/lang/eu.js": "6851cf67a17a2988f1e905557ebba981", "static/js/element-ui/lib/locale/lang/fa.js": "67763039da687c77702e59237ce66e04", "static/js/element-ui/lib/locale/lang/fi.js": "0b35a1d0fb672b74e243a5f41defdd70", "static/js/element-ui/lib/locale/lang/fr.js": "64c0cbb50596da4841223e8c85c34c1b", "static/js/element-ui/lib/locale/lang/he.js": "2a3719ffb84a33ed3dd1e9799c03a3dd", "static/js/element-ui/lib/locale/lang/hr.js": "81661a420afc076d1792c21f0432a50e", "static/js/element-ui/lib/locale/lang/hu.js": "0fa9fc603c3f5ad1bbbab426db5fa3cf", "static/js/element-ui/lib/locale/lang/hy-AM.js": "a6d88e26e14fd663a5aebe98623b1e5d", "static/js/element-ui/lib/locale/lang/id.js": "ace3933e6fba75bf17787c34580d1430", "static/js/element-ui/lib/locale/lang/it.js": "ddbaa0c9de79f04c13510abf9e9fe347", "static/js/element-ui/lib/locale/lang/ja.js": "927e2dbb268276b854f4ab58486c029d", "static/js/element-ui/lib/locale/lang/kg.js": "321e5d0e5cd78eb71baeea679f9866ad", "static/js/element-ui/lib/locale/lang/km.js": "712afcf5ce5bd04235c9da5cabd3211c", "static/js/element-ui/lib/locale/lang/ko.js": "a1462b4c5f54be3312a11745525baf79", "static/js/element-ui/lib/locale/lang/ku.js": "0843793ace9f2be0d749f90ae499fd25", "static/js/element-ui/lib/locale/lang/kz.js": "7da2b07e5b87618e3a7176ddfe04887a", "static/js/element-ui/lib/locale/lang/lt.js": "9525aa7bd194094651d15525bd32d060", "static/js/element-ui/lib/locale/lang/lv.js": "6a911e229e2501001d303a8fdf425d32", "static/js/element-ui/lib/locale/lang/mn.js": "2b91da6fd41d16584339b227082dd47f", "static/js/element-ui/lib/locale/lang/nb-NO.js": "91463e2c92f200c50e1dccd73e03695f", "static/js/element-ui/lib/locale/lang/nl.js": "feab63aa44ae350f99f1d484a91d942c", "static/js/element-ui/lib/locale/lang/pl.js": "a27556391421cdbf5d2424d38955b645", "static/js/element-ui/lib/locale/lang/pt-br.js": "1a7d47d3cca171739de21a0cc99387f1", "static/js/element-ui/lib/locale/lang/pt.js": "87ef9e7ed1f27c582e7faabc406cf483", "static/js/element-ui/lib/locale/lang/ro.js": "b608c43b34a6975d98e4b7b2b7295402", "static/js/element-ui/lib/locale/lang/ru-RU.js": "0504c7d75043cb31bcb692a689743cef", "static/js/element-ui/lib/locale/lang/sk.js": "3dd18f7fd8a017f994feba8b6d9a0890", "static/js/element-ui/lib/locale/lang/sl.js": "9ce57a4806c0740551d7dc51e786c86e", "static/js/element-ui/lib/locale/lang/sr.js": "d2ff6141f3ecd471a8cf846a24d7a8ed", "static/js/element-ui/lib/locale/lang/sv-SE.js": "3ca29384088f1f47398278654fa3011c", "static/js/element-ui/lib/locale/lang/ta.js": "b4de5e6d6863d34dfa6e98ccf495d504", "static/js/element-ui/lib/locale/lang/th.js": "cf6e83d1c133279705c8296ef90e775b", "static/js/element-ui/lib/locale/lang/tk.js": "7c799830a4ba20120bc2e7bccf3419d8", "static/js/element-ui/lib/locale/lang/tr-TR.js": "061e2668858c3654f3bf6750276546be", "static/js/element-ui/lib/locale/lang/ua.js": "399ff5fe5470ec3e4a57f88d1ae6fe6b", "static/js/element-ui/lib/locale/lang/ug-CN.js": "fa8d94b219647056165f1baaa843b5e6", "static/js/element-ui/lib/locale/lang/uz-UZ.js": "3607e6bf57b1d37e917736c460d7dd63", "static/js/element-ui/lib/locale/lang/vi.js": "3c54c8dec1d0c8afccd03efb53a0b53c", "static/js/element-ui/lib/locale/lang/zh-CN.js": "0b60542152156fa18a045d408bed61ea", "static/js/element-ui/lib/locale/lang/zh-TW.js": "d886891267165c838c345606c972856e", "static/js/element-ui/lib/mixins/emitter.js": "f38340cf5d69582efda171286efafa65", "static/js/element-ui/lib/mixins/focus.js": "b113513900bcf212968edd814c163760", "static/js/element-ui/lib/mixins/locale.js": "9b538e9a7f8d56c2c1f85984a9d4b2d2", "static/js/element-ui/lib/mixins/migrating.js": "7774a8a036683cd8b2b3340e0a63b132", "static/js/element-ui/lib/theme-chalk/alert.css": "4a233d163ac6641263075f6e7c4821db", "static/js/element-ui/lib/theme-chalk/aside.css": "edcc490fb0053f1cce4a71a5c047bdf9", "static/js/element-ui/lib/theme-chalk/autocomplete.css": "47ce2bcdfb1b1b08f5c623f9387391ff", "static/js/element-ui/lib/theme-chalk/avatar.css": "58a5fedd9b307c75a19c3b0533d813b8", "static/js/element-ui/lib/theme-chalk/backtop.css": "8b2ca61408dad479b881960763d3db98", "static/js/element-ui/lib/theme-chalk/badge.css": "ea8bfd89345e13ad428bdfb5574237b4", "static/js/element-ui/lib/theme-chalk/base.css": "f25cc484087487b1e1ef6ce8bf62ca44", "static/js/element-ui/lib/theme-chalk/breadcrumb-item.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/breadcrumb.css": "16d9a27c1cd682756f3173c95a83d0ed", "static/js/element-ui/lib/theme-chalk/button-group.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/button.css": "41b0f4e08fdd9eedc5a38b9713ddd904", "static/js/element-ui/lib/theme-chalk/calendar.css": "982528766ad2393b8617dbbf05dfaa7f", "static/js/element-ui/lib/theme-chalk/card.css": "48a5b07b8b0a6fb0c5eb6eafacdd0cd5", "static/js/element-ui/lib/theme-chalk/carousel-item.css": "6c97d1a467ad4b215ee69ed21754a728", "static/js/element-ui/lib/theme-chalk/carousel.css": "53761931f0070d80e77e2073f18b1d23", "static/js/element-ui/lib/theme-chalk/cascader-panel.css": "d897ade7fa060cfb4a7fc14503e61a44", "static/js/element-ui/lib/theme-chalk/cascader.css": "bdded6ec78f1471b771f1c4e4e07b596", "static/js/element-ui/lib/theme-chalk/checkbox-button.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/checkbox-group.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/checkbox.css": "515b3e4a1c684ea0538292380b38ca5f", "static/js/element-ui/lib/theme-chalk/col.css": "cd14b27ef81a2fc60079ecf869bca3cd", "static/js/element-ui/lib/theme-chalk/collapse-item.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/collapse.css": "9b8b3424302f453728fe80719c97de40", "static/js/element-ui/lib/theme-chalk/color-picker.css": "083fba820bd7440f18cf93af1d6a31dd", "static/js/element-ui/lib/theme-chalk/container.css": "e79009df433ab4403029e519ddc3340d", "static/js/element-ui/lib/theme-chalk/date-picker.css": "bd299472f79e6132d0dc6845176cadbe", "static/js/element-ui/lib/theme-chalk/dialog.css": "d30bf0818a97168906dc243c0e04a1bf", "static/js/element-ui/lib/theme-chalk/display.css": "c110a2385504d5ee6adb4377365270d7", "static/js/element-ui/lib/theme-chalk/divider.css": "6e52365004d46117ecfb085bc38479b0", "static/js/element-ui/lib/theme-chalk/drawer.css": "6ba86d8fe04df4d3549e4b3fc950bcb4", "static/js/element-ui/lib/theme-chalk/dropdown-item.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/dropdown-menu.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/dropdown.css": "246cd4c0d0f8d4493c5e987d0e330925", "static/js/element-ui/lib/theme-chalk/footer.css": "0a75eee620a1eec96cf1718047bde916", "static/js/element-ui/lib/theme-chalk/form-item.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/form.css": "8521897ad3a147046fd049b37f6775c8", "static/js/element-ui/lib/theme-chalk/header.css": "4bf1a1be0a4af7778c092b276458787a", "static/js/element-ui/lib/theme-chalk/icon.css": "83dc46b9fc11c99b5c0511d0a9a9987e", "static/js/element-ui/lib/theme-chalk/image.css": "32f4b078377ca3c364767e55bba62ede", "static/js/element-ui/lib/theme-chalk/index.css": "2414fd307c22e07b681e50e0720cbc23", "static/js/element-ui/lib/theme-chalk/infinite-scroll.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/infiniteScroll.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/input-number.css": "a30d3d47860db05882de8597cbb35a3f", "static/js/element-ui/lib/theme-chalk/input.css": "88d9749aad3cfd64720e1090474a8573", "static/js/element-ui/lib/theme-chalk/link.css": "b29ddaa7be960e0dabeee5b23fed982c", "static/js/element-ui/lib/theme-chalk/loading.css": "ee99b8ad8874ed9e7df64b7dab4159a6", "static/js/element-ui/lib/theme-chalk/main.css": "9923eb608c01cf001501708e1c8df0bc", "static/js/element-ui/lib/theme-chalk/menu-item-group.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/menu-item.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/menu.css": "30fa354841214de1919e49d8e831a5bf", "static/js/element-ui/lib/theme-chalk/message-box.css": "6fe773d1292f0acbc9ddad9153548c58", "static/js/element-ui/lib/theme-chalk/message.css": "6ab057c82772aa70e8ecc9902d4284ec", "static/js/element-ui/lib/theme-chalk/notification.css": "875a37cf12d647c1dee9e7e467ea01fb", "static/js/element-ui/lib/theme-chalk/option-group.css": "b3a13247682f590bb17b55517326ec39", "static/js/element-ui/lib/theme-chalk/option.css": "1698a68c50ff2618face813daa89982e", "static/js/element-ui/lib/theme-chalk/page-header.css": "3508c570c80476d68b49a13d4c14e27c", "static/js/element-ui/lib/theme-chalk/pagination.css": "93a1866f64772a9d877796cc27f59e2b", "static/js/element-ui/lib/theme-chalk/popconfirm.css": "24183a243d4c79db8c383f296300a5be", "static/js/element-ui/lib/theme-chalk/popover.css": "4d19d78df7b0a3157772b86018648ee9", "static/js/element-ui/lib/theme-chalk/popper.css": "36fcdf5712174c8177fe2fcb73977ed5", "static/js/element-ui/lib/theme-chalk/progress.css": "a3d92e7241d275e11982945ad7c7e284", "static/js/element-ui/lib/theme-chalk/radio-button.css": "d126d35d880b72736a6d24b94170b9eb", "static/js/element-ui/lib/theme-chalk/radio-group.css": "86af00fe6b72f9005bf39e3481691586", "static/js/element-ui/lib/theme-chalk/radio.css": "a3110894bf315e7eedf9111a951840f6", "static/js/element-ui/lib/theme-chalk/rate.css": "0f33a694a0e389f05cd24aeec4b1765e", "static/js/element-ui/lib/theme-chalk/reset.css": "3db1afd65a0400d0d643f705d44250f5", "static/js/element-ui/lib/theme-chalk/row.css": "b1ac86fc178549496bb90eec4ba5da5e", "static/js/element-ui/lib/theme-chalk/scrollbar.css": "23449b1c81727518ce5d914579ee6174", "static/js/element-ui/lib/theme-chalk/select-dropdown.css": "f95dc3aef5e200e495d51f00a81b4e20", "static/js/element-ui/lib/theme-chalk/select.css": "d16e8c09f8fa26ec7d03b5652cdbb797", "static/js/element-ui/lib/theme-chalk/slider.css": "c7db7b54589f0ba57dd2b3a1057bfb90", "static/js/element-ui/lib/theme-chalk/spinner.css": "5b5d1e5f3e4422c063adc569a8346fca", "static/js/element-ui/lib/theme-chalk/step.css": "cf252484e262941d6d6c081042e38074", "static/js/element-ui/lib/theme-chalk/steps.css": "ac6f8637955a659b97ea3548a20fcfba", "static/js/element-ui/lib/theme-chalk/submenu.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/switch.css": "dbe3a9344c8c3594fce88715c118edf9", "static/js/element-ui/lib/theme-chalk/tab-pane.css": "d41d8cd98f00b204e9800998ecf8427e", "static/js/element-ui/lib/theme-chalk/table-column.css": "e11267cebea4826211fbfbc1f88c6ec8", "static/js/element-ui/lib/theme-chalk/table.css": "facf1d994f3fda680e22163b2e4148c2", "static/js/element-ui/lib/theme-chalk/tabs.css": "ec342796738d9d1a87137c0451c6b784", "static/js/element-ui/lib/theme-chalk/tag.css": "52178a68247a9fe015ccb5e965ce3fd3", "static/js/element-ui/lib/theme-chalk/time-picker.css": "7a25549a612c52a82dcc265f20566f0c", "static/js/element-ui/lib/theme-chalk/time-select.css": "a230a27e1eae140dc38e608de2651ba6", "static/js/element-ui/lib/theme-chalk/timeline-item.css": "743e68350200b578c75506697a7f5789", "static/js/element-ui/lib/theme-chalk/timeline.css": "b5d2b9a92b38005cff9a5752246992e1", "static/js/element-ui/lib/theme-chalk/tooltip.css": "4722109edb63d5c732ca61ecb3d47175", "static/js/element-ui/lib/theme-chalk/transfer.css": "14928e12a3985c3d0e516e6799601d65", "static/js/element-ui/lib/theme-chalk/tree.css": "5f5d85942e52967f08d4f1698cee2683", "static/js/element-ui/lib/theme-chalk/upload.css": "077d8dc834e6d88194879db89ff54bc5", "static/js/element-ui/lib/theme-chalk/fonts/element-icons.ttf": "4b1a4d348209ad29243b0a042de1b557", "static/js/element-ui/lib/theme-chalk/fonts/element-icons.woff": "f717deee44e7fcc757c6c1ade5cce443", "static/js/element-ui/lib/transitions/collapse-transition.js": "354e780b8a86771cd737928485f7d798", "static/js/element-ui/lib/umd/locale/af-ZA.js": "0fc2ac6b8936f2cd76256d2672b8b426", "static/js/element-ui/lib/umd/locale/ar.js": "18bbfc189ca1a3da137e560c112e0aba", "static/js/element-ui/lib/umd/locale/bg.js": "2c6245f699c62437fa7ee0d163cdd65c", "static/js/element-ui/lib/umd/locale/ca.js": "f494da9c984efa37bb7aff8be66d026e", "static/js/element-ui/lib/umd/locale/cs-CZ.js": "6554aa484f5ec7b4d1e3ad176cc69b71", "static/js/element-ui/lib/umd/locale/da.js": "0fb807a6d9d65b4d438c1e8563e369c4", "static/js/element-ui/lib/umd/locale/de.js": "835ff2b17f107ff50be524805b201f3c", "static/js/element-ui/lib/umd/locale/ee.js": "a363d6f90a0acfea8f31f1a6be49aeee", "static/js/element-ui/lib/umd/locale/el.js": "e9b50aee66128071682125d1e9d98c23", "static/js/element-ui/lib/umd/locale/en.js": "eccc9db8251b0ef6f69337f39234d423", "static/js/element-ui/lib/umd/locale/eo.js": "373c79e4396edec41165343f5a889f99", "static/js/element-ui/lib/umd/locale/es.js": "f33d213c3974b2acdc167886b61f2e47", "static/js/element-ui/lib/umd/locale/eu.js": "62bcc16524b72c7094a20162832b36b5", "static/js/element-ui/lib/umd/locale/fa.js": "273a1e35316564355fed5eb3bfeb2ab8", "static/js/element-ui/lib/umd/locale/fi.js": "9f9889caf4adcffc6cc78c229c457a7a", "static/js/element-ui/lib/umd/locale/fr.js": "ecd5286ed9b8faf83a56bbe449df9e00", "static/js/element-ui/lib/umd/locale/he.js": "db9119fe9dc05c872421bf4758de2eca", "static/js/element-ui/lib/umd/locale/hr.js": "9396ffd6cc82eeb3a09ce0d8ed1dd483", "static/js/element-ui/lib/umd/locale/hu.js": "1e6962cb413392e68dae16680bcd6370", "static/js/element-ui/lib/umd/locale/hy-AM.js": "85701cecfaf21f5813aeebe91b2b7560", "static/js/element-ui/lib/umd/locale/id.js": "1b99f644e81cf63fc7cecd34746dc66e", "static/js/element-ui/lib/umd/locale/it.js": "4fd6e8ba9c2d5fe7c9e74f753b95379c", "static/js/element-ui/lib/umd/locale/ja.js": "567701dd5feb9804153acefabfaa44b9", "static/js/element-ui/lib/umd/locale/kg.js": "4b4067ad2fb93f84a6c9e8c35de483e9", "static/js/element-ui/lib/umd/locale/km.js": "c69fc83984c03a7a4f04cdc6967cca58", "static/js/element-ui/lib/umd/locale/ko.js": "9bdf5bf54251017cb60636c8b4fe0ecf", "static/js/element-ui/lib/umd/locale/ku.js": "581e50d5471c9ec4c535ebcdb5ba68c8", "static/js/element-ui/lib/umd/locale/kz.js": "3113fafaec1e5f4ae75275df004a438f", "static/js/element-ui/lib/umd/locale/lt.js": "1f9ab75d239d73dd6450d20719d14e4c", "static/js/element-ui/lib/umd/locale/lv.js": "06ed0fdc7d15aaaa254ddafd5cc2d984", "static/js/element-ui/lib/umd/locale/mn.js": "a30050261567e96fcae3eb8184077738", "static/js/element-ui/lib/umd/locale/nb-NO.js": "8f696776c06ee3e12e43a4cdd6cce736", "static/js/element-ui/lib/umd/locale/nl.js": "99258a51fa6d3bb2eaf24687b08681b6", "static/js/element-ui/lib/umd/locale/pl.js": "727bf2dd0d8c2917c7d7b67651fa4e2c", "static/js/element-ui/lib/umd/locale/pt-br.js": "9b175360cb8d7199055506a7f57e7d4b", "static/js/element-ui/lib/umd/locale/pt.js": "1626947603ba9812628e5388526e02e7", "static/js/element-ui/lib/umd/locale/ro.js": "fb9eef3d28ce9ecc7ad83b41caf17864", "static/js/element-ui/lib/umd/locale/ru-RU.js": "02776c80fbb8f65298ef9156d79d11ee", "static/js/element-ui/lib/umd/locale/sk.js": "34457b2d2b6c75a8025a0eba36931523", "static/js/element-ui/lib/umd/locale/sl.js": "2d186805c45ce5292f9dfa2f2255677f", "static/js/element-ui/lib/umd/locale/sr.js": "57009e2dc4bc4de61794b29c659a132d", "static/js/element-ui/lib/umd/locale/sv-SE.js": "315c4a945b2b89e206ade38990a7e9f9", "static/js/element-ui/lib/umd/locale/ta.js": "da94b97bf773e49867bdd4c91b738cdf", "static/js/element-ui/lib/umd/locale/th.js": "76dde843e7f874f2e45cc1ea1dadc638", "static/js/element-ui/lib/umd/locale/tk.js": "710dfdc6ba97ebc5b6ed5e5c6ba40c79", "static/js/element-ui/lib/umd/locale/tr-TR.js": "2af8060b6746a342827a94ee1d45972c", "static/js/element-ui/lib/umd/locale/ua.js": "c2240b43e3d70e4b2c25db2580d5b9ad", "static/js/element-ui/lib/umd/locale/ug-CN.js": "6ddaea800aed2638e2d02b06322ceb07", "static/js/element-ui/lib/umd/locale/uz-UZ.js": "ddb5d919cc3756722a2980f995086225", "static/js/element-ui/lib/umd/locale/vi.js": "764578d2497752bec40d8cf3982501d5", "static/js/element-ui/lib/umd/locale/zh-CN.js": "af0b3424682dedebc3064a17c8c8f047", "static/js/element-ui/lib/umd/locale/zh-TW.js": "ee9c9d202116bd367a54b6542b41e9ac", "static/js/element-ui/lib/utils/after-leave.js": "5b6eab2e19137f22b7f155c64c127b5a", "static/js/element-ui/lib/utils/aria-dialog.js": "584e07ba3bcd14fe02d84d456461a381", "static/js/element-ui/lib/utils/aria-utils.js": "bccd0c0998fa688607a28aef5d3954be", "static/js/element-ui/lib/utils/clickoutside.js": "1d2c86f338286924e65ba0beb1e9275b", "static/js/element-ui/lib/utils/date-util.js": "f7bc86e6068c4c4f23c86f7d6fafce77", "static/js/element-ui/lib/utils/date.js": "63bca9e7033fcf66fa9b93ccaf4dad0f", "static/js/element-ui/lib/utils/dom.js": "7a5bf584e8d01360f759c1a78305219c", "static/js/element-ui/lib/utils/merge.js": "48d430909e3583f3010bf4e844bd1163", "static/js/element-ui/lib/utils/popper.js": "f90f278e90fdff8f4afd382145b2db9b", "static/js/element-ui/lib/utils/resize-event.js": "96628f5f98b18fee3c4972e8f39b6481", "static/js/element-ui/lib/utils/scroll-into-view.js": "a2847b7f5d7ae6860f66669f645ce861", "static/js/element-ui/lib/utils/scrollbar-width.js": "6dd9aafa50bf2028e1fa542feb995f89", "static/js/element-ui/lib/utils/shared.js": "e9becb8ca1ad71a5d64d989e28778b11", "static/js/element-ui/lib/utils/types.js": "b76cda09d6b97c9598681b372f3efd6e", "static/js/element-ui/lib/utils/util.js": "c4013004a996dd7d030f779c721c7c2d", "static/js/element-ui/lib/utils/vdom.js": "a72f60b0134bd47f49c537ad28982bad", "static/js/element-ui/lib/utils/vue-popper.js": "ea42e858259fa582acfadc15265b1d30", "static/js/element-ui/lib/utils/menu/aria-menubar.js": "172afd68add2537d32f299e5369c8ad8", "static/js/element-ui/lib/utils/menu/aria-menuitem.js": "2c51a053252827845cce692634443771", "static/js/element-ui/lib/utils/menu/aria-submenu.js": "2d5f39c9bc644388bc57563ee8ecae87", "static/js/element-ui/lib/utils/popup/index.js": "8df7b5c153e9187359c20ab602ad6740", "static/js/element-ui/lib/utils/popup/popup-manager.js": "68856d04bb10de1e999fc10693a73999", "tests/README.md": "bad9b5c1d18429a006532bb7faebd117", "tests/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/assets/\u5168\u90e8\u6d4b\u8bd5.png": "dbed30a78bcec42c7523471fcf514700", "tests/assets/\u6253\u5f00pycharm\u7684pytest\u529f\u80fd.png": "b849c96411e8d82fc8a50f0ff816c1f7", "tests/assets/\u6267\u884c\u6d4b\u8bd5\u7528\u4f8b.png": "39116cca185c73ae3d4517ee0f84133a", "tests/assets/\u6d4b\u8bd5\u5931\u8d25.png": "d04228741f3da0b6e977211fe41c6438", "tests/assets/\u6d4b\u8bd5\u6210\u529f.png": "6669c0c45442db35ab92b06bf9993c06", "tests/test_algorithms/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_algorithms/test_linear_algebra/test_linear_space.py": "6df796d85cb787fd7f045a0ab5c63a1c", "tests/test_algorithms/test_linear_algebra/test_matrix_cross.py": "4b574f0a6131847d802761bd83a6d6ae", "tests/test_algorithms/test_linear_algebra/test_matrix_determinant.py": "041bf9f620c2dcb093bf20cf4ed20c72", "tests/test_algorithms/test_linear_algebra/test_matrix_diagonal.py": "b8afb32ca59752683d9c605a9885e2f5", "tests/test_algorithms/test_linear_algebra/test_matrix_divide.py": "2b63a05c372c145b05920fe5c8e7ee1d", "tests/test_algorithms/test_linear_algebra/test_matrix_dot.py": "3f80ff34c4b639fc33344ce8c23ab153", "tests/test_algorithms/test_linear_algebra/test_matrix_eigenvalue.py": "0edcf7066a5e3143d089a0222d8659be", "tests/test_algorithms/test_linear_algebra/test_matrix_inverse.py": "8f502aabb41e4faaae06663c45fe52a9", "tests/test_algorithms/test_linear_algebra/test_matrix_multiply.py": "45423c811a4db180b269945908595383", "tests/test_algorithms/test_linear_algebra/test_matrix_transpose.py": "d92dc7600a77f090f5f897dff9d099e4", "tests/test_algorithms/test_linear_algebra/test_ones.py": "faa005c5fce0def31dcc4aa83861f4de", "tests/test_algorithms/test_linear_algebra/test_reshape.py": "ff0f15e2ba03d7bd3ee086deab31f9d0", "tests/test_algorithms/test_linear_algebra/test_shape.py": "29a411d526e34d9070155e1a198195db", "tests/test_algorithms/test_linear_algebra/test_zeros.py": "5c8802a5d2bd87dc00e67e7f2f892c9e", "tests/test_algorithms/test_linear_algebra/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_algorithms/test_statistics/run_distribution.py": "fd81a148edd8cb40ed4390dde9c9af9d", "tests/test_algorithms/test_statistics/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_data_adapter/run_dump_load.py": "4b7572b7ce9b3c6ce0ed6d6811b64e6b", "tests/test_data_adapter/test_array.py": "717162f0f2da526e3a18456b12dfbd10", "tests/test_data_adapter/test_data_frame.py": "e56b02672c2d979b495c24fdc113eafc", "tests/test_data_adapter/test_detector.py": "92495e21a9b05068d73833d4d6a8f3f9", "tests/test_data_adapter/test_universal.py": "f69c1055e69f2e844596a3b80ab20c88", "tests/test_data_adapter/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/__init__.py": "4277383d96a0b390d7299069af45c987", "tests/test_dev/test_doc/test_file_tree_node.py": "362ef3dedb9be7eca57248be44f93e3f", "tests/test_dev/test_doc/__init__.py": "d2b42ea8d4d60b51c772335633e18078", "tests/test_dev/test_doc/test_case_for_file_tree_node/main.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/README.md": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/_exclude.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir/core1.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir/test1.txt": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir2/test2.txt": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir2/__init__.pyw": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir3/core3.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_dev/test_doc/test_case_for_file_tree_node/sub_dir3/test3.txt": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_pmgwidgets/test_maccabe/mccaberun.py": "17cdb5bf5d1157aeba779172c294ad95", "tests/test_pmgwidgets/test_maccabe/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_pmgwidgets/test_normal/test_display.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_pmgwidgets/test_util/test_util.py": "8db14adf951ddecf73952d6841b2aa93", "tests/test_pmtoolbox/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "tests/test_ui/test_ipython_support.py": "4e109800eedb8113b7da674b05e08bac", "tests/test_ui/test_pmgpanel.py": "a8d7ede78b58ae7be4f738f322f9be98", "tests/test_workspace2/test_data_manager.py": "bcf209b27357532443d75b3c368e68c7", "tests/test_workspace2/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "utils/environ.py": "b8bfeb3f35922c0337c197abea87829f", "utils/http_client.py": "3a5ced47c6f09803ad68b4da5b59d7f1", "utils/path.py": "93a5404fabe530d18791aaafecfd1b40", "utils/platform.py": "2da872dbe9abece68ed95e204c2ff655", "utils/__init__.py": "7e6452c9cf8ce5c4c856dcbdd3cf6b2f", "utils/debug/debuggerprocess.py": "0fe81aa6f61d81df42ef9afcc2d25bd5", "utils/debug/pdbtest.py": "b79fc6b32634f06788247e8d58402d41", "utils/debug/pmdebug.py": "d384421931a8e48e26cab0fba3c4241c", "utils/debug/test2.py": "b53f37a4994356be41f962afcb0a0b10", "utils/debug/__init__.py": "350446184463764465845852bd3ef50e", "utils/doc/file_tree.py": "36bd540c3b4c32b184dee9f2182f0819", "utils/doc/index.rst": "2488cd21dbd21544665f802ab3f0045e", "utils/doc/rst_generator.py": "fca7802a37b44b4a62924aa7521d6a2a", "utils/doc/__init__.py": "892fd1aca5b1cae0f580cd809094dad2", "utils/doc/doc_guide/choose_position.md": "482843264c94f2bd50c448fec43a3cc3", "utils/doc/doc_guide/compile.md": "eeee41c8eefce5234f176c76a0b15ee9", "utils/doc/doc_guide/index.rst": "0f1e7af0e52ee3073edf77f0eb9b0de6", "utils/doc/doc_guide/md_guide.rst": "809611fdb43d6b05edfadf5cc3a8c7c7", "utils/doc/doc_guide/rst_guide.rst": "8fa7462d9a5b56d6c5a67646e2ba4acc", "utils/doc/doc_guide/use_chevereto.rst": "3cb77997069a4c98b34360c9490f5733", "utils/doc/template/module.rst_t": "3af408a56d3d4adb3acfe09f653128ac", "utils/doc/template/package.rst_t": "801c621e304bc973e95f2e2519de04f8", "utils/doc/template/toc.rst_t": "a7cf368655e8fd91249cee24406aaff8", "utils/doc_figures/\u5e15\u7d2f\u6258\u56fe.jpg": "17c5690d782d1554a0eee747b496dcac", "utils/doc_figures/\u5e94\u7528\u5de5\u5177\u680f.png": "52d6b3bbabc43c2d368ce7748e8a9c7d", "utils/doc_figures/\u5f02\u5e38\u503c\u68c0\u6d4b": "49f442e7d72e05764e8353e36a824637", "utils/doc_figures/\u6807\u51c6\u79d1\u5b66\u8ba1\u7b97app\u754c\u9762\u539f\u578b.png": "5a6aa5719ae6d2ab0a3e2deeb4d9f841", "utils/doc_figures/\u9879\u76ee\u7ec4\u6210\u7ed3\u6784.png": "7d7896300a5e62d2fad7062bcba88aee", "utils/io/file_import.py": "d41d8cd98f00b204e9800998ecf8427e", "utils/io/piputil.py": "d45b0ab10e658c8bd1a260e7a7b0daca", "utils/io/__init__.py": "e9846ca05e2cf2393e2d36e130f7e84f", "utils/io/dbconnect/dbBaseTool.py": "964e1d0151fac429242dfdd163d6693b", "utils/io/dbconnect/dbConnectAccount.pkl": "410722595449e489f364425f6cd8c240", "utils/io/dbconnect/dbutils.py": "a83eac2b48d43e4bbb144b6ee30ac5a6", "utils/io/dbconnect/test_dbBaseTool_add_connection.py": "9777701d02960adae45e4ebc5afdabbc", "utils/io/dbconnect/test_dbBaseTool_query.py": "637037577573d38544ed3a801e4a8238", "utils/io/dbconnect/__init__.py": "5111d7ba85f86397e7318a88362fd502", "utils/io/fileutil/compressutils.py": "d79d280d2f6ddc66de6687a7b8201338", "utils/io/fileutil/encoding.py": "f70ddeb46e587c343134428e3a1d9b6c", "utils/io/fileutil/search_in_path.py": "3a369957683bec55df7e6e63cb3ce499", "utils/io/fileutil/variableutils.py": "e980e969d1f33da86e71e1207f282fe5", "utils/io/fileutil/__init__.py": "86e37c6a62dd940b6add84e2f3464697", "utils/io/fileutil/source/encoding/test_ascii.csv": "930b9d198c8fe4cf62cb40bf86deb059", "utils/io/fileutil/source/encoding/test_gb2312.csv": "b78fff031a5e71e40eaa348a628dd45e", "utils/io/fileutil/source/encoding/test_gbk.csv": "b78fff031a5e71e40eaa348a628dd45e", "utils/io/fileutil/source/encoding/test_utf8.csv": "b3c2e6ec634b81b2ebd348a3983fc165", "utils/io/fileutil/test/test_word_in_line.py": "0e2699f99428b73b86fdeb3fca2ee3b3", "utils/io/pmserial/pmqtreadserial.py": "7f31cf4aa590690a8c9e53b4d3599ce8", "utils/io/pmserial/readserial.py": "5cafed26a707eecdac54883dca6d2c33", "utils/io/pmserial/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "utils/settings/settings.py": "a65d80cc4a777b526b057b8efebd6989", "utils/settings/__init__.py": "43d16a290ee34cb378a6c6244e8c0a32", "utils/ui/translation.py": "a75ca908fa328d348adc9106554e35d7", "utils/ui/variableselect.py": "6623e3057f2291f6ad61ee1e55ac58c4", "utils/ui/__init__.py": "05099d0c6cd09966cb7621c9e57c2f13", "utils/ui/app/pmbasicapp.py": "a8cf494179389639ee3a68e39167cdc1", "utils/ui/app/__init__.py": "d41d8cd98f00b204e9800998ecf8427e", "utils/ui/app/test/basicapp_abnormal.py": "74d0fab0335ac9847dd589275e304c64", "utils/ui/app/test/basicapp_pareto.py": "522a51d208d3d32c68e9de0267a9f1fb", "utils/ui/src/balance.png": "0e13e9c8fd6853eedef19ac2ca0d9f01", "utils/ui/src/chemestry.png": "be3234787dcd5ad6b8c03cce7d142dfd", "utils/ui/src/electricity.png": "390b497d0687540630694599edc71dac", "utils/ui/src/engineering machinery.png": "099cdd52b97926617032ff66487cc311", "utils/ui/src/fracture.png": "e2dcccc7d7751d10b0e439a9a8b8f7d3", "utils/ui/src/function.png": "0a6dd73740c6800c913a5dc8556539cb", "utils/ui/src/gauge.png": "167e1ea4af8c9e504c30e734e7761488", "utils/ui/src/histogram.png": "231deddcfe9222512173e3d0b7829728", "utils/ui/src/ic_common_\u751f\u7269&\u81ea\u7136.png": "351343f4046d6d2c7a3405065d3a66a2", "utils/ui/src/loadwave.png": "95280a0b2dbc61a6c817d40e705f0379", "utils/ui/src/log.png": "117ef9da5ed765f2cc31f65bd2a49db9", "utils/ui/src/math_1.png": "a62c3b980b0f9332c56452c2dfac5a8c", "utils/ui/src/math_2.png": "d98240ad143bbc7cc739cac16b18e60a", "utils/ui/src/math_3.png": "0dbbea9ccc5e7cfa409a65e7ab0d16c4", "utils/ui/src/mechanics.png": "e730af4dc4083d52675826590d05dfa8", "utils/ui/src/money.png": "078a6fec99543566f7abd7f9d235cfc1", "utils/ui/src/motor.png": "cb1071e863f9d4108d509a1f0a29ce8e", "utils/ui/src/motor_2.png": "b71bdb729289a54a9330af929f477b39", "utils/ui/src/normal_distribution.png": "18785959972c6076e3201e41ba68d971", "utils/ui/src/physics.png": "67a6b64cee517d8678e2001ebd2af37d", "utils/ui/src/physics_2.png": "75796555027a4edc1bf441a69800de78", "utils/ui/src/plot_1.png": "484e1553dbd4d3b51dc986af7da9126d", "utils/ui/src/plot_2.png": "fa13d212836a556060df8fbee4dd8593", "utils/ui/src/plot_3.png": "bf548bcb5eba63b655fcaafa9af1e50e", "utils/ui/src/plot_4.png": "63658bb0aa5e10850d4cbcefb31bc5ec", "utils/ui/src/roboarm.png": "adc612a5fbe26cbc1ef9964078be30d0", "utils/ui/src/run.png": "fcf7e23f264801b79df841dabdab9417", "utils/ui/src/run_cell.png": "e40eb239205653b61fa2ba5a57f8d378", "utils/ui/src/settings_1.png": "4dc1f5c80740868b1cf0a4f50909dc20", "utils/ui/src/settings_2.png": "e8cd30a0264a6ee00fbe461e72a9fb6e", "utils/ui/src/settings_3.png": "2917d7c1b222d2e235a85f7e677935ca", "utils/ui/src/sinsidual.png": "371e0fdb35b52764d7d9c17774c36a07", "utils/ui/src/statistics.png": "3e1dd67456f93098bc0276c3b37e1b45", "utils/ui/src/statistics_2.png": "524756b6420d9a60cec2212e23112dbc", "utils/ui/src/statistics_3.png": "737c1756516487220aafa992210374bb", "utils/ui/src/viberation.png": "49ccb24861c08a92834e814bf8ea4767", "utils/ui/src/wave.png": "402b0e16aaf792596c734ee454ba25dd", "utils/ui/src/wave_2.png": "ce59ead6a036cca68b02950c9bdcb91a", "utils/ui/src/wave_history.png": "566e2a0ac92bf12f6291e0dd4d272091", "utils/ui/src/\u5206\u5b50\u751f\u7269\u5b66\u5e73\u53f0-\u7070.png": "6a5127ef0f94e54506455e0dd5d8d712", "utils/ui/src/\u751f\u547d\u5065\u5eb7\u4ea7\u4e1a_2\u751f\u7269\u533b\u836f.png": "c6f652bcc942e7c3c244d06726fcf063", "utils/ui/src/\u751f\u7269 (1).png": "9f4b502be694761d44c106a09a61be19", "utils/ui/src/\u751f\u7269 (2).png": "58da036ee4e5ead077590ebb65b80460", "utils/ui/src/\u751f\u7269 (3).png": "9cf816bfb76439a5f366e9beca9bea92", "utils/ui/src/\u751f\u7269 (4).png": "3b699f6ca234d635a8bc3274a7b44020", "utils/ui/src/\u751f\u7269.png": "4bcc3068ba68359848f293c23ac0b670", "utils/ui/src/\u751f\u7269\u8bc6\u522b (1).png": "021f770979cb264bc827ac041bab972b", "utils/ui/src/\u751f\u7269\u8bc6\u522b.png": "d73c19821dbdc9b46facd404afda33f4", "utils/ui/uiutil/datashowutil.py": "a88e7ef43145082c8278f6273e1bfb05", "utils/ui/uiutil/workspaceutil.py": "4a74ba5a7a176257d0e659d4be892301", "utils/ui/uiutil/__init__.py": "d611c6031ffff2a4570872c525a95660", "utils/ui/uiutil/formatting/textformat.py": "dee7f3523b301ceb8bdb0b35da44e456", "utils/ui/uiutil/formatting/__init__.py": "73a717186f47f07e16e0dcb8ed4ed76d", "widgets/frame_less_window.py": "e2a0208d327013c21bd75c71535d05af"}} \ No newline at end of file -- Gitee