
    m*i                     6   S r SSKrSSKJrJrJr  SSKJrJrJ	r	J
r
Jr  SSKJr  SSKJrJr  \
\\	\4   r\
\\\   4   r\
S\\\\4   \\\\4      4   rS\S	\4S
 jrS\\\
\\4   \4      S	\4S jrS\\\
\\4   \4      S	\4S jrS\S\S	\
\S4   4S jrg)zQuery string handling.    N)IterableMappingSequence)TYPE_CHECKINGAnySupportsIntUnioncast)istr   )QUERY_PART_QUOTERQUERY_QUOTERvreturnc                    [        U 5      nU[        L a  [        U 5      $ [        U [        5      (       a  U $ [        U [        5      (       a`  [
        R                  " U 5      (       a  [        S5      e[
        R                  " U 5      (       a  [        S5      e[        [	        U 5      5      $ U[        La)  [        U [        5      (       a  [        [        U 5      5      $ [        SR                  X5      5      e)z%Convert a query variable to a string.zfloat('inf') is not supportedzfloat('nan') is not supportedzMInvalid variable type: value should be str, int or float, got {!r} of type {})typeintstr
isinstancefloatmathisinf
ValueErrorisnanboolr   	TypeErrorformat)r   clss     K/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/yarl/_query.py	query_varr       s    
q'C
cz1v!S!U::a==<==::a==<==58}
$:a553q6{
	VA^     itemsc                 >   [         nU  VVVs/ s Ho  u  p#[        U5      [        La  [        U[        [
        45      (       a  UOU4  H3  nU" U5       SU" [        U5      [        L a  UO
[        U5      5       3PM5     Mq     nnnnSR                  U5      $ s  snnnf )zReturn a query string from a sequence of (key, value) pairs.

value is a single value or a sequence of values for the key

The sequence of values must be a list or tuple.
=&)r   r   r   r   listtupler    join)r"   quoterkvalr   pairss         r   $get_str_query_from_sequence_iterabler-   (   s     F FA9C'JsT5M,J,JCQTPVV  !9+Qv47c>ay|DEF W 	G 
  88E?s   A6Bc                     [         nU  VVs/ s H5  u  p#U" U5       SU" [        U5      [        L a  UO
[        U5      5       3PM7     nnnSR	                  U5      $ s  snnf )zReturn a query string from an iterable.

The iterable must contain (key, value) pairs.

The values are not allowed to be sequences, only single values are
allowed. For sequences, use `_get_str_query_from_sequence_iterable`.
r$   r%   )r   r   r   r    r(   )r"   r)   r*   r   r,   s        r   get_str_query_from_iterabler/   <   sf     F TYSX416!9+Qv47c>ay|DEFSX 
  88E?s   <Aargskwargsc                     U(       a  U (       a  Sn[        U5      eUnO [        U 5      S:X  a  U S   nO[        S5      eUc  gU(       d  g[        U5      [        L a  [	        UR                  5       5      $ [        U5      [        L d  [        U[        5      (       a  [        U5      $ [        U[        5      (       a  [	        UR                  5       5      $ [        U[        [        [        45      (       a  Sn[        U5      e[        U[        5      (       aG  [        (       a1  [!        [        ["        [$        [        [&        4   [(        4      U5      n[+        U5      $ [        S5      e)z*Return a query string from supported args.z7Either kwargs or single query parameter must be presentr   r   N zAInvalid query type: bytes, bytearray and memoryview are forbiddenzRInvalid query type: only str, mapping or sequence of (key, value) pairs is allowed)r   lenr   dictr-   r"   r   r   r   r   bytes	bytearray
memoryviewr   r   r   r
   r'   r	   r   SimpleQueryr/   )r0   r1   msgquerys       r   get_str_queryr<   O   s"    KCS/!	TaQRSS}E{d3EKKMBBE{cZs33E""%!!3EKKMBB%%J788Qn%""
 =%c4i(8+(E"FGOE*511
	4 r!   )__doc__r   collections.abcr   r   r   typingr   r   r   r	   r
   	multidictr   _quotersr   r   r   r   r9   QueryVariabler'   Queryr    r-   r/   r<    r!   r   <module>rE      s     7 7 ? ?  5Ce+,k8K#889#wsM)*HU3;M5N,OO	
  ,E%T	*M9:;(E%T	*K789&* * *c4i0@ *r!   