Ensure we have a source space.
(src, kind=None, extra="", verbose=None)
| 2653 | |
| 2654 | @verbose |
| 2655 | def _ensure_src(src, kind=None, extra="", verbose=None): |
| 2656 | """Ensure we have a source space.""" |
| 2657 | _check_option("kind", kind, (None, "surface", "volume", "mixed", "discrete")) |
| 2658 | msg = f"src must be a string or instance of SourceSpaces{extra}" |
| 2659 | if _path_like(src): |
| 2660 | src = str(src) |
| 2661 | if not op.isfile(src): |
| 2662 | raise OSError(f'Source space file "{src}" not found') |
| 2663 | logger.info(f"Reading {src}...") |
| 2664 | src = read_source_spaces(src, verbose=False) |
| 2665 | if not isinstance(src, SourceSpaces): |
| 2666 | raise ValueError(f"{msg}, got {src} (type {type(src)})") |
| 2667 | if kind is not None: |
| 2668 | if src.kind != kind and src.kind == "mixed": |
| 2669 | if kind == "surface": |
| 2670 | src = src[:2] |
| 2671 | elif kind == "volume": |
| 2672 | src = src[2:] |
| 2673 | if src.kind != kind: |
| 2674 | raise ValueError(f"Source space must contain {kind} type, got {src.kind}") |
| 2675 | return src |
| 2676 | |
| 2677 | |
| 2678 | def _ensure_src_subject(src, subject): |
no test coverage detected