CoolFace
Apppublic

Aluode/PerceptionLabPortable

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
config.cpython-310.pyc294 linesDownload Raw Back to __pycache__
1o

2'�Yi���@stdZddlZddlZddlZddlZddlZddlmZddl	Z	ddl3Z4ddlZddlZddl
Z
ddlmZmZddlmZddlmZddlmZddlmZddlmZd	d5lmZmZd	dlmZm Z m!Z!m"Z"m#Z#d	dl$m%Z%d	d
l&m'Z'da(Gdd�de)�Z*dd�Z+dd�Z,idd�dd�dd�dd�dd�dd�d d!�d"d#�d$d%�d&d'�d(d)�d*d+�d,d-�d.d/�d0d1�d2d3�d4d5�id6d7�d8d9�d:d;�d<d=�d>d?�d@dA�dBdC�dDdE�dFdG�dHdI�dJdK�dLdM�dNdO�dPdQ�dRdS�dTdU�dVdW��idXdY�dZd[�d\d]�d^d_�d`da�dbdc�ddde�dfdg�dhdi�djdk�dldk�dmdn�dodp�dqdr�dsdt�dudv�dwdx��idydz�d{d|�d}d~�dd��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d���Z-d�Z.ej/d�d���Z0d�d�d��Z1d�d�d��Z2d�d�d��Z3d�d�d��Z4d�d�d��Z5d�d�d��Z6e%d�d�d���Z7d�d��Z8d�d��Z9d�Z:ed	d��d�d���Z;d�d��Z<d�d��Z=		�d�d�d�d�d��d�d��Z>d�d��Z?d�d��Z@dS)�zThe config functions.�N)�	lru_cache�partial)�
import_module)�Path)�URLError)�urlopen)�parse�)�logger�warn)�_check_fname�
_check_option�_check_qt_version�_soft_import�_validate_type)�fill_doc)�_plc@seZdZdZdS)�UnknownPlatformErrorz'Exception raised for unknown platforms.N)�__name__�6__module__�__qualname__�__doc__�rr�zE:\DocsHouse\542 percep lab latest\PerceptionLab\PerceptionLab_Portable\python_embed\Lib\site-packages\mne/utils/config.pyr(srcCs4|durt�|�std|�d���td|dd�dS)ajSet the directory to be used for temporary file storage.7 8    This directory is used by joblib to store memmapped arrays,9    which reduces memory requirements and speeds up parallel10    computation.11 12    Parameters13    ----------14    cache_dir : str or None15        Directory to use for temporary file storage. None disables16        temporary file storage.17    Nz18Directory z does not exist�
MNE_CACHE_DIRF��set_env)�op�exists�OSError�19set_config)�	cache_dirrrr�
set_cache_dir,s
r"cCsHt|tdfd�|dur|ddvrtdt|�����td|dd�dS)	aUSet the minimum size for memmaping of arrays for parallel processing.20 21    Parameters22    ----------23    memmap_min_size : str or None24        Threshold on the minimum size of arrays that triggers automated memory25        mapping for parallel processing, e.g., '1M' for 1 megabyte.26        Use None to disable memmaping of large arrays.27    N�memmap_min_size�����)�K�M�GzRThe size has to be given in kilo-, mega-, or gigabytes, e.g., 100K, 500M, 1G, got �MNE_MEMMAP_MIN_SIZEFr)r�str�28ValueError�reprr )r#rrr�set_memmap_min_size?s29��r,ZMNE_3D_OPTION_ANTIALIASz9bool, whether to use full-screen antialiasing in 3D plotsZMNE_3D_OPTION_DEPTH_PEELINGz.bool, whether to use depth peeling in 3D plotsZMNE_3D_OPTION_MULTI_SAMPLESz:int, number of samples to use for full-screen antialiasingZMNE_3D_OPTION_SMOOTH_SHADINGz/bool, whether to use smooth shading in 3D plotsZMNE_3D_OPTION_THEMEz8str, the color theme (light or dark) to use for 3D plotsZMNE_BROWSE_RAW_SIZEz=tuple, width and height of the raw browser window (in inches)�MNE_BROWSER_BACKENDzHstr, the backend to use for the MNE Browse Raw window (qt or matplotlib)ZMNE_BROWSER_OVERVIEW_MODEzdstr, the overview mode to use in the MNE Browse Raw window )(see mne.viz.plot_raw for valid options)ZMNE_BROWSER_PRECOMPUTEzAbool, whether to precompute raw data in the MNE Browse Raw windowZMNE_BROWSER_THEMEz;str, the color theme (light or dark) to use for the browserZMNE_BROWSER_USE_OPENGLzFbool, whether to use OpenGL for rendering in the MNE Browse Raw windowrz7str, path to the cache directory for parallel executionZMNE_COREG_ADVANCED_RENDERINGz;bool, whether to use advanced OpenGL rendering in mne coregZMNE_COREG_COPY_ANNOTz9bool, whether to copy the annotation files during warpingZMNE_COREG_FULLSCREENz2bool, whether to use full-screen mode in mne coregZMNE_COREG_GUESS_MRI_SUBJECTz3bool, whether to guess the MRI subject in mne coregZMNE_COREG_HEAD_HIGH_RESz7bool, whether to use high-res head surface in mne coregZMNE_COREG_HEAD_OPACITYz2bool, the head surface opacity to use in mne coregZMNE_COREG_HEAD_INSIDEzkbool, whether to add an opaque inner scalp head surface to help occlude points behind the head in mne coregZMNE_COREG_INTERACTIONz:str, interaction style in mne coreg (trackball or terrain)ZMNE_COREG_MARK_INSIDEzAbool, whether to mark points inside the head surface in mne coregZMNE_COREG_PREPARE_BEMzDbool, whether to prepare the BEM solution after warping in mne coregZMNE_COREG_ORIENT_TO_SURFACEzQbool, whether to orient the digitization markers to the head surface in mne coregZMNE_COREG_SCALE_LABELSzAbool, whether to scale the MRI labels during warping in mne coregZMNE_COREG_SCALE_BY_DISTANCEz]bool, whether to scale the digitization markers by their distance from the scalp in mne coregZMNE_COREG_SCENE_SCALEzCfloat, the scale factor of the 3D scene in mne coreg (default 0.16)ZMNE_COREG_WINDOW_HEIGHTz int, window height for mne coregZMNE_COREG_WINDOW_WIDTHzint, window width for mne coregZMNE_COREG_SUBJECTS_DIRz1str, path to the subjects directory for mne coregZMNE_CUDA_DEVICEz*int, CUDA device to use for GPU processingZMNE_DATAzstr, default data directoryZMNE_DATASETS_BRAINSTORM_PATHzstr, path for brainstorm dataZMNE_DATASETS_EEGBCI_PATHzstr, path for EEGBCI dataZMNE_DATASETS_EPILEPSY_ECOG_PATHz str, path for epilepsy_ecog dataZMNE_DATASETS_HF_SEF_PATHzstr, path for HF_SEF dataZMNE_DATASETS_MEGSIM_PATHzstr, path for MEGSIM dataZMNE_DATASETS_MISC_PATHzstr, path for misc dataZMNE_DATASETS_MTRF_PATHzstr, path for MTRF dataZMNE_DATASETS_SAMPLE_PATHzstr, path for sample dataZMNE_DATASETS_SOMATO_PATHzstr, path for somato dataZMNE_DATASETS_MULTIMODAL_PATHzstr, path for multimodal dataZMNE_DATASETS_FNIRS_MOTOR_PATHzstr, path for fnirs_motor dataZMNE_DATASETS_OPM_PATHzstr, path for OPM dataZ$MNE_DATASETS_SPM_FACE_DATASETS_TESTSzstr, path for spm_face dataZMNE_DATASETS_SPM_FACE_PATHZMNE_DATASETS_TESTING_PATHzstr, path for testing dataZ&MNE_DATASETS_VISUAL_92_CATEGORIES_PATHz'str, path for visual_92_categories dataZMNE_DATASETS_KILOWORD_PATHzstr, path for kiloword dataZMNE_DATASETS_FIELDTRIP_CMC_PATHz str, path for fieldtrip_cmc dataZMNE_DATASETS_PHANTOM_KIT_PATHzstr, path for phantom_kit dataZMNE_DATASETS_PHANTOM_4DBTI_PATHz str, path for phantom_4dbti dataZ MNE_DATASETS_PHANTOM_KERNEL_PATHz!str, path for phantom_kernel dataZMNE_DATASETS_LIMO_PATHzstr, path for limo dataZMNE_DATASETS_REFMEG_NOISE_PATHzstr, path for refmeg_noise dataZMNE_DATASETS_SSVEP_PATHzstr, path for ssvep dataZMNE_DATASETS_ERP_CORE_PATHzstr, path for erp_core dataZMNE_FORCE_SERIALz1bool, force serial rather than parallel executionZMNE_LOGGING_LEVELz�str or int, controls the level of verbosity of any function decorated with @verbose. See https://mne.tools/stable/auto_tutorials/intro/50_configure_mne.html#loggingr(z{str, threshold on the minimum size of arrays passed to the workers that triggers automated memory mapping, e.g., 1M or 0.5GZ
MNE_REPR_HTMLzLbool, represent some of our objects with rich HTML in a notebook environmentZMNE_SKIP_NETWORK_TESTSzbbool, used in a test decorator (@requires_good_network) to skip tests that include large downloadsZMNE_SKIP_TESTING_DATASET_TESTSzvbool, used in test decorators (@requires_spm_data, @requires_bstraw_data) to skip tests that require specific datasets�MNE_STIM_CHANNELz4string, the default channel name for mne.find_eventsZMNE_TQDMzUstr, either "tqdm", "tqdm.auto", or "off". Controls presence/absence of progress barsZMNE_USE_CUDAz&bool, use GPU for filtering/resamplingZ
MNE_USE_NUMBAzLbool, use Numba just-in-time compiler for some of our intensive computations�SUBJECTS_DIRz=path-like, directory of freesurfer MRI files for each subject)r.ZMNE_DATASETS_FNIRSZMNE_NIRSZMNE_KIT2FIFFZMNE_ICALABELZMNE_LSLc	os��tdddd�}t��}|r5|�d�}z
|j|dd�}|��Wnty4td|���t��}Ynw|�/t|g|�Ri|���}|VWd	�n1sQwYWd	�d	SWd	�d	S1siwYd	S)30a�31    Context manager that opens a file with an optional file lock.32 33    If the `filelock` package is available, a lock is acquired on a lock file34    based on the given path (by appending '.lock').35 36    Otherwise, a null context is used. The path is then opened in the37    specified mode.38 39    Parameters40    ----------41    path : str42        The path to the file to be opened.43    *args, **kwargs : optional44        Additional arguments and keyword arguments to be passed to the45        `open` function.46 47    �filelockzparallel config set and getF)�purpose�strictz.lock���timeoutzpCould not acquire lock file after 5 seconds, consider deleting it if you know the corresponding file is usable:48N)r�49contextlib�nullcontext�FileLock�acquire�TimeoutErrorr�open)�path�args�kwargsr0Zlock_contextZ	lock_path�fidrrr�50_open_lock�s*��51���P�r@Fc	Cs�t|d��5}zt�|�}Wnty)d|�d�}|r t|��t|�t�}Yn	wWd�|SWd�|S1s=wY|S)zSafely load a config file.�r+zThe MNE-Python config file (z1) is not a valid JSON file and might be corruptedN)r@�json�loadr*�RuntimeErrorr�dict)�config_path�raise_errorr?�config�msgrrr�_load_configs&52�53��54�
�55�
�
rJcCst�t|d�d�}|S)a�Get path to standard mne-python config file.56 57    Parameters58    ----------59    home_dir : str | None60        The folder that contains the .mne config folder.61        If None, it is found automatically.62 63    Returns64    -------65    config_path : str66        The path to the mne-python configuration file. On windows, this67        will be '%USERPROFILE%\.mne\mne-python.json'. On every other68        system, this will be ~/.mne/mne-python.json.69    ��home_dirzmne-python.json)r�join�_get_extra_data_path)rL�valrrr�get_config_path srPTcCs t|ttd�fdd�|dkrt��S|r#|dur#|tjvr#tj|St|d�}t�	|�s0i}nt70|�}|durQ|rOt|��t��
tj�}|�dd�|D��|S|dur�||vr�|r]d	nd}|rgd71|�d�nd}	|rmdnd}72d
|�d�}td|�d|�d|�d|	�|�d|73����|�||�S)a'Read MNE-Python preferences from environment or config file.74 75    Parameters76    ----------77    key : None | str78        The preference key to look for. The os environment is searched first,79        then the mne-python config file is parsed.80        If None, all the config parameters present in environment variables or81        the path are returned. If key is an empty string, a list of all valid82        keys (but not values) is returned.83    default : str | None84        Value to return if the key is not found.85    raise_error : bool86        If True, raise an error if the key is not found (instead of returning87        default).88    home_dir : str | None89        The folder that contains the .mne config folder.90        If None, it is found automatically.91    use_env : bool92        If True, consider env vars, if available.93        If False, only use MNE-Python configuration file values.94 95        .. versionadded:: 0.1896 97    Returns98    -------99    value : dict | str | None100        The preference key value.101 102    See Also103    --------104    set_config105    N�keyzstring or None�rKcSsi|]}|tj|�qSr)�os�environ)�.0rQrrr�106<dictcomp>l�zget_config.<locals>.<dictcomp>Tzthe environment or in the zeither os.environ["z("] = VALUE for a temporary solution, or zA You can also set the environment variable before running python.zmne.utils.set_config("z+", VALUE, set_env=True) for a permanent onezKey "z" not found in zthe mne-python config file (z). Try �.)rr)�type�_known_config_types�copyrSrTrPr�isfilerJ�set�union�intersection�update�KeyError�get)rQ�defaultrGrLZuse_envrFrHZenv_keysZloc_envZmeth_envZ	extra_envZ	meth_filerrr�107get_config4sL"108109110����111������rdcs�t�dd�t|tdtd�fd�|durt|�}�tvr0t�fdd�tD��s0td��d	��t|d112�}t�	|�rAt113|dd�}nt�}t�
d
|���|durb|��d�|ra�tjvratj�=n||�<|rm|tj�<�dkr{ddlm}||�t�|�}t�|�s�t�|�t�	|�r�dnd}t||��T}	zt�|	�}114Wn"ttjfy�}zt�
d|�d|���i}115WYd}~nd}~ww|dur�|116��d�n||117�<|	�d�|	��tj|118|	ddd�Wd�dS1s�wYdS)a5Set a MNE-Python preference key in the config file and environment.119 120    Parameters121    ----------122    key : str123        The preference key to set.124    value : str |  None125        The value to assign to the preference key. If None, the key is126        deleted.127    home_dir : str | None128        The folder that contains the .mne config folder.129        If None, it is found automatically.130    set_env : bool131        If True (default), update :data:`os.environ` in addition to132        updating the MNE-Python config file.133 134    See Also135    --------136    get_config137    r)rQz	path-likeN�valuec3s�|]}��|�VqdS�N)�138startswith)rU�k�rQrr�	<genexpr>�s�139140�zset_config.<locals>.<genexpr>z#Setting non-standard config type: "�"rKT�rGz8Attempting to create new mne-python configuration file:141r-�)�set_browser_backendrAzw+zCould not read the z: json file during the writing. Assuming it is empty. Got: r)�	sort_keys�indent)rr)rYrZ�any�_known_config_wildcardsrrPrr\rJrEr142�info�poprSrTZviz._figurern�dirname�isdir�mkdirr@rBrCr*�JSONDecodeError�seek�truncate�dump)rQrerLrrFrHrn�	directory�moder?�data�excrrirr �sb�143144��145146147148����149"�r cCs�|dur150tj�d�}|duridtj��kr=t�d�}t�d�}|dur/t�t�|d��r/|}n|dur6|}nt	d��~~n$t�dd	�d151kr[t152durXt��a153t
�ttjt154dd��t155}ntj�d
�}|duritd��t�|d�S)z.Get path to extra data (config, tables, etc.).NZ_MNE_FAKE_HOME_DIR�nt�APPDATA�USERPROFILEz.mnezuThe USERPROFILE environment variable is not set, cannot determine the location of the MNE-Python configuration folderZMNE_DONTWRITE_HOMErR�trueT)�
ignore_errors�~zfmne-python config file path could not be determined, please report this error to mne-python developers)rSrTrb�name�lower�getenvrrvrM�FileNotFoundError�_temp_home_dir�tempfile�mkdtemp�atexit�registerr�shutil�rmtreer<�156expanduserr*)rLZAPPDATA_DIRZUSERPROFILE_DIRrrrrN�s:157158159����rNcCs�d}|durtd|d�}d}|durt|�}|durIzt|ddddd�}W|StyH|rBd	|��}|r;t|�d�t|�Y|S|rE�Y|Sw|S)160a�Safely use subjects_dir input to return SUBJECTS_DIR.161 162    Parameters163    ----------164    subjects_dir : path-like | None165        If a value is provided, return subjects_dir. Otherwise, look for166        SUBJECTS_DIR config and return the result.167    raise_error : bool168        If True, raise a KeyError if no value for SUBJECTS_DIR can be found169        (instead of returning None).170 171    Returns172    -------173    value : Path | None174        The SUBJECTS_DIR value.175    FNr/rlT�read�subjects_dir)�fname�	overwriteZ176must_existZneed_dirr�zvSUBJECTS_DIR in your MNE-Python configuration or environment does not exist, consider using mne.set_config to fix it: )rdrrr�r)r�rG�from_configrIrrr�get_subjects_dir
s@����177178���r�csddlm}|dur%t|t�st|dd�|g}|D]}t|dd�q|St�}d}td�}|durR|�d	vrR|�|�|d1797}td|���}|durR|�d	vs8|dkrX|Sd�d	vradgSd
�d	vrjd
gS|�dddd�}t|�dkr~|r~td���fdd�|D�}|S)a	Determine the appropriate stim_channel.180 181    First, 'MNE_STIM_CHANNEL', 'MNE_STIM_CHANNEL_1', 'MNE_STIM_CHANNEL_2', etc.182    are read. If these are not found, it will fall back to 'STI 014' if183    present, then fall back to the first channel of type 'stim', if present.184 185    Parameters186    ----------187    stim_channel : str | list of str | None188        The stim channel selected by the user.189    %(info_not_none)s190 191    Returns192    -------193    stim_channel : list of str194        The name of the stim channel(s) to use195    rm)�196pick_typesNr)zStim channelzEach provided stim channelrr.�ch_namesr	ZMNE_STIM_CHANNEL_ZSTI101zSTI 014FT)ZmegZref_megZstimz]No stim channels found. Consider specifying them manually using the 'stim_channel' parameter.csg|]}�d|�qS)r�r)rUZch_�rsrr�197<listcomp>qrWz%_get_stim_channel.<locals>.<listcomp>)	Z198_fiff.pickr��199isinstance�listrrd�append�lenr*)Zstim_channelrsrGr�ZchannelZch_count�chrr�r�_get_stim_channel?s:200201��r�cs>tt�jd}|j��d��rt�fdd�dD��r�}|S)z*Get as close to the repo root as possible.r	zsetup.pyc3s�|]	}�|��VqdSrf)�is_dir)rU�x�Zup_dirrrrjys�202�z _get_root_dir.<locals>.<genexpr>)�mneZexamples�doc)r�__file__�parents�parent�is_file�all)�root_dirrr�r�
_get_root_dirus�r�c203Cs�d}zddlm}Wnty$}z|d|�d�WYd}~Sd}~ww|�}tddd�}|D]#}|d	dvrS||d	�d204|d�d|d
�dt|d
���Sq0|S)Nzunknown linalg bindingsr)�threadpool_infoz" (threadpoolctl module not found: �)ZOpenBLASZMKL)ZopenblasZmklZinternal_api� �versionz with Znum_threadsz thread)Z
threadpoolctlr��	ExceptionrEr)Zbad_libr�r�pools�rename�poolrrr�_get_numpy_libs�s0�����205���r�zRfrom pyvista import GPUInfo; gi = GPUInfo(); print(gi.version); print(gi.renderer))�maxsizecCsNtjtjdtgddd�}|j�����dd��	d�}|j206s#t|�dkr%d	S|S)207Nz-cFT)�check�capture_output�
rR�208rm)NN)�209subprocess�run�sys�210executable�_gpu_cmd�stdout�decode�strip�replace�split�211returncoder�)�proc�outrrr�
_get_gpu_info�s�r�cCs�t��dkr#t�ddg���}zt|�}W|Sty"d}Y|Swt��dkr@t�ddg���}t|��d��d�}|St��d	kr\t�d212dg���}t|�d�d�	��}|St213d
��)z/Return the total memory of the system in bytes.�Windows�powershell.exez:(Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemoryr�Linux�freez-br	�Darwin�sysctlz214hw.memsize�:z Could not determine total memory)�platform�systemr��check_outputr��intr��215splitlinesr�r�r)�o�total_memoryrrr�_get_total_memory�s0���216�217���r�cCs�t��dkrt�ddg���}|����d}|St��dkr5t�gd����}|��d�d�d	}|St��d218krOt�ddg���}|�d
�d	��}|Sd}|S)zReturn the CPU brand string.r�r�z&(Get-CimInstance Win32_Processor).Namer$r�)Zgrepz219model namez
/proc/cpuinforz: r	r�r�zmachdep.cpuzbrand_string: �?)r�r�r�r�r�r�r�r�)r��	cpu_brandrrr�_get_cpu_brand�s$��220���r��user�auto)�dependencies�unicode�
check_versionc	Cs�t|t�td|d�t|tdfd�t|ttfd�td|d�|dkr0t��dvr.d	}nd221}|dkr6dnd
}t��}ttd|d�}|d�|�|d�|d�|�tt	j222��dd�d�|d�|�t	jd�zt
�}Wnty|d}Ynw|d�|�|�d��|dt���d��|d�|��zt�}	Wnty�d}	Ynw|	dd�}	||	�d��|d�|d8}t�}223g}d}|dkr�|d7}z
|o�t	jj���d �}Wnty�d224}Ynwd	}
t|�D�]�\}}|dk�r%|�r||�rd!nd"�|d#�|��|d$�|��d��g}|t|�d%k�r$|d�q�|�d&��r9|�d&d�}||�d��q�d'}||d%dk�oF|}|�rLd(}z225t|�d)d*��}Wnt�ye|�|�Yq�w|�rkd+nd,}d}|d-k�r�|�r�|d	u�r~d.nt|�}t|�\}
}|
d/u�r�d	}
n226|
�s�|�r�d0nd1}||�r�|�|�d�nd|�d��||��|��|d2k�r�|��}d3D]}t ||��r�t!||��}|dk�r�||�n�q�|d4�n||j"�#d5��|d6k�r�|d7|227�d8��nU|d9k�r
t$d	d:�\}}|d7|�d;|�d8��n=|d<k�r|d=|�%��d8��n-|d>k�r=t&�\}}|d/u�r1|d?�n|d@|�dA|�d8��n
|d-k�rJ|d7|�d8��|�rl|�rSdB}n|�rYdC}ndD}|d|�d|�t'�(|j)����|d�q�|
�sz|dE�d/Sd/S)Fa�Print system information.228 229    This function prints system information useful when triaging bugs.230 231    Parameters232    ----------233    fid : file-like | None234        The file to write to. Will be passed to :func:`print()`. Can be None to235        use :data:`sys.stdout`.236    show_paths : bool237        If True, print paths for each module.238    dependencies : 'user' | 'developer'239        Show dependencies relevant for users (default) or for developers240        (i.e., output includes additional dependencies).241    unicode : bool | "auto"242        Include Unicode symbols in output. If "auto", corresponds to True on Linux and243        macOS, and False on Windows.244 245        .. versionadded:: 0.24246    check_version : bool | float247        If True (default), attempt to check that the version of MNE-Python is up to date248        with the latest release on GitHub. Can be a float to give a different timeout249        (in sec) from the default (2 sec).250 251        .. versionadded:: 1.6252    r�)r��	developer�numericr�r�)r�TFr�)r�r�TFr���rR)�end�file�Platformr��Pythonr�Z253Executabler�ZCPU�(z cores)254ZMemoryi@z.1fz GiB255�)0z# Corer��numpyZscipy�256matplotlibrRz# Numerical (optional)ZsklearnZnumbaZnibabelZnilearnZdipyZopenmeegZcupyZpandasZh5ioZh5pyrRz# Visualization (optional)�pyvistaZ	pyvistaqt�vtk�qtpyZipymplZ	pyqtgraphzmne-qt-browser�257ipywidgetsZtrame_clientZtrame_serverZ	trame_vtkZ
trame_vuetifyrRz# Ecosystem (optional)zmne-bidszmne-nirszmne-featureszmne-connectivityzmne-icalabelzmne-bids-pipelineZneoZeeglabioZedfioZcurryreaderZmffpyZpybvZantioZ258defusedxmlrR)z	# TestingZpytestZstatsmodelsZnumpydocZjupyter_clientZnbclientZnbformatZnitimeZimageiozimageio-ffmpegZsnirfrRz# DocumentationZsphinxzsphinx-galleryzpydata-sphinx-themerRz# Infrastructure�	decoratorZjinja2�	packagingZpoochZtqdmrR�utfu└☐ z - �unavailablez, r	z# u├u└�-�_u☑�+r�g@Nu☒�Xr�)ZGetVTKVersionFullZ
GetVTKVersion�unknown�vr�z (r�r�)Z259return_api�=r�z260 (backend=r�z (OpenGL unavailable)z	 (OpenGL z via z   u│  z | z�261To update to the latest supported release version to get bugfixes and improvements, visit https://mne.tools/stable/install/updating.html262)*rr)r
�boolr�r�r�print�ljustr�r�r�r�r�r��multiprocessing�	cpu_countr�rr�r��encodingr�rg�	enumeraterMr�rr��float�_check_mne_versionZ263vtkVersion�hasattr�getattr�__version__�lstripr�get_backendr�rrur�)r?Z264show_pathsr�r�r�r�Zplatform_strr�r�r�Zlibsr�Z
use_mod_namesZmne_version_good�mi�mod_name�pre�last�mod�markZ	mne_extrar5Zvtk_version�attrr��api�rendererrrr�sys_info�s�265"$266�267�3�268�269$270271��272273274275276277278279"280��rc281Cs�d}zt||d��
}t�|�}Wd�n1swYWn8ttfyW}z*dt|�vr6WYd}~dSdt|�vrHd|�d�WYd}~Sd|��WYd}~Sd}~ww|d	�d282�p`dS)NzAhttps://api.github.com/repos/mne-tools/mne-python/releases/latestr4ZSSLz	SSL errorz	timed outztimeout after z seczunknown error: Ztag_namer�zversion unknown)rrBrCrr:r)r)r5�url�f�response�errrrr�_get_latest_version�s����	rcCsjt|�}|d��sdd|��fSt|�}ttd�j�}||kr'dd|��fS||kr-dSdd|�d	�fS)283Nrz.unable to check for latest version on GitHub, r�Tzdevelopment, latest release is )Tzlatest releaseFzoutdated, release z is available!)r�	isnumericrrr)r5Zrel_verZthis_verrrrr�sr)Frf)NNFNT)NT)NF)T)Arr�r6rBr�rSZos.pathr<rr�r�r�r�r��	functoolsrr�	importlibr�pathlibr�urllib.errorr�urllib.requestrZpackaging.versionrZ_loggingr284rr�rr
rrr�docsr�miscrr�r�rr"r,rZrr�contextmanagerr@rJrPrdr rNr�r�r�r�r�r�r�r�rrrrrrr�<module>s�����	�285�
��������"�#�&�)�*�.�1�4�7�;�>�B�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�i�m�p�t�x�y�}�~���286 287288)289290291R292U293225294��l
Aluode/PerceptionLabPortable · CoolFace