pyqttoolkit 0.7.28__tar.gz → 0.7.30__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/PKG-INFO +1 -1
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/_version.py +3 -3
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/data/interval.py +2 -2
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/message_board.py +1 -1
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/plot/matplotlib/__init__.py +23 -23
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/plot/matplotlib/base.py +47 -30
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit.egg-info/PKG-INFO +1 -1
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/MANIFEST.in +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/README.md +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/application/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/application/application.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/application/garbage_collector.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/colors/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/config/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/config/base.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/config/composite.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/config/default.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/config/environment.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/config/multi_json_file.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/config/with_signal.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/config/with_value_changed.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/data/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/data/bits.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/data/cache.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/data/names.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/datetime/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/datetime/datetime.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/datetime/qdatetime.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/dependencies/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/errors/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/filesystem/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/logs/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/metadata/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/metadata/dataframe_metadata_manager.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/metadata/dict_metadata_manager.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/metadata/id_generator.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/metadata/metadata_manager_base.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/models/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/models/code_text.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/models/dataframetable.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/models/dictpropertytree.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/models/dicttable.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/models/json_text.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/models/list_model.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/models/module.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/models/roles.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/models/series_data.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/models/span.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/models/validation.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/modules/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/modules/events/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/modules/events/add_signal.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/modules/events/module_opening.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/modules/events/rejectable.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/modules/launcher_config.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/modules/module.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/properties/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/properties/auto.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/properties/throttled.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/scripting/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/scripting/script_context.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/scripting/script_runner.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/scripting/script_template.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/autosave.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/email.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/event_registry.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/file_dialog.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/hotkey_manager.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/link_manager.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/module_service.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/object_converter.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/project_updater.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/task_runner.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/theme_manager.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/services/tool_window_service.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/viewmanagers/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/viewmanagers/tool.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/bulk_value_selector.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/check_box.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/code/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/code/code_edit.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/code/python_syntax.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/combo_box.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/count_selector.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/datetime.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/datetime_range_selector.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/default_text_line_edit.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/delegates.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/dtype_edit.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/editable_combo_box.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/file_selector.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/icon.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/icon_button.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/json_edit.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/labelled.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/layout/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/layout/collabsible.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/layout/group_box.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/layout/group_panel.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/layout/lines.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/layout/link.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/line_edit.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/linkable.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/list_view.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/main_window.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/metadata_selector.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/modulewindow.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/plot/__init__.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/plot/legend_control.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/plot/matplotlib/colorbar.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/plot/matplotlib/colormap.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/plot/matplotlib/font.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/plot/plot_options.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/plot/plot_toolbar_options.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/plot/size.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/plot/tool_type.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/plot/toolbar.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/popout.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/popup.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/property_tree.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/shrunk_push_button.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/steppable_combo_box.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/styleable.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/table.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/text_edit.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/views/tool_window.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit.egg-info/SOURCES.txt +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit.egg-info/dependency_links.txt +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit.egg-info/requires.txt +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit.egg-info/top_level.txt +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/setup.cfg +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/setup.py +0 -0
- {pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/versioneer.py +0 -0
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2024-
|
|
11
|
+
"date": "2024-07-17T10:07:17+0100",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "0.7.
|
|
14
|
+
"full-revisionid": "fa13871c7fd5ab364e203a9611e279e13ff51cb4",
|
|
15
|
+
"version": "0.7.30"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -19,8 +19,8 @@ import pandas as pd
|
|
|
19
19
|
def calculate_interval(values, sort=True):
|
|
20
20
|
if len(values) < 2:
|
|
21
21
|
return None
|
|
22
|
-
if sort:
|
|
23
|
-
values = sorted(values)
|
|
24
22
|
values_series = pd.Series(values)
|
|
23
|
+
if sort:
|
|
24
|
+
values_series = values_series.sort_values()
|
|
25
25
|
# We want to ensure that the calculated interval is accurate for 90% of values to avoid mistakenly losing values
|
|
26
26
|
return (values_series - values_series.shift(1)).quantile(0.1)
|
|
@@ -91,7 +91,7 @@ class MessageBoard(QObject):
|
|
|
91
91
|
def setMessageEnabled(self, value):
|
|
92
92
|
self._message_enabled = value
|
|
93
93
|
|
|
94
|
-
def post(self, message_type, message, response_type=MessageResponse.ok, checkbox_message=None, text_format=Qt.
|
|
94
|
+
def post(self, message_type, message, response_type=MessageResponse.ok, checkbox_message=None, text_format=Qt.AutoText):
|
|
95
95
|
if not self._message_enabled:
|
|
96
96
|
return
|
|
97
97
|
self.message = MessageArgs(message_type, message, checkbox_message, response_type, text_format)
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
# pyqttoolkit
|
|
2
|
-
# Copyright (C) 2018-2019, Simmovation Ltd.
|
|
3
|
-
#
|
|
4
|
-
# This program is free software; you can redistribute it and/or modify
|
|
5
|
-
# it under the terms of the GNU General Public License as published by
|
|
6
|
-
# the Free Software Foundation; either version 3 of the License, or
|
|
7
|
-
# (at your option) any later version.
|
|
8
|
-
#
|
|
9
|
-
# This program is distributed in the hope that it will be useful,
|
|
10
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
# GNU General Public License for more details.
|
|
13
|
-
#
|
|
14
|
-
# You should have received a copy of the GNU General Public License
|
|
15
|
-
# along with this program; if not, write to the Free Software Foundation,
|
|
16
|
-
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
17
|
-
""":mod:`matplotlib`
|
|
18
|
-
Defines the matplotlib plot view
|
|
19
|
-
"""
|
|
20
|
-
from .base import MatPlotLibBase
|
|
21
|
-
from .font import MatPlotLibFont
|
|
22
|
-
from .colormap import MatPlotLibColormap
|
|
23
|
-
from .colorbar import MatPlotColorbar
|
|
1
|
+
# pyqttoolkit
|
|
2
|
+
# Copyright (C) 2018-2019, Simmovation Ltd.
|
|
3
|
+
#
|
|
4
|
+
# This program is free software; you can redistribute it and/or modify
|
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
|
6
|
+
# the Free Software Foundation; either version 3 of the License, or
|
|
7
|
+
# (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the GNU General Public License
|
|
15
|
+
# along with this program; if not, write to the Free Software Foundation,
|
|
16
|
+
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
17
|
+
""":mod:`matplotlib`
|
|
18
|
+
Defines the matplotlib plot view
|
|
19
|
+
"""
|
|
20
|
+
from .base import MatPlotLibBase, _RectangleSelector, _SpanSelector
|
|
21
|
+
from .font import MatPlotLibFont
|
|
22
|
+
from .colormap import MatPlotLibColormap
|
|
23
|
+
from .colorbar import MatPlotColorbar
|
|
@@ -29,6 +29,7 @@ from matplotlib.figure import Figure
|
|
|
29
29
|
from matplotlib.widgets import RectangleSelector, SpanSelector
|
|
30
30
|
from mpl_toolkits.axes_grid1 import Size, Divider
|
|
31
31
|
from mpl_toolkits.axes_grid1.mpl_axes import Axes
|
|
32
|
+
from matplotlib.projections import PolarAxes
|
|
32
33
|
|
|
33
34
|
import pandas as pd
|
|
34
35
|
|
|
@@ -53,7 +54,7 @@ def _safe_limits(lower, upper):
|
|
|
53
54
|
upper = _to_finite(upper)
|
|
54
55
|
return min(lower, upper), max(lower, upper)
|
|
55
56
|
|
|
56
|
-
class
|
|
57
|
+
class _SpanSelector(SpanSelector):
|
|
57
58
|
def __init__(self, *args, **kwargs):
|
|
58
59
|
SpanSelector.__init__(self, *args, **kwargs)
|
|
59
60
|
self._select_none_handler = None
|
|
@@ -133,7 +134,7 @@ class MatPlotLibBase(QWidget):
|
|
|
133
134
|
self._axes.ticklabel_format(style='sci', axis='x', scilimits=(-4, 4))
|
|
134
135
|
self._axes.ticklabel_format(style='sci', axis='y', scilimits=(-4, 4))
|
|
135
136
|
self._active_tools = {}
|
|
136
|
-
self._span =
|
|
137
|
+
self._span = _SpanSelector(
|
|
137
138
|
self._axes, self._handle_span_select, 'horizontal',
|
|
138
139
|
props=dict(alpha=0.2, facecolor='red', edgecolor='k'),
|
|
139
140
|
interactive=True, drag_from_anywhere=True, handle_props=dict(alpha=0.0),
|
|
@@ -292,14 +293,17 @@ class MatPlotLibBase(QWidget):
|
|
|
292
293
|
for child in handle.get_children():
|
|
293
294
|
self._set_series_visibility(child, visible)
|
|
294
295
|
|
|
295
|
-
def
|
|
296
|
-
show_grid_lines =
|
|
297
|
-
gridline_color =
|
|
296
|
+
def _do_update_grid_lines(self, axes):
|
|
297
|
+
show_grid_lines = self._options_view and self._options_view.showGridLines
|
|
298
|
+
gridline_color = axes.spines[list(axes.spines.keys())[0]].get_edgecolor()
|
|
298
299
|
gridline_color = gridline_color[0], gridline_color[1], gridline_color[2], 0.5
|
|
299
300
|
kwargs = dict(color=gridline_color, alpha=0.5) if show_grid_lines else {}
|
|
300
|
-
|
|
301
|
+
axes.grid(show_grid_lines, **kwargs)
|
|
301
302
|
self.draw()
|
|
302
|
-
|
|
303
|
+
|
|
304
|
+
def _update_grid_lines(self):
|
|
305
|
+
self._do_update_grid_lines(self._axes)
|
|
306
|
+
|
|
303
307
|
def _handle_options_view_limit_changed(self, x_min_changed=False, x_max_changed=False, y_min_changed=False, y_max_changed=False):
|
|
304
308
|
def _():
|
|
305
309
|
if self._options_view is None or self._setting_axis_limits:
|
|
@@ -466,7 +470,7 @@ class MatPlotLibBase(QWidget):
|
|
|
466
470
|
min_ -= diff * skew
|
|
467
471
|
return min_, max_
|
|
468
472
|
|
|
469
|
-
def
|
|
473
|
+
def _do_set_axes_limits(self, axes):
|
|
470
474
|
try:
|
|
471
475
|
self._setting_axis_limits = True
|
|
472
476
|
if self._secondary_axes is not None:
|
|
@@ -475,14 +479,19 @@ class MatPlotLibBase(QWidget):
|
|
|
475
479
|
(x_min, x_max), (y_min, y_max) = self._get_xy_extents()
|
|
476
480
|
if self._options_view is not None:
|
|
477
481
|
if self._options_view.x_limits:
|
|
478
|
-
self._options_view.setXLimits(
|
|
482
|
+
self._options_view.setXLimits(
|
|
483
|
+
float(np.degrees(x_min) if isinstance(axes, PolarAxes) else x_min),
|
|
484
|
+
float(np.degrees(x_max) if isinstance(axes, PolarAxes) else x_max))
|
|
479
485
|
if self._options_view.y_limits:
|
|
480
486
|
self._options_view.setYLimits(float(y_min), float(y_max))
|
|
481
|
-
|
|
482
|
-
|
|
487
|
+
axes.set_xlim(*_safe_limits(x_min, x_max))
|
|
488
|
+
axes.set_ylim(*_safe_limits(y_min, y_max))
|
|
483
489
|
finally:
|
|
484
490
|
self._setting_axis_limits = False
|
|
485
|
-
|
|
491
|
+
|
|
492
|
+
def _set_axes_limits(self):
|
|
493
|
+
self._do_set_axes_limits(self.axes)
|
|
494
|
+
|
|
486
495
|
def _set_secondary_axes_limits(self):
|
|
487
496
|
if self._options_view is not None:
|
|
488
497
|
if self._options_view.secondary_y_limits:
|
|
@@ -677,23 +686,26 @@ class MatPlotLibBase(QWidget):
|
|
|
677
686
|
def toolAvailable(self, _tool_type):
|
|
678
687
|
return False
|
|
679
688
|
|
|
689
|
+
def _activate_span_tool(self, span_tool, active, axes=None):
|
|
690
|
+
if span_tool.active and not active:
|
|
691
|
+
self._previous_span = self.span
|
|
692
|
+
self.span = None
|
|
693
|
+
for r in [span_tool.rect]:
|
|
694
|
+
self._remove_artist(r)
|
|
695
|
+
elif not span_tool.active and active:
|
|
696
|
+
self.span = self._previous_span
|
|
697
|
+
for r in [span_tool.rect]:
|
|
698
|
+
self._add_artist(r, axes=axes)
|
|
699
|
+
span_tool.active = active
|
|
700
|
+
self.draw()
|
|
701
|
+
|
|
680
702
|
def activateTool(self, tool_type, active):
|
|
681
703
|
if tool_type == ToolType.zoom:
|
|
682
704
|
self._zoom_selector.set_active(active)
|
|
683
705
|
if not active:
|
|
684
706
|
self._zoom_selector.clear()
|
|
685
707
|
elif tool_type == ToolType.span:
|
|
686
|
-
|
|
687
|
-
self._previous_span = self.span
|
|
688
|
-
self.span = None
|
|
689
|
-
for r in [self._span.rect]:
|
|
690
|
-
self._remove_artist(r)
|
|
691
|
-
elif not self._span.active and active:
|
|
692
|
-
self.span = self._previous_span
|
|
693
|
-
for r in [self._span.rect]:
|
|
694
|
-
self._add_artist(r)
|
|
695
|
-
self._span.active = active
|
|
696
|
-
self.draw()
|
|
708
|
+
self._activate_span_tool(self._span, active)
|
|
697
709
|
elif tool_type == ToolType.pan:
|
|
698
710
|
self._is_panning = active
|
|
699
711
|
self._active_tools[tool_type] = active
|
|
@@ -704,8 +716,9 @@ class MatPlotLibBase(QWidget):
|
|
|
704
716
|
def isActiveDefault(self, _tool_type):
|
|
705
717
|
return False
|
|
706
718
|
|
|
707
|
-
def _add_artist(self, artist):
|
|
708
|
-
self._axes
|
|
719
|
+
def _add_artist(self, artist, axes=None):
|
|
720
|
+
axes = axes or self._axes
|
|
721
|
+
axes.add_artist(artist)
|
|
709
722
|
self._decoration_artists.append(artist)
|
|
710
723
|
|
|
711
724
|
def _remove_artist(self, artist):
|
|
@@ -717,7 +730,8 @@ class MatPlotLibBase(QWidget):
|
|
|
717
730
|
self._update_ticks()
|
|
718
731
|
return self.draw()
|
|
719
732
|
|
|
720
|
-
|
|
733
|
+
|
|
734
|
+
def _draw(self, artists=None, axes=None):
|
|
721
735
|
if artists is None:
|
|
722
736
|
def _update():
|
|
723
737
|
for a in self._decoration_artists:
|
|
@@ -725,8 +739,8 @@ class MatPlotLibBase(QWidget):
|
|
|
725
739
|
self._canvas.draw()
|
|
726
740
|
self._background_cache = self._canvas.copy_from_bbox(self._figure.bbox)
|
|
727
741
|
for a in self._decoration_artists:
|
|
728
|
-
|
|
729
|
-
|
|
742
|
+
axes.add_artist(a)
|
|
743
|
+
axes.draw_artist(a)
|
|
730
744
|
self._canvas.update()
|
|
731
745
|
self._pending_draw = _update
|
|
732
746
|
else:
|
|
@@ -735,10 +749,13 @@ class MatPlotLibBase(QWidget):
|
|
|
735
749
|
raise RuntimeError('Must run draw before drawing artists!')
|
|
736
750
|
self._canvas.restore_region(self._background_cache)
|
|
737
751
|
for a in artists:
|
|
738
|
-
|
|
752
|
+
axes.draw_artist(a)
|
|
739
753
|
self._canvas.update()
|
|
740
754
|
self._pending_artists_draw = _update
|
|
741
|
-
|
|
755
|
+
|
|
756
|
+
def draw(self, artists=None):
|
|
757
|
+
return self._draw(artists, self._axes)
|
|
758
|
+
|
|
742
759
|
def _do_draw_events(self):
|
|
743
760
|
if self._pending_draw is not None:
|
|
744
761
|
self._pending_draw()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqttoolkit-0.7.28 → pyqttoolkit-0.7.30}/pyqttoolkit/metadata/dataframe_metadata_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|