rapidtide 3.0a13__py3-none-any.whl → 3.0a15__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 (232) hide show
  1. rapidtide/Colortables.py +1 -1
  2. rapidtide/DerivativeDelay.py +4 -2
  3. rapidtide/OrthoImageItem.py +1 -1
  4. rapidtide/RapidtideDataset.py +3 -1
  5. rapidtide/RegressorRefiner.py +1 -1
  6. rapidtide/calcandfitcorrpairs.py +1 -1
  7. rapidtide/calccoherence.py +1 -1
  8. rapidtide/calcnullsimfunc.py +1 -1
  9. rapidtide/calcsimfunc.py +1 -1
  10. rapidtide/correlate.py +1 -1
  11. rapidtide/data/examples/src/test_findmaxlag.py +1 -1
  12. rapidtide/data/examples/src/testdelayvar +2 -1
  13. rapidtide/data/examples/src/testfmri +3 -2
  14. rapidtide/data/examples/src/testfuncs +1 -1
  15. rapidtide/data/examples/src/testhappy +12 -1
  16. rapidtide/data/examples/src/testmodels +33 -0
  17. rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/loss.png +0 -0
  18. rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/loss.txt +1 -0
  19. rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/model.keras +0 -0
  20. rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/model_meta.json +167 -0
  21. rapidtide/data/models/model_revised_tf2/model.keras +0 -0
  22. rapidtide/data/models/{model_serdar → model_revised_tf2}/model_meta.json +1 -1
  23. rapidtide/data/models/model_serdar2_tf2/model.keras +0 -0
  24. rapidtide/data/models/{model_serdar2 → model_serdar2_tf2}/model_meta.json +1 -1
  25. rapidtide/data/models/model_serdar_tf2/model.keras +0 -0
  26. rapidtide/data/models/{model_revised → model_serdar_tf2}/model_meta.json +1 -1
  27. rapidtide/dlfilter.py +325 -241
  28. rapidtide/externaltools.py +1 -1
  29. rapidtide/fMRIData_class.py +1 -1
  30. rapidtide/filter.py +1 -8
  31. rapidtide/fit.py +1 -8
  32. rapidtide/happy_supportfuncs.py +30 -1
  33. rapidtide/helper_classes.py +1 -1
  34. rapidtide/io.py +1 -1
  35. rapidtide/linfitfiltpass.py +3 -1
  36. rapidtide/makelaggedtcs.py +9 -6
  37. rapidtide/maskutil.py +1 -1
  38. rapidtide/miscmath.py +1 -8
  39. rapidtide/multiproc.py +9 -12
  40. rapidtide/patchmatch.py +1 -1
  41. rapidtide/peakeval.py +1 -1
  42. rapidtide/qualitycheck.py +1 -1
  43. rapidtide/refinedelay.py +174 -89
  44. rapidtide/refineregressor.py +1 -1
  45. rapidtide/resample.py +1 -1
  46. rapidtide/scripts/adjustoffset.py +1 -1
  47. rapidtide/scripts/aligntcs.py +1 -1
  48. rapidtide/scripts/applydlfilter.py +1 -1
  49. rapidtide/scripts/atlasaverage.py +1 -1
  50. rapidtide/scripts/atlastool.py +1 -1
  51. rapidtide/scripts/calcicc.py +1 -1
  52. rapidtide/scripts/calctexticc.py +1 -1
  53. rapidtide/scripts/calcttest.py +1 -1
  54. rapidtide/scripts/ccorrica.py +1 -1
  55. rapidtide/scripts/delayvar.py +2 -2
  56. rapidtide/scripts/diffrois.py +1 -1
  57. rapidtide/scripts/endtidalproc.py +1 -1
  58. rapidtide/scripts/fdica.py +1 -1
  59. rapidtide/scripts/filtnifti.py +1 -1
  60. rapidtide/scripts/filttc.py +1 -1
  61. rapidtide/scripts/fingerprint.py +1 -1
  62. rapidtide/scripts/fixtr.py +1 -1
  63. rapidtide/scripts/gmscalc.py +1 -1
  64. rapidtide/scripts/happy.py +1 -1
  65. rapidtide/scripts/happy2std.py +1 -1
  66. rapidtide/scripts/happywarp.py +1 -1
  67. rapidtide/scripts/histnifti.py +1 -1
  68. rapidtide/scripts/histtc.py +1 -1
  69. rapidtide/scripts/linfitfilt.py +1 -1
  70. rapidtide/scripts/localflow.py +1 -1
  71. rapidtide/scripts/mergequality.py +1 -1
  72. rapidtide/scripts/pairproc.py +1 -1
  73. rapidtide/scripts/pairwisemergenifti.py +1 -1
  74. rapidtide/scripts/physiofreq.py +1 -1
  75. rapidtide/scripts/pixelcomp.py +1 -1
  76. rapidtide/scripts/plethquality.py +1 -1
  77. rapidtide/scripts/polyfitim.py +1 -1
  78. rapidtide/scripts/proj2flow.py +1 -1
  79. rapidtide/scripts/rankimage.py +1 -1
  80. rapidtide/scripts/rapidtide.py +1 -1
  81. rapidtide/scripts/rapidtide2std.py +1 -1
  82. rapidtide/scripts/resamplenifti.py +1 -1
  83. rapidtide/scripts/resampletc.py +1 -1
  84. rapidtide/scripts/retrolagtcs.py +1 -1
  85. rapidtide/scripts/retroregress.py +1 -1
  86. rapidtide/scripts/roisummarize.py +1 -1
  87. rapidtide/scripts/runqualitycheck.py +1 -1
  88. rapidtide/scripts/showarbcorr.py +1 -1
  89. rapidtide/scripts/showhist.py +1 -1
  90. rapidtide/scripts/showstxcorr.py +1 -1
  91. rapidtide/scripts/showtc.py +1 -1
  92. rapidtide/scripts/showxcorr_legacy.py +1 -1
  93. rapidtide/scripts/showxcorrx.py +1 -1
  94. rapidtide/scripts/showxy.py +1 -1
  95. rapidtide/scripts/simdata.py +1 -1
  96. rapidtide/scripts/spatialdecomp.py +1 -1
  97. rapidtide/scripts/spatialfit.py +1 -1
  98. rapidtide/scripts/spatialmi.py +1 -1
  99. rapidtide/scripts/spectrogram.py +1 -1
  100. rapidtide/scripts/stupidramtricks.py +1 -1
  101. rapidtide/scripts/synthASL.py +1 -1
  102. rapidtide/scripts/tcfrom2col.py +1 -1
  103. rapidtide/scripts/tcfrom3col.py +1 -1
  104. rapidtide/scripts/temporaldecomp.py +1 -1
  105. rapidtide/scripts/testhrv.py +1 -1
  106. rapidtide/scripts/threeD.py +1 -1
  107. rapidtide/scripts/tidepool.py +1 -1
  108. rapidtide/scripts/variabilityizer.py +1 -1
  109. rapidtide/simfuncfit.py +1 -1
  110. rapidtide/stats.py +1 -8
  111. rapidtide/tests/cleanposttest +1 -1
  112. rapidtide/tests/resethappytargets +1 -1
  113. rapidtide/tests/resetrapidtidetargets +1 -1
  114. rapidtide/tests/resettargets +1 -1
  115. rapidtide/tests/runlocaltest +1 -1
  116. rapidtide/tests/showkernels +1 -1
  117. rapidtide/tests/test_aliasedcorrelate.py +1 -1
  118. rapidtide/tests/test_aligntcs.py +1 -1
  119. rapidtide/tests/test_calcicc.py +1 -1
  120. rapidtide/tests/test_congrid.py +1 -1
  121. rapidtide/tests/test_correlate.py +1 -1
  122. rapidtide/tests/test_corrpass.py +1 -1
  123. rapidtide/tests/test_delayestimation.py +1 -1
  124. rapidtide/tests/test_doresample.py +1 -1
  125. rapidtide/tests/test_fastresampler.py +1 -1
  126. rapidtide/tests/test_findmaxlag.py +1 -1
  127. rapidtide/tests/test_fullrunhappy_v1.py +15 -7
  128. rapidtide/tests/test_fullrunhappy_v2.py +18 -10
  129. rapidtide/tests/test_fullrunhappy_v3.py +18 -10
  130. rapidtide/tests/test_fullrunhappy_v4.py +18 -10
  131. rapidtide/tests/test_fullrunhappy_v5.py +15 -9
  132. rapidtide/tests/test_fullrunrapidtide_v1.py +19 -11
  133. rapidtide/tests/test_fullrunrapidtide_v2.py +24 -14
  134. rapidtide/tests/test_fullrunrapidtide_v3.py +15 -7
  135. rapidtide/tests/test_fullrunrapidtide_v4.py +15 -8
  136. rapidtide/tests/test_fullrunrapidtide_v5.py +13 -5
  137. rapidtide/tests/test_fullrunrapidtide_v6.py +24 -16
  138. rapidtide/tests/test_io.py +1 -1
  139. rapidtide/tests/test_linfitfiltpass.py +1 -1
  140. rapidtide/tests/test_mi.py +1 -1
  141. rapidtide/tests/test_miscmath.py +1 -1
  142. rapidtide/tests/test_motionregress.py +1 -1
  143. rapidtide/tests/test_nullcorr.py +1 -1
  144. rapidtide/tests/test_padvec.py +1 -1
  145. rapidtide/tests/test_phaseanalysis.py +1 -1
  146. rapidtide/tests/test_rapidtideparser.py +1 -1
  147. rapidtide/tests/test_refinedelay.py +4 -3
  148. rapidtide/tests/test_runmisc.py +1 -1
  149. rapidtide/tests/test_sharedmem.py +1 -1
  150. rapidtide/tests/test_simulate.py +1 -1
  151. rapidtide/tests/test_stcorrelate.py +1 -1
  152. rapidtide/tests/test_timeshift.py +1 -1
  153. rapidtide/tests/test_valtoindex.py +1 -1
  154. rapidtide/tests/test_zRapidtideDataset.py +1 -1
  155. rapidtide/tests/utils.py +1 -1
  156. rapidtide/transformerdlfilter.py +2 -4
  157. rapidtide/util.py +37 -14
  158. rapidtide/voxelData.py +278 -0
  159. rapidtide/wiener.py +1 -1
  160. rapidtide/wiener2.py +1 -1
  161. rapidtide/workflows/adjustoffset.py +1 -1
  162. rapidtide/workflows/aligntcs.py +1 -1
  163. rapidtide/workflows/applydlfilter.py +20 -65
  164. rapidtide/workflows/atlasaverage.py +41 -13
  165. rapidtide/workflows/atlastool.py +1 -1
  166. rapidtide/workflows/calctexticc.py +1 -1
  167. rapidtide/workflows/ccorrica.py +1 -1
  168. rapidtide/workflows/cleanregressor.py +243 -0
  169. rapidtide/workflows/delayestimation.py +488 -0
  170. rapidtide/workflows/delayvar.py +122 -34
  171. rapidtide/workflows/diffrois.py +1 -1
  172. rapidtide/workflows/endtidalproc.py +1 -1
  173. rapidtide/workflows/fdica.py +1 -1
  174. rapidtide/workflows/filtnifti.py +1 -1
  175. rapidtide/workflows/filttc.py +1 -1
  176. rapidtide/workflows/fixtr.py +1 -1
  177. rapidtide/workflows/gmscalc.py +1 -1
  178. rapidtide/workflows/happy.py +49 -3
  179. rapidtide/workflows/happy2std.py +1 -1
  180. rapidtide/workflows/happy_parser.py +30 -6
  181. rapidtide/workflows/histnifti.py +1 -1
  182. rapidtide/workflows/histtc.py +1 -1
  183. rapidtide/workflows/linfitfilt.py +1 -1
  184. rapidtide/workflows/localflow.py +1 -1
  185. rapidtide/workflows/mergequality.py +1 -1
  186. rapidtide/workflows/niftidecomp.py +1 -1
  187. rapidtide/workflows/niftistats.py +1 -1
  188. rapidtide/workflows/pairproc.py +1 -1
  189. rapidtide/workflows/pairwisemergenifti.py +1 -1
  190. rapidtide/workflows/parser_funcs.py +1 -1
  191. rapidtide/workflows/physiofreq.py +1 -1
  192. rapidtide/workflows/pixelcomp.py +1 -1
  193. rapidtide/workflows/plethquality.py +1 -1
  194. rapidtide/workflows/polyfitim.py +1 -1
  195. rapidtide/workflows/proj2flow.py +1 -1
  196. rapidtide/workflows/rankimage.py +1 -1
  197. rapidtide/workflows/rapidtide.py +174 -686
  198. rapidtide/workflows/rapidtide2std.py +1 -1
  199. rapidtide/workflows/rapidtide_parser.py +14 -113
  200. rapidtide/workflows/regressfrommaps.py +6 -48
  201. rapidtide/workflows/resamplenifti.py +1 -1
  202. rapidtide/workflows/resampletc.py +1 -1
  203. rapidtide/workflows/retrolagtcs.py +2 -1
  204. rapidtide/workflows/retroregress.py +26 -2
  205. rapidtide/workflows/roisummarize.py +1 -1
  206. rapidtide/workflows/runqualitycheck.py +1 -1
  207. rapidtide/workflows/showarbcorr.py +1 -1
  208. rapidtide/workflows/showhist.py +1 -1
  209. rapidtide/workflows/showstxcorr.py +1 -1
  210. rapidtide/workflows/showtc.py +1 -1
  211. rapidtide/workflows/showxcorrx.py +1 -1
  212. rapidtide/workflows/showxy.py +1 -1
  213. rapidtide/workflows/simdata.py +1 -1
  214. rapidtide/workflows/spatialfit.py +1 -1
  215. rapidtide/workflows/spatialmi.py +1 -1
  216. rapidtide/workflows/spectrogram.py +1 -1
  217. rapidtide/workflows/synthASL.py +1 -1
  218. rapidtide/workflows/tcfrom2col.py +1 -1
  219. rapidtide/workflows/tcfrom3col.py +1 -1
  220. rapidtide/workflows/tidepool.py +2 -1
  221. rapidtide/workflows/utils.py +1 -1
  222. rapidtide/workflows/variabilityizer.py +1 -1
  223. {rapidtide-3.0a13.dist-info → rapidtide-3.0a15.dist-info}/METADATA +1 -1
  224. rapidtide-3.0a15.dist-info/RECORD +353 -0
  225. {rapidtide-3.0a13.dist-info → rapidtide-3.0a15.dist-info}/WHEEL +1 -1
  226. rapidtide/data/models/model_revised/model.h5 +0 -0
  227. rapidtide/data/models/model_serdar/model.h5 +0 -0
  228. rapidtide/data/models/model_serdar2/model.h5 +0 -0
  229. rapidtide-3.0a13.dist-info/RECORD +0 -345
  230. {rapidtide-3.0a13.dist-info → rapidtide-3.0a15.dist-info}/entry_points.txt +0 -0
  231. {rapidtide-3.0a13.dist-info → rapidtide-3.0a15.dist-info}/licenses/LICENSE +0 -0
  232. {rapidtide-3.0a13.dist-info → rapidtide-3.0a15.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -25,25 +25,33 @@ import rapidtide.workflows.happy_parser as happy_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
27
 
28
- def test_fullrunhappy_v2(debug=False, displayplots=False):
28
+ def test_fullrunhappy_v2(debug=False, local=False, displayplots=False):
29
+ # set input and output directories
30
+ if local:
31
+ exampleroot = "../data/examples/src"
32
+ testtemproot = "./tmp"
33
+ else:
34
+ exampleroot = get_examples_path()
35
+ testtemproot = get_test_temp_path()
36
+
29
37
  # run happy
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
- os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
- os.path.join(get_test_temp_path(), "happyout2"),
39
+ os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
40
+ os.path.join(exampleroot, "sub-HAPPYTEST.json"),
41
+ os.path.join(testtemproot, "happyout2"),
34
42
  "--estweights",
35
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
43
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
36
44
  "--projmask",
37
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
45
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
38
46
  "--mklthreads",
39
47
  "-1",
40
48
  "--model",
41
- "model_revised",
49
+ "model_revised_tf2",
42
50
  "--fliparteries",
43
51
  "--temporalregression",
44
52
  "--cardiacfile",
45
53
  os.path.join(
46
- get_examples_path(),
54
+ exampleroot,
47
55
  "sub-HAPPYTEST_desc-slicerescardfromfmri_timeseries.json:cardiacfromfmri_dlfiltered",
48
56
  ),
49
57
  "--increaseoutputlevel",
@@ -54,4 +62,4 @@ def test_fullrunhappy_v2(debug=False, displayplots=False):
54
62
 
55
63
  if __name__ == "__main__":
56
64
  mpl.use("TkAgg")
57
- test_fullrunhappy_v2(debug=True, displayplots=True)
65
+ test_fullrunhappy_v2(debug=True, local=True, displayplots=True)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -25,27 +25,35 @@ import rapidtide.workflows.happy_parser as happy_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
27
 
28
- def test_fullrunhappy_v3(debug=False, displayplots=False):
28
+ def test_fullrunhappy_v3(debug=False, local=False, displayplots=False):
29
+ # set input and output directories
30
+ if local:
31
+ exampleroot = "../data/examples/src"
32
+ testtemproot = "./tmp"
33
+ else:
34
+ exampleroot = get_examples_path()
35
+ testtemproot = get_test_temp_path()
36
+
29
37
  # run happy
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
- os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
- os.path.join(get_test_temp_path(), "happyout3"),
39
+ os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
40
+ os.path.join(exampleroot, "sub-HAPPYTEST.json"),
41
+ os.path.join(testtemproot, "happyout3"),
34
42
  "--estweights",
35
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
43
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
36
44
  "--projmask",
37
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
45
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
38
46
  "--mklthreads",
39
47
  "-1",
40
48
  "--model",
41
- "model_revised",
49
+ "model_revised_tf2",
42
50
  "--cardcalconly",
43
51
  ]
44
52
  # "--motionfile",
45
- # os.path.join(get_examples_path(), "sub-HAPPYTEST_mcf.par"),
53
+ # os.path.join(exampleroot, "sub-HAPPYTEST_mcf.par"),
46
54
  happy_workflow.happy_main(happy_parser.process_args(inputargs=inputargs))
47
55
 
48
56
 
49
57
  if __name__ == "__main__":
50
58
  mpl.use("TkAgg")
51
- test_fullrunhappy_v3(debug=True, displayplots=True)
59
+ test_fullrunhappy_v3(debug=True, local=True, displayplots=True)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -25,22 +25,30 @@ import rapidtide.workflows.happy_parser as happy_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
27
 
28
- def test_fullrunhappy_v4(debug=False, displayplots=False):
28
+ def test_fullrunhappy_v4(debug=False, local=False, displayplots=False):
29
+ # set input and output directories
30
+ if local:
31
+ exampleroot = "../data/examples/src"
32
+ testtemproot = "./tmp"
33
+ else:
34
+ exampleroot = get_examples_path()
35
+ testtemproot = get_test_temp_path()
36
+
29
37
  # run happy
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
- os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
- os.path.join(get_test_temp_path(), "happyout4"),
39
+ os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
40
+ os.path.join(exampleroot, "sub-HAPPYTEST.json"),
41
+ os.path.join(testtemproot, "happyout4"),
34
42
  "--estweights",
35
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
43
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
36
44
  "--projmask",
37
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
45
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
38
46
  "--mklthreads",
39
47
  "-1",
40
48
  "--model",
41
- "model_revised",
49
+ "model_revised_tf2",
42
50
  "--motionfile",
43
- os.path.join(get_examples_path(), "sub-HAPPYTEST_mcf.par"),
51
+ os.path.join(exampleroot, "sub-HAPPYTEST_mcf.par"),
44
52
  "--aliasedcorrelation",
45
53
  ]
46
54
  happy_workflow.happy_main(happy_parser.process_args(inputargs=inputargs))
@@ -48,4 +56,4 @@ def test_fullrunhappy_v4(debug=False, displayplots=False):
48
56
 
49
57
  if __name__ == "__main__":
50
58
  mpl.use("TkAgg")
51
- test_fullrunhappy_v4(debug=True, displayplots=True)
59
+ test_fullrunhappy_v4(debug=True, local=True, displayplots=True)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -25,16 +25,22 @@ import rapidtide.workflows.happy_parser as happy_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
27
 
28
- def test_fullrunhappy_v4(debug=False, displayplots=False):
28
+ def test_fullrunhappy_v4(debug=False, local=False, displayplots=False):
29
+ # set input and output directories
30
+ if local:
31
+ exampleroot = "../data/examples/src"
32
+ testtemproot = "./tmp"
33
+ else:
34
+ exampleroot = get_examples_path()
35
+ testtemproot = get_test_temp_path()
36
+
29
37
  # run happy
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
- os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
- os.path.join(get_test_temp_path(), "happyout5"),
34
- "--model",
35
- "model_revised",
39
+ os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
40
+ os.path.join(exampleroot, "sub-HAPPYTEST.json"),
41
+ os.path.join(testtemproot, "happyout5"),
36
42
  "--motionfile",
37
- os.path.join(get_examples_path(), "sub-HAPPYTEST_mcf.par"),
43
+ os.path.join(exampleroot, "sub-HAPPYTEST_mcf.par"),
38
44
  "--nomotderiv",
39
45
  "--nomotorthogonalize",
40
46
  "--motfiltorder",
@@ -53,4 +59,4 @@ def test_fullrunhappy_v4(debug=False, displayplots=False):
53
59
 
54
60
  if __name__ == "__main__":
55
61
  mpl.use("TkAgg")
56
- test_fullrunhappy_v4(debug=True, displayplots=True)
62
+ test_fullrunhappy_v4(debug=True, local=True, displayplots=True)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -26,11 +26,19 @@ import rapidtide.workflows.rapidtide_parser as rapidtide_parser
26
26
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
27
27
 
28
28
 
29
- def test_fullrunrapidtide_v1(debug=False, displayplots=False):
29
+ def test_fullrunrapidtide_v1(debug=False, local=False, displayplots=False):
30
+ # set input and output directories
31
+ if local:
32
+ exampleroot = "../data/examples/src"
33
+ testtemproot = "./tmp"
34
+ else:
35
+ exampleroot = get_examples_path()
36
+ testtemproot = get_test_temp_path()
37
+
30
38
  # run rapidtide
31
39
  inputargs = [
32
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST.nii.gz"),
33
- os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST1"),
40
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
41
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST1"),
34
42
  "--spatialfilt",
35
43
  "2",
36
44
  "--simcalcrange",
@@ -46,11 +54,11 @@ def test_fullrunrapidtide_v1(debug=False, displayplots=False):
46
54
  "4.0",
47
55
  ]
48
56
  rapidtide_workflow.rapidtide_main(rapidtide_parser.process_args(inputargs=inputargs))
49
- rapidtide_quality.qualitycheck(os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST1"))
57
+ rapidtide_quality.qualitycheck(os.path.join(testtemproot, "sub-RAPIDTIDETEST1"))
50
58
 
51
59
  inputargs = [
52
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST.nii.gz"),
53
- os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST1_fixval"),
60
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
61
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST1_fixval"),
54
62
  "--spatialfilt",
55
63
  "2",
56
64
  "--simcalcrange",
@@ -70,8 +78,8 @@ def test_fullrunrapidtide_v1(debug=False, displayplots=False):
70
78
  rapidtide_workflow.rapidtide_main(rapidtide_parser.process_args(inputargs=inputargs))
71
79
 
72
80
  inputargs = [
73
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST.nii.gz"),
74
- os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST1_fixmap"),
81
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
82
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST1_fixmap"),
75
83
  "--spatialfilt",
76
84
  "2",
77
85
  "--simcalcrange",
@@ -85,11 +93,11 @@ def test_fullrunrapidtide_v1(debug=False, displayplots=False):
85
93
  "3",
86
94
  "--nodenoise",
87
95
  "--initialdelay",
88
- os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST1_desc-maxtime_map.nii.gz"),
96
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST1_desc-maxtime_map.nii.gz"),
89
97
  ]
90
98
  rapidtide_workflow.rapidtide_main(rapidtide_parser.process_args(inputargs=inputargs))
91
99
 
92
100
 
93
101
  if __name__ == "__main__":
94
102
  mpl.use("TkAgg")
95
- test_fullrunrapidtide_v1(debug=True, displayplots=True)
103
+ test_fullrunrapidtide_v1(debug=True, local=True, displayplots=True)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -25,27 +25,35 @@ import rapidtide.workflows.rapidtide_parser as rapidtide_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
27
 
28
- def test_fullrunrapidtide_v2(debug=False, displayplots=False):
28
+ def test_fullrunrapidtide_v2(debug=False, local=False, displayplots=False):
29
+ # set input and output directories
30
+ if local:
31
+ exampleroot = "../data/examples/src"
32
+ testtemproot = "./tmp"
33
+ else:
34
+ exampleroot = get_examples_path()
35
+ testtemproot = get_test_temp_path()
36
+
29
37
  # run rapidtide
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST.nii.gz"),
32
- os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST2"),
39
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
40
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST2"),
33
41
  "--tincludemask",
34
- os.path.join(get_examples_path(), "tmask3.txt"),
42
+ os.path.join(exampleroot, "tmask3.txt"),
35
43
  "--corrmask",
36
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST_restrictedmask.nii.gz"),
44
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_restrictedmask.nii.gz"),
37
45
  "--globalmeaninclude",
38
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST_brainmask.nii.gz"),
46
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_brainmask.nii.gz"),
39
47
  "--globalmeanexclude",
40
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST_nullmask.nii.gz"),
48
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_nullmask.nii.gz"),
41
49
  "--refineinclude",
42
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST_brainmask.nii.gz"),
50
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_brainmask.nii.gz"),
43
51
  "--refineexclude",
44
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST_nullmask.nii.gz"),
52
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_nullmask.nii.gz"),
45
53
  "--offsetinclude",
46
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST_brainmask.nii.gz"),
54
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_brainmask.nii.gz"),
47
55
  "--offsetexclude",
48
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST_nullmask.nii.gz"),
56
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_nullmask.nii.gz"),
49
57
  "--spatialfilt",
50
58
  "-1",
51
59
  "--savelags",
@@ -74,7 +82,9 @@ def test_fullrunrapidtide_v2(debug=False, displayplots=False):
74
82
  "--refineprenorm",
75
83
  "var",
76
84
  "--motionfile",
77
- os.path.join(get_examples_path(), "fakemotion.par"),
85
+ os.path.join(exampleroot, "fakemotion.par"),
86
+ "--denoisesourcefile",
87
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
78
88
  ]
79
89
  if debug:
80
90
  print(inputargs)
@@ -83,4 +93,4 @@ def test_fullrunrapidtide_v2(debug=False, displayplots=False):
83
93
 
84
94
  if __name__ == "__main__":
85
95
  mpl.use("TkAgg")
86
- test_fullrunrapidtide_v2(debug=True, displayplots=True)
96
+ test_fullrunrapidtide_v2(debug=True, local=True, displayplots=True)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -25,13 +25,21 @@ import rapidtide.workflows.rapidtide_parser as rapidtide_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
27
 
28
- def test_fullrunrapidtide_v3(debug=False, displayplots=False):
28
+ def test_fullrunrapidtide_v3(debug=False, local=False, displayplots=False):
29
+ # set input and output directories
30
+ if local:
31
+ exampleroot = "../data/examples/src"
32
+ testtemproot = "./tmp"
33
+ else:
34
+ exampleroot = get_examples_path()
35
+ testtemproot = get_test_temp_path()
36
+
29
37
  # run rapidtide
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST.nii.gz"),
32
- os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST3"),
39
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
40
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST3"),
33
41
  "--corrmask",
34
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST_restrictedmask.nii.gz:1"),
42
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_restrictedmask.nii.gz:1"),
35
43
  "--maxpasses",
36
44
  "2",
37
45
  "--numnull",
@@ -60,7 +68,7 @@ def test_fullrunrapidtide_v3(debug=False, displayplots=False):
60
68
  "R",
61
69
  "--regressor",
62
70
  os.path.join(
63
- get_examples_path(),
71
+ exampleroot,
64
72
  "sub-RAPIDTIDETEST_desc-oversampledmovingregressor_timeseries.json:pass3",
65
73
  ),
66
74
  ]
@@ -71,4 +79,4 @@ def test_fullrunrapidtide_v3(debug=False, displayplots=False):
71
79
 
72
80
  if __name__ == "__main__":
73
81
  mpl.use("TkAgg")
74
- test_fullrunrapidtide_v3(debug=True, displayplots=True)
82
+ test_fullrunrapidtide_v3(debug=True, local=True, displayplots=True)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -25,18 +25,25 @@ import rapidtide.workflows.rapidtide_parser as rapidtide_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
27
 
28
- def test_fullrunrapidtide_v4(debug=False, displayplots=False):
28
+ def test_fullrunrapidtide_v4(debug=False, local=False, displayplots=False):
29
+ # set input and output directories
30
+ if local:
31
+ exampleroot = "../data/examples/src"
32
+ testtemproot = "./tmp"
33
+ else:
34
+ exampleroot = get_examples_path()
35
+ testtemproot = get_test_temp_path()
36
+
29
37
  # run rapidtide
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-NIRSRAPIDTIDETEST.txt"),
32
- os.path.join(get_test_temp_path(), "sub-NIRSRAPIDTIDETEST4"),
39
+ os.path.join(exampleroot, "sub-NIRSRAPIDTIDETEST.txt"),
40
+ os.path.join(testtemproot, "sub-NIRSRAPIDTIDETEST4"),
33
41
  "--globalmeaninclude",
34
- os.path.join(get_examples_path(), "sub-NIRSRAPIDTIDETEST_mask.txt"),
42
+ os.path.join(exampleroot, "sub-NIRSRAPIDTIDETEST_mask.txt"),
35
43
  "--nirs",
36
44
  "--datatstep",
37
45
  "0.2560",
38
- "--globalmaskmethod",
39
- "variance",
46
+ "--dataiszeromean",
40
47
  "--norefinedelay",
41
48
  "--despecklepasses",
42
49
  "0",
@@ -59,4 +66,4 @@ def test_fullrunrapidtide_v4(debug=False, displayplots=False):
59
66
 
60
67
  if __name__ == "__main__":
61
68
  mpl.use("TkAgg")
62
- test_fullrunrapidtide_v4(debug=True, displayplots=True)
69
+ test_fullrunrapidtide_v4(debug=True, local=True, displayplots=True)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -25,11 +25,19 @@ import rapidtide.workflows.rapidtide_parser as rapidtide_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
27
 
28
- def test_fullrunrapidtide_v5(debug=False, displayplots=False):
28
+ def test_fullrunrapidtide_v5(debug=False, local=False, displayplots=False):
29
+ # set input and output directories
30
+ if local:
31
+ exampleroot = "../data/examples/src"
32
+ testtemproot = "./tmp"
33
+ else:
34
+ exampleroot = get_examples_path()
35
+ testtemproot = get_test_temp_path()
36
+
29
37
  # run rapidtide
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST_cifti.ptseries.nii"),
32
- os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST5"),
39
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_cifti.ptseries.nii"),
40
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST5"),
33
41
  "--nprocs",
34
42
  "-1",
35
43
  "--passes",
@@ -46,4 +54,4 @@ def test_fullrunrapidtide_v5(debug=False, displayplots=False):
46
54
 
47
55
  if __name__ == "__main__":
48
56
  mpl.use("TkAgg")
49
- test_fullrunrapidtide_v5(debug=True, displayplots=True)
57
+ test_fullrunrapidtide_v5(debug=True, local=True, displayplots=True)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -28,11 +28,19 @@ import rapidtide.workflows.retroregress as rapidtide_retroregress
28
28
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
29
29
 
30
30
 
31
- def test_fullrunrapidtide_v6(debug=False, displayplots=False):
31
+ def test_fullrunrapidtide_v6(debug=False, local=False, displayplots=False):
32
+ # set input and output directories
33
+ if local:
34
+ exampleroot = "../data/examples/src"
35
+ testtemproot = "./tmp"
36
+ else:
37
+ exampleroot = get_examples_path()
38
+ testtemproot = get_test_temp_path()
39
+
32
40
  # run rapidtide
33
41
  inputargs = [
34
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST.nii.gz"),
35
- os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST6"),
42
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
43
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST6"),
36
44
  "--spatialfilt",
37
45
  "2",
38
46
  "--simcalcrange",
@@ -54,10 +62,10 @@ def test_fullrunrapidtide_v6(debug=False, displayplots=False):
54
62
  rapidtide_workflow.rapidtide_main(rapidtide_parser.process_args(inputargs=inputargs))
55
63
 
56
64
  inputargs = [
57
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST.nii.gz"),
58
- os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST6"),
65
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
66
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST6"),
59
67
  "--alternateoutput",
60
- os.path.join(get_test_temp_path(), "2deriv"),
68
+ os.path.join(testtemproot, "2deriv"),
61
69
  "--nprocs",
62
70
  "-1",
63
71
  "--regressderivs",
@@ -69,10 +77,10 @@ def test_fullrunrapidtide_v6(debug=False, displayplots=False):
69
77
  rapidtide_retroregress.retroregress(rapidtide_retroregress.process_args(inputargs=inputargs))
70
78
 
71
79
  inputargs = [
72
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST.nii.gz"),
73
- os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST6"),
80
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
81
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST6"),
74
82
  "--alternateoutput",
75
- os.path.join(get_test_temp_path(), "1deriv_refined_corrected"),
83
+ os.path.join(testtemproot, "1deriv_refined_corrected"),
76
84
  "--nprocs",
77
85
  "1",
78
86
  "--regressderivs",
@@ -85,10 +93,10 @@ def test_fullrunrapidtide_v6(debug=False, displayplots=False):
85
93
  rapidtide_retroregress.retroregress(rapidtide_retroregress.process_args(inputargs=inputargs))
86
94
 
87
95
  inputargs = [
88
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST.nii.gz"),
89
- os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST6"),
96
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
97
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST6"),
90
98
  "--alternateoutput",
91
- os.path.join(get_test_temp_path(), "concordance"),
99
+ os.path.join(testtemproot, "concordance"),
92
100
  "--nprocs",
93
101
  "-1",
94
102
  "--regressderivs",
@@ -118,8 +126,8 @@ def test_fullrunrapidtide_v6(debug=False, displayplots=False):
118
126
  "lfofilterR",
119
127
  ]:
120
128
  print(f"Testing map={map}")
121
- filename1 = os.path.join(get_test_temp_path(), f"sub-RAPIDTIDETEST6_desc-{map}_map.nii.gz")
122
- filename2 = os.path.join(get_test_temp_path(), f"concordance_desc-{map}_map.nii.gz")
129
+ filename1 = os.path.join(testtemproot, f"sub-RAPIDTIDETEST6_desc-{map}_map.nii.gz")
130
+ filename2 = os.path.join(testtemproot, f"concordance_desc-{map}_map.nii.gz")
123
131
  assert tide_io.checkniftifilematch(
124
132
  filename1,
125
133
  filename2,
@@ -132,4 +140,4 @@ def test_fullrunrapidtide_v6(debug=False, displayplots=False):
132
140
 
133
141
  if __name__ == "__main__":
134
142
  mpl.use("TkAgg")
135
- test_fullrunrapidtide_v6(debug=True, displayplots=True)
143
+ test_fullrunrapidtide_v6(debug=True, local=True, displayplots=True)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2018-2024 Blaise Frederick
4
+ # Copyright 2018-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.