Update idna-3.3

This commit is contained in:
JonnyWong16 2021-10-14 20:59:44 -07:00
commit a3bfabb5f6
No known key found for this signature in database
GPG key ID: B1F1F9807184697A
9 changed files with 7591 additions and 6113 deletions

View file

@ -6,8 +6,9 @@ in the original list?" in time O(log(# runs)).
"""
import bisect
from typing import List, Tuple
def intranges_from_list(list_):
def intranges_from_list(list_: List[int]) -> Tuple[int, ...]:
"""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.
@ -28,14 +29,14 @@ def intranges_from_list(list_):
return tuple(ranges)
def _encode_range(start, end):
def _encode_range(start: int, end: int) -> int:
return (start << 32) | end
def _decode_range(r):
def _decode_range(r: int) -> Tuple[int, int]:
return (r >> 32), (r & ((1 << 32) - 1))
def intranges_contain(int_, ranges):
def intranges_contain(int_: int, ranges: Tuple[int, ...]) -> bool:
"""Determine if `int_` falls into one of the ranges in `ranges`."""
tuple_ = _encode_range(int_, 0)
pos = bisect.bisect_left(ranges, tuple_)