+
    ‹°³j÷  ã                   ó¤   € R t ^ RIt^ RItRtRtR t]! 4       '       d   RtRt]P                  ! R]P                  4      tR t	RRRRRR/ R3R lt
R# )	z4Tools to assist importing optional external modules.Nc                  óv   € ^ RI p V P                  RR4      pVR9   d   \        V4      # \        RV,          4      h)é    NÚSYMPY_DEBUGÚFalsez&unrecognized value for SYMPY_DEBUG: %s)ÚTruer   )ÚosÚgetenvÚevalÚRuntimeError)r   Ú	debug_strs     Ú[/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/external/importtools.pyÚ__sympy_debugr      sB   € ó Ø—	‘	˜-¨Ó1€IØÐ%Ô%Ü�I‹ÐäÐCØ$õ%ó &ð 	&ó    Tz(\d+ | [a-z]+ | \.)c                 óÖ   € . p\         P                  V 4       F3  pV'       g   K  VR 8w  g   K   \        V4      pVP	                  V4       K5  	  \        V4      #   \         d     L-i ; i)Ú.)Ú_component_reÚsplitÚintÚ
ValueErrorÚappendÚtuple)ÚvstringÚ
componentsÚxs   &  r   Úversion_tupler   !   sh   € ð €JÜ× Ñ  Ö)ˆß‰1��c–ðÜ˜“F�ð ×Ñ˜aÖ ñ *ô �ÓÐøô ô Ùðús   ¯AÁA(Á'A(Ú__version__c	                ód  € \         e   \         MT;'       g    Rp\        e   \        MT;'       g    Rp^ RIp	V'       d^   \        P                  V8  dI   V'       d?   V	P                  RV : RRP                  \        \        V4      4      : R2\        ^R7       R#  \        V 3/ VB p
VP                  R	R4      pV F8  pVR
8X  g   K  V
P                  R8X  g   K  \        V R,           V,           4       K:  	  T'       d¹   \        Y¥4      pTe   T! T!  p\!        T4      \!        T4      8  d‹   T'       d�   \#        T\        4      '       d   TpMG\#        T\$        \&        34      '       d!   RP                  \        \        T4      4      pM\        T4      pT	P                  T : RT: R2\        ^R7       R# T
#   \         d,    T'       d    T	P                  RT ,          \        ^R7        R# T d8   pT'       d%   T	P                  T : R\        T4      : R2^R7        Rp?R# Rp?ii ; i)aÔ  
Import and return a module if it is installed.

If the module is not installed, it returns None.

A minimum version for the module can be given as the keyword argument
min_module_version.  This should be comparable against the module version.
By default, module.__version__ is used to get the module version.  To
override this, set the module_version_attr keyword argument.  If the
attribute of the module to get the version should be called (e.g.,
module.version()), then set module_version_attr_call_args to the args such
that module.module_version_attr(*module_version_attr_call_args) returns the
module's version.

If the module version is less than min_module_version using the Python <
comparison, None will be returned, even if the module is installed. You can
use this to keep from importing an incompatible older version of a module.

You can also specify a minimum Python version by using the
min_python_version keyword argument.  This should be comparable against
sys.version_info.

If the keyword argument warn_not_installed is set to True, the function will
emit a UserWarning when the module is not installed.

If the keyword argument warn_old_version is set to True, the function will
emit a UserWarning when the library is installed, but cannot be imported
because of the min_module_version or min_python_version options.

Note that because of the way warnings are handled, a warning will be
emitted for each module only once.  You can change the default warning
behavior by overriding the values of WARN_NOT_INSTALLED and WARN_OLD_VERSION
in sympy.external.importtools.  By default, WARN_NOT_INSTALLED is False and
WARN_OLD_VERSION is True.

This function uses __import__() to import the module.  To pass additional
options to __import__(), use the import_kwargs keyword argument.  For
example, to import a submodule A.B, you must pass a nonempty fromlist option
to __import__.  See the docstring of __import__().

This catches ImportError to determine if the module is not installed.  To
catch additional errors, pass them as a tuple to the catch keyword
argument.

Examples
========

>>> from sympy.external import import_module

>>> numpy = import_module('numpy')

>>> numpy = import_module('numpy', min_python_version=(2, 7),
... warn_old_version=False)

>>> numpy = import_module('numpy', min_module_version='1.5',
... warn_old_version=False) # numpy.__version__ is a string

>>> # gmpy does not have __version__, but it does have gmpy.version()

>>> gmpy = import_module('gmpy', min_module_version='1.14',
... module_version_attr='version', module_version_attr_call_args=(),
... warn_old_version=False)

>>> # To import a submodule, you must pass a nonempty fromlist to
>>> # __import__().  The values do not matter.
>>> p3 = import_module('mpl_toolkits.mplot3d',
... import_kwargs={'fromlist':['something']})

>>> # matplotlib.pyplot can raise RuntimeError when the display cannot be opened
>>> matplotlib = import_module('matplotlib',
... import_kwargs={'fromlist':['pyplot']}, catch=(RuntimeError,))

NTFz!Python version is too old to use z (r   z or newer required))Ú
stacklevelÚfromlistÚcollectionsÚ
matplotlibz%s module is not installedz module could not be used (Ú)z version is too old to use (© )ÚWARN_OLD_VERSIONÚWARN_NOT_INSTALLEDÚwarningsÚsysÚversion_infoÚwarnÚjoinÚmapÚstrÚUserWarningÚ
__import__ÚgetÚ__name__ÚImportErrorÚreprÚgetattrr   Ú
isinstancer   Úlist)ÚmoduleÚmin_module_versionÚmin_python_versionÚwarn_not_installedÚwarn_old_versionÚmodule_version_attrÚmodule_version_attr_call_argsÚimport_kwargsÚcatchr%   ÚmodÚ	from_listÚsubmodÚeÚ
modversionÚverstrs   &&&&&&&&&       r   Úimport_modulerD   0   sò  € ô^ -=Ò,HÕ(Ø×%Ð% ð ä0BÒ0NÕ,Ø×(Ð( 5ð ó ÷ Ü×ÑÐ0Ô0ßØ—’ã §¡¬¬SÐ2DÓ)EÖ FðHô  ¨Að ô /ñ ðÜ˜Ñ1 =Ñ1ˆð "×%Ñ% j°"Ó5ˆ	ÛˆFØ˜Ö&¨3¯<©<¸<Ö+GÜ˜6 C�<¨&Õ0Ö1ñ  ÷ Ü˜SÓ6ˆ
Ø(Ò4Ù#Ð%BÑCˆJÜ˜Ó$¤}Ð5GÓ'HÔHßäÐ0´#×6Ò6Ø/‘FÜÐ 2´U¼D°M×BÒBØ ŸX™X¤c¬#Ð/AÓ&BÓC‘Fô !Ð!3Ó4�FØ—‘Û06»ð@ä¨Að ô /ñ à€JøôA ô ßØ�M‰MÐ6¸Õ?ÄØ ð ô "âØô ßØ�M‰MÛ6<¼dÀ1¾gÐFØð ô õ 	ûðús6   Â'F= ÃF= ÃF= Æ=H/ÇH/Ç2H/Ç7H/Ç8,H*È*H/r"   )Ú__doc__r&   Úrer$   r#   r   ÚcompileÚVERBOSEr   r   rD   r"   r   r   Ú<module>rI      sn   ðÙ :ã 
Û 	ð Ð ØÐ ò
&ñ ‡?‚?ØÐØÐð —
’
Ð1°2·:±:Ó>€òð .2ÀdØ°$Ø)ÈØ öKr   