Braindecode 1.3.0.dev181594385__tar.gz → 1.3.0.dev182556615__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 (149) hide show
  1. {braindecode-1.3.0.dev181594385/braindecode.egg-info → braindecode-1.3.0.dev182556615}/PKG-INFO +11 -5
  2. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/__init__.py +2 -2
  3. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/base.py +18 -3
  4. braindecode-1.3.0.dev182556615/braindecode/datasets/hub.py +962 -0
  5. braindecode-1.3.0.dev182556615/braindecode/datasets/hub_validation.py +113 -0
  6. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/moabb.py +15 -5
  7. braindecode-1.3.0.dev182556615/braindecode/datasets/registry.py +120 -0
  8. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datautil/__init__.py +11 -1
  9. braindecode-1.3.0.dev182556615/braindecode/datautil/channel_utils.py +114 -0
  10. braindecode-1.3.0.dev182556615/braindecode/datautil/hub_formats.py +180 -0
  11. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datautil/serialization.py +0 -1
  12. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/__init__.py +12 -1
  13. braindecode-1.3.0.dev182556615/braindecode/models/eegsym.py +917 -0
  14. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/fbcnet.py +3 -1
  15. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/fbmsnet.py +18 -6
  16. braindecode-1.3.0.dev182556615/braindecode/models/luna.py +836 -0
  17. braindecode-1.3.0.dev182556615/braindecode/models/medformer.py +758 -0
  18. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/summary.csv +3 -0
  19. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/util.py +86 -0
  20. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/modules/filter.py +0 -6
  21. braindecode-1.3.0.dev182556615/braindecode/preprocessing/__init__.py +271 -0
  22. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/preprocessing/eegprep_preprocess.py +134 -19
  23. braindecode-1.3.0.dev182556615/braindecode/preprocessing/mne_preprocess.py +240 -0
  24. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/preprocessing/preprocess.py +134 -39
  25. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/preprocessing/util.py +11 -0
  26. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/preprocessing/windowers.py +2 -1
  27. braindecode-1.3.0.dev182556615/braindecode/version.py +1 -0
  28. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615/braindecode.egg-info}/PKG-INFO +11 -5
  29. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode.egg-info/SOURCES.txt +8 -0
  30. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode.egg-info/requires.txt +8 -2
  31. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/api.rst +110 -18
  32. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/conf.py +53 -14
  33. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/index.rst +4 -4
  34. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/install/install_pip.rst +7 -1
  35. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/install/install_source.rst +1 -1
  36. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/whats_new.rst +13 -1
  37. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/pyproject.toml +15 -3
  38. braindecode-1.3.0.dev181594385/braindecode/preprocessing/__init__.py +0 -61
  39. braindecode-1.3.0.dev181594385/braindecode/preprocessing/mne_preprocess.py +0 -77
  40. braindecode-1.3.0.dev181594385/braindecode/version.py +0 -1
  41. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/LICENSE.txt +0 -0
  42. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/MANIFEST.in +0 -0
  43. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/NOTICE.txt +0 -0
  44. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/README.rst +0 -0
  45. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/__init__.py +0 -0
  46. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/augmentation/__init__.py +0 -0
  47. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/augmentation/base.py +0 -0
  48. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/augmentation/functional.py +0 -0
  49. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/augmentation/transforms.py +0 -0
  50. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/classifier.py +0 -0
  51. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/bbci.py +0 -0
  52. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/bcicomp.py +0 -0
  53. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/bids.py +0 -0
  54. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/experimental.py +0 -0
  55. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/mne.py +0 -0
  56. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/nmt.py +0 -0
  57. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
  58. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/sleep_physionet.py +0 -0
  59. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/tuh.py +0 -0
  60. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datasets/xy.py +0 -0
  61. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/datautil/util.py +0 -0
  62. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/eegneuralnet.py +0 -0
  63. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/functional/__init__.py +0 -0
  64. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/functional/functions.py +0 -0
  65. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/functional/initialization.py +0 -0
  66. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/atcnet.py +0 -0
  67. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/attentionbasenet.py +0 -0
  68. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/attn_sleep.py +0 -0
  69. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/base.py +0 -0
  70. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/bendr.py +0 -0
  71. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/biot.py +0 -0
  72. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/contrawr.py +0 -0
  73. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/ctnet.py +0 -0
  74. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/deep4.py +0 -0
  75. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/deepsleepnet.py +0 -0
  76. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/eegconformer.py +0 -0
  77. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/eeginception_erp.py +0 -0
  78. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/eeginception_mi.py +0 -0
  79. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/eegitnet.py +0 -0
  80. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/eegminer.py +0 -0
  81. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/eegnet.py +0 -0
  82. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/eegnex.py +0 -0
  83. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/eegsimpleconv.py +0 -0
  84. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/eegtcnet.py +0 -0
  85. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/fblightconvnet.py +0 -0
  86. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/hybrid.py +0 -0
  87. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/ifnet.py +0 -0
  88. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/labram.py +0 -0
  89. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/msvtnet.py +0 -0
  90. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/patchedtransformer.py +0 -0
  91. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/sccnet.py +0 -0
  92. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/shallow_fbcsp.py +0 -0
  93. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/signal_jepa.py +0 -0
  94. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/sinc_shallow.py +0 -0
  95. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
  96. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
  97. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/sparcnet.py +0 -0
  98. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/sstdpn.py +0 -0
  99. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/syncnet.py +0 -0
  100. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/tcn.py +0 -0
  101. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/tidnet.py +0 -0
  102. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/tsinception.py +0 -0
  103. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/models/usleep.py +0 -0
  104. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/modules/__init__.py +0 -0
  105. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/modules/activation.py +0 -0
  106. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/modules/attention.py +0 -0
  107. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/modules/blocks.py +0 -0
  108. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/modules/convolution.py +0 -0
  109. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/modules/layers.py +0 -0
  110. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/modules/linear.py +0 -0
  111. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/modules/parametrization.py +0 -0
  112. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/modules/stats.py +0 -0
  113. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/modules/util.py +0 -0
  114. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/modules/wrapper.py +0 -0
  115. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/regressor.py +0 -0
  116. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/samplers/__init__.py +0 -0
  117. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/samplers/base.py +0 -0
  118. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/samplers/ssl.py +0 -0
  119. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/training/__init__.py +0 -0
  120. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/training/callbacks.py +0 -0
  121. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/training/losses.py +0 -0
  122. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/training/scoring.py +0 -0
  123. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/util.py +0 -0
  124. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/visualization/__init__.py +0 -0
  125. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/visualization/confusion_matrices.py +0 -0
  126. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode/visualization/gradients.py +0 -0
  127. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode.egg-info/dependency_links.txt +0 -0
  128. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/braindecode.egg-info/top_level.txt +0 -0
  129. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/Makefile +0 -0
  130. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/_templates/autosummary/class.rst +0 -0
  131. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/_templates/autosummary/function.rst +0 -0
  132. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/cite.rst +0 -0
  133. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/help.rst +0 -0
  134. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/install/install.rst +0 -0
  135. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/categorization/attention.rst +0 -0
  136. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/categorization/channel.rst +0 -0
  137. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/categorization/convolution.rst +0 -0
  138. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/categorization/filterbank.rst +0 -0
  139. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/categorization/gnn.rst +0 -0
  140. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/categorization/interpretable.rst +0 -0
  141. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/categorization/lbm.rst +0 -0
  142. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/categorization/recurrent.rst +0 -0
  143. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/categorization/spd.rst +0 -0
  144. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/models.rst +0 -0
  145. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/models_categorization.rst +0 -0
  146. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/models_table.rst +0 -0
  147. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/models/models_visualization.rst +0 -0
  148. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/docs/sg_execution_times.rst +0 -0
  149. {braindecode-1.3.0.dev181594385 → braindecode-1.3.0.dev182556615}/setup.cfg +0 -0
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braindecode
3
- Version: 1.3.0.dev181594385
3
+ Version: 1.3.0.dev182556615
4
4
  Summary: Deep learning software to decode EEG, ECG or MEG signals
5
- Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>
5
+ Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Alexandre Gramfort <agramfort@meta.com>
6
6
  Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
7
7
  License: BSD-3-Clause
8
8
  Project-URL: homepage, https://braindecode.org
@@ -38,12 +38,14 @@ Requires-Dist: wfdb
38
38
  Requires-Dist: h5py
39
39
  Requires-Dist: linear_attention_transformer
40
40
  Requires-Dist: docstring_inheritance
41
+ Requires-Dist: rotary_embedding_torch
41
42
  Provides-Extra: moabb
42
43
  Requires-Dist: moabb>=1.2.0; extra == "moabb"
43
44
  Provides-Extra: eegprep
44
45
  Requires-Dist: eegprep[eeglabio]>=0.1.1; extra == "eegprep"
45
- Provides-Extra: hug
46
- Requires-Dist: huggingface_hub[torch]>=0.20.0; extra == "hug"
46
+ Provides-Extra: hub
47
+ Requires-Dist: huggingface_hub[torch]>=0.20.0; extra == "hub"
48
+ Requires-Dist: zarr<3.0,>=2.18; extra == "hub"
47
49
  Provides-Extra: tests
48
50
  Requires-Dist: pytest; extra == "tests"
49
51
  Requires-Dist: pytest-cov; extra == "tests"
@@ -69,7 +71,11 @@ Requires-Dist: pre-commit; extra == "docs"
69
71
  Requires-Dist: openneuro-py; extra == "docs"
70
72
  Requires-Dist: plotly; extra == "docs"
71
73
  Provides-Extra: all
72
- Requires-Dist: braindecode[docs,eegprep,hug,moabb,tests]; extra == "all"
74
+ Requires-Dist: braindecode[moabb]; extra == "all"
75
+ Requires-Dist: braindecode[hub]; extra == "all"
76
+ Requires-Dist: braindecode[tests]; extra == "all"
77
+ Requires-Dist: braindecode[docs]; extra == "all"
78
+ Requires-Dist: braindecode[eegprep]; extra == "all"
73
79
  Dynamic: license-file
74
80
 
75
81
  .. image:: https://badges.gitter.im/braindecodechat/community.svg
@@ -12,7 +12,7 @@ from .base import (
12
12
  from .bcicomp import BCICompetitionIVDataset4
13
13
  from .bids import BIDSDataset, BIDSEpochsDataset
14
14
  from .mne import create_from_mne_epochs, create_from_mne_raw
15
- from .moabb import BNCI2014001, HGD, MOABBDataset
15
+ from .moabb import BNCI2014_001, HGD, MOABBDataset
16
16
  from .nmt import NMT
17
17
  from .sleep_physio_challe_18 import SleepPhysionetChallenge2018
18
18
  from .sleep_physionet import SleepPhysionet
@@ -29,7 +29,7 @@ __all__ = [
29
29
  "BIDSEpochsDataset",
30
30
  "MOABBDataset",
31
31
  "HGD",
32
- "BNCI2014001",
32
+ "BNCI2014_001",
33
33
  "create_from_mne_raw",
34
34
  "create_from_mne_epochs",
35
35
  "TUH",
@@ -19,7 +19,7 @@ import warnings
19
19
  from abc import abstractmethod
20
20
  from collections.abc import Callable
21
21
  from glob import glob
22
- from typing import Generic, Iterable, no_type_check
22
+ from typing import Any, Generic, Iterable, no_type_check
23
23
 
24
24
  import mne.io
25
25
  import numpy as np
@@ -28,6 +28,9 @@ from mne.utils.docs import deprecated
28
28
  from torch.utils.data import ConcatDataset, Dataset
29
29
  from typing_extensions import TypeVar
30
30
 
31
+ from .hub import HubDatasetMixin
32
+ from .registry import register_dataset
33
+
31
34
 
32
35
  def _create_description(description) -> pd.Series:
33
36
  if description is not None:
@@ -97,6 +100,7 @@ class RecordDataset(Dataset[tuple[np.ndarray, int | str, tuple[int, int, int]]])
97
100
  T = TypeVar("T", bound=RecordDataset)
98
101
 
99
102
 
103
+ @register_dataset
100
104
  class RawDataset(RecordDataset):
101
105
  """Returns samples from an mne.io.Raw object along with a target.
102
106
 
@@ -129,6 +133,7 @@ class RawDataset(RecordDataset):
129
133
 
130
134
  # save target name for load/save later
131
135
  self.target_name = self._target_name(target_name)
136
+ self.raw_preproc_kwargs: list[dict[str, Any]] = []
132
137
 
133
138
  def __getitem__(self, index):
134
139
  X = self.raw[:, index][0]
@@ -176,10 +181,12 @@ class RawDataset(RecordDataset):
176
181
  "If you want to type a Braindecode dataset (i.e. RawDataset|EEGWindowsDataset|WindowsDataset), "
177
182
  "use the RecordDataset class instead."
178
183
  )
184
+ @register_dataset
179
185
  class BaseDataset(RawDataset):
180
186
  pass
181
187
 
182
188
 
189
+ @register_dataset
183
190
  class EEGWindowsDataset(RecordDataset):
184
191
  """Returns windows from an mne.Raw object, its window indices, along with a target.
185
192
 
@@ -235,6 +242,7 @@ class EEGWindowsDataset(RecordDataset):
235
242
  ].to_numpy()
236
243
  if self.targets_from == "metadata":
237
244
  self.y = metadata.loc[:, "target"].to_list()
245
+ self.raw_preproc_kwargs: list[dict[str, Any]] = []
238
246
 
239
247
  def __getitem__(self, index: int):
240
248
  """Get a window and its target.
@@ -285,6 +293,7 @@ class EEGWindowsDataset(RecordDataset):
285
293
  return len(self.crop_inds)
286
294
 
287
295
 
296
+ @register_dataset
288
297
  class WindowsDataset(RecordDataset):
289
298
  """Returns windows from an mne.Epochs object along with a target.
290
299
 
@@ -334,6 +343,8 @@ class WindowsDataset(RecordDataset):
334
343
  ].to_numpy()
335
344
  if self.targets_from == "metadata":
336
345
  self.y = metadata.loc[:, "target"].to_list()
346
+ self.raw_preproc_kwargs: list[dict[str, Any]] = []
347
+ self.window_preproc_kwargs: list[dict[str, Any]] = []
337
348
 
338
349
  def __getitem__(self, index: int):
339
350
  """Get a window and its target.
@@ -374,12 +385,16 @@ class WindowsDataset(RecordDataset):
374
385
  return len(self.windows.events)
375
386
 
376
387
 
377
- class BaseConcatDataset(ConcatDataset, Generic[T]):
388
+ @register_dataset
389
+ class BaseConcatDataset(ConcatDataset, HubDatasetMixin, Generic[T]):
378
390
  """A base class for concatenated datasets.
379
391
 
380
392
  Holds either mne.Raw or mne.Epoch in self.datasets and has
381
393
  a pandas DataFrame with additional description.
382
394
 
395
+ Includes Hugging Face Hub integration via HubDatasetMixin for
396
+ uploading and downloading datasets.
397
+
383
398
  Parameters
384
399
  ----------
385
400
  list_of_ds : list
@@ -794,7 +809,7 @@ class BaseConcatDataset(ConcatDataset, Generic[T]):
794
809
  kwargs = getattr(ds, kwargs_name)
795
810
  if kwargs is not None:
796
811
  with open(kwargs_file_path, "w") as f:
797
- json.dump(kwargs, f)
812
+ json.dump(kwargs, f, indent=2)
798
813
 
799
814
  @staticmethod
800
815
  def _save_target_name(sub_dir, ds):