§
§l{Aà5Šã ó: — d Z ddlZddlmZmZ d„ Zd„ Zd„ Zd„ ZdS )a
Given a list of integers, made up of (hopefully) a small number of long runs
of consecutive integers, compute a representation of the form
((start1, end1), (start2, end2) ...). Then answer the question "was x present
in the original list?" in time O(log(# runs)).
é N)ÚListÚTuplec ój — t | ¦ « }g }d}t t |¦ « ¦ « D ]u}|dz t |¦ « k r|| ||dz dz
k rŒ1||dz |dz … }| t |d |d dz ¦ « ¦ « |}Œvt |¦ « S )a Represent a list of integers as a sequence of ranges:
((start_0, end_0), (start_1, end_1), ...), such that the original
integers are exactly those x such that start_i <= x < end_i for some i.
Ranges are encoded as single integers (start << 32 | end), not as tuples.
éÿÿÿÿé r )ÚsortedÚrangeÚlenÚappendÚ
_encode_rangeÚtuple)Úlist_Úsorted_listÚrangesÚ
last_writeÚiÚ
current_ranges úŒ/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el9.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/idna/intranges.pyÚintranges_from_listr sÄ € õ ˜‘-”-€KØ
€FØ€JÝ
•3{Ñ#Ô#Ñ
$Ô
$ð ð ˆØˆQ‰3•[Ñ!Ô!Ò!Ð!ؘ1Œ~ ¨Q¨q©SÔ!1°!Ñ!3Ò3Ð3ØØ# J¨q¡L°°1±Ð$4Ô5ˆ
Ø
Š
•m M°!Ô$4°mÀBÔ6GÈ!Ñ6KÑLÔLÑMÔMÐM؈
ˆ
å‰=Œ=Ðó c ó — | dz |z S )Né © )ÚstartÚends r r r ! s € àR‰K˜3ÑÐr c ó — | dz | dz fS )Nr l ÿÿ r )Úrs r Ú
_decode_ranger % s € à
‰Gq˜MÑ*Ð+Ð+r c ó — t | d¦ « }t j ||¦ « }|dk r-t ||dz
¦ « \ }}|| cxk r|k rn ndS |t |¦ « k r t || ¦ « \ }}|| k rdS dS )z=Determine if `int_` falls into one of the ranges in `ranges`.r r TF)r ÚbisectÚbisect_leftr r
)Úint_r Útuple_ÚposÚleftÚrightÚ_s r Úintranges_containr( * s© € õ ˜4 Ñ
#Ô
#€FÝ
Ô
˜V VÑ
,Ô
,€Cð ˆQ‚w€wÝ# F¨3¨q©5¤MÑ2Ô2‰ˆˆeØ4ÐÐÒИ%ÒÐÐÐÐØ4à
S‰[Œ[ÒÐÝ s¤Ñ,Ô,‰ˆˆaØ4Š<ˆ<Ø4؈5r ) Ú__doc__r Útypingr r r r r r( r r r ú