+\h UddlZddlZddlZddlmZmZmZdedefdZ dede fdZ iZ eee fe d<d ede fd Zd ed e ddfd Zd ggddgdgdgdgdZeeeefe d<y)N)DictListTupleversionreturnc|jd}g}|D]C}djtjd|} |j t |Et|S#t $rYt|SwxYw)N.c&|tjvS)N)stringdigits)xs P/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/dns/_features.pyz"_tuple_from_text..s!v}}*<)splitjoin itertools takewhileappendint Exceptiontuple)r text_parts int_parts text_part digit_prefixs r_tuple_from_textr ss#JI ww    =A> requirementc|jd\}} tjj|}|y t |}t |}||kryy#t$rYywxYw)zeIs the requirement fulfilled? The requirement must be of the form package>=version z>=FT)r importlibmetadatarrr)rpackageminimumr t_version t_minimums r_version_checkr'sy#((.GW$$,,W5 ? !)I )I9  s!A A"!A"_cachefeaturectj|}||Stj|}| dt|<yd}|D]}t|rd}n|t|<|S)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 requirementsokrs rhaver02ss JJw E   $$W-Lw B# k*B F7O Irenabledc|t|<y)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)r1s rforcer3Ms F7Orzcryptography>=43)zhttpcore>=1.0.0z httpx>=0.26.0z h2>=4.1.0zaioquic>=1.0.0z idna>=3.7z trio>=0.23z wmi>=1.5.1)dnssecdohdoqidnatriowmir,)importlib.metadatar!rr typingrrrstrrboolr'r(__annotations__r0r3r,rrr@s $$ c e  0S$Y#$63$"" <   M N > ' tCcN# r