U
    ½mœdÍj  ã                   @   sj  d dl Z 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mZ d dlmZmZ d dlmZ G d	d
„ d
eƒZG dd„ deeƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdd„ Zdd „ Zd!d"„ Zd#d$„ Z d%d&„ Z!d'd(„ Z"d)d*„ Z#d+d,„ Z$d-d.„ Z%d/d0„ Z&d1d2„ Z'dS )3é    N)ÚPrettyPrinter)Ú_EstimatorPrettyPrinter)ÚLogisticRegressionCV)Úmake_pipeline)ÚBaseEstimatorÚTransformerMixin)ÚSelectKBestÚchi2)Úconfig_contextc                   @   s   e Zd Zddd„Zdd„ ZdS )ÚLogisticRegressionÚl2Fç-Cëâ6?ç      ð?Té   NÚwarnéd   r   c                 C   s^   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _|| _|| _d S ©N)ÚpenaltyÚdualÚtolÚCÚfit_interceptÚintercept_scalingÚclass_weightÚrandom_stateÚsolverÚmax_iterÚmulti_classÚverboseÚ
warm_startÚn_jobsÚl1_ratio)Úselfr   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   © r#   úX/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/sklearn/utils/tests/test_pprint.pyÚ__init__   s    zLogisticRegression.__init__c                 C   s   | S r   r#   )r"   ÚXÚyr#   r#   r$   Úfit5   s    zLogisticRegression.fit)r   Fr   r   Tr   NNr   r   r   r   FNN)Ú__name__Ú
__module__Ú__qualname__r%   r(   r#   r#   r#   r$   r      s"                  ð
"r   c                   @   s    e Zd Zddd„Zddd„ZdS )	ÚStandardScalerTc                 C   s   || _ || _|| _d S r   )Ú	with_meanÚwith_stdÚcopy)r"   r/   r-   r.   r#   r#   r$   r%   :   s    zStandardScaler.__init__Nc                 C   s   | S r   r#   ©r"   r&   r/   r#   r#   r$   Ú	transform?   s    zStandardScaler.transform)TTT)N)r)   r*   r+   r%   r1   r#   r#   r#   r$   r,   9   s   
r,   c                   @   s   e Zd Zddd„ZdS )ÚRFENr   r   c                 C   s   || _ || _|| _|| _d S r   )Ú	estimatorÚn_features_to_selectÚstepr   )r"   r3   r4   r5   r   r#   r#   r$   r%   D   s    zRFE.__init__)Nr   r   ©r)   r*   r+   r%   r#   r#   r#   r$   r2   C   s   r2   c                	   @   s   e Zd Zd
dd	„ZdS )ÚGridSearchCVNr   Tr   ú2*n_jobsúraise-deprecatingFc                 C   sF   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
d S r   )r3   Ú
param_gridÚscoringr    ÚiidÚrefitÚcvr   Úpre_dispatchÚerror_scoreÚreturn_train_score)r"   r3   r:   r;   r    r<   r=   r>   r   r?   r@   rA   r#   r#   r$   r%   L   s    zGridSearchCV.__init__)	NNr   Tr   r   r8   r9   Fr6   r#   r#   r#   r$   r7   K   s            ôr7   c                   @   s:   e Zd Zdddddddddddd	d
dddejfdd„ZdS )ÚCountVectorizerÚcontentzutf-8ÚstrictNTz(?u)\b\w\w+\b)r   r   Úwordr   r   Fc                 C   sj   || _ || _|| _|| _|| _|| _|| _|| _|	| _|| _	|| _
|| _|| _|
| _|| _|| _|| _d S r   )ÚinputÚencodingÚdecode_errorÚstrip_accentsÚpreprocessorÚ	tokenizerÚanalyzerÚ	lowercaseÚtoken_patternÚ
stop_wordsÚmax_dfÚmin_dfÚmax_featuresÚngram_rangeÚ
vocabularyÚbinaryÚdtype)r"   rF   rG   rH   rI   rM   rJ   rK   rO   rN   rS   rL   rP   rQ   rR   rT   rU   rV   r#   r#   r$   r%   h   s"    zCountVectorizer.__init__)r)   r*   r+   ÚnpZint64r%   r#   r#   r#   r$   rB   g   s$   îrB   c                   @   s   e Zd Zddd„ZdS )ÚPipelineNc                 C   s   || _ || _d S r   )ÚstepsÚmemory)r"   rY   rZ   r#   r#   r$   r%   �   s    zPipeline.__init__)Nr6   r#   r#   r#   r$   rX   �   s   rX   c                   @   s   e Zd Zddd„Zd
S )ÚSVCr   Úrbfé   Úauto_deprecatedç        TFçü©ñÒMbP?éÈ   NéÿÿÿÿÚovrc                 C   sX   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _|| _d S r   )ÚkernelÚdegreeÚgammaÚcoef0r   r   Ú	shrinkingÚprobabilityÚ
cache_sizer   r   r   Údecision_function_shaper   )r"   r   rd   re   rf   rg   rh   ri   r   rj   r   r   r   rk   r   r#   r#   r$   r%   –   s    zSVC.__init__)r   r\   r]   r^   r_   TFr`   ra   NFrb   rc   Nr6   r#   r#   r#   r$   r[   •   s                 ñr[   c                   @   s   e Zd Zddd„ZdS )	ÚPCANTFÚautor_   c                 C   s.   || _ || _|| _|| _|| _|| _|| _d S r   )Ún_componentsr/   ÚwhitenÚ
svd_solverr   Úiterated_powerr   )r"   rn   r/   ro   rp   r   rq   r   r#   r#   r$   r%   ¸   s    
zPCA.__init__)NTFrm   r_   rm   Nr6   r#   r#   r#   r$   rl   ·   s          ørl   c                   @   s   e Zd Zdd	d
„ZdS )ÚNMFNÚcdÚ	frobeniusr   ra   r_   r   Fc                 C   sF   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
d S r   )rn   Úinitr   Ú	beta_lossr   r   r   Úalphar!   r   Úshuffle)r"   rn   ru   r   rv   r   r   r   rw   r!   r   rx   r#   r#   r$   r%   Ì   s    zNMF.__init__)NNrs   rt   r   ra   Nr_   r_   r   Fr6   r#   r#   r#   r$   rr   Ë   s              ôrr   c                   @   s"   e Zd Zejddddfdd„ZdS )ÚSimpleImputerZmeanNr   Tc                 C   s"   || _ || _|| _|| _|| _d S r   )Úmissing_valuesÚstrategyÚ
fill_valuer   r/   )r"   rz   r{   r|   r   r/   r#   r#   r$   r%   è   s
    zSimpleImputer.__init__)r)   r*   r+   rW   Únanr%   r#   r#   r#   r$   ry   ç   s   úry   c                 C   s*   t ƒ }d}|dd … }| ¡ |ks&t‚d S )NáE  
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
                   intercept_scaling=1, l1_ratio=None, max_iter=100,
                   multi_class='warn', n_jobs=None, penalty='l2',
                   random_state=None, solver='warn', tol=0.0001, verbose=0,
                   warm_start=False)r   )r   Ú__repr__ÚAssertionError)Úprint_changed_only_falseÚlrÚexpectedr#   r#   r$   Ú
test_basic÷   s    r„   c                  C   s¬   t dd�} d}|  ¡ |kst‚t dddddd�} d	}|d
d … }|  ¡ |ksPt‚tdd�}d}| ¡ |ksnt‚ttdƒd�}d}| ¡ |ks�t‚ttt dd
g¡d�ƒ d S )Néc   ©r   zLogisticRegression(C=99)gš™™™™™Ù?FiÒ  T)r   r   r   r   r   zk
LogisticRegression(C=99, class_weight=0.4, fit_intercept=False, tol=1234,
                   verbose=True)r   r   )rz   zSimpleImputer(missing_values=0)ÚNaNzSimpleImputer()gš™™™™™¹?)ÚCs)	r   r   r€   ry   ÚfloatÚreprr   rW   Úarray)r‚   rƒ   Zimputerr#   r#   r$   Útest_changed_only  s(    
    ÿ
rŒ   c                 C   s6   t tƒ tdd�ƒ}d}|dd … }| ¡ |ks2t‚d S )Niç  r†   a©  
Pipeline(memory=None,
         steps=[('standardscaler',
                 StandardScaler(copy=True, with_mean=True, with_std=True)),
                ('logisticregression',
                 LogisticRegression(C=999, class_weight=None, dual=False,
                                    fit_intercept=True, intercept_scaling=1,
                                    l1_ratio=None, max_iter=100,
                                    multi_class='warn', n_jobs=None,
                                    penalty='l2', random_state=None,
                                    solver='warn', tol=0.0001, verbose=0,
                                    warm_start=False))],
         verbose=False)r   )r   r,   r   r   r€   )r�   Úpipelinerƒ   r#   r#   r$   Útest_pipeline"  s    rŽ   c                 C   sF   t t t t t t t tƒ ƒƒƒƒƒƒƒ}d}|dd … }| ¡ |ksBt‚d S )Naú  
RFE(estimator=RFE(estimator=RFE(estimator=RFE(estimator=RFE(estimator=RFE(estimator=RFE(estimator=LogisticRegression(C=1.0,
                                                                                                                     class_weight=None,
                                                                                                                     dual=False,
                                                                                                                     fit_intercept=True,
                                                                                                                     intercept_scaling=1,
                                                                                                                     l1_ratio=None,
                                                                                                                     max_iter=100,
                                                                                                                     multi_class='warn',
                                                                                                                     n_jobs=None,
                                                                                                                     penalty='l2',
                                                                                                                     random_state=None,
                                                                                                                     solver='warn',
                                                                                                                     tol=0.0001,
                                                                                                                     verbose=0,
                                                                                                                     warm_start=False),
                                                                                        n_features_to_select=None,
                                                                                        step=1,
                                                                                        verbose=0),
                                                                          n_features_to_select=None,
                                                                          step=1,
                                                                          verbose=0),
                                                            n_features_to_select=None,
                                                            step=1, verbose=0),
                                              n_features_to_select=None, step=1,
                                              verbose=0),
                                n_features_to_select=None, step=1, verbose=0),
                  n_features_to_select=None, step=1, verbose=0),
    n_features_to_select=None, step=1, verbose=0)r   )r2   r   r   r€   )r�   Zrferƒ   r#   r#   r$   Útest_deeply_nested7  s    "r�   c                 C   sb   dgddgddddgdœd	gddddgd
œg}t tƒ |dd�}d}|dd … }| ¡ |ks^t‚d S )Nr\   r`   r   r   é
   r   éè  )rd   rf   r   Zlinear)rd   r   é   )r>   aü  
GridSearchCV(cv=5, error_score='raise-deprecating',
             estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
                           decision_function_shape='ovr', degree=3,
                           gamma='auto_deprecated', kernel='rbf', max_iter=-1,
                           probability=False, random_state=None, shrinking=True,
                           tol=0.001, verbose=False),
             iid='warn', n_jobs=None,
             param_grid=[{'C': [1, 10, 100, 1000], 'gamma': [0.001, 0.0001],
                          'kernel': ['rbf']},
                         {'C': [1, 10, 100, 1000], 'kernel': ['linear']}],
             pre_dispatch='2*n_jobs', refit=True, return_train_score=False,
             scoring=None, verbose=0))r7   r[   r   r€   )r�   r:   Úgsrƒ   r#   r#   r$   Útest_gridsearch\  s    þr”   c           	      C   s®   t dddd�}tdtƒ fdtƒ fgƒ}dddg}dd	d
dg}tdd�tƒ g||dœttƒg||dœg}t|dd|d�}d}|dd … }| |¡}t	 
dd|¡}||ksªt‚d S )NTr   )ÚcompactÚindentÚindent_at_nameÚ
reduce_dimZclassifyé   é   é   r�   r   r‘   é   )rq   )r˜   Zreduce_dim__n_componentsÚclassify__C)r˜   Zreduce_dim__kr�   r]   )r>   r    r:   a‰	  
GridSearchCV(cv=3, error_score='raise-deprecating',
             estimator=Pipeline(memory=None,
                                steps=[('reduce_dim',
                                        PCA(copy=True, iterated_power='auto',
                                            n_components=None,
                                            random_state=None,
                                            svd_solver='auto', tol=0.0,
                                            whiten=False)),
                                       ('classify',
                                        SVC(C=1.0, cache_size=200,
                                            class_weight=None, coef0=0.0,
                                            decision_function_shape='ovr',
                                            degree=3, gamma='auto_deprecated',
                                            kernel='rbf', max_iter=-1,
                                            probability=False,
                                            random_state=None, shrinking=True,
                                            tol=0.001, verbose=False))]),
             iid='warn', n_jobs=1,
             param_grid=[{'classify__C': [1, 10, 100, 1000],
                          'reduce_dim': [PCA(copy=True, iterated_power=7,
                                             n_components=None,
                                             random_state=None,
                                             svd_solver='auto', tol=0.0,
                                             whiten=False),
                                         NMF(alpha=0.0, beta_loss='frobenius',
                                             init=None, l1_ratio=0.0,
                                             max_iter=200, n_components=None,
                                             random_state=None, shuffle=False,
                                             solver='cd', tol=0.0001,
                                             verbose=0)],
                          'reduce_dim__n_components': [2, 4, 8]},
                         {'classify__C': [1, 10, 100, 1000],
                          'reduce_dim': [SelectKBest(k=10,
                                                     score_func=<function chi2 at some_address>)],
                          'reduce_dim__k': [2, 4, 8]}],
             pre_dispatch='2*n_jobs', refit=True, return_train_score=False,
             scoring=None, verbose=0)zfunction chi2 at 0x.*>zfunction chi2 at some_address>)r   rX   rl   r[   rr   r   r	   r7   ÚpformatÚreÚsubr€   )	r�   Úppr�   ZN_FEATURES_OPTIONSZ	C_OPTIONSr:   Z	gspiplinerƒ   Úrepr_r#   r#   r$   Útest_gridsearch_pipelinev  s&    
ýýú'
r£   c                 C   s  d}t ddd|d�}dd„ t|ƒD ƒ}t|d�}d}|dd … }| |¡|ksRt‚d	d„ t|d ƒD ƒ}t|d�}d
}|dd … }| |¡|ks”t‚dtt|ƒƒi}ttƒ |ƒ}d}|dd … }| |¡|ksÒt‚dtt|d ƒƒi}ttƒ |ƒ}d}|dd … }| |¡|k�st‚d S )Né   Tr   )r•   r–   r—   Ún_max_elements_to_showc                 S   s   i | ]
}||“qS r#   r#   ©Ú.0Úir#   r#   r$   Ú
<dictcomp>Ã  s      z/test_n_max_elements_to_show.<locals>.<dictcomp>)rT   a÷  
CountVectorizer(analyzer='word', binary=False, decode_error='strict',
                dtype=<class 'numpy.int64'>, encoding='utf-8', input='content',
                lowercase=True, max_df=1.0, max_features=None, min_df=1,
                ngram_range=(1, 1), preprocessor=None, stop_words=None,
                strip_accents=None, token_pattern='(?u)\\b\\w\\w+\\b',
                tokenizer=None,
                vocabulary={0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7,
                            8: 8, 9: 9, 10: 10, 11: 11, 12: 12, 13: 13, 14: 14,
                            15: 15, 16: 16, 17: 17, 18: 18, 19: 19, 20: 20,
                            21: 21, 22: 22, 23: 23, 24: 24, 25: 25, 26: 26,
                            27: 27, 28: 28, 29: 29})c                 S   s   i | ]
}||“qS r#   r#   r¦   r#   r#   r$   r©   ×  s      aü  
CountVectorizer(analyzer='word', binary=False, decode_error='strict',
                dtype=<class 'numpy.int64'>, encoding='utf-8', input='content',
                lowercase=True, max_df=1.0, max_features=None, min_df=1,
                ngram_range=(1, 1), preprocessor=None, stop_words=None,
                strip_accents=None, token_pattern='(?u)\\b\\w\\w+\\b',
                tokenizer=None,
                vocabulary={0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7,
                            8: 8, 9: 9, 10: 10, 11: 11, 12: 12, 13: 13, 14: 14,
                            15: 15, 16: 16, 17: 17, 18: 18, 19: 19, 20: 20,
                            21: 21, 22: 22, 23: 23, 24: 24, 25: 25, 26: 26,
                            27: 27, 28: 28, 29: 29, ...})r   a  
GridSearchCV(cv='warn', error_score='raise-deprecating',
             estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
                           decision_function_shape='ovr', degree=3,
                           gamma='auto_deprecated', kernel='rbf', max_iter=-1,
                           probability=False, random_state=None, shrinking=True,
                           tol=0.001, verbose=False),
             iid='warn', n_jobs=None,
             param_grid={'C': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
                               15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
                               27, 28, 29]},
             pre_dispatch='2*n_jobs', refit=True, return_train_score=False,
             scoring=None, verbose=0)a  
GridSearchCV(cv='warn', error_score='raise-deprecating',
             estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
                           decision_function_shape='ovr', degree=3,
                           gamma='auto_deprecated', kernel='rbf', max_iter=-1,
                           probability=False, random_state=None, shrinking=True,
                           tol=0.001, verbose=False),
             iid='warn', n_jobs=None,
             param_grid={'C': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
                               15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
                               27, 28, 29, ...]},
             pre_dispatch='2*n_jobs', refit=True, return_train_score=False,
             scoring=None, verbose=0))r   ÚrangerB   rž   r€   Úlistr7   r[   )r�   r¥   r¡   rT   Z
vectorizerrƒ   r:   r“   r#   r#   r$   Útest_n_max_elements_to_show¸  s6    ü

r¬   c                 C   s  t ƒ }d}|dd … }||jdd�ks*t‚d}|dd … }||jdd�ksNt‚|jtdƒd�}td | ¡ ¡ƒ}|j|d�|ks„t‚d	|ks�t‚d
}|dd … }||j|d d�ks¸t‚d}|dd … }||j|d d�ksàt‚d}|dd … }||j|d d�k�s
t‚d S )Na  
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
                   in...
                   multi_class='warn', n_jobs=None, penalty='l2',
                   random_state=None, solver='warn', tol=0.0001, verbose=0,
                   warm_start=False)r   é–   )Z
N_CHAR_MAXz+
Lo...
                   warm_start=False)rš   ÚinfÚ z...a@  
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
                   intercept_scaling=1, l1_ratio=None, max_i...
                   multi_class='warn', n_jobs=None, penalty='l2',
                   random_state=None, solver='warn', tol=0.0001, verbose=0,
                   warm_start=False)r�   aD  
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
                   intercept_scaling=1, l1_ratio=None, max_iter...,
                   multi_class='warn', n_jobs=None, penalty='l2',
                   random_state=None, solver='warn', tol=0.0001, verbose=0,
                   warm_start=False)r~   r™   )r   r   r€   r‰   ÚlenÚjoinÚsplit)r�   r‚   rƒ   Z	full_reprZ
n_nonblankr#   r#   r$   Útest_bruteforce_ellipsis  s(    r³   c                   C   s   t ƒ  tƒ ¡ d S r   )r   Úpprintr   r#   r#   r#   r$   Útest_builtin_prettyprinter]  s    rµ   c               	   C   s`   G dd„ dt ƒ} | ddd d�}d}|| ¡ ks2t‚tdd�� d	}|| ¡ ksRt‚W 5 Q R X d S )
Nc                       s0   e Zd Zd
dd„Zd‡ fdd„	Zdd	„ Z‡  ZS )z'test_kwargs_in_init.<locals>.WithKWargsÚ
willchangeÚ	unchangedc                 [   s"   || _ || _i | _| jf |Ž d S r   )ÚaÚbÚ_other_paramsÚ
set_params)r"   r¸   r¹   Úkwargsr#   r#   r$   r%   n  s    z0test_kwargs_in_init.<locals>.WithKWargs.__init__Tc                    s   t ƒ j|d�}| | j¡ |S )N)Údeep)ÚsuperÚ
get_paramsÚupdaterº   )r"   r½   Úparams©Ú	__class__r#   r$   r¿   t  s    z2test_kwargs_in_init.<locals>.WithKWargs.get_paramsc                 [   s,   |  ¡ D ]\}}t| ||ƒ || j|< q| S r   )ÚitemsÚsetattrrº   )r"   rÁ   ÚkeyÚvaluer#   r#   r$   r»   y  s    z2test_kwargs_in_init.<locals>.WithKWargs.set_params)r¶   r·   )T)r)   r*   r+   r%   r¿   r»   Ú__classcell__r#   r#   rÂ   r$   Ú
WithKWargsk  s   
rÉ   Z	somethingÚabcd)r¸   ÚcÚdz+WithKWargs(a='something', c='abcd', d=None)F©Zprint_changed_onlyz:WithKWargs(a='something', b='unchanged', c='abcd', d=None))r   r   r€   r
   )rÉ   Zestrƒ   r#   r#   r$   Útest_kwargs_in_inite  s    rÎ   c               	      sŒ   G ‡ fdd„dt tƒ‰ ˆ tˆ ˆ ƒ ƒˆ ƒ dƒƒ} tdd�� t| ƒ ˆ j}W 5 Q R X dˆ _tdd�� t| ƒ ˆ j}W 5 Q R X ||ksˆt‚d S )Nc                       s6   e Zd ZdZd	dd„Z‡‡ fdd„Zd
dd„Z‡  ZS )z:test_complexity_print_changed_only.<locals>.DummyEstimatorr   Nc                 S   s
   || _ d S r   )r3   )r"   r3   r#   r#   r$   r%   ’  s    zCtest_complexity_print_changed_only.<locals>.DummyEstimator.__init__c                    s   ˆ  j d7  _ tƒ  ¡ S )Nr   )Únb_times_repr_calledr¾   r   )r"   )ÚDummyEstimatorrÃ   r#   r$   r   •  s    zCtest_complexity_print_changed_only.<locals>.DummyEstimator.__repr__c                 S   s   |S r   r#   r0   r#   r#   r$   r1   ™  s    zDtest_complexity_print_changed_only.<locals>.DummyEstimator.transform)N)N)r)   r*   r+   rÏ   r%   r   r1   rÈ   r#   ©rÐ   rÂ   r$   rÐ   �  s   
rÐ   ZpassthroughFrÍ   r   T)r   r   r   r
   rŠ   rÏ   r€   )r3   Z nb_repr_print_changed_only_falseZnb_repr_print_changed_only_truer#   rÑ   r$   Ú"test_complexity_print_changed_only‰  s    ÿrÒ   )(rŸ   r´   r   ÚnumpyrW   Zsklearn.utils._pprintr   Zsklearn.linear_modelr   Zsklearn.pipeliner   Zsklearn.baser   r   Zsklearn.feature_selectionr   r	   Zsklearnr
   r   r,   r2   r7   rB   rX   r[   rl   rr   ry   r„   rŒ   rŽ   r�   r”   r£   r¬   r³   rµ   rÎ   rÒ   r#   r#   r#   r$   Ú<module>   s:   '
("%B[J$