neuropsychology / NeuroKit

NeuroKit2: The Python Toolbox for Neurophysiological Signal Processing
https://neuropsychology.github.io/NeuroKit
MIT License
1.6k stars 425 forks source link

Improving continuous integration and software stability #214

Closed DominiqueMakowski closed 4 years ago

DominiqueMakowski commented 4 years ago

We need to re-run all the notebooks and examples in the docs as some of them might be broken with the recent updates.

Also, note this comment: https://github.com/spatialaudio/nbsphinx/issues/447#issuecomment-630766064 about the %matplotlib inline that we can probably remove.

JanCBrammer commented 4 years ago

Are we using doctest already to check if the examples work?

It wouldn't hurt to also check all the arguments in the docstrings. I noticed that some include arguments that are no longer used, or that new arguments are missing.

DominiqueMakowski commented 4 years ago

Yeah, initially doctest was supposed to run, but then... we need to look again into that

I wonder if there is any tool that checks if like all functions are documented, and that the documentation format is okay (does it have a title, a description, are all the parameters documented, do the examples run etc.). Something like R has 😬

JanCBrammer commented 4 years ago

I wonder if there is any tool that checks if like all functions are documented, and that the documentation format is okay (does it have a title, a description, are all the parameters documented, do the examples run etc.).

Weirdly enough there doesn't seem to be a tool that does all this. Or I wasn't looking hard enough. There are tools that check if docstrings are properly formatted, but not if they exist in the first place and if they contain all valid arguments.

DominiqueMakowski commented 4 years ago

@Tam-Pham is currently trying to get doctest to run, and I'm watching from afar 'cause it looks quite hellish 😅

JanCBrammer commented 4 years ago

Did some more digging. There seems to be a pylint extension called "Parameter documentation checker" that does what we want.

Tam-Pham commented 4 years ago

Hi all,

After combing through the internet, I had added in a few lines of codes in our travis.yml and pytest.ini files. The changes can be found here ddceee3896df948f11b196f33f5be1bf32a472bf

I don't know if it's the best way but it is working. The code is basically combing through each folder to check each docstrings in our function files.

Nevertheless, the integration time could be really slow if we count on travis to do the work (since for each time, it has to run through both the tests and the doctests).

So @zen-juen and I are building the doctests locally, by only keeping the doctest in pytest.ini

[pytest]
addopts = --doctest-modules
doctest_optionflags= NORMALIZE_WHITESPACE IGNORE_EXCEPTION_DETAIL

and run through each folder one by one in our system. For instance:

C:\Users\Pham Thanh Tam\GitHub\NeuroKit>pytest --doctest-glob='*.py' neurokit2/complexity

This manual work should be done only for the first time running. In the future, we can count on travis to detect any errors.

zen-juen commented 4 years ago

Following what @Tam-Pham said we'll probably put up a more concrete tutorial on how to run this for future contributors and also make a summary of docstring errors that you might expect to avoid 😄

JanCBrammer commented 4 years ago

put up a more concrete tutorial

@zen-juen, that reminds me, do we mention somewhere already that we are using NumPy style docstrings?

DominiqueMakowski commented 4 years ago

we should add that to the contribution guide indeed

DominiqueMakowski commented 4 years ago

https://dan.yeaw.me/posts/github-actions-automate-your-python-development-workflow/ useful link for future reference

DominiqueMakowski commented 4 years ago
DominiqueMakowski commented 4 years ago

This is just flake8, pylint is like even worse ^^

neurokit2\bio\bio_analyze.py:56:128: E501 line too long (129 > 127 characters)
neurokit2\bio\bio_analyze.py:59:128: E501 line too long (141 > 127 characters)
neurokit2\complexity\complexity_delay.py:6:1: F401 'pandas as pd' imported but unused
neurokit2\complexity\complexity_delay.py:21:128: E501 line too long (132 > 127 characters)
neurokit2\complexity\complexity_delay.py:23:128: E501 line too long (648 > 127 characters)
neurokit2\complexity\complexity_delay.py:67:128: E501 line too long (306 > 127 characters)
neurokit2\complexity\complexity_delay.py:68:128: E501 line too long (161 > 127 characters)
neurokit2\complexity\complexity_delay.py:69:128: E501 line too long (186 > 127 characters)
neurokit2\complexity\complexity_delay.py:202:9: F841 local variable 'line' is assigned to but never used
neurokit2\complexity\complexity_dimension.py:18:128: E501 line too long (282 > 127 characters)
neurokit2\complexity\complexity_dimension.py:58:128: E501 line too long (160 > 127 characters)
neurokit2\complexity\complexity_embedding.py:4:1: F401 'mpl_toolkits.mplot3d' imported but unused
neurokit2\complexity\complexity_embedding.py:12:128: E501 line too long (224 > 127 characters)
neurokit2\complexity\complexity_embedding.py:14:128: E501 line too long (444 > 127 characters)
neurokit2\complexity\complexity_embedding.py:16:128: E501 line too long (532 > 127 characters)
neurokit2\complexity\complexity_embedding.py:26:128: E501 line too long (279 > 127 characters)
neurokit2\complexity\complexity_embedding.py:28:128: E501 line too long (294 > 127 characters)
neurokit2\complexity\complexity_embedding.py:62:128: E501 line too long (306 > 127 characters)
neurokit2\complexity\complexity_optimize.py:11:1: F401 '.complexity_r._optimize_r' imported but unused
neurokit2\complexity\complexity_optimize.py:63:128: E501 line too long (306 > 127 characters)
neurokit2\complexity\complexity_optimize.py:64:128: E501 line too long (161 > 127 characters)
neurokit2\complexity\complexity_optimize.py:65:128: E501 line too long (186 > 127 characters)
neurokit2\complexity\complexity_optimize.py:66:128: E501 line too long (160 > 127 characters)
neurokit2\complexity\complexity_optimize.py:67:128: E501 line too long (210 > 127 characters)
neurokit2\complexity\complexity_optimize.py:293:128: E501 line too long (306 > 127 characters)
neurokit2\complexity\complexity_optimize.py:439:128: E501 line too long (138 > 127 characters)
neurokit2\complexity\complexity_r.py:17:128: E501 line too long (279 > 127 characters)
neurokit2\complexity\complexity_r.py:19:128: E501 line too long (294 > 127 characters)
neurokit2\complexity\complexity_r.py:21:128: E501 line too long (141 > 127 characters)
neurokit2\complexity\complexity_r.py:45:128: E501 line too long (210 > 127 characters)
neurokit2\complexity\complexity_simulate.py:20:128: E501 line too long (131 > 127 characters)
neurokit2\complexity\complexity_simulate.py:162:9: W503 line break before binary operator
neurokit2\complexity\complexity_simulate.py:163:9: W503 line break before binary operator
neurokit2\complexity\entropy_approximate.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\complexity\entropy_approximate.py:12:128: E501 line too long (515 > 127 characters)
neurokit2\complexity\entropy_approximate.py:14:128: E501 line too long (148 > 127 characters)
neurokit2\complexity\entropy_approximate.py:22:128: E501 line too long (279 > 127 characters)
neurokit2\complexity\entropy_approximate.py:24:128: E501 line too long (294 > 127 characters)
neurokit2\complexity\entropy_approximate.py:26:128: E501 line too long (220 > 127 characters)
neurokit2\complexity\entropy_approximate.py:54:128: E501 line too long (210 > 127 characters)
neurokit2\complexity\entropy_approximate.py:55:128: E501 line too long (170 > 127 characters)
neurokit2\complexity\entropy_fuzzy.py:2:1: F401 'numpy as np' imported but unused
neurokit2\complexity\entropy_fuzzy.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\complexity\entropy_fuzzy.py:21:128: E501 line too long (279 > 127 characters)
neurokit2\complexity\entropy_fuzzy.py:23:128: E501 line too long (294 > 127 characters)
neurokit2\complexity\entropy_fuzzy.py:25:128: E501 line too long (182 > 127 characters)
neurokit2\complexity\entropy_multiscale.py:4:1: F401 'pandas as pd' imported but unused
neurokit2\complexity\entropy_multiscale.py:16:128: E501 line too long (209 > 127 characters)
neurokit2\complexity\entropy_multiscale.py:18:128: E501 line too long (245 > 127 characters)
neurokit2\complexity\entropy_multiscale.py:25:128: E501 line too long (370 > 127 characters)
neurokit2\complexity\entropy_multiscale.py:27:128: E501 line too long (294 > 127 characters)
neurokit2\complexity\entropy_multiscale.py:29:128: E501 line too long (182 > 127 characters)
neurokit2\complexity\entropy_multiscale.py:44:128: E501 line too long (213 > 127 characters)
neurokit2\complexity\entropy_multiscale.py:74:128: E501 line too long (249 > 127 characters)
neurokit2\complexity\entropy_sample.py:2:1: F401 'numpy as np' imported but unused
neurokit2\complexity\entropy_sample.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\complexity\entropy_sample.py:21:128: E501 line too long (279 > 127 characters)
neurokit2\complexity\entropy_sample.py:23:128: E501 line too long (294 > 127 characters)
neurokit2\complexity\entropy_sample.py:25:128: E501 line too long (182 > 127 characters)
neurokit2\complexity\entropy_shannon.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\complexity\entropy_shannon.py:10:128: E501 line too long (353 > 127 characters)
neurokit2\complexity\fractal_capacity.py:1:1: E266 too many leading '#' for block comment
neurokit2\complexity\fractal_capacity.py:28:1: E266 too many leading '#' for block comment
neurokit2\complexity\fractal_capacity.py:75:1: E266 too many leading '#' for block comment
neurokit2\complexity\fractal_capacity.py:76:1: E266 too many leading '#' for block comment
neurokit2\complexity\fractal_capacity.py:77:1: E266 too many leading '#' for block comment
neurokit2\complexity\fractal_correlation.py:22:128: E501 line too long (279 > 127 characters)
neurokit2\complexity\fractal_correlation.py:24:128: E501 line too long (294 > 127 characters)
neurokit2\complexity\fractal_correlation.py:26:128: E501 line too long (244 > 127 characters)
neurokit2\complexity\fractal_correlation.py:54:128: E501 line too long (233 > 127 characters)
neurokit2\complexity\fractal_correlation.py:55:128: E501 line too long (196 > 127 characters)
neurokit2\complexity\fractal_dfa.py:14:128: E501 line too long (171 > 127 characters)
neurokit2\complexity\fractal_dfa.py:17:128: E501 line too long (189 > 127 characters)
neurokit2\complexity\fractal_dfa.py:24:128: E501 line too long (357 > 127 characters)
neurokit2\complexity\fractal_dfa.py:29:128: E501 line too long (449 > 127 characters)
neurokit2\complexity\fractal_dfa.py:33:128: E501 line too long (134 > 127 characters)
neurokit2\complexity\fractal_dfa.py:35:128: E501 line too long (310 > 127 characters)
neurokit2\complexity\fractal_dfa.py:57:128: E501 line too long (136 > 127 characters)
neurokit2\complexity\fractal_dfa.py:58:128: E501 line too long (236 > 127 characters)
neurokit2\complexity\fractal_mandelbrot.py:19:128: E501 line too long (195 > 127 characters)
neurokit2\complexity\fractal_mandelbrot.py:37:128: E501 line too long (129 > 127 characters)
neurokit2\complexity\fractal_mandelbrot.py:97:24: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
neurokit2\complexity\fractal_mandelbrot.py:190:27: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
neurokit2\complexity\utils.py:60:128: E501 line too long (140 > 127 characters)
neurokit2\complexity\utils.py:117:128: E501 line too long (130 > 127 characters)
neurokit2\data\data.py:11:128: E501 line too long (170 > 127 characters)
neurokit2\data\data.py:16:128: E501 line too long (139 > 127 characters)
neurokit2\data\read_acqknowledge.py:21:128: E501 line too long (557 > 127 characters)
neurokit2\data\read_acqknowledge.py:25:128: E501 line too long (196 > 127 characters)
neurokit2\ecg\ecg_clean.py:165:128: E501 line too long (214 > 127 characters)
neurokit2\ecg\ecg_clean.py:201:128: E501 line too long (136 > 127 characters)
neurokit2\ecg\ecg_clean.py:202:128: E501 line too long (173 > 127 characters)
neurokit2\ecg\ecg_delineate.py:22:128: E501 line too long (648 > 127 characters)
neurokit2\ecg\ecg_delineate.py:29:128: E501 line too long (135 > 127 characters)
neurokit2\ecg\ecg_delineate.py:34:128: E501 line too long (143 > 127 characters)
neurokit2\ecg\ecg_delineate.py:80:128: E501 line too long (208 > 127 characters)
neurokit2\ecg\ecg_delineate.py:599:5: F841 local variable 'tppeaks_pairs' is assigned to but never used
neurokit2\ecg\ecg_delineate.py:600:5: F841 local variable 'tppeaks' is assigned to but never used
neurokit2\ecg\ecg_delineate.py:814:128: E501 line too long (135 > 127 characters)
neurokit2\ecg\ecg_delineate.py:899:5: F841 local variable 'distance_columns' is assigned to but never used
neurokit2\ecg\ecg_eventrelated.py:2:1: F401 'numpy as np' imported but unused
neurokit2\ecg\ecg_findpeaks.py:16:128: E501 line too long (149 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:27:128: E501 line too long (164 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:93:128: E501 line too long (203 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:95:128: E501 line too long (136 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:96:128: E501 line too long (170 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:97:128: E501 line too long (188 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:387:128: E501 line too long (147 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:437:128: E501 line too long (155 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:613:128: E501 line too long (136 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:614:128: E501 line too long (173 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:728:128: E501 line too long (262 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:777:128: E501 line too long (214 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:889:128: E501 line too long (206 > 127 characters)
neurokit2\ecg\ecg_findpeaks.py:890:128: E501 line too long (160 > 127 characters)
neurokit2\ecg\ecg_peaks.py:59:128: E501 line too long (182 > 127 characters)
neurokit2\ecg\ecg_peaks.py:61:128: E501 line too long (154 > 127 characters)
neurokit2\ecg\ecg_peaks.py:62:128: E501 line too long (136 > 127 characters)
neurokit2\ecg\ecg_peaks.py:63:128: E501 line too long (173 > 127 characters)
neurokit2\ecg\ecg_quality.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\ecg\ecg_quality.py:4:1: F401 'scipy.spatial' imported but unused
neurokit2\ecg\ecg_quality.py:6:1: F401 '..epochs.epochs_create' imported but unused
neurokit2\ecg\ecg_rsa.py:15:128: E501 line too long (644 > 127 characters)
neurokit2\ecg\ecg_rsa.py:17:128: E501 line too long (1034 > 127 characters)
neurokit2\ecg\ecg_rsa.py:19:128: E501 line too long (737 > 127 characters)
neurokit2\ecg\ecg_rsa.py:89:128: E501 line too long (195 > 127 characters)
neurokit2\ecg\ecg_rsa.py:90:128: E501 line too long (216 > 127 characters)
neurokit2\ecg\ecg_rsa.py:91:128: E501 line too long (212 > 127 characters)
neurokit2\ecg\ecg_rsa.py:220:128: E501 line too long (197 > 127 characters)
neurokit2\ecg\ecg_rsp.py:47:128: E501 line too long (137 > 127 characters)
neurokit2\ecg\ecg_rsp.py:52:128: E501 line too long (218 > 127 characters)
neurokit2\ecg\ecg_rsp.py:53:128: E501 line too long (129 > 127 characters)
neurokit2\ecg\ecg_rsp.py:54:128: E501 line too long (252 > 127 characters)
neurokit2\ecg\ecg_rsp.py:55:128: E501 line too long (155 > 127 characters)
neurokit2\ecg\ecg_rsp.py:61:128: E501 line too long (134 > 127 characters)
neurokit2\ecg\ecg_rsp.py:69:128: E501 line too long (140 > 127 characters)
neurokit2\ecg\ecg_simulate.py:16:128: E501 line too long (238 > 127 characters)
neurokit2\ecg\ecg_simulate.py:64:128: E501 line too long (209 > 127 characters)
neurokit2\ecg\ecg_simulate.py:220:128: E501 line too long (151 > 127 characters)
neurokit2\ecg\ecg_simulate.py:221:13: W503 line break before binary operator
neurokit2\ecg\ecg_simulate.py:222:13: W503 line break before binary operator
neurokit2\ecg\ecg_simulate.py:223:13: W503 line break before binary operator
neurokit2\ecg\ecg_simulate.py:224:13: W503 line break before binary operator
neurokit2\ecg\ecg_simulate.py:233:5: F841 local variable 'fid' is assigned to but never used
neurokit2\ecg\ecg_simulate.py:238:5: F841 local variable 'tstep' is assigned to but never used
neurokit2\ecg\ecg_simulate.py:273:5: F841 local variable 'T' is assigned to but never used
neurokit2\ecg\ecg_simulate.py:292:5: F841 local variable 'xi' is assigned to but never used
neurokit2\ecg\ecg_simulate.py:293:5: F841 local variable 'yi' is assigned to but never used
neurokit2\eda\eda_analyze.py:53:128: E501 line too long (141 > 127 characters)
neurokit2\eda\eda_autocor.py:2:1: F401 'numpy as np' imported but unused
neurokit2\eda\eda_autocor.py:45:128: E501 line too long (263 > 127 characters)
neurokit2\eda\eda_changepoints.py:40:128: E501 line too long (263 > 127 characters)
neurokit2\eda\eda_clean.py:37:128: E501 line too long (193 > 127 characters)
neurokit2\eda\eda_eventrelated.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\eda\eda_eventrelated.py:57:128: E501 line too long (130 > 127 characters)
neurokit2\eda\eda_eventrelated.py:67:128: E501 line too long (141 > 127 characters)
neurokit2\eda\eda_findpeaks.py:3:1: F401 'matplotlib.pyplot as plt' imported but unused
neurokit2\eda\eda_findpeaks.py:6:1: F401 'scipy.signal' imported but unused
neurokit2\eda\eda_findpeaks.py:8:1: F401 '..signal.signal_formatpeaks' imported but unused
neurokit2\eda\eda_findpeaks.py:28:128: E501 line too long (160 > 127 characters)
neurokit2\eda\eda_findpeaks.py:64:128: E501 line too long (198 > 127 characters)
neurokit2\eda\eda_findpeaks.py:173:128: E501 line too long (198 > 127 characters)
neurokit2\eda\eda_fixpeaks.py:3:1: F401 'matplotlib.pyplot as plt' imported but unused
neurokit2\eda\eda_fixpeaks.py:4:1: F401 'numpy as np' imported but unused
neurokit2\eda\eda_fixpeaks.py:5:1: F401 'pandas as pd' imported but unused
neurokit2\eda\eda_fixpeaks.py:6:1: F401 'scipy.signal' imported but unused
neurokit2\eda\eda_fixpeaks.py:15:128: E501 line too long (161 > 127 characters)
neurokit2\eda\eda_peaks.py:34:128: E501 line too long (160 > 127 characters)
neurokit2\eda\eda_peaks.py:74:128: E501 line too long (198 > 127 characters)
neurokit2\eda\eda_phasic.py:12:128: E501 line too long (184 > 127 characters)
neurokit2\eda\eda_phasic.py:46:128: E501 line too long (140 > 127 characters)
neurokit2\eda\eda_phasic.py:60:128: E501 line too long (225 > 127 characters)
neurokit2\eda\eda_phasic.py:61:128: E501 line too long (215 > 127 characters)
neurokit2\eda\eda_phasic.py:235:9: F841 local variable 'obj' is assigned to but never used
neurokit2\eda\eda_phasic.py:243:5: F841 local variable 'smna_driver' is assigned to but never used
neurokit2\eda\eda_phasic.py:245:5: F841 local variable 'residuals' is assigned to but never used
neurokit2\eda\eda_process.py:37:128: E501 line too long (193 > 127 characters)
neurokit2\eda\eda_process.py:40:128: E501 line too long (129 > 127 characters)
neurokit2\eda\eda_simulate.py:52:128: E501 line too long (181 > 127 characters)
neurokit2\eeg\mne_channel_add.py:10:128: E501 line too long (143 > 127 characters)
neurokit2\eeg\mne_channel_add.py:19:128: E501 line too long (161 > 127 characters)
neurokit2\eeg\mne_channel_add.py:23:128: E501 line too long (292 > 127 characters)
neurokit2\eeg\mne_channel_add.py:39:128: E501 line too long (135 > 127 characters)
neurokit2\eeg\mne_channel_add.py:42:128: E501 line too long (153 > 127 characters)
neurokit2\eeg\mne_channel_extract.py:2:1: F401 'numpy as np' imported but unused
neurokit2\eeg\mne_channel_extract.py:29:128: E501 line too long (134 > 127 characters)
neurokit2\emg\emg_activation.py:25:128: E501 line too long (218 > 127 characters)
neurokit2\emg\emg_amplitude.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\emg\emg_amplitude.py:4:1: F401 'scipy.signal' imported but unused
neurokit2\emg\emg_amplitude.py:13:128: E501 line too long (131 > 127 characters)
neurokit2\emg\emg_amplitude.py:68:128: E501 line too long (186 > 127 characters)
neurokit2\emg\emg_amplitude.py:89:128: E501 line too long (182 > 127 characters)
neurokit2\emg\emg_analyze.py:52:128: E501 line too long (129 > 127 characters)
neurokit2\emg\emg_eventrelated.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\emg\emg_eventrelated.py:49:128: E501 line too long (128 > 127 characters)
neurokit2\emg\emg_simulate.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\epochs\epochs_create.py:36:128: E501 line too long (166 > 127 characters)
neurokit2\epochs\epochs_create.py:62:128: E501 line too long (141 > 127 characters)
neurokit2\epochs\epochs_plot.py:3:1: F401 'numpy as np' imported but unused
neurokit2\epochs\epochs_plot.py:4:1: F401 'pandas as pd' imported but unused
neurokit2\epochs\epochs_plot.py:38:128: E501 line too long (141 > 127 characters)
neurokit2\epochs\epochs_to_df.py:35:128: E501 line too long (141 > 127 characters)
neurokit2\events\events_find.py:5:1: F401 'pandas as pd' imported but unused
neurokit2\events\events_find.py:34:128: E501 line too long (280 > 127 characters)
neurokit2\events\events_find.py:40:128: E501 line too long (195 > 127 characters)
neurokit2\events\events_find.py:42:128: E501 line too long (185 > 127 characters)
neurokit2\events\events_find.py:51:128: E501 line too long (190 > 127 characters)
neurokit2\events\events_find.py:66:128: E501 line too long (139 > 127 characters)
neurokit2\events\events_find.py:77:128: E501 line too long (131 > 127 characters)
neurokit2\events\events_find.py:132:13: W503 line break before binary operator
neurokit2\events\events_find.py:133:13: W503 line break before binary operator
neurokit2\events\events_find.py:134:13: W503 line break before binary operator
neurokit2\events\events_find.py:135:13: W503 line break before binary operator
neurokit2\events\events_find.py:141:13: W503 line break before binary operator
neurokit2\events\events_find.py:142:13: W503 line break before binary operator
neurokit2\events\events_find.py:143:13: W503 line break before binary operator
neurokit2\events\events_find.py:144:13: W503 line break before binary operator
neurokit2\events\events_find.py:145:13: W503 line break before binary operator
neurokit2\events\events_find.py:146:13: W503 line break before binary operator
neurokit2\events\events_find.py:156:17: W503 line break before binary operator
neurokit2\events\events_find.py:157:17: W503 line break before binary operator
neurokit2\events\events_find.py:158:17: W503 line break before binary operator
neurokit2\events\events_find.py:159:17: W503 line break before binary operator
neurokit2\events\events_find.py:160:17: W503 line break before binary operator
neurokit2\events\events_find.py:161:17: W503 line break before binary operator
neurokit2\events\events_plot.py:15:128: E501 line too long (199 > 127 characters)
neurokit2\hrv\hrv_frequency.py:128:128: E501 line too long (160 > 127 characters)
neurokit2\hrv\hrv_frequency.py:129:21: W503 line break before binary operator
neurokit2\hrv\hrv_frequency.py:130:21: W503 line break before binary operator
neurokit2\hrv\hrv_nonlinear.py:36:128: E501 line too long (211 > 127 characters)
neurokit2\hrv\hrv_nonlinear.py:37:128: E501 line too long (168 > 127 characters)
neurokit2\hrv\hrv_nonlinear.py:39:128: E501 line too long (153 > 127 characters)
neurokit2\hrv\hrv_nonlinear.py:41:128: E501 line too long (173 > 127 characters)
neurokit2\hrv\hrv_time.py:38:128: E501 line too long (135 > 127 characters)
neurokit2\hrv\hrv_time.py:41:128: E501 line too long (172 > 127 characters)
neurokit2\hrv\hrv_time.py:44:128: E501 line too long (281 > 127 characters)
neurokit2\hrv\hrv_time.py:45:128: E501 line too long (139 > 127 characters)
neurokit2\ppg\ppg_findpeaks.py:7:1: F401 '..signal.signal_formatpeaks' imported but unused
neurokit2\rsp\rsp_amplitude.py:2:1: F401 'numpy as np' imported but unused
neurokit2\rsp\rsp_amplitude.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\rsp\rsp_analyze.py:53:128: E501 line too long (141 > 127 characters)
neurokit2\rsp\rsp_clean.py:45:128: E501 line too long (199 > 127 characters)
neurokit2\rsp\rsp_eventrelated.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\rsp\rsp_eventrelated.py:72:128: E501 line too long (141 > 127 characters)
neurokit2\rsp\rsp_fixpeaks.py:2:1: F401 'numpy as np' imported but unused
neurokit2\rsp\rsp_fixpeaks.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\rsp\rsp_fixpeaks.py:12:128: E501 line too long (161 > 127 characters)
neurokit2\rsp\rsp_peaks.py:2:1: F401 'numpy as np' imported but unused
neurokit2\rsp\rsp_peaks.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\rsp\rsp_peaks.py:14:128: E501 line too long (200 > 127 characters)
neurokit2\rsp\rsp_rrv.py:27:128: E501 line too long (221 > 127 characters)
neurokit2\rsp\rsp_rrv.py:39:128: E501 line too long (143 > 127 characters)
neurokit2\rsp\rsp_rrv.py:46:128: E501 line too long (189 > 127 characters)
neurokit2\rsp\rsp_rrv.py:47:128: E501 line too long (177 > 127 characters)
neurokit2\rsp\rsp_rrv.py:48:128: E501 line too long (136 > 127 characters)
neurokit2\rsp\rsp_rrv.py:51:128: E501 line too long (270 > 127 characters)
neurokit2\rsp\rsp_rrv.py:52:128: E501 line too long (129 > 127 characters)
neurokit2\rsp\rsp_rrv.py:144:128: E501 line too long (154 > 127 characters)
neurokit2\rsp\rsp_rrv.py:145:21: W503 line break before binary operator
neurokit2\rsp\rsp_rrv.py:146:21: W503 line break before binary operator
neurokit2\signal\signal_changepoints.py:32:128: E501 line too long (195 > 127 characters)
neurokit2\signal\signal_changepoints.py:150:13: W503 line break before binary operator
neurokit2\signal\signal_changepoints.py:151:13: W503 line break before binary operator
neurokit2\signal\signal_changepoints.py:152:13: W503 line break before binary operator
neurokit2\signal\signal_decompose.py:53:128: E501 line too long (135 > 127 characters)
neurokit2\signal\signal_detrend.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\signal\signal_detrend.py:13:128: E501 line too long (296 > 127 characters)
neurokit2\signal\signal_detrend.py:20:128: E501 line too long (370 > 127 characters)
neurokit2\signal\signal_detrend.py:22:128: E501 line too long (323 > 127 characters)
neurokit2\signal\signal_detrend.py:28:128: E501 line too long (320 > 127 characters)
neurokit2\signal\signal_detrend.py:76:128: E501 line too long (244 > 127 characters)
neurokit2\signal\signal_distort.py:78:128: E501 line too long (279 > 127 characters)
neurokit2\signal\signal_distort.py:82:128: E501 line too long (258 > 127 characters)
neurokit2\signal\signal_filter.py:19:128: E501 line too long (159 > 127 characters)
neurokit2\signal\signal_filter.py:33:128: E501 line too long (319 > 127 characters)
neurokit2\signal\signal_filter.py:37:128: E501 line too long (231 > 127 characters)
neurokit2\signal\signal_filter.py:60:128: E501 line too long (604 > 127 characters)
neurokit2\signal\signal_filter.py:64:128: E501 line too long (597 > 127 characters)
neurokit2\signal\signal_filter.py:72:128: E501 line too long (783 > 127 characters)
neurokit2\signal\signal_filter.py:114:128: E501 line too long (240 > 127 characters)
neurokit2\signal\signal_findpeaks.py:8:1: F401 '.signal_zerocrossings.signal_zerocrossings' imported but unused
neurokit2\signal\signal_findpeaks.py:24:128: E501 line too long (144 > 127 characters)
neurokit2\signal\signal_findpeaks.py:31:128: E501 line too long (209 > 127 characters)
neurokit2\signal\signal_findpeaks.py:35:128: E501 line too long (434 > 127 characters)
neurokit2\signal\signal_findpeaks.py:41:128: E501 line too long (166 > 127 characters)
neurokit2\signal\signal_findpeaks.py:42:128: E501 line too long (176 > 127 characters)
neurokit2\signal\signal_findpeaks.py:75:128: E501 line too long (152 > 127 characters)
neurokit2\signal\signal_interpolate.py:48:128: E501 line too long (319 > 127 characters)
neurokit2\signal\signal_merge.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\signal\signal_phase.py:5:1: F401 'pandas as pd' imported but unused
neurokit2\signal\signal_plot.py:36:128: E501 line too long (229 > 127 characters)
neurokit2\signal\signal_power.py:6:1: F401 'scipy.signal' imported but unused
neurokit2\signal\signal_power.py:128:128: E501 line too long (129 > 127 characters)
neurokit2\signal\signal_psd.py:28:128: E501 line too long (265 > 127 characters)
neurokit2\signal\signal_psd.py:101:128: E501 line too long (225 > 127 characters)
neurokit2\signal\signal_resample.py:14:128: E501 line too long (266 > 127 characters)
neurokit2\signal\signal_resample.py:25:128: E501 line too long (478 > 127 characters)
neurokit2\signal\signal_resample.py:41:128: E501 line too long (133 > 127 characters)
neurokit2\signal\signal_resample.py:48:128: E501 line too long (150 > 127 characters)
neurokit2\signal\signal_resample.py:52:128: E501 line too long (129 > 127 characters)
neurokit2\signal\signal_resample.py:55:128: E501 line too long (207 > 127 characters)
neurokit2\signal\signal_resample.py:59:128: E501 line too long (129 > 127 characters)
neurokit2\signal\signal_simulate.py:39:128: E501 line too long (222 > 127 characters)
neurokit2\signal\signal_smooth.py:54:128: E501 line too long (528 > 127 characters)
neurokit2\signal\signal_synchrony.py:6:1: F401 '.signal_resample.signal_resample' imported but unused
neurokit2\signal\signal_synchrony.py:13:128: E501 line too long (175 > 127 characters)
neurokit2\signal\signal_synchrony.py:16:128: E501 line too long (208 > 127 characters)
neurokit2\signal\signal_synchrony.py:18:128: E501 line too long (216 > 127 characters)
neurokit2\stats\correlation.py:4:1: F401 'pandas as pd' imported but unused
neurokit2\stats\fit_loess.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\stats\fit_loess.py:43:128: E501 line too long (154 > 127 characters)
neurokit2\stats\fit_mixture.py:2:1: F401 'numpy as np' imported but unused
neurokit2\stats\fit_polynomial.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\stats\fit_polynomial.py:42:128: E501 line too long (308 > 127 characters)
neurokit2\stats\hdi.py:13:128: E501 line too long (536 > 127 characters)
neurokit2\stats\mutual_information.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\stats\mutual_information.py:169:9: W503 line break before binary operator
neurokit2\stats\mutual_information.py:170:9: W503 line break before binary operator
neurokit2\stats\mutual_information.py:171:9: W503 line break before binary operator
neurokit2\stats\rescale.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\stats\standardize.py:3:1: F401 'pandas as pd' imported but unused
neurokit2\stats\summary.py:4:1: F401 'pandas as pd' imported but unused
neurokit2\stats\summary.py:5:1: F401 'scipy.stats' imported but unused
DominiqueMakowski commented 4 years ago

Unofrunately, neither black nor docformatter wraps the lines of the arguments of the docstring it seems 😕

DominiqueMakowski commented 4 years ago

@JanCBrammer don't you have an intern or a student interested in learning Python and contributing by doing easy stuff (albeit QUITE tedious) 😁 😅

JanCBrammer commented 4 years ago

don't you have an intern or a student interested in learning Python and contributing by doing easy stuff

I wish I had... :D

DominiqueMakowski commented 4 years ago

I think time has come to try to trigger codecov from the GH workflow rather than from travis, moreover, I wonder if we could include the doctests (i.e., the 'tests' from the examples) into the coverage @Tam-Pham

Tam-Pham commented 4 years ago

I think time has come to try to trigger codecov from the GH workflow rather than from travis

Sure. I'm all for migrating the work from travis to GH workflow. So that at one point travis can be removed 😆 I will add the codecov action to the test workflow, after running tox

I wonder if we could include the doctests (i.e., the 'tests' from the examples) into the coverage

hmm this I have never heard of. But let's look into it. It will be good if we can