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.
- py_neuromodulation-0.0.7/.github/workflows/docs_pages.yml +57 -0
- py_neuromodulation-0.0.7/.github/workflows/python-publish.yml +39 -0
- py_neuromodulation-0.0.7/.github/workflows/tests.yml +59 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/.gitignore +3 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/PKG-INFO +12 -29
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/README.rst +6 -16
- py_neuromodulation-0.0.7/docs/Makefile +20 -0
- py_neuromodulation-0.0.7/docs/make.bat +35 -0
- py_neuromodulation-0.0.7/docs/source/_static/CEBRA_embedding.png +0 -0
- py_neuromodulation-0.0.7/docs/source/_static/RMAP_figure.png +0 -0
- py_neuromodulation-0.0.7/docs/source/_static/css/RMAP_figure.png +0 -0
- py_neuromodulation-0.0.7/docs/source/_static/css/project-template.css +16 -0
- py_neuromodulation-0.0.7/docs/source/_templates/custom-class-template.rst +7 -0
- py_neuromodulation-0.0.7/docs/source/_templates/custom-module-template.rst +67 -0
- py_neuromodulation-0.0.7/docs/source/api_documentation.rst +51 -0
- py_neuromodulation-0.0.7/docs/source/conf.py +95 -0
- py_neuromodulation-0.0.7/docs/source/contributing.rst +36 -0
- py_neuromodulation-0.0.7/docs/source/index.rst +66 -0
- py_neuromodulation-0.0.7/docs/source/installation.rst +46 -0
- py_neuromodulation-0.0.7/docs/source/nm_IO.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_RMAP.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_analysis.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_bursts.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_coherence.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_decode.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_define_nmchannels.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_features.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_filter.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_fooof.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_generator.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_hjorth.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_kalmanfilter.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_linelength.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_mne_connectivity.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_nolds.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_normalization.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_oscillatory.rst +11 -0
- py_neuromodulation-0.0.7/docs/source/nm_plots.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_projection.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_rereference.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_resample.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_run_analysis.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_settings.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_sharpwaves.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_stats.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_stream.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/nm_stream_abc.rst +5 -0
- py_neuromodulation-0.0.7/docs/source/usage.rst +559 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_2_example_add_feature.py +3 -3
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_3_example_sharpwave_analysis.py +10 -14
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_4_example_gridPointProjection.py +53 -55
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_5_example_rmap_computing.py +6 -6
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_6_real_time_demo.py +5 -7
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_7_lsl_example.py +13 -23
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/__init__.py +16 -10
- py_neuromodulation-0.0.5/py_neuromodulation/nm_RMAP.py → py_neuromodulation-0.0.7/py_neuromodulation/analysis/RMAP.py +2 -2
- py_neuromodulation-0.0.7/py_neuromodulation/analysis/__init__.py +4 -0
- py_neuromodulation-0.0.5/py_neuromodulation/nm_decode.py → py_neuromodulation-0.0.7/py_neuromodulation/analysis/decode.py +4 -4
- py_neuromodulation-0.0.5/py_neuromodulation/nm_analysis.py → py_neuromodulation-0.0.7/py_neuromodulation/analysis/feature_reader.py +21 -20
- py_neuromodulation-0.0.5/py_neuromodulation/nm_plots.py → py_neuromodulation-0.0.7/py_neuromodulation/analysis/plots.py +54 -12
- py_neuromodulation-0.0.5/py_neuromodulation/nm_stats.py → py_neuromodulation-0.0.7/py_neuromodulation/analysis/stats.py +2 -8
- py_neuromodulation-0.0.5/py_neuromodulation/nm_settings.yaml → py_neuromodulation-0.0.7/py_neuromodulation/default_settings.yaml +7 -9
- py_neuromodulation-0.0.7/py_neuromodulation/features/__init__.py +31 -0
- py_neuromodulation-0.0.7/py_neuromodulation/features/bandpower.py +165 -0
- py_neuromodulation-0.0.5/py_neuromodulation/nm_bispectra.py → py_neuromodulation-0.0.7/py_neuromodulation/features/bispectra.py +11 -12
- py_neuromodulation-0.0.5/py_neuromodulation/nm_bursts.py → py_neuromodulation-0.0.7/py_neuromodulation/features/bursts.py +14 -9
- py_neuromodulation-0.0.5/py_neuromodulation/nm_coherence.py → py_neuromodulation-0.0.7/py_neuromodulation/features/coherence.py +28 -19
- py_neuromodulation-0.0.5/py_neuromodulation/nm_features.py → py_neuromodulation-0.0.7/py_neuromodulation/features/feature_processor.py +30 -53
- py_neuromodulation-0.0.5/py_neuromodulation/nm_fooof.py → py_neuromodulation-0.0.7/py_neuromodulation/features/fooof.py +11 -8
- py_neuromodulation-0.0.5/py_neuromodulation/nm_hjorth_raw.py → py_neuromodulation-0.0.7/py_neuromodulation/features/hjorth_raw.py +10 -5
- py_neuromodulation-0.0.5/py_neuromodulation/nm_linelength.py → py_neuromodulation-0.0.7/py_neuromodulation/features/linelength.py +1 -1
- py_neuromodulation-0.0.5/py_neuromodulation/nm_mne_connectivity.py → py_neuromodulation-0.0.7/py_neuromodulation/features/mne_connectivity.py +5 -6
- py_neuromodulation-0.0.5/py_neuromodulation/nm_nolds.py → py_neuromodulation-0.0.7/py_neuromodulation/features/nolds.py +5 -7
- py_neuromodulation-0.0.5/py_neuromodulation/nm_oscillatory.py → py_neuromodulation-0.0.7/py_neuromodulation/features/oscillatory.py +7 -181
- py_neuromodulation-0.0.5/py_neuromodulation/nm_sharpwaves.py → py_neuromodulation-0.0.7/py_neuromodulation/features/sharpwaves.py +13 -4
- py_neuromodulation-0.0.7/py_neuromodulation/filter/__init__.py +3 -0
- py_neuromodulation-0.0.5/py_neuromodulation/nm_kalmanfilter.py → py_neuromodulation-0.0.7/py_neuromodulation/filter/kalman_filter.py +67 -71
- py_neuromodulation-0.0.7/py_neuromodulation/filter/kalman_filter_external.py +1890 -0
- py_neuromodulation-0.0.5/py_neuromodulation/nm_filter.py → py_neuromodulation-0.0.7/py_neuromodulation/filter/mne_filter.py +128 -219
- py_neuromodulation-0.0.7/py_neuromodulation/filter/notch_filter.py +93 -0
- py_neuromodulation-0.0.7/py_neuromodulation/processing/__init__.py +10 -0
- py_neuromodulation-0.0.5/py_neuromodulation/nm_artifacts.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/artifacts.py +2 -3
- py_neuromodulation-0.0.5/py_neuromodulation/nm_preprocessing.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/data_preprocessor.py +19 -25
- py_neuromodulation-0.0.5/py_neuromodulation/nm_filter_preprocessing.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/filter_preprocessing.py +3 -4
- py_neuromodulation-0.0.5/py_neuromodulation/nm_normalization.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/normalization.py +9 -7
- py_neuromodulation-0.0.5/py_neuromodulation/nm_projection.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/projection.py +14 -14
- py_neuromodulation-0.0.5/py_neuromodulation/nm_rereference.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/rereference.py +13 -13
- py_neuromodulation-0.0.5/py_neuromodulation/nm_resample.py → py_neuromodulation-0.0.7/py_neuromodulation/processing/resample.py +1 -4
- py_neuromodulation-0.0.7/py_neuromodulation/stream/__init__.py +3 -0
- py_neuromodulation-0.0.5/py_neuromodulation/nm_run_analysis.py → py_neuromodulation-0.0.7/py_neuromodulation/stream/data_processor.py +42 -42
- py_neuromodulation-0.0.7/py_neuromodulation/stream/generator.py +53 -0
- py_neuromodulation-0.0.5/py_neuromodulation/nm_mnelsl_generator.py → py_neuromodulation-0.0.7/py_neuromodulation/stream/mnelsl_player.py +10 -6
- py_neuromodulation-0.0.5/py_neuromodulation/nm_mnelsl_stream.py → py_neuromodulation-0.0.7/py_neuromodulation/stream/mnelsl_stream.py +13 -9
- py_neuromodulation-0.0.5/py_neuromodulation/nm_settings.py → py_neuromodulation-0.0.7/py_neuromodulation/stream/settings.py +27 -24
- py_neuromodulation-0.0.5/py_neuromodulation/nm_stream.py → py_neuromodulation-0.0.7/py_neuromodulation/stream/stream.py +217 -188
- py_neuromodulation-0.0.7/py_neuromodulation/utils/__init__.py +2 -0
- py_neuromodulation-0.0.5/py_neuromodulation/nm_define_nmchannels.py → py_neuromodulation-0.0.7/py_neuromodulation/utils/channels.py +14 -9
- py_neuromodulation-0.0.5/py_neuromodulation/nm_database.py → py_neuromodulation-0.0.7/py_neuromodulation/utils/database.py +2 -2
- py_neuromodulation-0.0.5/py_neuromodulation/nm_IO.py → py_neuromodulation-0.0.7/py_neuromodulation/utils/io.py +42 -77
- py_neuromodulation-0.0.7/py_neuromodulation/utils/keyboard.py +52 -0
- py_neuromodulation-0.0.5/py_neuromodulation/nm_logger.py → py_neuromodulation-0.0.7/py_neuromodulation/utils/logging.py +3 -3
- py_neuromodulation-0.0.5/py_neuromodulation/nm_types.py → py_neuromodulation-0.0.7/py_neuromodulation/utils/types.py +72 -14
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/pyproject.toml +26 -52
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/conftest.py +24 -26
- py_neuromodulation-0.0.7/tests/test_all_features.py +55 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_bispectra.py +12 -13
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_bursts.py +15 -43
- py_neuromodulation-0.0.7/tests/test_coherence.py +119 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_database.py +11 -6
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_feature_sampling_rates.py +31 -48
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_fooof.py +11 -3
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_initalization_offline_stream.py +5 -5
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_lsl_stream.py +24 -25
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_nan_values.py +4 -2
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_nm_filter.py +4 -4
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_nm_resample.py +4 -4
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_normalization_settings.py +13 -13
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_notch_filter.py +2 -2
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_osc_features.py +19 -20
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_preprocessing_filter.py +9 -4
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_rereference.py +29 -31
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_sampling.py +3 -1
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_settings_change_after_init.py +25 -15
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_sharpwave.py +12 -11
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_target_channel_add.py +29 -31
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/tests/test_timing.py +13 -18
- py_neuromodulation-0.0.5/py_neuromodulation/FieldTrip.py +0 -589
- py_neuromodulation-0.0.5/py_neuromodulation/_write_example_dataset_helper.py +0 -83
- py_neuromodulation-0.0.5/py_neuromodulation/nm_generator.py +0 -45
- py_neuromodulation-0.0.5/py_neuromodulation/nm_stream_abc.py +0 -166
- py_neuromodulation-0.0.5/tests/__init__.py +0 -0
- py_neuromodulation-0.0.5/tests/test_all_features.py +0 -55
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/LICENSE +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/README.rst +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/example_cebra_decoding.html +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/example_cebra_decoding.ipynb +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/example_rmap.ipynb +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/examples/plot_8_cebra_example.py +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/Automated Anatomical Labeling 3 (Rolls 2020).nii +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/_get_grid_hull.m +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/_get_grid_whole_brain.py +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/_helper_write_connectome.py +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/mni_coords_cortical_surface.mat +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/mni_coords_whole_brain.mat +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/rmap_func_all.nii +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/ConnectivityDecoding/rmap_struc.nii +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/README +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/dataset_description.json +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/participants.json +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/data/participants.tsv +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/grid_cortex.tsv +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/grid_subcortex.tsv +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/libpugixml.so.1.12 +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/bionic_amd64/liblsl.1.16.2.so +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/bookworm_amd64/liblsl.1.16.2.so +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/focal_amd46/liblsl.1.16.2.so +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/jammy_amd64/liblsl.1.16.2.so +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/jammy_x86/liblsl.1.16.2.so +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/linux/noble_amd64/liblsl.1.16.2.so +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/macos/amd64/liblsl.1.16.2.dylib +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/macos/arm64/liblsl.1.16.0.dylib +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/windows/amd64/liblsl.1.16.2.dll +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/liblsl/windows/x86/liblsl.1.16.2.dll +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/plots/STN_surf.mat +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/plots/Vertices.mat +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/plots/faces.mat +0 -0
- {py_neuromodulation-0.0.5 → py_neuromodulation-0.0.7}/py_neuromodulation/plots/grid.mat +0 -0
- {py_neuromodulation-0.0.5/py_neuromodulation/utils → py_neuromodulation-0.0.7/tests}/__init__.py +0 -0
- {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/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: py_neuromodulation
|
|
3
|
-
Version: 0.0.
|
|
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.
|
|
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:
|
|
49
|
-
Requires-Dist:
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
|
|
135
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
48
|
-
|
|
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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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,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
|
+
|