
    g	                         % S SK rS SKrS SKrS SKJrJrJr  S\S\4S jr	S\S\
4S jr0 r\\\
4   \S'   S	\S\
4S
 jrS	\S\
SS4S jrS// SQS/S/S/S/S.r\\\\   4   \S'   g)    N)DictListTupleversionreturnc                     U R                  S5      n/ nU HE  nSR                  [        R                  " S U5      5      n UR	                  [        U5      5        MG     [        U5      $ ! [         a       M  f = f)N. c                 (    U [         R                  ;   $ )N)stringdigits)xs    F/home/matz/Project1/venv/lib/python3.13/site-packages/dns/_features.py<lambda>"_tuple_from_text.<locals>.<lambda>   s    !v}}*<    )splitjoin	itertools	takewhileappendint	Exceptiontuple)r   
text_parts	int_parts	text_partdigit_prefixs        r   _tuple_from_textr   	   sw    s#JI	ww <iH
	S./     		s   A**
A98A9requirementc                     U R                  S5      u  p [        R                  R                  U5      nUc  g [        U5      n[        U5      nXE:  a  gg! [         a     gf = f)zYIs the requirement fulfilled?

The requirement must be of the form

    package>=version
z>=FT)r   	importlibmetadatar   r   r   )r    packageminimumr   	t_version	t_minimums         r   _version_checkr(      su     #((.G$$,,W5?  !)I )I  s   "A 
A#"A#_cachefeaturec                     [         R                  U 5      nUb  U$ [        R                  U 5      nUc
  S[         U '   gSnU H  n[        U5      (       a  M  Sn  O   U[         U '   U$ )zIs *feature* available?

This tests if all optional packages needed for the
feature are available and recent enough.

Returns ``True`` if the feature is available,
and ``False`` if it is not or if metadata is
missing.
FT)r)   get_requirementsr(   )r*   valuerequirementsokr    s        r   haver1   2   sq     JJwE $$W-Lw	B#k**B $ F7OIr   enabledc                     U[         U '   g)zForce the status of *feature* to be *enabled*.

This method is provided as a workaround for any cases
where importlib.metadata is ineffective, or for testing.
N)r)   )r*   r2   s     r   forcer4   M   s     F7Or   zcryptography>=43)zhttpcore>=1.0.0zhttpx>=0.26.0z	h2>=4.1.0zaioquic>=1.0.0z	idna>=3.7z
trio>=0.23z
wmi>=1.5.1)dnssecdohdoqidnatriowmir-   )importlib.metadatar"   r   r   typingr   r   r   strr   boolr(   r)   __annotations__r1   r4   r-    r   r   <module>rA      s       $ $c e 	0 S$Y # $ 63  $  ""<MN>	'tCcN# 	r   