Ë
    r™ãjK"  ã                  ó0  — 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d
„ ej&                  j)                  d«      D «       «      Zej.                  j                    G d„ de«      «       Zy# e$ r dZY Œ.w xY w)é    )ÚannotationsN)ÚPathé   )ÚTestBaseé   )Úconfig)Úeq_)Úversionc              #  óT   K  — | ]   }|j                  «       sŒt        |«      –— Œ" y ­w©N)Ú	isdecimalÚint)Ú.0Úxs     úk/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/sqlalchemy/testing/fixtures/mypy.pyú	<genexpr>r      s!   è ø€ ò Ø¸!¿+¹+½-ŒˆA�ñùs   ‚(˜(ú.)r   r   r   c                  ó  — e Zd ZdZ ej
                  d¬«      d„ «       Z ej
                  d¬«      ed„ «       «       Zed„ «       Z	 ej
                  «       d„ «       Z
ej
                  d	„ «       Zed
„ «       Zd„ Z	 	 dd„Zy)ÚMypyTest)Úno_sqlalchemy2_stubsÚfunction)Úscopec              #  ó@   K  — | j                  «       E d {  –—†  y 7 Œ­wr   ©Ú	_cachedir)Úselfs    r   Úper_func_cachedirzMypyTest.per_func_cachedir%   s   è ø€ à—>‘>Ó#×#Ò#úó   ‚–—Úclassc              #  ó@   K  — | j                  «       E d {  –—†  y 7 Œ­wr   r   )Úclss    r   ÚcachedirzMypyTest.cachedir)   s   è ø€ ð —=‘=“?×"Ò"úr   c              #  óî   K  — d}t        j                  «       5 }t        t        |«      dz  d«      5 }|j	                  d|› d�«       d d d «       |–— d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w­w)NÚ úplain_mypy_config.cfgÚwz^
                    [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“Ð!8Ñ8¸#óð àØ×!Ñ!ð 'ð �Kð  ð#ô ÷ð ŠN÷	ð 	÷ð ú÷	ð 	üs3   ‚A5™A)²AÁA)Á	A5ÁA&	Á"A)Á)A2Á.A5c                ó$   ‡‡— ddl mŠ dˆˆfd„	}|S )Nr   )Úapic           	     ó¢  •— |€‰	}ddd|dt         j                  j                  |d«      g}t         j                  j                  | «      }t         j                  j                  ||«      }| |k7  rt	        j
                  | |«       |j                  |«       t         j                  j                  dd «       ‰j                  |«      \  }}}|||fS )Nz--strictz--raise-exceptionsz--cache-dirz--config-filer%   ÚMYPY_FORCE_COLOR)
ÚosÚpathÚjoinÚbasenameÚshutilÚcopyfileÚappendÚenvironÚpopÚrun)
r2   Úuse_cachedirÚargsÚfilenameÚtest_programÚstdoutÚstderrÚexitcoder.   r"   s
           €€r   r:   z!MypyTest.mypy_runner.<locals>.runF   s¹   ø€ ØÐ#Ø'�àØ$ØØØÜ—‘—‘˜\Ð+BÓCðˆDô —w‘w×'Ñ'¨Ó-ˆHÜŸ7™7Ÿ<™<¨°hÓ?ˆLØ�|Ò#Ü—‘  lÔ3Ø�K‰K˜Ô%ô �J‰J�N‰NÐ-¨tÔ4à'*§w¡w¨t£}Ñ$ˆF�F˜HØ˜6 8Ð+Ð+ó    r   )Úmypyr.   )r   r"   r:   r.   s    ` @r   Úmypy_runnerzMypyTest.mypy_runnerB   s   ù€ åö	,ð< ˆ
rB   c                ó   ‡ ‡— ˆˆ fd„}|S )Nc                ój   •— ‰j                  | «      } ‰| «      \  }}}‰j                  | ||||«       y r   )Ú_collect_messagesÚ_check_output)r2   Úexpected_messagesr?   r@   rA   rD   r   s        €€r   r:   z)MypyTest.mypy_typecheck_file.<locals>.runh   s?   ø€ Ø $× 6Ñ 6°tÓ <ÐÙ'2°4Ó'8Ñ$ˆF�F˜HØ×ÑØÐ'¨°¸õrB   © )r   rD   r:   s   `` r   Úmypy_typecheck_filezMypyTest.mypy_typecheck_filef   s   ù€ õ	ð ˆ
rB   c                ó(  — t         j                  j                  | «      r| }n^t        j                  «       d   j
                  }t         j                  j                  t         j                  j                  |«      | «      }t        t        |«      j                  d«      «      }t        j                  j                  D ]Q  }|sŒt         j                  j                  |«      sŒ&|j                  t        |«      | z  j                  d«      «       ŒS |S )Nr   z**/*.py)r1   r2   ÚisabsÚinspectÚstackr=   r3   ÚdirnameÚlistr   Úglobr   ÚoptionsÚmypy_extra_test_pathsÚisdirÚextend)rP   r2   Úcaller_pathÚfilesÚ	extra_dirs        r   Úfile_combinationszMypyTest.file_combinationsq   s¹   € ä�7‰7�=‰=˜Ô!Ø‰Dä!Ÿ-™-›/¨!Ñ,×5Ñ5ˆKÜ—7‘7—<‘<¤§¡§¡°Ó <¸gÓFˆDÜ”T˜$“Z—_‘_ YÓ/Ó0ˆäŸ™×=Ñ=ò 	JˆIÚœRŸW™WŸ]™]¨9Õ5Ø—‘œd 9›o°Ñ7×=Ñ=¸iÓHÕIð	Jð ˆrB   c           	     óÄ  ‡— g }t        j                  d«      }t        j                  d«      }t        |«      5 }g }t        |d«      D �]~  \  Š}|j	                  |«      }|rs|j                  d«      j                  d«      \  }	}
}t        j                  t        |	«      t        |«      fk  r't        j                  d|j                  d«      z  «       Œ�|j	                  |«      }|r¼t        |j                  d«      «      }t        |j                  d«      «      }t        |j                  d«      «      }t        j                  dd	|j                  d
«      «      }|r
dx}}d|› d�}t        j                  dd„ |«      }|j                  |||j                  «       f«       �Œ\|s�Œ`|j!                  ˆfd„|D «       «       g |d d  �Œ� 	 d d d «       |S # 1 sw Y   |S xY w)Nz)\s*# EXPECTED(_MYPY)?(_RE)?(_TYPE)?: (.+)z%^#\s*PYTHON_VERSION\s?>=\s?(\d+\.\d+)r   r   zRequires python >= %sr   é   z# noqa[:]? ?.*r$   é   TzRevealed type is "ú"zOptional\[(.*?)\]c                ó*   — | j                  d«      › d�S )Nr   z | None)Úgroup)Úms    r   ú<lambda>z,MypyTest._collect_messages.<locals>.<lambda>Ÿ   s   €  Q§W¡W¨Q£Z L°Ð"8€ rB   c              3  ó2   •K  — | ]  \  }}}‰|||f–— Œ y ­wr   rJ   )r   Úis_mypyÚis_reÚexpected_msgÚnums       €r   r   z-MypyTest._collect_messages.<locals>.<genexpr>¦   s-   øè ø€ ò -ñØ#Ø!Ø(ð	 ˜g u¨lÔ;ñ-ùs   ƒ)ÚreÚcompiler)   Ú	enumerateÚmatchr`   Ú	partitionÚsysÚversion_infor   r   Ú	skip_testÚboolÚsubr7   ÚstriprV   )r   r2   rI   Úexpected_reÚ	py_ver_reÚfile_Úcurrent_assert_messagesÚlinera   ÚmajorÚ_Úminorrd   re   Úis_typerf   rg   s                   @r   rG   zMypyTest._collect_messages   sË  ø€ ØÐÜ—j‘jÐ!MÓNˆÜ—J‘JÐGÓHˆ	Ü�$‹Zð +	4˜5Ø&(Ð#Ü& u¨aÓ0ó )4‘	��TØ—O‘O DÓ)�ÙØ&'§g¡g¨a£j×&:Ñ&:¸3Ó&?‘O�E˜1˜eÜ×'Ñ'¬3¨u«:´s¸5³zÐ*BÒBÜ×(Ñ(Ø3°q·w±w¸q³zÑBôð à×%Ñ% dÓ+�ÙÜ" 1§7¡7¨1£:Ó.�GÜ  §¡¨£Ó,�EÜ" 1§7¡7¨1£:Ó.�GÜ#%§6¡6Ð*;¸RÀÇÁÈÃÓ#L�Láà*.Ð.˜ %Ø);¸L¸>ÈÐ'K˜ô $&§6¡6Ø,Ù8Ø$ó$�Lð
 ,×2Ñ2Ø  %¨×);Ñ);Ó)=Ð>öó -Ø%×,Ñ,ó -ð 5ô-ô ð 24Ð+©AÒ.ñS)4÷+	4ðZ !Ð ÷[+	4ðZ !Ð ús   ¹E-GÆ("GÇGc                óØ  — g }t         j                  j                  |«      }|�r%g }|j                  d«      }	|	rã|	j	                  d«      }
t        j                  d|
«      r|j                  d|
f«       n¥t        j                  d|
«      r@|	r�|	j	                  d«      }t        j                  d|«      s|	j                  d|«       nS|	rŒ=nOt        j                  d|
t
        j                  «      rn)t        j                  d|
«      r|j                  d	|
f«       |	rŒã|D ]–  \  }}}}|j                  d
d«      }|sdnd}t        |«      D ]T  \  }\  }}|r't        j                  d|› d|› d|› d|› |› �	|«      sŒ0 n7|› d|› d|› d|› |› �|j                  d
d«      v sŒT n |j                  |«       Œ”||= Œ˜ |rNdj                  |«      }t        d|d¬«       |r&dj                  d„ |D «       «      }t        d|d¬«       J d«       ‚|r?t        t        |«      › d�«       t        dj                  d„ |D «       «      «       J d«       ‚y |dk7  rt        ||d¬«       t        |d|¬«       y )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ú'r^   z[SQLAlchemy Mypy plugin] r$   z.*z\:z\: ú:z: z"Couldn't locate expected messages:)Úsepc              3  ó&   K  — | ]	  \  }}|–— Œ y ­wr   rJ   ©r   ry   Úmsgs      r   r   z)MypyTest._check_output.<locals>.<genexpr>ê   s   è ø€ Ò%?©f¨a°¤cÑ%?ùó   ‚zRemaining messages:z'expected messages not found, see stdoutz& messages from mypy were not consumed:c              3  ó&   K  — | ]	  \  }}|–— Œ y ­wr   rJ   r„   s      r   r   z)MypyTest._check_output.<locals>.<genexpr>ð   s   è ø€ Ò9©¨¨3¤Ñ9ùr†   z&errors and/or notes remain, see stdout)r…   )r1   r2   r4   Úsplitr9   rh   rk   r7   ÚinsertÚIÚreplacerj   r3   ÚprintÚlenr	   )r   r2   rI   r?   r@   rA   Únot_locatedr=   ÚoutputÚ	raw_linesÚeÚolrg   rd   re   r…   ÚprefixÚidxÚtypÚerrmsgÚmissingÚextras                         r   rH   zMypyTest._check_output²   sx  € ð ˆÜ—7‘7×#Ñ# DÓ)ˆÚð
 ˆFàŸ™ TÓ*ˆIÙØ—M‘M !Ó$�Ü—8‘8Ð4°aÔ8Ø—M‘M 7¨A ,Õ/Ü—X‘XØFÈôñ $Ø&Ÿ]™]¨1Ó-˜Ü!Ÿx™xÐ(DÀbÔIØ%×,Ñ,¨Q°Ô3Ø!ó	 $ô
 —X‘XØAÀ1ÄbÇdÁdôð Ü—X‘XÐ5°qÔ9Ø—M‘M 6¨1 +Ô.ò# ð& ->ò  Ñ(��W˜e SØ—k‘k # sÓ+�Ù<CÑ4È�Ü*3°FÓ*;ò Ñ&�C™˜#˜vÙÜŸ8™8Ø! ( ¨2¨c¨U°#°c°U¸#¸f¸XÀcÀUÐKØ"õñ "à#˜* A c U¨"¨S¨E°°F°8¸C¸5ÐAØ!Ÿ>™>¨#¨sÓ3ò4ñ ðð  ×&Ñ& sÔ+ØØ˜3‘Kð% ñ( ØŸ)™) KÓ0�ÜÐ:¸GÈÕNÙØ ŸI™IÑ%?¸Ô%?Ó?�EÜÐ/°¸DÕAØGÐGÓG�uáÜœ˜V›˜Ð%KÐLÔMÜ�d—i‘iÑ9°&Ô9Ó9Ô:ØFÐFÓF�uð ð ˜1Š}Ü�f˜f¨$Õ/ä�˜! Ö(rB   N)r?   Ústr)Ú__name__Ú
__module__Ú__qualname__Ú__requires__r   Úfixturer   Úclassmethodr"   r   rD   rK   ÚstaticmethodrZ   rG   rH   rJ   rB   r   r   r   !   s¾   „ à,€Là€V‡^�^˜*Ô%ñ$ó &ð$ð €V‡^�^˜'Ô"Øñ#ó ó #ð#ð ñó ðð& €V‡^�^Óñ!ó ð!ðF ‡^�^ñó ðð ñó ðò1!ðfE)Ø/2ôE)rB   r   )Ú
__future__r   rN   r1   Úpathlibr   rh   r5   rm   r'   Úbaser   r$   r   Ú
assertionsr	   rC   r
   ÚtupleÚ__version__rˆ   Ú_mypy_vers_tupleÚImportErrorÚadd_to_markerr   rJ   rB   r   ú<module>rª      sš   ðõ #ã Û 	Ý Û 	Û Û 
Û å Ý Ý ð!Ýáñ Ø×+Ñ+×1Ñ1°#Ó6ôó Ðð ×Ñ×ÑôU)ˆxó U)ó ñU)øð ò !Ø Òð!ús   ¸.B ÂBÂB