
    ]j6"                     h   d dl mZmZmZmZmZmZmZ 	 d dlm	Z	 d dlmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZ erddl m!Z! g dZ"d	ee#ef   d
e#de#deee#   ee   f   fdZ$deede#f      dee   fdZ%d	ee#ef   defdZ&d	ee#ef   defdZ'd	ee#ef   defdZ(d	ee#ef   dee   fdZ)d	ee#ef   dee   fdZ*d	ee#ef   de#fdZ+dee#   d	ee#ef   dee#   fdZ,ddeee#e#f      dee#   fdZ-ddeee#e#f      defdZ.dee#ef   dee   fdZ/y# e
$ r
 d dlm	Z	 Y w xY w)     )AnycastDictOptionalTupleUnionTYPE_CHECKING)quote)MatchConditions   )ArrowConfigurationBlobModifiedAccessConditionsBlobTagBlobTagsContainerCpkScopeInfoCpkScopeInfoDelimitedTextConfigurationJsonTextConfigurationLeaseAccessConditionsModifiedAccessConditionsQueryFormatQueryFormatTypeQuerySerializationSourceModifiedAccessConditions)ContainerEncryptionScopeDelimitedJsonDialect)BlobLeaseClient)z
2019-02-02z
2019-07-07z
2019-10-10z
2019-12-12z
2020-02-10z
2020-04-08z
2020-06-12z
2020-08-04z
2020-10-02z
2020-12-06z
2021-02-12z
2021-04-10z
2021-06-08z
2021-08-06z
2021-12-02z
2022-11-02z
2023-01-03z
2023-05-03z
2023-08-03z
2023-11-03z
2024-05-04z
2024-08-04z
2024-11-04z
2025-01-05z
2025-05-05z
2025-07-05z
2025-11-05z
2026-02-06kwargsmatch_param
etag_paramreturnc                    d }d }| j                  |d       }|t        j                  k(  r*| j                  |d       }|st        d| d| d      ||fS |t        j                  k(  rd}||fS |t        j
                  k(  r*| j                  |d       }|st        d| d| d      ||fS |t        j                  k(  rd}||fS |'| j                  |      rt        d| d| d      ||fS t        d|       )N'z' specified without 'z'.*zInvalid match condition: )	popr   IfNotModified
ValueError	IfPresent
IfModified	IfMissingget	TypeError)r   r   r    if_matchif_none_matchmatch_conditions         G/root/env/lib/python3.12/site-packages/azure/storage/blob/_serialize.py_get_match_headersr1   E   sH   
 HMjjd3O/777::j$/q-B:,bQRR ]"" 
O55	5 ]"" 
O66	6

:t4q-B:,bQRR ]"" 
O55	5 ]"" 
	 ::j!q,A+bQRR ]"" 3O3DEFF    leaser   c                 ^    	 | j                   }|rt        |      S d S # t        $ r | }Y w xY w)N)lease_id)idAttributeErrorr   )r3   r5   s     r0   get_access_conditionsr8   a   s<    88 8@ (3ITI  s    ,,c           
          t        | dd      \  }}t        | j                  dd       | j                  dd       |xs | j                  dd       |xs | j                  dd       | j                  dd             S )	Nr/   etagif_modified_sinceif_unmodified_sincer-   r.   if_tags_match_condition)r;   r<   r-   r.   if_tags)r1   r   r%   r   r-   r.   s      r0   get_modify_conditionsr@   i   sv    09JFSHm# **%8$?"JJ'<dC9VZZ
D9#Hvzz/4'H

4d; r2   c           	          t        | dd      \  }}t        | j                  dd       | j                  dd       |xs | j                  dd       |xs | j                  dd             S )Nr/   r:   r;   r<   r-   r.   )r;   r<   r-   r.   )r1   r   r%   r?   s      r0   get_blob_modify_conditionsrB   t   sg    09JFSHm' **%8$?"JJ'<dC9VZZ
D9#Hvzz/4'H	 r2   c           
          t        | dd      \  }}t        | j                  dd       | j                  dd       |xs | j                  dd       |xs | j                  dd       | j                  dd             S )	Nsource_match_conditionsource_etagsource_if_modified_sincesource_if_unmodified_sincesource_if_matchsource_if_none_matchsource_if_tags_match_condition)rF   rG   rH   rI   source_if_tags)r1   r   r%   r?   s      r0   get_source_conditionsrL   ~   sz    09QS`aHm)!',F!M#)::.JD#Q GFJJ/@$$G*Vfjj9OQU.Vzz"BDI r2   c                 B    d| v rt        | j                  d            S y )Nencryption_scope)rN   )r   r%   )r   s    r0   get_cpk_scope_inforO      s"    V#VZZ8J-KLLr2   c                    | j                  dd       }|rkt        |t              r!t        |j                  |j
                        S t        |t              rt        |d   |j                  d            S t        d      y )Ncontainer_encryption_scope)default_encryption_scope!prevent_encryption_scope_overriderR   rS   zIContainer encryption scope must be dict or type ContainerEncryptionScope.)	r%   
isinstancer   r   rR   rS   dictr+   r,   )r   rN   s     r0   get_container_cpk_scope_inforV      s    zz">E&(@A()9)R)R2B2d2d  &-()9:T)U2B2F2FGj2k  cddr2   c                     | j                  dd       }|r.|t        vr&dj                  t              }t        d| d|       |xs	 t        d   S )Napi_version
zUnsupported API version 'z'. Please select from:
)r+   _SUPPORTED_API_VERSIONSjoinr'   )r   rX   versionss      r0   get_api_versionr^      sY    **]D1K{*AA99454[MAYZbYcdee51"55r2   self_vidc                 L    d|v rt        t        |j                  d            S | S )N
version_id)r   strr%   )r_   r   s     r0   get_version_idrc      s%    vCL122Or2   Ntagsc                     | y g }| rr| j                         D ]_  \  }}|j                  t        |d             |j                  d       |j                  t        |d             |j                  d       a |r|d= dj                  |      S )Nz.-)safe=&rZ    )itemsappendr
   r\   )rd   
componentskeyvalues       r0   serialize_blob_tags_headerro      s    |J**, 	#JCeCd34c"eE56c"		# rN77:r2   c                     g }| r-| j                         D cg c]  \  }}t        ||       }}}t        |      S c c}}w )N)rm   rn   )blob_tag_set)rj   r   r   )rd   tag_listkvs       r0   serialize_blob_tagsru      s?    H8<

E1G+EE** Fs   >formaterc                    | dk(  rt        t        j                  d      }nt        | t              r2t        | j                        }t        t        j                  |      }nt        | d      r|	 | j                  }t        | t              rt        d      t        | j                  | j                  | j                  | j                   |	      }t        t        j"                  |
      }nFt        | t$              r(t'        |       }t        t        j(                  |      }n| sy t+        d      t-        |      S # t        $ r d}Y w xY w)NParquetDialect )typeparquet_text_configuration)record_separator)rz   json_text_configuration	quotecharFz>Unknown string value provided. Accepted values: ParquetDialect)column_separatorfield_quoter|   escape_charheaders_present)rz   delimited_text_configuration)schema)rz   arrow_configurationzNFormat must be DelimitedTextDialect or DelimitedJsonDialect or ParquetDialect.)format)r   r   PARQUETrT   r   r   	delimiterJSONhasattr
has_headerr7   rb   r'   r   r~   lineterminator
escapechar	DELIMITEDlistr   arrowr,   r   )rv   	qq_formatjson_serialization_settingsheaderscsv_serialization_settingsarrow_serialization_settingss         r0   serialize_query_formatr      s&   ##_%<%<Y\]		H2	3&;XM_M_&`#_%9%9Sno		;	'	))G h$]^^%?%// **%44 ++#&
"   **)C
	 
Hd	#'9'J$_%:%:Plm	hiiY//-  	G	s   2D? ?EE)N)0typingr   r   r   r   r   r   r	   urllib.parser
   ImportErrorurllib2
azure.corer   _generated.modelsr   r   r   r   r   r   r   r   r   r   r   r   r   r   _modelsr   r   _leaser   r[   rb   r1   r8   r@   rB   rL   rO   rV   r^   rc   ro   ru   r    r2   r0   <module>r      s   J I I" '     D' @#cN## # 8C=(3-'(	#8J%0A30F*G!H JXVkMl J$sCx. 5M tCH~ :V $sCx. 5S tCH~ (<2H c3h HEZ<[ "6DcN 6s 6Xc] DcN xPS} 
Xd38n%= RU $+htCH~6 +( +0U30D+D%E 0(SeJf 0w  s   D" "D10D1