ó
    Eñiû  ã                   óB   • S SK r S SKJr  S rS rSS jrSS jrSS jrg)	é    N)Úversionc                 ó¾  •  US:X  a-  [         R                  " U 5      [         R                  " U5      :„  $ US:X  a-  [         R                  " U 5      [         R                  " U5      :¬  $ US:X  a-  [         R                  " U 5      [         R                  " U5      :H  $ US:X  a-  [         R                  " U 5      [         R                  " U5      :  $ g! [         a     gf = f)a  
Check version string of an active module against a required version.

If dev/prerelease tags result in TypeError for string-number comparison,
it is assumed that the dependency is satisfied.
Users on dev branches are responsible for keeping their own packages up to
date.
Ú>ú>=Ú=Ú<FT)Ú_versionÚparseÚ	TypeError)Úactverr   Úcmp_ops      Úa/home/mande/repo/quber/.venv/lib/python3.13/site-packages/skimage/_shared/version_requirements.pyÚ_check_versionr      s¬   € ðØ�S‹=Ü—>’> &Ó)¬H¯NªN¸7Ó,CÑCÐCØ�t‹^Ü—>’> &Ó)¬X¯^ª^¸GÓ-DÑDÐDØ�s‹]Ü—>’> &Ó)¬X¯^ª^¸GÓ-DÑDÐDØ�s‹]Ü—>’> &Ó)¬H¯NªN¸7Ó,CÑCÐCàøÜó Ùðús"   ‚2C µ2C Á(2C Â2C Ã
CÃCc           	      ój   • [        X R                  S5      S   /S9n[        US[        USS5      5      $ )z<Return module version or None if version can't be retrieved.Ú.éÿÿÿÿ©ÚfromlistÚ__version__ÚVERSIONN)Ú
__import__Ú
rpartitionÚgetattr)Úmodule_nameÚmods     r   Úget_module_versionr      s7   € ä
�[×,BÑ,BÀ3Ó,GÈÑ,KÐ+LÑ
M€CÜ�3˜¤w¨s°I¸tÓ'DÓEÐEó    c                 óh  • U R                  5       S:X  a  [        R                  SS nO [        U 5      nUc  gSSKnUR                  SU5      nUc   S5       eUSUR                  5        nU(       d  S	nUS
;   d   SU S35       eXR                  5       S n[        X!U5      $ ! [         a     gf = f)aª  Test if *name* is installed.

Parameters
----------
name : str
    Name of module or "python"
version : str, optional
    Version string to test against.
    If version is not None, checking version
    (must have an attribute named '__version__' or 'VERSION')
    Version may start with =, >=, > or < to specify the exact requirement

Returns
-------
out : bool
    True if `name` is installed matching the optional version.
ÚpythonNé   FTr   z[0-9]zInvalid version numberr   )r   r   r   r   zInvalid version condition 'Ú')	ÚlowerÚsysr   r   ÚImportErrorÚreÚsearchÚstartr   )Únamer   r   r%   ÚmatchÚsymbs         r   Úis_installedr+   $   sË   € ð$ ‡z�zƒ|�xÓÜ—‘˜R˜a�‰ð	Ü'¨Ó-ˆFð �Øó 	à—	‘	˜' 7Ó+ˆØÑ Ð:Ð":Ó:Ð Ø�˜Ÿ™›Ð'ˆÞØˆDØÐ,Ó,ÐSÐ0KÈDÈ6ÐQRÐ.SÓSÐ,ØŸ+™+›-˜/Ð*ˆÜ˜f¨tÓ4Ð4øô! ó 	Ùð	ús   ªB$ Â$
B1Â0B1c                 ó$   ^ ^^• SSK mUU U4S jnU$ )a  Return decorator that forces a requirement for a function or class.

Parameters
----------
name : str
    Name of module or "python".
version : str, optional
    Version string to test against.
    If version is not None, checking version
    (must have an attribute named '__version__' or 'VERSION')
    Version may start with =, >=, > or < to specify the exact requirement

Returns
-------
func : function
    A decorator that raises an ImportError if a function is run
    in the absence of the input dependency.
r   Nc                 óB   >^ • TR                  T 5      UU U4S j5       nU$ )Nc                  ó’   >• [        TT5      (       a  T" U 0 UD6$ ST STR                   ST 3nTb  UST 3-  n[        US-   5      e)NÚ"z" in "z" requires "Ú )r+   Ú
__module__r$   )ÚargsÚkwargsÚmsgr(   Úobjr   s      €€€r   Úfunc_wrappedÚ0require.<locals>.decorator.<locals>.func_wrappedf   sb   ø€ ä˜D '×*Ñ*Ù˜DÐ+ FÑ+Ð+à˜#˜˜f S§^¡^Ð$4°LÀÀÐG�ØÑ&Ø˜Q˜w˜i˜=Ñ(�CÜ! #¨¡)Ó,Ð,r   )Úwraps)r5   r6   Ú	functoolsr(   r   s   ` €€€r   Ú	decoratorÚrequire.<locals>.decoratore   s&   ù€ Ø	�‰˜Ó	ö	-ó 
ð	-ð Ðr   )r9   )r(   r   r:   r9   s   `` @r   Úrequirer<   N   s   ú€ ó* ÷ð Ðr   c                 ó\   • [        X5      (       d  g[        X R                  S5      S   /S9$ )aí  Return a module object of name *module_name* if installed.

Parameters
----------
module_name : str
    Name of module.
version : str, optional
    Version string to test against.
    If version is not None, checking version
    (must have an attribute named '__version__' or 'VERSION')
    Version may start with =, >=, > or < to specify the exact requirement

Returns
-------
mod : module or None
    Module if *module_name* is installed matching the optional version
    or None otherwise.
Nr   r   r   )r+   r   r   )r   r   s     r   Ú
get_moduler>   u   s0   € ô& ˜×-Ñ-ØÜ�k×-CÑ-CÀCÓ-HÈÑ-LÐ,MÑNÐNr   )N)	r#   Ú	packagingr   r	   r   r   r+   r<   r>   © r   r   Ú<module>rA      s(   ðÛ 
å )òò0Fô'5ôT$õNOr   