Ë
    ÜÍ:jJ  ã                   ó’   — d dl Z d dlZ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 d dlm	Z	 ej                  j                  d„ «       Zd„ Zy)é    N)Ú__version__)Ú_openmp_parallelism_enabledc                  óŽ  — t         j                  j                  t        j                  «      g} g }t        j                  | dd„ ¬«      D ]Ï  \  }}}|sd|v sd|v sd|v sd|v rŒt        j                  |«      }t        |dd	«      xs d	}|j                  d
«      sŒRt        j                  |t        j                  «      D ]W  \  }}	 t        j                  |«      }	|	|k7  rŒ"|j                   |k7  sŒ2|j#                  |› d|› d|j                   ›d|›�«       ŒY ŒÑ |rJ ddj%                  |«      z   «       ‚y# t        $ r Y Œƒw xY w)aë  Check that Cython extension types have a correct ``__module__``.

    When a subpackage containing Cython extension types has a misconfigured
    ``meson.build`` (e.g. missing ``__init__.py`` in its Cython tree), Cython
    cannot detect the package hierarchy and sets ``__module__`` to just the
    submodule name (e.g. ``'_loss'``) instead of the fully qualified
    ``'sklearn._loss._loss'``. This breaks downstream tools like skops that
    rely on ``__module__`` for serialization.
    zsklearn.c                  ó   — y )N© )Ú_s    úm/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/sklearn/tests/test_build.pyú<lambda>z,test_extension_type_module.<locals>.<lambda>   s   � ó    )ÚpathÚprefixÚonerrorz.tests.z.externals.z._build_utils.z._cyutilityÚ__file__Ú )z.soz.pydú.z.__module__ == z, expected z+Extension types with incorrect __module__:
ú
N)Úosr   ÚdirnameÚsklearnr   ÚpkgutilÚwalk_packagesÚ	importlibÚimport_moduleÚgetattrÚendswithÚinspectÚ
getmembersÚisclassÚgetfileÚ	TypeErrorÚ
__module__ÚappendÚjoin)
Úsklearn_pathÚfailuresr   ÚmodnameÚispkgÚmodÚmod_fileÚnameÚclsÚcls_files
             r	   Útest_extension_type_moduler-      sm  € ô —G‘G—O‘O¤G×$4Ñ$4Ó5Ð6€LØ€HÜ$×2Ñ2Ø *±nôò )Ñˆˆ7�Eñ Ø˜GÑ#Ø Ñ'Ø 7Ñ*Ø Ñ'àÜ×%Ñ% gÓ.ˆÜ˜3 
¨BÓ/Ò5°2ˆð × Ñ  Ô1ØÜ ×+Ñ+¨C´·±ÓAò 	‰IˆD�#ðÜ"Ÿ?™?¨3Ó/�ð ˜8Ò#ØØ�~‰~ Ó(Ø—‘Ø�i˜q   o°c·n±nÐ5Gð H Ø '˜{ð,õñ	ð3)ñT ð ÐGÈ$Ï)É)ØóKñ ó ˆ<ˆxøô ò ñ ðús   ÃD8Ä8	EÅEc                  óô   — t        j                  d«      rt        j                  d«       t	        j
                  d«      rdnd} t        j                  d«      j                  | «      }t        «       sJ |«       ‚y )NÚSKLEARN_SKIP_OPENMP_TESTz2test explicitly skipped (SKLEARN_SKIP_OPENMP_TEST)z.dev0ÚdevÚstableaÿ  
        This test fails because scikit-learn has been built without OpenMP.
        This is not recommended since some estimators will run in sequential
        mode instead of leveraging thread-based parallelism.

        You can find instructions to build scikit-learn with OpenMP at this
        address:

            https://scikit-learn.org/{}/developers/advanced_installation.html

        You can skip this test by setting the environment variable
        SKLEARN_SKIP_OPENMP_TEST to any value.
        )
r   ÚgetenvÚpytestÚskipr   r   ÚtextwrapÚdedentÚformatr   )Úbase_urlÚerr_msgs     r	   Útest_openmp_parallelism_enabledr:   J   sg   € ô 
‡y�yÐ+Ô,Ü�‰ÐHÔIä#×,Ñ,¨WÔ5‰u¸8€HÜ�o‰oð	ó÷ �fˆXÓð ô  'Ô(Ð1¨'Ó1Ñ(r   )r   r   r   r   r5   r3   r   r   Úsklearn.utils._openmp_helpersr   ÚmarkÚthread_unsafer-   r:   r   r   r	   ú<module>r>      sD   ðÛ Û Û 	Û Û ã ã Ý Ý Eð ‡�×Ññ8ó ð8óv2r   