o
    ?Hhm                     @   s  d dl Z d dlmZ d dl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!ej"#d%d&d'gd(d) Z$d*d+ Z%d,d- Z&d.d/ Z'd0d1 Z(d2d3 Z)d4d5 Z*d6d7 Z+dS )8    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warnd   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#   _/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/sklearn/utils/tests/test_pprint.py__init__   s   
zLogisticRegression.__init__c                 C      | S r   r#   )r"   Xyr#   r#   r$   fit7      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"   r1   r/   r0   r#   r#   r$   r%   <   s   
zStandardScaler.__init__Nc                 C   r&   r   r#   r"   r'   r1   r#   r#   r$   	transformA   r*   zStandardScaler.transform)TTTr   )r+   r,   r-   r%   r3   r#   r#   r#   r$   r.   ;   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"   r5   r6   r7   r   r#   r#   r$   r%   F   s   
zRFE.__init__)Nr   r   r+   r,   r-   r%   r#   r#   r#   r$   r4   E       r4   c                   @   s(   e Zd Z									d
dd	ZdS )GridSearchCVNr   Tr   2*n_jobsraise-deprecatingFc                 C   F   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
d S r   )r5   
param_gridscoringr    iidrefitcvr   pre_dispatcherror_scorereturn_train_score)r"   r5   r>   r?   r    r@   rA   rB   r   rC   rD   rE   r#   r#   r$   r%   N      
zGridSearchCV.__init__)	NNr   Tr   r   r;   r<   Fr8   r#   r#   r#   r$   r:   M   s    r:   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"   rK   rL   rM   rN   rR   rO   rP   rT   rS   rX   rQ   rU   rV   rW   rY   rZ   r[   r#   r#   r$   r%   j   s"   
zCountVectorizer.__init__)r+   r,   r-   npint64r%   r#   r#   r#   r$   rG   i   s&    rG   c                   @   s   e Zd ZdddZdS )PipelineNc                 C   s   || _ || _d S r   )stepsmemory)r"   r_   r`   r#   r#   r$   r%      s   
zPipeline.__init__r   r8   r#   r#   r#   r$   r^      r9   r^   c                   @   s2   e Zd Z											
				
dddZd
S )SVCr   rbf   auto_deprecated        TFMbP?   Novrc                 C   sX   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _|| _d S r   )kerneldegreegammacoef0r   r   	shrinkingprobability
cache_sizer   r   r   decision_function_shaper   )r"   r   rj   rk   rl   rm   rn   ro   r   rp   r   r   r   rq   r   r#   r#   r$   r%      s   
zSVC.__init__)r   rb   rc   rd   re   TFrf   rg   NFrh   ri   Nr8   r#   r#   r#   r$   ra      s     ra   c                   @   s$   e Zd Z							dddZdS )	PCANTFautore   c                 C   s.   || _ || _|| _|| _|| _|| _|| _d S r   )n_componentsr1   whiten
svd_solverr   iterated_powerr   )r"   rt   r1   ru   rv   r   rw   r   r#   r#   r$   r%      s   

zPCA.__init__)NTFrs   re   rs   Nr8   r#   r#   r#   r$   rr      s    rr   c                   @   s,   e Zd Z											dd	d
ZdS )NMFNcd	frobeniusr   rg   re   r   Fc                 C   r=   r   )rt   initr   	beta_lossr   r   r   alphar!   r   shuffle)r"   rt   r{   r   r|   r   r   r   r}   r!   r   r~   r#   r#   r$   r%      rF   zNMF.__init__)NNry   rz   r   rg   Nre   re   r   Fr8   r#   r#   r#   r$   rx      s    rx   c                   @   s"   e Zd ZejddddfddZdS )SimpleImputermeanNr   Tc                 C   s"   || _ || _|| _|| _|| _d S r   )missing_valuesstrategy
fill_valuer   r1   )r"   r   r   r   r   r1   r#   r#   r$   r%      s
   
zSimpleImputer.__init__)r+   r,   r-   r\   nanr%   r#   r#   r#   r$   r      s    r   c                 C   s*   t  }d}|dd  }| |ksJ d S )NE  
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__)print_changed_only_falselrexpectedr#   r#   r$   
test_basic   s   r   c                  C   s   t dd} d}|  |ksJ t dddddd} d	}|d
d  }|  |ks(J tdd}d}| |ks7J ttdd}d}| |ksHJ tttdd
gd d S )Nc   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   )r   zSimpleImputer(missing_values=0)NaNzSimpleImputer()g?)Cs)r   r   r   floatreprr   r\   array)r   r   imputerr#   r#   r$   test_changed_only  s    


r   c                 C   s6   t t tdd}d}|dd  }| |ksJ 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))],
         transform_input=None, verbose=False)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s!J 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   )r4   r   r   )r   rfer   r#   r#   r$   test_deeply_nested9  s   "r   )print_changed_onlyr   )TzRFE(estimator=RFE(...)))FzERFE(estimator=RFE(...), n_features_to_select=None, step=1, verbose=0)c                 C   sf   t | d$ tdd}tttttt }|||ks!J W d    d S 1 s,w   Y  d S )Nr   r   )depth)r
   r   r4   r   pformat)r   r   ppr   r#   r#   r$   test_print_estimator_max_depth^  s
   
"r   c                 C   sZ   dgddgg dddgg ddg}t t |dd	}d
}|dd  }| |ks+J d S )Nrb   rf   r   r   
   r   i  )rj   rl   r   linear)rj   r      )rB   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)r   )r:   ra   r   )r   r>   gsr   r#   r#   r$   test_gridsearchp  s   r   c           	      C   s   t dddd}tdt fdt fg}g d}g d}tdd	t g||d
ttg||dg}t|dd|d}d}|dd  }||}t	
dd|}||ksRJ d S )NTr   )compactindentindent_at_name
reduce_dimclassify)         r      )rw   )r   reduce_dim__n_componentsclassify__C)r   reduce_dim__kr   rc   )rB   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   r^   rr   ra   rx   r   r	   r:   r   resub)	r   r   r   N_FEATURES_OPTIONS	C_OPTIONSr>   	gspipliner   repr_r#   r#   r$   test_gridsearch_pipeline  s&   '
r   c                 C   s  d}t ddd|d}dd t|D }t|d}d}|dd  }|||ks)J d	d t|d D }t|d}d
}|dd  }|||ksJJ dtt|i}tt |}d}|dd  }|||ksiJ dtt|d i}tt |}d}|dd  }|||ksJ d S )N   Tr   )r   r   r   n_max_elements_to_showc                 S      i | ]}||qS r#   r#   .0ir#   r#   r$   
<dictcomp>      z/test_n_max_elements_to_show.<locals>.<dictcomp>)rY   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   r   r#   r#   r   r#   r#   r$   r     r   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   rangerG   r   listr:   ra   )r   r   r   rY   
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J d}|dd  }||jddks'J |jtdd}td| }|j|d|ksBJ d	|vsHJ d
}|dd  }||j|d dks\J d}|dd  }||j|d dkspJ d}|dd  }||j|d dksJ 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      )
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   lenjoinsplit)r   r   r   	full_repr
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_prettyprinterp  s   r   c                  C   sv   G dd dt } | ddd d}d}|| ksJ tdd d	}|| ks)J W d    d S 1 s4w   Y  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di | d S )Nr#   )ab_other_params
set_params)r"   r   r   kwargsr#   r#   r$   r%     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     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     s   z2test_kwargs_in_init.<locals>.WithKWargs.set_params)r   r   )T)r+   r,   r-   r%   r   r   __classcell__r#   r#   r   r$   
WithKWargs~  s    
r   	somethingabcd)r   cdz+WithKWargs(a='something', c='abcd', d=None)Fr   z:WithKWargs(a='something', b='unchanged', c='abcd', d=None))r   r   r
   )r   estr   r#   r#   r$   test_kwargs_in_initx  s   "r   c                     s   G  fdddt t  t     d} tdd t|   j}W d    n1 s.w   Y  d _tdd t|   j}W d    n1 sMw   Y  ||ksXJ 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   )r5   )r"   r5   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#   r2   r#   r#   r$   r3     r*   zDtest_complexity_print_changed_only.<locals>.DummyEstimator.transformr   )r+   r,   r-   r   r%   r   r3   r   r#   r   r   r$   r     s
    
r   passthroughFr   r   T)r   r   r   r
   r   r   )r5    nb_repr_print_changed_only_falsenb_repr_print_changed_only_truer#   r   r$   "test_complexity_print_changed_only  s   r   ),r   r   r   numpyr\   pytestsklearn.utils._pprintr   sklearn.linear_modelr   sklearn.pipeliner   sklearn.baser   r   sklearn.feature_selectionr   r	   sklearnr
   r   r.   r4   r:   rG   r^   ra   rr   rx   r   r   r   r   r   markparametrizer   r   r   r   r   r   r   r   r#   r#   r#   r$   <module>   sL    '
("%

BZJ$