Ë
    7^(h³  ã                   óT   — d Z ddlZddlZddlmZmZmZmZ ddlZddl	m
Z
 e
d„ «       Zy)a€  
Checks that SymPy does not contain indirect imports.

An indirect import is importing a symbol from a module that itself imported the
symbol from elsewhere. Such a constellation makes it harder to diagnose
inter-module dependencies and import order problems, and is therefore strongly
discouraged.

(Indirect imports from end-user code is fine and in fact a best practice.)

Implementation note: Forcing Python into actually unloading already-imported
submodules is a tricky and partly undocumented process. To avoid these issues,
the actual diagnostic code is in bin/diagnose_imports, which is run as a
separate, pristine Python process.
é    N)ÚabspathÚdirnameÚjoinÚnormpath)ÚXFAILc                  ó¨  — t        t        j                  t        j                  «       «      «      } t	        | «      }t        |d«      }t        |«      }t        j                  t        j                  t        |«      ddgt        j                  t        j                  d¬«      }|j                  «       \  }}|dk(  sJ d|j                  «       z   «       ‚y )Nzdiagnose_imports.pyz
--problemsz--by-importeréÿÿÿÿ)ÚstdoutÚstderrÚbufsizeÚ zThere are import problems:
)r   ÚinspectÚgetfileÚcurrentframer   r   r   Ú
subprocessÚPopenÚsysÚ
executableÚPIPEÚSTDOUTÚcommunicateÚdecode)Úmy_filenameÚ
my_dirnameÚdiagnose_imports_filenameÚprocessÚoutputÚ_s         úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/testing/tests/test_module_imports.pyÚtest_module_imports_are_directr       s³   € äœ'Ÿ/™/¬'×*>Ñ*>Ó*@ÓAÓB€KÜ˜Ó%€JÜ $ ZÐ1FÓ GÐÜ (Ð)BÓ CÐä×Ñä�N‰NÜÐ.Ó/ØØð		
ô �‰Ü× Ñ Øô	€Gð ×#Ñ#Ó%�I€FˆAØ�RŠ<ÐIÐ7¸&¿-¹-»/ÑIÓI‰<ó    )Ú__doc__r   r   Úos.pathr   r   r   r   r   Úsympy.testing.pytestr   r    © r!   r   ú<module>r&      s2   ðñó  Û 
ß 4Ó 4Û å &àñJó ñJr!   