Ë
    iKêjÇ  ã                   óB  — U d Z ddlZddlZddlmZ ddlmZmZ erddlm	Z	 e
edz  ee   f   Zeed<   dZdefd	„Zd
edef   dedefd„Zddd
edef   deddfd„Zdefd„Zdedefd„Zdaedz  ed<    e«       Zee   ed<   defd„Zedk(  rddlZ e e«       «       yy)aN  
This is a toolkit for determining which module set the "flush to zero" flag.

For details, see the docstring and comments in `identify_ftz_culprit()`.  This module
is defined outside the main Hypothesis namespace so that we can avoid triggering
import of Hypothesis itself from each subprocess which must import the worker function.
é    N)ÚCallable)ÚTYPE_CHECKINGÚ	TypeAlias)ÚQueueÚFTZCulprits)1zarchive-pdf-toolszbgfx-pythonzbicleaner-ai-gloveÚBTreesÚcadbiomÚctranslate2ÚdyNETÚdyNET38Úgeventzglove-python-binaryÚhigraÚhybridqÚikomiaÚiohz	jij-cimodÚlavavuzlavavu-osmesaÚMulticoreTSNEzneural-compressorÚnwhyÚopenjijÚ	openturnsÚperfmetricsÚpHashPyz
pyace-liteÚpyaprÚ
pycompadrezpycompadre-serialÚPyKEPÚpykepzpylimer-toolsÚpyquboÚpyscfÚPyTATzpython-prtreez
qiskit-aerzqiskit-aer-gpuÚ
RelStoragezsail-mlÚsegmentationÚsenteÚsinrÚsnapmlÚsupermanÚ	symenginezsystran-alignztexture-toolztsne-mpÚxcsfÚreturnc                  ó   — ddk(  S )Ng       r   © r*   ó    ú]/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/_hypothesis_ftz_detector.pyÚflush_to_zeror-   .   s   € à˜‰?Ðr+   Úfn.Úargsc                 óì   — dd l }|j                  dd¬«       |j                  «       }|j                  t        || g|¢­¬«      }|j                  «        |j                  «       }|j                  «        |S )Nr   ÚspawnT)Úforce)Útargetr/   )ÚmultiprocessingÚset_start_methodr   ÚProcessr3   ÚstartÚgetÚjoin)r.   r/   ÚmpÚqÚpÚretvals         r,   Úrun_in_processr>   3   s_   € Û à×Ñ˜ tÐÔ,ØŸH™H›J€AØ
�
‰
œ&¨¨2 ~°¡~ˆ
Ó6€AØ‡G�G„IØ�U‰U‹W€FØ‡F�F„HØ€Mr+   r;   zQueue[FTZCulprits]c                 ó,   — | j                   ||Ž «       y ©N)Úput)r;   r.   r/   s      r,   r3   r3   ?   s   € ð ‡E�E‰"ˆdˆ)Õr+   c                  óH   — t        «       t        t        j                  «      fS r@   )r-   ÚsetÚsysÚmodulesr*   r+   r,   Úalways_imported_modulesrF   E   s   € Ü‹?œC¤§¡Ó,Ð,Ð,r+   Úmodc                 óæ   — t        t        j                  «      }	 t        j                  | «       t        t        j                  «      |z
  }t        «       |fS # t
        $ r dt        «       fcY S w xY w)z7Return the set of modules imported transitively by mod.N)rC   rD   rE   Ú	importlibÚimport_moduleÚ	Exceptionr-   )rG   ÚbeforeÚimportss      r,   Úmodules_imported_byrN   I   sb   € ä”—‘Ó€FðÜ×Ñ Ô$ô ”#—+‘+Ó Ñ'€GÜ‹?˜GÐ#Ð#øô ò Ø”S“Uˆ{Òðús   ›A ÁA0Á/A0Ú	KNOWN_FTZÚCHECKED_CACHEc                  óê  — t         rt         S t        t        «      \  } }| rt        d«      ‚t        j                  |«       dt        dt        t        t        t        f   fd„}t        t        j                  «      t        z
  }i }|rdt        ||¬«      }|j                  |«       t        t        |«      \  }}|t        z  }|r|||<   ||z  }n||z  }t        j                  |«       |rŒdt        d„ |D «       «      }|D �	ch c]  }	|	j!                  |«      rŒ|	’Œ }
}	t#        |
«      D ]3  }t#        |
«      D ]#  }|||   v sŒ|||   vsŒ|
j                  |«       Œ% Œ5 t        |
«      a t         S c c}	w )zAFind the modules in sys.modules which cause "mod" to be imported.z3Python is always in FTZ mode, even without imports!Únamer(   c                 ó6   — | t         v| j                  d«      | fS )zEPrefer known-FTZ modules, then top-level packages, then alphabetical.ú.)ÚKNOWN_EVER_CULPRITSÚcount)rR   s    r,   Úkeyz"identify_ftz_culprits.<locals>.keyk   s   € àÔ/Ð/°·±¸C³À$ÐGÐGr+   )rW   c              3   ó&   K  — | ]	  }|d z   –— Œ y­w)rT   Nr*   )Ú.0Úns     r,   ú	<genexpr>z(identify_ftz_culprits.<locals>.<genexpr>ƒ   s   è ø€ Ò9 �Q˜•WÑ9ùs   ‚)rO   r>   rF   ÚRuntimeErrorrP   ÚupdateÚstrÚtupleÚboolÚintrC   rD   rE   ÚminÚdiscardrN   Ú
startswithÚsorted)Úalways_enables_ftzÚalways_importsrW   Ú
candidatesÚtriggering_modulesrG   Úenables_ftzrM   ÚprefixesÚkÚresultÚaÚbs                r,   Úidentify_ftz_culpritsrp   Z   s~  € õ ÜÐô *8Ô8OÓ)PÑ&Ð˜ÙÜÐPÓQÐQÜ×Ñ˜Ô(ðH”#ð Hœ%¤¤c¬3 Ñ/ó Hô
 ”S—[‘[Ó!¤MÑ1€JØÐÙ
Ü�* #Ô&ˆØ×Ñ˜3ÔÜ-Ô.AÀ3ÓGÑˆ�WØ”=Ñ ˆÙØ&-Ð˜sÑ#Ø˜'Ñ!‰Jà˜'Ñ!ˆJÜ× Ñ  Ô)ò ô" Ñ9Ð&8Ô9Ó9€HØ+ÖJ�A°1·<±<ÀÕ3IŠaÐJ€FÐJô �F‹^ò "ˆÜ˜“ò 	"ˆAØÐ& qÑ)Ò)¨aÐ7IÈ!Ñ7LÒ.LØ—‘˜qÕ!ñ	"ð"ô �F“€IÜÐùò Ks   ÄE0ÄE0Ú__main__)Ú__doc__rI   rD   Úcollections.abcr   Útypingr   r   r4   r   r_   r`   rC   r^   r   Ú__annotations__rU   r-   Úobjectr>   r3   rF   rN   rO   rP   rp   Ú__name__Ú	grequestsÚprintr*   r+   r,   ú<module>rz      s  ðòó Û 
Ý $ß +áÝ%à˜t d™{¨C°©HÐ4Ñ5€ˆYÓ 5ðÐ ð �tó ð
	�x  [Ð 0Ñ1ð 	¸&ð 	À[ó 	ðØðØ!)¨#¨{Ð*:Ñ!;ðØDJðà	óð- ó -ð$˜Sð $ [ó $ð €	ˆ3�‰:Ó Ù›%€ˆs�3‰xÓ ð8˜só 8ðv ˆzÒó ñ 
Ñ
Ó
!Õ"ð r+   