+
    Tj>                     P   ^ RI Ht ^ RIHtHtHtHtHtHtH	t	H
t
 ^ RIHtHt ^ RIHtHt ^ RIHt ^RIHt ]'       d   ^ RIHt  ! R R	]4      tR
 tM	^ RIHt R t]! R4      t]! R4      tR tR t ! R R]4      t ! R R]]4      t  ! R R]]4      t! ! R R]4      t" ! R R]4      t# ! R R4      t$]! ] ]$PJ                  ] ] 4        ! R R]$]4      t& ! R R ]$]4      t' ! R! R"4      t( ! R# R$](]4      t) ! R% R&](]4      t* ! R' R(]4      t+ ! R) R*]4      t,] P[                  ]4        ! R+ R,]4      t. ! R- R.]4      t/ ! R/ R0].4      t0 ! R1 R2].4      t1 ! R3 R4]/4      t2 ! R5 R6]/4      t3 ! R7 R8]/4      t4 ! R9 R:]/4      t5 ! R; R<4      t6 ! R= R>]6]
4      t7 ! R? R@]6]4      t8RA# )B    )is_psycopg3)	CharField
ExpressionField
FloatFieldFuncLookup	TextFieldValue)CombinedExpressionregister_combinable_fields)CastCoalesce)_lazy_re_compile)CheckPostgresInstalledMixin)Dumperc                   &   a  ] tR t^t o R tRtV tR# )
UTF8Dumperc                    \        VR 4      # zutf-8)bytes)selfobjs   &&S/var/www/idalgo/venv/lib/python3.14/site-packages/django/contrib/postgres/search.pydumpUTF8Dumper.dump   s    g&&     N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r   r   r      s     	' 	'r   r   c                 l    \        \        4      P                  \        V 4      4      P	                  4       # N)r   strquotepsql_escapedecode)values   &r   quote_lexemer.      s%    #$$[%78??AAr   )adaptc                 t    \        \        V 4      4      pR Vn        VP                  4       P	                  4       # r   )r/   r+   encoding	getquotedr,   )r-   adapters   & r   r.   r.      s1    E*+"  "))++r   z['\0\[\]()|&:*!@<>\\]z\s{2,}c                b    V P                  4       ;p '       g   R# \        P                  RV 4      # )z<Convert multiple spaces to single and strip from both sides.N )stripmultiple_spaces_resub)vals   &r   normalize_spacesr:   )   s)    99;C!!#s++r   c                D    \         P                  RV 4      p \        V 4      # )zDReplace chars not fit for use in search queries with a single space.r5   )spec_chars_rer8   r:   )querys   &r   r+   r+   0   s    c5)EE""r   c                   <   a a ] tR t^6t oRtV 3R ltR tRtVtV ;t	# )SearchVectorExactexactc                   < \        V P                  \        \        34      '       g4   \	        V P
                  R R4      p\        V P                  VR7      V n        \        SV `  W4      w  rEWE3# )configNrB   )
isinstancerhsSearchQueryCombinedSearchQuerygetattrlhssuperprocess_rhs)r   qn
connectionrB   rE   
rhs_params	__class__s   &&&   r   rK   SearchVectorExact.process_rhs9   sW    $(([2E$FGGTXXx6F"488F;DH'-b=r   c                r    V P                  W4      w  r4V P                  W4      w  rV. VOVO5pV: R V: 2V3# )z @@ )process_lhsrK   )r   rL   rM   rI   
lhs_paramsrE   rN   paramss   &&&     r   as_sqlSearchVectorExact.as_sql@   sE    **2:**2:+:+
+ #&..r   )rE   )
r   r    r!   r"   lookup_namerK   rU   r#   r$   __classcell__rO   r&   s   @@r   r?   r?   6   s     K/ /r   r?   c                   &   a  ] tR t^Gt o R tRtV tR# )SearchVectorFieldc                    R # )tsvectorr   r   rM   s   &&r   db_typeSearchVectorField.db_typeH   s    r   r   Nr   r    r!   r"   r_   r#   r$   r%   s   @r   r[   r[   G   s      r   r[   c                   &   a  ] tR t^Lt o R tRtV tR# )SearchQueryFieldc                    R # )tsqueryr   r^   s   &&r   r_   SearchQueryField.db_typeM   s    r   r   Nra   r%   s   @r   rc   rc   L   s      r   rc   c                   &   a  ] tR t^Qt o R tRtV tR# )_Float4Fieldc                    R # )float4r   r^   s   &&r   r_   _Float4Field.db_typeR   s    r   r   Nra   r%   s   @r   rh   rh   Q   s      r   rh   c                   T   a a ] tR t^Vt oV 3R lt]R 4       tR tR tR t	Rt
VtV ;t# )SearchConfigc                j   < \         SV `  4        \        VR 4      '       g   \        V4      pWn        R# resolve_expressionN)rJ   __init__hasattrr   rB   )r   rB   rO   s   &&r   rq   SearchConfig.__init__W   s*    v3446]Fr   c                @    Ve   \        W4      '       d   V# V ! V4      # r(   )rD   )clsrB   s   &&r   from_parameterSearchConfig.from_parameter]   s     >Z44M6{r   c                    V P                   .# r(   rC   )r   s   &r   get_source_expressions#SearchConfig.get_source_expressionsc   s    }r   c                    Vw  V n         R # r(   rC   )r   exprss   &&r   set_source_expressions#SearchConfig.set_source_expressionsf   s    r   c                R    VP                  V P                  4      w  r4R V,          V3# )z%s::regconfig)compilerB   )r   compilerrM   sqlrT   s   &&&  r   rU   SearchConfig.as_sqli   s(    &&t{{3$f,,r   rC   )r   r    r!   r"   rq   classmethodrv   ry   r}   rU   r#   r$   rX   rY   s   @@r   rm   rm   V   s2       
- -r   rm   c                   *   a  ] tR t^nt o RtR tRtV tR# )SearchVectorCombinable||c                    \        V\        4      '       g&   \        R \        V4      P                  ,          4      hV'       d   \        WW P                  4      # \        WWP                  4      # )zLSearchVector can only be combined with other SearchVector instances, got %s.)rD   r   	TypeErrortyper   CombinedSearchVectorrB   r   other	connectorreverseds   &&&&r   _combineSearchVectorCombinable._combineq   s[    %!788%'+E{';';<  '$LL#DUKKHHr   r   N)r   r    r!   r"   ADDr   r#   r$   r%   s   @r   r   r   n   s     
CI Ir   r   c                   t   a a ] tR t^t oRtRt]! 4       tRRRR/V 3R lltR
V 3R llt	RV 3R llt
R	tVtV ;t# )SearchVectorto_tsvectorz || ' ' || rB   Nweightc                  < \         SV `  ! V!   \        P                  V4      V n        Ve   \        VR4      '       g   \        V4      pW n        R # )Nrp   )rJ   rq   rm   rv   rB   rr   r   r   )r   rB   r   expressionsrO   s   &$$*r   rq   SearchVector.__init__   sC    +&"11&9gf6J&K&K6]Fr   c                   < \         SV `  WW4V4      pV P                  '       d#   V P                  P                  WW4V4      Vn        V# r(   )rJ   rp   rB   )r   r=   allow_joinsreuse	summarizefor_saveresolvedrO   s   &&&&&& r   rp   SearchVector.resolve_expression   sJ     7-(
 ;;;"kk<<EhHO r   c                  < V P                  4       pTP                  VP                  4        Uu. uFR  p\        \	        VP
                  \        \        34      '       d   TM\        V\        4       4      \        R 4      4      NKT  	  up4       Rp. pVf?   VP                  '       d!   VP                  VP                  4      w  rxRpMVP                  p\        \        V`?  VVVVVR7      w  r. pVP                   '       d/   VP                  VP                   4      w  rRP#                  W4      p	V	. VOV
OVO53# u upi ) Nz)%(function)s(%(config)s, %(expressions)s))functiontemplaterB   zsetweight({}, {}))copyr}   ry   r   rD   output_fieldr   r
   r   r   rB   r   r   rJ   r   rU   r   format)r   r   rM   r   r   clone
expression
config_sqlconfig_paramsr   rT   extra_params
weight_sqlrO   s   &&&&&        r   rU   SearchVector.as_sql   s>   		$$ #(">">"@
 #AJ  &j&=&=	9?UVV #!*ik:"I #A
	
 
|||,4,<,<U\\,J)
F >>L%7 8 
 <<<'/'7'7'E$J%,,S=C<m<f<|<<<A
s   AD;)rB   r   )NTNFFNN)r   r    r!   r"   r   
arg_joinerr[   r   rq   rp   rU   r#   r$   rX   rY   s   @@r   r   r      s9     HJ$&LD  
#= #=r   r   c                   6   a a ] tR t^t oRV 3R lltRtVtV ;t# )r   c                4   < W@n         \        SV `	  WW54       R # r(   rB   rJ   rq   r   rI   r   rE   rB   r   rO   s   &&&&&&r   rq   CombinedSearchVector.__init__       ;r   rC   r(   )r   r    r!   r"   rq   r#   r$   rX   rY   s   @@r   r   r      s     < <r   r   c                   F   a  ] tR t^t o RtRtR tR tR tR t	R t
RtV tR	# )
SearchQueryCombinablez&&r   c                    \        V\        4      '       g&   \        R \        V4      P                  ,          4      hV'       d   \        WW P                  4      # \        WWP                  4      # )zJSearchQuery can only be combined with other SearchQuery instances, got %s.)rD   r   r   r   r   rG   rB   r   s   &&&&r   r   SearchQueryCombinable._combine   s[    %!677%'+E{';';<  &u{{KK"4E;;GGr   c                :    V P                  WP                  R 4      # Fr   BITORr   r   s   &&r   __or__SearchQueryCombinable.__or__       }}UJJ66r   c                :    V P                  WP                  R 4      # Tr   r   s   &&r   __ror__SearchQueryCombinable.__ror__       }}UJJ55r   c                :    V P                  WP                  R 4      # r   r   BITANDr   s   &&r   __and__SearchQueryCombinable.__and__       }}UKK77r   c                :    V P                  WP                  R 4      # r   r   r   s   &&r   __rand__SearchQueryCombinable.__rand__       }}UKK66r   r   Nr   r    r!   r"   r   r   r   r   r   r   r   r#   r$   r%   s   @r   r   r      s.     FEH7687 7r   r   c                      a a ] tR t^t o]! 4       tRRRRRRRR/tRR
R	RRRR/V 3R llltRV 3R lltR t	V 3R lt
RtVtV ;t# )rF   plainplainto_tsqueryphrasephraseto_tsqueryraw
to_tsquery	websearchwebsearch_to_tsqueryNrB   invertFsearch_typec                 < \        V\        4      '       d   R pV P                  P                  V4      V n        V P                  f   \        RV,          4      h\        VR4      '       g   \        V4      pV3p\        P                  V4      V n
        V P                  e   V P                  .VOpW@n        \        SV `4  ! VRV/  R# )r   Nz"Unknown search_type argument '%s'.rp   r   )rD   LexemeCombinableSEARCH_TYPESgetr   
ValueErrorrr   r   rm   rv   rB   r   rJ   rq   )r   r-   r   rB   r   r   r   rO   s   &&&$$$ r   rq   SearchQuery.__init__   s     e-..K))--k:== AKOPPu233%LEh"11&9;;";;55K+ALAr   c                d   < \         SV `  WW44      w  rVV P                  '       d
   R V,          pWV3# )z!!(%s))rJ   rU   r   )r   r   rM   r   r   r   rT   rO   s   &&&&&  r   rU   SearchQuery.as_sql  s/    gnX8N;;;S.C{r   c                R    V P                  4       pV P                  '       * Vn        V# r(   r   r   )r   r   s   & r   
__invert__SearchQuery.__invert__
  s    		;;r   c                Z   < \         SV `  4       pV P                  '       d
   R V,          # T# )z~%s)rJ   __str__r   )r   resultrO   s   & r   r   SearchQuery.__str__  s&    "#';;;:F:r   )rB   r   r   r(   r   )r   r    r!   r"   rc   r   r   rq   rU   r   r   r#   r$   rX   rY   s   @@r   rF   rF      sl     #%L"$|+	LB
 B B B B0
; ;r   rF   c                   B   a a ] tR tRt oRV 3R lltV 3R ltRtVtV ;t# )rG   i  c                4   < W@n         \        SV `	  WW54       R # r(   r   r   s   &&&&&&r   rq   CombinedSearchQuery.__init__  r   r   c                .   < R \         SV `  4       ,          # )z(%s))rJ   r   )r   rO   s   &r   r   CombinedSearchQuery.__str__  s    )))r   rC   r(   )	r   r    r!   r"   rq   r   r#   r$   rX   rY   s   @@r   rG   rG     s     <* *r   rG   c                   H   a a ] tR tRt oRt]! 4       tRV 3R lltRtVt	V ;t
# )
SearchRanki  ts_rankc                  < ^RI Hp \        VR4      '       g   \        V4      p\        VR4      '       g   \	        V4      pW.pVe<   \        VR4      '       g   \        V4      p\        W6! \        4       4      4      pV.VOpVe/   \        VR4      '       g   \        V4      pVP                  V4       V'       d   RV n	        \        SV `,  ! V!   R# )   )
ArrayFieldrp   N
ts_rank_cd)fields.arrayr   rr   r   rF   r   r   rh   appendr   rJ   rq   )	r   vectorr=   weightsnormalizationcover_densityr   r   rO   s	   &&&&&&  r   rq   SearchRank.__init__!  s     	-v344!&)Fu233&Eo7$899.7J|~$>?G"1[1K$=*>?? %m 4}-(DM+&r   )r   )NNF)r   r    r!   r"   r   r   r   rq   r#   r$   rX   rY   s   @@r   r   r     s     H<L' 'r   r   c                      a a ] tR tRt oRtRt]! 4       tRRRRRRRRR	RR
RRRRRRR/	V 3R lltRV 3R llt	Rt
VtV ;t# )SearchHeadlinei>  ts_headlinez(%(function)s(%(expressions)s%(options)s)rB   N	start_selstop_sel	max_words	min_words
short_wordhighlight_allmax_fragmentsfragment_delimiterc       	        0  < \        VR 4      '       g   \        V4      pRVRVRVRVRVRV	RV
RV/pVP                  4        UUu/ uF  w  rVf   K  WbK  	  uppV n        W3pVe   \        P                  V4      pV.VO5p\        SV `  ! V!   R	# u uppi )
rp   StartSelStopSelMaxWordsMinWords	ShortWordHighlightAllMaxFragmentsFragmentDelimiterN)rr   rF   itemsoptionsrm   rv   rJ   rq   )r   r   r=   rB   r  r  r  r  r  r	  r
  r  r  optionr-   r   rO   s   &&&$$$$$$$$$    r   rq   SearchHeadline.__init__C  s     u233&E	x		MM!3	
 07}}
/>mf%MFM
 ")!008F!0K0K+&
s   BBc                   <a R pRpV P                   '       d7   RP                  V3R lV P                   P                  4        4       4      3pRp\        S	V `  VSVVVR7      w  rxWxV,           3# )r   z, c              3   h   <"   T F'  w  rSP                   P                  V R 2V.4      x  K)  	  R# 5i)z=%sN)opscompose_sql).0r  r-   rM   s   &  r   	<genexpr>(SearchHeadline.as_sql.<locals>.<genexpr>l  s6      )= NN..&~wGG)=s   /2z, %s)r   r   r  r   )r  joinr  rJ   rU   )
r   r   rM   r   r   options_sqloptions_paramsr   rT   rO   s
   &&f&&    r   rU   SearchHeadline.as_sqlg  s~    <<<		 )-););)= N !Kgn % 
 ^+++r   )r  r   )r   r    r!   r"   r   r   r
   r   rq   rU   r#   r$   rX   rY   s   @@r   r  r  >  s     H9H;L"'
 "' "' "' "' "' "' "' "'  "'H, ,r   r  c                   @   a a ] tR tRt o]! 4       tV 3R ltRtVtV ;t	# )TrigramBasei  c                d   < \        VR 4      '       g   \        V4      p\        SV `  ! W3/ VB  R# ro   rr   r   rJ   rq   )r   r   stringextrarO   s   &&&,r   rq   TrigramBase.__init__  s,    v3446]F5u5r   r   
r   r    r!   r"   r   r   rq   r#   r$   rX   rY   s   @@r   r%  r%         <L6 6r   r%  c                   @   a a ] tR tRt o]! 4       tV 3R ltRtVtV ;t	# )TrigramWordBasei  c                d   < \        VR 4      '       g   \        V4      p\        SV `  ! W3/ VB  R# ro   r'  )r   r(  r   r)  rO   s   &&&,r   rq   TrigramWordBase.__init__  s,    v3446]F5u5r   r   r+  rY   s   @@r   r.  r.    r,  r   r.  c                       ] tR tRtRtRtR# )TrigramSimilarityi  
SIMILARITYr   Nr   r    r!   r"   r   r#   r   r   r   r2  r2    s    Hr   r2  c                       ] tR tRtRtRtRtR# )TrigramDistancei  r   z <-> r   Nr   r    r!   r"   r   r   r#   r   r   r   r6  r6    s    HJr   r6  c                       ] tR tRtRtRtRtR# )TrigramWordDistancei  r   z <<-> r   Nr7  r   r   r   r9  r9    s    HJr   r9  c                       ] tR tRtRtRtRtR# )TrigramStrictWordDistancei  r   z <<<-> r   Nr7  r   r   r   r;  r;    s    HJr   r;  c                       ] tR tRtRtRtR# )TrigramWordSimilarityi  WORD_SIMILARITYr   Nr4  r   r   r   r=  r=    s     Hr   r=  c                       ] tR tRtRtRtR# )TrigramStrictWordSimilarityi  STRICT_WORD_SIMILARITYr   Nr4  r   r   r   r@  r@    s    'Hr   r@  c                   F   a  ] tR tRt o RtRtR tR tR tR t	R t
R	tV tR
# )r   i  &|c                    \        V\        4      '       g$   \        R VP                  P                   R24      hV'       d   \        WV 4      # \        WV4      # )z7A Lexeme can only be combined with another Lexeme, got .)rD   r   r   rO   r   CombinedLexemer   s   &&&&r   r   LexemeCombinable._combine  sX    %!122//03  !%D99du55r   c                :    V P                  WP                  R 4      # r   r   r   s   &&r   r   LexemeCombinable.__or__  r   r   c                :    V P                  WP                  R 4      # r   r   r   s   &&r   r   LexemeCombinable.__ror__  r   r   c                :    V P                  WP                  R 4      # r   r   r   s   &&r   r   LexemeCombinable.__and__  r   r   c                :    V P                  WP                  R 4      # r   r   r   s   &&r   r   LexemeCombinable.__rand__  r   r   r   Nr   r%   s   @r   r   r     s-     FE67687 7r   r   c                   `   a a ] tR tRt o]! 4       tRRRRRRR/V 3R llltR tR	 tR
t	Vt
V ;t# )Lexemei  Nr   Fprefixr   c               `  < VR 8X  d   \        R4      h\        V\        4      '       g$   \        RVP                  P
                   R24      hVe<   \        V\        4      '       d   VP                  4       R9  d   \        RV: R24      hW@n        W0n        WPn	        \        SV `-  WR7       R# )r   zLexeme value cannot be empty.z#Lexeme value must be a string, got rF  Nz2Weight must be one of 'A', 'B', 'C', and 'D', got )r   >   abcd)r   rD   r)   r   rO   r   lowerrS  r   r   rJ   rq   )r   r-   r   r   rS  r   rO   s   &&&$$$r   rq   Lexeme.__init__  s     B;<==%%%5eoo6N6N5OqQ  63''6<<>AU+UDVJaP  :r   c                   \        V P                  4      pR pV P                  '       d
   VR,          pV P                  '       d   W@P                  ,          pV'       d   V RV 2pV P                  '       d   RV 2pRV33# )r   *:!%s)r.   r-   rS  r   r   )r   r   rM   paramlabels   &&&  r   rU   Lexeme.as_sql  so    TZZ(;;;SLE;;;[[ EgQug&E;;;wKEeX~r   c                R    V P                  4       pV P                  '       * Vn        V# r(   r   r   cloneds   & r   r   Lexeme.__invert__  s     KKr   )r   rS  r   r(   )r   r    r!   r"   rc   _output_fieldrq   rU   r   r#   r$   rX   rY   s   @@r   rR  rR    s>     $&M;27;@E;NR; ;. r   rR  c                   :   a  ] tR tRt o ]! 4       tR tR tRtV t	R# )rG  i  c                   . pVP                  V P                  4      w  rEVP                  V4       VP                  V P                  4      w  reVP                  V4       R V RV P                   RV R2pV\        V4      ,          pRV33# )(r5   )r_  )r   rI   extendrE   r   tuple)	r   r   rM   value_paramslsqlrT   rsqlcombined_sqlcombined_values	   &&&      r   rU   CombinedLexeme.as_sql  s    ''1F#''1F#4&$..!14&:%l(;;n&&&r   c                    V P                  4       pV P                  V P                  8X  d   V P                  MV P                  Vn        V P                  ( Vn        V P
                  ( Vn        V# r(   )r   r   r   r   rI   rE   rd  s   & r   r   CombinedLexeme.__invert__  sM    *...DJJ*F4;;DJJhhY
hhY
r   r   N)
r   r    r!   r"   rc   rg  rU   r   r#   r$   r%   s   @r   rG  rG    s     $&M
' r   rG  N)9)django.db.backends.postgresql.psycopg_anyr   django.db.modelsr   r   r   r   r   r	   r
   r   django.db.models.expressionsr   r   django.db.models.functionsr   r   django.utils.regex_helperr   utilsr   psycopg.adaptr   r   r.   psycopg2.extensionsr/   r<   r7   r:   r+   r?   r[   rc   rh   rm   r   r   r   r   r   rF   rG   r   r  register_lookupr%  r.  r2  r6  r9  r;  r=  r@  r   rR  rG  r   r   r   <module>r     s   A	 	 	 X 5 6 .$'V 'B *, !!9:%i0 ,#/ /"3U 
2E 
5 
-: -0I I -113DFW
;=)4 ;=|<13E <7 7<.;' .;b*/1C *' 'B;,T ;,|  ! !"3 46$ 66d 6 k 
/ 
 
!O !(/ (7 7<,u ,^%'9 r   