Edit File: intranges.cpython-36.pyc
3 )�]b�������������������@���s0���d�Z�ddlZdd��Zdd��Zdd��Zd d ��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)). �����Nc�������������C���s����t�|��}g�}d}xrtt|��D�]b}|d�t|�k�rL||�||d��d�krLq||d�|d���}|jt|d�|d�d����|}qW�t|�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������r���)�sorted�range�len�append� _encode_range�tuple)Zlist_Zsorted_list�rangesZ last_write�iZ current_range��r����/usr/lib/python3.6/intranges.py�intranges_from_list ���s����r���c�������������C���s���|�d>�|B�S�)N� ���r���)�start�endr���r���r ���r������s����r���c�������������C���s���|�d?�|�d@�fS�)Nr���r���l��������l������r���)�rr���r���r ���� _decode_range"���s����r���c�������������C���sz���t�|�d�}tj||�}|dkrNt||d���\}}||���koD|k�n��rNdS�|t|�k�rvt||��\}}||�krvdS�dS�)z=Determine if `int_` falls into one of the ranges in `ranges`.r���r���TF)r����bisectZbisect_leftr���r���)Zint_r ���Ztuple_�pos�left�right�_r���r���r ����intranges_contain&���s���� r���)�__doc__r���r���r���r���r���r���r���r���r ����<module>���s ���