qplotter 1.6.0b3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qplot/__init__.py +46 -0
- qplot/__main__.py +232 -0
- qplot/_auxiliary_paths.py +63 -0
- qplot/_metadata.py +12 -0
- qplot/_repair.py +14 -0
- qplot/_shutdown_supervisor.py +4049 -0
- qplot/_version.py +12 -0
- qplot/_windows_shutdown_job.py +1166 -0
- qplot/configuration/__init__.py +3 -0
- qplot/configuration/config.py +573 -0
- qplot/configuration/config_schema.json +319 -0
- qplot/configuration/scripts.py +255 -0
- qplot/configuration/themes/__init__.py +13 -0
- qplot/configuration/themes/_base.py +579 -0
- qplot/configuration/themes/blank.py +17 -0
- qplot/configuration/themes/dark.py +54 -0
- qplot/configuration/themes/light.py +54 -0
- qplot/datahandling/LoadFromDB.py +224 -0
- qplot/datahandling/__init__.py +47 -0
- qplot/datahandling/_trusted_live_helper.py +812 -0
- qplot/datahandling/_trusted_live_protocol.py +1745 -0
- qplot/datahandling/database.py +2330 -0
- qplot/datahandling/dimensions.py +43 -0
- qplot/datahandling/file_identity.py +461 -0
- qplot/datahandling/parameter_data.py +149 -0
- qplot/datahandling/plot_progress.py +17 -0
- qplot/datahandling/qcodes_cache.py +277 -0
- qplot/datahandling/qcodes_compat.py +14 -0
- qplot/datahandling/readSQL.py +2442 -0
- qplot/datahandling/readonly.py +2561 -0
- qplot/datahandling/source_activity.py +21 -0
- qplot/datahandling/trusted_array_preview.py +127 -0
- qplot/datahandling/trusted_derived_cache.py +1605 -0
- qplot/datahandling/trusted_derived_rendering.py +868 -0
- qplot/datahandling/trusted_heatmap.py +241 -0
- qplot/datahandling/trusted_live.py +2808 -0
- qplot/datahandling/trusted_live_queries.py +5907 -0
- qplot/datahandling/trusted_live_service.py +1894 -0
- qplot/datahandling/trusted_live_supervisor.py +2161 -0
- qplot/datahandling/trusted_plot.py +283 -0
- qplot/datahandling/trusted_presentation.py +1065 -0
- qplot/datahandling/trusted_snapshot.py +1132 -0
- qplot/datahandling/trusted_work_coordinator.py +2157 -0
- qplot/datahandling/trusted_work_scheduler.py +1204 -0
- qplot/diagnostics.py +241 -0
- qplot/resources/testdata/qplot_test_db_01_10mb.csv +11 -0
- qplot/resources/testdata/qplot_test_db_02_25mb.csv +14 -0
- qplot/resources/testdata/qplot_test_db_03_50mb.csv +17 -0
- qplot/resources/testdata/qplot_test_db_04_100mb.csv +20 -0
- qplot/resources/testdata/qplot_test_db_05_250mb.csv +23 -0
- qplot/resources/testdata/qplot_test_db_06_500mb.csv +26 -0
- qplot/resources/testdata/qplot_test_db_07_1gb.csv +29 -0
- qplot/resources/testdata/qplot_test_db_08_5gb.csv +32 -0
- qplot/resources/testdata/qplot_test_db_09_10gb.csv +35 -0
- qplot/resources/testdata/qplot_test_db_10_30gb.csv +38 -0
- qplot/testdata.py +1733 -0
- qplot/tools/__init__.py +13 -0
- qplot/tools/finite_means.py +114 -0
- qplot/tools/general.py +134 -0
- qplot/tools/heatmap_geometry.py +381 -0
- qplot/tools/operation_registry.py +179 -0
- qplot/tools/plot_tools.py +625 -0
- qplot/tools/sample_statistics.py +56 -0
- qplot/tools/worker.py +2787 -0
- qplot/windows/__init__.py +9 -0
- qplot/windows/_colorbar.py +422 -0
- qplot/windows/_commands.py +523 -0
- qplot/windows/_config_persistence.py +123 -0
- qplot/windows/_database_actions.py +4904 -0
- qplot/windows/_dataset_handle.py +221 -0
- qplot/windows/_dragdrop.py +71 -0
- qplot/windows/_export_paths.py +1167 -0
- qplot/windows/_help.py +169 -0
- qplot/windows/_native_averaging.py +173 -0
- qplot/windows/_native_transforms.py +389 -0
- qplot/windows/_plot1d_snap.py +608 -0
- qplot/windows/_plot1d_traces.py +2183 -0
- qplot/windows/_plot2d_colorbar.py +1126 -0
- qplot/windows/_plot2d_colorbar_dialog.py +786 -0
- qplot/windows/_plot2d_layers.py +2197 -0
- qplot/windows/_plot2d_sweeps.py +712 -0
- qplot/windows/_plotWin.py +1993 -0
- qplot/windows/_plot_actions.py +2695 -0
- qplot/windows/_plot_appearance.py +276 -0
- qplot/windows/_plot_axis_scaling.py +1485 -0
- qplot/windows/_plot_export.py +1445 -0
- qplot/windows/_plot_feedback.py +110 -0
- qplot/windows/_plot_marquee.py +656 -0
- qplot/windows/_plot_refresh.py +942 -0
- qplot/windows/_plot_state.py +239 -0
- qplot/windows/_plot_transform_labels.py +60 -0
- qplot/windows/_preferences.py +635 -0
- qplot/windows/_refresh_interval.py +70 -0
- qplot/windows/_run_controls.py +828 -0
- qplot/windows/_shortcuts.py +47 -0
- qplot/windows/_subplots/__init__.py +8 -0
- qplot/windows/_subplots/subplot1d.py +531 -0
- qplot/windows/_subplots/subplot2d.py +918 -0
- qplot/windows/_svg_export.py +209 -0
- qplot/windows/_trusted_derived_qt.py +1759 -0
- qplot/windows/_widgets/__init__.py +23 -0
- qplot/windows/_widgets/_run_formatting.py +387 -0
- qplot/windows/_widgets/details_tables.py +1119 -0
- qplot/windows/_widgets/dropbox.py +290 -0
- qplot/windows/_widgets/operations.py +460 -0
- qplot/windows/_widgets/preview.py +2997 -0
- qplot/windows/_widgets/run_list_items.py +488 -0
- qplot/windows/_widgets/toolbar.py +111 -0
- qplot/windows/_widgets/treeWidgets.py +2572 -0
- qplot/windows/_window_controls.py +413 -0
- qplot/windows/main.py +1635 -0
- qplot/windows/plot1d.py +311 -0
- qplot/windows/plot2d.py +1901 -0
- qplotter-1.6.0b3.dist-info/METADATA +318 -0
- qplotter-1.6.0b3.dist-info/RECORD +119 -0
- qplotter-1.6.0b3.dist-info/WHEEL +5 -0
- qplotter-1.6.0b3.dist-info/entry_points.txt +4 -0
- qplotter-1.6.0b3.dist-info/licenses/LICENSE +21 -0
- qplotter-1.6.0b3.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Operation metadata for plot refresh processing.
|
|
3
|
+
|
|
4
|
+
The functions live in ``plot_tools``; this module records which operations are
|
|
5
|
+
available for each plot surface and what kind of user input they need.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from collections.abc import Callable
|
|
9
|
+
from dataclasses import dataclass
|
|
10
|
+
from decimal import Decimal
|
|
11
|
+
|
|
12
|
+
from qplot.tools.plot_tools import (
|
|
13
|
+
differentiate,
|
|
14
|
+
fill_heatmap,
|
|
15
|
+
pass_filter,
|
|
16
|
+
subtract_mean,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@dataclass(frozen=True)
|
|
21
|
+
class OperationSpec:
|
|
22
|
+
name: str
|
|
23
|
+
func: Callable
|
|
24
|
+
input_type: object
|
|
25
|
+
default: object = ""
|
|
26
|
+
derivative_axis: str | None = None
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@dataclass(frozen=True)
|
|
30
|
+
class OperationCall:
|
|
31
|
+
"""A configured operation and the metadata needed after it succeeds."""
|
|
32
|
+
|
|
33
|
+
name: str
|
|
34
|
+
func: Callable
|
|
35
|
+
derivative_axis: str | None = None
|
|
36
|
+
cooperative: bool = False
|
|
37
|
+
|
|
38
|
+
def __call__(self, data):
|
|
39
|
+
return self.func(data)
|
|
40
|
+
|
|
41
|
+
def execute(self, data, cancelled_callback):
|
|
42
|
+
"""Run qPlot operations cooperatively while retaining one-arg calls."""
|
|
43
|
+
|
|
44
|
+
if self.cooperative:
|
|
45
|
+
return self.func(data, cancelled_callback=cancelled_callback)
|
|
46
|
+
return self.func(data)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class OperationValidationError(ValueError):
|
|
50
|
+
"""Raised when an enabled operation has missing or invalid input."""
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class OperationExecutionError(RuntimeError):
|
|
54
|
+
"""Raised when an operation pipeline cannot be completed atomically."""
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
COMMON_OPERATION_SPECS = (
|
|
58
|
+
OperationSpec(
|
|
59
|
+
"Limit Maximum",
|
|
60
|
+
lambda limit, data, cancelled_callback=None: pass_filter(
|
|
61
|
+
"low", limit, data, cancelled_callback=cancelled_callback
|
|
62
|
+
),
|
|
63
|
+
Decimal,
|
|
64
|
+
),
|
|
65
|
+
OperationSpec(
|
|
66
|
+
"Limit Minimum",
|
|
67
|
+
lambda limit, data, cancelled_callback=None: pass_filter(
|
|
68
|
+
"high", limit, data, cancelled_callback=cancelled_callback
|
|
69
|
+
),
|
|
70
|
+
Decimal,
|
|
71
|
+
),
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
PLOT_OPERATION_SPECS = {
|
|
75
|
+
"plot1d": (
|
|
76
|
+
OperationSpec(
|
|
77
|
+
"dy/dx",
|
|
78
|
+
lambda data, cancelled_callback=None: differentiate(
|
|
79
|
+
"x", data, cancelled_callback=cancelled_callback
|
|
80
|
+
),
|
|
81
|
+
None,
|
|
82
|
+
derivative_axis="x",
|
|
83
|
+
),
|
|
84
|
+
),
|
|
85
|
+
"plot2d": (
|
|
86
|
+
OperationSpec(
|
|
87
|
+
"Subtract Row Mean",
|
|
88
|
+
lambda data, cancelled_callback=None: subtract_mean(
|
|
89
|
+
"x", data, cancelled_callback=cancelled_callback
|
|
90
|
+
),
|
|
91
|
+
None,
|
|
92
|
+
),
|
|
93
|
+
OperationSpec(
|
|
94
|
+
"Subtract Column Mean",
|
|
95
|
+
lambda data, cancelled_callback=None: subtract_mean(
|
|
96
|
+
"y", data, cancelled_callback=cancelled_callback
|
|
97
|
+
),
|
|
98
|
+
None,
|
|
99
|
+
),
|
|
100
|
+
OperationSpec(
|
|
101
|
+
"dz/dx",
|
|
102
|
+
lambda data, cancelled_callback=None: differentiate(
|
|
103
|
+
"x", data, cancelled_callback=cancelled_callback
|
|
104
|
+
),
|
|
105
|
+
None,
|
|
106
|
+
derivative_axis="x",
|
|
107
|
+
),
|
|
108
|
+
OperationSpec(
|
|
109
|
+
"dz/dy",
|
|
110
|
+
lambda data, cancelled_callback=None: differentiate(
|
|
111
|
+
"y", data, cancelled_callback=cancelled_callback
|
|
112
|
+
),
|
|
113
|
+
None,
|
|
114
|
+
derivative_axis="y",
|
|
115
|
+
),
|
|
116
|
+
OperationSpec(
|
|
117
|
+
"Fill Below",
|
|
118
|
+
lambda value, data, cancelled_callback=None: fill_heatmap(
|
|
119
|
+
"below",
|
|
120
|
+
data,
|
|
121
|
+
max_depth=value,
|
|
122
|
+
cancelled_callback=cancelled_callback,
|
|
123
|
+
),
|
|
124
|
+
int,
|
|
125
|
+
10,
|
|
126
|
+
),
|
|
127
|
+
OperationSpec(
|
|
128
|
+
"Fill Right",
|
|
129
|
+
lambda value, data, cancelled_callback=None: fill_heatmap(
|
|
130
|
+
"right",
|
|
131
|
+
data,
|
|
132
|
+
max_depth=value,
|
|
133
|
+
cancelled_callback=cancelled_callback,
|
|
134
|
+
),
|
|
135
|
+
int,
|
|
136
|
+
10,
|
|
137
|
+
),
|
|
138
|
+
),
|
|
139
|
+
"sweeper": (
|
|
140
|
+
OperationSpec(
|
|
141
|
+
"Subtract Cut Mean",
|
|
142
|
+
lambda data, cancelled_callback=None: subtract_mean(
|
|
143
|
+
"x", data, cancelled_callback=cancelled_callback
|
|
144
|
+
),
|
|
145
|
+
None,
|
|
146
|
+
),
|
|
147
|
+
OperationSpec(
|
|
148
|
+
"Subtract Fixed Mean",
|
|
149
|
+
lambda data, cancelled_callback=None: subtract_mean(
|
|
150
|
+
"y", data, cancelled_callback=cancelled_callback
|
|
151
|
+
),
|
|
152
|
+
None,
|
|
153
|
+
),
|
|
154
|
+
OperationSpec(
|
|
155
|
+
"Differentiate Cut",
|
|
156
|
+
lambda data, cancelled_callback=None: differentiate(
|
|
157
|
+
"x", data, cancelled_callback=cancelled_callback
|
|
158
|
+
),
|
|
159
|
+
None,
|
|
160
|
+
derivative_axis="x",
|
|
161
|
+
),
|
|
162
|
+
OperationSpec(
|
|
163
|
+
"Differentiate Fixed",
|
|
164
|
+
lambda data, cancelled_callback=None: differentiate(
|
|
165
|
+
"y", data, cancelled_callback=cancelled_callback
|
|
166
|
+
),
|
|
167
|
+
None,
|
|
168
|
+
derivative_axis="y",
|
|
169
|
+
),
|
|
170
|
+
),
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
def operation_specs_for(plot_type):
|
|
175
|
+
"""
|
|
176
|
+
Return common and plot-specific operations for a plot widget class name.
|
|
177
|
+
|
|
178
|
+
"""
|
|
179
|
+
return COMMON_OPERATION_SPECS + PLOT_OPERATION_SPECS[plot_type]
|