
    ɯwg                         d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm	Z
 ddlmZmZmZ  ej                  e      ZddZ G d de
      Z	y)	    N)
IS_WINDOWSTEST_WITH_CROSSREFTEST_WITH_TORCHDYNAMOTestCase   )configresetutilsc                    ddl m} t        st        st        ry t        | t              r| f} | D ]>  }|dk(  r!t        j                  j                         r' y 	 t        j                  |       @  |        y # t        $ r Y  y w xY w)Nr   )	run_testscuda)$torch.testing._internal.common_utilsr   r   r   r   
isinstancestrtorchr   is_available	importlibimport_moduleImportError)needsr   needs      \/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/torch/_dynamo/test_case.pyr   r      sx    >
.@% 6>::**,''- K  s   A88	BBc                   p     e Zd ZU ej                  ed<   e fd       Ze fd       Z fdZ	 fdZ
 xZS )r   _exit_stackc                 V    | j                   j                          t        |           y N)r   closesupertearDownClasscls	__class__s    r   r   zTestCase.tearDownClass,   s        c                     t         |           t        j                         | _        | j                  j                  t        j                  ddd             y )NTF)raise_on_ctx_manager_usagesuppress_errorslog_compilation_metrics)r   
setUpClass
contextlib	ExitStackr   enter_contextr   patchr    s    r   r(   zTestCase.setUpClass1   sE    $..0%%LL+/ %(-	
r#   c                     t        j                         | _        t        |           t                t        j                  j                          y r   )	r   is_grad_enabled_prior_is_grad_enabledr   setUpr	   r
   countersclear)selfr"   s    r   r0   zTestCase.setUp=   s2    &+&;&;&=#r#   c                    t         j                  j                         D ]  \  }}t        ||j	                                ! t                t         j                  j                          t        | !          | j                  t        j                         ur5t        j                  d       t        j                  | j                         y y )NzRunning test changed grad mode)r
   r1   itemsprintmost_commonr	   r2   r   tearDownr/   r   r.   logwarningset_grad_enabled)r3   kvr"   s      r   r8   zTestCase.tearDownC   s    NN((* 	&DAq!Q]]_%	&&&e.C.C.EEKK89""4#>#>? Fr#   )__name__
__module____qualname__r)   r*   __annotations__classmethodr   r(   r0   r8   __classcell__)r"   s   @r   r   r   )   sF    %%%    	
 	
@ @r#   r   ) )r)   r   loggingr   torch.testingr   r   r   r   r   TorchTestCase r   r	   r
   	getLoggerr>   r9   r   rD   r#   r   <module>rJ      sM          # " g!("@} "@r#   