
    bcgr                     <    d dl mZ  G d de      Z G d de      Zy)    )Enumc                       e Zd ZdZdZy)	LabelModeFeatureIgnoreN)__name__
__module____qualname__
AddFeatureIgnoreFeature     U/var/www/html/bid-api/venv/lib/python3.12/site-packages/catboost/eval/factor_utils.pyr   r      s    JMr   r   c                   |    e Zd Zed        Zed        Zed        Zed        Zed        Zed        Z	ed        Z
y)	FactorUtilsc           
         | j                         } | si S g }| j                  d      }|D ]  }	 t        |      }|j                  |       ! t        |      S # t        $ rd |j                  d      }t        |      dk7  rt        d      t        |d         }t        |d         }|t        t        ||dz               z  }Y w xY w)N;-   z*Range need to contain exactly two numbers!r      )
stripsplitintappend
ValueErrorlenAttributeErrorlistrangeset)string_factorslist_factorseval_factor_unitseval_factor_unitfactorstring_boundsbegin_range	end_ranges           r   extract_factorszFactorUtils.extract_factors   s    '--/I*005 1	H-.##F+ !2 <    H 0 6 6s ;}%*()UVV!-"23a 01	U;	A%F GGHs   AA*CCc                    t        |       dk(  ryg }t        |       }|d   }t        dt        |            D ]b  }||   ||dz
     dz   k7  s||dz
     }||k7  r"|j                  dj	                  ||             n|j                  t        |             ||   }d t        |      dz
  }|||   k7  r%|j                  dj	                  |||                n|j                  t        |             dj                  |      S )Nr    r   {}-{}r   )r   sortedr   r   formatstrjoin)factorspartsfactors_listbeginiends         r   factors_to_stringzFactorUtils.factors_to_string!   s    w<1gQq#l+,AA,q1u"5"99"1q5)C<LLs!;<LLU,$Q - ,!#L%%LL|C/@ABLLU$xxr   c                 Z    t         j                  |       }t         j                  |      }|S )N)r   r)   r7   )r!   r1   compressed_string_factorss      r   compress_string_factorsz#FactorUtils.compress_string_factors7   s)    --n=$/$A$A'$J!((r   c                 R    | |k7  rdj                  | |      S dj                  |       S )Nr,   z{})r.   )leftrights     r   single_range_to_stringz"FactorUtils.single_range_to_string=   s)    5=>>$..;;t$$r   c                 Z   t        t        |             }g }t        dt        |            D ])  }|j	                  |dk(  xs ||   ||dz
     dz   k7         + g }d}|t        |      k  rA||   r|j	                  g        |d   j	                  ||          |dz  }|t        |      k  rA|S )Nr   r   )r-   r   r   r   r   )factors_setr1   is_startr5   grouped_factorss        r   group_factors_by_rangez"FactorUtils.group_factors_by_rangeD   s    k*+q#g,'AOOAFHwqzWQU^a5G'GI ( #g,{&&r*B&&wqz2FA	 #g,
 r   c                     | t        |       dk(  ryt        j                  |       }dj                  |D cg c]*  }t        j	                  t        |      t        |            , c}      S c c}w )Nr   Noner   )r   r   rD   r0   r>   minmax)rA   rC   xs      r   factors_to_ranges_stringz$FactorUtils.factors_to_ranges_stringT   sa    #k"2a"7%<<[IxxUdeUdPQ;;CFCFKUdeffes   /A,c                     t        |       }|t        j                  k(  r2|t        |      z
  }dj                  t        j                  |            S dj                  t        j                  t        |                  S )NzFeatures: {}z
Ignore: {})r    r   r   r.   r   rJ   )all_eval_featuresremoved_features
label_modeeval_featuresadd_featuress        r   create_labelzFactorUtils.create_label\   si    -.---(3/?+@@L!(()M)Ml)[\\&&{'K'KCP`La'bccr   N)r   r	   r
   staticmethodr)   r7   r:   r>   rD   rJ   rQ   r   r   r   r   r   	   s    ! !*  * ) )
 % %   g g d dr   r   N)enumr   r   objectr   r   r   r   <module>rU      s$     
Zd& Zdr   