
    i                        d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZmZmZmZmZmZ d dlmZ d dlmZ dddddddZ  G d dej!                  Z"dS )    )annotationsN)cast)Graph)ImportMypyFile)Options)Errors)	IRBuilder)Mapper)PreBuildVisitor)IMPORT_NATIVE_ATTRIMPORT_NATIVE_SUBMODULEIMPORT_NON_NATIVEclassify_import_fromgroup_consecutiveimport_globals_id_and_name'split_import_group_to_python_and_native)IRBuilderVisitor)CompilerOptionszpkg.current)module_namenative_modulessame_group_modulesgraphr   strr   set[str] | Noner   r   returnr
   c                   |pt                      }|pt                      }| di}|D ]}||v rdnd||<   t          t                                }t          g g           }| |_        t          ||i i           }t          | i t          t          d |pt                      D                       |t          |          |t                      t                      i 	  	        }	|	                    | |                     dd          dz              |	S )Nzcurrent-groupzother-groupc                ,    i | ]}|t                      S  )object).0names     X/root/projects/qq-shell/venv/lib64/python3.11/site-packages/mypyc/test/test_statement.py
<dictcomp>z make_builder.<locals>.<dictcomp>.   s    AAAT688AAA    ./z.py)setr	   r   r   	_fullnamer   r
   r   r   r   r   r   
set_modulereplace)
r   r   r   r   	group_mapmoduleerrorscurrent_filepbvbuilders
             r#   make_builderr2      s%    $,suuN+4suu(3_'EI  _ _/59K/K/KOOQ^	&GIIFB##L(L
&,B
7
7C
UAA#%%AAABBy

 
G {K$7$7S$A$AE$IJJJNr%   c                  F    e Zd ZddZddZddZddZddZddZdd	Z	d
S )TestStatementHelpersr   Nonec                2    t          dd           dk    sJ d S )Nfoo.bar)foor8   r   selfs    r#   0test_import_globals_id_and_name_for_plain_importzETestStatementHelpers.test_import_globals_id_and_name_for_plain_import;   s#    ))T::nLLLLLLr%   c                2    t          dd          dk    sJ d S )Nr7   baz)r7   r>   r9   r:   s    r#   -test_import_globals_id_and_name_for_import_aszBTestStatementHelpers.test_import_globals_id_and_name_for_import_as>   s$    ))U;;?QQQQQQQr%   c                    t          h dh d          }t          ddg          t          g d          g}d|d         _        d|d	         _        t          ||          }|d
gdfdgdfdgdfdgdfdgdfgk    sJ d S )N>   pkg.beta	pkg.alpha	pkg.gamma)r   r   )rB   N)py_modN))rA   
beta_alias)foreign.modN)rC   N
   r         )rB   NrG   T)rD   NrG   F)rA   rE   rH   )rF   NrH   )rC   NrH   )r2   r   liner   )r;   r1   groupresults       r#   ;test_split_import_group_to_python_and_native_preserves_runszPTestStatementHelpers.test_split_import_group_to_python_and_native_preserves_runsA   s    AAAEEE
 
 

 ')9:;;[[[\\
 aa8%HH%&-"#U+,-t4'(%0%&-
 
 
 
 
 
 
r%   c           	         t          t          ddft          ddft          ddft          ddft          ddfg          }d |D             t          ddgddgft          dgdgft          ddgddgfgk    sJ d S )	Nabb_aliascdd_aliasec                6    g | ]}|j         |j        |j        fS r   kindnamesas_namesr!   buckets     r#   
<listcomp>zdTestStatementHelpers.test_group_consecutive_groups_by_kind_and_preserves_aliases.<locals>.<listcomp>b   %    SSSflFO<SSSr%   )r   r   r   r   )r;   bucketss     r#   ;test_group_consecutive_groups_by_kind_and_preserves_aliaseszPTestStatementHelpers.test_group_consecutive_groups_by_kind_and_preserves_aliasesW   s    #(#s3(#y9"C-#S)4#S#.
 
 TS7SSS$sCj3	2BCu-#si-=>X
 
 
 
 
 
 
r%   c                    t          ddhddhh d          }t          |dg dg dd	          }d
 |D             t          ddgddgft          ddgddgfgk    sJ d S )Npkg.native_apkg.native_b>   pkg.foreign_apkg.foreign_brb   rc   )r   r   r   pkg)native_anative_b	foreign_a	foreign_b)rg   native_b_aliasri   foreign_b_aliasTparent_is_nativec                6    g | ]}|j         |j        |j        fS r   rW   r[   s     r#   r]   z[TestStatementHelpers.test_classify_import_from_groups_consecutive_kinds.<locals>.<listcomp>w   r^   r%   rg   rh   rk   ri   rj   rl   )r2   r   r   r   r;   r1   r_   s      r#   2test_classify_import_from_groups_consecutive_kindszGTestStatementHelpers.test_classify_import_from_groups_consecutive_kindsh   s    *N; .?TTT
 
 
 '>>>JJJ!
 
 
 TS7SSS$z:&>M]@^_k :[J[<\]X
 
 
 
 
 
 
r%   c                    t          dh          }t          |dddgddgd	          }d
 |D             t          dgdgft          dgdgfgk    sJ d S )Nzpkg.foreign)r   rf   	attr_nameforeign
attr_aliasforeign_aliasTrm   c                6    g | ]}|j         |j        |j        fS r   rW   r[   s     r#   r]   zrTestStatementHelpers.test_classify_import_from_treats_missing_name_under_native_parent_as_attr.<locals>.<listcomp>   r^   r%   )r2   r   r   r   rp   s      r#   Itest_classify_import_from_treats_missing_name_under_native_parent_as_attrz^TestStatementHelpers.test_classify_import_from_treats_missing_name_under_native_parent_as_attr|   s    m_555&)$?+!
 
 
 TS7SSS+?o->?X
 
 
 
 
 
 
r%   c                    t                      }t          |ddgdgd          }d |D             t          dgdgfgk    sJ d S )Nrf   rs   ru   Frm   c                6    g | ]}|j         |j        |j        fS r   rW   r[   s     r#   r]   zoTestStatementHelpers.test_classify_import_from_without_native_parent_never_uses_native_attr.<locals>.<listcomp>   r^   r%   )r2   r   r   rp   s      r#   Ftest_classify_import_from_without_native_parent_never_uses_native_attrz[TestStatementHelpers.test_classify_import_from_without_native_parent_never_uses_native_attr   st    ..&U[ML>E
 
 
 TS7SSS~>X
 
 
 
 
 
 
r%   N)r   r5   )
__name__
__module____qualname__r<   r?   rM   r`   rq   rx   r{   r   r%   r#   r4   r4   :   s        M M M MR R R R
 
 
 
,
 
 
 
"
 
 
 
(
 
 
 
 	
 	
 	
 	
 	
 	
r%   r4   )
r   r   r   r   r   r   r   r   r   r
   )#
__future__r   unittesttypingr   
mypy.buildr   
mypy.nodesr   r   mypy.optionsr   mypyc.errorsr	   mypyc.irbuild.builderr
   mypyc.irbuild.mapperr   mypyc.irbuild.prebuildvisitorr   mypyc.irbuild.statementr   r   r   r   r   r   r   mypyc.irbuild.visitorr   mypyc.optionsr   r2   TestCaser4   r   r%   r#   <module>r      s   " " " " " "              ' ' ' ' ' ' ' '                   + + + + + + ' ' ' ' ' ' 9 9 9 9 9 9                  3 2 2 2 2 2 ) ) ) ) ) )
 %&**.!     @[
 [
 [
 [
 [
8, [
 [
 [
 [
 [
r%   