71 lines
2.1 KiB
Python
71 lines
2.1 KiB
Python
# Authors: The MNE-Python contributors.
|
|
# License: BSD-3-Clause
|
|
# Copyright the MNE-Python contributors.
|
|
|
|
from collections import OrderedDict
|
|
from inspect import signature
|
|
|
|
from ..utils import _check_fname, logger
|
|
|
|
|
|
def what(fname):
|
|
"""Try to determine the type of the FIF file.
|
|
|
|
Parameters
|
|
----------
|
|
fname : path-like
|
|
The filename. Should end in ``.fif`` or ``.fif.gz``.
|
|
|
|
Returns
|
|
-------
|
|
what : str | None
|
|
The type of the file. Will be 'unknown' if it could not be determined.
|
|
|
|
Notes
|
|
-----
|
|
.. versionadded:: 0.19
|
|
"""
|
|
from ..bem import read_bem_solution, read_bem_surfaces
|
|
from ..cov import read_cov
|
|
from ..epochs import read_epochs
|
|
from ..event import read_events
|
|
from ..evoked import read_evokeds
|
|
from ..forward import read_forward_solution
|
|
from ..io import read_raw_fif
|
|
from ..minimum_norm import read_inverse_operator
|
|
from ..preprocessing import read_ica
|
|
from ..proj import read_proj
|
|
from ..source_space import read_source_spaces
|
|
from ..transforms import read_trans
|
|
from .meas_info import read_fiducials
|
|
|
|
_check_fname(fname, overwrite="read", must_exist=True)
|
|
checks = OrderedDict()
|
|
checks["raw"] = read_raw_fif
|
|
checks["ica"] = read_ica
|
|
checks["epochs"] = read_epochs
|
|
checks["evoked"] = read_evokeds
|
|
checks["forward"] = read_forward_solution
|
|
checks["inverse"] = read_inverse_operator
|
|
checks["src"] = read_source_spaces
|
|
checks["bem solution"] = read_bem_solution
|
|
checks["bem surfaces"] = read_bem_surfaces
|
|
checks["cov"] = read_cov
|
|
checks["transform"] = read_trans
|
|
checks["events"] = read_events
|
|
checks["fiducials"] = read_fiducials
|
|
checks["proj"] = read_proj
|
|
for what, func in checks.items():
|
|
args = signature(func).parameters
|
|
assert "verbose" in args, func
|
|
kwargs = dict(verbose="error")
|
|
if "preload" in args:
|
|
kwargs["preload"] = False
|
|
try:
|
|
func(fname, **kwargs)
|
|
except Exception as exp:
|
|
logger.debug(f"Not {what}: {exp}")
|
|
else:
|
|
return what
|
|
return "unknown"
|