
    hh                      2    d dl mZ ddlmZ  G d de      Zy)   )FieldHandler   )resolve_missing_textc                       e Zd Zd Zy)FromMainHandlerc                 R  " |j                  d      }|j                  |      }t        |t              r|j                  |i       ni }	|j                  d      xs |	j                  d      xs d}
|j                  d      }|d|v rd}n|	j                  dd      }|j                  d      }|	 t        d| d|        t        |      S ||}n	 t        |      j                  |
      D cg c]  }||j                          }}	 |j                  d      }t        |t              r/t        |      |k  r!	 t        d| d| dt        |              d }nd}|dk(  r|rt        t        |            }	 ||   }	 |j                  d      }|t        |t              r|j                  dd      }|j                  dd      }|j                  d      }t        |j                  dd            }|j                  d      xs |j                  d      "t        "t        t         f      r+"D cg c]  }|t        |      j#                           c}"nd "t        |      j                  |      D cg c]  }|j                          }}|rt        t        |            }"fd}d }t        |t        t         f      rSt        |      dkD  rE|D ]  }	 ||   } ||      s|} n |}|:	 t        d| dt        |       dt        |              n	 ||   } ||      r|nd }|j                  d"      xs d#j                         j#                         }|#	 t        d$| d%| d
|
d|        t        |      S 	 |j                  d&      }t        |t        t         f      rb|`t        |      j#                         }|D ]B  } | t        |       j#                         |v s"	 t        d'| d(| d)|       t        |      c S  |rft        |      j                         j%                  d+d#      j%                  dd,      }!	 |d-k(  rt        t'        |!            S |d.k(  rt'        |!      S 	 |S |S # t        $ r Y t        |      S w xY wc c}w # t        $ rA}	 t        d	| d
|
dt        |      d d d|        n# t        $ r Y nw xY wg }Y d }~d }~ww xY w# t        $ r Y w xY w# t        $ r d}Y w xY w# t        t        f$ r>}d }	 t        d| d| dt        |       d|        n# t        $ r Y nw xY wY d }~d }~ww xY wc c}w c c}w # t        $ r d }Y w xY w# t        $ r Y Ow xY w# t        $ r>}d }	 t        d | d| dt        |       d|        n# t        $ r Y nw xY wY d }~d }~ww xY w# t        $ r-}	 t        d!| d|        n# t        $ r Y nw xY wY d }~d }~ww xY w# t        $ r Y t        |      S w xY w# t        $ r Y )w xY w# t        $ r-}	 t        d*| d|        n# t        $ r Y nw xY wY d }~Pd }~ww xY w# t        $ r=}	 t        d/| d0|!d1| d|        n# t        $ r Y nw xY wt        |      cY d }~S d }~ww xY w)2NfromMainsplitBy,reverseSplitF
splitIndexz[fromMain] base missing for z: fromMain=z[fromMain] split error field=z, split_by=z, base_value=x   z: minPartsz"[fromMain] not enough parts field=z, required=z, got=__CONTINUE_SPLIT__z[fromMain] index error field=z, idx=z, parts_len=	postSplitbyindex    indicesmustContainAnyrequireContainsc                 l    | yyt        |       j                         t        fdD              S )NFTc              3   &   K   | ]  }|v  
 y w)N ).0toklows     @/var/www/extractly/manual_agregator/parser/handlers/from_main.py	<genexpr>zCFromMainHandler.parse.<locals>._accept_candidate.<locals>.<genexpr>j   s     A[cscz[s   )strlowerany)valr   must_tokenss    @r   _accept_candidatez0FromMainHandler.parse.<locals>._accept_candidated   s5    {$"*#c(..*CA[AAA    z1[fromMain] postSplit no candidate accepted field=z
, indices=z'[fromMain] postSplit index error field=z"[fromMain] postSplit failed field=cast z[fromMain] result None for z after split. base_field=rejectIfContainsz[fromMain] 'z' rejected by token z in result z)[fromMain] rejectIfContains failed field= .intfloatz[fromMain] cast failed field=z, value=z, cast=)get
isinstancedictprint	Exceptionr   r    splitstripr,   lenlistreversed
IndexError	TypeErrorbooltupler!   replacer-   )#self
field_nameconfigsoupmain_values	selectors	extracted
base_field
base_valuebase_cfgsplit_byreverse_splitsplit_indexresultppartse	min_partspostr   idxr   post_reversetparts2r%   selectedicandr'   rejectsres_lowtokensr$   s#                                     @r   parsezFromMainHandler.parse   s   ZZ
+
 __Z0
 5?y$4O9==R0UW ::i(JHLL,CJs
 

>2 F" % (^U Cjj.4ZLJ<XY (//F,/
O,A,A(,K],Kqq},K]."JJz2	i-#e*y2H B:,kZcYddjknotkujvwx "F1F --  %1E";/F;	::k*D!jt&<XXdC(hhw*((9-#DHH^U$CD"hh'78WDHHEV<WkD%=9;F"X;a!-3q6<<>;"XK"&K-0[->->r-BC-B!'')-BC!(6"23FB  ge}5#g,:J$(#)!9D -T2'+H! % &F'!!$UV`Uaaklpqxlykz  {G  HK  LR  HS  GT  #U  V
!%c{ &7t%<T$F 

6"(b//1779>3J<?XYcXddopxo{  |B  CN  BO  P  Q (//	jj!34G'D%=1f6Hf+++-$E} 5z'')W4!!L<PQVPYYdekdn"op  4F;; % F!!#++C4<<S#FA
45=uQx=(7? 8O # vs  '// ^ 9*[QYP\\ijmnxjyz~{~j  jC  CE  FG  EH  I  J   % 
  .-. #I. !F =j\P[}\hilmrishttvwxvyz{$ 	( #Y D$  ) (#'D(  ) ! ! % !#!!$KJ<W]^a]bbnorsyozn{{}~  ~A  #B  C( ! !	!  	::,bLM 	  '//  ) ! !  	A*RPQsST 	  49*XaURYZ^Y__abcadef  +F334s  0Q2 R .R6RR /S- ;S S- 9S? ?B3W 2U:U"W 7UAW UW %	W /&U+ W U; W W> ?A%X' &X:X' X' Y  Y  2	RRR 	S#R>=S>	S
S	S

SS	S*&S- )S**S- -S<;S<?UU T21U2	T>;U=T>>UU
W U($W 'U((W +	U84W 7U88W ;	WV= V('V=(	V41V=3V44V=7W =WW 	W;W! W6!	W-*W6,W--W66W;>	XX	X$ X' #X$$X' '	Y1YY	YYYYY 	Z&*ZZ!	ZZ!ZZ!Z&!Z&N)__name__
__module____qualname__r[   r   r&   r   r   r      s    sr&   r   N)baser   utilsr   r   r   r&   r   <module>ra      s     (tl tr&   