%PDF- %PDF-
Direktori : /usr/lib/python3/dist-packages/idna/__pycache__/ |
Current File : //usr/lib/python3/dist-packages/idna/__pycache__/intranges.cpython-312.pyc |
� ��=fY � � � d Z ddlZddlmZmZ dee deedf fd�Zded edefd �Zdedeeef fd�Zd edeedf de fd�Z y)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�Tuple�list_�return.c � � t | � }g }d}t t |� � D ]V }|dz t |� k r|| ||dz dz k( r�&||dz |dz }|j t |d |d dz � � |}�X 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 )�sorted�range�len�append� _encode_range�tuple)r �sorted_list�ranges� last_write�i� current_ranges �0/usr/lib/python3/dist-packages/idna/intranges.py�intranges_from_listr s� � � ��-�K� �F��J� �3�{�#� $� ���Q�3��[�!�!��1�~��Q�q�S�!1�!�!3�3��#�J�q�L��1��5� �� � �m�M�!�$4�m�B�6G�!�6K�L�M�� � � ��=�� �start�endc � � | dz |z S )N� � )r r s r r r s � ��R�K�3��r �rc � � | dz | dz fS )Nr l �� r )r s r � _decode_ranger # s � � ��G�q�M�*�+�+r �int_r c �� � t | d� }t j ||� }|dkD r!t ||dz � \ }}|| cxk r|k ry |t |� k rt || � \ }}|| k( ryy)z=Determine if `int_` falls into one of the ranges in `ranges`.r r TF)r �bisect�bisect_leftr r )r r �tuple_�pos�left�right�_s r �intranges_containr) '