Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
_urlparse.cpython-313.pyc133 linesDownload Raw Back to __pycache__
1�

2��jrH�3��SrSSKJr SSKrSSKrSSKrSSKrSSKJr Sr	Sr4Sr\R"S	5r
S5R\"SS5Vs/sHoS
;dM6\"U5PM sn5rS7R\"SS5Vs/sHoS;dM8\"U5PM sn5rS9R\"SS5Vs/sHnUS;dM\"U5PM sn5rS10R\"SS5Vs/sHnUS;dM\"U5PM sn5rS11R\"SS5Vs/sHnUS;dM\"U5PM sn5rS12R\"SS5Vs/sHnUS;dM\"U5PM sn5r\R"SR/SSSSSS95r\R"SR/SSSS95r\R"S5\R"S5\R"S5\R"S5\R"S5\R"S5\R"S5\R"S5S.r\R"S5r\R"S 5r"S!S"\R:5rS+S,S#jjrS-S$jr S.S%jr!S/S&jr"S0S'jr#S1S(jr$S2S)jr%S2S*jr&gs snfs snfs snfs snfs snfs snf)3a�13An implementation of `urlparse` that provides URL validation and normalization14as described by RFC3986.15 16We rely on this implementation rather than the one in Python's stdlib, because:17 18* It provides more complete URL validation.19* It properly differentiates between an empty querystring and an absent querystring,20  to distinguish URLs with a trailing '?'.21* It handles scheme, hostname, port, and path normalization.22* It supports IDNA hostnames, normalizing them to their encoded form.23* The API supports passing individual components, as well as the complete URL string.24 25Previously we relied on the excellent `rfc3986` package to handle URL parsing and26validation, but this module provides a simpler alternative, with less indirection27required.28�)�annotationsN�)�29InvalidURLizBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~z!$&'()*+,;=z%[A-Fa-f0-9]{2}�� �)r�"�<�>�`)rr	�#r30r)	rr	r
r31r�?r�{�})rr	r
r32rrrrr�/�:�;�=�@�[�\�]�^�|)rr	r
r33rrrrrrrrrrrrrrz�(?:(?P<scheme>{scheme}):)?(?://(?P<authority>{authority}))?(?P<path>{path})(?:\?(?P<query>{query}))?(?:#(?P<fragment>{fragment}))?z([a-zA-Z][a-zA-Z0-9+.-]*)?z[^/?#]*z[^?#]*z[^#]*z.*��scheme�	authority�path�query�fragmentzA(?:(?P<userinfo>{userinfo})@)?(?P<host>{host}):?(?P<port>{port})?z(\[.*\]|[^:@]*))�userinfo�host�portz[^@]*z(\[.*\]|[^:]*))rrrrr r!r"r#z ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$z^\[.*\]$c��\rSrSr%S\S'S\S'S\S'S\S'S\S'S	\S34'S	\S'\SSj5r\SS
j5rSSjrSSjr	Sr35g)�ParseResult��strrr!r"�36int | Noner#r�37str | Nonerr c��SRUR(aURS3OSSUR;aSURS3OURURbSUR3/5$S/5$)Nr�@�:�[�])�joinr!r"r#��selfs �AD:\code\apps\devtools\python\Lib\site-packages\httpx/_urlparse.pyr�ParseResult.authority�sz���w�w�'+�}�}�4�=�=�/��#�"�$'�4�9�9�$4�!�D�I�I�;�a� �$�)�)�#'�9�9�#8�!�D�I�I�;��
�38�	39�?A�
�40�	41�c��SRSUR;aSURS3OURURbSUR3/5$S/5$)Nrr,r-r.)r/r"r#r0s r2�netloc�ParseResult.netloc�sd���w�w�$'�4�9�9�$4�!�D�I�I�;�a� �$�)�)�#'�9�9�#8�!�D�I�I�;��
�42�	43�?A�
�44�	45r4c���U(dU$URURURURURS.nURU5 [
S0UD6$)Nr�r)rrrrr �update�urlparse)r1�kwargs�defaultss   r2�	copy_with�ParseResult.copy_with�sR����K��k�k�����I�I��Z�Z��
�
�46��	������'�h�'�'r4c�,�URnSRUR(aURS3OSU(aSU3OSURURbSUR3OSUR47bSUR483/5$S/5$)Nrr,�//�?�#)rr/rrrr )r1rs  r2�__str__�ParseResult.__str__�s����N�N�	��w�w�%)�[�[�4�;�;�-�q�!�b�$-�"�Y�K� �2��	�	�$(�J�J�$:�!�D�J�J�<� ��'+�}�}�'@�!�D�M�M�?�#�
�49�	50�GI�
�51�	52r4�N)�returnr')r<r)rGr%)�__name__�53__module__�__qualname__�__firstlineno__�__annotations__�propertyrr6r>rD�__static_attributes__rFr4r2r%r%�sX���K��M�54
�I�55��56
�I�����
�57��58��59��60�(�6162r4r%c	�	�[U5[:�a[S5e[SU55(a8[	SU55nURU5nSU<SUS3n[U5eSU;a*USn[
U[5(a[U5OUUS'SU;a4URS5=(d S	nURS635uUS'oqS'SU;dS
U;aa[URSS	5=(d S	[S9n[URS
S	5=(d S	[S9n	U	(aUS64U	3OUUS'SU;a@URS5=(d S	n65U66RS5uUS'o�S'U(dSUS'SU;aUURS5=(d S	nS67U;a5URS5(aUR!S5(d	SUS3US'UR#5H�up�UcM68[U5[:�a[SU
S35e[SU55(a;[	SU55nURU5nSU
SU<SUS3n[U5e[$U
R'U5(aM�[SU
S35e [(R+U5nUceUR-5nURSUS5=(d S	nURSUS5=(d S	nURSUS5=(d S	nURSUS5nURS US 5n[.R+U5nUceUR-5nURSUS5=(d S	nURSUS5=(d S	nURSUS5nUR15n[U[2S9n[5U5nU5nUS	:gnUS	:g=(d US	:g=(d USLn[9UUUS!9 U(dU(a[;U5n[U[<S9nUcSO
[U[>S9n UcSO
[U[@S9n![CUUUUUU U!5$)"NzURL too longc3�x# �UH0oR5=(a UR5(+v� M2 g7f�N��isascii�isprintable��.0�chars  r2�	<genexpr>�urlparse.<locals>.<genexpr>�s(���69E���<�<�>�4�$�"2�"2�"4�4�4����8:c3�# �UH4oR5(dMUR5(aM0Uv� M6 g7frQrRrUs  r2rXrY�s%���V�S�T�L�L�N�D�4�CS�CS�CU�D�D�S���>�>�	>z.Invalid non-printable ASCII character in URL, z
 at position �.r#r6rr,r"�username�password��safer!�raw_pathrBrrr-r.zURL component 'z70' too longc3�x# �UH0oR5=(a UR5(+v� M2 g7frQrRrUs  r2rXrYs(���O���<�<�>�<�$�*:�*:�*<�&<�<��rZc3�# �UH4oR5(dMUR5(aM0Uv� M6 g7frQrRrUs  r2rXrYs(����%*�T�l�l�n�D�T�EU�EU�EW�D�D�U�r\z-Invalid non-printable ASCII character in URL z component, zInvalid URL component '�'rrr )�71has_scheme�
has_authority)"�len�MAX_URL_LENGTHr�any�next�find�72isinstance�intr'�pop�	partition�quote�
USERNAME_SAFE�
PASSWORD_SAFE�get�73startswith�endswith�items�COMPONENT_REGEX�	fullmatch�	URL_REGEX�match�	groupdict�AUTHORITY_REGEX�lower�
USERINFO_SAFE�encode_host�normalize_port�
validate_path�normalize_path�	PATH_SAFE�74QUERY_SAFE�	FRAG_SAFEr%)"�urlr<rW�idx�errorr#r6�_r^r_rb�	seperatorr"�key�value�	url_match�url_dictrrrr�frag�authority_match�authority_dictr!�
parsed_scheme�parsed_userinfo�parsed_host�parsed_portrfrg�parsed_path�parsed_query�parsed_frags"                                  r2r;r;�s���75�3�x�.� ���(�(��76E��77E�E�E��V�S�V�V���h�h�t�n��<�T�H�M�RU�QV�VW�X�	���������f�~��&0��s�&;�&;��T����v���6�����H�%�+���,2�,<�,<�S�,A�)��v���&�>��V��z�V�3�����J��3�9�r�
�N������J��3�9�r�
�N��9A��z��8�*�5�x��z���V���:�:�j�)�/�R��5=�5G�5G��5L�2��v��	�'�?��"�F�7�O�����z�z�&�!�'�R���$�;����� 4� 4����s�9K�9K� ���a�[�F�6�N�78�l�l�n�79�����5�z�N�*� �?�3�%�z�!B�C�C��O��O�O�O���%*�����j�j��&��C�C�5���h�m�C�5��3��!��'�'�#�3�'�1�1�%�8�8� �#:�3�%�q�!A�B�B�)%�.����$�I�� � � ��"�"�$�H��Z�Z��(�8�"4�
5�
;��F��80�81�;���(=�>�D�"�I��:�:�f�h�v�.�/�5�2�D��J�J�w��� 1�2�E��:�:�j�(�:�"6�7�D�&�+�+�I�6�O��&�&�&�$�.�.�0�N��z�z�*�n�Z�&@�A�G�R�H��:�:�f�n�V�4�5�;��D��:�:�f�n�V�4�5�D�82 ����M� ��
�>�O�"�4�(�K�,�T�6�:�K��"�$�J��2��M���!2�M�k��6M���$�:�]�K��]��d�#���T�	�2�K�',�}�t�%��J�:W�L�&*�l�d��d��8S�K����������r4c��U(dg[RU5(a[R"U5 U$[RU5(a[R"USS5 USS$UR5(a!Sn[UR5[U-S9$[R"UR55RS5$![Ra [SU<35ef=f![Ra [SU<35ef=f![Ra [S	U<35ef=f)83NrzInvalid IPv4 address: r�����zInvalid IPv6 address: z"`{}%|\r`�asciizInvalid IDNA hostname: )�IPv4_STYLE_HOSTNAMEr{�	ipaddress�IPv4Address�AddressValueErrorr�IPv6_STYLE_HOSTNAME�IPv6AddressrSrqr~�84SUB_DELIMS�idna�encode�decode�	IDNAError)r"�WHATWG_SAFEs  r2r�r�\s:����	�	"�	"�4�	(�	(�	@��!�!�$�'���	�	"�	"�4�	(�	(�	@��!�!�$�q��*�-��A�b�z��	
�����!���T�Z�Z�\�85�[�(@�A�A�=��{�{�4�:�:�<�(�/�/��8�8��=�*�*�	@��5�d�X�>�?�?�	@���*�*�	@��5�d�X�>�?�?�	@�� �>�>�=��2�4�(�;�<�<�=�s#�C�D�,2D-�$D�$D*�-$Ec��UbUS:Xag[U5nSSSSSS.RU5nX#:XagU$![a [SU<35ef=f)NrzInvalid port: ��Pi�)�ftp�http�https�ws�wss)rn�86ValueErrorrrt)r#r�port_as_int�default_ports    r2r�r��st���|�t�r�z��4��$�i��87�r�C�r�#�N�R�R���L��"������4��>�$��2�3�3�4�s	�6�Ac��U(a(U(a!URS5(d[S5eU(dKU(dCURS5(a[S5eURS5(a[S5eggg)z�88Path validation rules that depend on if the URL contains89a scheme or authority component.90 91See https://datatracker.ietf.org/doc/html/rfc3986.html#section-3.392�/z7For absolute URLs, path must be empty or begin with '/'rAz3Relative URLs cannot have a path starting with '//'r,z2Relative URLs cannot have a path starting with ':'N)rur)rrfrgs   r2r�r��sq��������,�,��V�W�W��m��?�?�4� � ��R�S�S��?�?�3����Q�R�R� �,�:r4c��SU;aU$URS5nSU;aSU;aU$/nUHFnUS:XaMUS:Xa$U(aUS/:waUR5 M1M3M5URU5 MH SRU5$)zx93Drop "." and ".." segments from a URL path.94 95For example:96 97    normalize_path("/path/./to/somewhere/..") == "/path/to"98r]r�z..r)�splitro�appendr/)r�99components�output�	components    r2r�r��s����$�������C��J��*���Z�!7����F��	�����
�$�
��&�R�D�.��100�101��)�v�
�M�M�)�$� ��8�8�F��r4c�v�SRURS5Vs/sH	nSUS3PM sn5$s snf)Nrzutf-8�%�02X)r/r�)�string�bytes  r2�PERCENTr��s6��
�7�7�v�}�}�W�/E�F�/E�t�a��S�z�N�/E�F�G�G��Fs�6c��[U-nURU5(dU$SRUVs/sHo3U;aUO102[U5PM sn5$s snf)z)103Use percent-encoding to quote a string.104r)�UNRESERVED_CHARACTERS�rstripr/r�)r�ra�NON_ESCAPED_CHARSrWs    r2�percent_encodedr��s[��.��4���=�=�*�+�+��
�
�7�7�JP�Q�&�$�*�*����
�	=�&�Q����Qs�Ac��/nSn[R"[U5HgnUR5UR	5peURS5nXS:waXUnUR
[X�S95 UR
U5 UnMi U[U5:waXSn	UR
[X�S95 SRU5$)a�105Use percent-encoding to quote a string, omitting existing '%xx' escape sequences.106 107See: https://www.rfc-editor.org/rfc/rfc3986#section-2.1108 109* `string`: The string to be percent-escaped.110* `safe`: A string containing characters that may be treated as safe, and do not111    need to be escaped. Unreserved characters are always treated as safe.112    See: https://www.rfc-editor.org/rfc/rfc3986#section-2.3113rr`Nr)114�re�finditer�PERCENT_ENCODED_REGEX�start�end�groupr�r�rhr/)115r�ra�parts�current_positionr{�start_position�end_position�matched_text�leading_text�
trailing_texts116          r2rqrq�s���
�E������2�F�;��',�{�{�}�e�i�i�k���{�{�1�~���-�!�>�B�L��L�L���A�B�	���\�"�'��<��3�v�;�&��0�1�
�
���_�]�>�?�
�7�7�5�>�r4r9)r�r'r<r)rGr%)r"r'rGr')r#zstr | int | Nonerr'rGr()rr'rf�boolrgr�rG�None)rr'rGr')r�r'rGr')r�r'rar'rGr')'�__doc__�117__future__rr�r��typingr��_exceptionsrrir�r��compiler�r/�range�chrr�r�r�rrrsr�formatrzr}rxr�r��118NamedTupler%r;r�r�r�r�r�r�rq)�is0r2�<module>r�s���$#��	�
��#���I���119��120�121�#4�5��
�G�G��4��&�R�&��3Q�*Q�V�S��V�&�R�
�	��W�W��4��&�R�&��3Q�*Q�V�S��V�&�R��122�
�G�G��t�T�"��"�A��M�M�	��A��"��
�	�����t�T�"��"�A��G�G�	��A��"��	�
�����t�T�"��"�A��G�G�	��A��"��	�
�����t�T�"��"�A��A�A�	��A��"��	�
�"
�J�J�	*�123
�f�+��
���
��
�	�&�*�*�T��f��
 �
�	
��	�� �j�j�5�6����I�&��J�J�x� �
�Z�Z��
 ��124�125�4� ��126�127�7�#��J�J�)�*��J�J�t��	���j�j�!D�E���j�j��-��4128�&�#�#�4129�nD�N,=�^�6S�2�>H����KS��S��������sH�
	J2�J2�	J7�J7�9130J<�J<�0131K�>K�'132K�5K�133K�,K
codekingpro/portable-devtools · Team Ai