U
    f»{j‡(  ã                   @   s†  d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlZd dlZd dlZd dlZd dlmZmZmZ ddd	d
dddddddddddddddddddddd d!d"d#d$d%gZd[d&d'„Zd(d)d*hZd+Zd,d-gZd.d/d0d1d2d3d4d5d6h	Zd7hZed8d9d:d;d<d=d>d?d@dAdBdChfedDdEdFdGdHd<dIdJhfejjdKdLdMhffZd\dNdO„Zej j!edPdQ„ ƒƒZ"dRdS„ Z#dTZ$dU %dV¡Z&dWdX„ Z'dYdZ„ Z(dS )]é    )ÚCounterN)Ú	getsource)ÚPath)Úwalk_packages)Úrequires_numpydocÚ_plÚ_record_warningsÚmnezmne.baselinezmne.beamformerzmne.channelszmne.chpizmne.covzmne.cudazmne.datasetszmne.datasets.brainstormzmne.datasets.hf_sefzmne.datasets.samplezmne.decodingz
mne.dipolez
mne.exportz
mne.filterzmne.forwardúmne.guizmne.inverse_sparsezmne.ioz
mne.io.kitzmne.minimum_normzmne.preprocessingz
mne.reportzmne.simulationzmne.source_estimatezmne.source_spacezmne.surfacez	mne.statszmne.time_frequencyzmne.time_frequency.tfrzmne.vizc                 C   s\   g }|dk	rt  |¡}n
t  | ¡}|r2| |j¡ |dk	rF| |j¡ | | j¡ d |¡S )zGet the name.NÚ.)ÚinspectÚ	getmoduleÚappendÚ__name__Újoin)ÚfuncÚclsÚpartsÚmodule© r   úb/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mne/tests/test_docstring_parameters.pyÚ
_func_name8   s    
r   ú	mne.fixesúmne.io.writezmne.io.meas_info.Infoi   zmne.channels.tests.test_montagezmne.io.curry.tests.test_curryZGL01ZEX01ZEX02ZES01ZSA01ZYD01ZSA04ZPR04ZRT02)Zregress_artifactZSS05ÚvaluesÚ
setdefaultZpopitemsÚkeysÚpopÚupdateÚcopyÚpopitemÚgetÚitemsÚfromkeysÚclearr   ÚcountÚextendÚindexÚinsertÚremoveÚsortÚ
get_paramsZ
set_paramsZfit_transformc                    sœ   ddl m} t| |ƒ‰ ˆ  d¡ p6t‡ fdd„tD ƒƒ}|rBtƒ S |dk	r~tD ].\}}t||ƒrNˆ  	d¡d |krNtƒ   S qN‡ fd	d
„|ˆ ƒd D ƒ}|S )z2Check docstring, return list of incorrect results.r   )Úvalidateúmne.c                 3   s   | ]}t  |ˆ ¡V  qd S ©N)ÚreÚmatch)Ú.0Úd©Únamer   r   Ú	<genexpr>p   s     z)check_parameters_match.<locals>.<genexpr>Nr   éÿÿÿÿc                    sH   g | ]@}|d  t krˆ  d¡d |d  ftkrdˆ |d  |d f ‘qS )r   r   r6   z%s : %s : %sé   )Úerror_ignoresÚsplitÚerror_ignores_specific)r1   Úerrr3   r   r   Ú
<listcomp>w   s   ýz*check_parameters_match.<locals>.<listcomp>Úerrors)
Znumpydoc.validater,   r   Ú
startswithÚanyÚdocstring_ignoresÚlistÚsubclass_name_ignoresÚ
issubclassr9   )r   r   r,   ÚskipÚsubclassZignoresÚ	incorrectr   r3   r   Úcheck_parameters_matchk   s    
ÿ

ÿrG   c               
   C   s¤  ddl m}  g }tD �]<}|dkr>| d¡d }tt|ƒs>t‚tƒ � t|t	ƒ ƒ}W 5 Q R X | d¡dd… D ]}t
||ƒ}qnt |tj¡}|D ]†\}}| d¡r¤q�|t|ƒ7 }|  |¡}	|	jD ]}
t
||
ƒ}|t||d�7 }qÀt|d	ƒr�d
t|jƒkr�dt|jƒkr�|t|j|ƒ7 }q�t |tj¡}|D ]&\}}| d¡�rB�q*|t|ƒ7 }�q*qttt|ƒƒƒ}dd |¡ }|dt|ƒt|ƒf 7 }t|ƒdk�r t|ƒ‚dS )z!Test module docstring formatting.r   )Ú	docscrape)r	   r
   r   r7   NÚ_)r   Ú__call__zof type objectzof ABCMeta objectÚ
z
%d error%s)ZnumpydocrH   Úpublic_modulesr9   Úhasattrr	   ÚAssertionErrorr   Ú
__import__ÚglobalsÚgetattrr   Ú
getmembersÚisclassr>   rG   ZClassDocÚmethodsÚstrrJ   Ú
isfunctionÚsortedrA   Úsetr   Úlenr   )rH   rF   r4   Úextrar   ÚsubmodÚclassesÚcnamer   ZcdocÚmethod_nameÚmethodÚ	functionsÚfnamer   Úmsgr   r   r   Útest_docstring_parameters~   sF    





ÿþrc   c               
   C   s¦   t tjdd�D ]’\} }}|s|tkrztƒ � t|ƒ W 5 Q R X W n tk
rZ   Y qY nX tj| }zt	|ƒ}W n t
k
rŠ   Y qY nX d|kstd| ƒ‚qdS )z0Test that there are no tabs in our source files.r-   )Úprefixú	z>"%s" has tabs, please remove them or add it to the ignore listN)r   r	   Ú__path__Útab_ignoresr   rO   Ú	ExceptionÚsysÚmodulesr   ÚIOErrorrN   )rI   ÚmodnameÚispkgÚmodÚsourcer   r   r   Ú	test_tabs§   s    


þrp   )r   r   z	mne.utilszmne.viz.utilsa-  
BaseEstimator
ContainsMixin
CrossSpectralDensity
FilterMixin
GeneralizationAcrossTime
RawFIF
TimeMixin
ToDataFrameMixin
TransformerMixin
UpdateChannelsMixin
activate_proj
adjust_axes
apply_maxfilter
apply_trans
channel_type
combine_kit_markers
combine_tfr
combine_transforms
design_mne_c_filter
detrend
dir_tree_find
fast_cross_3d
fiff_open
find_source_space_hemi
find_tag
get_score_funcs
get_version
invert_transform
is_power2
is_fixed_orient
kit2fiff
label_src_vertno_sel
make_eeg_average_ref_proj
make_projector
mesh_dist
mesh_edges
next_fast_len
parallel_func
pick_channels_evoked
plot_epochs_psd
plot_epochs_psd_topomap
plot_raw_psd_topo
plot_source_spectrogram
prepare_inverse_operator
read_fiducials
read_tag
rescale
setup_proj
source_estimate_quantification
tddr
whiten_evoked
write_fiducials
write_info
rK   c               
      s   t  t  t  t¡ddd¡¡} t  | d¡}t  |¡s@t d| ¡ d}tƒ }|D ]€}t	t  | |› d�¡dƒ�^}|D ]R}| 
d¡}| d	¡sŠqp| ¡ }t|ƒd
krp|d dkrp| |d  d¡d ¡ qpW 5 Q R X qNt|ƒ}g }tD ]ò}tƒ � t|tƒ ƒ}	W 5 Q R X | d¡d
d… D ]}
t|	|
ƒ}	�qt |	tj¡}t |	tj¡}t|ƒt|ƒ }|D ]z\}}| d¡�sV||k�rVt |¡j‰ ˆ  d¡�rVt‡ fdd„tD ƒƒ�sV|tk�rVt|dƒ�sV| d|ˆ |f ¡ �qVqàt|ƒdk�rütdd t t|ƒƒ¡ ƒ‚dS )z6Test that public functions and classes are documented.z..Údoczpython_reference.rstz Documentation file not found: %s)Z
covarianceZcreating_from_arraysZdatasetsZdecodingÚeventsZfile_ioÚforwardZinverseÚloggingZmost_used_classesZmriZpreprocessingZreading_raw_dataZrealtimeÚreportZsensor_spaceZ
simulationZsource_spaceZ
statisticsZtime_frequencyZvisualizationZexportz.rstÚrbzutf-8z  r7   r   ú:r   r6   NrI   r	   c                 3   s   | ]}ˆ   |¡V  qd S r.   )r>   )r1   Úx©Zfrom_modr   r   r5      s   ÿz"test_documented.<locals>.<genexpr>Z_deprecated_originalz
%s (%s.%s)zE

Found new public members missing from doc/python_reference.rst:

* z
* )!ÚopÚabspathr   ÚdirnameÚ__file__ÚisfileÚpytestrD   rA   ÚopenÚdecoder>   r9   rY   r   rX   rL   r   rO   rP   rQ   r   rR   rS   rV   r   r   r?   Údocumented_ignored_modsÚdocumented_ignored_namesrM   rN   rW   )Zdoc_dirZdoc_fileZ	api_filesZknown_namesZapi_fileÚfidÚlineÚmissingr4   r   r[   r\   r`   ZchecksÚcfr   ry   r   Útest_documentedû   sT    


&ÿÿýüþrˆ   c               	   C   s¾   t tƒjjd d } |  ¡ s$t| ƒ‚t| dƒ�}| ¡ }W 5 Q R X t d|¡}dt	|ƒ  k rfdk sln t‚t
|ƒ ¡ D ]\}}|dksxt|ƒ‚qxt	t|ƒƒt	|ƒksªt‚t|ƒ|ksºt‚dS )	z"Test that docdict is alphabetical.Úutilszdocs.pyÚrz&docdict\[["\']([a-z_\-0-9]+)["\']\] = iT  iô  r7   N)r   r}   ÚparentÚis_filerN   r€   Úreadr/   ÚfindallrY   r   r"   rX   rW   )Z	docs_pathr„   ÚdocsÚentriesÚkeyr%   r   r   r   Útest_docdict_order+  s    r’   )N)N))Úcollectionsr   r   r   Úos.pathÚpathrz   Úpathlibr   Úpkgutilr   r/   ri   r   r	   Z	mne.utilsr   r   r   rL   r   r@   Z
char_limitrg   r8   r:   ÚdictrA   ÚfixesZBaseEstimatorrB   rG   ÚmarkZslowtestrc   rp   r‚   r9   rƒ   rˆ   r’   r   r   r   r   Ú<module>   s®   à$
ýþ ÷ÿ     ÿÿû	
'6Ê90