G_'%dZddlmZ ddlZ[ddlmZddlmZm Z ddl m Z m Z ddl mZddlmZmZmZmZmZmZmZmZdd lmZd d lmZmZdd lmZdd lm Z m!Z!m"Z"m#Z#m$Z$ddl%m&Z&m'Z'm(Z)dZ*edZ+eede+fge+fZ, e-dZ0da1e ddZ2e ddZ3e d dZ4e d!dZ5dZ6da7e dZ8e dZ9e dZ:y#e.$re/Z-YPwxYw#e;$r ddlm Returns a string containing IDNA characters. zidna-tables-properties.csv.gzc3>K|]}|jdyw)utf-8N)decode).0lines 6/usr/lib/python3/dist-packages/hyperlink/hypothesis.py z"idna_characters..Qs?dT[[)?s,) delimiterPVALIDr-rc34K|]}t|dyw)N)int)r+is r-r.z"idna_characters..bs!?#a*!?sN) _idnaCharactersrr__file__ open_gzip csv_readernextsplitlenappendranger unichr) result dataFileNamedataFilerrowcodesprop descriptionstartEndstartendr6s r-idna_charactersrL?sF  !#BL<( 1H#?h?!V !1C/2,E4x'!"1v||C3H8})  4!?h!?JE3"5#'21z>! fQi011  14"hhv.O9 1 1s B/C<<Dr7c t}|dk\sJ||dk\sJtt|t|||} t ||S#t $rt dY|SwxYw)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. rmin_sizemax_sizealphabetF)rLrrr idna_encoderr)drawrOrPrQrBs r-r#r#osy#$1}}  q= =  x(XN O       5M  s A A#"A#c R|rd}nd}tt|t|dS)z A strategy which generates port numbers. @param allow_zero: Whether to allow port C{0} as a possible value. rri) min_value max_value)rr5r)rS allow_zerorUs r-r%r%s* IICheLMNNc |r4tt|tdd} |jdn9tt|t ddtttzd z } t||S#t$r[t |jddt dz kDr/|dd}t |jddt dz kDr/YqwxYw#t$rtd Y|SwxYw) z A strategy which generates host name labels. @param allow_idn: Whether to allow non-ASCII characters as allowed by internationalized domain names (IDNs). r?rOrPasciipunycodezxn--Nr2rNF) rrr#rUnicodeEncodeErrorr>rrrr UnicodeErrorr)rS allow_idnlabels r-r!r!s tIq2$FGHE ' W%!"!#!%mf&1 C%>A C"!C"%C=<C=c tt|t|jfdg}|ttt|t t|ddz }t d|Dt|zdz dkDr*|dd }t d|Dt|zdz dkDr*d j|S) aD A strategy which generates host names. @param allow_leading_digit: Whether to allow a leading digit in host names; they were not allowed prior to RFC 1123. @param allow_idn: Whether to allow non-ASCII characters as allowed by internationalized domain names (IDNs). )rac"rdS|dtvS)NTr)r)lallow_leading_digits r-zhostnames..s$7D=>qT=OrXrr[c32K|]}t|yw)N)r>)r+rbs r-r.zhostnames..s1#e*1sNr^.) rrr!filterr rsumr>r)rSrfralabelss ` r-r"r"s #i8??    $ J #i8   1&11CK?!CcICR[F1&11CK?!CcIyy  rXcLtd}dj|atS)zH Returns a string containing valid URL path characters. c3KttD](}t|}|dvr |jd|*y#t$rY7wxYww)Nz#/?r))r@r rArr_)r6cs r-charszpath_characters..charssZz* Aq AEz !)G .! !s%#A >A  A A  A  A r7)_path_charactersr)rrs r-path_charactersrts(  # " "wwuw/ rXc xttt|tt dt dS)Nr)rOrQ )rP)rr rrrrtrSs r-r$r$s4 J dA0ABRP   rXc <ttt|td}tt|t }tt t|t}|dk(rd}ttt|td|||S)z A strategy which generates L{EncodedURL}s. Call the L{EncodedURL.to_uri} method on each URL to get an HTTP protocol-friendly URI. T)rWrN)httphttps)schemehostportpath) rr r5r%rr"rr$rr)rSr}r|r~s r-r r #s~HSM4 (E#FGD$y{+,HTNDM2 19Dd<0C#DEF   rXc4t|tS)z A strategy which generates L{DecodedURL}s. Call the L{EncodedURL.to_uri} method on each URL to get an HTTP protocol-friendly URI. )rr rws r-rr9s$|~.//rX)Tuple)rN)F)T)TT)=__doc__ __future__r hypothesiscsvrr;os.pathrrstringrrsysr typingr r r r rrrrgziprr:r7rrrhypothesis.strategiesrrrrridnarrrrR__all__r& DrawCallablerA NameErrorchrrLr8r#r%r!r"rtrsr$r r ImportErrorrrrXr-rsb'z0 )%,   '(!CBG  AXc1f-.12L,\O@ O O++Z)!)!V <    *00} cGs#CC CC C)(C)