File: //lib/python3/dist-packages/hyperlink/__pycache__/hypothesis.cpython-310.pyc
o
G�_'% � @ s� d Z ddlmZ zddlZ[W n ey! ddlmZ dZY dS w ddlm Z
ddlmZm
Z
ddlmZmZ dd lmZ dd
lmZmZmZmZmZmZmZmZ ddlmZ dd
lmZm Z ddlm!Z! ddl"m#Z#m$Z$m%Z%m&Z&m'Z' ddl(m)Z)m*Z*m+Z, dZed�Z-eede-f ge-f Z.ze/ W n e0y� e1Z/Y nw dd� Z2da3e#d)dd��Z4e#d*dd��Z5e#d+dd��Z6e#d,dd ��Z7d!d"� Z8da9e#d#d$� �Z:e#d%d&� �Z;e#d'd(� �Z<dS )-z
Hypothesis strategies.
� )�absolute_importN)�Tuple� )�reader)�dirname�join)�
ascii_letters�digits)�
maxunicode)�Callable�Iterable�List�Optional�Sequence�Text�TypeVar�cast)�open� )�
DecodedURL�
EncodedURL)�assume)� composite�integers�lists�sampled_from�text)� IDNAError�check_label�encode)�decoded_urls�encoded_urls�hostname_labels� hostnames� idna_text�paths�port_numbers�T.c C s� t swg } ttt�d�}t|��[}tdd� |D �dd�}t|� |D ]A}|\}}}|dkr-q!|d �dd �}t|�d krB|� |d � d
d� |D �\} }
t
| |
d �D ]}|tkrZ n| � t|�� qRq!W d � n1 smw Y d�| �a t S )
z>
Returns a string containing IDNA characters.
zidna-tables-properties.csv.gzc s s � | ]}|� d �V qdS )�utf-8N)�decode)�.0�liner r �6/usr/lib/python3/dist-packages/hyperlink/hypothesis.py� <genexpr>Q � � z"idna_characters.<locals>.<genexpr>�,)� delimiter�PVALIDr �-r c s s � | ]}t |d �V qdS )� N)�int)r* �ir r r, r- b r. N� )
�_idnaCharactersr r �__file__� open_gzip�
csv_reader�next�split�len�append�ranger
�unichr)�result�dataFileName�dataFiler �row�codes�prop�description�startEnd�start�endr5 r r r, �idna_characters? s8 �
�
���
rK r6 c C sj t � }|dks J �|dur|dksJ �tt| t|||d���}zt|� W |S ty4 td� Y |S w )a(
A strategy which generates IDNA-encodable text.
@param min_size: The minimum number of characters in the text.
C{None} is treated as C{0}.
@param max_size: The maximum number of characters in the text.
Use C{None} for an unbounded size.
r N��min_size�max_size�alphabetF)rK r r r �idna_encoder r )�drawrM rN rO rA r r r, r$ o s �
�
�r$ Fc C s$ |rd}nd}t t| t|dd���S )z�
A strategy which generates port numbers.
@param allow_zero: Whether to allow port C{0} as a possible value.
r r i�� )� min_value� max_value)r r4 r )rQ �
allow_zerorR r r r, r&