py-neuromodulation 0.0.5__tar.gz → 0.0.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. py_neuromodulation-0.0.7/.github/workflows/docs_pages.yml +57 -0
  2. py_neuromodulation-0.0.7/.github/workflows/python-publish.yml +39 -0
  3. py_neuromodulation-0.0.7/.github/workflows/tests.yml +59 -0
  4. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/.gitignore +3 -0
  5. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/PKG-INFO +12 -29
  6. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/README.rst +6 -16
  7. py_neuromodulation-0.0.7/docs/Makefile +20 -0
  8. py_neuromodulation-0.0.7/docs/make.bat +35 -0
  9. py_neuromodulation-0.0.7/docs/source/_static/CEBRA_embedding.png +0 -0
  10. py_neuromodulation-0.0.7/docs/source/_static/RMAP_figure.png +0 -0
  11. py_neuromodulation-0.0.7/docs/source/_static/css/RMAP_figure.png +0 -0
  12. py_neuromodulation-0.0.7/docs/source/_static/css/project-template.css +16 -0
  13. py_neuromodulation-0.0.7/docs/source/_templates/custom-class-template.rst +7 -0
  14. py_neuromodulation-0.0.7/docs/source/_templates/custom-module-template.rst +67 -0
  15. py_neuromodulation-0.0.7/docs/source/api_documentation.rst +51 -0
  16. py_neuromodulation-0.0.7/docs/source/conf.py +95 -0
  17. py_neuromodulation-0.0.7/docs/source/contributing.rst +36 -0
  18. py_neuromodulation-0.0.7/docs/source/index.rst +66 -0
  19. py_neuromodulation-0.0.7/docs/source/installation.rst +46 -0
  20. py_neuromodulation-0.0.7/docs/source/nm_IO.rst +5 -0
  21. py_neuromodulation-0.0.7/docs/source/nm_RMAP.rst +5 -0
  22. py_neuromodulation-0.0.7/docs/source/nm_analysis.rst +5 -0
  23. py_neuromodulation-0.0.7/docs/source/nm_bursts.rst +5 -0
  24. py_neuromodulation-0.0.7/docs/source/nm_coherence.rst +5 -0
  25. py_neuromodulation-0.0.7/docs/source/nm_decode.rst +5 -0
  26. py_neuromodulation-0.0.7/docs/source/nm_define_nmchannels.rst +5 -0
  27. py_neuromodulation-0.0.7/docs/source/nm_features.rst +5 -0
  28. py_neuromodulation-0.0.7/docs/source/nm_filter.rst +5 -0
  29. py_neuromodulation-0.0.7/docs/source/nm_fooof.rst +5 -0
  30. py_neuromodulation-0.0.7/docs/source/nm_generator.rst +5 -0
  31. py_neuromodulation-0.0.7/docs/source/nm_hjorth.rst +5 -0
  32. py_neuromodulation-0.0.7/docs/source/nm_kalmanfilter.rst +5 -0
  33. py_neuromodulation-0.0.7/docs/source/nm_linelength.rst +5 -0
  34. py_neuromodulation-0.0.7/docs/source/nm_mne_connectivity.rst +5 -0
  35. py_neuromodulation-0.0.7/docs/source/nm_nolds.rst +5 -0
  36. py_neuromodulation-0.0.7/docs/source/nm_normalization.rst +5 -0
  37. py_neuromodulation-0.0.7/docs/source/nm_oscillatory.rst +11 -0
  38. py_neuromodulation-0.0.7/docs/source/nm_plots.rst +5 -0
  39. py_neuromodulation-0.0.7/docs/source/nm_projection.rst +5 -0
  40. py_neuromodulation-0.0.7/docs/source/nm_rereference.rst +5 -0
  41. py_neuromodulation-0.0.7/docs/source/nm_resample.rst +5 -0
  42. py_neuromodulation-0.0.7/docs/source/nm_run_analysis.rst +5 -0
  43. py_neuromodulation-0.0.7/docs/source/nm_settings.rst +5 -0
  44. py_neuromodulation-0.0.7/docs/source/nm_sharpwaves.rst +5 -0
  45. py_neuromodulation-0.0.7/docs/source/nm_stats.rst +5 -0
  46. py_neuromodulation-0.0.7/docs/source/nm_stream.rst +5 -0
  47. py_neuromodulation-0.0.7/docs/source/nm_stream_abc.rst +5 -0
  48. py_neuromodulation-0.0.7/docs/source/usage.rst +559 -0
  49. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_2_example_add_feature.py +3 -3
  50. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_3_example_sharpwave_analysis.py +10 -14
  51. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_4_example_gridPointProjection.py +53 -55
  52. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_5_example_rmap_computing.py +6 -6
  53. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_6_real_time_demo.py +5 -7
  54. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_7_lsl_example.py +13 -23
  55. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/__init__.py +16 -10
  56. py_neuromodulation-0.0.5/py_neuromodulation/nm_RMAP.py → py_neuromodulation-0.0.7/py_neuromodulation/analysis/RMAP.py +2 -2
  57. py_neuromodulation-0.0.7/py_neuromodulation/analysis/__init__.py +4 -0
  58. py_neuromodulation-0.0.5/py_neuromodulation/nm_decode.py → py_neuromodulation-0.0.7/py_neuromodulation/analysis/decode.py +4 -4
  59. py_neuromodulation-0.0.5/py_neuromodulation/nm_analysis.py → py_neuromodulation-0.0.7/py_neuromodulation/analysis/feature_reader.py +21 -20
  60. py_neuromodulation-0.0.5/py_neuromodulation/nm_plots.py → py_neuromodulation-0.0.7/py_neuromodulation/analysis/plots.py +54 -12
  61. py_neuromodulation-0.0.5/py_neuromodulation/nm_stats.py → py_neuromodulation-0.0.7/py_neuromodulation/analysis/stats.py +2 -8
  62. py_neuromodulation-0.0.5/py_neuromodulation/nm_settings.yaml → py_neuromodulation-0.0.7/py_neuromodulation/default_settings.yaml +7 -9
  63. py_neuromodulation-0.0.7/py_neuromodulation/features/__init__.py +31 -0
  64. py_neuromodulation-0.0.7/py_neuromodulation/features/bandpower.py +165 -0
  65. py_neuromodulation-0.0.5/py_neuromodulation/nm_bispectra.py → py_neuromodulation-0.0.7/py_neuromodulation/features/bispectra.py +11 -12
  66. py_neuromodulation-0.0.5/py_neuromodulation/nm_bursts.py → py_neuromodulation-0.0.7/py_neuromodulation/features/bursts.py +14 -9
  67. py_neuromodulation-0.0.5/py_neuromodulation/nm_coherence.py → py_neuromodulation-0.0.7/py_neuromodulation/features/coherence.py +28 -19
  68. py_neuromodulation-0.0.5/py_neuromodulation/nm_features.py → py_neuromodulation-0.0.7/py_neuromodulation/features/feature_processor.py +30 -53
  69. py_neuromodulation-0.0.5/py_neuromodulation/nm_fooof.py → py_neuromodulation-0.0.7/py_neuromodulation/features/fooof.py +11 -8
  70. py_neuromodulation-0.0.5/py_neuromodulation/nm_hjorth_raw.py → py_neuromodulation-0.0.7/py_neuromodulation/features/hjorth_raw.py +10 -5
  71. py_neuromodulation-0.0.5/py_neuromodulation/nm_linelength.py → py_neuromodulation-0.0.7/py_neuromodulation/features/linelength.py +1 -1
  72. py_neuromodulation-0.0.5/py_neuromodulation/nm_mne_connectivity.py → py_neuromodulation-0.0.7/py_neuromodulation/features/mne_connectivity.py +5 -6
  73. py_neuromodulation-0.0.5/py_neuromodulation/nm_nolds.py → py_neuromodulation-0.0.7/py_neuromodulation/features/nolds.py +5 -7
  74. py_neuromodulation-0.0.5/py_neuromodulation/nm_oscillatory.py → py_neuromodulation-0.0.7/py_neuromodulation/features/oscillatory.py +7 -181
  75. py_neuromodulation-0.0.5/py_neuromodulation/nm_sharpwaves.py → py_neuromodulation-0.0.7/py_neuromodulation/features/sharpwaves.py +13 -4
  76. py_neuromodulation-0.0.7/py_neuromodulation/filter/__init__.py +3 -0
  77. py_neuromodulation-0.0.5/py_neuromodulation/nm_kalmanfilter.py → py_neuromodulation-0.0.7/py_neuromodulation/filter/kalman_filter.py +67 -71
  78. py_neuromodulation-0.0.7/py_neuromodulation/filter/kalman_filter_external.py +1890 -0
  79. py_neuromodulation-0.0.5/py_neuromodulation/nm_filter.py → py_neuromodulation-0.0.7/py_neuromodulation/filter/mne_filter.py +128 -219
  80. py_neuromodulation-0.0.7/py_neuromodulation/filter/notch_filter.py +93 -0
  81. py_neuromodulation-0.0.7/py_neuromodulation/processing/__init__.py +10 -0
  82. py_neuromodulation-0.0.5/py_neuromodulation/nm_artifacts.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/artifacts.py +2 -3
  83. py_neuromodulation-0.0.5/py_neuromodulation/nm_preprocessing.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/data_preprocessor.py +19 -25
  84. py_neuromodulation-0.0.5/py_neuromodulation/nm_filter_preprocessing.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/filter_preprocessing.py +3 -4
  85. py_neuromodulation-0.0.5/py_neuromodulation/nm_normalization.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/normalization.py +9 -7
  86. py_neuromodulation-0.0.5/py_neuromodulation/nm_projection.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/projection.py +14 -14
  87. py_neuromodulation-0.0.5/py_neuromodulation/nm_rereference.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/rereference.py +13 -13
  88. py_neuromodulation-0.0.5/py_neuromodulation/nm_resample.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/resample.py +1 -4
  89. py_neuromodulation-0.0.7/py_neuromodulation/stream/__init__.py +3 -0
  90. py_neuromodulation-0.0.5/py_neuromodulation/nm_run_analysis.py → py_neuromodulation-0.0.7/py_neuromodulation/stream/data_processor.py +42 -42
  91. py_neuromodulation-0.0.7/py_neuromodulation/stream/generator.py +53 -0
  92. py_neuromodulation-0.0.5/py_neuromodulation/nm_mnelsl_generator.py → py_neuromodulation-0.0.7/py_neuromodulation/stream/mnelsl_player.py +10 -6
  93. py_neuromodulation-0.0.5/py_neuromodulation/nm_mnelsl_stream.py → py_neuromodulation-0.0.7/py_neuromodulation/stream/mnelsl_stream.py +13 -9
  94. py_neuromodulation-0.0.5/py_neuromodulation/nm_settings.py → py_neuromodulation-0.0.7/py_neuromodulation/stream/settings.py +27 -24
  95. py_neuromodulation-0.0.5/py_neuromodulation/nm_stream.py → py_neuromodulation-0.0.7/py_neuromodulation/stream/stream.py +217 -188
  96. py_neuromodulation-0.0.7/py_neuromodulation/utils/__init__.py +2 -0
  97. py_neuromodulation-0.0.5/py_neuromodulation/nm_define_nmchannels.py → py_neuromodulation-0.0.7/py_neuromodulation/utils/channels.py +14 -9
  98. py_neuromodulation-0.0.5/py_neuromodulation/nm_database.py → py_neuromodulation-0.0.7/py_neuromodulation/utils/database.py +2 -2
  99. py_neuromodulation-0.0.5/py_neuromodulation/nm_IO.py → py_neuromodulation-0.0.7/py_neuromodulation/utils/io.py +42 -77
  100. py_neuromodulation-0.0.7/py_neuromodulation/utils/keyboard.py +52 -0
  101. py_neuromodulation-0.0.5/py_neuromodulation/nm_logger.py → py_neuromodulation-0.0.7/py_neuromodulation/utils/logging.py +3 -3
  102. py_neuromodulation-0.0.5/py_neuromodulation/nm_types.py → py_neuromodulation-0.0.7/py_neuromodulation/utils/types.py +72 -14
  103. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/pyproject.toml +26 -52
  104. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/conftest.py +24 -26
  105. py_neuromodulation-0.0.7/tests/test_all_features.py +55 -0
  106. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_bispectra.py +12 -13
  107. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_bursts.py +15 -43
  108. py_neuromodulation-0.0.7/tests/test_coherence.py +119 -0
  109. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_database.py +11 -6
  110. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_feature_sampling_rates.py +31 -48
  111. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_fooof.py +11 -3
  112. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_initalization_offline_stream.py +5 -5
  113. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_lsl_stream.py +24 -25
  114. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_nan_values.py +4 -2
  115. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_nm_filter.py +4 -4
  116. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_nm_resample.py +4 -4
  117. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_normalization_settings.py +13 -13
  118. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_notch_filter.py +2 -2
  119. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_osc_features.py +19 -20
  120. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_preprocessing_filter.py +9 -4
  121. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_rereference.py +29 -31
  122. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_sampling.py +3 -1
  123. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_settings_change_after_init.py +25 -15
  124. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_sharpwave.py +12 -11
  125. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_target_channel_add.py +29 -31
  126. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_timing.py +13 -18
  127. py_neuromodulation-0.0.5/py_neuromodulation/FieldTrip.py +0 -589
  128. py_neuromodulation-0.0.5/py_neuromodulation/_write_example_dataset_helper.py +0 -83
  129. py_neuromodulation-0.0.5/py_neuromodulation/nm_generator.py +0 -45
  130. py_neuromodulation-0.0.5/py_neuromodulation/nm_stream_abc.py +0 -166
  131. py_neuromodulation-0.0.5/tests/__init__.py +0 -0
  132. py_neuromodulation-0.0.5/tests/test_all_features.py +0 -55
  133. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/LICENSE +0 -0
  134. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/README.rst +0 -0
  135. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/example_cebra_decoding.html +0 -0
  136. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/example_cebra_decoding.ipynb +0 -0
  137. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/example_rmap.ipynb +0 -0
  138. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_8_cebra_example.py +0 -0
  139. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/Automated Anatomical Labeling 3 (Rolls 2020).nii +0 -0
  140. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/_get_grid_hull.m +0 -0
  141. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/_get_grid_whole_brain.py +0 -0
  142. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/_helper_write_connectome.py +0 -0
  143. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/mni_coords_cortical_surface.mat +0 -0
  144. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/mni_coords_whole_brain.mat +0 -0
  145. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/rmap_func_all.nii +0 -0
  146. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/rmap_struc.nii +0 -0
  147. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/README +0 -0
  148. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/dataset_description.json +0 -0
  149. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/participants.json +0 -0
  150. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/participants.tsv +0 -0
  151. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_space-mni_coordsystem.json +0 -0
  152. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_space-mni_electrodes.tsv +0 -0
  153. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_channels.tsv +0 -0
  154. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.eeg +0 -0
  155. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.json +0 -0
  156. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.vhdr +0 -0
  157. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.vmrk +0 -0
  158. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/sub-testsub/ses-EphysMedOff/sub-testsub_ses-EphysMedOff_scans.tsv +0 -0
  159. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/grid_cortex.tsv +0 -0
  160. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/grid_subcortex.tsv +0 -0
  161. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/libpugixml.so.1.12 +0 -0
  162. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/bionic_amd64/liblsl.1.16.2.so +0 -0
  163. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/bookworm_amd64/liblsl.1.16.2.so +0 -0
  164. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/focal_amd46/liblsl.1.16.2.so +0 -0
  165. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/jammy_amd64/liblsl.1.16.2.so +0 -0
  166. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/jammy_x86/liblsl.1.16.2.so +0 -0
  167. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/noble_amd64/liblsl.1.16.2.so +0 -0
  168. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/macos/amd64/liblsl.1.16.2.dylib +0 -0
  169. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/macos/arm64/liblsl.1.16.0.dylib +0 -0
  170. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/windows/amd64/liblsl.1.16.2.dll +0 -0
  171. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/windows/x86/liblsl.1.16.2.dll +0 -0
  172. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/plots/STN_surf.mat +0 -0
  173. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/plots/Vertices.mat +0 -0
  174. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/plots/faces.mat +0 -0
  175. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/plots/grid.mat +0 -0
  176. {py_neuromodulation-0.0.5/py_neuromodulation/utils → py_neuromodulation-0.0.7/tests}/__init__.py +0 -0
  177. {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_all_examples.py +0 -0
@@ -0,0 +1,57 @@
1
+ name: docs_pages_workflow
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+
7
+ jobs:
8
+
9
+ build_docs_job:
10
+ runs-on: ubuntu-latest
11
+ env:
12
+ GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
13
+
14
+ steps:
15
+ - name: Checkout
16
+ uses: actions/checkout@v2.3.4
17
+
18
+ - name: Install and cache Linux packages
19
+ if: ${{ runner.os == 'Linux' }}
20
+ uses: tecolicom/actions-use-apt-tools@v1
21
+ with:
22
+ tools: binutils qtbase5-dev qt5-qmake libpugixml1v5
23
+
24
+ - name: Set up Python with uv
25
+ uses: drivendataorg/setup-python-uv-action@v1
26
+ with:
27
+ python-version: '3.10'
28
+ cache: packages
29
+ cache-dependency-path: pyproject.toml
30
+
31
+ - name: Install dependencies
32
+ run: |
33
+ uv pip install .[docs]
34
+
35
+ - name: make the sphinx docs
36
+ run: |
37
+ make -C docs clean
38
+ make -C docs html
39
+
40
+ - name: Init new repo in dist folder and commit generated files
41
+ run: |
42
+ cd docs/build/html/
43
+ git init
44
+ touch .nojekyll
45
+ git add -A
46
+ git config --local user.email "github-actions[bot]@users.noreply.github.com"
47
+ git config --local user.name "github-actions[bot]"
48
+ git commit -m 'deploy'
49
+ git config --global --add safe.directory /github/workspace/docs/build/html
50
+
51
+ - name: Force push to destination branch
52
+ uses: ad-m/github-push-action@master
53
+ with:
54
+ github_token: ${{ secrets.GITHUB_TOKEN }}
55
+ branch: gh-pages
56
+ force: true
57
+ directory: ./docs/build/html
@@ -0,0 +1,39 @@
1
+ name: Publish Python Package
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v[0-9]+.[0-9]+.[0-9]+'
7
+
8
+ jobs:
9
+ publish:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout code
14
+ uses: actions/checkout@v3
15
+
16
+ - name: Set up Python
17
+ uses: actions/setup-python@v4
18
+ with:
19
+ python-version: '3.11' # Specify your Python version
20
+
21
+ - name: Install dependencies
22
+ run: |
23
+ python -m pip install --upgrade pip
24
+ pip install build
25
+
26
+ - name: Build package
27
+ run: python -m build
28
+
29
+ - name: Publish to PyPI
30
+ uses: pypa/gh-action-pypi-publish@v1.10.0
31
+ with:
32
+ password: ${{ secrets.PYPI_API_TOKEN }}
33
+
34
+ - name: Create GitHub release
35
+ uses: softprops/action-gh-release@v1
36
+ with:
37
+ files: dist/*
38
+ env:
39
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,59 @@
1
+ name: Tests
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ - "**"
7
+ paths-ignore:
8
+ - "docs/**"
9
+ - "*.md"
10
+ - "*.rst"
11
+ - "*.txt"
12
+ pull_request:
13
+ branches:
14
+ - main
15
+ - "*.x"
16
+ paths-ignore:
17
+ - "docs/**"
18
+ - "*.md"
19
+ - "*.rst"
20
+ - "*.txt"
21
+ jobs:
22
+ tests:
23
+ name: ${{ matrix.platform.name }} Python ${{ matrix.python }}
24
+ runs-on: ${{ matrix.platform.os }}
25
+ strategy:
26
+ fail-fast: false
27
+ matrix:
28
+ platform:
29
+ - os: ubuntu-latest
30
+ name: Linux
31
+ - os: macos-latest
32
+ name: MacOS
33
+ - os: windows-latest
34
+ name: Windows
35
+ python:
36
+ - "3.11"
37
+ - "3.12"
38
+ steps:
39
+ - uses: actions/checkout@v4
40
+ - name: Install and cache Linux packages
41
+ if: ${{ runner.os == 'Linux' }}
42
+ uses: awalsh128/cache-apt-pkgs-action@latest
43
+ with:
44
+ packages: binutils qtbase5-dev qt5-qmake libpugixml1v5
45
+ - name: Install uv
46
+ uses: astral-sh/setup-uv@v3
47
+ with:
48
+ version: "0.4.12"
49
+ enable-cache: true
50
+ cache-dependency-glob: "**/pyproject.toml"
51
+ - name: Install Python and dependencies
52
+ run: |
53
+ uv python install ${{ matrix.python }}
54
+ uv venv
55
+ uv pip install .[test]
56
+ - name: Run tests
57
+ run: |
58
+ ${{ (runner.os == 'Windows' && '.venv\Scripts\activate') || 'source .venv/bin/activate' }}
59
+ pytest -n auto tests/
@@ -194,3 +194,6 @@ out_per
194
194
 
195
195
  gui_dev/node_modules/*
196
196
  test/data/*
197
+
198
+ uv.lock
199
+ lsllog.txt
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: py_neuromodulation
3
- Version: 0.0.5
3
+ Version: 0.0.7
4
4
  Summary: Real-time analysis of intracranial neurophysiology recordings.
5
5
  Project-URL: bugtracker, https://github.com/neuromodulation/py_neuromodulation/issues
6
6
  Project-URL: repository, https://github.com/neuromodulation/py_neuromodulation
@@ -33,35 +33,28 @@ Classifier: Development Status :: 2 - Pre-Alpha
33
33
  Classifier: License :: OSI Approved :: MIT License
34
34
  Classifier: Programming Language :: Python
35
35
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
36
- Requires-Python: >=3.10
37
- Requires-Dist: filterpy>=1.4.5
36
+ Requires-Python: >=3.11
38
37
  Requires-Dist: fooof
39
- Requires-Dist: hatch>=1.9.4
40
- Requires-Dist: imbalanced-learn
41
38
  Requires-Dist: joblib>=1.3.2
39
+ Requires-Dist: llvmlite>=0.43.0
42
40
  Requires-Dist: matplotlib>=3.9.0
43
41
  Requires-Dist: mne
44
42
  Requires-Dist: mne-bids>=0.8
45
43
  Requires-Dist: mne-connectivity
46
44
  Requires-Dist: mne-lsl>=1.2.0
47
45
  Requires-Dist: mrmr-selection
48
- Requires-Dist: nibabel>=5.2.1
49
- Requires-Dist: nolds
46
+ Requires-Dist: nolds>=0.6.1
47
+ Requires-Dist: numba>=0.60.0
50
48
  Requires-Dist: numpy>=1.21.2
51
49
  Requires-Dist: pandas>=2.0.0
52
- Requires-Dist: pip>=24.2
53
50
  Requires-Dist: pyarrow>=14.0.2
54
- Requires-Dist: pybispectra>=1.0.0
51
+ Requires-Dist: pybispectra>=1.2.0
55
52
  Requires-Dist: pydantic>=2.7.3
56
- Requires-Dist: pynput
57
53
  Requires-Dist: pyparrm
58
- Requires-Dist: pyqt5
59
- Requires-Dist: scikit-image
60
54
  Requires-Dist: scikit-learn>=0.24.2
61
55
  Requires-Dist: scikit-optimize
62
56
  Requires-Dist: scipy>=1.7.1
63
57
  Requires-Dist: seaborn>=0.11
64
- Requires-Dist: statsmodels
65
58
  Provides-Extra: dev
66
59
  Requires-Dist: notebook; extra == 'dev'
67
60
  Requires-Dist: pytest-cov; extra == 'dev'
@@ -116,7 +109,7 @@ The original intention for writing this toolbox was movement decoding from invas
116
109
  The application however could be any neural decoding problem.
117
110
  *py_neuromodulation* offers wrappers around common practice machine learning methods for efficient analysis.
118
111
 
119
- Find the documentation here http://py-neuromodulation.readthedocs.io for example usage and parametrization.
112
+ Find the documentation here neuromodulation.github.io/py_neuromodulation/ for example usage and parametrization.
120
113
 
121
114
  Installation
122
115
  ============
@@ -127,25 +120,15 @@ py_neuromodulation requires at least python 3.10. For installation you can use p
127
120
 
128
121
  pip install py-neuromodulation
129
122
 
130
- Alternatively you can also install the package in a conda environment:
123
+ Alternatively you can also clone the pacakge and install it using `uv <https://docs.astral.sh/uv/>`_:
131
124
 
132
125
  .. code-block::
133
126
 
134
- conda create -n pynm-test python=3.11
135
- conda activate pynm-test
127
+ uv python install 3.10
128
+ uv venv
129
+ . .venv/bin/activate
130
+ uv sync
136
131
 
137
- Then install the packages listed in the `pyproject.toml`:
138
-
139
- .. code-block::
140
-
141
- pip install .
142
-
143
-
144
- Optionally the ipython kernel can be specified for the installed pynm-test conda environment:
145
-
146
- .. code-block::
147
-
148
- ipython kernel install --user --name=pynm-test
149
132
 
150
133
  Then *py_neuromodulation* can be imported via:
151
134
 
@@ -29,7 +29,7 @@ The original intention for writing this toolbox was movement decoding from invas
29
29
  The application however could be any neural decoding problem.
30
30
  *py_neuromodulation* offers wrappers around common practice machine learning methods for efficient analysis.
31
31
 
32
- Find the documentation here http://py-neuromodulation.readthedocs.io for example usage and parametrization.
32
+ Find the documentation here neuromodulation.github.io/py_neuromodulation/ for example usage and parametrization.
33
33
 
34
34
  Installation
35
35
  ============
@@ -40,25 +40,15 @@ py_neuromodulation requires at least python 3.10. For installation you can use p
40
40
 
41
41
  pip install py-neuromodulation
42
42
 
43
- Alternatively you can also install the package in a conda environment:
43
+ Alternatively you can also clone the pacakge and install it using `uv <https://docs.astral.sh/uv/>`_:
44
44
 
45
45
  .. code-block::
46
46
 
47
- conda create -n pynm-test python=3.11
48
- conda activate pynm-test
47
+ uv python install 3.10
48
+ uv venv
49
+ . .venv/bin/activate
50
+ uv sync
49
51
 
50
- Then install the packages listed in the `pyproject.toml`:
51
-
52
- .. code-block::
53
-
54
- pip install .
55
-
56
-
57
- Optionally the ipython kernel can be specified for the installed pynm-test conda environment:
58
-
59
- .. code-block::
60
-
61
- ipython kernel install --user --name=pynm-test
62
52
 
63
53
  Then *py_neuromodulation* can be imported via:
64
54
 
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = source
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,35 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=source
11
+ set BUILDDIR=build
12
+
13
+ if "%1" == "" goto help
14
+
15
+ %SPHINXBUILD% >NUL 2>NUL
16
+ if errorlevel 9009 (
17
+ echo.
18
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
19
+ echo.installed, then set the SPHINXBUILD environment variable to point
20
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
21
+ echo.may add the Sphinx directory to PATH.
22
+ echo.
23
+ echo.If you don't have Sphinx installed, grab it from
24
+ echo.http://sphinx-doc.org/
25
+ exit /b 1
26
+ )
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
@@ -0,0 +1,16 @@
1
+ @import url("theme.css");
2
+
3
+ .highlight a {
4
+ text-decoration: underline;
5
+ }
6
+
7
+ .deprecated p {
8
+ padding: 10px 7px 10px 10px;
9
+ color: #b94a48;
10
+ background-color: #F3E5E5;
11
+ border: 1px solid #eed3d7;
12
+ }
13
+
14
+ .deprecated p span.versionmodified {
15
+ font-weight: bold;
16
+ }
@@ -0,0 +1,7 @@
1
+ {{ fullname | escape | underline}}
2
+
3
+ .. currentmodule:: {{ module }}
4
+
5
+ .. autoclass:: {{ objname }}
6
+ :members:
7
+ :inherited-members:
@@ -0,0 +1,67 @@
1
+ {{ fullname | escape | underline}}
2
+
3
+ .. automodule:: {{ fullname }}
4
+
5
+ {% block attributes %}
6
+ {% if attributes %}
7
+ .. rubric:: Module Attributes
8
+
9
+ .. autosummary::
10
+ :toctree:
11
+ {% for item in attributes %}
12
+ {{ item }}
13
+ {%- endfor %}
14
+ {% endif %}
15
+ {% endblock %}
16
+
17
+ {% block functions %}
18
+ {% if functions %}
19
+ .. rubric:: {{ _('Functions') }}
20
+
21
+ .. autosummary::
22
+ :toctree:
23
+ :nosignatures:
24
+ {% for item in functions %}
25
+ {{ item }}
26
+ {%- endfor %}
27
+ {% endif %}
28
+ {% endblock %}
29
+
30
+ {% block classes %}
31
+ {% if classes %}
32
+ .. rubric:: {{ _('Classes') }}
33
+
34
+ .. autosummary::
35
+ :toctree:
36
+ :template: custom-class-template.rst
37
+ {% for item in classes %}
38
+ {{ item }}
39
+ {%- endfor %}
40
+ {% endif %}
41
+ {% endblock %}
42
+
43
+ {% block exceptions %}
44
+ {% if exceptions %}
45
+ .. rubric:: {{ _('Exceptions') }}
46
+
47
+ .. autosummary::
48
+ :toctree:
49
+ {% for item in exceptions %}
50
+ {{ item }}
51
+ {%- endfor %}
52
+ {% endif %}
53
+ {% endblock %}
54
+
55
+ {% block modules %}
56
+ {% if modules %}
57
+ .. rubric:: Modules
58
+
59
+ .. autosummary::
60
+ :toctree:
61
+ :template: custom-module-template.rst
62
+ :recursive:
63
+ {% for item in modules %}
64
+ {{ item }}
65
+ {%- endfor %}
66
+ {% endif %}
67
+ {% endblock %}
@@ -0,0 +1,51 @@
1
+ API Documentation
2
+ =================
3
+
4
+ Parametrization
5
+ ---------------
6
+
7
+ .. toctree::
8
+ :maxdepth: 4
9
+
10
+ nm_stream_abc
11
+ nm_stream
12
+ nm_settings
13
+ nm_define_nmchannels
14
+ nm_generator
15
+ nm_run_analysis
16
+ nm_resample
17
+ nm_normalization
18
+ nm_rereference
19
+ nm_projection
20
+ nm_IO
21
+
22
+ Feature Estimation
23
+ ------------------
24
+
25
+ .. toctree::
26
+ :maxdepth: 4
27
+
28
+ nm_features
29
+ nm_filter
30
+ nm_oscillatory
31
+ nm_fooof
32
+ nm_kalmanfilter
33
+ nm_hjorth
34
+ nm_sharpwaves
35
+ nm_bursts
36
+ nm_coherence
37
+ nm_nolds
38
+ nm_mne_connectivity
39
+ nm_linelength
40
+
41
+ Analysis
42
+ --------
43
+
44
+ .. toctree::
45
+ :maxdepth: 4
46
+
47
+ nm_analysis
48
+ nm_decode
49
+ nm_plots
50
+ nm_RMAP
51
+ nm_stats
@@ -0,0 +1,95 @@
1
+ # Configuration file for the Sphinx documentation builder.
2
+ #
3
+ # This file only contains a selection of the most common options. For a full
4
+ # list see the documentation:
5
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
6
+
7
+ # -- Path setup --------------------------------------------------------------
8
+ import sys
9
+ from pathlib import Path
10
+ from sphinx_gallery.sorting import FileNameSortKey
11
+
12
+ print("CURRENT WORKING DIRECTORY")
13
+ print(Path.cwd())
14
+
15
+ SCRIPT_DIR = Path(__file__).absolute().parent
16
+
17
+ if SCRIPT_DIR.name == "source":
18
+ # this check is necessary, so we can also run the script from the root directory
19
+ SCRIPT_DIR = SCRIPT_DIR.parent.parent / "py_neuromodulation"
20
+
21
+ print(f"Script Directory to add: {SCRIPT_DIR}")
22
+ sys.path.append(str(SCRIPT_DIR))
23
+
24
+ print(sys.path)
25
+
26
+ exclude_patterns = ["_build", "_templates"]
27
+
28
+
29
+ # -- Project information -----------------------------------------------------
30
+ project = "py_neuromodulation"
31
+ copyright = "2021, Timon Merk"
32
+ author = "Timon Merk"
33
+
34
+ source_parsers = {
35
+ ".md": "recommonmark.parser.CommonMarkParser",
36
+ }
37
+
38
+ extensions = [
39
+ "sphinx.ext.autodoc",
40
+ "sphinx.ext.autosummary",
41
+ "sphinx.ext.doctest",
42
+ "sphinx.ext.intersphinx",
43
+ "sphinx.ext.viewcode",
44
+ "sphinx.ext.mathjax",
45
+ "sphinx.ext.napoleon",
46
+ "sphinx.ext.autosectionlabel",
47
+ "sphinx_gallery.gen_gallery",
48
+ "sphinx_togglebutton",
49
+ # "nbsphinx",
50
+ ]
51
+
52
+ source_suffix = [
53
+ ".rst",
54
+ ".md",
55
+ ]
56
+
57
+ autosummary_generate = True
58
+
59
+ PYDEVD_DISABLE_FILE_VALIDATION = 1
60
+
61
+ sphinx_gallery_conf = {
62
+ "examples_dirs": "../../examples",
63
+ "gallery_dirs": "auto_examples",
64
+ "within_subsection_order": FileNameSortKey,
65
+ }
66
+
67
+ templates_path = ["_templates"]
68
+ exclude_patterns = []
69
+
70
+
71
+ html_theme = "pydata_sphinx_theme"
72
+ html_static_path = ["_static"]
73
+
74
+ html_theme_options = {
75
+ "show_nav_level": 4,
76
+ "icon_links": [
77
+ dict(
78
+ name="GitHub",
79
+ url="https://github.com/neuromodulation/py_neuromodulation",
80
+ icon="fa-brands fa-square-github",
81
+ )
82
+ ],
83
+ }
84
+
85
+ # -- Intersphinx configuration -----------------------------------------------
86
+
87
+ intersphinx_mapping = {
88
+ "python": ("https://docs.python.org/3", None),
89
+ "numpy": ("https://numpy.org/doc/stable", None),
90
+ "scipy": ("https://docs.scipy.org/doc/scipy", None),
91
+ "matplotlib": ("https://matplotlib.org/stable", None),
92
+ "numba": ("https://numba.readthedocs.io/en/latest", None),
93
+ "mne": ("https://mne.tools/stable", None),
94
+ "pandas": ("https://pandas.pydata.org/docs", None),
95
+ }
@@ -0,0 +1,36 @@
1
+ Contribution Guide
2
+ ==================
3
+
4
+ Welcome to the contributing guide of py_neuromodulation! We are very happy that you are interested in our project.
5
+
6
+ In general we recommend placing questions and issues in the `GitHub issue tracker <https://github.com/neuromodulation/py_neuromodulation/issues>`_.
7
+
8
+ For code formatting we use `ruff <https://docs.astral.sh/ruff/formatter/>`_.
9
+
10
+ For code development, we recommend using the package manager `rye <https://rye.astral.sh/>`_.
11
+
12
+ To setup the python environment, type
13
+
14
+ ::
15
+
16
+ rye pin 3.12
17
+
18
+ then sync the environment with
19
+
20
+ ::
21
+
22
+ rye sync
23
+
24
+ Depending on your operating system, activate the rye virtual environment:
25
+
26
+ ::
27
+
28
+ . .venv/bin/activate
29
+
30
+ To install the documentation dependencies use pip:
31
+
32
+ ::
33
+
34
+ python -m pip install .[docs]
35
+
36
+