§
    eŠtjV2  ã                  ó¾   — d dl mZ d dlZd dlZd dlmZ d dlZd dl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 ej        j         G d„ de¦  «        ¦   «         ZdS )é    )ÚannotationsN)ÚPathé   )ÚTestBaseé   )Úconfig)Úeq_é   )Úutilc                  óô   — e Zd ZdZ ej        d¬¦  «        d„ ¦   «         Z ej        d¬¦  «        d„ ¦   «         Zd„ Z ej        ¦   «         d„ ¦   «         Z	ej        d	„ ¦   «         Z
ed
„ ¦   «         Zd„ Zdd„ZdS )ÚMypyTest)Úno_sqlalchemy2_stubsÚfunction)Úscopec              #  ó>   K  — |                       ¦   «         E d {V —† d S ©N©Ú	_cachedir©Úselfs    ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/testing/fixtures/mypy.pyÚper_func_cachedirzMypyTest.per_func_cachedir   ó.   è è € à—>’>Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ó    Úclassc              #  ó>   K  — |                       ¦   «         E d {V —† d S r   r   r   s    r   ÚcachedirzMypyTest.cachedir!   r   r   c              #  ó²  K  — d}t          j        ¦   «         5 }t          t          |¦  «        dz  d¦  «        5 }|                     d|› d�¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          |¦  «        dz  d¦  «        5 }|                     d|› d�¦  «         d d d ¦  «         n# 1 swxY w Y   |V — d d d ¦  «         d S # 1 swxY w Y   d S )	NÚ úsqla_mypy_config.cfgÚwz˜
                    [mypy]

                    plugins = sqlalchemy.ext.mypy.plugin

                    show_error_codes = True

                    z¡
                    disable_error_code = no-untyped-call

                    [mypy-sqlalchemy.*]
                    ignore_errors = True

                    úplain_mypy_config.cfgz^
                    [mypy]

                    show_error_codes = True

                    z®
                    disable_error_code = var-annotated,no-untyped-call
                    [mypy-sqlalchemy.*]
                    ignore_errors = True

                    )ÚtempfileÚTemporaryDirectoryÚopenr   Úwrite)r   Ú	mypy_pathr   Úconfig_files       r   r   zMypyTest._cachedir%   sÒ  è è € àˆ	åÔ(Ñ*Ô*ð 	¨hÝÝ�X‘”Ð!7Ñ7¸ñô ð àØ×!Ò!ð 
#ð ð	
#ð 
#ð 
#ñ 
ô 
ð 
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ý�X‘”Ð!8Ñ8¸#ñô ð àØ×!Ò!ð #ð ð#ð #ð #ñ ô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆNˆNˆNð7	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sX   ˜!C¹AÁCÁA#	Á#CÁ&A#	Á'#CÂ
B0Â$CÂ0B4	Â4CÂ7B4	Â8CÃCÃCc                ó$   ‡‡— ddl mŠ dˆˆfd„	}|S )Nr   )ÚapiFc           	     óº  •— |€‰
}ddd|dt           j                             ||rdnd¦  «        g}t           j                             | ¦  «        }t           j                             ||¦  «        }| |k    rt	          j        | |¦  «         |                     |¦  «         t           j                             dd ¦  «         ‰	 	                    |¦  «        \  }}}|||fS )Nz--strictz--raise-exceptionsz--cache-dirz--config-filer    r"   ÚMYPY_FORCE_COLOR)
ÚosÚpathÚjoinÚbasenameÚshutilÚcopyfileÚappendÚenvironÚpopÚrun)r.   Ú
use_pluginÚuse_cachedirÚargsÚfilenameÚtest_programÚstdoutÚstderrÚexitcoder*   r   s            €€r   r6   z!MypyTest.mypy_runner.<locals>.runJ   sä   ø€ ØÐ#Ø'�àØ$ØØØÝ”—’Ø ð &ð5Ð.Ð.à4ñô ðˆDõ* ”w×'Ò'¨Ñ-Ô-ˆHÝœ7Ÿ<š<¨°hÑ?Ô?ˆLØ�|Ò#Ð#Ý”  lÑ3Ô3Ð3Ø�KŠK˜Ñ%Ô%Ð%õ ŒJ�NŠNÐ-¨tÑ4Ô4Ð4à'*§w¢w¨t¡}¤}Ñ$ˆF�F˜HØ˜6 8Ð+Ð+r   )FN)Úmypyr*   )r   r   r6   r*   s    ` @r   Úmypy_runnerzMypyTest.mypy_runnerF   sA   øø€ àÐÐÐÐÐð#	,ð #	,ð #	,ð #	,ð #	,ð #	,ð #	,ðJ ˆ
r   c                ó   ‡ ‡— dˆˆ fd„	}|S )NFc                ó†   •— ‰                      | ¦  «        } ‰| |¬¦  «        \  }}}‰                     | ||||¦  «         d S )N)r7   )Ú_collect_messagesÚ_check_output)r.   r7   Úexpected_messagesr<   r=   r>   r@   r   s         €€r   r6   z)MypyTest.mypy_typecheck_file.<locals>.runs   s`   ø€ Ø $× 6Ò 6°tÑ <Ô <ÐØ'2 {°4ÀJÐ'OÑ'OÔ'OÑ$ˆF�F˜HØ×ÒØÐ'¨°¸ñô ð ð ð r   )F© )r   r@   r6   s   `` r   Úmypy_typecheck_filezMypyTest.mypy_typecheck_fileq   s.   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð ˆ
r   c                ó8  — t           j                             | ¦  «        r| }n[t          j        ¦   «         d         j        }t           j                             t           j                             |¦  «        | ¦  «        }t          t          |¦  «         
                    d¦  «        ¦  «        }t          j        j        D ][}|rWt           j                             |¦  «        r8|                     t          |¦  «        | z   
                    d¦  «        ¦  «         Œ\|S )Nr   z**/*.py)r-   r.   ÚisabsÚinspectÚstackr:   r/   ÚdirnameÚlistr   Úglobr   ÚoptionsÚmypy_extra_test_pathsÚisdirÚextend)rL   r.   Úcaller_pathÚfilesÚ	extra_dirs        r   Úfile_combinationszMypyTest.file_combinations|   sÛ   € åŒ7�=Š=˜Ñ!Ô!ð 	GØˆDˆDå!œ-™/œ/¨!Ô,Ô5ˆKÝ”7—<’<¥¤§¢°Ñ <Ô <¸gÑFÔFˆDÝ•T˜$‘Z”Z—_’_ YÑ/Ô/Ñ0Ô0ˆåœÔ=ð 	Jð 	JˆIØð J�RœWŸ]š]¨9Ñ5Ô5ð JØ—’�d 9™oœo°Ñ7×=Ò=¸iÑHÔHÑIÔIÐIøØˆr   c           
     óô  ‡— ddl m} g }t          j        d¦  «        }t          j        d¦  «        }t	          |¦  «        5 }g }t          |d¦  «        D �]Š\  Š}|                     |¦  «        }	|	rƒ|	                     d¦  «                             d¦  «        \  }
}}t          j
        t          |
¦  «        t          |¦  «        fk     r*t          j        d|	                     d¦  «        z  ¦  «         Œ |                     |¦  «        }	|	�r¨t          |	                     d¦  «        ¦  «        }t          |	                     d¦  «        ¦  «        }t          |	                     d	¦  «        ¦  «        }t          |	                     d
¦  «        ¦  «        }t          j        dd|	                     d¦  «        ¦  «        }|r.t          j        dd„ |¦  «        }t          j        dd„ |¦  «        }|r:|s.t          j        dd„ |¦  «        }t          j        dd„ |¦  «        }dx}}d|› d�}|r8t           j        r,|d         t          j        |rdndd„ |dd …         ¦  «        z   }|r#t           j        rt          j        dd„ |¦  «        }|                     |||                     ¦   «         f¦  «         �Œ`|r(|                     ˆfd„|D ¦   «         ¦  «         g |d d …<   �ŒŒ	 d d d ¦  «         n# 1 swxY w Y   |S )Nr   )Úmypy_14z0\s*# EXPECTED(_MYPY)?(_RE)?(_ROW)?(_TYPE)?: (.+)z%^#\s*PYTHON_VERSION\s?>=\s?(\d+\.\d+)r   ú.zRequires python >= %sr   r
   é   z# noqa[:]? ?.*r   é   zRow\[([^\]]+)\]c                ó`   — d|                       d¦  «        › d|                       d¦  «        › d�S )Nztuple[r   z!, fallback=sqlalchemy.engine.row.r   ú]©Úgroup©Úms    r   ú<lambda>z,MypyTest._collect_messages.<locals>.<lambda>©   sA   € ð 'B¨q¯wªw°q©z¬zð 'Bð 'BØ45·G²G¸A±J´Jð'Bð 'Bð 'B€ r   zOptional\[(.*)\]c                ó4   — d|                       d¦  «        › d�S )NzUnion[r   z, None]r^   r`   s    r   rb   z,MypyTest._collect_messages.<locals>.<lambda>°   s   € Ð&B¨q¯wªw°q©z¬zÐ&BÐ&BÐ&B€ r   z([\[\]])c                ó2   — d|                       d¦  «        › �S )Nú\r   r^   r`   s    r   rb   z,MypyTest._collect_messages.<locals>.<lambda>¼   s   € Ð*;¨q¯wªw°q©z¬zÐ*;Ð*;€ r   z([\w_]+)c                ó4   — d|                       d¦  «        › d�S )Nz	(?:.*\.)?r   z\*?r^   r`   s    r   rb   z,MypyTest._collect_messages.<locals>.<lambda>Å   s   € Ð*F°q·w²w¸q±z´zÐ*FÐ*FÐ*F€ r   TzRevealed type is "ú"z\b(List|Tuple|Dict|Set)\bz\b(List|Tuple|Dict|Set|Type)\bc                óP   — |                       d¦  «                             ¦   «         S )Nr   )r_   Úlowerr`   s    r   rb   z,MypyTest._collect_messages.<locals>.<lambda>ê   s   €  a§g¢g¨a¡j¤j×&6Ò&6Ñ&8Ô&8€ r   zOptional\[(.*?)\]c                ó2   — |                       d¦  «        › d�S )Nr   z | Noner^   r`   s    r   rb   z,MypyTest._collect_messages.<locals>.<lambda>ó   s   € ¨¯ª°©¬Ð&<Ð&<Ð&<€ r   c              3  ó,   •K  — | ]\  }}}‰|||fV — Œd S r   rF   )Ú.0Úis_mypyÚis_reÚexpected_msgÚnums       €r   ú	<genexpr>z-MypyTest._collect_messages.<locals>.<genexpr>ú   sK   øè è € ð -ð -ñØ#Ø!Ø(ð	 ˜g u¨lÐ;ð-ð -ð -ð -ð -ð -r   )Úsqlalchemy.ext.mypy.utilrX   ÚreÚcompiler%   Ú	enumerateÚmatchr_   Ú	partitionÚsysÚversion_infoÚintr   Ú	skip_testÚboolÚsubr   Úpy39Úpy310r3   ÚstriprR   )r   r.   rX   rE   Úexpected_reÚ	py_ver_reÚfile_Úcurrent_assert_messagesÚlinera   ÚmajorÚ_Úminorrm   rn   Úis_rowÚis_typero   rp   s                     @r   rC   zMypyTest._collect_messagesŠ   sÐ  ø€ Ø4Ð4Ð4Ð4Ð4Ð4àÐÝ”jØ?ñ
ô 
ˆõ ”JÐGÑHÔHˆ	Ý�$‰ZŒZð p	4˜5Ø&(Ð#Ý& u¨aÑ0Ô0ð n4ñ n4‘	��TØ—O’O DÑ)Ô)�Øð Ø&'§g¢g¨a¡j¤j×&:Ò&:¸3Ñ&?Ô&?‘O�E˜1˜eÝÔ'­3¨u©:¬:µs¸5±z´zÐ*BÒBÐBÝÔ(Ø3°q·w²w¸q±z´zÑBñô ð ð à×%Ò% dÑ+Ô+�Øñ c4Ý" 1§7¢7¨1¡:¤:Ñ.Ô.�GÝ  §¢¨¡¤Ñ,Ô,�EÝ! !§'¢'¨!¡*¤*Ñ-Ô-�FÝ" 1§7¢7¨1¡:¤:Ñ.Ô.�Gå#%¤6Ð*;¸RÀÇÂÈÁÄÑ#LÔ#L�LØð Ý')¤vØ.ðBð Bà(ñ	(ô (˜õ (*¤vØ/ØBÐBØ(ñ(ô (˜ð ð (LØ$ð õ
 ,.¬6Ø +Ø ;Ð ;Ø ,ñ,ô ,˜Lõ ,.¬6Ø +Ø FÐ FØ ,ñ,ô ,˜Lð0 +/Ð.˜ %Ø'K¸LÐ'KÐ'KÐ'K˜àð ¥4¤9ð ð (4°A¤½¼ð $+ð!GÐ <Ð <à%Fà8Ð8Ø(¨¨¨Ô,ñ:ô :ñ (˜ð ð ¥4¤:ð õ (*¤vØ0Ø<Ð<Ø(ñ(ô (˜ð
 ,×2Ò2Ø  %¨×);Ò);Ñ)=Ô)=Ð>ñô ð ñ ð -ð 	4Ø%×,Ò,ð -ð -ð -ð -ð 5ð-ñ -ô -ñ ô ð ð 24Ð+¨A¨A¨AÑ.ùð]n4ðp	4ð p	4ð p	4ñ p	4ô p	4ð p	4ð p	4ð p	4ð p	4ð p	4ð p	4øøøð p	4ð p	4ð p	4ð p	4ðd !Ð s   ÁJK-Ë-K1Ë4K1r<   Ústrc                óv  — g }t           j                             |¦  «        }|�rjg }|                     d¦  «        }	|	rì|	                     d¦  «        }
t          j        d|
¦  «        r|                     d|
f¦  «         n¨t          j        d|
¦  «        rF|	rC|	                     d¦  «        }t          j        d|¦  «        s|	                     d|¦  «         n|	°CnMt          j        d|
t
          j	        ¦  «        rn,t          j        d|
¦  «        r|                     d	|
f¦  «         |	°ì|D ]£\  }}}}| 
                    d
d¦  «        }|sdnd}t          |¦  «        D ]W\  }\  }}|r&t          j        d|› d|› d|› d|› |› �	|¦  «        r n?Œ0|› d|› d|› d|› |› �| 
                    d
d¦  «        v r nŒX|                     |¦  «         Œ ||= Œ¤|rdd                     |¦  «        }t          d|d¬¦  «         |r1d                     d„ |D ¦   «         ¦  «        }t          d|d¬¦  «         J d¦   «         ‚|rUt          t          |¦  «        › d�¦  «         t          d                     d„ |D ¦   «         ¦  «        ¦  «         J d¦   «         ‚d S |dk    rt          ||d¬¦  «         t          |d|¬¦  «         d S )Nú
r   z.+\.py:\d+: error: .*Úerrorz/.+\.py:\d+: note: +(?:Possible overload|def ).*z.+\.py:\d+: note: +def .*z*.+\.py:\d+: note: .*(?:perhaps|suggestion)z.+\.py:\d+: note: .*Únoteú'rg   z[SQLAlchemy Mypy plugin] r   z.*z\:z\: ú:z: z"Couldn't locate expected messages:)Úsepc              3  ó    K  — | ]	\  }}|V — Œ
d S r   rF   ©rl   r‡   Úmsgs      r   rq   z)MypyTest._check_output.<locals>.<genexpr>>  s&   è è € Ð%?Ð%?©f¨a° cÐ%?Ð%?Ð%?Ð%?Ð%?Ð%?r   zRemaining messages:Fz'expected messages not found, see stdoutz& messages from mypy were not consumed:c              3  ó    K  — | ]	\  }}|V — Œ
d S r   rF   r”   s      r   rq   z)MypyTest._check_output.<locals>.<genexpr>D  s&   è è € Ð9Ð9©¨¨3 Ð9Ð9Ð9Ð9Ð9Ð9r   z&errors and/or notes remain, see stdout)r•   )r-   r.   r0   Úsplitr5   rs   rv   r3   ÚinsertÚIÚreplaceru   r/   ÚprintÚlenr	   )r   r.   rE   r<   r=   r>   Únot_locatedr:   ÚoutputÚ	raw_linesÚeÚolrp   rm   rn   r•   ÚprefixÚidxÚtypÚerrmsgÚmissingÚextras                         r   rD   zMypyTest._check_output  sŽ  € ð ˆÝ”7×#Ò# DÑ)Ô)ˆØñ @	)ð
 ˆFàŸš TÑ*Ô*ˆIØð /Ø—M’M !Ñ$Ô$�Ý”8Ð4°aÑ8Ô8ð /Ø—M’M 7¨A ,Ñ/Ô/Ð/Ð/Ý”XØFÈñô ð /ð $ð "Ø&Ÿ]š]¨1Ñ-Ô-˜Ý!œxÐ(DÀbÑIÔIð "Ø%×,Ò,¨Q°Ñ3Ô3Ð3Ø!ð	 $ð "øõ
 ”XØAÀ1ÅbÄdñô ð /ð Ý”XÐ5°qÑ9Ô9ð /Ø—M’M 6¨1 +Ñ.Ô.Ð.ð# ð /ð& ->ð  ð  Ñ(��W˜e SØ—k’k # sÑ+Ô+�Ø<CÐKÐ4Ð4È�Ý*3°FÑ*;Ô*;ð ð Ñ&�C™˜#˜vØð 
Ýœ8ØK (ÐKÐK¨cÐKÐK°cÐKÐK¸fÐKÀcÐKÐKØ"ñô ð "ð "˜Eð	"ð $ÐAÐA cÐAÐA¨SÐAÐA°FÐA¸CÐAÐAØ!Ÿ>š>¨#¨sÑ3Ô3ð4ð 4ð ˜ð4ð
  ×&Ò& sÑ+Ô+Ð+ØØ˜3�K�Kàð HØŸ)š) KÑ0Ô0�ÝÐ:¸GÈÐNÑNÔNÐNØð BØ ŸIšIÐ%?Ð%?¸Ð%?Ñ%?Ô%?Ñ?Ô?�EÝÐ/°¸DÐAÑAÔAÐAØGÐGÑGÔG�uàð GÝ�˜V™œÐLÐLÐLÑMÔMÐMÝ�d—i’iÐ9Ð9°&Ð9Ñ9Ô9Ñ9Ô9Ñ:Ô:Ð:ØFÐFÑFÔF�uðGð Gð ˜1Š}ˆ}Ý�f˜f¨$Ð/Ñ/Ô/Ð/å�˜! Ð(Ñ(Ô(Ð(Ð(Ð(r   N)r<   r‹   )Ú__name__Ú
__module__Ú__qualname__Ú__requires__r   Úfixturer   r   r   r@   rG   ÚstaticmethodrV   rC   rD   rF   r   r   r   r      s	  € € € € € à,€Là€V„^˜*Ð%Ñ%Ô%ð$ð $ñ &Ô%ð$ð €V„^˜'Ð"Ñ"Ô"ð$ð $ñ #Ô"ð$ðð ð ðB €V„^ÑÔð(ð (ñ Ôð(ðT „^ðð ñ „^ðð ðð ñ „\ððz!ð z!ð z!ðxE)ð E)ð E)ð E)ð E)ð E)r   r   )Ú
__future__r   rJ   r-   Úpathlibr   rs   r1   rx   r#   Úbaser   r   r   Ú
assertionsr	   r   Úadd_to_markerr?   r   rF   r   r   ú<module>r³      sú   ðð #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð ÔÔðq)ð q)ð q)ð q)ð q)ˆxñ q)ô q)ñ Ôðq)ð q)ð q)r   