rapidtide 3.0.11__py3-none-any.whl → 3.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. rapidtide/Colortables.py +492 -27
  2. rapidtide/OrthoImageItem.py +1049 -46
  3. rapidtide/RapidtideDataset.py +1533 -86
  4. rapidtide/_version.py +3 -3
  5. rapidtide/calccoherence.py +196 -29
  6. rapidtide/calcnullsimfunc.py +191 -40
  7. rapidtide/calcsimfunc.py +245 -42
  8. rapidtide/correlate.py +1210 -393
  9. rapidtide/data/examples/src/testLD +56 -0
  10. rapidtide/data/examples/src/testalign +1 -1
  11. rapidtide/data/examples/src/testdelayvar +0 -1
  12. rapidtide/data/examples/src/testfmri +19 -1
  13. rapidtide/data/examples/src/testglmfilt +5 -5
  14. rapidtide/data/examples/src/testhappy +25 -3
  15. rapidtide/data/examples/src/testppgproc +17 -0
  16. rapidtide/data/examples/src/testrolloff +11 -0
  17. rapidtide/data/models/model_cnn_pytorch/best_model.pth +0 -0
  18. rapidtide/data/models/model_cnn_pytorch/loss.png +0 -0
  19. rapidtide/data/models/model_cnn_pytorch/loss.txt +1 -0
  20. rapidtide/data/models/model_cnn_pytorch/model.pth +0 -0
  21. rapidtide/data/models/model_cnn_pytorch/model_meta.json +68 -0
  22. rapidtide/decorators.py +91 -0
  23. rapidtide/dlfilter.py +2225 -108
  24. rapidtide/dlfiltertorch.py +4843 -0
  25. rapidtide/externaltools.py +327 -12
  26. rapidtide/fMRIData_class.py +79 -40
  27. rapidtide/filter.py +1899 -810
  28. rapidtide/fit.py +2004 -574
  29. rapidtide/genericmultiproc.py +93 -18
  30. rapidtide/happy_supportfuncs.py +2044 -171
  31. rapidtide/helper_classes.py +584 -43
  32. rapidtide/io.py +2363 -370
  33. rapidtide/linfitfiltpass.py +341 -75
  34. rapidtide/makelaggedtcs.py +211 -20
  35. rapidtide/maskutil.py +423 -53
  36. rapidtide/miscmath.py +827 -121
  37. rapidtide/multiproc.py +210 -22
  38. rapidtide/patchmatch.py +234 -33
  39. rapidtide/peakeval.py +32 -30
  40. rapidtide/ppgproc.py +2203 -0
  41. rapidtide/qualitycheck.py +352 -39
  42. rapidtide/refinedelay.py +422 -57
  43. rapidtide/refineregressor.py +498 -184
  44. rapidtide/resample.py +671 -185
  45. rapidtide/scripts/applyppgproc.py +28 -0
  46. rapidtide/simFuncClasses.py +1052 -77
  47. rapidtide/simfuncfit.py +260 -46
  48. rapidtide/stats.py +540 -238
  49. rapidtide/tests/happycomp +9 -0
  50. rapidtide/tests/test_dlfiltertorch.py +627 -0
  51. rapidtide/tests/test_findmaxlag.py +24 -8
  52. rapidtide/tests/test_fullrunhappy_v1.py +0 -2
  53. rapidtide/tests/test_fullrunhappy_v2.py +0 -2
  54. rapidtide/tests/test_fullrunhappy_v3.py +1 -0
  55. rapidtide/tests/test_fullrunhappy_v4.py +2 -2
  56. rapidtide/tests/test_fullrunrapidtide_v7.py +1 -1
  57. rapidtide/tests/test_simroundtrip.py +8 -8
  58. rapidtide/tests/utils.py +9 -8
  59. rapidtide/tidepoolTemplate.py +142 -38
  60. rapidtide/tidepoolTemplate_alt.py +165 -44
  61. rapidtide/tidepoolTemplate_big.py +189 -52
  62. rapidtide/util.py +1217 -118
  63. rapidtide/voxelData.py +684 -37
  64. rapidtide/wiener.py +19 -12
  65. rapidtide/wiener2.py +113 -7
  66. rapidtide/wiener_doc.py +255 -0
  67. rapidtide/workflows/adjustoffset.py +105 -3
  68. rapidtide/workflows/aligntcs.py +85 -2
  69. rapidtide/workflows/applydlfilter.py +87 -10
  70. rapidtide/workflows/applyppgproc.py +522 -0
  71. rapidtide/workflows/atlasaverage.py +210 -47
  72. rapidtide/workflows/atlastool.py +100 -3
  73. rapidtide/workflows/calcSimFuncMap.py +294 -64
  74. rapidtide/workflows/calctexticc.py +201 -9
  75. rapidtide/workflows/ccorrica.py +97 -4
  76. rapidtide/workflows/cleanregressor.py +168 -29
  77. rapidtide/workflows/delayvar.py +163 -10
  78. rapidtide/workflows/diffrois.py +81 -3
  79. rapidtide/workflows/endtidalproc.py +144 -4
  80. rapidtide/workflows/fdica.py +195 -15
  81. rapidtide/workflows/filtnifti.py +70 -3
  82. rapidtide/workflows/filttc.py +74 -3
  83. rapidtide/workflows/fitSimFuncMap.py +206 -48
  84. rapidtide/workflows/fixtr.py +73 -3
  85. rapidtide/workflows/gmscalc.py +113 -3
  86. rapidtide/workflows/happy.py +801 -199
  87. rapidtide/workflows/happy2std.py +144 -12
  88. rapidtide/workflows/happy_parser.py +138 -9
  89. rapidtide/workflows/histnifti.py +118 -2
  90. rapidtide/workflows/histtc.py +84 -3
  91. rapidtide/workflows/linfitfilt.py +117 -4
  92. rapidtide/workflows/localflow.py +328 -28
  93. rapidtide/workflows/mergequality.py +79 -3
  94. rapidtide/workflows/niftidecomp.py +322 -18
  95. rapidtide/workflows/niftistats.py +174 -4
  96. rapidtide/workflows/pairproc.py +88 -2
  97. rapidtide/workflows/pairwisemergenifti.py +85 -2
  98. rapidtide/workflows/parser_funcs.py +1421 -40
  99. rapidtide/workflows/physiofreq.py +137 -11
  100. rapidtide/workflows/pixelcomp.py +208 -5
  101. rapidtide/workflows/plethquality.py +103 -21
  102. rapidtide/workflows/polyfitim.py +151 -11
  103. rapidtide/workflows/proj2flow.py +75 -2
  104. rapidtide/workflows/rankimage.py +111 -4
  105. rapidtide/workflows/rapidtide.py +272 -15
  106. rapidtide/workflows/rapidtide2std.py +98 -2
  107. rapidtide/workflows/rapidtide_parser.py +109 -9
  108. rapidtide/workflows/refineDelayMap.py +143 -33
  109. rapidtide/workflows/refineRegressor.py +682 -93
  110. rapidtide/workflows/regressfrommaps.py +152 -31
  111. rapidtide/workflows/resamplenifti.py +85 -3
  112. rapidtide/workflows/resampletc.py +91 -3
  113. rapidtide/workflows/retrolagtcs.py +98 -6
  114. rapidtide/workflows/retroregress.py +165 -9
  115. rapidtide/workflows/roisummarize.py +173 -5
  116. rapidtide/workflows/runqualitycheck.py +71 -3
  117. rapidtide/workflows/showarbcorr.py +147 -4
  118. rapidtide/workflows/showhist.py +86 -2
  119. rapidtide/workflows/showstxcorr.py +160 -3
  120. rapidtide/workflows/showtc.py +159 -3
  121. rapidtide/workflows/showxcorrx.py +184 -4
  122. rapidtide/workflows/showxy.py +185 -15
  123. rapidtide/workflows/simdata.py +262 -36
  124. rapidtide/workflows/spatialfit.py +77 -2
  125. rapidtide/workflows/spatialmi.py +251 -27
  126. rapidtide/workflows/spectrogram.py +305 -32
  127. rapidtide/workflows/synthASL.py +154 -3
  128. rapidtide/workflows/tcfrom2col.py +76 -2
  129. rapidtide/workflows/tcfrom3col.py +74 -2
  130. rapidtide/workflows/tidepool.py +2969 -130
  131. rapidtide/workflows/utils.py +19 -14
  132. rapidtide/workflows/utils_doc.py +293 -0
  133. rapidtide/workflows/variabilityizer.py +116 -3
  134. {rapidtide-3.0.11.dist-info → rapidtide-3.1.dist-info}/METADATA +3 -2
  135. {rapidtide-3.0.11.dist-info → rapidtide-3.1.dist-info}/RECORD +139 -122
  136. {rapidtide-3.0.11.dist-info → rapidtide-3.1.dist-info}/entry_points.txt +1 -0
  137. {rapidtide-3.0.11.dist-info → rapidtide-3.1.dist-info}/WHEEL +0 -0
  138. {rapidtide-3.0.11.dist-info → rapidtide-3.1.dist-info}/licenses/LICENSE +0 -0
  139. {rapidtide-3.0.11.dist-info → rapidtide-3.1.dist-info}/top_level.txt +0 -0
rapidtide/Colortables.py CHANGED
@@ -16,7 +16,57 @@
16
16
  # limitations under the License.
17
17
  #
18
18
  #
19
- def setendalpha(thestate, alpha, debug=False):
19
+
20
+
21
+ def setendalpha(thestate: dict, alpha: int, debug: bool = False) -> dict:
22
+ """
23
+ Adjust the alpha values of the first and last color ticks in a gradient state.
24
+
25
+ This function modifies the alpha channel of the first and last color stops in a
26
+ gradient defined by `thestate`. It ensures that the first tick starts with the
27
+ specified alpha value and the last tick ends with the specified alpha value,
28
+ while preserving the original color values and intermediate ticks.
29
+
30
+ Parameters
31
+ ----------
32
+ thestate : dict
33
+ A dictionary representing the current gradient state. It must contain:
34
+ - "ticks": list of tuples (float, tuple), where the first element is the
35
+ position (0.0 to 1.0) and the second is the RGBA color tuple.
36
+ - "mode": string, either "rgb" or "hsv", indicating the color mode.
37
+ alpha : int
38
+ The alpha value (0-255) to set for the first and last color ticks.
39
+ debug : bool, optional
40
+ If True, prints debug information about the process. Default is False.
41
+
42
+ Returns
43
+ -------
44
+ dict
45
+ A new gradient state dictionary with updated ticks. The returned dictionary
46
+ has the same structure as the input `thestate`, but with modified alpha
47
+ values at the start and end of the gradient.
48
+
49
+ Notes
50
+ -----
51
+ - The function ensures that the first tick starts at 0.0000 and the last tick
52
+ ends at 1.0000.
53
+ - If the original first tick is not at 0.0, a new tick at 0.0000 is added with
54
+ the specified alpha and a black color (0, 0, 0).
55
+ - If the original last tick is not at 1.0, a new tick at 1.0000 is added with
56
+ the specified alpha and a white color (255, 255, 255) in RGB mode or red (255, 0, 0)
57
+ in HSV mode.
58
+ - Intermediate ticks are preserved as-is.
59
+
60
+ Examples
61
+ --------
62
+ >>> thestate = {
63
+ ... "ticks": [(0.2, (255, 0, 0, 255)), (0.8, (0, 255, 0, 255))],
64
+ ... "mode": "rgb"
65
+ ... }
66
+ >>> result = setendalpha(thestate, alpha=128)
67
+ >>> print(result["ticks"])
68
+ [(0.0, (0, 0, 0, 128)), (0.0001, (0, 0, 0, 255)), (0.2, (255, 0, 0, 255)), (0.8, (0, 255, 0, 255)), (0.9999, (255, 255, 255, 255)), (1.0, (255, 255, 255, 128))]
69
+ """
20
70
  if debug:
21
71
  print("color mode:", thestate["mode"])
22
72
  sortedticks = sorted(thestate["ticks"], key=lambda x: x[0])
@@ -60,61 +110,239 @@ def setendalpha(thestate, alpha, debug=False):
60
110
  return adjustedgradient
61
111
 
62
112
 
63
- def gen_thermal_state():
113
+ def gen_thermal_state() -> dict:
114
+ """
115
+ Generate and return a thermal gradient dictionary for use in pyqtgraph.
116
+
117
+ This function retrieves the built-in "thermal" gradient from pyqtgraph's
118
+ GradientEditorItem and ensures it has the correct name attribute set.
119
+
120
+ Returns
121
+ -------
122
+ dict
123
+ A dictionary representing the thermal gradient with the following structure:
124
+ - 'name': str, gradient name ("thermal")
125
+ - Gradient color stops and their positions
126
+
127
+ Notes
128
+ -----
129
+ The thermal gradient is a predefined color map that transitions from blue
130
+ through purple to red, commonly used for thermal imaging and heat maps.
131
+
132
+ Examples
133
+ --------
134
+ >>> thermal_gradient = gen_thermal_state()
135
+ >>> print(thermal_gradient['name'])
136
+ 'thermal'
137
+ """
64
138
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
65
139
 
66
140
  thegradient = Gradients["thermal"]
67
141
  thegradient["name"] = "thermal"
68
142
  return thegradient
69
- # return Gradients["thermal"]
70
143
 
71
144
 
72
- def gen_flame_state():
145
+ def gen_flame_state() -> dict:
146
+ """
147
+ Generate and return a flame color gradient dictionary.
148
+
149
+ This function creates a flame-colored gradient using the pyqtgraph GradientEditorItem
150
+ gradients collection. The returned gradient can be used for styling plots, widgets,
151
+ or other graphical elements that support gradient color schemes.
152
+
153
+ Returns
154
+ -------
155
+ dict
156
+ A dictionary containing the flame gradient definition with the following structure:
157
+ - 'name': str, gradient name ("flame")
158
+ - Gradient color stops and their corresponding RGB values
159
+ - Other gradient properties as defined in pyqtgraph's GradientEditorItem
160
+
161
+ Notes
162
+ -----
163
+ The function relies on pyqtgraph's built-in gradients collection. The "flame" gradient
164
+ typically represents a color scheme transitioning from dark colors to bright orange/red
165
+ colors, resembling a flame or fire effect.
166
+
167
+ Examples
168
+ --------
169
+ >>> flame_gradient = gen_flame_state()
170
+ >>> print(flame_gradient['name'])
171
+ 'flame'
172
+
173
+ See Also
174
+ --------
175
+ pyqtgraph.graphicsItems.GradientEditorItem.Gradients :
176
+ The source of built-in gradients in pyqtgraph
177
+ """
73
178
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
74
179
 
75
180
  thegradient = Gradients["flame"]
76
181
  thegradient["name"] = "flame"
77
182
  return thegradient
78
- # return Gradients["flame"]
79
183
 
80
184
 
81
- def gen_yellowy_state():
185
+ def gen_yellowy_state() -> dict:
186
+ """
187
+ Generate and return the yellowy gradient definition.
188
+
189
+ This function retrieves the predefined 'yellowy' gradient from pyqtgraph's
190
+ GradientEditorItem Gradients collection and returns it as a dictionary with
191
+ the gradient data and name.
192
+
193
+ Returns
194
+ -------
195
+ dict
196
+ A dictionary containing the yellowy gradient definition with the following structure:
197
+ - Keys: Gradient color point definitions
198
+ - 'name': str, the name of the gradient ('yellowy')
199
+
200
+ Notes
201
+ -----
202
+ The yellowy gradient is predefined in pyqtgraph's GradientEditorItem module.
203
+ This function provides a convenient way to access and return the gradient data
204
+ for use in plotting and visualization applications.
205
+
206
+ Examples
207
+ --------
208
+ >>> gradient = gen_yellowy_state()
209
+ >>> print(gradient['name'])
210
+ 'yellowy'
211
+ """
82
212
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
83
213
 
84
214
  thegradient = Gradients["yellowy"]
85
215
  thegradient["name"] = "yellowy"
86
216
  return thegradient
87
- # return Gradients["yellowy"]
88
217
 
89
218
 
90
- def gen_bipolar_state():
219
+ def gen_bipolar_state() -> dict:
220
+ """
221
+ Generate and return the bipolar gradient configuration.
222
+
223
+ This function retrieves the bipolar gradient from pyqtgraph's GradientEditorItem
224
+ and returns it as a dictionary with the gradient name set to "bipolar".
225
+
226
+ Returns
227
+ -------
228
+ dict
229
+ A dictionary containing the bipolar gradient configuration with the following structure:
230
+ - 'name': str, gradient name ("bipolar")
231
+ - Gradient color stops and values as defined in pyqtgraph's bipolar gradient
232
+
233
+ Notes
234
+ -----
235
+ The bipolar gradient is commonly used for visualizing data with both positive and negative values,
236
+ typically displaying negative values in one color (e.g., blue) and positive values in another (e.g., red).
237
+ This gradient is particularly useful for scientific visualization and data analysis applications.
238
+
239
+ Examples
240
+ --------
241
+ >>> gradient = gen_bipolar_state()
242
+ >>> print(gradient['name'])
243
+ 'bipolar'
244
+ """
91
245
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
92
246
 
93
247
  thegradient = Gradients["bipolar"]
94
248
  thegradient["name"] = "bipolar"
95
249
  return thegradient
96
- # return Gradients["bipolar"]
97
250
 
98
251
 
99
- def gen_spectrum_state():
252
+ def gen_spectrum_state() -> dict:
253
+ """Generate and return the spectrum gradient dictionary.
254
+
255
+ This function retrieves the 'spectrum' gradient from pyqtgraph's GradientEditorItem
256
+ and ensures it has the correct name attribute set.
257
+
258
+ Returns
259
+ -------
260
+ dict
261
+ A dictionary containing the spectrum gradient definition with keys:
262
+ - 'name': str, set to "spectrum"
263
+ - Gradient color stops and other properties from pyqtgraph's spectrum gradient
264
+
265
+ Notes
266
+ -----
267
+ The function relies on pyqtgraph's built-in gradients and specifically uses
268
+ the "spectrum" gradient which provides a rainbow-like color mapping.
269
+
270
+ Examples
271
+ --------
272
+ >>> spectrum_grad = gen_spectrum_state()
273
+ >>> print(spectrum_grad['name'])
274
+ 'spectrum'
275
+ """
100
276
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
101
277
 
102
278
  thegradient = Gradients["spectrum"]
103
279
  thegradient["name"] = "spectrum"
104
280
  return thegradient
105
- # return Gradients["spectrum"]
106
281
 
107
282
 
108
- def gen_turbo_state():
283
+ def gen_turbo_state() -> dict:
284
+ """
285
+ Generate and return the turbo color gradient definition.
286
+
287
+ This function retrieves the 'turbo' color gradient from pyqtgraph's GradientEditorItem
288
+ and returns it as a dictionary with the gradient data and name.
289
+
290
+ Returns
291
+ -------
292
+ dict
293
+ A dictionary containing the turbo color gradient definition with the following structure:
294
+ - 'colorMap': list of color stops
295
+ - 'name': string identifier "turbo"
296
+ - Other gradient properties as defined in pyqtgraph's Gradients
297
+
298
+ Notes
299
+ -----
300
+ The turbo gradient is a perceptually uniform color map designed for scientific visualization.
301
+ It provides better color distinction across the entire range of values compared to traditional
302
+ colormaps like 'jet' or 'hsv'.
303
+
304
+ Examples
305
+ --------
306
+ >>> gradient = gen_turbo_state()
307
+ >>> print(gradient['name'])
308
+ 'turbo'
309
+ >>> print(len(gradient['colorMap']))
310
+ 256
311
+ """
109
312
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
110
313
 
111
314
  thegradient = Gradients["turbo"]
112
315
  thegradient["name"] = "turbo"
113
316
  return thegradient
114
- # return Gradients["turbo"]
115
317
 
116
318
 
117
- def gen_gray_state():
319
+ def gen_gray_state() -> dict:
320
+ """
321
+ Generate a gray color state configuration.
322
+
323
+ Returns
324
+ -------
325
+ dict
326
+ A dictionary containing color state configuration with the following keys:
327
+ - ticks: List of tuples containing time values and RGBA color tuples
328
+ - mode: Color mode string, currently "rgb"
329
+ - name: Name of the color state, currently "gray"
330
+
331
+ Notes
332
+ -----
333
+ This function returns a predefined gray color state configuration with:
334
+ - Start color: Black (0, 0, 0, 255)
335
+ - End color: White (255, 255, 255, 255)
336
+ - Time values: 0.0 and 1.0
337
+
338
+ Examples
339
+ --------
340
+ >>> state = gen_gray_state()
341
+ >>> print(state['name'])
342
+ 'gray'
343
+ >>> print(state['ticks'])
344
+ [(0.0, (0, 0, 0, 255)), (1.0, (255, 255, 255, 255))]
345
+ """
118
346
  return {
119
347
  "ticks": [
120
348
  (0.0000, (0, 0, 0, 255)),
@@ -125,7 +353,32 @@ def gen_gray_state():
125
353
  }
126
354
 
127
355
 
128
- def gen_grey_state():
356
+ def gen_grey_state() -> dict:
357
+ """
358
+ Generate a grey color state configuration.
359
+
360
+ Returns
361
+ -------
362
+ dict
363
+ A dictionary containing grey color state configuration with the following keys:
364
+ - ticks: list of tuples containing time and RGBA color values
365
+ - mode: string indicating color mode ('rgb')
366
+ - name: string identifier for the color state
367
+
368
+ Notes
369
+ -----
370
+ This function returns a predefined grey color state where:
371
+ - Time 0.0 corresponds to black (0, 0, 0, 255)
372
+ - Time 1.0 corresponds to white (255, 255, 255, 255)
373
+
374
+ Examples
375
+ --------
376
+ >>> state = gen_grey_state()
377
+ >>> print(state['name'])
378
+ 'grey'
379
+ >>> print(state['ticks'])
380
+ [(0.0, (0, 0, 0, 255)), (1.0, (255, 255, 255, 255))]
381
+ """
129
382
  return {
130
383
  "ticks": [
131
384
  (0.0000, (0, 0, 0, 255)),
@@ -136,43 +389,173 @@ def gen_grey_state():
136
389
  }
137
390
 
138
391
 
139
- def gen_viridis_state():
392
+ def gen_viridis_state() -> dict:
393
+ """Generate and return the viridis color gradient configuration.
394
+
395
+ This function retrieves the viridis color gradient from pyqtgraph's GradientEditorItem
396
+ and returns it as a dictionary with the gradient data and name.
397
+
398
+ Returns
399
+ -------
400
+ dict
401
+ A dictionary containing the viridis color gradient data with the following structure:
402
+ - 'colorMap': list of QColor objects representing the gradient colors
403
+ - 'positions': list of float values representing the color positions (0.0 to 1.0)
404
+ - 'name': str, the name of the gradient ('viridis')
405
+
406
+ Notes
407
+ -----
408
+ The viridis gradient is a perceptually uniform colormap designed to be
409
+ visible to colorblind individuals and optimized for scientific visualization.
410
+
411
+ Examples
412
+ --------
413
+ >>> gradient_dict = gen_viridis_state()
414
+ >>> print(gradient_dict['name'])
415
+ 'viridis'
416
+ >>> print(len(gradient_dict['colorMap']))
417
+ 256
418
+ """
140
419
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
141
420
 
142
421
  thegradient = Gradients["viridis"]
143
422
  thegradient["name"] = "viridis"
144
423
  return thegradient
145
- # return Gradients["viridis"]
146
424
 
147
425
 
148
- def gen_inferno_state():
426
+ def gen_inferno_state() -> dict:
427
+ """Generate and return the inferno color gradient configuration.
428
+
429
+ This function retrieves the inferno color gradient from pyqtgraph's GradientEditorItem
430
+ and returns it as a dictionary with the gradient data and name.
431
+
432
+ Returns
433
+ -------
434
+ dict
435
+ A dictionary containing the inferno color gradient data with the following structure:
436
+ - 'name': str, gradient name ("inferno")
437
+ - Gradient color points and their corresponding colors
438
+
439
+ Notes
440
+ -----
441
+ The inferno gradient is a perceptually uniform color map designed for scientific visualization.
442
+ It transitions from dark to bright colors, making it suitable for heat maps and other data visualizations.
443
+
444
+ Examples
445
+ --------
446
+ >>> gradient = gen_inferno_state()
447
+ >>> print(gradient['name'])
448
+ 'inferno'
449
+ """
149
450
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
150
451
 
151
452
  thegradient = Gradients["inferno"]
152
453
  thegradient["name"] = "inferno"
153
454
  return thegradient
154
- # return Gradients["inferno"]
155
455
 
156
456
 
157
- def gen_plasma_state():
457
+ def gen_plasma_state() -> dict:
458
+ """
459
+ Generate and return the plasma color gradient definition.
460
+
461
+ This function retrieves the plasma gradient from PyQtd's GradientEditorItem
462
+ and returns it as a dictionary with the gradient data and name.
463
+
464
+ Returns
465
+ -------
466
+ dict
467
+ Dictionary containing the plasma color gradient definition with keys:
468
+ - 'colorMap': The color mapping data for the gradient
469
+ - 'name': String identifier "plasma"
470
+
471
+ Notes
472
+ -----
473
+ The plasma gradient is a popular color scheme that maps values to colors
474
+ in a way that resembles plasma physics visualization. It typically transitions
475
+ from blue through purple to red as values increase.
476
+
477
+ Examples
478
+ --------
479
+ >>> gradient = gen_plasma_state()
480
+ >>> print(gradient['name'])
481
+ 'plasma'
482
+ """
158
483
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
159
484
 
160
485
  thegradient = Gradients["plasma"]
161
486
  thegradient["name"] = "plasma"
162
487
  return thegradient
163
- # return Gradients["plasma"]
164
488
 
165
489
 
166
- def gen_magma_state():
490
+ def gen_magma_state() -> dict:
491
+ """
492
+ Generate and return the magma color gradient definition.
493
+
494
+ This function retrieves the magma color gradient from pyqtgraph's gradient collection
495
+ and returns it as a dictionary with the gradient data and name.
496
+
497
+ Returns
498
+ -------
499
+ dict
500
+ A dictionary containing the magma color gradient definition with the following structure:
501
+ - Keys: Color stop positions (float values between 0 and 1)
502
+ - Values: RGBA color tuples (float values between 0 and 1)
503
+ - Additional key: "name" with value "magma"
504
+
505
+ Notes
506
+ -----
507
+ The magma gradient is a perceptually uniform colormap designed for scientific visualization.
508
+ It transitions from dark purple to bright yellow, making it suitable for displaying
509
+ data with varying magnitudes.
510
+
511
+ Examples
512
+ --------
513
+ >>> magma_gradient = gen_magma_state()
514
+ >>> print(magma_gradient["name"])
515
+ 'magma'
516
+ >>> print(len(magma_gradient) > 1)
517
+ True
518
+ """
167
519
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
168
520
 
169
521
  thegradient = Gradients["magma"]
170
522
  thegradient["name"] = "magma"
171
523
  return thegradient
172
- # return Gradients["magma"]
173
524
 
174
525
 
175
- def gen_g2y2r_state():
526
+ def gen_g2y2r_state() -> dict:
527
+ """
528
+ Generate a color transition state configuration for green-to-yellow-to-red transition.
529
+
530
+ This function returns a dictionary containing color transition data that defines
531
+ a smooth color transition from green to yellow to red, with intermediate states
532
+ and timing information for animation or visualization purposes.
533
+
534
+ Returns
535
+ -------
536
+ dict
537
+ A dictionary containing the following keys:
538
+ - ticks: list of tuples containing (time, rgba_color) pairs
539
+ - mode: str, color mode identifier ("rgb")
540
+ - name: str, transition name ("g2y2r")
541
+
542
+ Notes
543
+ -----
544
+ The color transition follows this sequence:
545
+ - Start: (0, 0, 0, 0) - Transparent black
546
+ - Green: (0, 255, 0, 255) - Pure green
547
+ - Yellow: (255, 255, 0, 255) - Pure yellow
548
+ - Red: (255, 0, 0, 255) - Pure red
549
+ - End: (255, 0, 0, 0) - Transparent red
550
+
551
+ Examples
552
+ --------
553
+ >>> state = gen_g2y2r_state()
554
+ >>> print(state['name'])
555
+ 'g2y2r'
556
+ >>> print(len(state['ticks']))
557
+ 5
558
+ """
176
559
  return {
177
560
  "ticks": [
178
561
  (0.0000, (0, 0, 0, 0)),
@@ -186,7 +569,34 @@ def gen_g2y2r_state():
186
569
  }
187
570
 
188
571
 
189
- def gen_mask_state():
572
+ def gen_mask_state() -> dict:
573
+ """Generate a mask state configuration dictionary.
574
+
575
+ This function creates and returns a dictionary containing mask state
576
+ configuration parameters including tick values, color mode, and name.
577
+
578
+ Returns
579
+ -------
580
+ dict
581
+ A dictionary containing mask state configuration with the following keys:
582
+ - ticks: list of tuples containing (time, rgba_color) values
583
+ - mode: string indicating color mode ('rgb')
584
+ - name: string identifier for the mask
585
+
586
+ Notes
587
+ -----
588
+ The returned dictionary represents a simple mask state with two ticks:
589
+ - First tick at time 0.0 with black color (0, 0, 0, 255)
590
+ - Second tick at time 1.0 with white color (255, 255, 255, 0)
591
+
592
+ Examples
593
+ --------
594
+ >>> mask_state = gen_mask_state()
595
+ >>> print(mask_state['name'])
596
+ 'mask'
597
+ >>> print(mask_state['ticks'])
598
+ [(0.0, (0, 0, 0, 255)), (1.0, (255, 255, 255, 0))]
599
+ """
190
600
  return {
191
601
  "ticks": [(0.0000, (0, 0, 0, 255)), (1.0000, (255, 255, 255, 0))],
192
602
  "mode": "rgb",
@@ -194,7 +604,38 @@ def gen_mask_state():
194
604
  }
195
605
 
196
606
 
197
- def gen_greyclip_state():
607
+ def gen_greyclip_state() -> dict:
608
+ """
609
+ Generate a greyclip color state configuration.
610
+
611
+ This function returns a dictionary containing color state information for a greyclip
612
+ color mapping. The color state defines a gradient transition from black to white
613
+ to red, with specific tick points and color values.
614
+
615
+ Returns
616
+ -------
617
+ dict
618
+ A dictionary containing the color state configuration with the following keys:
619
+ - ticks: list of tuples containing (position, rgba_color) where position is
620
+ a float between 0.0 and 1.0, and rgba_color is a tuple of (r, g, b, a)
621
+ values in the range 0-255
622
+ - mode: string indicating the color mode, always "rgb" for this function
623
+ - name: string identifier for the color state, always "greyclip"
624
+
625
+ Notes
626
+ -----
627
+ The returned color state defines a gradient that starts at black (0, 0, 0, 255),
628
+ transitions to white (255, 255, 255, 255) at 99% position, and ends at red
629
+ (255, 0, 0, 255) at 100% position.
630
+
631
+ Examples
632
+ --------
633
+ >>> state = gen_greyclip_state()
634
+ >>> print(state['name'])
635
+ 'greyclip'
636
+ >>> print(len(state['ticks']))
637
+ 3
638
+ """
198
639
  return {
199
640
  "ticks": [
200
641
  (0.0, (0, 0, 0, 255)),
@@ -206,7 +647,31 @@ def gen_greyclip_state():
206
647
  }
207
648
 
208
649
 
209
- def getagradient():
650
+ def getagradient(): # type: ignore
651
+ """Create and return a gradient widget for color selection.
652
+
653
+ This function creates a PyQtGraph GradientWidget configured for right-oriented
654
+ gradient editing with the ability to add new color points.
655
+
656
+ Returns
657
+ -------
658
+ pyqtgraph.GradientWidget
659
+ A configured GradientWidget instance with:
660
+ - orientation="right" (vertical gradient)
661
+ - allowAdd=True (allows adding new color points)
662
+
663
+ Notes
664
+ -----
665
+ The returned widget can be used to create color gradients for visualization
666
+ purposes. The gradient widget allows users to interactively modify color
667
+ stops and create custom color mappings.
668
+
669
+ Examples
670
+ --------
671
+ >>> gradient_widget = getagradient()
672
+ >>> # Use the gradient widget in a PyQt application
673
+ >>> layout.addWidget(gradient_widget)
674
+ """
210
675
  from pyqtgraph import GradientWidget
211
676
 
212
677
  return GradientWidget(orientation="right", allowAdd=True)