
    vKg5                    t    S SK Jr  S SKrS SKrSSKJr  SS/r\R                   " S S5      5       r	Sr
S
S	 jrg)    )annotationsN   )
InvalidURI	parse_uriWebSocketURIc                      \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S\S
'   SrS\S'   SrS\S'   \SS j5       r	\SS j5       r
Srg)r      a  
WebSocket URI.

Attributes:
    secure: :obj:`True` for a ``wss`` URI, :obj:`False` for a ``ws`` URI.
    host: Normalized to lower case.
    port: Always set even if it's the default.
    path: May be empty.
    query: May be empty if the URI doesn't include a query component.
    username: Available when the URI contains `User Information`_.
    password: Available when the URI contains `User Information`_.

.. _User Information: https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1

boolsecurestrhostintportpathqueryNz
str | Noneusernamepasswordc                    U R                   (       a  U R                   nOSnU R                  (       a  USU R                  -   -  nU$ )N/?)r   r   )selfresource_names     N/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/websockets/uri.pyr   WebSocketURI.resource_name&   s7    99 IIMM::S4::--M    c                l    U R                   c  g U R                  c   eU R                   U R                  4$ )N)r   r   )r   s    r   	user_infoWebSocketURI.user_info0   s2    == }}(((t}}--r    )returnr   )r    ztuple[str, str] | None)__name__
__module____qualname____firstlineno____doc____annotations__r   r   propertyr   r   __static_attributes__r   r   r   r   r      s\      L
I
I
IJHjHj  . .r   z:/?#[]@!$&'()*+,;=c           	        [         R                  R                  U 5      nUR                  S;  a  [	        U S5      eUR
                  c  [	        U S5      eUR                  S:w  a  [	        U S5      eUR                  S:H  nUR
                  nUR                  =(       d    U(       a  SOSnUR                  nUR                  nUR                  nUR                  nUb  Uc  [	        U S	5      e U R                  S
5        [#        X#XEXgU5      $ ! [         a    UR                  S5      R                  5       n[         R                  R                  U[         S9n[         R                  R                  U[         S9nUbI  Uc   e[         R                  R                  U[         S9n[         R                  R                  U[         S9n Nf = f)z
Parse and validate a WebSocket URI.

Args:
    uri: WebSocket URI.

Returns:
    Parsed WebSocket URI.

Raises:
    InvalidURI: If ``uri`` isn't a valid WebSocket URI.

)wswsszscheme isn't ws or wsszhostname isn't provided z"fragment identifier is meaninglessr+   i  P   z"username provided without passwordasciiidna)safe)urllibparseurlparseschemer   hostnamefragmentr   r   r   r   r   encodeUnicodeEncodeErrordecodequoteDELIMSr   )	uriparsedr   r   r   r   r   r   r   s	            r   r   r   <   s    \\""3'F}}M)677788"BCC]]e#F??D;;1&3bD;;DLLEHH  0BCCA

7 d%8LL  	A {{6"))+||!!$V!4""5v"6'''||))()@H||))()@H	As   -D B9GG)r<   r   r    r   )
__future__r   dataclassesurllib.parser1   
exceptionsr   __all__	dataclassr   r;   r   r   r   r   <module>rD      sJ    "   " 
' (. (. (.X 
/Mr   