
    bcg5                     |    d dl mZ ej                  Zej                  Zej                  Zej                  Zd Zd Zy)   )	_catboostc                 "   | j                         } t        |      t        u sJ g }g }|j                         D ]  \  }}t        |      t        u st        |      t
        u sJ t        |      t        u s$t        |      t
        u st        |      t        u sJ t        |      t        u r-|D ]'  }t        |      t        u rt        |      t
        u r'J  n|g}t        |      r7t        |d         t        |      k(  sJ t        |d         t        |      u sJ |j                  |       |j                  |        t        |      rDt        |d         t
        u rt        | j                  ||       | S t        | j                  ||       | S )aS  
    Parameters
    ----------
    model :
        CatBoost / CatBoostClassifier / CatBoostRanker / CatBoostRegressor model
    features :
        must be a dict mapping strings (factor names) or integers (flat indexes) into floats
        NOTE: values in a dict can be lists of floats, but in this case they must all be the same size
        )copytypedictitemsstrintfloatlistlenappend_carry_by_index_object_carry_by_name)modelfeatures
factor_idsfactor_values	factor_idfactor_valuevalues          I/var/www/html/bid-api/venv/lib/python3.12/site-packages/catboost/carry.pycarryr   	   sl    JJLE>T!!!JM#+>>#3	<I#%iC)???L!U*d<.@C.G4P\K]aeKeee%%E{e+tE{c/AAA & )>L}}Q'(C,====
1&$y/999)$\* $4" :
1#%EMM:}E L 5==*mDL    c                    | j                         } g }g }g }|j                         D ]  \  }\  }}t        |      t        u st        |      t        u sJ t        |      t
        u st        |      t        u sJ t        |      t
        u st        |      t        u sJ t        |      rt        |d         t        |      u sJ |j                  |       |j                  t        |             |j                  t        |              t        |      rFt        |d         t        u rt        | j                  |||       | S t        | j                  |||       | S )a;  
    Parameters
    ----------
    model :
        CatBoost / CatBoostClassifier / CatBoostRanker / CatBoostRegressor model
        NOTE: uplift allways use RawFormulaVal
    features :
        must be a dict mapping strings (factor names) or integers (flat indexes) into pairs of floats (base and next values)
    r   )r   r	   r   r
   r   r   r   r   _uplift_by_namer   _uplift_by_index)r   r   r   factor_base_valuesfactor_next_valuesr   factor_base_valuefactor_next_values           r   upliftr$   1   sE    JJLEJ=E^^=M9	9%'8I#%iC)???%&%/48I3Jc3QQQ%&%/48I3Jc3QQQz?
1&$y/999)$!!%(9":;!!%(9":; >N :
1#%EMM:7IK]^ L U]]J8JL^_Lr   N) r   r   r   r   r   r   r$    r   r   <module>r'      s@    ++))-- ,,%P r   