eegdash 0.3.6.dev97__tar.gz → 0.3.6.dev170720560__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.
Potentially problematic release.
This version of eegdash might be problematic. Click here for more details.
- {eegdash-0.3.6.dev97/eegdash.egg-info → eegdash-0.3.6.dev170720560}/PKG-INFO +3 -1
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/docs/source/conf.py +20 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/__init__.py +1 -1
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/api.py +38 -57
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/dataset.py +1 -1
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560/eegdash.egg-info}/PKG-INFO +3 -1
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash.egg-info/SOURCES.txt +1 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash.egg-info/requires.txt +2 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/pyproject.toml +3 -1
- eegdash-0.3.6.dev170720560/tests/test_database.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/tests/test_offline.py +6 -4
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/LICENSE +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/MANIFEST.in +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/README.md +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/docs/Makefile +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/docs/source/dataset_summary.rst +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/docs/source/index.rst +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/docs/source/install/install.rst +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/docs/source/install/install_pip.rst +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/docs/source/install/install_source.rst +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/docs/source/overview.rst +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/data_config.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/data_utils.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/dataset_summary.csv +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/__init__.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/datasets.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/decorators.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/extractors.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/__init__.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/complexity.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/connectivity.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/csp.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/dimensionality.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/signal.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/spectral.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/utils.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/inspect.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/serialization.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/utils.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/mongodb.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/preprocessing.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/registry.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/utils.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash.egg-info/dependency_links.txt +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash.egg-info/top_level.txt +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/setup.cfg +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/tests/test_api.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/tests/test_challenge_kwargs.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/tests/test_correctness.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/tests/test_dataset.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/tests/test_dataset_registration.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/tests/test_eegdash.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/tests/test_functional.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/tests/test_init.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/tests/test_minirelease.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/tests/test_mongo_connection.py +0 -0
- {eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/tests/test_query.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: eegdash
|
|
3
|
-
Version: 0.3.6.
|
|
3
|
+
Version: 0.3.6.dev170720560
|
|
4
4
|
Summary: EEG data for machine learning
|
|
5
5
|
Author-email: Young Truong <dt.young112@gmail.com>, Arnaud Delorme <adelorme@gmail.com>, Aviv Dotan <avivd220@gmail.com>, Oren Shriki <oren70@gmail.com>, Bruno Aristimunha <b.aristimunha@gmail.com>
|
|
6
6
|
License-Expression: GPL-3.0-only
|
|
@@ -48,6 +48,7 @@ Requires-Dist: pytest_cases; extra == "tests"
|
|
|
48
48
|
Requires-Dist: pytest-benchmark; extra == "tests"
|
|
49
49
|
Provides-Extra: dev
|
|
50
50
|
Requires-Dist: pre-commit; extra == "dev"
|
|
51
|
+
Requires-Dist: ipykernel; extra == "dev"
|
|
51
52
|
Provides-Extra: docs
|
|
52
53
|
Requires-Dist: sphinx; extra == "docs"
|
|
53
54
|
Requires-Dist: sphinx_design; extra == "docs"
|
|
@@ -55,6 +56,7 @@ Requires-Dist: sphinx_gallery; extra == "docs"
|
|
|
55
56
|
Requires-Dist: sphinx_rtd_theme; extra == "docs"
|
|
56
57
|
Requires-Dist: pydata-sphinx-theme; extra == "docs"
|
|
57
58
|
Requires-Dist: sphinx-autobuild; extra == "docs"
|
|
59
|
+
Requires-Dist: sphinx-sitemap; extra == "docs"
|
|
58
60
|
Requires-Dist: numpydoc; extra == "docs"
|
|
59
61
|
Requires-Dist: memory_profiler; extra == "docs"
|
|
60
62
|
Requires-Dist: ipython; extra == "docs"
|
|
@@ -31,6 +31,8 @@ extensions = [
|
|
|
31
31
|
# "autoapi.extension",
|
|
32
32
|
"numpydoc",
|
|
33
33
|
"sphinx_gallery.gen_gallery",
|
|
34
|
+
# Generate sitemap.xml for search engines
|
|
35
|
+
"sphinx_sitemap",
|
|
34
36
|
]
|
|
35
37
|
|
|
36
38
|
templates_path = ["_templates"]
|
|
@@ -45,6 +47,17 @@ html_favicon = "_static/eegdash_icon.png"
|
|
|
45
47
|
html_title = "EEG Dash"
|
|
46
48
|
html_short_title = "EEG Dash"
|
|
47
49
|
html_css_files = ["custom.css"]
|
|
50
|
+
html_js_files = [
|
|
51
|
+
(
|
|
52
|
+
"https://www.googletagmanager.com/gtag/js?id=G-CHY0V439ZQ",
|
|
53
|
+
{"async": "async"},
|
|
54
|
+
),
|
|
55
|
+
"js/ga4.js",
|
|
56
|
+
]
|
|
57
|
+
|
|
58
|
+
# Required for sphinx-sitemap: set the canonical base URL of the site
|
|
59
|
+
# Make sure this matches the actual published docs URL and ends with '/'
|
|
60
|
+
html_baseurl = "https://sccn.github.io/eegdash/"
|
|
48
61
|
|
|
49
62
|
html_theme_options = {
|
|
50
63
|
"icon_links_label": "External Links", # for screen reader
|
|
@@ -94,6 +107,9 @@ html_theme_options = {
|
|
|
94
107
|
|
|
95
108
|
html_sidebars = {"api": [], "dataset_summary": [], "installation": []}
|
|
96
109
|
|
|
110
|
+
# Copy extra files (e.g., robots.txt) to the output root
|
|
111
|
+
html_extra_path = ["_extra"]
|
|
112
|
+
|
|
97
113
|
|
|
98
114
|
# -- Extension configurations ------------------------------------------------
|
|
99
115
|
autoclass_content = "both"
|
|
@@ -140,3 +156,7 @@ def setup(app):
|
|
|
140
156
|
)
|
|
141
157
|
if not os.path.exists(backreferences_dir):
|
|
142
158
|
os.makedirs(backreferences_dir)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
# Configure sitemap URL format (omit .html where possible)
|
|
162
|
+
sitemap_url_scheme = "{link}"
|
|
@@ -6,9 +6,11 @@ from typing import Any, Mapping
|
|
|
6
6
|
|
|
7
7
|
import mne
|
|
8
8
|
import numpy as np
|
|
9
|
+
import platformdirs
|
|
9
10
|
import xarray as xr
|
|
10
11
|
from dotenv import load_dotenv
|
|
11
12
|
from joblib import Parallel, delayed
|
|
13
|
+
from mne.utils import warn
|
|
12
14
|
from mne_bids import get_bids_path_from_fname, read_raw_bids
|
|
13
15
|
from pymongo import InsertOne, UpdateOne
|
|
14
16
|
from s3fs import S3FileSystem
|
|
@@ -693,9 +695,8 @@ class EEGDash:
|
|
|
693
695
|
class EEGDashDataset(BaseConcatDataset):
|
|
694
696
|
def __init__(
|
|
695
697
|
self,
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
dataset: str | list[str] | None = None,
|
|
698
|
+
cache_dir: str | Path,
|
|
699
|
+
query: dict[str, Any] = None,
|
|
699
700
|
description_fields: list[str] = [
|
|
700
701
|
"subject",
|
|
701
702
|
"session",
|
|
@@ -706,9 +707,9 @@ class EEGDashDataset(BaseConcatDataset):
|
|
|
706
707
|
"sex",
|
|
707
708
|
],
|
|
708
709
|
s3_bucket: str | None = None,
|
|
709
|
-
data_dir: str | None = None,
|
|
710
710
|
eeg_dash_instance=None,
|
|
711
711
|
records: list[dict] | None = None,
|
|
712
|
+
offline_mode: bool = False,
|
|
712
713
|
**kwargs,
|
|
713
714
|
):
|
|
714
715
|
"""Create a new EEGDashDataset from a given query or local BIDS dataset directory
|
|
@@ -754,34 +755,36 @@ class EEGDashDataset(BaseConcatDataset):
|
|
|
754
755
|
records : list[dict] | None
|
|
755
756
|
Optional list of pre-fetched metadata records. If provided, the dataset is
|
|
756
757
|
constructed directly from these records without querying MongoDB.
|
|
758
|
+
offline_mode : bool
|
|
759
|
+
If True, do not attempt to query MongoDB at all. This is useful if you want to
|
|
760
|
+
work with a local cache only, or if you are offline.
|
|
757
761
|
kwargs : dict
|
|
758
762
|
Additional keyword arguments to be passed to the EEGDashBaseDataset
|
|
759
763
|
constructor.
|
|
760
764
|
|
|
761
765
|
"""
|
|
762
|
-
self.cache_dir = cache_dir
|
|
766
|
+
self.cache_dir = Path(cache_dir or platformdirs.user_cache_dir("EEGDash"))
|
|
767
|
+
if not self.cache_dir.exists():
|
|
768
|
+
warn(f"Cache directory does not exist, creating it: {self.cache_dir}")
|
|
769
|
+
self.cache_dir.mkdir(exist_ok=True, parents=True)
|
|
763
770
|
self.s3_bucket = s3_bucket
|
|
764
771
|
self.eeg_dash = eeg_dash_instance
|
|
765
|
-
_owns_client = False
|
|
766
|
-
if self.eeg_dash is None and records is None:
|
|
767
|
-
self.eeg_dash = EEGDash()
|
|
768
|
-
_owns_client = True
|
|
769
772
|
|
|
770
773
|
# Separate query kwargs from other kwargs passed to the BaseDataset constructor
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
774
|
+
self.query = query or {}
|
|
775
|
+
self.query.update(
|
|
776
|
+
{k: v for k, v in kwargs.items() if k in EEGDash._ALLOWED_QUERY_FIELDS}
|
|
777
|
+
)
|
|
778
|
+
base_dataset_kwargs = {k: v for k, v in kwargs.items() if k not in self.query}
|
|
779
|
+
if "dataset" not in self.query:
|
|
780
|
+
raise ValueError("You must provide a 'dataset' argument")
|
|
775
781
|
|
|
776
|
-
|
|
777
|
-
# loading from a local directory), treat it as a query filter. Accept str or list.
|
|
778
|
-
if data_dir is None and dataset is not None:
|
|
779
|
-
# Allow callers to pass a single dataset id (str) or a list of them.
|
|
780
|
-
# If list is provided, let _build_query_from_kwargs turn it into $in later.
|
|
781
|
-
query_kwargs.setdefault("dataset", dataset)
|
|
782
|
+
self.data_dir = self.cache_dir / self.query["dataset"]
|
|
782
783
|
|
|
783
|
-
|
|
784
|
-
|
|
784
|
+
_owns_client = False
|
|
785
|
+
if self.eeg_dash is None and records is None:
|
|
786
|
+
self.eeg_dash = EEGDash()
|
|
787
|
+
_owns_client = True
|
|
785
788
|
|
|
786
789
|
try:
|
|
787
790
|
if records is not None:
|
|
@@ -795,42 +798,25 @@ class EEGDashDataset(BaseConcatDataset):
|
|
|
795
798
|
)
|
|
796
799
|
for record in self.records
|
|
797
800
|
]
|
|
798
|
-
elif
|
|
799
|
-
|
|
800
|
-
|
|
801
|
+
elif offline_mode: # only assume local data is complete if in offline mode
|
|
802
|
+
if self.data_dir.exists():
|
|
803
|
+
# This path loads from a local directory and is not affected by DB query logic
|
|
801
804
|
datasets = self.load_bids_dataset(
|
|
802
|
-
dataset=dataset
|
|
803
|
-
|
|
804
|
-
else (dataset[0] if dataset else None),
|
|
805
|
-
data_dir=data_dir,
|
|
805
|
+
dataset=self.query["dataset"],
|
|
806
|
+
data_dir=self.data_dir,
|
|
806
807
|
description_fields=description_fields,
|
|
807
808
|
s3_bucket=s3_bucket,
|
|
808
809
|
**base_dataset_kwargs,
|
|
809
810
|
)
|
|
810
811
|
else:
|
|
811
|
-
|
|
812
|
-
"
|
|
813
|
-
)
|
|
814
|
-
assert len(data_dir) == len(dataset), (
|
|
815
|
-
"Number of datasets and directories must match"
|
|
812
|
+
raise ValueError(
|
|
813
|
+
f"Offline mode is enabled, but local data_dir {self.data_dir} does not exist."
|
|
816
814
|
)
|
|
817
|
-
|
|
818
|
-
for i, _ in enumerate(data_dir):
|
|
819
|
-
datasets.extend(
|
|
820
|
-
self.load_bids_dataset(
|
|
821
|
-
dataset=dataset[i],
|
|
822
|
-
data_dir=data_dir[i],
|
|
823
|
-
description_fields=description_fields,
|
|
824
|
-
s3_bucket=s3_bucket,
|
|
825
|
-
**base_dataset_kwargs,
|
|
826
|
-
)
|
|
827
|
-
)
|
|
828
|
-
elif query is not None or query_kwargs:
|
|
815
|
+
elif self.query:
|
|
829
816
|
# This is the DB query path that we are improving
|
|
830
|
-
datasets = self.
|
|
831
|
-
query=query,
|
|
817
|
+
datasets = self._find_datasets(
|
|
818
|
+
query=self.eeg_dash._build_query_from_kwargs(**self.query),
|
|
832
819
|
description_fields=description_fields,
|
|
833
|
-
query_kwargs=query_kwargs,
|
|
834
820
|
base_dataset_kwargs=base_dataset_kwargs,
|
|
835
821
|
)
|
|
836
822
|
# We only need filesystem if we need to access S3
|
|
@@ -860,11 +846,10 @@ class EEGDashDataset(BaseConcatDataset):
|
|
|
860
846
|
return result
|
|
861
847
|
return None
|
|
862
848
|
|
|
863
|
-
def
|
|
849
|
+
def _find_datasets(
|
|
864
850
|
self,
|
|
865
851
|
query: dict[str, Any] | None,
|
|
866
852
|
description_fields: list[str],
|
|
867
|
-
query_kwargs: dict,
|
|
868
853
|
base_dataset_kwargs: dict,
|
|
869
854
|
) -> list[EEGDashBaseDataset]:
|
|
870
855
|
"""Helper method to find datasets in the MongoDB collection that satisfy the
|
|
@@ -888,11 +873,7 @@ class EEGDashDataset(BaseConcatDataset):
|
|
|
888
873
|
"""
|
|
889
874
|
datasets: list[EEGDashBaseDataset] = []
|
|
890
875
|
|
|
891
|
-
|
|
892
|
-
# Note: callers may accidentally pass an empty dict for `query` along with
|
|
893
|
-
# kwargs. In that case, treat it as if no query was provided and rely on kwargs.
|
|
894
|
-
# Always delegate merging of raw query + kwargs to EEGDash.find
|
|
895
|
-
self.records = self.eeg_dash.find(query, **query_kwargs)
|
|
876
|
+
self.records = self.eeg_dash.find(query)
|
|
896
877
|
|
|
897
878
|
for record in self.records:
|
|
898
879
|
description = {}
|
|
@@ -903,8 +884,8 @@ class EEGDashDataset(BaseConcatDataset):
|
|
|
903
884
|
datasets.append(
|
|
904
885
|
EEGDashBaseDataset(
|
|
905
886
|
record,
|
|
906
|
-
self.cache_dir,
|
|
907
|
-
self.s3_bucket,
|
|
887
|
+
cache_dir=self.cache_dir,
|
|
888
|
+
s3_bucket=self.s3_bucket,
|
|
908
889
|
description=description,
|
|
909
890
|
**base_dataset_kwargs,
|
|
910
891
|
)
|
|
@@ -335,7 +335,7 @@ class EEGChallengeDataset(EEGDashDataset):
|
|
|
335
335
|
s3_bucket = f"{s3_bucket}/{release}_L100_bdf"
|
|
336
336
|
|
|
337
337
|
super().__init__(
|
|
338
|
-
dataset=
|
|
338
|
+
dataset=RELEASE_TO_OPENNEURO_DATASET_MAP[release],
|
|
339
339
|
query=query,
|
|
340
340
|
cache_dir=cache_dir,
|
|
341
341
|
s3_bucket=s3_bucket,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: eegdash
|
|
3
|
-
Version: 0.3.6.
|
|
3
|
+
Version: 0.3.6.dev170720560
|
|
4
4
|
Summary: EEG data for machine learning
|
|
5
5
|
Author-email: Young Truong <dt.young112@gmail.com>, Arnaud Delorme <adelorme@gmail.com>, Aviv Dotan <avivd220@gmail.com>, Oren Shriki <oren70@gmail.com>, Bruno Aristimunha <b.aristimunha@gmail.com>
|
|
6
6
|
License-Expression: GPL-3.0-only
|
|
@@ -48,6 +48,7 @@ Requires-Dist: pytest_cases; extra == "tests"
|
|
|
48
48
|
Requires-Dist: pytest-benchmark; extra == "tests"
|
|
49
49
|
Provides-Extra: dev
|
|
50
50
|
Requires-Dist: pre-commit; extra == "dev"
|
|
51
|
+
Requires-Dist: ipykernel; extra == "dev"
|
|
51
52
|
Provides-Extra: docs
|
|
52
53
|
Requires-Dist: sphinx; extra == "docs"
|
|
53
54
|
Requires-Dist: sphinx_design; extra == "docs"
|
|
@@ -55,6 +56,7 @@ Requires-Dist: sphinx_gallery; extra == "docs"
|
|
|
55
56
|
Requires-Dist: sphinx_rtd_theme; extra == "docs"
|
|
56
57
|
Requires-Dist: pydata-sphinx-theme; extra == "docs"
|
|
57
58
|
Requires-Dist: sphinx-autobuild; extra == "docs"
|
|
59
|
+
Requires-Dist: sphinx-sitemap; extra == "docs"
|
|
58
60
|
Requires-Dist: numpydoc; extra == "docs"
|
|
59
61
|
Requires-Dist: memory_profiler; extra == "docs"
|
|
60
62
|
Requires-Dist: ipython; extra == "docs"
|
|
@@ -67,7 +67,8 @@ tests = [
|
|
|
67
67
|
'pytest-benchmark',
|
|
68
68
|
]
|
|
69
69
|
dev = [
|
|
70
|
-
"pre-commit"
|
|
70
|
+
"pre-commit",
|
|
71
|
+
"ipykernel"
|
|
71
72
|
]
|
|
72
73
|
|
|
73
74
|
docs = [
|
|
@@ -77,6 +78,7 @@ docs = [
|
|
|
77
78
|
"sphinx_rtd_theme",
|
|
78
79
|
"pydata-sphinx-theme",
|
|
79
80
|
"sphinx-autobuild",
|
|
81
|
+
"sphinx-sitemap",
|
|
80
82
|
"numpydoc",
|
|
81
83
|
"memory_profiler",
|
|
82
84
|
"ipython",
|
|
File without changes
|
|
@@ -12,7 +12,9 @@ def test_dataset_loads_without_eegdash(monkeypatch):
|
|
|
12
12
|
"""Dataset should load from records without contacting network resources."""
|
|
13
13
|
eeg_dash = EEGDash()
|
|
14
14
|
|
|
15
|
-
records = eeg_dash.find(
|
|
15
|
+
records = eeg_dash.find(
|
|
16
|
+
dataset="ds005509", subject="NDARAC350XUM", task="RestingState"
|
|
17
|
+
)
|
|
16
18
|
|
|
17
19
|
# test with internet
|
|
18
20
|
dataset_internet = EEGDashDataset(
|
|
@@ -24,14 +26,14 @@ def test_dataset_loads_without_eegdash(monkeypatch):
|
|
|
24
26
|
# Monkeypatch any network calls inside EEGDashDataset to raise if called
|
|
25
27
|
monkeypatch.setattr(
|
|
26
28
|
EEGDashDataset,
|
|
27
|
-
"
|
|
29
|
+
"_find_datasets",
|
|
28
30
|
lambda *args, **kwargs: pytest.skip(
|
|
29
31
|
"Skipping network download in offline test"
|
|
30
32
|
),
|
|
31
33
|
)
|
|
32
34
|
monkeypatch.setattr(
|
|
33
35
|
EEGDashDataset,
|
|
34
|
-
"
|
|
36
|
+
"_find_datasets",
|
|
35
37
|
lambda *args, **kwargs: pytest.skip(
|
|
36
38
|
"Skipping network download in offline test"
|
|
37
39
|
),
|
|
@@ -39,7 +41,7 @@ def test_dataset_loads_without_eegdash(monkeypatch):
|
|
|
39
41
|
# TO-DO: discover way to do this pytest
|
|
40
42
|
|
|
41
43
|
dataset_without_internet = EEGDashDataset(
|
|
42
|
-
records=records, cache_dir=CACHE_DIR, eeg_dash_instance=None
|
|
44
|
+
dataset="ds005509", records=records, cache_dir=CACHE_DIR, eeg_dash_instance=None
|
|
43
45
|
)
|
|
44
46
|
|
|
45
47
|
assert dataset_internet.datasets[0].raw == dataset_without_internet.datasets[0].raw
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/__init__.py
RENAMED
|
File without changes
|
{eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/complexity.py
RENAMED
|
File without changes
|
{eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/connectivity.py
RENAMED
|
File without changes
|
|
File without changes
|
{eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/dimensionality.py
RENAMED
|
File without changes
|
|
File without changes
|
{eegdash-0.3.6.dev97 → eegdash-0.3.6.dev170720560}/eegdash/features/feature_bank/spectral.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|